diff --git a/DEPS b/DEPS index 79e20410..dea794a 100644 --- a/DEPS +++ b/DEPS
@@ -280,15 +280,15 @@ # 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': 'df9fc6209031f534cfdefab4c834e26d4721561f', + 'skia_revision': '9d993ac998839c9541e00d04151c3f28ffa083bb', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling V8 # and whatever else without interference from each other. - 'v8_revision': '695231b1cc11805d3f9f4e2e132d29e529212205', + 'v8_revision': '006e14d0efce81ddd439b2847e6095b3baae2c28', # 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': 'a4439f7dc948d19c67de51f8309256e216c5f834', + 'angle_revision': 'a137d70233e75d944ff45e6b720e4d4beda270ab', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling SwiftShader # and whatever else without interference from each other. @@ -396,7 +396,7 @@ # Three lines of non-changing comments so that # the commit queue can handle CLs rolling feed # and whatever else without interference from each other. - 'dawn_revision': '66bf64e67071911fffd159a4e3d556d055e76d85', + 'dawn_revision': '61f029ad73e4cb0bf986b37731d22b8b20a04498', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling feed # 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': 'b4a4af5376f504155253e5c6990f16a2cf765e38', + 'llvm_libc_revision': '4f9b6ad674f8bfdb3257db3a329edbd7de41ebb1', # If you change this, also update the libc++ revision in # //buildtools/deps_revisions.gni. @@ -1304,7 +1304,7 @@ 'src/clank': { 'url': Var('chrome_git') + '/clank/internal/apps.git' + '@' + - '3be735239add5952890b3fd30b6e3857d9188ce4', + '12d8c4cde9da5b8bffbb33956e0a3f780656c2f2', 'condition': 'checkout_android and checkout_src_internal', }, @@ -1769,7 +1769,7 @@ # Tools used when building Chrome for Chrome OS. This affects both the Simple # Chrome workflow, as well as the chromeos-chrome ebuild. 'src/third_party/chromite': { - 'url': Var('chromium_git') + '/chromiumos/chromite.git' + '@' + 'd8cadf19e5362d8d204ff96dcda6644dedbe9029', + 'url': Var('chromium_git') + '/chromiumos/chromite.git' + '@' + '9c99f738698cd3e52308a75daca572490f4b8623', 'condition': 'checkout_chromeos', }, @@ -1799,7 +1799,7 @@ 'src/third_party/depot_tools': - Var('chromium_git') + '/chromium/tools/depot_tools.git' + '@' + '719139c30a4a51ee83554d563e8a46411756a57c', + Var('chromium_git') + '/chromium/tools/depot_tools.git' + '@' + 'af5e0b1f0f190174e92de6fc641ca29a458df8d2', 'src/third_party/devtools-frontend/src': Var('chromium_git') + '/devtools/devtools-frontend' + '@' + Var('devtools_frontend_revision'), @@ -2306,7 +2306,7 @@ Var('pdfium_git') + '/pdfium.git' + '@' + Var('pdfium_revision'), 'src/third_party/perfetto': - Var('android_git') + '/platform/external/perfetto.git' + '@' + 'fcccdd3940f8af65623a5ba999f82396ef672c41', + Var('android_git') + '/platform/external/perfetto.git' + '@' + 'b4244bf5199d1db21af2589c60f902c2a248def0', 'src/base/tracing/test/data': { 'bucket': 'perfetto', @@ -2674,7 +2674,7 @@ Var('chromium_git') + '/webpagereplay.git' + '@' + Var('webpagereplay_revision'), 'src/third_party/webrtc': - Var('webrtc_git') + '/src.git' + '@' + '6d0ecac3dd29ff7937c161a92c8dee543609f213', + Var('webrtc_git') + '/src.git' + '@' + 'd004aee4a41f3fba3b29ef33be2c4f07f2ceb1e7', # 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. @@ -2822,7 +2822,7 @@ 'packages': [ { 'package': 'chromeos_internal/apps/media_app/app', - 'version': 'L2iAuTSjceNIbqsI5sppJ5LSno52tg1IFH49doWkQQkC', + 'version': 'J6aSwx31_z_35HIdfVNeRr463Nz7ZZAIl1-H3ynKM08C', }, ], 'condition': 'checkout_chromeos and checkout_src_internal', @@ -4414,7 +4414,7 @@ 'src/components/optimization_guide/internal': { 'url': Var('chrome_git') + '/chrome/components/optimization_guide.git' + '@' + - '4381a0f78e891579dc1e0353486886b1fc2b59e0', + 'd53d6d646f35e1f960c944b1bde61ebabd045985', 'condition': 'checkout_src_internal', }, @@ -5438,7 +5438,7 @@ 'pattern': '.', # Always download profiles on Android builds. The GN arg `is_official_build` # is required to consider the profiles during build time. - 'condition': 'checkout_pgo_profiles or checkout_android', + 'condition': 'checkout_pgo_profiles', 'action': [ 'python3', 'src/v8/tools/builtins-pgo/download_profiles.py', 'download',
diff --git a/android_webview/browser/aw_content_browser_client.cc b/android_webview/browser/aw_content_browser_client.cc index ed15376..000c2df 100644 --- a/android_webview/browser/aw_content_browser_client.cc +++ b/android_webview/browser/aw_content_browser_client.cc
@@ -339,7 +339,7 @@ // per-view access checks, and access is granted by default (see // AwSettings.mAllowContentUrlAccess). content::ChildProcessSecurityPolicy::GetInstance()->GrantRequestScheme( - host->GetID(), url::kContentScheme); + host->GetDeprecatedID(), url::kContentScheme); } bool AwContentBrowserClient::IsExplicitNavigation(
diff --git a/android_webview/browser/aw_content_browser_client_receiver_bindings.cc b/android_webview/browser/aw_content_browser_client_receiver_bindings.cc index 9f907b8..3788080 100644 --- a/android_webview/browser/aw_content_browser_client_receiver_bindings.cc +++ b/android_webview/browser/aw_content_browser_client_receiver_bindings.cc
@@ -240,7 +240,7 @@ content::RenderProcessHost* render_process_host) { registry->AddInterface<safe_browsing::mojom::SafeBrowsing>( base::BindRepeating( - &MaybeCreateSafeBrowsing, render_process_host->GetID(), + &MaybeCreateSafeBrowsing, render_process_host->GetDeprecatedID(), base::BindRepeating( &AwContentBrowserClient::GetSafeBrowsingUrlCheckerDelegate, base::Unretained(this))), @@ -249,7 +249,7 @@ // Add the RenderMessageFilter creation callback, the callbkack will happen on // the IO thread. registry->AddInterface<mojom::RenderMessageFilter>(base::BindRepeating( - &CreateRenderMessageFilter, render_process_host->GetID())); + &CreateRenderMessageFilter, render_process_host->GetDeprecatedID())); } void AwContentBrowserClient::RegisterBrowserInterfaceBindersForFrame(
diff --git a/android_webview/browser/aw_contents.cc b/android_webview/browser/aw_contents.cc index 4275f14..b79778a 100644 --- a/android_webview/browser/aw_contents.cc +++ b/android_webview/browser/aw_contents.cc
@@ -1593,7 +1593,7 @@ void AwContents::GrantFileSchemeAccesstoChildProcess(JNIEnv* env) { content::ChildProcessSecurityPolicy::GetInstance()->GrantRequestScheme( - web_contents_->GetPrimaryMainFrame()->GetProcess()->GetID(), + web_contents_->GetPrimaryMainFrame()->GetProcess()->GetDeprecatedID(), url::kFileScheme); }
diff --git a/android_webview/browser/aw_context_menu_helper.cc b/android_webview/browser/aw_context_menu_helper.cc index ca22564..b1ad434f 100644 --- a/android_webview/browser/aw_context_menu_helper.cc +++ b/android_webview/browser/aw_context_menu_helper.cc
@@ -36,7 +36,7 @@ Java_AwContextMenuHelper_showContextMenu( env, java_obj_, context_menu::BuildJavaContextMenuParams( - params, render_frame_host.GetProcess()->GetID(), + params, render_frame_host.GetProcess()->GetDeprecatedID(), render_frame_host.GetFrameToken().value()), view->GetContainerView()); }
diff --git a/android_webview/browser/aw_permission_manager.cc b/android_webview/browser/aw_permission_manager.cc index 2b9e7c7..9f79e1f 100644 --- a/android_webview/browser/aw_permission_manager.cc +++ b/android_webview/browser/aw_permission_manager.cc
@@ -847,7 +847,7 @@ int AwPermissionManager::GetRenderProcessID( content::RenderFrameHost* render_frame_host) { - return render_frame_host->GetProcess()->GetID(); + return render_frame_host->GetProcess()->GetDeprecatedID(); } int AwPermissionManager::GetRenderFrameID(
diff --git a/android_webview/browser/aw_web_contents_delegate.cc b/android_webview/browser/aw_web_contents_delegate.cc index b1bcc1f..58aebe2 100644 --- a/android_webview/browser/aw_web_contents_delegate.cc +++ b/android_webview/browser/aw_web_contents_delegate.cc
@@ -136,7 +136,7 @@ << "Multiple concurrent FileChooser requests are not supported."; file_select_listener_ = std::move(listener); Java_AwWebContentsDelegate_runFileChooser( - env, java_delegate, render_frame_host->GetProcess()->GetID(), + env, java_delegate, render_frame_host->GetProcess()->GetDeprecatedID(), render_frame_host->GetRoutingID(), params.mode, params.open_writable, ConvertUTF16ToJavaString(env, base::JoinString(params.accept_types, u",")),
diff --git a/apps/launcher.cc b/apps/launcher.cc index e516f29..5bf375d 100644 --- a/apps/launcher.cc +++ b/apps/launcher.cc
@@ -340,7 +340,7 @@ std::vector<GrantedFileEntry> granted_entries; for (size_t i = 0; i < entry_paths_.size(); ++i) { granted_entries.push_back(CreateFileEntry( - context_, app, context_info->render_process_host->GetID(), + context_, app, context_info->render_process_host->GetDeprecatedID(), entries_[i].path, entries_[i].is_directory)); }
diff --git a/ash/assistant/ui/main_stage/suggestion_chip_view_unittest.cc b/ash/assistant/ui/main_stage/suggestion_chip_view_unittest.cc index 3051b07..b86f4ec 100644 --- a/ash/assistant/ui/main_stage/suggestion_chip_view_unittest.cc +++ b/ash/assistant/ui/main_stage/suggestion_chip_view_unittest.cc
@@ -14,10 +14,8 @@ #include "ash/style/ash_color_provider.h" #include "ash/style/dark_light_mode_controller_impl.h" #include "ash/test/ash_test_base.h" -#include "base/test/scoped_feature_list.h" #include "cc/paint/paint_flags.h" #include "cc/test/pixel_comparator.h" -#include "chromeos/constants/chromeos_features.h" #include "chromeos/ui/vector_icons/vector_icons.h" #include "testing/gtest/include/gtest/gtest.h" #include "third_party/skia/include/core/SkBitmap.h" @@ -72,37 +70,13 @@ return canvas.GetBitmap(); } -std::string GetTestSuffix(const testing::TestParamInfo<bool>& info) { - return info.param ? "JellyEnabled" : "JellyDisabled"; -} - } // namespace // Tests ----------------------------------------------------------------------- -class SuggestionChipViewTest : public AshTestBase, - public testing::WithParamInterface<bool> { - public: - SuggestionChipViewTest() { - scoped_feature_list_.InitWithFeatureState(chromeos::features::kJelly, - GetParam()); - } +using SuggestionChipViewTest = AshTestBase; - SuggestionChipViewTest(const SuggestionChipViewTest&) = delete; - SuggestionChipViewTest& operator=(const SuggestionChipViewTest&) = delete; - - ~SuggestionChipViewTest() override = default; - - private: - base::test::ScopedFeatureList scoped_feature_list_; -}; - -INSTANTIATE_TEST_SUITE_P(, - SuggestionChipViewTest, - testing::Bool(), - GetTestSuffix); - -TEST_P(SuggestionChipViewTest, ShouldHandleLocalIcons) { +TEST_F(SuggestionChipViewTest, ShouldHandleLocalIcons) { auto widget = CreateFramelessTestWidget(); auto* suggestion_chip_view = widget->SetContentsView(std::make_unique<SuggestionChipView>( @@ -117,7 +91,7 @@ ASSERT_PIXELS_EQ(actual, expected); } -TEST_P(SuggestionChipViewTest, ShouldHandleRemoteIcons) { +TEST_F(SuggestionChipViewTest, ShouldHandleRemoteIcons) { const gfx::ImageSkia expected = gfx::test::CreateImageSkia(/*width=*/10, /*height=*/10); @@ -139,7 +113,7 @@ EXPECT_TRUE(actual.BackedBySameObjectAs(expected)); } -TEST_P(SuggestionChipViewTest, DarkAndLightTheme) { +TEST_F(SuggestionChipViewTest, DarkAndLightTheme) { auto* dark_light_mode_controller = DarkLightModeControllerImpl::Get(); dark_light_mode_controller->OnActiveUserPrefServiceChanged( Shell::Get()->session_controller()->GetActivePrefService()); @@ -196,7 +170,7 @@ ColorProvider::ContentLayerType::kSeparatorColor)))); } -TEST_P(SuggestionChipViewTest, FontWeight) { +TEST_F(SuggestionChipViewTest, FontWeight) { auto widget = CreateFramelessTestWidget(); auto* suggestion_chip_view = widget->SetContentsView(std::make_unique<SuggestionChipView>(
diff --git a/ash/constants/ash_pref_names.h b/ash/constants/ash_pref_names.h index a318ec2..df654ccb 100644 --- a/ash/constants/ash_pref_names.h +++ b/ash/constants/ash_pref_names.h
@@ -1284,6 +1284,9 @@ // charge until necessary to extend battery life) is enabled. inline constexpr char kPowerAdaptiveChargingEnabled[] = "power.adaptive_charging_enabled"; +// Boolean pref of whether charge limit (i.e. holding battery at 80% charge to +// extend battery life) is enabled. +inline constexpr char kPowerChargeLimitEnabled[] = "power.charge_limit_enabled"; // Boolean pref of whether adaptive charging educational nudge is shown to the // user. inline constexpr char kPowerAdaptiveChargingNudgeShown[] =
diff --git a/ash/style/ash_color_mixer.cc b/ash/style/ash_color_mixer.cc index 165674611..3422cb7 100644 --- a/ash/style/ash_color_mixer.cc +++ b/ash/style/ash_color_mixer.cc
@@ -31,7 +31,6 @@ constexpr int kAlpha8 = SK_AlphaOPAQUE * 0.08f; constexpr int kAlpha10 = SK_AlphaOPAQUE * 0.1f; constexpr int kAlpha20 = SK_AlphaOPAQUE * 0.2f; -constexpr int kAlpha24 = SK_AlphaOPAQUE * 0.24f; constexpr int kAlpha25 = SK_AlphaOPAQUE * 0.25f; constexpr int kAlpha40 = SK_AlphaOPAQUE * 0.4f; constexpr int kAlpha60 = SK_AlphaOPAQUE * 0.6f; @@ -47,52 +46,24 @@ void AddShieldAndBaseColors(ui::ColorMixer& mixer, const ui::ColorProviderKey& key) { - if (chromeos::features::IsJellyEnabled()) { - // Generally, shield and base colors are cros.sys.sys-base-elevated. That - // is cros.sys.surface3 @ 90%. So, map all shield colors to surface3 and - // keep all the opacities. - // - // New users should use cros.sys.sys-base-elevated directly. - mixer[kColorAshShieldAndBase20] = - ui::SetAlpha(cros_tokens::kCrosSysSurface3, kAlpha20); - mixer[kColorAshShieldAndBase40] = - ui::SetAlpha(cros_tokens::kCrosSysSurface3, kAlpha40); - mixer[kColorAshShieldAndBase60] = - ui::SetAlpha(cros_tokens::kCrosSysSurface3, kAlpha60); - mixer[kColorAshShieldAndBase80] = - ui::SetAlpha(cros_tokens::kCrosSysSurface3, kAlpha80); - mixer[kColorAshShieldAndBase90] = - ui::SetAlpha(cros_tokens::kCrosSysSurface3, kAlpha90); - mixer[kColorAshShieldAndBase95] = - ui::SetAlpha(cros_tokens::kCrosSysSurface3, kAlpha95); - mixer[kColorAshShieldAndBaseOpaque] = {cros_tokens::kCrosSysSurface3}; - return; - } - - const bool use_dark_color = - key.color_mode == ui::ColorProviderKey::ColorMode::kDark; - - // Colors of the Shield and Base layers. - const SkColor default_background_color = - use_dark_color ? gfx::kGoogleGrey900 : SK_ColorWHITE; - // TODO(minch|skau): Investigate/fix whether should DCHECK the existence of - // the value of `use_color` here. - const SkColor background_color = - key.user_color.value_or(default_background_color); - - mixer[kColorAshShieldAndBase20] = {SkColorSetA(background_color, kAlpha20)}; - mixer[kColorAshShieldAndBase40] = {SkColorSetA(background_color, kAlpha40)}; - mixer[kColorAshShieldAndBase60] = {SkColorSetA(background_color, kAlpha60)}; - mixer[kColorAshShieldAndBase80] = {SkColorSetA(background_color, kAlpha80)}; - mixer[kColorAshInvertedShieldAndBase80] = { - SkColorSetA(color_utils::InvertColor(background_color), kAlpha80)}; - mixer[kColorAshShieldAndBase90] = {SkColorSetA(background_color, kAlpha90)}; - mixer[kColorAshShieldAndBase95] = {SkColorSetA(background_color, kAlpha95)}; - mixer[kColorAshShieldAndBaseOpaque] = { - SkColorSetA(background_color, SK_AlphaOPAQUE)}; - - // TODO(b/270468758): Remove when the last caller has been deleted. - mixer[kColorAshShieldAndBase80Light] = {SkColorSetA(SK_ColorWHITE, kAlpha80)}; + // Generally, shield and base colors are cros.sys.sys-base-elevated. That + // is cros.sys.surface3 @ 90%. So, map all shield colors to surface3 and + // keep all the opacities. + // + // New users should use cros.sys.sys-base-elevated directly. + mixer[kColorAshShieldAndBase20] = + ui::SetAlpha(cros_tokens::kCrosSysSurface3, kAlpha20); + mixer[kColorAshShieldAndBase40] = + ui::SetAlpha(cros_tokens::kCrosSysSurface3, kAlpha40); + mixer[kColorAshShieldAndBase60] = + ui::SetAlpha(cros_tokens::kCrosSysSurface3, kAlpha60); + mixer[kColorAshShieldAndBase80] = + ui::SetAlpha(cros_tokens::kCrosSysSurface3, kAlpha80); + mixer[kColorAshShieldAndBase90] = + ui::SetAlpha(cros_tokens::kCrosSysSurface3, kAlpha90); + mixer[kColorAshShieldAndBase95] = + ui::SetAlpha(cros_tokens::kCrosSysSurface3, kAlpha95); + mixer[kColorAshShieldAndBaseOpaque] = {cros_tokens::kCrosSysSurface3}; } // Mappings of Controls Colors for Material 2. @@ -164,13 +135,9 @@ ui::SetAlpha(kColorAshAppStateIndicatorColor, kDisabledColorOpacity); mixer[kColorAshShelfHandleColor] = {cros_tokens::kCrosSysOnSurface}; mixer[kColorAshShelfTooltipBackgroundColor] = { - chromeos::features::IsJellyEnabled() - ? static_cast<ui::ColorId>(cros_tokens::kCrosSysOnSurface) - : kColorAshInvertedShieldAndBase80}; + cros_tokens::kCrosSysOnSurface}; mixer[kColorAshShelfTooltipForegroundColor] = { - chromeos::features::IsJellyEnabled() - ? static_cast<ui::ColorId>(cros_tokens::kCrosSysInverseOnSurface) - : cros_tokens::kTextColorPrimaryInverted}; + cros_tokens::kCrosSysInverseOnSurface}; mixer[kColorAshSliderColorActive] = {kColorAshTextColorURL}; mixer[kColorAshSliderColorInactive] = {kColorAshScrollBarColor}; mixer[kColorAshRadioColorActive] = {kColorAshTextColorURL}; @@ -476,113 +443,6 @@ ui::kColorRefNeutralVariant100}; } -// Overrides some cros.sys colors in `mixer` with values that are appropriate -// for pre-Jelly features. -void ReverseMapSysColors(ui::ColorMixer& mixer, bool dark_mode) { - mixer[cros_tokens::kCrosSysPrimary] = {dark_mode ? gfx::kGoogleBlue200 - : gfx::kGoogleBlue600}; - mixer[cros_tokens::kCrosSysOnPrimary] = {dark_mode ? gfx::kGoogleGrey900 - : gfx::kGoogleGrey200}; - mixer[cros_tokens::kCrosSysSecondary] = {cros_tokens::kColorSecondary}; - mixer[cros_tokens::kCrosSysOnSecondary] = {dark_mode ? gfx::kGoogleGrey800 - : gfx::kGoogleGrey600}; - - if (dark_mode) { - // LightInkRipple in dark mode - mixer[cros_tokens::kCrosSysDisabledContainer] = ui::SetAlpha( - SK_ColorBLACK, StyleUtil::kLightInkDropOpacity * SK_AlphaOPAQUE); - } else { - // DarkInkRipple in dark mode - mixer[cros_tokens::kCrosSysDisabledContainer] = ui::SetAlpha( - SK_ColorWHITE, StyleUtil::kDarkInkDropOpacity * SK_AlphaOPAQUE); - } - - mixer[cros_tokens::kCrosSysHoverOnSubtle] = {SK_ColorTRANSPARENT}; - mixer[cros_tokens::kCrosSysSystemBaseElevated] = {kColorAshShieldAndBase80}; - mixer[cros_tokens::kCrosSysSystemOnBase] = { - kColorAshControlBackgroundColorInactive}; - mixer[cros_tokens::kCrosSysSystemOnNegativeContainer] = { - kColorAshTextColorPrimary}; - mixer[cros_tokens::kCrosSysSystemOnPrimaryContainer] = { - dark_mode ? ui::ColorTransform(gfx::kGoogleGrey900) - : ui::ColorTransform(kColorAshTextColorPrimary)}; - - mixer[cros_tokens::kCrosSysSystemNegativeContainer] = {gfx::kGoogleRed300}; - mixer[cros_tokens::kCrosSysPositive] = {cros_tokens::kColorPositive}; - - mixer[cros_tokens::kCrosSysSystemPrimaryContainer] = { - dark_mode ? gfx::kGoogleBlue200 : gfx::kGoogleBlue300}; - - // Colors for feature tile that differ from sys token mappings. - mixer[kColorAshTileSmallCircle] = - dark_mode ? ui::ColorTransform(cros_tokens::kCrosSysHighlightShape) - : ui::SetAlpha(gfx::kGoogleBlue600, 31); // 12% opacity - - // Remap the base color used in illustrations. - mixer[cros_tokens::kCrosSysAppBaseShaded] = {cros_tokens::kBgColor}; - - // Remap illo tokens to GM2 equivilants so GM3 assets will render reasonably - // if the jelly flag is flipped off for launch. - mixer[cros_tokens::kCrosSysIlloColor1] = {cros_tokens::kIllustrationColor1}; - mixer[cros_tokens::kCrosSysIlloColor11] = { - cros_tokens::kIllustrationColor1Shade1}; - mixer[cros_tokens::kCrosSysIlloColor12] = { - cros_tokens::kIllustrationColor1Shade2}; - mixer[cros_tokens::kCrosSysIlloColor2] = {cros_tokens::kIllustrationColor2}; - mixer[cros_tokens::kCrosSysIlloColor3] = {cros_tokens::kIllustrationColor3}; - mixer[cros_tokens::kCrosSysIlloColor4] = {cros_tokens::kIllustrationColor4}; - mixer[cros_tokens::kCrosSysIlloColor5] = {cros_tokens::kIllustrationColor5}; - mixer[cros_tokens::kCrosSysIlloColor6] = {cros_tokens::kIllustrationColor6}; - mixer[cros_tokens::kCrosSysIlloBase] = {cros_tokens::kIllustrationBaseColor}; - mixer[cros_tokens::kCrosSysIlloSecondary] = { - cros_tokens::kIllustrationSecondaryColor}; - // Card colors are new in GM3 and have no equivalent GM2 token. As such as map - // them to hex codes directly as specified in go/cros-tokens. - mixer[cros_tokens::kCrosSysIlloCardColor1] = - dark_mode ? ui::ColorTransform(SkColorSetRGB(0x42, 0x4d, 0x63)) - : SkColorSetRGB(0xff, 0xca, 0xd1); - mixer[cros_tokens::kCrosSysIlloCardOnColor1] = - dark_mode ? ui::ColorTransform(SkColorSetRGB(0xf6, 0xae, 0xa9)) - : SkColorSetRGB(0xa5, 0x0e, 0x0e); - mixer[cros_tokens::kCrosSysIlloCardColor2] = - dark_mode ? ui::ColorTransform(SkColorSetRGB(0x62, 0x5a, 0x47)) - : SkColorSetRGB(0xfb, 0xe0, 0x97); - mixer[cros_tokens::kCrosSysIlloCardOnColor2] = - dark_mode ? ui::ColorTransform(SkColorSetRGB(0xfd, 0xe2, 0x93)) - : SkColorSetRGB(0x9b, 0x61, 0x00); - mixer[cros_tokens::kCrosSysIlloCardColor3] = - dark_mode ? ui::ColorTransform(SkColorSetRGB(0x4d, 0x63, 0x52)) - : SkColorSetRGB(0xc6, 0xeb, 0xcb); - mixer[cros_tokens::kCrosSysIlloCardOnColor3] = - dark_mode ? ui::ColorTransform(SkColorSetRGB(0xa8, 0xda, 0xb5)) - : SkColorSetRGB(0x0d, 0x65, 0x2d); - mixer[cros_tokens::kCrosSysIlloCardColor4] = - dark_mode ? ui::ColorTransform(SkColorSetRGB(0x42, 0x4d, 0x63)) - : SkColorSetRGB(0xd0, 0xe1, 0xfa); - mixer[cros_tokens::kCrosSysIlloCardOnColor4] = - dark_mode ? ui::ColorTransform(SkColorSetRGB(0xae, 0xcb, 0xfa)) - : SkColorSetRGB(0x18, 0x5a, 0xbc); - mixer[cros_tokens::kCrosSysIlloCardColor5] = - dark_mode ? ui::ColorTransform(SkColorSetRGB(0x51, 0x40, 0x64)) - : SkColorSetRGB(0xf6, 0xe9, 0xf8); - mixer[cros_tokens::kCrosSysIlloCardOnColor5] = - dark_mode ? ui::ColorTransform(SkColorSetRGB(0xd7, 0xae, 0xfb)) - : SkColorSetRGB(0x75, 0x09, 0x9b); - // Some GM2 assets are "elevated" meaning they have slightly different - // colors to improve contrast on their elevated surfaces in dark mode. To - // handle this we create "elevated" sys tokens that are the same as their - // unelevated counterparts when the jelly flag is on but resolve to higher - // contrast GM2 colors when jelly is off and dark mode is on. - mixer[cros_tokens::kCrosSysIlloElevatedColor11] = { - cros_tokens::kIllustrationElevationColor1Shade1}; - mixer[cros_tokens::kCrosSysIlloElevatedColor12] = { - cros_tokens::kIllustrationElevationColor1Shade2}; - mixer[cros_tokens::kCrosSysIlloElevatedBase] = { - cros_tokens::kIllustrationElevationBaseColor}; - mixer[cros_tokens::kCrosSysIlloElevatedSecondary] = { - cros_tokens::kIllustrationElevationSecondaryColor}; -} - // Maps colors used in Skottie images to their cros.sys values. void RemapIllustrationColors(ui::ColorMixer& mixer) { mixer[ui::kColorNativeColor1] = {cros_tokens::kCrosSysIlloColor1}; @@ -634,11 +494,9 @@ const ui::ColorProviderKey& key) { ui::ColorMixer& mixer = provider->AddMixer(); bool dark_mode = key.color_mode == ui::ColorProviderKey::ColorMode::kDark; - if (chromeos::features::IsJellyEnabled()) { - AddRefPalette(mixer, key); - } else { - cros_tokens::AddCrosRefColorsToMixer(mixer, dark_mode); - } + + AddRefPalette(mixer, key); + // Add after ref colors since it needs to override them. AddHarmonizedColors(mixer, key); AddSparkleColors(mixer, key); @@ -646,19 +504,12 @@ cros_tokens::AddCrosSysColorsToMixer(mixer, dark_mode); // Gaming colors override sys colors (so need to be added later). AddGamingColors(mixer, key); - if (!chromeos::features::IsJellyEnabled()) { - // Overrides some cros.sys colors with pre-Jelly values so they can used in - // UI with the Jelly flag off. - ReverseMapSysColors(mixer, dark_mode); - } // TODO(b/234400002): Remove legacy colors once all usages are cleaned up. cros_tokens::AddLegacySemanticColorsToMixer(mixer, dark_mode); - if (chromeos::features::IsJellyEnabled()) { - RemapLegacySemanticColors(mixer); - RemapIllustrationColors(mixer); - } + RemapLegacySemanticColors(mixer); + RemapIllustrationColors(mixer); } void AddAshColorMixer(ui::ColorProvider* provider, @@ -666,7 +517,6 @@ ui::ColorMixer& mixer = provider->AddMixer(); const bool use_dark_color = key.color_mode == ui::ColorProviderKey::ColorMode::kDark; - const bool is_jelly_enabled = chromeos::features::IsJellyEnabled(); AddShieldAndBaseColors(mixer, key); AddControlsColors(mixer, key); @@ -712,17 +562,12 @@ mixer[ui::kColorAshOnboardingFocusRing] = {cros_tokens::kColorProminentDark}; mixer[ui::kColorAshSystemUIMenuBackground] = { - is_jelly_enabled - ? static_cast<ui::ColorId>( - chromeos::features::IsSystemBlurEnabled() - ? cros_tokens::kCrosSysSystemBaseElevated - : cros_tokens::kCrosSysSystemBaseElevatedOpaque) - : kColorAshShieldAndBase80}; + chromeos::features::IsSystemBlurEnabled() + ? cros_tokens::kCrosSysSystemBaseElevated + : cros_tokens::kCrosSysSystemBaseElevatedOpaque}; mixer[ui::kColorAshSystemUIMenuIcon] = {kColorAshIconColorPrimary}; mixer[ui::kColorAshSystemUIMenuItemBackgroundSelected] = { - is_jelly_enabled - ? static_cast<ui::ColorId>(cros_tokens::kCrosSysHoverOnSubtle) - : kColorAshInkDrop}; + cros_tokens::kCrosSysHoverOnSubtle}; mixer[ui::kColorAshSystemUIMenuSeparator] = {cros_tokens::kCrosSysSeparator}; @@ -747,9 +592,8 @@ cros_tokens::kCrosSysSystemOnBase}; mixer[kColorAshSystemInfoBarChartColorForeground] = { - use_dark_color - ? static_cast<ui::ColorId>(cros_tokens::kCrosSysPrimaryDark) - : static_cast<ui::ColorId>(cros_tokens::kCrosSysPrimary)}; + use_dark_color ? cros_tokens::kCrosSysPrimaryDark + : cros_tokens::kCrosSysPrimary}; mixer[kColorAshSystemInfoBarChartWarningColorForeground] = { cros_tokens::kCrosSysError}; @@ -779,31 +623,23 @@ use_dark_color ? cros_tokens::kCrosRefNeutral20 : cros_tokens::kCrosRefNeutral80}; - if (is_jelly_enabled) { - mixer[ui::kColorRadioButtonForegroundChecked] = { - cros_tokens::kCrosSysPrimary}; - mixer[ui::kColorRadioButtonForegroundUnchecked] = { - cros_tokens::kCrosSysSecondary}; - } + mixer[ui::kColorRadioButtonForegroundChecked] = { + cros_tokens::kCrosSysPrimary}; + mixer[ui::kColorRadioButtonForegroundUnchecked] = { + cros_tokens::kCrosSysSecondary}; // Ambient shadow colors. - mixer[ui::kColorShadowValueAmbientShadowElevationFour] = - is_jelly_enabled - ? ui::SetAlpha( - use_dark_color - ? static_cast<ui::ColorId>(cros_tokens::kCrosRefNeutral0) - : static_cast<ui::ColorId>(cros_tokens::kCrosSysShadow), - kAlpha10) - : ui::SetAlpha(SK_ColorBLACK, kAlpha10); + mixer[ui::kColorShadowValueAmbientShadowElevationFour] = ui::SetAlpha( + use_dark_color ? cros_tokens::kCrosRefNeutral0 + : static_cast<ui::ColorId>(cros_tokens::kCrosSysShadow), + kAlpha10); mixer[ui::kColorShadowValueAmbientShadowElevationTwelve] = { ui::kColorShadowValueAmbientShadowElevationFour}; mixer[ui::kColorShadowValueAmbientShadowElevationTwentyFour] = - is_jelly_enabled - ? ui::SetAlpha(cros_tokens::kCrosSysShadow, kAlpha10) - : ui::ColorTransform(ui::kColorShadowValueAmbientShadowElevationFour); + ui::SetAlpha(cros_tokens::kCrosSysShadow, kAlpha10); // Key shadow colors. - int key_shadow_opacity = is_jelly_enabled ? kAlpha20 : kAlpha24; + int key_shadow_opacity = kAlpha20; mixer[ui::kColorShadowValueKeyShadowElevationFour] = ui::SetAlpha( ui::kColorShadowValueAmbientShadowElevationFour, key_shadow_opacity); mixer[ui::kColorShadowValueKeyShadowElevationTwelve] = ui::SetAlpha( @@ -829,7 +665,7 @@ mixer[ui::kColorTooltipBackground] = {cros_tokens::kCrosSysOnSurface}; mixer[ui::kColorTooltipForeground] = {cros_tokens::kCrosSysInverseOnSurface}; - if (is_jelly_enabled && !key.custom_theme && + if (!key.custom_theme && key.user_color_source == ui::ColorProviderKey::UserColorSource::kAccent) { // Only override frame color if there's no custom theme or we'll override // the value from the theme. Fallback to the default ui/color definition for
diff --git a/ash/style/ash_color_provider_unittest.cc b/ash/style/ash_color_provider_unittest.cc index 75d98d0..243553e 100644 --- a/ash/style/ash_color_provider_unittest.cc +++ b/ash/style/ash_color_provider_unittest.cc
@@ -10,9 +10,7 @@ #include "ash/test/ash_test_helper.h" #include "base/memory/raw_ptr.h" #include "base/strings/stringprintf.h" -#include "base/test/scoped_feature_list.h" #include "base/test/task_environment.h" -#include "chromeos/constants/chromeos_features.h" #include "testing/gtest/include/gtest/gtest-param-test.h" #include "testing/gtest/include/gtest/gtest.h" #include "ui/color/color_provider_key.h" @@ -59,11 +57,7 @@ : public testing::TestWithParam<ColorsTestCase<LayerType>> { public: AshColorProviderBase() - : task_environment_(base::test::TaskEnvironment::MainThreadType::UI) { - // Disable when Jelly is enabled since it changes all the colors (and - // this test verifies the old colors). - features_.InitAndDisableFeature(chromeos::features::kJelly); - } + : task_environment_(base::test::TaskEnvironment::MainThreadType::UI) {} void SetUp() override { ash_test_helper_.SetUp(); @@ -76,7 +70,6 @@ } protected: - base::test::ScopedFeatureList features_; base::test::TaskEnvironment task_environment_; AshTestHelper ash_test_helper_; raw_ptr<AshColorProvider, DanglingUntriaged> color_provider_; @@ -102,22 +95,22 @@ {// Dark mode {ColorMode::kDark, ColorProvider::ControlsLayerType::kControlBackgroundColorActive, - SkColorSetRGB(0x8A, 0xB4, 0xF8)}, + SkColorSetRGB(0x74, 0xD5, 0xE4)}, {ColorMode::kDark, ColorProvider::ControlsLayerType::kControlBackgroundColorInactive, SkColorSetARGB(0x1A, 0xFF, 0xFF, 0xFF)}, {ColorMode::kDark, ColorProvider::ControlsLayerType::kFocusRingColor, - SkColorSetRGB(0x8A, 0xB4, 0xF8)}, + SkColorSetRGB(0x74, 0xD5, 0xE4)}, // Light mode {ColorMode::kLight, ColorProvider::ControlsLayerType::kControlBackgroundColorActive, - SkColorSetRGB(0x1A, 0x73, 0xE8)}, + SkColorSetRGB(0x0, 0x68, 0x74)}, {ColorMode::kLight, ColorProvider::ControlsLayerType::kControlBackgroundColorInactive, SkColorSetARGB(0x0D, 0x0, 0x0, 0x0)}, {ColorMode::kLight, ColorProvider::ControlsLayerType::kFocusRingColor, - SkColorSetRGB(0x1A, 0x73, 0xE8)}})); + SkColorSetRGB(0x0, 0x68, 0x74)}})); class AshColorProviderContentTest : public AshColorProviderBase<ColorProvider::ContentLayerType> {}; @@ -141,53 +134,53 @@ SkColorSetARGB(0x24, 0x0, 0x0, 0x0)}, {ColorMode::kLight, ColorProvider::ContentLayerType::kTextColorPrimary, - SkColorSetRGB(0x20, 0x21, 0x24)}, + SkColorSetRGB(0x17, 0x1D, 0x1E)}, {ColorMode::kLight, ColorProvider::ContentLayerType::kTextColorSecondary, - SkColorSetRGB(0x5F, 0x63, 0x68)}, + SkColorSetRGB(0x3F, 0x48, 0x4A)}, {ColorMode::kLight, ColorProvider::ContentLayerType::kTextColorURL, - SkColorSetRGB(0x1A, 0x73, 0xE8)}, + SkColorSetRGB(0x0, 0x68, 0x74)}, {ColorMode::kLight, ColorProvider::ContentLayerType::kIconColorPrimary, - SkColorSetRGB(0x20, 0x21, 0x24)}, + SkColorSetRGB(0x17, 0x1D, 0x1E)}, {ColorMode::kLight, ColorProvider::ContentLayerType::kIconColorSecondary, - SkColorSetRGB(0x5F, 0x63, 0x68)}, + SkColorSetRGB(0x4A, 0x62, 0x67)}, {ColorMode::kLight, ColorProvider::ContentLayerType::kIconColorAlert, - SkColorSetRGB(0xD9, 0x30, 0x25)}, + SkColorSetRGB(0xD6, 0x43, 0x2F)}, {ColorMode::kLight, ColorProvider::ContentLayerType::kIconColorWarning, - SkColorSetRGB(0xE3, 0x74, 0x0)}, + SkColorSetRGB(0xA8, 0x69, 0x0)}, {ColorMode::kLight, ColorProvider::ContentLayerType::kIconColorProminent, - SkColorSetRGB(0x1A, 0x73, 0xE8)}, + SkColorSetRGB(0x0, 0x68, 0x74)}, {ColorMode::kLight, ColorProvider::ContentLayerType::kIconColorSecondaryBackground, SkColorSetRGB(0x3C, 0x40, 0x43)}, {ColorMode::kLight, ColorProvider::ContentLayerType::kButtonLabelColor, - SkColorSetRGB(0x20, 0x21, 0x24)}, + SkColorSetRGB(0x17, 0x1D, 0x1E)}, {ColorMode::kLight, ColorProvider::ContentLayerType::kButtonLabelColorBlue, - SkColorSetRGB(0x1A, 0x73, 0xE8)}, + SkColorSetRGB(0x0, 0x68, 0x74)}, {ColorMode::kLight, ColorProvider::ContentLayerType::kButtonIconColor, - SkColorSetRGB(0x20, 0x21, 0x24)}, + SkColorSetRGB(0x17, 0x1D, 0x1E)}, {ColorMode::kLight, ColorProvider::ContentLayerType::kButtonIconColorPrimary, - SkColorSetRGB(0xE8, 0xEA, 0xED)}, + SkColorSetRGB(0xDE, 0xE3, 0xE5)}, {ColorMode::kLight, ColorProvider::ContentLayerType::kSwitchKnobColorActive, - SkColorSetRGB(0x1A, 0x73, 0xE8)}, + SkColorSetRGB(0x0, 0x68, 0x74)}, {ColorMode::kLight, ColorProvider::ContentLayerType::kSwitchKnobColorInactive, SkColorSetRGB(0xFF, 0xFF, 0xFF)}, {ColorMode::kLight, ColorProvider::ContentLayerType::kSwitchTrackColorActive, - SkColorSetARGB(0x4C, 0x1A, 0x73, 0xE8)}, + SkColorSetARGB(0x4C, 0x0, 0x68, 0x74)}, {ColorMode::kLight, ColorProvider::ContentLayerType::kSwitchTrackColorInactive, SkColorSetARGB(0x4C, 0x5F, 0x63, 0x68)}, @@ -197,52 +190,52 @@ SkColorSetARGB(0x24, 0xFF, 0xFF, 0xFF)}, {ColorMode::kDark, ColorProvider::ContentLayerType::kTextColorPrimary, - SkColorSetRGB(0xE8, 0xEA, 0xED)}, + SkColorSetRGB(0xDE, 0xE3, 0xE5)}, {ColorMode::kDark, ColorProvider::ContentLayerType::kTextColorSecondary, - SkColorSetRGB(0xBD, 0xC1, 0xC6)}, + SkColorSetRGB(0xBF, 0xC8, 0xCA)}, {ColorMode::kDark, ColorProvider::ContentLayerType::kTextColorURL, - SkColorSetRGB(0x8A, 0xB4, 0xF8)}, + SkColorSetRGB(0x74, 0xD5, 0xE4)}, {ColorMode::kDark, ColorProvider::ContentLayerType::kIconColorPrimary, - SkColorSetRGB(0xE8, 0xEA, 0xED)}, + SkColorSetRGB(0xDE, 0xE3, 0xE5)}, {ColorMode::kDark, ColorProvider::ContentLayerType::kIconColorSecondary, - SkColorSetRGB(0xBD, 0xC1, 0xC6)}, + SkColorSetRGB(0xB1, 0xCB, 0xD0)}, {ColorMode::kDark, ColorProvider::ContentLayerType::kIconColorAlert, - SkColorSetRGB(0xF2, 0x8B, 0x82)}, + SkColorSetRGB(0xFF, 0xB4, 0xA7)}, {ColorMode::kDark, ColorProvider::ContentLayerType::kIconColorWarning, - SkColorSetRGB(0xFD, 0xD6, 0x63)}, + SkColorSetRGB(0xFF, 0xB9, 0x61)}, {ColorMode::kDark, ColorProvider::ContentLayerType::kIconColorProminent, - SkColorSetRGB(0x8A, 0xB4, 0xF8)}, + SkColorSetRGB(0x74, 0xD5, 0xE4)}, {ColorMode::kDark, ColorProvider::ContentLayerType::kIconColorSecondaryBackground, SkColorSetRGB(0xF1, 0xF3, 0xF4)}, {ColorMode::kDark, ColorProvider::ContentLayerType::kButtonLabelColor, - SkColorSetRGB(0xE8, 0xEA, 0xED)}, + SkColorSetRGB(0xDE, 0xE3, 0xE5)}, {ColorMode::kDark, ColorProvider::ContentLayerType::kButtonLabelColorBlue, - SkColorSetRGB(0x8A, 0xB4, 0xF8)}, + SkColorSetRGB(0x74, 0xD5, 0xE4)}, {ColorMode::kDark, ColorProvider::ContentLayerType::kButtonIconColor, - SkColorSetRGB(0xE8, 0xEA, 0xED)}, + SkColorSetRGB(0xDE, 0xE3, 0xE5)}, {ColorMode::kDark, ColorProvider::ContentLayerType::kButtonIconColorPrimary, - SkColorSetRGB(0x20, 0x21, 0x24)}, + SkColorSetRGB(0x17, 0x1D, 0x1E)}, {ColorMode::kDark, ColorProvider::ContentLayerType::kSwitchKnobColorActive, - SkColorSetRGB(0x8A, 0xB4, 0xF8)}, + SkColorSetRGB(0x74, 0xD5, 0xE4)}, {ColorMode::kDark, ColorProvider::ContentLayerType::kSwitchKnobColorInactive, SkColorSetRGB(0xBD, 0xC1, 0xC6)}, {ColorMode::kDark, ColorProvider::ContentLayerType::kSwitchTrackColorActive, - SkColorSetARGB(0x4C, 0x8A, 0xB4, 0xF8)}, + SkColorSetARGB(0x4C, 0x74, 0xD5, 0xE4)}, {ColorMode::kDark, ColorProvider::ContentLayerType::kSwitchTrackColorInactive, SkColorSetARGB(0x4C, 0xE8, 0xEA, 0xED)}}));
diff --git a/ash/style/counter_expand_button.cc b/ash/style/counter_expand_button.cc index 46d4150..69cf4c7e 100644 --- a/ash/style/counter_expand_button.cc +++ b/ash/style/counter_expand_button.cc
@@ -15,7 +15,6 @@ #include "ash/system/notification_center/message_center_utils.h" #include "ash/system/tray/tray_constants.h" #include "base/metrics/histogram_functions.h" -#include "chromeos/constants/chromeos_features.h" #include "ui/base/metadata/metadata_impl_macros.h" #include "ui/chromeos/styles/cros_tokens_color_mappings.h" #include "ui/compositor/animation_throughput_reporter.h" @@ -37,7 +36,6 @@ constexpr gfx::Insets kImageInsets(2); constexpr auto kLabelInsets = gfx::Insets::TLBR(0, 8, 0, 0); constexpr int kCornerRadius = 12; -constexpr int kChevronIconSize = 16; constexpr int kJellyChevronIconSize = 20; constexpr int kLabelFontSize = 12; @@ -58,10 +56,8 @@ label->SetText(base::NumberToString16(counter_)); label->SetVisible(ShouldShowLabel()); label_ = AddChildView(std::move(label)); - if (chromeos::features::IsJellyEnabled()) { - ash::TypographyProvider::Get()->StyleLabel( - ash::TypographyToken::kCrosAnnotation1, *label_); - } + ash::TypographyProvider::Get()->StyleLabel( + ash::TypographyToken::kCrosAnnotation1, *label_); auto image = std::make_unique<views::ImageView>(); image->SetPaintToLayer(); @@ -113,10 +109,9 @@ } void CounterExpandButton::UpdateIcons() { - SkColor icon_color = + const SkColor icon_color = GetColorProvider()->GetColor(cros_tokens::kCrosSysOnSurface); - int icon_size = chromeos::features::IsJellyEnabled() ? kJellyChevronIconSize - : kChevronIconSize; + const int icon_size = kJellyChevronIconSize; expanded_image_ = gfx::CreateVectorIcon(kChevronUpSmallIcon, icon_size, icon_color);
diff --git a/ash/style/pill_button.cc b/ash/style/pill_button.cc index f872f52..1bb8d558 100644 --- a/ash/style/pill_button.cc +++ b/ash/style/pill_button.cc
@@ -4,14 +4,12 @@ #include "ash/style/pill_button.h" -#include "ash/constants/ash_features.h" #include "ash/public/cpp/style/color_provider.h" #include "ash/style/ash_color_id.h" #include "ash/style/blurred_background_shield.h" #include "ash/style/color_util.h" #include "ash/style/style_util.h" #include "ash/style/typography.h" -#include "chromeos/constants/chromeos_features.h" #include "ui/base/l10n/l10n_util.h" #include "ui/base/metadata/metadata_impl_macros.h" #include "ui/chromeos/styles/cros_tokens_color_mappings.h" @@ -88,32 +86,21 @@ std::optional<ui::ColorId> GetDefaultBackgroundColorId(PillButton::Type type) { std::optional<ui::ColorId> color_id; - const bool is_jellyroll_enabled = chromeos::features::IsJellyrollEnabled(); - switch (type & kButtonColorVariant) { case PillButton::kDefault: - color_id = is_jellyroll_enabled - ? cros_tokens::kCrosSysSystemOnBase - : static_cast<ui::ColorId>( - kColorAshControlBackgroundColorInactive); + color_id = cros_tokens::kCrosSysSystemOnBase; break; case PillButton::kDefaultElevated: color_id = cros_tokens::kCrosSysSystemBaseElevated; break; case PillButton::kPrimary: - color_id = - is_jellyroll_enabled - ? cros_tokens::kCrosSysPrimary - : static_cast<ui::ColorId>(kColorAshControlBackgroundColorActive); + color_id = cros_tokens::kCrosSysPrimary; break; case PillButton::kSecondary: color_id = kColorAshSecondaryButtonBackgroundColor; break; case PillButton::kAlert: - color_id = - is_jellyroll_enabled - ? cros_tokens::kCrosSysError - : static_cast<ui::ColorId>(kColorAshControlBackgroundColorAlert); + color_id = cros_tokens::kCrosSysError; break; case PillButton::kAccent: color_id = kColorAshControlBackgroundColorInactive; @@ -129,36 +116,24 @@ PillButton::Type type) { std::optional<ui::ColorId> color_id; - const bool is_jellyroll_enabled = chromeos::features::IsJellyrollEnabled(); - switch (type & kButtonColorVariant) { case PillButton::kDefault: - color_id = is_jellyroll_enabled - ? cros_tokens::kCrosSysOnSurface - : static_cast<ui::ColorId>(kColorAshButtonLabelColor); + color_id = cros_tokens::kCrosSysOnSurface; break; case PillButton::kDefaultElevated: color_id = cros_tokens::kCrosSysOnSurface; break; case PillButton::kPrimary: - color_id = - is_jellyroll_enabled - ? cros_tokens::kCrosSysOnPrimary - : static_cast<ui::ColorId>(kColorAshButtonLabelColorPrimary); + color_id = cros_tokens::kCrosSysOnPrimary; break; case PillButton::kSecondary: color_id = cros_tokens::kCrosSysOnSecondaryContainer; break; case PillButton::kFloating: - color_id = is_jellyroll_enabled - ? cros_tokens::kCrosSysPrimary - : static_cast<ui::ColorId>(kColorAshButtonLabelColor); + color_id = cros_tokens::kCrosSysPrimary; break; case PillButton::kAlert: - color_id = - is_jellyroll_enabled - ? cros_tokens::kCrosSysOnError - : static_cast<ui::ColorId>(kColorAshButtonLabelColorPrimary); + color_id = cros_tokens::kCrosSysOnError; break; case PillButton::kAccent: case PillButton::kAccent | PillButton::kFloating: @@ -408,13 +383,10 @@ views::InstallRoundRectHighlightPathGenerator(this, gfx::Insets(), height / 2.f); - if (chromeos::features::IsJellyrollEnabled() || - (type_ & kButtonColorVariant) == kPrimary) { - // Add padding around focus highlight only. - views::FocusRing::Get(this)->SetPathGenerator( - std::make_unique<views::RoundRectHighlightPathGenerator>( - gfx::Insets(-kFocusRingPadding), height / 2.f + kFocusRingPadding)); - } + // Add padding around focus highlight only. + views::FocusRing::Get(this)->SetPathGenerator( + std::make_unique<views::RoundRectHighlightPathGenerator>( + gfx::Insets(-kFocusRingPadding), height / 2.f + kFocusRingPadding)); // TODO(b/290639214): We no longer need this after deprecating // SetPillButtonType since the whether using background should be settled on
diff --git a/ash/style/rounded_label.cc b/ash/style/rounded_label.cc index 37fa8e4..c27d625 100644 --- a/ash/style/rounded_label.cc +++ b/ash/style/rounded_label.cc
@@ -6,7 +6,6 @@ #include "ash/public/cpp/style/color_provider.h" #include "ash/style/ash_color_id.h" -#include "chromeos/constants/chromeos_features.h" #include "ui/base/metadata/metadata_impl_macros.h" #include "ui/compositor/layer.h" #include "ui/views/background.h" @@ -49,9 +48,7 @@ void RoundedLabel::OnPaintBorder(gfx::Canvas* canvas) { views::HighlightBorder::PaintBorderToCanvas( canvas, *this, GetLocalBounds(), gfx::RoundedCornersF(rounding_dp_), - chromeos::features::IsJellyrollEnabled() - ? views::HighlightBorder::Type::kHighlightBorderNoShadow - : views::HighlightBorder::Type::kHighlightBorder2); + views::HighlightBorder::Type::kHighlightBorderNoShadow); } BEGIN_METADATA(RoundedLabel)
diff --git a/ash/style/style_viewer/system_ui_components_style_viewer_view.cc b/ash/style/style_viewer/system_ui_components_style_viewer_view.cc index ee9dd9a..453c820 100644 --- a/ash/style/style_viewer/system_ui_components_style_viewer_view.cc +++ b/ash/style/style_viewer/system_ui_components_style_viewer_view.cc
@@ -14,7 +14,6 @@ #include "ash/wm/desks/desks_util.h" #include "base/containers/contains.h" #include "base/functional/bind.h" -#include "chromeos/constants/chromeos_features.h" #include "ui/base/metadata/metadata_header_macros.h" #include "ui/base/metadata/metadata_impl_macros.h" #include "ui/chromeos/styles/cros_tokens_color_mappings.h" @@ -95,9 +94,7 @@ : views::LabelButton(std::move(pressed_callback), name) { SetHorizontalAlignment(gfx::HorizontalAlignment::ALIGN_CENTER); SetBorder(std::make_unique<views::HighlightBorder>( - 0, chromeos::features::IsJellyrollEnabled() - ? views::HighlightBorder::Type::kHighlightBorderNoShadow - : views::HighlightBorder::Type::kHighlightBorder1)); + 0, views::HighlightBorder::Type::kHighlightBorderNoShadow)); label()->SetSubpixelRenderingEnabled(false); label()->SetFontList(views::Label::GetDefaultFontList().Derive( 1, gfx::Font::NORMAL, gfx::Font::Weight::MEDIUM));
diff --git a/ash/style/system_shadow_unittest.cc b/ash/style/system_shadow_unittest.cc index 0d12248..ca94c74 100644 --- a/ash/style/system_shadow_unittest.cc +++ b/ash/style/system_shadow_unittest.cc
@@ -7,8 +7,6 @@ #include "ash/public/cpp/style/dark_light_mode_controller.h" #include "ash/style/system_shadow.h" #include "ash/test/ash_test_base.h" -#include "base/test/scoped_feature_list.h" -#include "chromeos/constants/chromeos_features.h" #include "ui/aura/window.h" #include "ui/chromeos/styles/cros_tokens_color_mappings.h" #include "ui/color/color_id.h" @@ -63,9 +61,6 @@ // AshTestBase: void SetUp() override { AshTestBase::SetUp(); - // Enable Jelly and Jellyroll features. - scoped_feature_list_.InitWithFeatures( - {chromeos::features::kJelly, chromeos::features::kJellyroll}, {}); // Create a test widget as the owner of the shadow instances. widget_ = CreateTestWidget( views::Widget::InitParams::WIDGET_OWNS_NATIVE_WIDGET, @@ -131,7 +126,6 @@ return shadow; } - base::test::ScopedFeatureList scoped_feature_list_; // The test widget used as a shadow owner. std::unique_ptr<views::Widget> widget_; };
diff --git a/ash/style/typography.cc b/ash/style/typography.cc index d7c69d1..4056e51 100644 --- a/ash/style/typography.cc +++ b/ash/style/typography.cc
@@ -15,7 +15,6 @@ #include "base/sequence_checker.h" #include "base/thread_annotations.h" #include "base/types/cxx23_to_underlying.h" -#include "chromeos/constants/chromeos_features.h" #include "ui/gfx/font.h" #include "ui/gfx/font_list.h" #include "ui/views/controls/label.h" @@ -269,8 +268,7 @@ // Returns the equivalient cros.sys token for a legacy token if styles should // be converted. TypographyToken ConvertToken(TypographyToken token) const { - if (!chromeos::features::IsJellyEnabled() || - token > TypographyToken::kLastLegacyToken) { + if (token > TypographyToken::kLastLegacyToken) { return token; }
diff --git a/ash/system/nearby_share/nearby_share_detailed_view_impl.cc b/ash/system/nearby_share/nearby_share_detailed_view_impl.cc index 34c593b0..2411fac 100644 --- a/ash/system/nearby_share/nearby_share_detailed_view_impl.cc +++ b/ash/system/nearby_share/nearby_share_detailed_view_impl.cc
@@ -32,6 +32,28 @@ constexpr auto kToggleRowTriViewInsets = gfx::Insets::VH(8, 24); constexpr auto kVisibilitySelectionContainerMargins = gfx::Insets::TLBR(2, 0, 0, 0); + +void FormatVisibilityRow(ash::HoverHighlightView* visibility_row, + const gfx::VectorIcon& vector_icon, + const std::u16string& label, + const std::u16string& sublabel, + const ui::ColorId color_id, + const bool is_row_enabled) { + DCHECK(visibility_row); + visibility_row->Reset(); + visibility_row->AddIconAndLabel( + ui::ImageModel::FromVectorIcon(vector_icon, /*color_id=*/color_id), + label); + visibility_row->text_label()->SetEnabledColorId(color_id); + visibility_row->SetSubText(sublabel); + visibility_row->sub_text_label()->SetEnabledColorId(color_id); + visibility_row->AddRightIcon(ui::ImageModel::FromVectorIcon( + ash::kHollowCheckCircleIcon, + /*color_id=*/cros_tokens::kCrosSysOnSurface), + 20); + visibility_row->SetRightViewVisible(false); + visibility_row->SetEnabled(is_row_enabled); +} } // namespace namespace ash { @@ -140,6 +162,8 @@ CreateContactsRow(); CreateHiddenRow(); CreateEveryoneRow(); + FormatVisibilitySelectionContainer( + nearby_share_delegate_->IsHighVisibilityOn()); } void NearbyShareDetailedViewImpl::CreateYourDevicesRow() { @@ -154,6 +178,7 @@ kQuickSettingsQuickShareYourDevicesIcon, /*label=*/u"Your devices", /*sublabel=*/u"Only devices signed into test@gmail.com"); + your_devices_row_->SetFocusBehavior(FocusBehavior::NEVER); } void NearbyShareDetailedViewImpl::CreateContactsRow() { @@ -167,6 +192,7 @@ CreateVisibilityRow(contacts_row_, kQuickSettingsQuickShareContactsIcon, /*label=*/u"Contacts", /*sublabel=*/u"Only your contacts with a Google Account"); + contacts_row_->SetFocusBehavior(FocusBehavior::NEVER); } void NearbyShareDetailedViewImpl::CreateHiddenRow() { @@ -180,6 +206,7 @@ CreateVisibilityRow(hidden_row_, kQuickSettingsQuickShareHiddenIcon, /*label=*/u"Hidden", /*sublabel=*/u"No one can share with you"); + hidden_row_->SetFocusBehavior(FocusBehavior::NEVER); } void NearbyShareDetailedViewImpl::CreateVisibilityRow( @@ -195,6 +222,9 @@ vector_icon, /*color_id=*/cros_tokens::kCrosSysOnSurface), label); visibility_row->SetSubText(sublabel); + visibility_row->AddRightIcon(ui::ImageModel::FromVectorIcon(kCheckCircleIcon), + 20); + visibility_row->SetRightViewVisible(false); } void NearbyShareDetailedViewImpl::CreateEveryoneRow() { @@ -205,31 +235,70 @@ everyone_row_ = visibility_selection_container_->AddChildView( std::make_unique<HoverHighlightView>(/*listener=*/this)); everyone_row_->SetFocusBehavior(FocusBehavior::NEVER); +} +void NearbyShareDetailedViewImpl::FormatEveryoneRow( + const ui::ColorId color_id, + const bool in_high_visibility, + const bool is_row_enabled) { + everyone_toggle_ = nullptr; + everyone_row_->Reset(); // TODO(brandosocarras, b/360150790): Use IDS strings for label and sublabel. everyone_row_->AddIconAndLabel( - ui::ImageModel::FromVectorIcon( - kQuickSettingsQuickShareEveryoneIcon, - /*color_id=*/cros_tokens::kCrosSysOnSurface), + ui::ImageModel::FromVectorIcon(kQuickSettingsQuickShareEveryoneIcon, + /*color_id=*/color_id), u"Visible to everyone"); + everyone_row_->text_label()->SetEnabledColorId(color_id); everyone_row_->SetSubText(u"You will be visible to everyone for 5 minutes."); - everyone_row_->text_label()->SetEnabledColorId( - cros_tokens::kCrosSysOnSurface); - TypographyProvider::Get()->StyleLabel(ash::TypographyToken::kCrosBody2, - *everyone_row_->text_label()); + everyone_row_->sub_text_label()->SetEnabledColorId(color_id); auto toggle_switch = std::make_unique<Switch>( base::BindRepeating(&NearbyShareDetailedViewImpl::OnEveryoneToggleClicked, weak_factory_.GetWeakPtr())); everyone_toggle_ = toggle_switch.get(); toggle_switch->SetIsOn( - nearby_share_delegate_->IsHighVisibilityOn() || + in_high_visibility || nearby_share_delegate_->IsEnableHighVisibilityRequestActive()); everyone_row_->AddRightView(toggle_switch.release()); + everyone_row_->SetEnabled(is_row_enabled); // ChromeVox users will just use the toggle switch to toggle. everyone_row_->text_label()->GetViewAccessibility().SetIsIgnored(true); } +void NearbyShareDetailedViewImpl::FormatVisibilitySelectionContainer( + const bool in_high_visibility) { + const bool is_quick_share_enabled = nearby_share_delegate_->IsEnabled(); + const bool is_background_visibility_enabled = + is_quick_share_enabled && !in_high_visibility; + + const ui::ColorId background_visibility_row_color = + is_background_visibility_enabled ? cros_tokens::kCrosSysOnSurface + : cros_tokens::kCrosSysDisabled; + const ui::ColorId everyone_row_color = is_quick_share_enabled + ? cros_tokens::kCrosSysOnSurface + : cros_tokens::kCrosSysDisabled; + + FormatVisibilityRow(your_devices_row_, + kQuickSettingsQuickShareYourDevicesIcon, + /*label=*/u"Your devices", + /*sublabel=*/u"Only devices signed into test@gmail.com", + /*color_id=*/background_visibility_row_color, + /*is_row_enabled=*/is_background_visibility_enabled); + FormatVisibilityRow(contacts_row_, kQuickSettingsQuickShareContactsIcon, + /*label=*/u"Contacts", + /*sublabel=*/u"Only your contacts with a Google Account", + /*color_id=*/background_visibility_row_color, + /*is_row_enabled=*/is_background_visibility_enabled); + FormatVisibilityRow(hidden_row_, kQuickSettingsQuickShareHiddenIcon, + /*label=*/u"Hidden", + /*sublabel=*/u"No one can share with you", + /*color_id=*/background_visibility_row_color, + /*is_row_enabled=*/is_background_visibility_enabled); + FormatEveryoneRow(/*color_id=*/everyone_row_color, in_high_visibility, + /*is_row_enabled=*/is_quick_share_enabled); + SetCheckCircle(in_high_visibility); +} + void NearbyShareDetailedViewImpl::OnSettingsButtonClicked() { CloseBubble(); Shell::Get()->system_tray_model()->client()->ShowNearbyShareSettings(); @@ -249,24 +318,31 @@ toggle_row_->text_label()->SetText(new_enabled_state ? u"On" : u"Off"); nearby_share_delegate_->SetEnabled(new_enabled_state); quick_share_toggle_->SetIsOn(new_enabled_state); + FormatVisibilitySelectionContainer(/*in_high_visibility=*/false); } void NearbyShareDetailedViewImpl::OnYourDevicesSelected() { CHECK(nearby_share_delegate_); nearby_share_delegate_->SetVisibility( ::nearby_share::mojom::Visibility::kYourDevices); + FormatVisibilitySelectionContainer( + nearby_share_delegate_->IsHighVisibilityOn()); } void NearbyShareDetailedViewImpl::OnContactsSelected() { CHECK(nearby_share_delegate_); nearby_share_delegate_->SetVisibility( ::nearby_share::mojom::Visibility::kAllContacts); + FormatVisibilitySelectionContainer( + nearby_share_delegate_->IsHighVisibilityOn()); } void NearbyShareDetailedViewImpl::OnHiddenSelected() { CHECK(nearby_share_delegate_); nearby_share_delegate_->SetVisibility( ::nearby_share::mojom::Visibility::kNoOne); + FormatVisibilitySelectionContainer( + nearby_share_delegate_->IsHighVisibilityOn()); } void NearbyShareDetailedViewImpl::OnEveryoneToggleClicked() { @@ -277,15 +353,39 @@ everyone_toggle_->SetIsOn(true); return; } + const bool in_high_visibility = nearby_share_delegate_->IsHighVisibilityOn(); + in_high_visibility ? nearby_share_delegate_->DisableHighVisibility() + : nearby_share_delegate_->EnableHighVisibility(); + FormatVisibilitySelectionContainer(!in_high_visibility); +} - if (nearby_share_delegate_->IsHighVisibilityOn()) { - nearby_share_delegate_->DisableHighVisibility(); - everyone_toggle_->SetIsOn(false); +void NearbyShareDetailedViewImpl::SetCheckCircle( + const bool in_high_visibility) { + CHECK(nearby_share_delegate_); + + if (!nearby_share_delegate_->IsEnabled() || in_high_visibility) { + your_devices_row_->SetRightViewVisible(false); + contacts_row_->SetRightViewVisible(false); + hidden_row_->SetRightViewVisible(false); return; } - nearby_share_delegate_->EnableHighVisibility(); - everyone_toggle_->SetIsOn(true); + switch (nearby_share_delegate_->GetVisibility()) { + case ::nearby_share::mojom::Visibility::kYourDevices: + CHECK(your_devices_row_); + your_devices_row_->SetRightViewVisible(true); + break; + case ::nearby_share::mojom::Visibility::kAllContacts: + CHECK(contacts_row_); + contacts_row_->SetRightViewVisible(true); + break; + case ::nearby_share::mojom::Visibility::kNoOne: + CHECK(hidden_row_); + hidden_row_->SetRightViewVisible(true); + break; + default: + break; + } } BEGIN_METADATA(NearbyShareDetailedViewImpl)
diff --git a/ash/system/nearby_share/nearby_share_detailed_view_impl.h b/ash/system/nearby_share/nearby_share_detailed_view_impl.h index 32624cb9..47259eb 100644 --- a/ash/system/nearby_share/nearby_share_detailed_view_impl.h +++ b/ash/system/nearby_share/nearby_share_detailed_view_impl.h
@@ -56,6 +56,11 @@ const std::u16string& sublabel); void CreateEveryoneRow(); + void FormatEveryoneRow(const ui::ColorId color_id, + const bool in_high_visibility, + const bool is_row_enabled); + void FormatVisibilitySelectionContainer(const bool in_high_visibility); + void OnSettingsButtonClicked(); void OnQuickShareToggleClicked(); void OnYourDevicesSelected(); @@ -63,6 +68,8 @@ void OnHiddenSelected(); void OnEveryoneToggleClicked(); + void SetCheckCircle(const bool in_high_visibility); + raw_ptr<views::Button> settings_button_ = nullptr; raw_ptr<RoundedContainer> is_enabled_container_ = nullptr; raw_ptr<HoverHighlightView> toggle_row_ = nullptr;
diff --git a/ash/system/power/power_prefs.cc b/ash/system/power/power_prefs.cc index 160cb22..420f3fc2 100644 --- a/ash/system/power/power_prefs.cc +++ b/ash/system/power/power_prefs.cc
@@ -127,6 +127,9 @@ user_prefs::PrefRegistrySyncable::SYNCABLE_OS_PREF); } +// UpdateAdaptiveChargingConfigsFromFinch retrieves the configuration parameters +// for Adaptive Charging from Finch experiments and populating a PrefValues +// structure with those values. void UpdateAdaptiveChargingConfigsFromFinch( chromeos::PowerPolicyController::PrefValues* values) { // Default values of the settings. @@ -188,15 +191,17 @@ DCHECK(tick_clock_); // Only construct lock_on_leave_controller_ if quick dim is enabled. - if (features::IsQuickDimEnabled()) + if (features::IsQuickDimEnabled()) { lock_on_leave_controller_ = std::make_unique<LockOnLeaveController>(); + } power_manager_client_observation_.Observe(power_manager_client); Shell::Get()->session_controller()->AddObserver(this); // |local_state_| could be null in tests. - if (local_state_) + if (local_state_) { ObserveLocalStatePrefs(local_state_); + } } PowerPrefs::~PowerPrefs() { @@ -220,6 +225,7 @@ registry->RegisterIntegerPref(prefs::kBatteryChargeCustomStopCharging, -1); registry->RegisterBooleanPref(prefs::kUsbPowerShareEnabled, true); + registry->RegisterBooleanPref(prefs::kPowerChargeLimitEnabled, false); } // static @@ -249,27 +255,31 @@ void PowerPrefs::ScreenIdleStateChanged( const power_manager::ScreenIdleState& proto) { const bool already_off = !screen_idle_off_time_.is_null(); - if (proto.off() == already_off) + if (proto.off() == already_off) { return; + } screen_idle_off_time_ = proto.off() ? tick_clock_->NowTicks() : base::TimeTicks(); // If the screen is locked and we're no longer idle, we may need to switch to // the lock-based delays. - if (!screen_lock_time_.is_null() && !proto.off()) + if (!screen_lock_time_.is_null() && !proto.off()) { UpdatePowerPolicyFromPrefs(); + } } void PowerPrefs::OnLockStateChanged(bool locked) { const bool already_locked = !screen_lock_time_.is_null(); - if (locked == already_locked) + if (locked == already_locked) { return; + } screen_lock_time_ = locked ? tick_clock_->NowTicks() : base::TimeTicks(); // OnLockStateChanged could be called before ash connects user prefs in tests. - if (GetPrefService()) + if (GetPrefService()) { UpdatePowerPolicyFromPrefs(); + } } void PowerPrefs::OnSigninScreenPrefServiceInitialized(PrefService* prefs) { @@ -282,8 +292,9 @@ void PowerPrefs::UpdatePowerPolicyFromPrefsChange() { PrefService* prefs = GetPrefService(); - if (!prefs) + if (!prefs) { return; + } bool new_quick_dim_pref_enabled = prefs->GetBoolean(prefs::kPowerQuickDimEnabled); @@ -298,8 +309,9 @@ void PowerPrefs::UpdatePowerPolicyFromPrefs() { PrefService* prefs = GetPrefService(); - if (!prefs || !local_state_) + if (!prefs || !local_state_) { return; + } // It's possible to end up in a situation where a shortened lock-screen idle // delay would cause the system to suspend immediately as soon as the screen @@ -466,9 +478,25 @@ Shell::Get() ->adaptive_charging_controller() ->IsAdaptiveChargingSupported()) { - values.adaptive_charging_enabled = + std::optional<bool> adaptive_charging_enabled = prefs->GetBoolean(prefs::kPowerAdaptiveChargingEnabled); - if (values.adaptive_charging_enabled) { + std::optional<bool> charge_limit_enabled = + local_state_->GetBoolean(prefs::kPowerChargeLimitEnabled); + + if (adaptive_charging_enabled.value_or(false) && + charge_limit_enabled.value_or(false)) { + LOG(WARNING) << "Pref set to enable both Adaptive Charging and Charge " + << "Limit, which are mutually exclusive features. " + << "Disabling charge limit."; + + // Update the local optional variable to maintain consistency + charge_limit_enabled = false; + } + + values.adaptive_charging_enabled = adaptive_charging_enabled; + values.charge_limit_enabled = charge_limit_enabled; + + if (values.adaptive_charging_enabled.value_or(false)) { UpdateAdaptiveChargingConfigsFromFinch(&values); } } @@ -563,6 +591,8 @@ local_state_registrar_->Add(prefs::kUsbPowerShareEnabled, update_callback); + local_state_registrar_->Add(prefs::kPowerChargeLimitEnabled, update_callback); + UpdatePowerPolicyFromPrefs(); }
diff --git a/ash/system/power/power_prefs_unittest.cc b/ash/system/power/power_prefs_unittest.cc index 0d44e04..9c4fa39 100644 --- a/ash/system/power/power_prefs_unittest.cc +++ b/ash/system/power/power_prefs_unittest.cc
@@ -188,8 +188,9 @@ void SetQuickDimPreference(bool enabled) { PrefService* prefs = Shell::Get()->session_controller()->GetActivePrefService(); - if (!prefs) + if (!prefs) { return; + } prefs->SetBoolean(prefs::kPowerQuickDimEnabled, enabled); } @@ -197,8 +198,9 @@ void SetAdaptiveChargingPreference(bool enabled) { PrefService* prefs = Shell::Get()->session_controller()->GetActivePrefService(); - if (!prefs) + if (!prefs) { return; + } prefs->SetBoolean(prefs::kPowerAdaptiveChargingEnabled, enabled); } @@ -653,39 +655,57 @@ user_disable_buckets); } -TEST_F(PowerPrefsTest, SetAdaptiveChargingParams) { - // kPowerAdaptiveChargingEnabled is true by default. - PrefService* prefs = - Shell::Get()->session_controller()->GetActivePrefService(); - EXPECT_TRUE(prefs->GetBoolean(prefs::kPowerAdaptiveChargingEnabled)); - - // But adaptive charging should be disabled initially because of no hardware - // support. +TEST_F(PowerPrefsTest, AdaptiveCharging_NoHardwareSupport_Disabled) { + // Adaptive charging should be disabled initially, even with the preference + // enabled, because there is no hardware support. EXPECT_FALSE(power_manager_client()->policy().adaptive_charging_enabled()); +} - // Sets adaptive charging hardware support. +TEST_F(PowerPrefsTest, AdaptiveCharging_HardwareSupported_EnabledByPref) { + // Enable adaptive charging hardware support. power_manager::PowerSupplyProperties power_props; power_props.set_adaptive_charging_supported(true); power_manager_client()->UpdatePowerProperties(power_props); - // With hardware support exists, the adaptive charging feature is controlled - // by prefs settings. - SetAdaptiveChargingPreference(false); - EXPECT_FALSE(power_manager_client()->policy().adaptive_charging_enabled()); + // Adaptive charging should be enabled/disabled according to the preference. SetAdaptiveChargingPreference(true); EXPECT_TRUE(power_manager_client()->policy().adaptive_charging_enabled()); - // Once power properties proto showed hardware adaptive_charging_supported, we - // never reset it false because the hardware feature should not change. - // So although we force power_manager_client to update the power properties - // here, hardware support keeps true. - power_props.set_adaptive_charging_supported(false); + SetAdaptiveChargingPreference(false); + EXPECT_FALSE(power_manager_client()->policy().adaptive_charging_enabled()); +} + +TEST_F(PowerPrefsTest, ChargeLimit_EnabledByPrefWhenAdaptiveChargingDisabled) { + // Enable the hardware support needed for both adaptive charging and + // charge limit. They share the same underlying hardware. + power_manager::PowerSupplyProperties power_props; + power_props.set_adaptive_charging_supported(true); power_manager_client()->UpdatePowerProperties(power_props); - // The adaptive charging feature is controlled by prefs settings as above. + // Charge limit should be enabled/disabled according to the preference + // when adaptive charging is disabled, as these features are mutually + // exclusive. SetAdaptiveChargingPreference(false); EXPECT_FALSE(power_manager_client()->policy().adaptive_charging_enabled()); + + managed_pref_store_->SetBoolean(prefs::kPowerChargeLimitEnabled, true); + EXPECT_TRUE(power_manager_client()->policy().charge_limit_enabled()); + + managed_pref_store_->SetBoolean(prefs::kPowerChargeLimitEnabled, false); + EXPECT_FALSE(power_manager_client()->policy().charge_limit_enabled()); +} + +TEST_F(PowerPrefsTest, ChargeLimit_DisabledWhenAdaptiveChargingEnabled) { + // Enable adaptive charging hardware support. + power_manager::PowerSupplyProperties power_props; + power_props.set_adaptive_charging_supported(true); + power_manager_client()->UpdatePowerProperties(power_props); + + // When adaptive charging is enabled, charge limit should be disabled. + // This ensures that the two features do not conflict. SetAdaptiveChargingPreference(true); + managed_pref_store_->SetBoolean(prefs::kPowerChargeLimitEnabled, true); EXPECT_TRUE(power_manager_client()->policy().adaptive_charging_enabled()); + EXPECT_FALSE(power_manager_client()->policy().charge_limit_enabled()); } } // namespace ash
diff --git a/ash/wm/overview/overview_item.cc b/ash/wm/overview/overview_item.cc index e436459..3e137836 100644 --- a/ash/wm/overview/overview_item.cc +++ b/ash/wm/overview/overview_item.cc
@@ -941,11 +941,8 @@ } const aura::Window* window = transform_window_.window(); - - const auto header_rounded_corners = overview_item_view_->header_view() - ->GetBackground() - ->GetRoundedCornerRadii() - .value_or(gfx::RoundedCornersF()); + const auto header_rounded_corners = + overview_item_view_->header_view()->layer()->rounded_corner_radii(); const auto* layer = window->layer(); const gfx::RoundedCornersF& transform_window_rounded_corners = layer->rounded_corner_radii(); @@ -1130,6 +1127,7 @@ views::Widget::InitParams params = CreateOverviewItemWidgetParams( GetWindow()->parent(), "OverviewItemWidget", /*accept_events=*/true); + // The key is not needed for all `OverviewItemBase` objects, such as the drop // target. params.init_properties_container.SetProperty(kIsOverviewItemKey, true);
diff --git a/ash/wm/overview/overview_item_base.cc b/ash/wm/overview/overview_item_base.cc index 88d030d..94136fe 100644 --- a/ash/wm/overview/overview_item_base.cc +++ b/ash/wm/overview/overview_item_base.cc
@@ -338,6 +338,8 @@ params.parent = parent_window; params.init_properties_container.SetProperty(kHideInDeskMiniViewKey, true); params.init_properties_container.SetProperty(kOverviewUiKey, true); + params.layer_type = ui::LAYER_NOT_DRAWN; + return params; }
diff --git a/ash/wm/overview/overview_item_view.cc b/ash/wm/overview/overview_item_view.cc index 884e5b0..c9a72ae4 100644 --- a/ash/wm/overview/overview_item_view.cc +++ b/ash/wm/overview/overview_item_view.cc
@@ -30,6 +30,9 @@ #include "ui/views/animation/animation_builder.h" #include "ui/views/animation/ink_drop.h" #include "ui/views/controls/label.h" +#include "ui/views/layout/flex_layout_types.h" +#include "ui/views/layout/flex_layout_view.h" +#include "ui/views/view_class_properties.h" #include "ui/views/widget/widget.h" namespace ash { @@ -88,6 +91,13 @@ // Focusable so we can add accelerators to this view. SetFocusBehavior(views::View::FocusBehavior::ALWAYS); + close_button_->SetPaintToLayer(); + close_button_->layer()->SetFillsBoundsOpaquely(false); + close_button_->SetProperty( + views::kFlexBehaviorKey, + views::FlexSpecification().WithOrder( + WindowMiniViewHeaderView::IconLabelFlexPriorities:: + kIconOrCloseButton)); views::InkDrop::Get(close_button_) ->SetMode(views::InkDropHost::InkDropMode::ON_NO_GESTURE_HANDLER); close_button_->GetViewAccessibility().SetName( @@ -113,25 +123,15 @@ OverviewItemView::~OverviewItemView() = default; void OverviewItemView::SetCloseButtonVisible(bool visible) { - if (!close_button_->layer()) { - close_button_->SetPaintToLayer(); - close_button_->layer()->SetFillsBoundsOpaquely(false); - } - + CHECK(close_button_->layer()); AnimateLayerOpacity(close_button_->layer(), visible); close_button_->SetEnabled(visible); } void OverviewItemView::HideCloseInstantlyAndThenShowItSlowly() { CHECK(close_button_); - - if (!close_button_->layer()) { - close_button_->SetPaintToLayer(); - close_button_->layer()->SetFillsBoundsOpaquely(false); - } - ui::Layer* layer = close_button_->layer(); - + CHECK(layer); views::AnimationBuilder() .SetPreemptionStrategy(ui::LayerAnimator::REPLACE_QUEUED_ANIMATIONS) .Once()
diff --git a/ash/wm/snap_group/snap_group_pixeltest.cc b/ash/wm/snap_group/snap_group_pixeltest.cc index 82877bc2..84f45976 100644 --- a/ash/wm/snap_group/snap_group_pixeltest.cc +++ b/ash/wm/snap_group/snap_group_pixeltest.cc
@@ -143,7 +143,7 @@ // Verify the `OverviewGroupItem` visuals. EXPECT_TRUE(GetPixelDiffer()->CompareUiComponentsOnPrimaryScreen( "overviewgroupitem", - /*revision_number=*/1, group_item_widget)); + /*revision_number=*/2, group_item_widget)); // Verify the visuals after one of the windows in the group got destroyed. w2.reset(); @@ -153,7 +153,7 @@ ASSERT_TRUE(item_after_destruction); EXPECT_TRUE(GetPixelDiffer()->CompareUiComponentsOnPrimaryScreen( "remaining_item_widget", - /*revision_number=*/1, remaining_item_widget)); + /*revision_number=*/2, remaining_item_widget)); } // Visual regression test for Snap Group in window cycle view. @@ -191,13 +191,13 @@ // Verify the visuals with secondary-snapped window gets focused. EXPECT_TRUE(GetPixelDiffer()->CompareUiComponentsOnPrimaryScreen( "window_cycle_with_snap_group_secondary_focused", - /*revision_number=*/1, window_cycle_widget)); + /*revision_number=*/2, window_cycle_widget)); // Verify the visuals with primary-snapped window gets focused. event_generator->PressAndReleaseKey(ui::VKEY_TAB, ui::EF_ALT_DOWN); EXPECT_TRUE(GetPixelDiffer()->CompareUiComponentsOnPrimaryScreen( "window_cycle_with_snap_group_primary_focused", - /*revision_number=*/1, window_cycle_widget)); + /*revision_number=*/2, window_cycle_widget)); // Verify the visuals after one of the windows in the group got destroyed // while stepping. @@ -213,7 +213,7 @@ EXPECT_TRUE(GetPixelDiffer()->CompareUiComponentsOnPrimaryScreen( "window_cycle_with_snap_group_window_destruction", - /*revision_number=*/1, updated_window_cycle_widget)); + /*revision_number=*/2, updated_window_cycle_widget)); } // ----------------------------------------------------------------------------- @@ -283,7 +283,7 @@ // Verify the `OverviewGroupItem` visuals in portrait. EXPECT_TRUE(GetPixelDiffer()->CompareUiComponentsOnPrimaryScreen( "overviewgroupitem_in_portrait", - /*revision_number=*/1, group_item_widget)); + /*revision_number=*/2, group_item_widget)); } // Portrait mode visual regression test for Snap Group visuals in window cycle @@ -324,13 +324,13 @@ // Verify the visuals with secondary-snapped window gets focused. EXPECT_TRUE(GetPixelDiffer()->CompareUiComponentsOnPrimaryScreen( "window_cycle_with_snap_group_secondary_focused_in_portrait", - /*revision_number=*/1, window_cycle_widget)); + /*revision_number=*/2, window_cycle_widget)); // Verify the visuals with primary-snapped window gets focused. event_generator->PressAndReleaseKey(ui::VKEY_TAB, ui::EF_ALT_DOWN); EXPECT_TRUE(GetPixelDiffer()->CompareUiComponentsOnPrimaryScreen( "window_cycle_with_snap_group_primary_focused_in_portrait", - /*revision_number=*/1, window_cycle_widget)); + /*revision_number=*/2, window_cycle_widget)); } } // namespace ash
diff --git a/ash/wm/test/wm_pixel_diff_test.cc b/ash/wm/test/wm_pixel_diff_test.cc index 5736a5a4b..d54e644 100644 --- a/ash/wm/test/wm_pixel_diff_test.cc +++ b/ash/wm/test/wm_pixel_diff_test.cc
@@ -93,7 +93,7 @@ EXPECT_TRUE(GetPixelDiffer()->CompareUiComponentsOnPrimaryScreen( "overview_and_desks_bar_basic", - /*revision_number=*/16, desk_widget, overview_widget1, overview_widget2, + /*revision_number=*/17, desk_widget, overview_widget1, overview_widget2, overview_widget3)); } @@ -172,7 +172,7 @@ EXPECT_TRUE(GetPixelDiffer()->CompareUiComponentsOnPrimaryScreen( "window_cycle_basic", - /*revision_number=*/22, widget)); + /*revision_number=*/23, widget)); } TEST_F(WmPixelDiffTest, InformedRestoreNoScreenshotDialog) {
diff --git a/ash/wm/window_mini_view.cc b/ash/wm/window_mini_view.cc index 1b54a3b..1693744f 100644 --- a/ash/wm/window_mini_view.cc +++ b/ash/wm/window_mini_view.cc
@@ -133,7 +133,7 @@ if (!backdrop_view_) { // Always put the backdrop view under other children. backdrop_view_ = AddChildViewAt(std::make_unique<views::View>(), 0); - backdrop_view_->SetPaintToLayer(); + backdrop_view_->SetPaintToLayer(ui::LAYER_SOLID_COLOR); backdrop_view_->SetBackground( views::CreateThemedSolidBackground(cros_tokens::kCrosSysScrim)); @@ -246,8 +246,7 @@ } const gfx::RoundedCornersF header_rounded_corners = - header_view_->background()->GetRoundedCornerRadii().value_or( - gfx::RoundedCornersF()); + header_view_->layer()->rounded_corner_radii(); const gfx::RoundedCornersF preview_rounded_corners = preview_view_->layer()->rounded_corner_radii(); return gfx::RoundedCornersF(header_rounded_corners.upper_left(),
diff --git a/ash/wm/window_mini_view_header_view.cc b/ash/wm/window_mini_view_header_view.cc index 38db1912..9eb86621 100644 --- a/ash/wm/window_mini_view_header_view.cc +++ b/ash/wm/window_mini_view_header_view.cc
@@ -12,6 +12,8 @@ #include "ui/aura/client/aura_constants.h" #include "ui/base/metadata/metadata_impl_macros.h" #include "ui/color/color_id.h" +#include "ui/color/color_provider.h" +#include "ui/compositor/layer.h" #include "ui/gfx/geometry/insets.h" #include "ui/gfx/geometry/rounded_corners_f.h" #include "ui/gfx/image/image_skia_operations.h" @@ -20,6 +22,10 @@ #include "ui/views/controls/label.h" #include "ui/views/controls/separator.h" #include "ui/views/layout/box_layout_view.h" +#include "ui/views/layout/flex_layout_types.h" +#include "ui/views/layout/flex_layout_view.h" +#include "ui/views/view_class_properties.h" +#include "ui/views/view_observer.h" namespace ash { @@ -55,10 +61,17 @@ : window_mini_view_(window_mini_view) { SetOrientation(views::BoxLayout::Orientation::kVertical); - icon_label_view_ = AddChildView(std::make_unique<views::BoxLayoutView>()); - icon_label_view_->SetOrientation(views::BoxLayout::Orientation::kHorizontal); - icon_label_view_->SetInsideBorderInsets(kHeaderInsets); - icon_label_view_->SetBetweenChildSpacing(kHeaderPaddingDp); + // This is to apply the rounded corners to child layers. + SetPaintToLayer(ui::LAYER_SOLID_COLOR); + layer()->SetIsFastRoundedCorner(true); + + icon_label_view_ = AddChildView(std::make_unique<views::FlexLayoutView>()); + icon_label_view_->SetOrientation(views::LayoutOrientation::kHorizontal); + icon_label_view_->SetInteriorMargin(kHeaderInsets); + icon_label_view_->SetDefault( + views::kMarginsKey, + gfx::Insets::TLBR(0, kHeaderPaddingDp, 0, kHeaderPaddingDp)); + icon_label_view_->SetCollapseMargins(true); title_label_ = icon_label_view_->AddChildView(std::make_unique<views::Label>( GetWindowTitle(window_mini_view_->source_window()))); @@ -68,13 +81,39 @@ title_label_->SetFontList(gfx::FontList().Derive( kLabelFontDelta, gfx::Font::NORMAL, gfx::Font::Weight::MEDIUM)); title_label_->SetEnabledColorId(cros_tokens::kCrosSysPrimary); - icon_label_view_->SetFlexForView(title_label_, 1); + title_label_->SetPaintToLayer(); + title_label_->layer()->SetFillsBoundsOpaquely(false); + + views::View* leftover_space = + icon_label_view_->AddChildView(std::make_unique<views::View>()); + + // Flex layout should accomplish the following: + // +------+-------+-------------------------------------------------+--------+ + // | icon | label | leftover space | close | + // | | | | button | + // +------+-------+-------------------------------------------------+--------+ + // 1) The icon and close button get their preferred sizes. + // 2) If the label's preferred size fits between the icon and close button, + // blank space is added between the label and close button until the close + // button is right aligned. + // 3) If the label's preferred size doesn't fit between the icon and close + // button, it gets shrunk until it fits (leftover space above is zero). + title_label_->SetProperty( + views::kFlexBehaviorKey, + views::FlexSpecification(views::MinimumFlexSizeRule::kScaleToMinimum) + .WithOrder(IconLabelFlexPriorities::kTitleLabel)); + leftover_space->SetProperty( + views::kFlexBehaviorKey, + views::FlexSpecification(views::MinimumFlexSizeRule::kScaleToZero, + views::MaximumFlexSizeRule::kUnbounded) + .WithOrder(IconLabelFlexPriorities::kLeftoverSpace) + .WithWeight(1)); RefreshHeaderViewRoundedCorners(); - views::Separator* separator = - AddChildView(std::make_unique<views::Separator>()); - separator->SetColorId(kColorAshWindowHeaderStrokeColor); + separator_ = AddChildView(std::make_unique<views::View>()); + separator_->SetPaintToLayer(ui::LAYER_SOLID_COLOR); + separator_->SetPreferredSize(gfx::Size(1, views::Separator::kThickness)); SetFlexForView(icon_label_view_, 1); } @@ -94,6 +133,11 @@ if (!icon_view_) { icon_view_ = icon_label_view_->AddChildViewAt( std::make_unique<views::ImageView>(), 0); + icon_view_->SetPaintToLayer(); + icon_view_->layer()->SetFillsBoundsOpaquely(false); + icon_view_->SetProperty(views::kFlexBehaviorKey, + views::FlexSpecification().WithOrder( + IconLabelFlexPriorities::kIconOrCloseButton)); } icon_view_->SetImage(gfx::ImageSkiaOperations::CreateResizedImage( @@ -112,12 +156,10 @@ default_corner_radius, default_corner_radius, 0, 0)); if (current_header_view_rounded_corners_ && *current_header_view_rounded_corners_ == new_rounded_corners) { - DCHECK(GetBackground()); return; } current_header_view_rounded_corners_ = new_rounded_corners; - SetBackground(views::CreateThemedRoundedRectBackground( - cros_tokens::kCrosSysHeader, new_rounded_corners)); + layer()->SetRoundedCornerRadius(new_rounded_corners); } void WindowMiniViewHeaderView::SetHeaderViewRoundedCornerRadius( @@ -131,6 +173,14 @@ RefreshHeaderViewRoundedCorners(); } +void WindowMiniViewHeaderView::OnThemeChanged() { + View::OnThemeChanged(); + CHECK(GetColorProvider()); + layer()->SetColor(GetColorProvider()->GetColor(cros_tokens::kCrosSysHeader)); + separator_->layer()->SetColor( + GetColorProvider()->GetColor(kColorAshWindowHeaderStrokeColor)); +} + BEGIN_METADATA(WindowMiniViewHeaderView) END_METADATA
diff --git a/ash/wm/window_mini_view_header_view.h b/ash/wm/window_mini_view_header_view.h index f7a76cca..bf4020a2 100644 --- a/ash/wm/window_mini_view_header_view.h +++ b/ash/wm/window_mini_view_header_view.h
@@ -16,9 +16,9 @@ } // namespace aura namespace views { +class FlexLayoutView; class ImageView; class Label; -class View; } // namespace views namespace ash { @@ -32,13 +32,22 @@ METADATA_HEADER(WindowMiniViewHeaderView, views::BoxLayoutView) public: + // Flex layout priorities for the `icon_label_view()`. The enums are listed + // in highest to lowest priority (high priority has the least flexibility to + // grow/shrink is more likely to get its preferred size). + enum IconLabelFlexPriorities { + kIconOrCloseButton = 1, + kTitleLabel, + kLeftoverSpace + }; + explicit WindowMiniViewHeaderView(WindowMiniView* window_mini_view); WindowMiniViewHeaderView(const WindowMiniViewHeaderView&) = delete; WindowMiniViewHeaderView& operator=(const WindowMiniViewHeaderView&) = delete; ~WindowMiniViewHeaderView() override; views::Label* title_label() { return title_label_; } - views::View* icon_label_view() { return icon_label_view_; } + views::FlexLayoutView* icon_label_view() { return icon_label_view_; } void UpdateIconView(aura::Window* window); void UpdateTitleLabel(aura::Window* window); @@ -58,18 +67,24 @@ void ResetRoundedCorners(); private: + // views::View: + void OnThemeChanged() override; + // The parent view of `this`, which is guaranteed not null during the lifetime // of `this`. raw_ptr<WindowMiniView> window_mini_view_; // A view that wraps up the icon and title label. Owned by the views // hierarchy. - raw_ptr<views::BoxLayoutView> icon_label_view_; + raw_ptr<views::FlexLayoutView> icon_label_view_; // Views for the icon and title. Owned by the views hierarchy. raw_ptr<views::Label> title_label_ = nullptr; raw_ptr<views::ImageView> icon_view_ = nullptr; + // Separator between the header and the overview window. + raw_ptr<views::View> separator_ = nullptr; + // The current rounded corner parameters for this view's background. May be // `nullopt` if a background is not set yet. std::optional<gfx::RoundedCornersF> current_header_view_rounded_corners_;
diff --git a/base/BUILD.gn b/base/BUILD.gn index 123b5d9..e61e46e 100644 --- a/base/BUILD.gn +++ b/base/BUILD.gn
@@ -1044,8 +1044,8 @@ # to provide the appropriate `#define` here. defines += [ "IS_RAW_PTR_IMPL" ] - # native_unwinder_android is intended for use solely via a dynamic feature - # module, to avoid increasing Chrome's executable size. + # native_unwinder_android is split into a separate target to avoid pulling + # libunwindstack dependencies into cronet's base. assert_no_deps = [ ":native_unwinder_android" ] public_deps = [ @@ -2978,14 +2978,6 @@ if (is_android) { source_set("native_unwinder_android") { - # This target is intended to be used only within the stack_unwinder dynamic - # feature module, to avoid binary size increase in Chrome due to the - # libunwindstack dependency. The additional :* visibility is needed to allow - # use by base test targets. - visibility = [ - ":*", - "//chrome/android/modules/stack_unwinder/internal:*", - ] sources = [ "profiler/libunwindstack_unwinder_android.cc", "profiler/libunwindstack_unwinder_android.h", @@ -3864,6 +3856,7 @@ ":base_profiler_test_support_jni", ":base_profiler_test_support_library", ":native_unwinder_android", + "//third_party/libunwindstack", ] }
diff --git a/base/features.cc b/base/features.cc index 2002373..87c6143 100644 --- a/base/features.cc +++ b/base/features.cc
@@ -131,7 +131,6 @@ #endif #if BUILDFLAG(IS_APPLE) - ConditionVariable::InitializeFeatures(); File::InitializeFeatures(); MessagePumpCFRunLoopBase::InitializeFeatures(); MessagePumpKqueue::InitializeFeatures();
diff --git a/base/metrics/field_trial.cc b/base/metrics/field_trial.cc index 829a5c4..bf2ffe6 100644 --- a/base/metrics/field_trial.cc +++ b/base/metrics/field_trial.cc
@@ -124,7 +124,7 @@ } // Returns the boundary value for comparing against the FieldTrial's added -// groups for a given |divisor| (total probability) and |entropy_value|. +// groups for a given `divisor` (total probability) and `entropy_value`. FieldTrial::Probability GetGroupBoundaryValue( FieldTrial::Probability divisor, double entropy_value) { @@ -138,7 +138,7 @@ const double kEpsilon = 1e-8; const FieldTrial::Probability result = static_cast<FieldTrial::Probability>(divisor * entropy_value + kEpsilon); - // Ensure that adding the epsilon still results in a value < |divisor|. + // Ensure that adding the epsilon still results in a value < `divisor`. return std::min(result, divisor - 1); } @@ -259,7 +259,7 @@ if (forced_) { DCHECK(!group_name_.empty()); if (name == group_name_) { - // Note that while |group_| may be equal to |kDefaultGroupNumber| on the + // Note that while `group_` may be equal to `kDefaultGroupNumber` on the // forced trial, it will not have the same value as the default group // number returned from the non-forced |FactoryGetFieldTrial()| call, // which takes care to ensure that this does not happen. @@ -326,7 +326,7 @@ void FieldTrial::EnableBenchmarking() { // We don't need to see field trials created via CreateFieldTrial() for // benchmarking, because such field trials have only a single group and are - // not affected by randomization that |enable_benchmarking_| would disable. + // not affected by randomization that `enable_benchmarking_` would disable. DCHECK_EQ(0u, FieldTrialList::GetRandomizedFieldTrialCount()); enable_benchmarking_ = true; } @@ -453,7 +453,7 @@ if (group_ != kNotFinalized) return; accumulated_group_probability_ = divisor_; - // Here it's OK to use |kDefaultGroupNumber| since we can't be forced and not + // Here it's OK to use `kDefaultGroupNumber` since we can't be forced and not // finalized. DCHECK(!forced_); SetGroupChoice(default_group_name_, kDefaultGroupNumber); @@ -807,7 +807,7 @@ field_trial = new FieldTrial(name, kTotalProbability, group_name, 0, is_low_anonymity, is_overridden); // The group choice will be finalized in this method. So - // |is_randomized_trial| should be false. + // `is_randomized_trial` should be false. FieldTrialList::Register(field_trial, /*is_randomized_trial=*/false); // Force the trial, which will also finalize the group choice. field_trial->SetForced(); @@ -910,12 +910,12 @@ if (!field_trial->ref_) return false; + size_t allocated_size = 0; const FieldTrial::FieldTrialEntry* entry = global_->field_trial_allocator_->GetAsObject<FieldTrial::FieldTrialEntry>( - field_trial->ref_); + field_trial->ref_, &allocated_size); + CHECK(entry); - size_t allocated_size = - global_->field_trial_allocator_->GetAllocSize(field_trial->ref_); uint64_t actual_size = sizeof(FieldTrial::FieldTrialEntry) + entry->pickle_size; if (allocated_size < actual_size)
diff --git a/base/metrics/persistent_histogram_allocator.cc b/base/metrics/persistent_histogram_allocator.cc index 825c117..dcc2b2a 100644 --- a/base/metrics/persistent_histogram_allocator.cc +++ b/base/metrics/persistent_histogram_allocator.cc
@@ -89,13 +89,13 @@ } // Calculate the number of bytes required to store all of a histogram's -// "counts". This will return zero (0) if |bucket_count| is not valid. +// "counts". This will return zero (0) if `bucket_count` is not valid. size_t CalculateRequiredCountsBytes(size_t bucket_count) { // 2 because each "sample count" also requires a backup "logged count" // used for calculating the delta during snapshot operations. const size_t kBytesPerBucket = 2 * sizeof(HistogramBase::AtomicCount); - // If the |bucket_count| is such that it would overflow the return type, + // If the `bucket_count` is such that it would overflow the return type, // perhaps as the result of a malicious actor, then return zero to // indicate the problem to the caller. if (bucket_count > std::numeric_limits<size_t>::max() / kBytesPerBucket) @@ -176,7 +176,7 @@ PersistentSparseHistogramDataManager::LoadRecords( PersistentSampleMapRecords* sample_map_records, std::optional<HistogramBase::Sample> until_value) { - // DataManager must be locked in order to access the |sample_records_| + // DataManager must be locked in order to access the `sample_records_` // vectors. base::AutoLock auto_lock(lock_); @@ -222,7 +222,7 @@ } // Return all references found that have not yet been seen by - // |sample_map_records|, up until |until_value| (if applicable). + // `sample_map_records`, up until `until_value` (if applicable). std::vector<PersistentMemoryAllocator::Reference> new_references; CHECK_GE(found_records.size(), sample_map_records->seen_); auto new_found_records = @@ -230,9 +230,9 @@ new_references.reserve(new_found_records.size()); for (const auto& new_record : new_found_records) { new_references.push_back(new_record.reference); - // Maybe references after |until_value| were found. Stop here immediately in + // Maybe references after `until_value` were found. Stop here immediately in // such a case, since the caller will not expect any more samples after - // |until_value|. + // `until_value`. if (until_value.has_value() && new_record.value == until_value.value()) { break; } @@ -321,9 +321,9 @@ // count data (while these must reference the persistent counts) and always // add it to the local list of known histograms (while these may be simple // references to histograms in other processes). + size_t length = 0; PersistentHistogramData* data = - memory_allocator_->GetAsObject<PersistentHistogramData>(ref); - const size_t length = memory_allocator_->GetAllocSize(ref); + memory_allocator_->GetAsObject<PersistentHistogramData>(ref, &length); // Check that metadata is reasonable: name is null-terminated and non-empty, // ID fields have been loaded with a hash of the name (0 is considered @@ -331,7 +331,7 @@ if (!data || data->name[0] == '\0' || reinterpret_cast<char*>(data)[length - 1] != '\0' || data->samples_metadata.id == 0 || data->logged_metadata.id == 0 || - // Note: Sparse histograms use |id + 1| in |logged_metadata|. + // Note: Sparse histograms use `id + 1` in `logged_metadata`. (data->logged_metadata.id != data->samples_metadata.id && data->logged_metadata.id != data->samples_metadata.id + 1) || // Most non-matching values happen due to truncated names. Ideally, we @@ -374,7 +374,7 @@ histogram_data->histogram_type = histogram_type; histogram_data->flags = flags | HistogramBase::kIsPersistent; - // |counts_ref| relies on being zero'd out initially. Even though this + // `counts_ref` relies on being zero'd out initially. Even though this // should always be the case, manually zero it out again here in case there // was memory corruption (e.g. if the memory was mapped from a corrupted // spare file). @@ -388,7 +388,7 @@ size_t bucket_count = bucket_ranges->bucket_count(); size_t counts_bytes = CalculateRequiredCountsBytes(bucket_count); if (counts_bytes == 0) { - // |bucket_count| was out-of-range. + // `bucket_count` was out-of-range. return nullptr; } @@ -396,8 +396,8 @@ // objects for re-use, it would be dangerous for one to hold a reference // from a persistent allocator that is not the global one (which is // permanent once set). If this stops being the case, this check can - // become an "if" condition beside "!ranges_ref" below and before - // set_persistent_reference() farther down. + // become an `if` condition beside `!ranges_ref` below and before + // `set_persistent_reference()` farther down. DCHECK_EQ(this, GlobalHistogramAllocator::Get()); // Re-use an existing BucketRanges persistent allocation if one is known; @@ -434,7 +434,7 @@ if (ranges_ref && histogram_data) { histogram_data->minimum = minimum; histogram_data->maximum = maximum; - // |bucket_count| must fit within 32-bits or the allocation of the counts + // `bucket_count` must fit within 32-bits or the allocation of the counts // array would have failed for being too large; the allocator supports // less than 4GB total size. histogram_data->bucket_count = static_cast<uint32_t>(bucket_count); @@ -447,7 +447,7 @@ if (histogram_data) { // Create the histogram using resources in persistent memory. This ends up - // resolving the "ref" values stored in histogram_data instad of just + // resolving the `ref` values stored in histogram_data instead of just // using what is already known above but avoids duplicating the switch // statement here and serves as a double-check that everything is // correct before commiting the new histogram to persistent space. @@ -588,17 +588,16 @@ uint32_t histogram_ranges_ref = histogram_data_ptr->ranges_ref; uint32_t histogram_ranges_checksum = histogram_data_ptr->ranges_checksum; + size_t allocated_bytes = 0; HistogramBase::Sample* ranges_data = memory_allocator_->GetAsArray<HistogramBase::Sample>( histogram_ranges_ref, kTypeIdRangesArray, - PersistentMemoryAllocator::kSizeAny); + PersistentMemoryAllocator::kSizeAny, &allocated_bytes); const uint32_t max_buckets = std::numeric_limits<uint32_t>::max() / sizeof(HistogramBase::Sample); size_t required_bytes = (histogram_bucket_count + 1) * sizeof(HistogramBase::Sample); - size_t allocated_bytes = - memory_allocator_->GetAllocSize(histogram_ranges_ref); if (!ranges_data || histogram_bucket_count < 2 || histogram_bucket_count >= max_buckets || allocated_bytes < required_bytes) { @@ -626,11 +625,14 @@ } size_t counts_bytes = CalculateRequiredCountsBytes(histogram_bucket_count); + if (counts_bytes == 0) { + return nullptr; + } + PersistentMemoryAllocator::Reference counts_ref = histogram_data_ptr->counts_ref.load(std::memory_order_acquire); - if (counts_bytes == 0 || - (counts_ref != 0 && - memory_allocator_->GetAllocSize(counts_ref) < counts_bytes)) { + if (counts_ref != 0 && !memory_allocator_->GetAsArray<uint8_t>( + counts_ref, kTypeIdCountsArray, counts_bytes)) { return nullptr; } @@ -958,7 +960,7 @@ // histogram allocator was initialized. // // TODO(crbug.com/40945497): CHECK(histogram_count == 0) and remove emit of - // early histogram count once |histogram_count| is reliably zero (0) for all + // early histogram count once `histogram_count` is reliably zero (0) for all // process types. size_t histogram_count = StatisticsRecorder::GetHistogramCount(); if (histogram_count != 0) {
diff --git a/base/metrics/persistent_histogram_allocator.h b/base/metrics/persistent_histogram_allocator.h index da6756c..e9e7f893 100644 --- a/base/metrics/persistent_histogram_allocator.h +++ b/base/metrics/persistent_histogram_allocator.h
@@ -48,8 +48,8 @@ ~PersistentSparseHistogramDataManager(); // Returns an object that manages persistent-sample-map records for a given - // |id|. The returned object queries |this| for records. Hence, the returned - // object must not outlive |this|. + // `id`. The returned object queries `this` for records. Hence, the returned + // object must not outlive `this`. std::unique_ptr<PersistentSampleMapRecords> CreateSampleMapRecords( uint64_t id); @@ -72,19 +72,19 @@ std::vector<ReferenceAndSample>* GetSampleMapRecordsWhileLocked(uint64_t id) EXCLUSIVE_LOCKS_REQUIRED(lock_); - // Returns sample-map records belonging to the specified |sample_map_records|. - // Only records found that were not yet seen by |sample_map_records| will be - // returned, determined by its |seen_| field. Records found for other + // Returns sample-map records belonging to the specified `sample_map_records`. + // Only records found that were not yet seen by `sample_map_records` will be + // returned, determined by its `seen_` field. Records found for other // sample-maps are held for later use without having to iterate again. This // should be called only from a PersistentSampleMapRecords object because // those objects have a contract that there are no other threads accessing the - // internal records_ field of the object that is passed in. If |until_value| + // internal records_ field of the object that is passed in. If `until_value` // is set and a sample is found with said value, the search will stop early // and the last entry in the returned vector will be that sample. // Note: The returned vector is not guaranteed to contain all unseen records - // for |sample_map_records|. If this is needed, then repeatedly call this + // for `sample_map_records`. If this is needed, then repeatedly call this // until an empty vector is returned, which definitely means that - // |sample_map_records| has seen all its records. + // `sample_map_records` has seen all its records. std::vector<PersistentMemoryAllocator::Reference> LoadRecords( PersistentSampleMapRecords* sample_map_records, std::optional<HistogramBase::Sample> until_value); @@ -113,7 +113,7 @@ // Constructs an instance of this class. The manager object must live longer // than all instances of this class that reference it, which is not usually // a problem since these objects are generally managed from within that - // manager instance. The same caveats apply for for the |records| vector. + // manager instance. The same caveats apply for for the `records` vector. PersistentSampleMapRecords( PersistentSparseHistogramDataManager* data_manager, uint64_t sample_map_id, @@ -126,18 +126,18 @@ ~PersistentSampleMapRecords(); - // Gets next references to persistent sample-map records. If |until_value| is + // Gets next references to persistent sample-map records. If `until_value` is // passed, and said value is found, then it will be the last element in the // returned vector. The type and layout of the data being referenced is // defined entirely within the PersistentSampleMap class. // Note: The returned vector is not guaranteed to contain all unseen records - // for |this|. If this is needed, then repeatedly call this until an empty - // vector is returned, which definitely means that |this| has seen all its + // for `this`. If this is needed, then repeatedly call this until an empty + // vector is returned, which definitely means that `this` has seen all its // records. std::vector<PersistentMemoryAllocator::Reference> GetNextRecords( std::optional<HistogramBase::Sample> until_value); - // Creates a new persistent sample-map record for sample |value| and returns + // Creates a new persistent sample-map record for sample `value` and returns // a reference to it. PersistentMemoryAllocator::Reference CreateNew(HistogramBase::Sample value); @@ -161,7 +161,7 @@ // ID of PersistentSampleMap to which these records apply. const uint64_t sample_map_id_; - // This is the count of how many "records" have already been read by |this|. + // This is the count of how many "records" have already been read by `this`. size_t seen_ = 0; // This is the set of records found during iteration through memory, owned by @@ -186,7 +186,7 @@ // See PersistentMemoryAllocator::Iterator for more information. class BASE_EXPORT Iterator { public: - // Constructs an iterator on a given |allocator|, starting at the beginning. + // Constructs an iterator on a given `allocator`, starting at the beginning. // The allocator must live beyond the lifetime of the iterator. explicit Iterator(PersistentHistogramAllocator* allocator); @@ -199,7 +199,7 @@ std::unique_ptr<HistogramBase> GetNext() { return GetNextWithIgnore(0); } // Gets the next histogram from persistent memory, ignoring one particular - // reference in the process. Pass |ignore| of zero (0) to ignore nothing. + // reference in the process. Pass `ignore` of zero (0) to ignore nothing. std::unique_ptr<HistogramBase> GetNextWithIgnore(Reference ignore); private: @@ -240,7 +240,7 @@ // Recreate a Histogram from data held in persistent memory. Though this // object will be local to the current process, the sample data will be - // shared with all other threads referencing it. This method takes a |ref| + // shared with all other threads referencing it. This method takes a `ref` // to where the top-level histogram data may be found in this allocator. // This method will return null if any problem is detected with the data. std::unique_ptr<HistogramBase> GetHistogram(Reference ref); @@ -257,7 +257,7 @@ Reference* ref_ptr); // Finalize the creation of the histogram, making it available to other - // processes if |registered| (as in: added to the StatisticsRecorder) is + // processes if `registered` (as in: added to the StatisticsRecorder) is // True, forgetting it otherwise. void FinalizeHistogram(Reference ref, bool registered); @@ -280,35 +280,35 @@ const HistogramBase* histogram); // Returns an object that manages persistent-sample-map records for a given - // |id|. The returned object queries |sparse_histogram_data_manager_| for + // `id`. The returned object queries `sparse_histogram_data_manager_` for // records. Hence, the returned object must not outlive - // |sparse_histogram_data_manager_| (and hence |this|). + // `sparse_histogram_data_manager_` (and hence `this`). std::unique_ptr<PersistentSampleMapRecords> CreateSampleMapRecords( uint64_t id); // Creates internal histograms for tracking memory use and allocation sizes - // for allocator of |name| (which can simply be the result of Name()). This - // is done seperately from construction for situations such as when the + // for allocator of `name` (which can simply be the result of Name()). This + // is done separately from construction for situations such as when the // histograms will be backed by memory provided by this very allocator. // // IMPORTANT: tools/metrics/histograms/metadata/uma/histograms.xml must - // be updated with the following histograms for each |name| param: + // be updated with the following histograms for each `name` param: // UMA.PersistentAllocator.name.UsedPct void CreateTrackingHistograms(std::string_view name); void UpdateTrackingHistograms(); - // Sets the internal |ranges_manager_|, which will be used by the allocator to - // register BucketRanges. Takes ownership of the passed |ranges_manager|. + // Sets the internal `ranges_manager_`, which will be used by the allocator to + // register BucketRanges. Takes ownership of the passed `ranges_manager`. // - // WARNING: Since histograms may be created from |this| from multiple threads, + // WARNING: Since histograms may be created from `this` from multiple threads, // for example through a direct call to CreateHistogram(), or while iterating - // through |this|, then the passed manager may also be accessed concurrently. + // through `this`, then the passed manager may also be accessed concurrently. // Hence, care must be taken to ensure that either: // 1) The passed manager is threadsafe (see ThreadSafeRangesManager), or - // 2) |this| is not used concurrently. + // 2) `this` is not used concurrently. void SetRangesManager(RangesManager* ranges_manager); - // Clears the internal |last_created_| reference so testing can validate + // Clears the internal `last_created_` reference so testing can validate // operation without that optimization. void ClearLastCreatedReferenceForTesting(); @@ -334,7 +334,7 @@ PersistentHistogramData* histogram_data_ptr); // Gets or creates an object in the global StatisticsRecorder matching - // the |histogram| passed. Null is returned if one was not found and + // the `histogram` passed. Null is returned if one was not found and // one could not be created. HistogramBase* GetOrCreateStatisticsRecorderHistogram( const HistogramBase* histogram); @@ -370,7 +370,7 @@ ~GlobalHistogramAllocator() override; - // Create a global allocator using the passed-in memory |base|, |size|, and + // Create a global allocator using the passed-in memory `base`, `size`, and // other parameters. Ownership of the memory segment remains with the caller. static void CreateWithPersistentMemory(void* base, size_t size, @@ -379,17 +379,17 @@ std::string_view name); // Create a global allocator using an internal block of memory of the - // specified |size| taken from the heap. + // specified `size` taken from the heap. static void CreateWithLocalMemory(size_t size, uint64_t id, std::string_view name); #if !BUILDFLAG(IS_NACL) - // Create a global allocator by memory-mapping a |file|. If the file does - // not exist, it will be created with the specified |size|. If the file does + // Create a global allocator by memory-mapping a `file`. If the file does + // not exist, it will be created with the specified `size`. If the file does // exist, the allocator will use and add to its contents, ignoring the passed // size in favor of the existing size. Returns whether the global allocator - // was set. If |exclusive_write| is true, the file will be opened in a mode + // was set. If `exclusive_write` is true, the file will be opened in a mode // that disallows multiple concurrent writers (no effect on non-Windows). static bool CreateWithFile(const FilePath& file_path, size_t size, @@ -397,9 +397,9 @@ std::string_view name, bool exclusive_write = false); - // Creates a new file at |active_path|. If it already exists, it will first be - // moved to |base_path|. In all cases, any old file at |base_path| will be - // removed. If |spare_path| is non-empty and exists, that will be renamed and + // Creates a new file at `active_path`. If it already exists, it will first be + // moved to `base_path`. In all cases, any old file at `base_path` will be + // removed. If `spare_path` is non-empty and exists, that will be renamed and // used as the active file. Otherwise, the file will be created using the // given size, id, and name. Returns whether the global allocator was set. static bool CreateWithActiveFile(const FilePath& base_path, @@ -410,9 +410,9 @@ std::string_view name); // Uses ConstructBaseActivePairFilePaths() to build a pair of file names which - // are then used for CreateWithActiveFile(). |name| is used for both the + // are then used for CreateWithActiveFile(). `name` is used for both the // internal name for the allocator and also for the name of the file inside - // |dir|. + // `dir`. static bool CreateWithActiveFileInDir(const FilePath& dir, size_t size, uint64_t id, @@ -447,7 +447,7 @@ #endif // Create a global allocator using a block of shared memory accessed - // through the given |region|. The allocator maps the shared memory into + // through the given `region`. The allocator maps the shared memory into // current process's virtual address space and frees it upon destruction. // The memory will continue to live if other processes have access to it. static void CreateWithSharedMemoryRegion( @@ -486,7 +486,7 @@ bool HasPersistentLocation() const; // Moves the file being used to persist this allocator's data to the directory - // specified by |dir|. Returns whether the operation was successful. + // specified by `dir`. Returns whether the operation was successful. bool MovePersistentFile(const FilePath& dir); // Writes the internal data to a previously set location. This is generally
diff --git a/base/metrics/persistent_memory_allocator.cc b/base/metrics/persistent_memory_allocator.cc index 269df891..19b07bd 100644 --- a/base/metrics/persistent_memory_allocator.cc +++ b/base/metrics/persistent_memory_allocator.cc
@@ -59,7 +59,7 @@ // the metadata, the version number can be queried to operate in a backward- // compatible manner until the memory segment is completely re-initalized. // Note: If you update the metadata in a non-backwards compatible way, reset -// |kCompatibleVersions|. Otherwise, add the previous version. +// `kCompatibleVersions`. Otherwise, add the previous version. constexpr uint32_t kGlobalVersion = 3; static constexpr uint32_t kOldCompatibleVersions[] = {2}; @@ -146,12 +146,12 @@ // The "iterable" queue is an M&S Queue as described here, append-only: // https://www.research.ibm.com/people/m/michael/podc-1996.pdf - // |queue| needs to be 64-bit aligned and is itself a multiple of 64 bits. + // `queue` needs to be 64-bit aligned and is itself a multiple of 64 bits. volatile std::atomic<uint32_t> tailptr; // Last block of iteration queue. volatile BlockHeader queue; // Empty block for linked-list head/tail. }; -// The "queue" block header is used to detect "last node" so that zero/null +// The `queue` block header is used to detect the "last node" so that zero/null // can be used to indicate that it hasn't been added at all. It is part of // the SharedMetadata structure which itself is always located at offset zero. const PersistentMemoryAllocator::Reference @@ -207,7 +207,8 @@ } PersistentMemoryAllocator::Reference -PersistentMemoryAllocator::Iterator::GetNext(uint32_t* type_return) { +PersistentMemoryAllocator::Iterator::GetNext(uint32_t* type_return, + size_t* alloc_size) { // Make a copy of the existing count of found-records, acquiring all changes // made to the allocator, notably "freeptr" (see comment in loop for why // the load of that value cannot be moved above here) that occurred during @@ -218,12 +219,13 @@ // "count" was fetched _after_ "freeptr" then it would be possible for // this thread to be interrupted between them and other threads perform // multiple allocations, make-iterables, and iterations (with the included - // increment of |record_count_|) culminating in the check at the bottom + // increment of `record_count_`) culminating in the check at the bottom // mistakenly determining that a loop exists. Isn't this stuff fun? uint32_t count = record_count_.load(std::memory_order_acquire); Reference last = last_record_.load(std::memory_order_acquire); - Reference next; + Reference next = 0; + size_t next_size = 0; while (true) { const volatile BlockHeader* block = allocator_->GetBlock(last, 0, 0, true, false); @@ -244,7 +246,7 @@ next = block->next.load(std::memory_order_acquire); if (next == kReferenceQueue) // No next allocation in queue. return kReferenceNull; - block = allocator_->GetBlock(next, 0, 0, false, false); + block = allocator_->GetBlock(next, 0, 0, false, false, &next_size); if (!block) { // Memory is corrupt. allocator_->SetCorrupt(); return kReferenceNull; @@ -285,21 +287,29 @@ // It does not matter if it falls behind temporarily so long as it never // gets ahead. record_count_.fetch_add(1, std::memory_order_release); + if (alloc_size) { + *alloc_size = next_size; + } return next; } PersistentMemoryAllocator::Reference -PersistentMemoryAllocator::Iterator::GetNextOfType(uint32_t type_match) { +PersistentMemoryAllocator::Iterator::GetNextOfType(uint32_t type_match, + size_t* alloc_size) { Reference ref; + size_t size; uint32_t type_found; - while ((ref = GetNext(&type_found)) != 0) { - if (type_found == type_match) + while ((ref = GetNext(&type_found, &size)) != 0) { + if (type_found == type_match) { + if (alloc_size) { + *alloc_size = size; + } return ref; + } } return kReferenceNull; } - // static bool PersistentMemoryAllocator::IsMemoryAcceptable(const void* base, size_t size, @@ -474,12 +484,12 @@ const char* PersistentMemoryAllocator::Name() const { Reference name_ref = shared_meta()->name; - const char* name_cstr = - GetAsArray<char>(name_ref, 0, PersistentMemoryAllocator::kSizeAny); + size_t name_length = 0; + const char* name_cstr = GetAsArray<char>( + name_ref, 0, PersistentMemoryAllocator::kSizeAny, &name_length); if (!name_cstr) return ""; - size_t name_length = GetAllocSize(name_ref); if (name_cstr[name_length - 1] != '\0') { NOTREACHED(); } @@ -536,23 +546,6 @@ return ref; } -size_t PersistentMemoryAllocator::GetAllocSize(Reference ref) const { - const volatile BlockHeader* const block = GetBlock(ref, 0, 0, false, false); - if (!block) - return 0; - uint32_t size = block->size; - // Header was verified by GetBlock() but a malicious actor could change - // the value between there and here. Check it again. - uint32_t total_size; - if (size <= sizeof(BlockHeader) || - !base::CheckAdd(ref, size).AssignIfValid(&total_size) || - total_size > mem_size_) { - SetCorrupt(); - return 0; - } - return size - sizeof(BlockHeader); -} - uint32_t PersistentMemoryAllocator::GetType(Reference ref) const { const volatile BlockHeader* const block = GetBlock(ref, 0, 0, false, false); if (!block) @@ -622,13 +615,15 @@ PersistentMemoryAllocator::Reference PersistentMemoryAllocator::Allocate( size_t req_size, - uint32_t type_id) { - return AllocateImpl(req_size, type_id); + uint32_t type_id, + size_t* alloc_size) { + return AllocateImpl(req_size, type_id, alloc_size); } PersistentMemoryAllocator::Reference PersistentMemoryAllocator::AllocateImpl( size_t req_size, - uint32_t type_id) { + uint32_t type_id, + size_t* alloc_size) { DCHECK_NE(access_mode_, kReadOnly); // Validate req_size to ensure it won't overflow when used as 32-bit value. @@ -790,6 +785,11 @@ block->size = static_cast<uint32_t>(size); block->cookie = kBlockCookieAllocated; block->type_id.store(type_id, std::memory_order_relaxed); + + // Return the allocation size if requested. + if (alloc_size) { + *alloc_size = size - sizeof(BlockHeader); + } return freeptr; } } @@ -901,17 +901,16 @@ return CheckFlag(&shared_meta()->flags, kFlagFull); } -// Dereference a block |ref| and ensure that it's valid for the desired -// |type_id| and |size|. |special| indicates that we may try to access block -// headers not available to callers but still accessed by this module. By -// having internal dereferences go through this same function, the allocator -// is hardened against corruption. const volatile PersistentMemoryAllocator::BlockHeader* PersistentMemoryAllocator::GetBlock(Reference ref, uint32_t type_id, size_t size, bool queue_ok, - bool free_ok) const { + bool free_ok, + size_t* alloc_size) const { + // The caller cannot request `alloc_size` if `queue_ok` or `free_ok`. + CHECK(!(alloc_size && (queue_ok || free_ok))); + // Handle special cases. if (ref == kReferenceQueue && queue_ok) return reinterpret_cast<const volatile BlockHeader*>(mem_base_ + ref); @@ -930,29 +929,39 @@ return nullptr; } + const volatile BlockHeader* const block = + reinterpret_cast<volatile BlockHeader*>(mem_base_ + ref); + // Validation of referenced block-header. if (!free_ok) { - const volatile BlockHeader* const block = - reinterpret_cast<volatile BlockHeader*>(mem_base_ + ref); if (block->cookie != kBlockCookieAllocated) return nullptr; - if (block->size < size) - return nullptr; - uint32_t block_size; - if (!base::CheckAdd(ref, block->size).AssignIfValid(&block_size)) { + const uint32_t block_size = block->size; + if (block_size < size) { return nullptr; } - if (block_size > mem_size_) { + // Find a validate the end of the block. + uint32_t block_end_ref; + if (!base::CheckAdd(ref, block_size).AssignIfValid(&block_end_ref)) { + return nullptr; + } + if (block_end_ref > mem_size_) { + // The end of the alloc extends beyond the allocator's bounds. + SetCorrupt(); return nullptr; } if (type_id != 0 && block->type_id.load(std::memory_order_relaxed) != type_id) { return nullptr; } + // Return `alloc_size` if requested by the caller. + if (alloc_size) { + *alloc_size = block_size - sizeof(BlockHeader); + } } // Return pointer to block data. - return reinterpret_cast<const volatile BlockHeader*>(mem_base_ + ref); + return block; } void PersistentMemoryAllocator::FlushPartial(size_t length, bool sync) { @@ -973,10 +982,11 @@ const volatile void* PersistentMemoryAllocator::GetBlockData( Reference ref, uint32_t type_id, - size_t size) const { + size_t size, + size_t* alloc_size) const { DCHECK(size > 0); const volatile BlockHeader* block = - GetBlock(ref, type_id, size, false, false); + GetBlock(ref, type_id, size, false, false, alloc_size); if (!block) return nullptr; return reinterpret_cast<const volatile char*>(block) + sizeof(BlockHeader); @@ -1155,14 +1165,14 @@ base::BlockingType::MAY_BLOCK); // Calculate begin/end addresses so that the first byte of every page - // in that range can be read. Keep within the used space. The |volatile| + // in that range can be read. Keep within the used space. The `volatile` // keyword makes it so the compiler can't make assumptions about what is // in a given memory location and thus possibly avoid the read. const volatile char* mem_end = mem_base_ + used(); const volatile char* mem_begin = mem_base_; // Iterate over the memory a page at a time, reading the first byte of - // every page. The values are added to a |total| so that the compiler + // every page. The values are added to a `total` so that the compiler // can't omit the read. int total = 0; for (const volatile char* memory = mem_begin; memory < mem_end; @@ -1170,7 +1180,7 @@ total += *memory; } - // Tell the compiler that |total| is used so that it can't optimize away + // Tell the compiler that `total` is used so that it can't optimize away // the memory accesses above. debug::Alias(&total); } @@ -1240,7 +1250,8 @@ #endif // !BUILDFLAG(IS_NACL) if (!ref) { - ref = allocator_->Allocate(size_, type_); + [[maybe_unused]] size_t alloc_size = 0; + ref = allocator_->Allocate(size_, type_, &alloc_size); if (!ref) { return span<uint8_t>(); } @@ -1256,7 +1267,7 @@ // allocation, and stored its reference. Purge the allocation that was // just done and use the other one instead. DCHECK_EQ(type_, allocator_->GetType(existing)); - DCHECK_LE(size_, allocator_->GetAllocSize(existing)); + DCHECK_LE(size_, alloc_size); allocator_->ChangeType(ref, 0, type_, /*clear=*/false); ref = existing; #if !BUILDFLAG(IS_NACL) @@ -1292,13 +1303,13 @@ SCOPED_CRASH_KEY_NUMBER("PersistentMemoryAllocator", "size_", size_); if (ref == 0xC8799269) { // There are many crash reports containing the corrupted "0xC8799269" - // value in |ref|. This value is actually a "magic" number to indicate + // value in `ref`. This value is actually a "magic" number to indicate // that a certain block in persistent memory was successfully allocated, // so it should not appear there. Include some extra crash keys to see if // the surrounding values were also corrupted. If so, the value before // would be the size of the allocated object, and the value after would be // the type id of the allocated object. If they are not corrupted, these - // would contain |ranges_checksum| and the start of |samples_metadata| + // would contain `ranges_checksum` and the start of `samples_metadata` // respectively (see PersistentHistogramData struct). We do some pointer // arithmetic here -- it should theoretically be safe, unless something // went terribly wrong...
diff --git a/base/metrics/persistent_memory_allocator.h b/base/metrics/persistent_memory_allocator.h index 0265d26f..8f4bd88 100644 --- a/base/metrics/persistent_memory_allocator.h +++ b/base/metrics/persistent_memory_allocator.h
@@ -171,13 +171,13 @@ // eventually quit. class BASE_EXPORT Iterator { public: - // Constructs an iterator on a given |allocator|, starting at the beginning. + // Constructs an iterator on a given `allocator`, starting at the beginning. // The allocator must live beyond the lifetime of the iterator. This class // has read-only access to the allocator (hence "const") but the returned // references can be used on a read/write version, too. explicit Iterator(const PersistentMemoryAllocator* allocator); - // As above but resuming from the |starting_after| reference. The first call + // As above but resuming from the `starting_after` reference. The first call // to GetNext() will return the next object found after that reference. The // reference must be to an "iterable" object; references to non-iterable // objects (those that never had MakeIterable() called for them) will cause @@ -193,7 +193,7 @@ // Resets the iterator back to the beginning. void Reset(); - // Resets the iterator, resuming from the |starting_after| reference. + // Resets the iterator, resuming from the `starting_after` reference. void Reset(Reference starting_after); // Returns the previously retrieved reference, or kReferenceNull if none. @@ -201,17 +201,17 @@ // that value. Reference GetLast(); - // Gets the next iterable, storing that type in |type_return|. The actual + // Gets the next iterable, storing that type in `type_return`. The actual // return value is a reference to the allocation inside the allocator or // zero if there are no more. GetNext() may still be called again at a // later time to retrieve any new allocations that have been added. - Reference GetNext(uint32_t* type_return); + Reference GetNext(uint32_t* type_return, size_t* alloc_size = nullptr); - // Similar to above but gets the next iterable of a specific |type_match|. + // Similar to above but gets the next iterable of a specific `type_match`. // This should not be mixed with calls to GetNext() because any allocations // skipped here due to a type mis-match will never be returned by later // calls to GetNext() meaning it's possible to completely miss entries. - Reference GetNextOfType(uint32_t type_match); + Reference GetNextOfType(uint32_t type_match, size_t* alloc_size = nullptr); // As above but works using object type. template <typename T> @@ -244,8 +244,8 @@ } // Convert a generic pointer back into a reference. A null reference will - // be returned if |memory| is not inside the persistent segment or does not - // point to an object of the specified |type_id|. + // be returned if `memory` is not inside the persistent segment or does not + // point to an object of the specified `type_id`. Reference GetAsReference(const void* memory, uint32_t type_id) const { return allocator_->GetAsReference(memory, type_id); } @@ -308,12 +308,12 @@ // The allocator operates on any arbitrary block of memory. Creation and // persisting or sharing of that block with another process is the // responsibility of the caller. The allocator needs to know only the - // block's |base| address, the total |size| of the block, and any internal - // |page| size (zero if not paged) across which allocations should not span. - // The |id| is an arbitrary value the caller can use to identify a + // block's `base` address, the total `size` of the block, and any internal + // `page` size (zero if not paged) across which allocations should not span. + // The `id` is an arbitrary value the caller can use to identify a // particular memory segment. It will only be loaded during the initial // creation of the segment and can be checked by the caller for consistency. - // The |name|, if provided, is used to distinguish histograms for this + // The `name`, if provided, is used to distinguish histograms for this // allocator. Only the primary owner of the segment should define this value; // other processes can learn it from the shared state. If the access mode // is kReadOnly then no changes will be made to it. The resulting object @@ -367,12 +367,12 @@ uint8_t GetMemoryState() const; // Create internal histograms for tracking memory use and allocation sizes - // for allocator of |name| (which can simply be the result of Name()). This - // is done seperately from construction for situations such as when the + // for allocator of `name` (which can simply be the result of Name()). This + // is done separately from construction for situations such as when the // histograms will be backed by memory provided by this very allocator. // // IMPORTANT: tools/metrics/histograms/metadata/uma/histograms.xml must - // be updated with the following histograms for each |name| param: + // be updated with the following histograms for each `name` param: // UMA.PersistentAllocator.name.Errors // UMA.PersistentAllocator.name.UsedPct void CreateTrackingHistograms(std::string_view name); @@ -382,13 +382,13 @@ // OS that all the data should be sent to the disk immediately. This is // useful in the rare case where something has just been stored that needs // to survive a hard shutdown of the machine like from a power failure. - // The |sync| parameter indicates if this call should block until the flush + // The `sync` parameter indicates if this call should block until the flush // is complete but is only advisory and may or may not have an effect // depending on the capabilities of the OS. Synchronous flushes are allowed - // only from threads that are allowed to do I/O but since |sync| is only + // only from threads that are allowed to do I/O but since `sync` is only // advisory, all flushes should be done on IO-capable threads. - // TODO: Since |sync| is ignored on Windows, consider making it re-post on a - // background thread with |sync| set to true so that |sync| is not just + // TODO: Since `sync` is ignored on Windows, consider making it re-post on a + // background thread with `sync` set to true so that `sync` is not just // advisory. void Flush(bool sync); @@ -400,9 +400,9 @@ size_t size() const { return mem_size_; } size_t used() const; - // Get an object referenced by a |ref|. For safety reasons, the |type_id| - // code and size-of(|T|) are compared to ensure the reference is valid - // and cannot return an object outside of the memory segment. A |type_id| of + // Get an object referenced by a `ref`. For safety reasons, the `type_id` + // code and size-of(`T`) are compared to ensure the reference is valid + // and cannot return an object outside of the memory segment. A `type_id` of // kTypeIdAny (zero) will match any though the size is still checked. NULL is // returned if any problem is detected, such as corrupted storage or incorrect // parameters. Callers MUST check that the returned value is not-null EVERY @@ -422,7 +422,7 @@ // largest architecture, including at the end. // // To protected against mistakes, all objects must have the attribute - // |kExpectedInstanceSize| (static constexpr size_t) that is a hard-coded + // `kExpectedInstanceSize` (static constexpr size_t) that is a hard-coded // numerical value -- NNN, not sizeof(T) -- that can be tested. If the // instance size is not fixed, at least one build will fail. // @@ -442,27 +442,28 @@ // nature of that keyword to the caller. It can add it back, if necessary, // based on knowledge of how the allocator is being used. template <typename T> - T* GetAsObject(Reference ref) { + T* GetAsObject(Reference ref, size_t* alloc_size = nullptr) { static_assert(std::is_standard_layout_v<T>, "only standard objects"); static_assert(!std::is_array_v<T>, "use GetAsArray<>()"); static_assert(T::kExpectedInstanceSize == sizeof(T), "inconsistent size"); return const_cast<T*>(reinterpret_cast<volatile T*>( - GetBlockData(ref, T::kPersistentTypeId, sizeof(T)))); + GetBlockData(ref, T::kPersistentTypeId, sizeof(T), alloc_size))); } template <typename T> - const T* GetAsObject(Reference ref) const { + const T* GetAsObject(Reference ref, size_t* alloc_size = nullptr) const { static_assert(std::is_standard_layout_v<T>, "only standard objects"); static_assert(!std::is_array_v<T>, "use GetAsArray<>()"); static_assert(T::kExpectedInstanceSize == sizeof(T), "inconsistent size"); return const_cast<const T*>(reinterpret_cast<const volatile T*>( - GetBlockData(ref, T::kPersistentTypeId, sizeof(T)))); + GetBlockData(ref, T::kPersistentTypeId, sizeof(T), alloc_size))); } - // Like GetAsObject but get an array of simple, fixed-size types. + // Like GetAsObject() but get an array of simple, fixed-size types. // - // Use a |count| of the required number of array elements, or kSizeAny. - // GetAllocSize() can be used to calculate the upper bound but isn't reliable - // because padding can make space for extra elements that were not written. + // Use a `count` of the required number of array elements, or kSizeAny. + // The, optionally returned, `alloc_size` can be used to calculate the upper + // bound but isn't reliable because padding can make space for extra elements + // that were not written. // // Remember that an array of char is a string but may not be NUL terminated. // @@ -470,29 +471,29 @@ // compatibilty when using these accessors. Only use fixed-size types such // as char, float, double, or (u)intXX_t. template <typename T> - T* GetAsArray(Reference ref, uint32_t type_id, size_t count) { + T* GetAsArray(Reference ref, + uint32_t type_id, + size_t count, + size_t* alloc_size = nullptr) { static_assert(std::is_fundamental_v<T>, "use GetAsObject<>()"); return const_cast<T*>(reinterpret_cast<volatile T*>( - GetBlockData(ref, type_id, count * sizeof(T)))); + GetBlockData(ref, type_id, count * sizeof(T), alloc_size))); } template <typename T> - const T* GetAsArray(Reference ref, uint32_t type_id, size_t count) const { + const T* GetAsArray(Reference ref, + uint32_t type_id, + size_t count, + size_t* alloc_size = nullptr) const { static_assert(std::is_fundamental_v<T>, "use GetAsObject<>()"); return const_cast<const char*>(reinterpret_cast<const volatile T*>( - GetBlockData(ref, type_id, count * sizeof(T)))); + GetBlockData(ref, type_id, count * sizeof(T), alloc_size))); } // Get the corresponding reference for an object held in persistent memory. - // If the |memory| is not valid or the type does not match, a kReferenceNull + // If the `memory` is not valid or the type does not match, a kReferenceNull // result will be returned. Reference GetAsReference(const void* memory, uint32_t type_id) const; - // Get the number of bytes allocated to a block. This is useful when storing - // arrays in order to validate the ending boundary. The returned value will - // include any padding added to achieve the required alignment and so could - // be larger than given in the original Allocate() request. - size_t GetAllocSize(Reference ref) const; - // Access the internal "type" of an object. This generally isn't necessary // but can be used to "clear" the type and so effectively mark it as deleted // even though the memory stays valid and allocated. Changing the type is @@ -500,8 +501,8 @@ // It will return false if the existing type is not what is expected. // // Changing the type doesn't mean the data is compatible with the new type. - // Passing true for |clear| will zero the memory after the type has been - // changed away from |from_type_id| but before it becomes |to_type_id| meaning + // Passing true for `clear` will zero the memory after the type has been + // changed away from `from_type_id` but before it becomes `to_type_id` meaning // that it is done in a manner that is thread-safe. Memory is guaranteed to // be zeroed atomically by machine-word in a monotonically increasing order. // @@ -553,13 +554,15 @@ // While the above works much like malloc & free, these next methods provide // an "object" interface similar to new and delete. - // Reserve space in the memory segment of the desired |size| and |type_id|. + // Reserve space in the memory segment of the desired `size` and `type_id`. // // A return value of zero indicates the allocation failed, otherwise the // returned reference can be used by any process to get a real pointer via - // the GetAsObject() or GetAsArray calls. The actual allocated size may be + // the GetAsObject() or GetAsArray() calls. The actual allocated size may be // larger and will always be a multiple of 8 bytes (64 bits). - Reference Allocate(size_t size, uint32_t type_id); + Reference Allocate(size_t size, + uint32_t type_id, + size_t* alloc_size = nullptr); // Allocate and construct an object in persistent memory. The type must have // both (size_t) kExpectedInstanceSize and (uint32_t) kPersistentTypeId @@ -586,7 +589,7 @@ } // Similar to New, above, but construct the object out of an existing memory - // block and of an expected type. If |clear| is true, memory will be zeroed + // block and of an expected type. If `clear` is true, memory will be zeroed // before construction. Though this is not standard object behavior, it // is present to match with new allocations that always come from zeroed // memory. Anything previously present simply ceases to exist; no destructor @@ -596,13 +599,16 @@ // results. USE WITH CARE! template <typename T> T* New(Reference ref, uint32_t from_type_id, bool clear) { - DCHECK_LE(sizeof(T), GetAllocSize(ref)) << "alloc not big enough for obj"; // Make sure the memory is appropriate. This won't be used until after // the type is changed but checking first avoids the possibility of having // to change the type back. - void* mem = const_cast<void*>(GetBlockData(ref, 0, sizeof(T))); + size_t alloc_size = 0; + void* mem = const_cast<void*>(GetBlockData(ref, 0, sizeof(T), &alloc_size)); if (!mem) return nullptr; + + DCHECK_LE(sizeof(T), alloc_size) << "alloc not big enough for obj"; + // Ensure the allocator's internal alignment is sufficient for this object. // This protects against coding errors in the allocator. DCHECK_EQ(0U, reinterpret_cast<uintptr_t>(mem) & (alignof(T) - 1)); @@ -633,7 +639,7 @@ // First change the type to "transitioning" so there is no race condition // where another thread could find the object through iteration while it // is been destructed. This will "acquire" the memory so no changes get - // reordered before it. It will fail if |ref| is invalid. + // reordered before it. It will fail if `ref` is invalid. if (!ChangeType(ref, kTypeIdTransitioning, T::kPersistentTypeId, false)) return; // Destruct the object. @@ -677,7 +683,7 @@ }; // Constructs the allocator. Everything is the same as the public allocator - // except |memory| which is a structure with additional information besides + // except `memory` which is a structure with additional information besides // the base address. PersistentMemoryAllocator(Memory memory, size_t size, @@ -715,32 +721,52 @@ } // Actual method for doing the allocation. - Reference AllocateImpl(size_t size, uint32_t type_id); + Reference AllocateImpl(size_t size, uint32_t type_id, size_t* alloc_size); - // Gets the block header associated with a specific reference. + // Dereferences a block `ref` to retrieve a pointer to the block header for + // the reference. This method ensures that the referenced block is valid for + // the desired `type_id` and `size`. Optionally, if `alloc_sizes` is not + // nullptr, the validated size of the underlying allocation is returned. + // + // Special cases for internal use only: + // + // * If `queue_ok` is true and `ref` is kReferenceQueueindicates then the + // block header for the allocation queue is returned. + // + // * if `free_ok` then the block header is allowed to point to a block that + // may not be in the `allocated` state. This bypasses block validation. + // + // Because they bypass block valoidation, it is not premitted to request the + // `alloc_size` when either of `queue_ok` or `free_ok` are true. const volatile BlockHeader* GetBlock(Reference ref, uint32_t type_id, size_t size, bool queue_ok, - bool free_ok) const; + bool free_ok, + size_t* alloc_size = nullptr) const; volatile BlockHeader* GetBlock(Reference ref, uint32_t type_id, size_t size, bool queue_ok, - bool free_ok) { + bool free_ok, + size_t* alloc_size = nullptr) { return const_cast<volatile BlockHeader*>( const_cast<const PersistentMemoryAllocator*>(this)->GetBlock( - ref, type_id, size, queue_ok, free_ok)); + ref, type_id, size, queue_ok, free_ok, alloc_size)); } // Gets the actual data within a block associated with a specific reference. const volatile void* GetBlockData(Reference ref, uint32_t type_id, - size_t size) const; - volatile void* GetBlockData(Reference ref, uint32_t type_id, size_t size) { + size_t size, + size_t* alloc_size = nullptr) const; + volatile void* GetBlockData(Reference ref, + uint32_t type_id, + size_t size, + size_t* alloc_size = nullptr) { return const_cast<volatile void*>( const_cast<const PersistentMemoryAllocator*>(this)->GetBlockData( - ref, type_id, size)); + ref, type_id, size, alloc_size)); } // Returns the offset to the first free space segment. @@ -785,12 +811,12 @@ ~LocalPersistentMemoryAllocator() override; private: - // Allocates a block of local memory of the specified |size|, ensuring that + // Allocates a block of local memory of the specified `size`, ensuring that // the memory will not be physically allocated until accessed and will read // as zero when that happens. static Memory AllocateLocalMemory(size_t size, std::string_view name); - // Deallocates a block of local |memory| of the specified |size|. + // Deallocates a block of local `memory` of the specified `size`. static void DeallocateLocalMemory(void* memory, size_t size, MemoryType type); }; @@ -858,8 +884,8 @@ class BASE_EXPORT FilePersistentMemoryAllocator : public PersistentMemoryAllocator { public: - // A |max_size| of zero will use the length of the file as the maximum - // size. The |file| object must have been already created with sufficient + // A `max_size` of zero will use the length of the file as the maximum + // size. The `file` object must have been already created with sufficient // permissions (read, read/write, or read/write/extend). FilePersistentMemoryAllocator(std::unique_ptr<MemoryMappedFile> file, size_t max_size, @@ -909,18 +935,18 @@ public: using Reference = PersistentMemoryAllocator::Reference; - // Creates a delayed allocation using the specified |allocator|. When - // needed, the memory will be allocated using the specified |type| and - // |size|. If |offset| is given, the returned pointer will be at that + // Creates a delayed allocation using the specified `allocator`. When + // needed, the memory will be allocated using the specified `type` and + // `size`. If `offset` is given, the returned pointer will be at that // offset into the segment; this allows combining allocations into a // single persistent segment to reduce overhead and means an "all or - // nothing" request. Note that |size| is always the total memory size - // and |offset| is just indicating the start of a block within it. + // nothing" request. Note that `size` is always the total memory size + // and `offset` is just indicating the start of a block within it. // - // Once allocated, a reference to the segment will be stored at |ref|. + // Once allocated, a reference to the segment will be stored at `ref`. // This shared location must be initialized to zero (0); it is checked // with every Get() request to see if the allocation has already been - // done. If reading |ref| outside of this object, be sure to do an + // done. If reading `ref` outside of this object, be sure to do an // "acquire" load. Don't write to it -- leave that to this object. DelayedPersistentAllocation(PersistentMemoryAllocator* allocator, std::atomic<Reference>* ref,
diff --git a/base/metrics/persistent_memory_allocator_unittest.cc b/base/metrics/persistent_memory_allocator_unittest.cc index 01ac173..a0b96616 100644 --- a/base/metrics/persistent_memory_allocator_unittest.cc +++ b/base/metrics/persistent_memory_allocator_unittest.cc
@@ -141,11 +141,12 @@ ASSERT_TRUE(obj1); Reference block1 = allocator_->GetAsReference(obj1); ASSERT_NE(0U, block1); - EXPECT_NE(nullptr, allocator_->GetAsObject<TestObject1>(block1)); EXPECT_EQ(nullptr, allocator_->GetAsObject<TestObject2>(block1)); - EXPECT_LE(sizeof(TestObject1), allocator_->GetAllocSize(block1)); - EXPECT_GT(sizeof(TestObject1) + kAllocAlignment, - allocator_->GetAllocSize(block1)); + size_t alloc_size_1 = 0; + EXPECT_NE(nullptr, + allocator_->GetAsObject<TestObject1>(block1, &alloc_size_1)); + EXPECT_LE(sizeof(TestObject1), alloc_size_1); + EXPECT_GT(sizeof(TestObject1) + kAllocAlignment, alloc_size_1); PersistentMemoryAllocator::MemoryInfo meminfo1; allocator_->GetMemoryInfo(&meminfo1); EXPECT_EQ(meminfo0.total, meminfo1.total); @@ -181,11 +182,12 @@ ASSERT_TRUE(obj2); Reference block2 = allocator_->GetAsReference(obj2); ASSERT_NE(0U, block2); - EXPECT_NE(nullptr, allocator_->GetAsObject<TestObject2>(block2)); EXPECT_EQ(nullptr, allocator_->GetAsObject<TestObject1>(block2)); - EXPECT_LE(sizeof(TestObject2), allocator_->GetAllocSize(block2)); - EXPECT_GT(sizeof(TestObject2) + kAllocAlignment, - allocator_->GetAllocSize(block2)); + size_t alloc_size_2 = 0; + EXPECT_NE(nullptr, + allocator_->GetAsObject<TestObject2>(block2, &alloc_size_2)); + EXPECT_LE(sizeof(TestObject2), alloc_size_2); + EXPECT_GT(sizeof(TestObject2) + kAllocAlignment, alloc_size_2); PersistentMemoryAllocator::MemoryInfo meminfo2; allocator_->GetMemoryInfo(&meminfo2); EXPECT_EQ(meminfo1.total, meminfo2.total); @@ -966,10 +968,10 @@ uint32_t type_id; Reference ref; while ((ref = iter.GetNext(&type_id)) != 0) { + size_t size = 0; const char* data = allocator.GetAsArray<char>( - ref, 0, PersistentMemoryAllocator::kSizeAny); + ref, 0, PersistentMemoryAllocator::kSizeAny, &size); uint32_t type = allocator.GetType(ref); - size_t size = allocator.GetAllocSize(ref); // Ensure compiler can't optimize-out above variables. (void)data; (void)type;
diff --git a/base/profiler/libunwindstack_unwinder_android.cc b/base/profiler/libunwindstack_unwinder_android.cc index 9a787fd..8786c21 100644 --- a/base/profiler/libunwindstack_unwinder_android.cc +++ b/base/profiler/libunwindstack_unwinder_android.cc
@@ -39,8 +39,8 @@ class NonElfModule : public ModuleCache::Module { public: explicit NonElfModule(unwindstack::MapInfo* map_info) - : start_(map_info->start()), - size_(map_info->end() - start_), + : start_(static_cast<uintptr_t>(map_info->start())), + size_(static_cast<uintptr_t>(map_info->end() - start_)), map_info_name_(map_info->name()) {} ~NonElfModule() override = default; @@ -75,6 +75,9 @@ #endif // #if defined(ARCH_CPU_ARM_FAMILY) && defined(ARCH_CPU_32_BITS) } +// The WriteLibunwindstackTraceEventArgs callers below get implicitly ifdef'ed +// out as well, when ENABLE_BASE_TRACING is disabled. +#if BUILDFLAG(ENABLE_BASE_TRACING) void WriteLibunwindstackTraceEventArgs(unwindstack::ErrorCode error_code, std::optional<int> num_frames, perfetto::EventContext& ctx) { @@ -86,6 +89,7 @@ libunwindstack_unwinder->set_num_frames(*num_frames); } } +#endif // BUILDFLAG(ENABLE_BASE_TRACING) bool IsJavaModule(const base::ModuleCache::Module* module) { if (!module) { @@ -204,10 +208,11 @@ for (const unwindstack::FrameData& frame : values.frames) { const ModuleCache::Module* module = - module_cache()->GetModuleForAddress(frame.pc); + module_cache()->GetModuleForAddress(static_cast<uintptr_t>(frame.pc)); if (module == nullptr && frame.map_info != nullptr) { // Try searching for the module with same module start. - module = module_cache()->GetModuleForAddress(frame.map_info->start()); + module = module_cache()->GetModuleForAddress( + static_cast<uintptr_t>(frame.map_info->start())); if (module == nullptr) { auto module_for_caching = std::make_unique<NonElfModule>(frame.map_info.get());
diff --git a/base/profiler/libunwindstack_unwinder_android.h b/base/profiler/libunwindstack_unwinder_android.h index c25cf0c..151fafa 100644 --- a/base/profiler/libunwindstack_unwinder_android.h +++ b/base/profiler/libunwindstack_unwinder_android.h
@@ -8,6 +8,7 @@ #include <memory> #include <vector> +#include "base/base_export.h" #include "base/profiler/native_unwinder_android_memory_regions_map_impl.h" #include "base/profiler/unwinder.h" #include "third_party/libunwindstack/src/libunwindstack/include/unwindstack/DexFiles.h" @@ -23,7 +24,7 @@ // causes some divergences from other base::Unwinder (this unwinder either fully // succeeds or fully fails). A good source for a compariative unwinder would be // traced_perf or heapprofd on android which uses the same API. -class LibunwindstackUnwinderAndroid : public Unwinder { +class BASE_EXPORT LibunwindstackUnwinderAndroid : public Unwinder { public: LibunwindstackUnwinderAndroid(); ~LibunwindstackUnwinderAndroid() override;
diff --git a/base/profiler/native_unwinder_android.cc b/base/profiler/native_unwinder_android.cc index 1dbb83f..68abd5f 100644 --- a/base/profiler/native_unwinder_android.cc +++ b/base/profiler/native_unwinder_android.cc
@@ -37,8 +37,8 @@ class NonElfModule : public ModuleCache::Module { public: explicit NonElfModule(unwindstack::MapInfo* map_info) - : start_(map_info->start()), - size_(map_info->end() - start_), + : start_(static_cast<uintptr_t>(map_info->start())), + size_(static_cast<uintptr_t>(map_info->end() - start_)), map_info_name_(map_info->name()) {} ~NonElfModule() override = default; @@ -176,8 +176,9 @@ if (!elf->valid()) break; - UnwindStackMemoryAndroid stack_memory(cur_sp, stack_top); - uintptr_t rel_pc = elf->GetRelPc(cur_pc, map_info); + UnwindStackMemoryAndroid stack_memory(static_cast<uintptr_t>(cur_sp), + stack_top); + uint64_t rel_pc = elf->GetRelPc(cur_pc, map_info); bool is_signal_frame = false; bool finished = false; // map_info->GetElf() may return a valid elf whose memory() is nullptr. @@ -219,7 +220,7 @@ if (regs->dex_pc() != 0) { // Add a frame to represent the dex file. - EmitDexFrame(regs->dex_pc(), arch, stack); + EmitDexFrame(static_cast<uintptr_t>(regs->dex_pc()), arch, stack); // Clear the dex pc so that we don't repeat this frame later. regs->set_dex_pc(0); @@ -229,7 +230,7 @@ // GetExistingModuleForAddress because the unwound-to address may be in a // module associated with a different unwinder. const ModuleCache::Module* module = - module_cache()->GetModuleForAddress(regs->pc()); + module_cache()->GetModuleForAddress(static_cast<uintptr_t>(regs->pc())); stack->emplace_back(regs->pc(), module); } while (CanUnwindFrom(stack->back()));
diff --git a/base/profiler/native_unwinder_android.h b/base/profiler/native_unwinder_android.h index 942cb37..c0a9323 100644 --- a/base/profiler/native_unwinder_android.h +++ b/base/profiler/native_unwinder_android.h
@@ -8,6 +8,7 @@ #include <memory> #include <vector> +#include "base/base_export.h" #include "base/memory/raw_ptr.h" #include "base/profiler/unwinder.h" #include "third_party/libunwindstack/src/libunwindstack/include/unwindstack/DexFiles.h" @@ -22,7 +23,7 @@ // Implementation of unwindstack::Memory that restricts memory access to a stack // buffer, used by NativeUnwinderAndroid. While unwinding, only memory accesses // within the stack should be performed to restore registers. -class UnwindStackMemoryAndroid : public unwindstack::Memory { +class BASE_EXPORT UnwindStackMemoryAndroid : public unwindstack::Memory { public: UnwindStackMemoryAndroid(uintptr_t stack_ptr, uintptr_t stack_top); ~UnwindStackMemoryAndroid() override; @@ -35,8 +36,9 @@ }; // Native unwinder implementation for Android, using libunwindstack. -class NativeUnwinderAndroid : public Unwinder, - public ModuleCache::AuxiliaryModuleProvider { +class BASE_EXPORT NativeUnwinderAndroid + : public Unwinder, + public ModuleCache::AuxiliaryModuleProvider { public: // Creates maps object from /proc/self/maps for use by NativeUnwinderAndroid. // Since this is an expensive call, the maps object should be re-used across
diff --git a/base/profiler/native_unwinder_android_unittest.cc b/base/profiler/native_unwinder_android_unittest.cc index 455921e7..929159af 100644 --- a/base/profiler/native_unwinder_android_unittest.cc +++ b/base/profiler/native_unwinder_android_unittest.cc
@@ -9,11 +9,11 @@ #include "base/profiler/native_unwinder_android.h" -#include <sys/mman.h> - #include <inttypes.h> #include <stdio.h> // For printf address. #include <string.h> +#include <sys/mman.h> + #include <algorithm> #include <iterator> #include <vector>
diff --git a/base/synchronization/condition_variable_posix.cc b/base/synchronization/condition_variable_posix.cc index 5186f04..cb493b9b 100644 --- a/base/synchronization/condition_variable_posix.cc +++ b/base/synchronization/condition_variable_posix.cc
@@ -26,17 +26,6 @@ #define HAVE_PTHREAD_COND_TIMEDWAIT_MONOTONIC 1 #endif -namespace { -#if BUILDFLAG(IS_APPLE) -// Under this feature a hack that was introduced to avoid crashes is skipped. -// Use to evaluate if the hack is still needed. See https://crbug.com/517681. -BASE_FEATURE(kSkipConditionVariableWakeupHack, - "SkipConditionVariableWakeupHack", - base::FEATURE_ENABLED_BY_DEFAULT); -std::atomic_bool g_skip_wakeup_hack = true; -#endif -} // namespace - namespace base { ConditionVariable::ConditionVariable(Lock* user_lock) @@ -67,33 +56,10 @@ } ConditionVariable::~ConditionVariable() { -#if BUILDFLAG(IS_APPLE) - // This hack is necessary to avoid a fatal pthreads subsystem bug in the - // Darwin kernel. http://crbug.com/517681. - if (!g_skip_wakeup_hack.load(std::memory_order_relaxed)) { - base::Lock lock; - base::AutoLock l(lock); - struct timespec ts; - ts.tv_sec = 0; - ts.tv_nsec = 1; - pthread_cond_timedwait_relative_np(&condition_, lock.lock_.native_handle(), - &ts); - } -#endif - int rv = pthread_cond_destroy(&condition_); DCHECK_EQ(0, rv); } -#if BUILDFLAG(IS_APPLE) -// static -void ConditionVariable::InitializeFeatures() { - g_skip_wakeup_hack.store( - base::FeatureList::IsEnabled(kSkipConditionVariableWakeupHack), - std::memory_order_relaxed); -} -#endif - void ConditionVariable::Wait() { std::optional<internal::ScopedBlockingCallWithBaseSyncPrimitives> scoped_blocking_call;
diff --git a/build/android/BUILD.gn b/build/android/BUILD.gn index 86357e7b..4183af99 100644 --- a/build/android/BUILD.gn +++ b/build/android/BUILD.gn
@@ -44,6 +44,7 @@ ":placeholder_build_config_srcjar", ] sources = [ + "java/src/org/chromium/build/NullUtil.java", "java/src/org/chromium/build/annotations/AlwaysInline.java", "java/src/org/chromium/build/annotations/AssumeNonNull.java", "java/src/org/chromium/build/annotations/CheckDiscard.java",
diff --git a/build/android/gyp/compile_java.py b/build/android/gyp/compile_java.py index 0d3ec7d..58c51f47 100755 --- a/build/android/gyp/compile_java.py +++ b/build/android/gyp/compile_java.py
@@ -739,9 +739,10 @@ # Treat these packages as @NullMarked by default. # 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=' - ] + errorprone_flags += ['-XepOpt:NullAway:AnnotatedPackages='] + # Make it a warning to use assumeNonNull() with a @NonNull. + errorprone_flags += [('-XepOpt:NullAway:CastToNonNullMethod=' + 'org.chromium.build.NullUtil.assumeNonNull')] # Detect "assert foo != null" as a null check. errorprone_flags += ['-XepOpt:NullAway:AssertsEnabled=true'] # Do not ignore @Nullable & @NonNull in non-annotated packages.
diff --git a/build/android/java/src/org/chromium/build/NullUtil.java b/build/android/java/src/org/chromium/build/NullUtil.java new file mode 100644 index 0000000..69b2b342 --- /dev/null +++ b/build/android/java/src/org/chromium/build/NullUtil.java
@@ -0,0 +1,30 @@ +// 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.build; + +import org.chromium.build.annotations.NullMarked; +import org.chromium.build.annotations.NullUnmarked; +import org.chromium.build.annotations.Nullable; + +/** Misc methods related to build tools. */ +@NullMarked +public class NullUtil { + private NullUtil() {} + + /** + * Tell NullAway that the given parameter is non-null. + * + * <p>Prefer this over "assert foo != null;", since asserts will lead to different crash + * signatures in Canary vs non-Canary (since asserts enabled only on Canary). + * + * <p>For when a runtime check is meritted, use Objects.requireNonNull(). + * + * <p>See: https://github.com/uber/NullAway/wiki/Suppressing-Warnings#downcasting + */ + @NullUnmarked + public static <T> T assumeNonNull(@Nullable T object) { + return object; + } +}
diff --git a/build/config/BUILD.gn b/build/config/BUILD.gn index 60718438..d321528 100644 --- a/build/config/BUILD.gn +++ b/build/config/BUILD.gn
@@ -271,6 +271,15 @@ # be present on bots that run exes or load DLLs. This also includes # debugging DLLs in all builds. data_deps = [ "//build/win:runtime_libs" ] + + if (host_os == "win") { + # In order to ensure the ACLing is applied to every binary loaded in an + # app container sandbox, run the ACL step before any binary is built. We + # do this because the tool is subject to race conditions if a binary is + # placed in the out folder while it is running. + public_deps += + [ "//build/config/win:maybe_set_appcontainer_acls($host_toolchain)" ] + } } }
diff --git a/build/config/win/BUILD.gn b/build/config/win/BUILD.gn index 9b062d60..9928e76832 100644 --- a/build/config/win/BUILD.gn +++ b/build/config/win/BUILD.gn
@@ -479,6 +479,29 @@ ] } +# ACLs are placed on the filesystem in order to allow chrome to launch +# sandboxed processes in an app container when run from the out directory. +group("maybe_set_appcontainer_acls") { + # Exclude setting ACLs when build is not happening on chromium, or with a different toolchain. + if (build_with_chromium && current_cpu == target_cpu && host_os == "win") { + deps = [ ":set_appcontainer_acls" ] + } +} + +if (build_with_chromium && current_cpu == target_cpu && host_os == "win") { + action("set_appcontainer_acls") { + script = "//build/win/set_appcontainer_acls.py" + stamp_file = "$target_out_dir/acls.stamp" + inputs = [ script ] + outputs = [ stamp_file ] + + args = [ + "--stamp=" + rebase_path(stamp_file, root_out_dir), + "--dir=" + rebase_path(root_out_dir, root_out_dir), + ] + } +} + # CRT -------------------------------------------------------------------------- # Configures how the runtime library (CRT) is going to be used.
diff --git a/cc/base/features.cc b/cc/base/features.cc index a9122c4f..eede910 100644 --- a/cc/base/features.cc +++ b/cc/base/features.cc
@@ -192,4 +192,8 @@ "InitImageDecodeLastUseTime", base::FEATURE_DISABLED_BY_DEFAULT); +BASE_FEATURE(kDynamicSafeAreaInsetsSupportedByCC, + "DynamicSafeAreaInsetsSupportedByCC", + base::FEATURE_DISABLED_BY_DEFAULT); + } // namespace features
diff --git a/cc/base/features.h b/cc/base/features.h index db81c4d..f38fb4e 100644 --- a/cc/base/features.h +++ b/cc/base/features.h
@@ -194,6 +194,11 @@ // initialized to 0 instead of now. CC_BASE_EXPORT BASE_DECLARE_FEATURE(kInitImageDecodeLastUseTime); +// The position affected by the safe area inset bottom will be handled by CC in +// the Render Compositor Thread. The transform metrix y is adjusted for all +// affected nodes. +CC_BASE_EXPORT BASE_DECLARE_FEATURE(kDynamicSafeAreaInsetsSupportedByCC); + } // namespace features #endif // CC_BASE_FEATURES_H_
diff --git a/cc/trees/layer_tree_impl.cc b/cc/trees/layer_tree_impl.cc index 13852996..81bd6f39 100644 --- a/cc/trees/layer_tree_impl.cc +++ b/cc/trees/layer_tree_impl.cc
@@ -453,38 +453,58 @@ ViewportAnchor anchor(InnerViewportScrollNode(), OuterViewportScrollNode(), this); - float top_controls_shown_ratio = + const float top_controls_shown_ratio = top_controls_shown_ratio_->Current(IsActiveTree()); - float bottom_controls_shown_ratio = + const float bottom_controls_shown_ratio = bottom_controls_shown_ratio_->Current(IsActiveTree()); - float top_controls_layout_height = browser_controls_shrink_blink_size() - ? top_controls_height() - : top_controls_min_height(); - float top_content_offset = + const float top_controls_layout_height = browser_controls_shrink_blink_size() + ? top_controls_height() + : top_controls_min_height(); + const float top_content_offset = top_controls_height() > 0 ? top_controls_height() * top_controls_shown_ratio : 0.f; float delta_from_top_controls = top_controls_layout_height - top_content_offset; - float bottom_controls_layout_height = browser_controls_shrink_blink_size() - ? bottom_controls_height() - : bottom_controls_min_height(); - float bottom_content_offset = + const float bottom_controls_layout_height = + browser_controls_shrink_blink_size() ? bottom_controls_height() + : bottom_controls_min_height(); + const float bottom_content_offset = bottom_controls_height() > 0 ? bottom_controls_height() * bottom_controls_shown_ratio : 0.f; delta_from_top_controls += bottom_controls_layout_height - bottom_content_offset; - // TODO: use max_safe_area_inset_bottom() for SafeAreaInsets support. + // The delta to be added to transform matrix if dynamic safe area is + // supported. + auto* property_trees = this->property_trees(); + if (base::FeatureList::IsEnabled( + features::kDynamicSafeAreaInsetsSupportedByCC)) { + const float real_saib = + std::max(0.0f, max_safe_area_inset_bottom() - bottom_content_offset); + const float blink_saib = std::max( + 0.0f, max_safe_area_inset_bottom() - bottom_controls_layout_height); + const float transform_delta_by_safe_area_inset_bottom = + -(real_saib - blink_saib); + + const float scaled_transform_delta_by_safe_area_inset_bottom = + transform_delta_by_safe_area_inset_bottom / min_page_scale_factor(); + + if (property_trees->transform_delta_by_safe_area_inset_bottom() != + scaled_transform_delta_by_safe_area_inset_bottom) { + property_trees->SetTransformDeltaBySafeAreaInsetBottom( + scaled_transform_delta_by_safe_area_inset_bottom); + } + } // Adjust the viewport layers by shrinking/expanding the container to account // for changes in the size (e.g. browser controls) since the last resize from // Blink. - auto* property_trees = this->property_trees(); gfx::Vector2dF bounds_delta(0.f, delta_from_top_controls); - if (property_trees->inner_viewport_container_bounds_delta() == bounds_delta) + if (property_trees->inner_viewport_container_bounds_delta() == bounds_delta) { return; + } property_trees->SetInnerViewportContainerBoundsDelta(bounds_delta);
diff --git a/cc/trees/property_tree.cc b/cc/trees/property_tree.cc index 3faa3b8..9d2bbf19 100644 --- a/cc/trees/property_tree.cc +++ b/cc/trees/property_tree.cc
@@ -166,6 +166,7 @@ device_scale_factor_ = 1.f; device_transform_scale_factor_ = 1.f; nodes_affected_by_outer_viewport_bounds_delta_.clear(); + nodes_affected_by_safe_area_inset_bottom_.clear(); cached_data_.clear(); cached_data_.push_back(TransformCachedNodeData()); sticky_position_data_.clear(); @@ -655,11 +656,17 @@ node->post_translation.y() + node->origin.y(), node->origin.z()); - gfx::Vector2dF position_adjustment; + float y_adjustment = 0.f; if (node->moved_by_outer_viewport_bounds_delta_y) { - position_adjustment.set_y( - property_trees()->outer_viewport_container_bounds_delta().y()); + y_adjustment += + property_trees()->outer_viewport_container_bounds_delta().y(); } + if (node->moved_by_safe_area_bottom) { + y_adjustment += + property_trees()->transform_delta_by_safe_area_inset_bottom(); + } + gfx::Vector2dF position_adjustment(0.f, y_adjustment); + if (node->should_undo_overscroll) UndoOverscroll(node, position_adjustment, viewport_property_ids); transform.Translate(position_adjustment - @@ -844,6 +851,25 @@ return !nodes_affected_by_outer_viewport_bounds_delta_.empty(); } +void TransformTree::NeedTransformUpdateForSafeAreaInsetBottom() { + if (nodes_affected_by_safe_area_inset_bottom_.empty()) { + return; + } + + set_needs_update(true); + for (int i : nodes_affected_by_safe_area_inset_bottom_) { + Node(i)->needs_local_transform_update = true; + } +} + +void TransformTree::AddNodeAffectedBySafeAreaInsetBottom(int node_id) { + nodes_affected_by_safe_area_inset_bottom_.push_back(node_id); +} + +bool TransformTree::HasNodesAffectedBySafeAreaBottom() const { + return !nodes_affected_by_safe_area_inset_bottom_.empty(); +} + const gfx::Transform& TransformTree::FromScreen(int node_id) const { DCHECK(static_cast<int>(cached_data_.size()) > node_id); return cached_data_[node_id].from_screen; @@ -2096,7 +2122,8 @@ full_tree_damaged_(false), is_main_thread_(true), is_active_(false), - sequence_number_(0) {} + sequence_number_(0), + transform_delta_by_safe_area_inset_bottom_(0) {} PropertyTrees::~PropertyTrees() = default; @@ -2130,6 +2157,8 @@ from.inner_viewport_container_bounds_delta()); SetOuterViewportContainerBoundsDelta( from.outer_viewport_container_bounds_delta()); + SetTransformDeltaBySafeAreaInsetBottom( + from.transform_delta_by_safe_area_inset_bottom()); transform_tree_mutable().SetPropertyTrees(this); effect_tree_mutable().SetPropertyTrees(this); clip_tree_mutable().SetPropertyTrees(this); @@ -2181,6 +2210,15 @@ transform_tree_mutable().UpdateOuterViewportContainerBoundsDelta(); } +void PropertyTrees::SetTransformDeltaBySafeAreaInsetBottom(float delta) { + if (transform_delta_by_safe_area_inset_bottom() == delta) { + return; + } + + transform_delta_by_safe_area_inset_bottom_.Write(synchronizer()) = delta; + transform_tree_mutable().NeedTransformUpdateForSafeAreaInsetBottom(); +} + bool PropertyTrees::ElementIsAnimatingChanged( const PropertyToElementIdMap& element_id_map, const PropertyAnimationState& mask,
diff --git a/cc/trees/property_tree.h b/cc/trees/property_tree.h index 506d479..911530e5 100644 --- a/cc/trees/property_tree.h +++ b/cc/trees/property_tree.h
@@ -253,6 +253,16 @@ nodes_affected_by_outer_viewport_bounds_delta_ = std::move(nodes); } + void NeedTransformUpdateForSafeAreaInsetBottom(); + + void AddNodeAffectedBySafeAreaInsetBottom(int node_id); + + bool HasNodesAffectedBySafeAreaBottom() const; + + const std::vector<int>& nodes_affected_by_safe_area_bottom() const { + return nodes_affected_by_safe_area_inset_bottom_; + } + const std::vector<StickyPositionNodeData>& sticky_position_data() const { return sticky_position_data_; } @@ -340,6 +350,7 @@ float device_scale_factor_; float device_transform_scale_factor_; std::vector<int> nodes_affected_by_outer_viewport_bounds_delta_; + std::vector<int> nodes_affected_by_safe_area_inset_bottom_; std::vector<TransformCachedNodeData> cached_data_; std::vector<StickyPositionNodeData> sticky_position_data_; std::vector<AnchorPositionScrollData> anchor_position_scroll_data_; @@ -835,6 +846,7 @@ void MaximumAnimationScaleChanged(ElementId element_id, float maximum_scale); void SetInnerViewportContainerBoundsDelta(gfx::Vector2dF bounds_delta); void SetOuterViewportContainerBoundsDelta(gfx::Vector2dF bounds_delta); + void SetTransformDeltaBySafeAreaInsetBottom(float); void UpdateChangeTracking(); void GetChangedNodes(std::vector<int>& effect_nodes, std::vector<int>& transform_nodes) const; @@ -856,6 +868,10 @@ return outer_viewport_container_bounds_delta_.Read(synchronizer()); } + float transform_delta_by_safe_area_inset_bottom() const { + return transform_delta_by_safe_area_inset_bottom_.Read(synchronizer()); + } + std::unique_ptr<base::trace_event::TracedValue> AsTracedValue() const; void AsValueInto(base::trace_event::TracedValue* value) const; std::string ToString() const; @@ -915,6 +931,7 @@ inner_viewport_container_bounds_delta_; ProtectedSequenceReadable<gfx::Vector2dF> outer_viewport_container_bounds_delta_; + ProtectedSequenceReadable<float> transform_delta_by_safe_area_inset_bottom_; const AnimationScaleData& GetAnimationScaleData(int transform_id);
diff --git a/cc/trees/transform_node.h b/cc/trees/transform_node.h index a7c4a70..bb8342b 100644 --- a/cc/trees/transform_node.h +++ b/cc/trees/transform_node.h
@@ -105,6 +105,11 @@ // outer viewport size before Blink repositions the fixed layers. bool moved_by_outer_viewport_bounds_delta_y : 1 = false; + // Used by the compositor to determine which layers need to be repositioned by + // the compositor as a result of safe area inset bottom before Blink + // repositions the fixed layers. + bool moved_by_safe_area_bottom : 1 = false; + // Layer scale factor is used as a fallback when we either cannot adjust // raster scale or if the raster scale cannot be extracted from the screen // space transform. For layers in the subtree of the page scale layer, the
diff --git a/chrome/android/features/stack_unwinder/public/function_types.h b/chrome/android/features/stack_unwinder/public/function_types.h index 3c77b9a..886f951 100644 --- a/chrome/android/features/stack_unwinder/public/function_types.h +++ b/chrome/android/features/stack_unwinder/public/function_types.h
@@ -5,24 +5,10 @@ #ifndef CHROME_ANDROID_FEATURES_STACK_UNWINDER_PUBLIC_FUNCTION_TYPES_H_ #define CHROME_ANDROID_FEATURES_STACK_UNWINDER_PUBLIC_FUNCTION_TYPES_H_ -#include <memory> - -namespace base { -class Unwinder; -class NativeUnwinderAndroidMapDelegate; -class NativeUnwinderAndroidMemoryRegionsMap; -} - namespace stack_unwinder { // Type declarations for C++ functions exported by the module. -using CreateMemoryRegionsMapFunction = - std::unique_ptr<base::NativeUnwinderAndroidMemoryRegionsMap> (*)(); -using CreateNativeUnwinderFunction = - std::unique_ptr<base::Unwinder> (*)(base::NativeUnwinderAndroidMapDelegate*, - uintptr_t); -using CreateLibunwindstackUnwinderFunction = - std::unique_ptr<base::Unwinder> (*)(); +using DoNothingFunction = void (*)(); } // namespace stack_unwinder
diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabModelNotificationDotManager.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabModelNotificationDotManager.java new file mode 100644 index 0000000..0dd6e36 --- /dev/null +++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabModelNotificationDotManager.java
@@ -0,0 +1,119 @@ +// 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.tasks.tab_management; + +import androidx.annotation.NonNull; + +import org.chromium.base.CallbackController; +import org.chromium.base.lifetime.Destroyable; +import org.chromium.base.supplier.ObservableSupplier; +import org.chromium.base.supplier.ObservableSupplierImpl; +import org.chromium.chrome.browser.collaboration.messaging.MessagingBackendServiceFactory; +import org.chromium.chrome.browser.tab.Tab; +import org.chromium.chrome.browser.tabmodel.TabModel; +import org.chromium.chrome.browser.tabmodel.TabModelSelector; +import org.chromium.chrome.browser.tabmodel.TabModelUtils; +import org.chromium.components.collaboration.messaging.MessageUtils; +import org.chromium.components.collaboration.messaging.MessagingBackendService; +import org.chromium.components.collaboration.messaging.MessagingBackendService.PersistentMessageObserver; +import org.chromium.components.collaboration.messaging.PersistentMessage; +import org.chromium.components.collaboration.messaging.PersistentNotificationType; + +import java.util.List; +import java.util.Optional; + +/** Pushes whether a notification dot should be shown for a tab model. */ +public class TabModelNotificationDotManager implements Destroyable { + private final PersistentMessageObserver mPersistentMessageObserver = + new PersistentMessageObserver() { + @Override + public void onMessagingBackendServiceInitialized() { + mMessagingBackendServiceInitialized = true; + computeUpdate(); + } + + @Override + public void displayPersistentMessage(PersistentMessage message) { + if (message.type != PersistentNotificationType.DIRTY_TAB) return; + + if (Boolean.TRUE.equals(mNotificationDotObservableSupplier.get())) return; + + computeUpdate(); + } + + @Override + public void hidePersistentMessage(PersistentMessage message) { + if (message.type != PersistentNotificationType.DIRTY_TAB) return; + + if (Boolean.FALSE.equals(mNotificationDotObservableSupplier.get())) return; + + computeUpdate(); + } + }; + + private final ObservableSupplierImpl<Boolean> mNotificationDotObservableSupplier = + new ObservableSupplierImpl<>(false); + private final CallbackController mCallbackController = new CallbackController(); + private final MessagingBackendService mMessagingBackendService; + private final TabModel mTabModel; + private boolean mTabModelSelectorInitialized; + private boolean mMessagingBackendServiceInitialized; + + /** + * Notification dot manager for the regular tab model. Should only be constructed post-native + * initialization. + * + * @param tabModelSelector The tab model selector to use. Only the regular tab model is + * observed. However, the selector is needed to know when the tab model is initialized. + */ + public TabModelNotificationDotManager(TabModelSelector tabModelSelector) { + mTabModel = tabModelSelector.getModel(/* incognito= */ false); + assert mTabModel != null : "TabModel & native should be initialized."; + mMessagingBackendService = + MessagingBackendServiceFactory.getForProfile(mTabModel.getProfile()); + mMessagingBackendService.addPersistentMessageObserver(mPersistentMessageObserver); + TabModelUtils.runOnTabStateInitialized( + tabModelSelector, + mCallbackController.makeCancelable( + unused -> { + mTabModelSelectorInitialized = true; + computeUpdate(); + })); + } + + /** + * Returns an {@link ObservableSupplier} that contains true when the notification dot should be + * shown. + */ + public @NonNull ObservableSupplier<Boolean> getNotificationDotObservableSupplier() { + return mNotificationDotObservableSupplier; + } + + @Override + public void destroy() { + mCallbackController.destroy(); + mMessagingBackendService.removePersistentMessageObserver(mPersistentMessageObserver); + } + + private void computeUpdate() { + if (!mMessagingBackendServiceInitialized || !mTabModelSelectorInitialized) return; + + boolean shouldShowNotificationDot = anyTabsInModelHaveDirtyBit(); + mNotificationDotObservableSupplier.set(shouldShowNotificationDot); + } + + private boolean anyTabsInModelHaveDirtyBit() { + List<PersistentMessage> messages = + mMessagingBackendService.getMessages( + Optional.of(PersistentNotificationType.DIRTY_TAB)); + for (PersistentMessage message : messages) { + int tabId = MessageUtils.extractTabId(message); + if (tabId == Tab.INVALID_TAB_ID) continue; + + if (mTabModel.getTabById(tabId) != null) return true; + } + return false; + } +}
diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabModelNotificationDotManagerUnitTest.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabModelNotificationDotManagerUnitTest.java new file mode 100644 index 0000000..a7b329e --- /dev/null +++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabModelNotificationDotManagerUnitTest.java
@@ -0,0 +1,192 @@ +// 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.tasks.tab_management; + +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertTrue; +import static org.mockito.ArgumentMatchers.any; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +import org.junit.After; +import org.junit.Before; +import org.junit.Rule; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.ArgumentCaptor; +import org.mockito.Captor; +import org.mockito.Mock; +import org.mockito.junit.MockitoJUnit; +import org.mockito.junit.MockitoRule; + +import org.chromium.base.test.BaseRobolectricTestRunner; +import org.chromium.chrome.browser.collaboration.messaging.MessagingBackendServiceFactory; +import org.chromium.chrome.browser.profiles.Profile; +import org.chromium.chrome.browser.tab.Tab; +import org.chromium.chrome.browser.tabmodel.TabModel; +import org.chromium.chrome.browser.tabmodel.TabModelSelector; +import org.chromium.chrome.browser.tabmodel.TabModelSelectorObserver; +import org.chromium.components.collaboration.messaging.MessageAttribution; +import org.chromium.components.collaboration.messaging.MessagingBackendService; +import org.chromium.components.collaboration.messaging.MessagingBackendService.PersistentMessageObserver; +import org.chromium.components.collaboration.messaging.PersistentMessage; +import org.chromium.components.collaboration.messaging.PersistentNotificationType; +import org.chromium.components.collaboration.messaging.TabMessageMetadata; + +import java.util.ArrayList; +import java.util.List; +import java.util.Optional; + +/** Unit tests for {@link TabModelNotificationDotManager}. */ +@RunWith(BaseRobolectricTestRunner.class) +public class TabModelNotificationDotManagerUnitTest { + private static final int EXISTING_TAB_ID = 5; + private static final int NON_EXISTANT_TAB_ID = 7; + + @Rule public MockitoRule mMockitoRule = MockitoJUnit.rule(); + + @Mock private Profile mProfile; + @Mock private TabModelSelector mTabModelSelector; + @Mock private TabModel mTabModel; + @Mock private Tab mTab; + @Mock private MessagingBackendService mMessagingBackendService; + + @Captor private ArgumentCaptor<PersistentMessageObserver> mPersistentMessageObserverCaptor; + @Captor private ArgumentCaptor<TabModelSelectorObserver> mTabModelSelectorObserverCaptor; + + private TabModelNotificationDotManager mTabModelNotificationDotManager; + private PersistentMessage mDirtyTabMessage = new PersistentMessage(); + private PersistentMessage mNonDirtyTabMessage = new PersistentMessage(); + + @Before + public void setUp() { + mDirtyTabMessage.type = PersistentNotificationType.DIRTY_TAB; + mNonDirtyTabMessage.type = PersistentNotificationType.CHIP; + + MessagingBackendServiceFactory.setForTesting(mMessagingBackendService); + + when(mTabModelSelector.isTabStateInitialized()).thenReturn(false); + when(mTabModelSelector.getModel(false)).thenReturn(mTabModel); + when(mTabModel.getProfile()).thenReturn(mProfile); + when(mTabModel.getTabById(EXISTING_TAB_ID)).thenReturn(mTab); + + mTabModelNotificationDotManager = new TabModelNotificationDotManager(mTabModelSelector); + + verify(mMessagingBackendService) + .addPersistentMessageObserver(mPersistentMessageObserverCaptor.capture()); + verify(mTabModelSelector).addObserver(mTabModelSelectorObserverCaptor.capture()); + } + + @After + public void tearDown() { + mTabModelNotificationDotManager.destroy(); + + verify(mMessagingBackendService).removePersistentMessageObserver(any()); + } + + @Test + public void testUpdateOnMessagingBackendServiceInitializedLast() { + createDirtyTabMessageForIds(List.of(EXISTING_TAB_ID)); + + mTabModelSelectorObserverCaptor.getValue().onTabStateInitialized(); + assertFalse(mTabModelNotificationDotManager.getNotificationDotObservableSupplier().get()); + + mPersistentMessageObserverCaptor.getValue().onMessagingBackendServiceInitialized(); + assertTrue(mTabModelNotificationDotManager.getNotificationDotObservableSupplier().get()); + } + + @Test + public void testUpdateOnTabModelSelectorInitializedLast() { + createDirtyTabMessageForIds(List.of(EXISTING_TAB_ID)); + + mPersistentMessageObserverCaptor.getValue().onMessagingBackendServiceInitialized(); + assertFalse(mTabModelNotificationDotManager.getNotificationDotObservableSupplier().get()); + + mTabModelSelectorObserverCaptor.getValue().onTabStateInitialized(); + assertTrue(mTabModelNotificationDotManager.getNotificationDotObservableSupplier().get()); + } + + @Test + public void testHidePersistentMessage() { + initializeBothBackends(); + createDirtyTabMessageForIds(List.of(EXISTING_TAB_ID)); + // Set to visible. + mPersistentMessageObserverCaptor.getValue().displayPersistentMessage(mDirtyTabMessage); + assertTrue(mTabModelNotificationDotManager.getNotificationDotObservableSupplier().get()); + + createDirtyTabMessageForIds(List.of(NON_EXISTANT_TAB_ID)); + + // Cannot hide if not dirty message related. + mPersistentMessageObserverCaptor.getValue().hidePersistentMessage(mNonDirtyTabMessage); + assertTrue(mTabModelNotificationDotManager.getNotificationDotObservableSupplier().get()); + + mPersistentMessageObserverCaptor.getValue().hidePersistentMessage(mDirtyTabMessage); + assertFalse(mTabModelNotificationDotManager.getNotificationDotObservableSupplier().get()); + + // One way latching; hide should only hide it cannot show. + createDirtyTabMessageForIds(List.of(EXISTING_TAB_ID)); + mPersistentMessageObserverCaptor.getValue().hidePersistentMessage(mDirtyTabMessage); + assertFalse(mTabModelNotificationDotManager.getNotificationDotObservableSupplier().get()); + } + + @Test + public void testShowPersistentMessage() { + initializeBothBackends(); + createDirtyTabMessageForIds(List.of(EXISTING_TAB_ID)); + + mPersistentMessageObserverCaptor.getValue().displayPersistentMessage(mNonDirtyTabMessage); + assertFalse(mTabModelNotificationDotManager.getNotificationDotObservableSupplier().get()); + + mPersistentMessageObserverCaptor.getValue().displayPersistentMessage(mDirtyTabMessage); + assertTrue(mTabModelNotificationDotManager.getNotificationDotObservableSupplier().get()); + + // One way latching; display should only show it cannot hide. + createDirtyTabMessageForIds(List.of(NON_EXISTANT_TAB_ID)); + mPersistentMessageObserverCaptor.getValue().displayPersistentMessage(mDirtyTabMessage); + assertTrue(mTabModelNotificationDotManager.getNotificationDotObservableSupplier().get()); + } + + @Test + public void testComputeUpdateTabPresence() { + initializeBothBackends(); + + createDirtyTabMessageForIds(List.of(EXISTING_TAB_ID)); + mPersistentMessageObserverCaptor.getValue().displayPersistentMessage(mDirtyTabMessage); + assertTrue(mTabModelNotificationDotManager.getNotificationDotObservableSupplier().get()); + + createDirtyTabMessageForIds(List.of(NON_EXISTANT_TAB_ID)); + mPersistentMessageObserverCaptor.getValue().hidePersistentMessage(mDirtyTabMessage); + assertFalse(mTabModelNotificationDotManager.getNotificationDotObservableSupplier().get()); + + createDirtyTabMessageForIds(List.of(NON_EXISTANT_TAB_ID, EXISTING_TAB_ID)); + mPersistentMessageObserverCaptor.getValue().displayPersistentMessage(mDirtyTabMessage); + assertTrue(mTabModelNotificationDotManager.getNotificationDotObservableSupplier().get()); + } + + private void initializeBothBackends() { + when(mTabModelSelector.isTabStateInitialized()).thenReturn(true); + mPersistentMessageObserverCaptor.getValue().onMessagingBackendServiceInitialized(); + mTabModelSelectorObserverCaptor.getValue().onTabStateInitialized(); + } + + private void createDirtyTabMessageForIds(List<Integer> ids) { + List<PersistentMessage> messages = new ArrayList<>(); + + for (int id : ids) { + PersistentMessage message = new PersistentMessage(); + message.type = PersistentNotificationType.DIRTY_TAB; + MessageAttribution attribution = new MessageAttribution(); + message.attribution = attribution; + TabMessageMetadata tabMetadata = new TabMessageMetadata(); + tabMetadata.localTabId = id; + attribution.tabMetadata = tabMetadata; + messages.add(message); + } + + when(mMessagingBackendService.getMessages( + Optional.of(PersistentNotificationType.DIRTY_TAB))) + .thenReturn(messages); + } +}
diff --git a/chrome/android/features/tab_ui/tab_management_java_sources.gni b/chrome/android/features/tab_ui/tab_management_java_sources.gni index 1701d49c..6f5c502 100644 --- a/chrome/android/features/tab_ui/tab_management_java_sources.gni +++ b/chrome/android/features/tab_ui/tab_management_java_sources.gni
@@ -17,6 +17,7 @@ "//chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGroupUiOneshotSupplier.java", "//chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGroupVisualDataManager.java", "//chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabManagementDelegate.java", + "//chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabModelNotificationDotManager.java", "//chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabUiFeatureUtilities.java", "//chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabUiThemeProvider.java", "//chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabsSettings.java", @@ -242,6 +243,7 @@ "//chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListItemAnimatorUnitTest.java", "//chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListModelUnitTest.java", "//chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListOnScrollListenerUnitTest.java", + "//chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabModelNotificationDotManagerUnitTest.java", "//chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabShareUtilsUnitTest.java", "//chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabSwitcherMessageManagerUnitTest.java", "//chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabSwitcherPaneCoordinatorFactoryUnitTest.java",
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabArchiver.java b/chrome/android/java/src/org/chromium/chrome/browser/tab/TabArchiver.java index 72618a72..51f02ba8 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabArchiver.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/tab/TabArchiver.java
@@ -25,6 +25,7 @@ import org.chromium.chrome.browser.tabmodel.TabModelSelector; import org.chromium.chrome.browser.tabmodel.TabModelUtils; import org.chromium.chrome.browser.tabmodel.TabWindowManager; +import org.chromium.url.GURL; import java.util.ArrayList; import java.util.HashMap; @@ -289,6 +290,12 @@ List<Tab> tabsToArchive = new ArrayList<>(); HashMap<Token, Boolean> groupIdToArchiveEligibilityMap = new HashMap<>(); + HashMap<GURL, Long> tabUrlToLastActiveTimestampMap = new HashMap<>(); + if (shouldArchiveDuplicateTabs()) { + recordTabUrlLastActiveTimestamps( + tabUrlToLastActiveTimestampMap, model); + } + for (int i = 0; i < model.getCount(); i++) { Tab tab = model.getTabAt(i); // If there's an existing archived tab for the tab id, then we've @@ -309,8 +316,10 @@ ? isGroupTabEligibleForArchive( regularTabGroupModelFilter, groupIdToArchiveEligibilityMap, + tabUrlToLastActiveTimestampMap, tab) - : isTabEligibleForArchive(tab); + : isTabEligibleForArchive( + tabUrlToLastActiveTimestampMap, tab); if (isTabOrGroupTabEligibleForArchive) { tabsToArchive.add(tab); } @@ -345,6 +354,7 @@ private boolean isGroupTabEligibleForArchive( TabGroupModelFilter regularTabGroupModelFilter, HashMap<Token, Boolean> groupIdToArchiveEligibilityMap, + HashMap<GURL, Long> tabUrlToLastActiveTimestampMap, Tab tab) { if (ChromeFeatureList.sAndroidTabDeclutterArchiveTabGroups.isEnabled()) { // Create a map between group id tokens and their archive eligibility. If a group has @@ -355,7 +365,8 @@ return groupIdToArchiveEligibilityMap.get(tabGroupId); } else { boolean isTabGroupEligibleForArchive = - isTabGroupEligibleForArchive(regularTabGroupModelFilter, tab); + isTabGroupEligibleForArchive( + regularTabGroupModelFilter, tabUrlToLastActiveTimestampMap, tab); groupIdToArchiveEligibilityMap.put(tabGroupId, isTabGroupEligibleForArchive); return isTabGroupEligibleForArchive; } @@ -365,29 +376,36 @@ } private boolean isTabGroupEligibleForArchive( - TabGroupModelFilter regularTabGroupModelFilter, Tab tab) { + TabGroupModelFilter regularTabGroupModelFilter, + HashMap<GURL, Long> tabUrlToLastActiveTimestampMap, + Tab tab) { List<Tab> relatedTabList = regularTabGroupModelFilter.getRelatedTabListForRootId(tab.getRootId()); for (Tab relatedTab : relatedTabList) { - if (!isTabEligibleForArchive(relatedTab)) { + if (!isTabEligibleForArchive(tabUrlToLastActiveTimestampMap, relatedTab)) { return false; } } return true; } - private boolean isTabEligibleForArchive(Tab tab) { + private boolean isTabEligibleForArchive( + HashMap<GURL, Long> tabUrlToLastActiveTimestampMap, Tab tab) { TabState tabState = TabStateExtractor.from(tab); if (tabState.contentsState == null) return false; long timestampMillis = tab.getTimestampMillis(); int tabAgeDays = timestampMillisToDays(timestampMillis); - boolean result = + boolean isTabTimestampEligibleForArchive = isTimestampWithinTargetHours( timestampMillis, mTabArchiveSettings.getArchiveTimeDeltaHours()); + boolean isDuplicateTabEligibleForArchive = + shouldArchiveDuplicateTabs() + ? isDuplicateTab(tabUrlToLastActiveTimestampMap, tab) + : false; RecordHistogram.recordCount1000Histogram( "Tabs.TabArchiveEligibilityCheck.AfterNDays", tabAgeDays); - return result; + return isTabTimestampEligibleForArchive || isDuplicateTabEligibleForArchive; } private boolean isArchivedTabEligibleForDeletion( @@ -404,6 +422,43 @@ return result; } + // A tab is marked as a duplicate tab if its last active timestamp is not the same as the stored + // last active timestamp in the model wide hashmap. + private boolean isDuplicateTab(HashMap<GURL, Long> tabUrlToLastActiveTimestampMap, Tab tab) { + GURL url = tab.getUrl(); + + // If the tab URL does not exist in the map or the tab is part of a group, no op. + if (!tabUrlToLastActiveTimestampMap.containsKey(url) || tab.getTabGroupId() != null) { + return false; + } + + long tabLastActiveTimestamp = tab.getTimestampMillis(); + long currentUrlLastActiveTimestamp = tabUrlToLastActiveTimestampMap.get(url); + + return currentUrlLastActiveTimestamp > tabLastActiveTimestamp; + } + + // Check all tabs in the tab model and record unique URLs and the latest last active timestamp. + private void recordTabUrlLastActiveTimestamps( + HashMap<GURL, Long> tabUrlToLastActiveTimestampMap, TabModel model) { + for (int i = 0; i < model.getCount(); i++) { + Tab tab = model.getTabAt(i); + GURL url = tab.getUrl(); + long tabLastActiveTimestamp = tab.getTimestampMillis(); + + // Only record tabs that are not part of a tab group to avoid deduplicating them. + if (tab.getTabGroupId() == null) { + if (tabUrlToLastActiveTimestampMap.containsKey(url)) { + long currentUrlLastActiveTimestamp = tabUrlToLastActiveTimestampMap.get(url); + if (tabLastActiveTimestamp <= currentUrlLastActiveTimestamp) { + continue; + } + } + tabUrlToLastActiveTimestampMap.put(url, tabLastActiveTimestamp); + } + } + } + private boolean isTimestampWithinTargetHours(long timestampMillis, int targetHours) { if (timestampMillis == INVALID_TIMESTAMP) return false; @@ -427,6 +482,10 @@ return tabState; } + private boolean shouldArchiveDuplicateTabs() { + return ChromeFeatureList.sAndroidTabDeclutterArchiveDuplicateTabs.isEnabled(); + } + @VisibleForTesting void ensureArchivedTabsHaveCorrectFields() { for (int i = 0; i < mArchivedTabGroupModelFilter.getTabModel().getCount(); i++) {
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/tab/TabArchiverTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/tab/TabArchiverTest.java index e7658a2..225d693 100644 --- a/chrome/android/javatests/src/org/chromium/chrome/browser/tab/TabArchiverTest.java +++ b/chrome/android/javatests/src/org/chromium/chrome/browser/tab/TabArchiverTest.java
@@ -81,6 +81,7 @@ @Rule public MockitoRule mMockitoRule = MockitoJUnit.rule().strictness(Strictness.LENIENT); private static final String TEST_PATH = "/chrome/test/data/android/about.html"; + private static final String TEST_PATH_2 = "/chrome/test/data/android/google.html"; private @Mock Clock mClock; private @Mock TabModelSelector mSelector; @@ -312,7 +313,7 @@ // Set the clock to 1 hour after 0. doReturn(TimeUnit.HOURS.toMillis(1)).when(mClock).currentTimeMillis(); - // Set the timestamp for both tabs at 0, they should will be archived. + // Set the timestamp for both tabs at 0, they should be archived. ((TabImpl) mRegularTabModel.getTabAt(0)).setTimestampMillisForTesting(0); ((TabImpl) mRegularTabModel.getTabAt(1)).setTimestampMillisForTesting(0); @@ -357,7 +358,7 @@ // Set the clock to 1 hour after 0. doReturn(TimeUnit.HOURS.toMillis(1)).when(mClock).currentTimeMillis(); - // Set the timestamp for both tabs at 0, they should will be archived. + // Set the timestamp for both tabs at 0, they should be archived. ((TabImpl) mRegularTabModel.getTabAt(0)).setTimestampMillisForTesting(0); ((TabImpl) mRegularTabModel.getTabAt(1)).setTimestampMillisForTesting(0); @@ -372,7 +373,7 @@ HistogramWatcher.newBuilder() .expectIntRecords("Tabs.TabArchived.TabCount", 2) .build(); - // The grouped tab should be skipped. + // The grouped tab should not be skipped. runOnUiThreadBlocking( () -> mTabArchiver.onTabModelSelectorAdded( @@ -387,6 +388,165 @@ @Test @MediumTest + @DisableFeatures(ChromeFeatureList.ANDROID_TAB_DECLUTTER_ARCHIVE_TAB_GROUPS) + @EnableFeatures(ChromeFeatureList.ANDROID_TAB_DECLUTTER_ARCHIVE_DUPLICATE_TABS) + public void testGroupedDuplicateTabsAreNotArchived() throws Exception { + sActivityTestRule.loadUrlInNewTab( + sActivityTestRule.getTestServer().getURL(TEST_PATH), /* incognito= */ false); + sActivityTestRule.loadUrlInNewTab( + sActivityTestRule.getTestServer().getURL(TEST_PATH), /* incognito= */ false); + sActivityTestRule.loadUrlInNewTab( + sActivityTestRule.getTestServer().getURL(TEST_PATH), /* incognito= */ false); + + runOnUiThreadBlocking( + () -> { + // Set the tab to expire after 1 hour to simplify testing. + mTabArchiveSettings.setArchiveTimeDeltaHours(1); + }); + + // Set the clock to 1 hour after 0. + doReturn(TimeUnit.HOURS.toMillis(1)).when(mClock).currentTimeMillis(); + // Set the timestamp for both tabs at 0, they should be archived. + ((TabImpl) mRegularTabModel.getTabAt(0)).setTimestampMillisForTesting(0); + ((TabImpl) mRegularTabModel.getTabAt(1)).setTimestampMillisForTesting(0); + ((TabImpl) mRegularTabModel.getTabAt(2)).setTimestampMillisForTesting(0); + + // Simulate the first and second tab being added to a group. + runOnUiThreadBlocking( + () -> { + Token token = Token.createRandom(); + mRegularTabModel.getTabAt(0).setTabGroupId(token); + mRegularTabModel.getTabAt(1).setTabGroupId(token); + }); + + assertEquals(4, mRegularTabModel.getCount()); + assertEquals(0, mArchivedTabModel.getCount()); + + HistogramWatcher watcher = + HistogramWatcher.newBuilder() + .expectIntRecords("Tabs.TabArchived.TabCount", 1) + .build(); + // The grouped tabs should be skipped. But the single tab, even though it is a duplicate + // URL, should be archived since it is a standalone tab which passed the time threshold. + runOnUiThreadBlocking( + () -> + mTabArchiver.onTabModelSelectorAdded( + sActivityTestRule + .getActivity() + .getTabModelSelectorSupplier() + .get())); + CriteriaHelper.pollUiThread(() -> 3 == mRegularTabModel.getCount()); + assertEquals(1, mArchivedTabModel.getCount()); + watcher.assertExpected(); + } + + @Test + @MediumTest + @EnableFeatures(ChromeFeatureList.ANDROID_TAB_DECLUTTER_ARCHIVE_DUPLICATE_TABS) + public void testDuplicateTabsAreArchived() throws Exception { + // Tab 2 + sActivityTestRule.loadUrlInNewTab( + sActivityTestRule.getTestServer().getURL(TEST_PATH), /* incognito= */ false); + // Tab 3 + sActivityTestRule.loadUrlInNewTab( + sActivityTestRule.getTestServer().getURL(TEST_PATH), /* incognito= */ false); + // Tab 4 + sActivityTestRule.loadUrlInNewTab( + sActivityTestRule.getTestServer().getURL(TEST_PATH_2), /* incognito= */ false); + + runOnUiThreadBlocking( + () -> { + // Set the tab to expire after 2 hour to simplify testing. + mTabArchiveSettings.setArchiveTimeDeltaHours(2); + }); + + // Set the clock to 1 hour after 0. No tabs should be archived by timestamp eligibility. + doReturn(TimeUnit.HOURS.toMillis(1)).when(mClock).currentTimeMillis(); + // Set the timestamp for the second and third tabs sharing the same URL (not fourth since it + // will be the new active tab), tab 2 at 0 and tab 3 at 1. + ((TabImpl) mRegularTabModel.getTabAt(1)).setTimestampMillisForTesting(0); + ((TabImpl) mRegularTabModel.getTabAt(2)).setTimestampMillisForTesting(1); + + assertEquals(4, mRegularTabModel.getCount()); + assertEquals(0, mArchivedTabModel.getCount()); + + HistogramWatcher watcher = + HistogramWatcher.newBuilder() + .expectIntRecords("Tabs.TabArchived.TabCount", 1) + .build(); + // Only one of the tabs with duplicate URLs should be archived. + runOnUiThreadBlocking( + () -> + mTabArchiver.onTabModelSelectorAdded( + sActivityTestRule + .getActivity() + .getTabModelSelectorSupplier() + .get())); + CriteriaHelper.pollUiThread(() -> 3 == mRegularTabModel.getCount()); + // Check that tab 3 (which is now tab 2) is the duplicate that remains as it is last active. + CriteriaHelper.pollUiThread(() -> 1 == mRegularTabModel.getTabAt(1).getTimestampMillis()); + assertEquals(1, mArchivedTabModel.getCount()); + // Check that tab 2 has been archived. + assertEquals(0, mArchivedTabModel.getTabAt(0).getTimestampMillis()); + watcher.assertExpected(); + } + + @Test + @MediumTest + @DisableFeatures(ChromeFeatureList.ANDROID_TAB_DECLUTTER_ARCHIVE_TAB_GROUPS) + @EnableFeatures(ChromeFeatureList.ANDROID_TAB_DECLUTTER_ARCHIVE_DUPLICATE_TABS) + public void testDuplicateTabInGroupIsNotArchived_BaseDuplicateOutOfGroup() throws Exception { + // Tab 2 + sActivityTestRule.loadUrlInNewTab( + sActivityTestRule.getTestServer().getURL(TEST_PATH), /* incognito= */ false); + // Tab 3 + sActivityTestRule.loadUrlInNewTab( + sActivityTestRule.getTestServer().getURL(TEST_PATH), /* incognito= */ false); + // Tab 4 + sActivityTestRule.loadUrlInNewTab( + sActivityTestRule.getTestServer().getURL(TEST_PATH_2), /* incognito= */ false); + + runOnUiThreadBlocking( + () -> { + // Set the tab to expire after 2 hour to simplify testing. + mTabArchiveSettings.setArchiveTimeDeltaHours(2); + }); + + // Set the clock to 1 hour after 0. No tabs should be archived by timestamp eligibility. + doReturn(TimeUnit.HOURS.toMillis(1)).when(mClock).currentTimeMillis(); + // Set the timestamp for the second and third tabs sharing the same URL (not fourth since it + // will be the new active tab), tab 2 at 0 and tab 3 at 1. + ((TabImpl) mRegularTabModel.getTabAt(1)).setTimestampMillisForTesting(0); + ((TabImpl) mRegularTabModel.getTabAt(2)).setTimestampMillisForTesting(1); + + // Simulate the first and second tab being added to a group. + runOnUiThreadBlocking( + () -> { + Token token = Token.createRandom(); + mRegularTabModel.getTabAt(0).setTabGroupId(token); + mRegularTabModel.getTabAt(1).setTabGroupId(token); + }); + + assertEquals(4, mRegularTabModel.getCount()); + assertEquals(0, mArchivedTabModel.getCount()); + + HistogramWatcher watcher = + HistogramWatcher.newBuilder().expectNoRecords("Tabs.TabArchived.TabCount").build(); + // None of the tabs with duplicate URLs should be archived. + runOnUiThreadBlocking( + () -> + mTabArchiver.onTabModelSelectorAdded( + sActivityTestRule + .getActivity() + .getTabModelSelectorSupplier() + .get())); + CriteriaHelper.pollUiThread(() -> 4 == mRegularTabModel.getCount()); + assertEquals(0, mArchivedTabModel.getCount()); + watcher.assertExpected(); + } + + @Test + @MediumTest public void testTabModelSelectorInactiveTabsAreArchived() throws Exception { runOnUiThreadBlocking( () -> {
diff --git a/chrome/android/modules/stack_unwinder/internal/BUILD.gn b/chrome/android/modules/stack_unwinder/internal/BUILD.gn index 02aca60..adf754c 100644 --- a/chrome/android/modules/stack_unwinder/internal/BUILD.gn +++ b/chrome/android/modules/stack_unwinder/internal/BUILD.gn
@@ -38,7 +38,6 @@ deps = [ ":jni_headers", "//base", - "//base:native_unwinder_android", "//chrome/android/features/stack_unwinder/public:native", "//third_party/jni_zero", ] @@ -51,16 +50,3 @@ namespace = "stack_unwinder" module_name = "stack_unwinder" } - -# Since loading of a partitioned library is not supported in an APK, a separate -# target without partition is necessary for testing. -source_set("stack_unwinder_for_testing") { - testonly = true - sources = [ "stack_unwinder_module_contents_impl.cc" ] - deps = [ - ":jni_headers", - "//base", - "//base:native_unwinder_android", - "//chrome/android/features/stack_unwinder/public:native", - ] -}
diff --git a/chrome/android/modules/stack_unwinder/internal/java/src/org/chromium/chrome/modules/stack_unwinder/StackUnwinderModuleContentsImpl.java b/chrome/android/modules/stack_unwinder/internal/java/src/org/chromium/chrome/modules/stack_unwinder/StackUnwinderModuleContentsImpl.java index 0d09dc5..1f3bb5df 100644 --- a/chrome/android/modules/stack_unwinder/internal/java/src/org/chromium/chrome/modules/stack_unwinder/StackUnwinderModuleContentsImpl.java +++ b/chrome/android/modules/stack_unwinder/internal/java/src/org/chromium/chrome/modules/stack_unwinder/StackUnwinderModuleContentsImpl.java
@@ -10,39 +10,14 @@ * Provides access to the stack unwinder native code functions within the dynamic feature module. */ public class StackUnwinderModuleContentsImpl implements StackUnwinderModuleContents { - /** - * Returns the pointer to the CreateMemoryRegionsMap native function within the module, encoded - * as a long. - */ - @Override - public long getCreateMemoryRegionsMapFunction() { - return StackUnwinderModuleContentsImplJni.get().getCreateMemoryRegionsMapFunction(); - } - /** - * Returns the pointer to the CreateNativeUnwinder native function within the module, encoded as - * a long. - */ @Override - public long getCreateNativeUnwinderFunction() { - return StackUnwinderModuleContentsImplJni.get().getCreateNativeUnwinderFunction(); - } - - /** - * Returns the pointer to the CreateLibunwindstackUnwinder native function within the module, - * encoded as a long. - */ - @Override - public long getCreateLibunwindstackUnwinderFunction() { - return StackUnwinderModuleContentsImplJni.get().getCreateLibunwindstackUnwinderFunction(); + public long getDoNothingFunction() { + return StackUnwinderModuleContentsImplJni.get().getDoNothingFunction(); } @NativeMethods("stack_unwinder") interface Natives { - long getCreateMemoryRegionsMapFunction(); - - long getCreateNativeUnwinderFunction(); - - long getCreateLibunwindstackUnwinderFunction(); + long getDoNothingFunction(); } }
diff --git a/chrome/android/modules/stack_unwinder/internal/stack_unwinder_module_contents_impl.cc b/chrome/android/modules/stack_unwinder/internal/stack_unwinder_module_contents_impl.cc index 58526a7..24c20ce6 100644 --- a/chrome/android/modules/stack_unwinder/internal/stack_unwinder_module_contents_impl.cc +++ b/chrome/android/modules/stack_unwinder/internal/stack_unwinder_module_contents_impl.cc
@@ -6,60 +6,21 @@ #include <type_traits> #include <utility> -#include "base/profiler/libunwindstack_unwinder_android.h" -#include "base/profiler/native_unwinder_android.h" -#include "base/profiler/native_unwinder_android_memory_regions_map.h" #include "chrome/android/features/stack_unwinder/public/function_types.h" // Must come after all headers that specialize FromJniType() / ToJniType(). #include "chrome/android/modules/stack_unwinder/internal/jni_headers/StackUnwinderModuleContentsImpl_jni.h" -std::unique_ptr<base::NativeUnwinderAndroidMemoryRegionsMap> -CreateMemoryRegionsMap() { - return base::NativeUnwinderAndroid::CreateMemoryRegionsMap(); +void DoNothing() { + return; } -static_assert(std::is_same<stack_unwinder::CreateMemoryRegionsMapFunction, - decltype(&CreateMemoryRegionsMap)>::value, - "CreateMemoryRegionsMapFunction typedef must match the declared " - "function type"); +static_assert(std::is_same<stack_unwinder::DoNothingFunction, + decltype(&DoNothing)>::value, + "DoNothingFunction typedef must match the declared function " + "type"); -std::unique_ptr<base::Unwinder> CreateNativeUnwinder( - base::NativeUnwinderAndroidMapDelegate* map_delegate, - uintptr_t exclude_module_with_base_address) { - return std::make_unique<base::NativeUnwinderAndroid>( - exclude_module_with_base_address, map_delegate); -} - -static_assert(std::is_same<stack_unwinder::CreateNativeUnwinderFunction, - decltype(&CreateNativeUnwinder)>::value, - "CreateNativeUnwinderFunction typedef must match the declared " - "function type"); - -std::unique_ptr<base::Unwinder> CreateLibunwindstackUnwinder() { - return std::make_unique<base::LibunwindstackUnwinderAndroid>(); -} - -static_assert( - std::is_same<stack_unwinder::CreateLibunwindstackUnwinderFunction, - decltype(&CreateLibunwindstackUnwinder)>::value, - "CreateLibunwindstackUnwinderFunction typedef must match the declared " - "function type"); - -static jlong -JNI_StackUnwinderModuleContentsImpl_GetCreateMemoryRegionsMapFunction( +static jlong JNI_StackUnwinderModuleContentsImpl_GetDoNothingFunction( JNIEnv* env) { - return reinterpret_cast<jlong>(&CreateMemoryRegionsMap); -} - -static jlong -JNI_StackUnwinderModuleContentsImpl_GetCreateNativeUnwinderFunction( - JNIEnv* env) { - return reinterpret_cast<jlong>(&CreateNativeUnwinder); -} - -static jlong -JNI_StackUnwinderModuleContentsImpl_GetCreateLibunwindstackUnwinderFunction( - JNIEnv* env) { - return reinterpret_cast<jlong>(&CreateLibunwindstackUnwinder); + return reinterpret_cast<jlong>(&DoNothing); }
diff --git a/chrome/android/modules/stack_unwinder/provider/java/src/org/chromium/chrome/modules/stack_unwinder/StackUnwinderModuleProvider.java b/chrome/android/modules/stack_unwinder/provider/java/src/org/chromium/chrome/modules/stack_unwinder/StackUnwinderModuleProvider.java index e9f9856e..66b2dfc8 100644 --- a/chrome/android/modules/stack_unwinder/provider/java/src/org/chromium/chrome/modules/stack_unwinder/StackUnwinderModuleProvider.java +++ b/chrome/android/modules/stack_unwinder/provider/java/src/org/chromium/chrome/modules/stack_unwinder/StackUnwinderModuleProvider.java
@@ -33,30 +33,8 @@ StackUnwinderModule.ensureNativeLoaded(); } - /** - * Returns the pointer to the CreateMemoryRegionsMap native function within the module, encoded - * as a long. Can be called only if the module is installed. - */ @CalledByNative - public static long getCreateMemoryRegionsMapFunction() { - return StackUnwinderModule.getImpl().getCreateMemoryRegionsMapFunction(); - } - - /** - * Returns the pointer to the CreateNativeUnwinder native function within the module, encoded as - * a long. Can be called only if the module is installed. - */ - @CalledByNative - public static long getCreateNativeUnwinderFunction() { - return StackUnwinderModule.getImpl().getCreateNativeUnwinderFunction(); - } - - /** - * Returns the pointer to the CreateLibunwindstackUnwinder native function within the module, - * encoded as a long. Can be called only if the module is installed. - */ - @CalledByNative - public static long getCreateLibunwindstackUnwinderFunction() { - return StackUnwinderModule.getImpl().getCreateLibunwindstackUnwinderFunction(); + public static long getDoNothingFunction() { + return StackUnwinderModule.getImpl().getDoNothingFunction(); } }
diff --git a/chrome/android/modules/stack_unwinder/public/java/src/org/chromium/chrome/modules/stack_unwinder/StackUnwinderModuleContents.java b/chrome/android/modules/stack_unwinder/public/java/src/org/chromium/chrome/modules/stack_unwinder/StackUnwinderModuleContents.java index 7e7295e2..d1adfe5 100644 --- a/chrome/android/modules/stack_unwinder/public/java/src/org/chromium/chrome/modules/stack_unwinder/StackUnwinderModuleContents.java +++ b/chrome/android/modules/stack_unwinder/public/java/src/org/chromium/chrome/modules/stack_unwinder/StackUnwinderModuleContents.java
@@ -13,21 +13,6 @@ module = "stack_unwinder", impl = "org.chromium.chrome.modules.stack_unwinder.StackUnwinderModuleContentsImpl") public interface StackUnwinderModuleContents { - /** - * Returns the pointer to the CreateMemoryRegionsMap native function within the module, encoded - * as a long. - */ - long getCreateMemoryRegionsMapFunction(); - /** - * Returns the pointer to the CreateNativeUnwinder native function within the module, encoded as - * a long. - */ - long getCreateNativeUnwinderFunction(); - - /** - * Returns the pointer to the CreateLibunwindstackUnwinder native function within the module, - * encoded as a long. - */ - long getCreateLibunwindstackUnwinderFunction(); + long getDoNothingFunction(); }
diff --git a/chrome/android/modules/stack_unwinder/public/module.cc b/chrome/android/modules/stack_unwinder/public/module.cc index 1c353a8..1d38375 100644 --- a/chrome/android/modules/stack_unwinder/public/module.cc +++ b/chrome/android/modules/stack_unwinder/public/module.cc
@@ -31,52 +31,18 @@ JNIEnv* env = base::android::AttachCurrentThread(); Java_StackUnwinderModuleProvider_ensureNativeLoaded(env); - CreateMemoryRegionsMapFunction create_memory_regions_map = - reinterpret_cast<CreateMemoryRegionsMapFunction>( - Java_StackUnwinderModuleProvider_getCreateMemoryRegionsMapFunction( - env)); + DoNothingFunction do_nothing = reinterpret_cast<DoNothingFunction>( + Java_StackUnwinderModuleProvider_getDoNothingFunction(env)); - CreateNativeUnwinderFunction create_native_unwinder = - reinterpret_cast<CreateNativeUnwinderFunction>( - Java_StackUnwinderModuleProvider_getCreateNativeUnwinderFunction( - env)); - - CreateLibunwindstackUnwinderFunction create_libunwindstack_unwinder = - reinterpret_cast<CreateLibunwindstackUnwinderFunction>( - Java_StackUnwinderModuleProvider_getCreateLibunwindstackUnwinderFunction( - env)); - - return base::WrapUnique(new Module(create_memory_regions_map, - create_native_unwinder, - create_libunwindstack_unwinder)); + return base::WrapUnique(new Module(do_nothing)); } -std::unique_ptr<base::NativeUnwinderAndroidMemoryRegionsMap> -Module::CreateMemoryRegionsMap() { - return create_memory_regions_map_(); +void Module::DoNothing() { + return do_nothing_(); } -std::unique_ptr<base::Unwinder> Module::CreateNativeUnwinder( - base::NativeUnwinderAndroidMapDelegate* map_delegate, - uintptr_t exclude_module_with_base_address) { - return create_native_unwinder_(map_delegate, - exclude_module_with_base_address); -} - -std::unique_ptr<base::Unwinder> Module::CreateLibunwindstackUnwinder() { - return create_libunwindstack_unwinder_(); -} - -Module::Module( - CreateMemoryRegionsMapFunction create_memory_regions_map, - CreateNativeUnwinderFunction create_native_unwinder, - CreateLibunwindstackUnwinderFunction create_libunwindstack_unwinder) - : create_memory_regions_map_(create_memory_regions_map), - create_native_unwinder_(create_native_unwinder), - create_libunwindstack_unwinder_(create_libunwindstack_unwinder) { - DCHECK(create_memory_regions_map); - DCHECK(create_native_unwinder); - DCHECK(create_libunwindstack_unwinder); +Module::Module(DoNothingFunction do_nothing) : do_nothing_(do_nothing) { + DCHECK(do_nothing); } } // namespace stack_unwinder
diff --git a/chrome/android/modules/stack_unwinder/public/module.h b/chrome/android/modules/stack_unwinder/public/module.h index b745c06..9e70729 100644 --- a/chrome/android/modules/stack_unwinder/public/module.h +++ b/chrome/android/modules/stack_unwinder/public/module.h
@@ -11,10 +11,6 @@ #include "base/profiler/unwinder.h" #include "chrome/android/features/stack_unwinder/public/function_types.h" -namespace base { -class NativeUnwinderAndroidMapDelegate; -} // namespace base - namespace stack_unwinder { // Provides access to the stack_unwinder module. @@ -33,31 +29,15 @@ // Attempts to load the module. May be invoked only if IsInstalled(). static std::unique_ptr<Module> Load(); - // Returns a map representing the current memory regions (modules, stacks, - // etc.). - std::unique_ptr<base::NativeUnwinderAndroidMemoryRegionsMap> - CreateMemoryRegionsMap(); - - // Creates a new native stack unwinder. - std::unique_ptr<base::Unwinder> CreateNativeUnwinder( - base::NativeUnwinderAndroidMapDelegate* map_delegate, - uintptr_t exclude_module_with_base_address); - - // Creates an unwinder that will use libunwindstack::Unwinder exclusively, it - // does not do partial unwinds instead either succeeding or failing the whole - // stack. Should generally be used by itself rather then as part of a list of - // base::Unwinders. Internally it manages its own MemoryRegionsMap and thus - // doesn't take them in the constructor. - std::unique_ptr<base::Unwinder> CreateLibunwindstackUnwinder(); + // Stub function + // TODO(crbug.com/375463618): Remove this function and clean up the support + // machinery for executing native code. + void DoNothing(); private: - Module(CreateMemoryRegionsMapFunction create_memory_regions_map, - CreateNativeUnwinderFunction create_native_unwinder, - CreateLibunwindstackUnwinderFunction create_libunwindstack_unwinder); + explicit Module(DoNothingFunction do_nothing); - const CreateMemoryRegionsMapFunction create_memory_regions_map_; - const CreateNativeUnwinderFunction create_native_unwinder_; - const CreateLibunwindstackUnwinderFunction create_libunwindstack_unwinder_; + const DoNothingFunction do_nothing_; }; } // namespace stack_unwinder
diff --git a/chrome/app/chromium_strings.grd b/chrome/app/chromium_strings.grd index 542e3e54..e8339b4b 100644 --- a/chrome/app/chromium_strings.grd +++ b/chrome/app/chromium_strings.grd
@@ -355,6 +355,9 @@ <message name="IDS_TASK_MANAGER_SEARCH_ACCESSIBILITY_NAME" desc="The accessibility description for the Search bar in the Task Manager window" translateable="false"> Look up the name of any tab title or extension to highlight it in the process table. </message> + <message name="IDS_TASK_MANAGER_CLEAR_SEARCH_BUTTON_ACCESSIBILITY_NAME" desc="The accessibility name for the clear button accompanying the task manager search bar input."> + Clear search + </message> <message name="IDS_TASK_MANAGER_KILL_ACCESSIBILITY_NAME" desc="The accessibility description for the End Process button in the Task Manager window" translateable="false"> Ends the highlighted process. </message>
diff --git a/chrome/app/chromium_strings_grd/IDS_TASK_MANAGER_CLEAR_SEARCH_BUTTON_ACCESSIBILITY_NAME.png.sha1 b/chrome/app/chromium_strings_grd/IDS_TASK_MANAGER_CLEAR_SEARCH_BUTTON_ACCESSIBILITY_NAME.png.sha1 new file mode 100644 index 0000000..608417e --- /dev/null +++ b/chrome/app/chromium_strings_grd/IDS_TASK_MANAGER_CLEAR_SEARCH_BUTTON_ACCESSIBILITY_NAME.png.sha1
@@ -0,0 +1 @@ +6a11eefd488b32be30f9cc0f489737ed25f2adc4 \ No newline at end of file
diff --git a/chrome/app/google_chrome_strings.grd b/chrome/app/google_chrome_strings.grd index b511cddf..fc9e5313 100644 --- a/chrome/app/google_chrome_strings.grd +++ b/chrome/app/google_chrome_strings.grd
@@ -354,6 +354,9 @@ <message name="IDS_TASK_MANAGER_SEARCH_ACCESSIBILITY_NAME" desc="The accessibility description for the Search bar in the Task Manager window" translateable="false"> Look up the name of any tab title or extension to highlight it in the process table. </message> + <message name="IDS_TASK_MANAGER_CLEAR_SEARCH_BUTTON_ACCESSIBILITY_NAME" desc="The accessibility name for the clear button accompanying the task manager search bar input."> + Clear search + </message> <message name="IDS_TASK_MANAGER_KILL_ACCESSIBILITY_NAME" desc="The accessibility description for the End Process button in the Task Manager window" translateable="false"> Ends the highlighted process. </message>
diff --git a/chrome/app/google_chrome_strings_grd/IDS_TASK_MANAGER_CLEAR_SEARCH_BUTTON_ACCESSIBILITY_NAME.png.sha1 b/chrome/app/google_chrome_strings_grd/IDS_TASK_MANAGER_CLEAR_SEARCH_BUTTON_ACCESSIBILITY_NAME.png.sha1 new file mode 100644 index 0000000..608417e --- /dev/null +++ b/chrome/app/google_chrome_strings_grd/IDS_TASK_MANAGER_CLEAR_SEARCH_BUTTON_ACCESSIBILITY_NAME.png.sha1
@@ -0,0 +1 @@ +6a11eefd488b32be30f9cc0f489737ed25f2adc4 \ No newline at end of file
diff --git a/chrome/app/os_settings_strings.grdp b/chrome/app/os_settings_strings.grdp index bd892aef..5406a3b 100644 --- a/chrome/app/os_settings_strings.grdp +++ b/chrome/app/os_settings_strings.grdp
@@ -2010,13 +2010,10 @@ <message name="IDS_SETTINGS_SCREEN_MAGNIFIER_ZOOM_20_X" desc="Desription of a 20x zoom level"> 20x </message> - <message name="IDS_SETTINGS_TAP_DRAGGING_LABEL" desc="Label for checkbox which enables tap dragging."> - Enable tap dragging - </message> - <message name="IDS_OS_SETTINGS_REVAMP_TAP_DRAGGING_LABEL" desc="Label for checkbox which enables tap dragging."> + <message name="IDS_OS_SETTINGS_TAP_DRAGGING_LABEL" desc="Label for checkbox which enables tap dragging."> Tap and drag to move items </message> - <message name="IDS_OS_SETTINGS_REVAMP_TAP_DRAGGING_DESCRIPTION" desc="Description for checkbox which enables tap dragging."> + <message name="IDS_OS_SETTINGS_TAP_DRAGGING_DESCRIPTION" desc="Description for checkbox which enables tap dragging."> Double-tap an item, hold down on the second tap, and then drag the item to move it </message> <message name="IDS_SETTINGS_CLICK_ON_STOP_LABEL" desc="Label for checkbox which enables automatically do a mouse action when the mouse cursor stops.">
diff --git a/chrome/app/os_settings_strings_grdp/IDS_OS_SETTINGS_REVAMP_TAP_DRAGGING_DESCRIPTION.png.sha1 b/chrome/app/os_settings_strings_grdp/IDS_OS_SETTINGS_TAP_DRAGGING_DESCRIPTION.png.sha1 similarity index 100% rename from chrome/app/os_settings_strings_grdp/IDS_OS_SETTINGS_REVAMP_TAP_DRAGGING_DESCRIPTION.png.sha1 rename to chrome/app/os_settings_strings_grdp/IDS_OS_SETTINGS_TAP_DRAGGING_DESCRIPTION.png.sha1
diff --git a/chrome/app/os_settings_strings_grdp/IDS_OS_SETTINGS_REVAMP_TAP_DRAGGING_LABEL.png.sha1 b/chrome/app/os_settings_strings_grdp/IDS_OS_SETTINGS_TAP_DRAGGING_LABEL.png.sha1 similarity index 100% rename from chrome/app/os_settings_strings_grdp/IDS_OS_SETTINGS_REVAMP_TAP_DRAGGING_LABEL.png.sha1 rename to chrome/app/os_settings_strings_grdp/IDS_OS_SETTINGS_TAP_DRAGGING_LABEL.png.sha1
diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn index fe0f0149..360ded3 100644 --- a/chrome/browser/BUILD.gn +++ b/chrome/browser/BUILD.gn
@@ -3814,6 +3814,8 @@ "new_tab_page/modules/safe_browsing/safe_browsing_handler.h", "new_tab_page/modules/safe_browsing/safe_browsing_prefs.cc", "new_tab_page/modules/safe_browsing/safe_browsing_prefs.h", + "new_tab_page/modules/v2/authentication/microsoft_auth_page_handler.cc", + "new_tab_page/modules/v2/authentication/microsoft_auth_page_handler.h", "new_tab_page/modules/v2/calendar/calendar_fake_data_helper.cc", "new_tab_page/modules/v2/calendar/calendar_fake_data_helper.h", "new_tab_page/modules/v2/calendar/google_calendar_page_handler.cc", @@ -6068,6 +6070,8 @@ "policy/annotations/annotation_control_provider.h", "policy/annotations/blocklist_handler.cc", "policy/annotations/blocklist_handler.h", + "policy/power_battery_charging_optimization_policy_handler.cc", + "policy/power_battery_charging_optimization_policy_handler.h", "policy/restricted_mgs_policy_provider.cc", "policy/restricted_mgs_policy_provider.h", "renderer_context_menu/read_write_card_observer.cc", @@ -8678,6 +8682,7 @@ "//chrome/browser/new_tab_page/chrome_colors:generate_colors_info", "//chrome/browser/new_tab_page/modules/file_suggestion:mojo_bindings", "//chrome/browser/new_tab_page/modules/safe_browsing:mojo_bindings", + "//chrome/browser/new_tab_page/modules/v2/authentication:mojo_bindings", "//chrome/browser/new_tab_page/modules/v2/calendar:mojo_bindings", "//chrome/browser/new_tab_page/modules/v2/most_relevant_tab_resumption:mojo_bindings", "//chrome/browser/profile_resetter:profile_reset_report_proto",
diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc index 05f17e1..86e4b83 100644 --- a/chrome/browser/about_flags.cc +++ b/chrome/browser/about_flags.cc
@@ -11812,6 +11812,11 @@ FEATURE_VALUE_TYPE(features::kEnablePolicyPromotionBanner)}, #endif + {"privacy-sandbox-ads-api-ux-enhancements", + flag_descriptions::kPrivacySandboxAdsApiUxEnhancementsName, + flag_descriptions::kPrivacySandboxAdsApiUxEnhancementsDescription, kOsAll, + FEATURE_VALUE_TYPE(privacy_sandbox::kPrivacySandboxAdsApiUxEnhancements)} + // NOTE: Adding a new flag requires adding a corresponding entry to enum // "LoginCustomFlags" in tools/metrics/histograms/enums.xml. See "Flag // Histograms" in tools/metrics/histograms/README.md (run the
diff --git a/chrome/browser/android/oom_intervention/oom_intervention_tab_helper.cc b/chrome/browser/android/oom_intervention/oom_intervention_tab_helper.cc index 5c10413..320690c 100644 --- a/chrome/browser/android/oom_intervention/oom_intervention_tab_helper.cc +++ b/chrome/browser/android/oom_intervention/oom_intervention_tab_helper.cc
@@ -165,9 +165,13 @@ int rph_id, const crash_reporter::CrashMetricsReporter::ReportedCrashTypeSet& reported_counts) { - if (rph_id != - web_contents()->GetPrimaryPage().GetMainDocument().GetProcess()->GetID()) + if (rph_id != web_contents() + ->GetPrimaryPage() + .GetMainDocument() + .GetProcess() + ->GetDeprecatedID()) { return; + } if (!reported_counts.count( crash_reporter::CrashMetricsReporter::ProcessedCrashCounts:: kRendererForegroundVisibleOom)) {
diff --git a/chrome/browser/apps/guest_view/web_view_browsertest.cc b/chrome/browser/apps/guest_view/web_view_browsertest.cc index 68035aee..c872a32 100644 --- a/chrome/browser/apps/guest_view/web_view_browsertest.cc +++ b/chrome/browser/apps/guest_view/web_view_browsertest.cc
@@ -4425,14 +4425,14 @@ url::Origin base_origin = url::Origin::Create(embedded_test_server()->GetURL("localhost", "/")); EXPECT_TRUE(security_policy->CanAccessDataForOrigin( - guest_main_frame->GetProcess()->GetID(), base_origin)); + guest_main_frame->GetProcess()->GetDeprecatedID(), base_origin)); // Ensure the process doesn't have access to some other origin. This // verifies that site isolation is enforced. url::Origin another_origin = url::Origin::Create(embedded_test_server()->GetURL("foo.com", "/")); EXPECT_FALSE(security_policy->CanAccessDataForOrigin( - guest_main_frame->GetProcess()->GetID(), another_origin)); + guest_main_frame->GetProcess()->GetDeprecatedID(), another_origin)); } IN_PROC_BROWSER_TEST_P(WebViewTest, Shim_TestLoadDataAPIAccessibleResources) { @@ -4813,7 +4813,7 @@ Profile* profile = browser()->profile(); int rules_registry_id = extensions::WebViewGuest::GetOrGenerateRulesRegistryID( - guest_view->owner_rfh()->GetProcess()->GetID(), + guest_view->owner_rfh()->GetProcess()->GetDeprecatedID(), guest_view->view_instance_id()); extensions::RulesRegistryService* registry_service = @@ -4853,7 +4853,7 @@ extensions::RulesRegistryService::Get(profile); int rules_registry_id = extensions::WebViewGuest::GetOrGenerateRulesRegistryID( - guest_view->owner_rfh()->GetProcess()->GetID(), + guest_view->owner_rfh()->GetProcess()->GetDeprecatedID(), guest_view->view_instance_id()); // Get an existing registered rule for the guest. @@ -5145,8 +5145,9 @@ auto* process_map = extensions::ProcessMap::Get(guest->GetBrowserContext()); auto* guest_process = guest->GetProcess(); - EXPECT_FALSE(process_map->Contains(guest_process->GetID())); - EXPECT_FALSE(process_map->GetExtensionIdForProcess(guest_process->GetID())); + EXPECT_FALSE(process_map->Contains(guest_process->GetDeprecatedID())); + EXPECT_FALSE( + process_map->GetExtensionIdForProcess(guest_process->GetDeprecatedID())); extensions::ExtensionRegistry* registry = extensions::ExtensionRegistry::Get(browser()->profile()); @@ -5154,7 +5155,7 @@ registry->enabled_extensions().GetByID(guest_url.host()); EXPECT_EQ(extensions::mojom::ContextType::kUnprivilegedExtension, process_map->GetMostLikelyContextType( - extension, guest_process->GetID(), &guest_url)); + extension, guest_process->GetDeprecatedID(), &guest_url)); } // Tests that a WebView can reload a WebView accessible resource. See @@ -6626,9 +6627,9 @@ // considered an extension process and does not have the privileged webstore // API. auto* process_map = extensions::ProcessMap::Get(guest->GetBrowserContext()); - EXPECT_FALSE(process_map->Contains(guest->GetProcess()->GetID())); - EXPECT_FALSE( - process_map->GetExtensionIdForProcess(guest->GetProcess()->GetID())); + EXPECT_FALSE(process_map->Contains(guest->GetProcess()->GetDeprecatedID())); + EXPECT_FALSE(process_map->GetExtensionIdForProcess( + guest->GetProcess()->GetDeprecatedID())); EXPECT_EQ(false, content::EvalJs(guest, "!!chrome.webstorePrivate")); } @@ -6845,7 +6846,7 @@ // crash the browser. content::RenderFrameHost* guest_subframe = ChildFrameAt(GetGuestRenderFrameHost(), 0); - int initial_process_id = guest_subframe->GetProcess()->GetID(); + int initial_process_id = guest_subframe->GetProcess()->GetDeprecatedID(); const GURL error_url = GURL("unknownscheme:foo"); { content::TestFrameNavigationObserver load_observer(guest_subframe); @@ -6863,7 +6864,7 @@ EXPECT_FALSE(error_origin.GetTupleOrPrecursorTupleIfOpaque().IsValid()); // The error page should not load in the initiator's process. - EXPECT_NE(initial_process_id, error_rfh->GetProcess()->GetID()); + EXPECT_NE(initial_process_id, error_rfh->GetProcess()->GetDeprecatedID()); } } @@ -7051,7 +7052,8 @@ { extensions::WebViewRendererState::WebViewInfo info; ASSERT_TRUE(web_view_renderer_state->GetInfo( - main_frame->GetProcess()->GetID(), main_frame->GetRoutingID(), &info)); + main_frame->GetProcess()->GetDeprecatedID(), main_frame->GetRoutingID(), + &info)); EXPECT_TRUE(info.content_script_ids.empty()); } @@ -7092,9 +7094,9 @@ main_frame = GetGuestRenderFrameHost(); { extensions::WebViewRendererState::WebViewInfo info; - ASSERT_TRUE( - web_view_renderer_state->GetInfo(main_frame->GetProcess()->GetID(), - main_frame->GetRoutingID(), &info)); + ASSERT_TRUE(web_view_renderer_state->GetInfo( + main_frame->GetProcess()->GetDeprecatedID(), + main_frame->GetRoutingID(), &info)); EXPECT_EQ(1U, info.content_script_ids.size()); } } @@ -7118,7 +7120,8 @@ { extensions::WebViewRendererState::WebViewInfo info; ASSERT_TRUE(web_view_renderer_state->GetInfo( - main_frame->GetProcess()->GetID(), main_frame->GetRoutingID(), &info)); + main_frame->GetProcess()->GetDeprecatedID(), main_frame->GetRoutingID(), + &info)); EXPECT_EQ(1U, info.content_script_ids.size()); }
diff --git a/chrome/browser/apps/platform_apps/api/media_galleries/media_galleries_api.cc b/chrome/browser/apps/platform_apps/api/media_galleries/media_galleries_api.cc index e5c553f..4c9686f 100644 --- a/chrome/browser/apps/platform_apps/api/media_galleries/media_galleries_api.cc +++ b/chrome/browser/apps/platform_apps/api/media_galleries/media_galleries_api.cc
@@ -169,7 +169,7 @@ bool has_delete_permission = permissions_data->CheckAPIPermissionWithParam( extensions::mojom::APIPermissionID::kMediaGalleries, &delete_param); - const int child_id = rfh->GetProcess()->GetID(); + const int child_id = rfh->GetProcess()->GetDeprecatedID(); base::Value::List list; for (const auto& filesystem : filesystems) { base::Value::Dict file_system_dict_value;
diff --git a/chrome/browser/ash/BUILD.gn b/chrome/browser/ash/BUILD.gn index 298d9ec..2a72d77c 100644 --- a/chrome/browser/ash/BUILD.gn +++ b/chrome/browser/ash/BUILD.gn
@@ -325,6 +325,7 @@ "//chrome/browser/ash/policy/reporting/metrics_reporting/usb:browser_tests", "//chrome/browser/ash/policy/reporting/os_updates:browser_tests", "//chrome/browser/ash/policy/reporting/user_added_removed:browser_tests", + "//chrome/browser/ash/policy/reporting/user_session_activity:browser_tests", "//chrome/browser/ash/policy/skyvault:browser_tests", "//chrome/browser/ash/policy/status_collector:browser_tests", "//chrome/browser/ash/preferences:browser_tests",
diff --git a/chrome/browser/ash/arc/session/arc_reven_hardware_checker.cc b/chrome/browser/ash/arc/session/arc_reven_hardware_checker.cc index 2f24998..3858e0b 100644 --- a/chrome/browser/ash/arc/session/arc_reven_hardware_checker.cc +++ b/chrome/browser/ash/arc/session/arc_reven_hardware_checker.cc
@@ -36,14 +36,6 @@ constexpr base::TimeDelta kHardwareInfoReadyRetryInterval = base::Milliseconds(100); -const std::unordered_set<std::string> - ArcRevenHardwareChecker::kSupportedWiFiIds{ - "8086:095a", "8086:a0f0", "8086:2526", "8086:31dc", "8086:9df0", - "8086:51f0", "168c:003e", "8086:2723", "8086:06f0", "10ec:c822", - "8086:7af0", "8086:4df0", "8086:2725", "8086:095b", "14c3:7961", - "8086:a370", "14c3:0616", "10ec:8852", "8086:43f0", "8086:02f0", - "8086:24fd", "8086:24f3"}; - const std::unordered_set<std::string> ArcRevenHardwareChecker::kSupportedGpuIds{ "8086:9a49", "8086:9a78", "8086:9a60", "8086:9a40", "8086:9a70", "8086:9a68", "8086:9a59", "8086:9af8", "8086:9ad9", "8086:9ac9", @@ -258,8 +250,6 @@ LOG(WARNING) << "No bus devices in response from cros_healthd."; return false; } - bool is_wifi_compatible = false; - bool is_gpu_compatible = false; for (const auto& device : bus_devices) { if (device->bus_info->which() == mojom::BusInfo::Tag::kPciBusInfo) { @@ -267,28 +257,17 @@ const auto& pci_id = IntToHex(pci_info->vendor_id) + ":" + IntToHex(pci_info->device_id); - if (device->device_class == mojom::BusDeviceClass::kWirelessController && - kSupportedWiFiIds.find(pci_id) != kSupportedWiFiIds.end()) { - is_wifi_compatible = true; - } if (device->device_class == mojom::BusDeviceClass::kDisplayController && kSupportedGpuIds.find(pci_id) != kSupportedGpuIds.end()) { - is_gpu_compatible = true; + return true; } } } - if (!is_wifi_compatible) { - LOG(WARNING) << "WiFi fails arcvm hardware requirements on reven: no " - "compatible device found."; - } + LOG(WARNING) << "GPU fails arcvm hardware requirements on reven: no " + "compatible device found."; - if (!is_gpu_compatible) { - LOG(WARNING) << "GPU fails arcvm hardware requirements on reven: no " - "compatible device found."; - } - - return is_wifi_compatible && is_gpu_compatible; + return false; } } // namespace arc
diff --git a/chrome/browser/ash/arc/session/arc_reven_hardware_checker_unittest.cc b/chrome/browser/ash/arc/session/arc_reven_hardware_checker_unittest.cc index 03d7b1f..6dc214c 100644 --- a/chrome/browser/ash/arc/session/arc_reven_hardware_checker_unittest.cc +++ b/chrome/browser/ash/arc/session/arc_reven_hardware_checker_unittest.cc
@@ -25,8 +25,6 @@ constexpr uint64_t kVendorId = 0x8086; // ID for a supported GPU device. constexpr uint64_t kAllowGpuDeviceId = 0x9a49; -// ID for a supported WiFi device. -constexpr uint64_t kAllowWiFiDeviceId = 0x095a; constexpr uint64_t kNotAllowGpuDeviceId = 0x0001; constexpr char kFakeUnusedStrValue[] = "fake_string"; constexpr bool kMeetHwRequirement = true; @@ -124,14 +122,10 @@ std::move(error)); } - mojom::BusResultPtr CreateBusResult(uint64_t gpu_device_id, - uint64_t wifi_device_id) { + mojom::BusResultPtr CreateBusResult(uint64_t gpu_device_id) { std::vector<mojom::BusDevicePtr> bus_devices; - auto wifi_device = CreateBusDevice( - mojom::BusDeviceClass::kWirelessController, kVendorId, wifi_device_id); auto gpu_device = CreateBusDevice(mojom::BusDeviceClass::kDisplayController, kVendorId, gpu_device_id); - bus_devices.push_back(std::move(wifi_device)); bus_devices.push_back(std::move(gpu_device)); return mojom::BusResult::NewBusDevices(std::move(bus_devices)); } @@ -189,7 +183,7 @@ info->cpu_result = CreateCpuResult(kHasKvmDevice); info->block_device_result = CreateBlockDeviceResult(kStorageSizeBelowRequirementInBytes); - info->bus_result = CreateBusResult(kAllowGpuDeviceId, kAllowWiFiDeviceId); + info->bus_result = CreateBusResult(kAllowGpuDeviceId); SetFakeTelemetryInfoResponse(std::move(info)); RunCheckerAndExpect(kNotMeetHwRequirement); } @@ -201,7 +195,7 @@ info->cpu_result = CreateCpuResult(kHasKvmDevice); info->block_device_result = CreateBlockDeviceResult(kStorageSizeMeetsRequirementInBytes); - info->bus_result = CreateBusResult(kNotAllowGpuDeviceId, kAllowWiFiDeviceId); + info->bus_result = CreateBusResult(kNotAllowGpuDeviceId); SetFakeTelemetryInfoResponse(std::move(info)); RunCheckerAndExpect(kNotMeetHwRequirement); } @@ -212,7 +206,7 @@ info->cpu_result = CreateCpuResult(kHasKvmDevice); info->block_device_result = CreateBlockDeviceResult(kStorageSizeMeetsRequirementInBytes); - info->bus_result = CreateBusResult(kAllowGpuDeviceId, kAllowWiFiDeviceId); + info->bus_result = CreateBusResult(kAllowGpuDeviceId); SetFakeTelemetryInfoResponse(std::move(info)); RunCheckerAndExpect(kMeetHwRequirement);
diff --git a/chrome/browser/ash/arc/session/arc_session_manager.cc b/chrome/browser/ash/arc/session/arc_session_manager.cc index 8ab97af..24035422 100644 --- a/chrome/browser/ash/arc/session/arc_session_manager.cc +++ b/chrome/browser/ash/arc/session/arc_session_manager.cc
@@ -1949,10 +1949,17 @@ // implement their own checking logic after supporting DLC installation later. if (ash::switches::IsRevenBranding() && ash::InstallAttributes::Get()->IsEnterpriseManaged()) { - // Check if the Reven device is compatible for ARC. - hardware_checker_->IsRevenDeviceCompatibleForArc( - base::BindOnce(&ArcSessionManager::OnEnableArcOnReven, - weak_ptr_factory_.GetWeakPtr(), std::move(jobs))); + if (ash::features::IsAndroidVpnAppsOnFlexEnabled()) { + // Check if the Reven device is compatible for ARC. + hardware_checker_->IsRevenDeviceCompatibleForArc( + base::BindOnce(&ArcSessionManager::OnEnableArcOnReven, + weak_ptr_factory_.GetWeakPtr(), std::move(jobs))); + } else { + VLOG(1) << "enable-android-vpn-apps-on-flex flag is off and cannot " + "install arcvm images."; + OnExpandPropertyFilesAndReadSalt( + ArcSessionManager::ExpansionResult{{}, false}); + } } else { VLOG(1) << "Reven device is not managed and cannot install arcvm images."; OnExpandPropertyFilesAndReadSalt(
diff --git a/chrome/browser/ash/arc/session/arc_session_manager_unittest.cc b/chrome/browser/ash/arc/session/arc_session_manager_unittest.cc index 16eea4d..95f30c36 100644 --- a/chrome/browser/ash/arc/session/arc_session_manager_unittest.cc +++ b/chrome/browser/ash/arc/session/arc_session_manager_unittest.cc
@@ -1673,6 +1673,10 @@ // Add arcvm-dlc command flag. base::CommandLine::ForCurrentProcess()->AppendSwitch( ash::switches::kEnableArcVmDlc); + // Enable enable-android-vpn-apps-on-flex chrome flag. + base::test::ScopedFeatureList scoped_feature_list; + scoped_feature_list.InitAndEnableFeature( + ash::features::kAndroidVpnAppsOnFlex); auto mock_hardware_checker_ = std::make_unique<MockArcRevenHardwareChecker>(); EXPECT_CALL(*mock_hardware_checker_, IsRevenDeviceCompatibleForArc(::testing::_)) @@ -1700,6 +1704,28 @@ arc_session_manager()->ExpandPropertyFilesAndReadSalt(); } +// Verify that the hardware check is not being run to install +// the arcvm DLC image when enable-android-vpn-apps-on-flex flag is off. +TEST_F(ArcSessionManagerTest, NoArcVmInstallWithFlagOff) { + cros_settings_test_helper_.InstallAttributes()->SetCloudManaged( + "example.com", "fake-device-id"); + base::CommandLine::ForCurrentProcess()->AppendSwitch( + ash::switches::kRevenBranding); + // Add arcvm-dlc command flag. + base::CommandLine::ForCurrentProcess()->AppendSwitch( + ash::switches::kEnableArcVmDlc); + // Disable enable-android-vpn-apps-on-flex chrome flag. + base::test::ScopedFeatureList scoped_feature_list; + scoped_feature_list.InitAndDisableFeature( + ash::features::kAndroidVpnAppsOnFlex); + auto mock_hardware_checker_ = std::make_unique<MockArcRevenHardwareChecker>(); + EXPECT_CALL(*mock_hardware_checker_, + IsRevenDeviceCompatibleForArc(::testing::_)) + .Times(0); + arc_session_manager()->reset_property_files_expansion_result(); + arc_session_manager()->ExpandPropertyFilesAndReadSalt(); +} + class ArcSessionManagerArcAlwaysStartTest : public ArcSessionManagerTest { public: ArcSessionManagerArcAlwaysStartTest() = default;
diff --git a/chrome/browser/ash/boca/babelorca/caption_bubble_context_boca.cc b/chrome/browser/ash/boca/babelorca/caption_bubble_context_boca.cc index 8ee7236..32b5ada 100644 --- a/chrome/browser/ash/boca/babelorca/caption_bubble_context_boca.cc +++ b/chrome/browser/ash/boca/babelorca/caption_bubble_context_boca.cc
@@ -13,17 +13,13 @@ namespace ash::babelorca { CaptionBubbleContextBoca::CaptionBubbleContextBoca( - ::captions::OpenCaptionSettingsCallback callback, - bool translation_enabled) - : CaptionBubbleContextAsh(std::move(callback)), - translation_enabled_(translation_enabled) {} + ::captions::OpenCaptionSettingsCallback callback) + : CaptionBubbleContextAsh(std::move(callback)) {} CaptionBubbleContextBoca::~CaptionBubbleContextBoca() = default; const std::string CaptionBubbleContextBoca::GetSessionId() const { - return translation_enabled_ - ? ::captions::CaptionBubbleModel::kBocaWithTranslationSessionId - : ::captions::CaptionBubbleModel::kBocaNoTranslationSessionId; + return ::captions::CaptionBubbleModel::kBocaWithTranslationSessionId; } } // namespace ash::babelorca
diff --git a/chrome/browser/ash/boca/babelorca/caption_bubble_context_boca.h b/chrome/browser/ash/boca/babelorca/caption_bubble_context_boca.h index 063c399..dca199865 100644 --- a/chrome/browser/ash/boca/babelorca/caption_bubble_context_boca.h +++ b/chrome/browser/ash/boca/babelorca/caption_bubble_context_boca.h
@@ -12,17 +12,14 @@ namespace ash::babelorca { class CaptionBubbleContextBoca : public ash::captions::CaptionBubbleContextAsh { public: - CaptionBubbleContextBoca(::captions::OpenCaptionSettingsCallback callback, - bool translation_enabled); + explicit CaptionBubbleContextBoca( + ::captions::OpenCaptionSettingsCallback callback); ~CaptionBubbleContextBoca() override; CaptionBubbleContextBoca(const CaptionBubbleContextBoca&) = delete; CaptionBubbleContextBoca& operator=(const CaptionBubbleContextBoca&) = delete; // ::captions::CaptionBubbleContext: const std::string GetSessionId() const override; - - private: - bool translation_enabled_ = false; }; } // namespace ash::babelorca
diff --git a/chrome/browser/ash/boca/boca_manager.cc b/chrome/browser/ash/boca/boca_manager.cc index d3d6818ff0..2851a797 100644 --- a/chrome/browser/ash/boca/boca_manager.cc +++ b/chrome/browser/ash/boca/boca_manager.cc
@@ -47,14 +47,13 @@ bool is_consumer) { // Passing `DoNothing` since we do not currently show settings for BabelOrca. auto caption_bubble_context = - std::make_unique<babelorca::CaptionBubbleContextBoca>( - base::DoNothing(), /*translation_enabled=*/is_consumer); + std::make_unique<babelorca::CaptionBubbleContextBoca>(base::DoNothing()); + auto babel_orca_translator = + std::make_unique<babelorca::BabelOrcaCaptionTranslator>( + std::make_unique<BabelOrcaTranslationDispatcherImpl>( + std::make_unique<::captions::TranslationDispatcher>( + google_apis::GetBocaAPIKey(), profile))); if (is_consumer) { - auto babel_orca_translator = - std::make_unique<babelorca::BabelOrcaCaptionTranslator>( - std::make_unique<BabelOrcaTranslationDispatcherImpl>( - std::make_unique<::captions::TranslationDispatcher>( - google_apis::GetBocaAPIKey(), profile))); const AccountId& account_id = ash::BrowserContextHelper::Get() ->GetUserByBrowserContext(profile) ->GetAccountId(); @@ -78,7 +77,8 @@ IdentityManagerFactory::GetForProfile(profile), profile->GetURLLoaderFactory(), ::captions::LiveCaptionControllerFactory::GetForProfile(profile), - std::move(caption_bubble_context), std::move(speech_recognizer)); + std::move(caption_bubble_context), std::move(speech_recognizer), + std::move(babel_orca_translator), profile->GetPrefs()); } } // namespace
diff --git a/chrome/browser/ash/chromebox_for_meetings/browser/cfm_memory_details.cc b/chrome/browser/ash/chromebox_for_meetings/browser/cfm_memory_details.cc index a1fdfac..8977191 100644 --- a/chrome/browser/ash/chromebox_for_meetings/browser/cfm_memory_details.cc +++ b/chrome/browser/ash/chromebox_for_meetings/browser/cfm_memory_details.cc
@@ -137,7 +137,7 @@ // needed if (const extensions::Extension* extension = extensions::ProcessMap::Get(host->GetBrowserContext()) - ->GetEnabledExtensionByProcessID(host->GetID())) { + ->GetEnabledExtensionByProcessID(host->GetDeprecatedID())) { proc_mem_info->extension_info.push_back(mojom::ExtensionData::New( extension->name(), extension->GetVersionForDisplay(), extension->id(), extension->hashed_id().value(), extension->description()));
diff --git a/chrome/browser/ash/extensions/file_manager/private_api_file_system.cc b/chrome/browser/ash/extensions/file_manager/private_api_file_system.cc index ea09d7f4..fc4f9dd 100644 --- a/chrome/browser/ash/extensions/file_manager/private_api_file_system.cc +++ b/chrome/browser/ash/extensions/file_manager/private_api_file_system.cc
@@ -312,7 +312,8 @@ ExtensionFunction::ResponseAction FileManagerPrivateEnableExternalFileSchemeFunction::Run() { ChildProcessSecurityPolicy::GetInstance()->GrantRequestScheme( - render_frame_host()->GetProcess()->GetID(), content::kExternalFileScheme); + render_frame_host()->GetProcess()->GetDeprecatedID(), + content::kExternalFileScheme); return RespondNow(NoArguments()); } @@ -352,8 +353,9 @@ backend->GrantFileAccessToOrigin(url::Origin::Create(source_url()), file_system_url.virtual_path()); content::ChildProcessSecurityPolicy::GetInstance() - ->GrantCreateReadWriteFile(render_frame_host()->GetProcess()->GetID(), - file_system_url.path()); + ->GrantCreateReadWriteFile( + render_frame_host()->GetProcess()->GetDeprecatedID(), + file_system_url.path()); } } return RespondNow(NoArguments());
diff --git a/chrome/browser/ash/file_manager/file_browser_handlers.cc b/chrome/browser/ash/file_manager/file_browser_handlers.cc index 2b6b690a..bc72198 100644 --- a/chrome/browser/ash/file_manager/file_browser_handlers.cc +++ b/chrome/browser/ash/file_manager/file_browser_handlers.cc
@@ -275,7 +275,7 @@ return; } - int handler_pid = context_info->render_process_host->GetID(); + int handler_pid = context_info->render_process_host->GetDeprecatedID(); if (handler_pid <= 0) { ExecuteDoneOnUIThread(false, "No app available"); return;
diff --git a/chrome/browser/ash/fileapi/external_file_url_loader_factory_unittest.cc b/chrome/browser/ash/fileapi/external_file_url_loader_factory_unittest.cc index 1f83e33..ab47572 100644 --- a/chrome/browser/ash/fileapi/external_file_url_loader_factory_unittest.cc +++ b/chrome/browser/ash/fileapi/external_file_url_loader_factory_unittest.cc
@@ -212,7 +212,7 @@ : public ExternalFileURLLoaderFactoryTest { protected: int render_process_host_id() override { - return render_process_host()->GetID(); + return render_process_host()->GetDeprecatedID(); } };
diff --git a/chrome/browser/ash/magic_boost/magic_boost_state_ash.cc b/chrome/browser/ash/magic_boost/magic_boost_state_ash.cc index 3eb0357..2ad9541 100644 --- a/chrome/browser/ash/magic_boost/magic_boost_state_ash.cc +++ b/chrome/browser/ash/magic_boost/magic_boost_state_ash.cc
@@ -161,10 +161,13 @@ UpdateMagicBoostEnabled(enabled); - // Update both HMR and Orca accordingly when `kMagicBoostEnabled` is changed. + // Update both HMR, Orca and Lobster accordingly when `kMagicBoostEnabled` is + // changed. AsyncWriteHMREnabled(enabled); pref_change_registrar_->prefs()->SetBoolean(ash::prefs::kOrcaEnabled, enabled); + pref_change_registrar_->prefs()->SetBoolean(ash::prefs::kLobsterEnabled, + enabled); } void MagicBoostStateAsh::OnHMREnabledUpdated() {
diff --git a/chrome/browser/ash/magic_boost/magic_boost_state_ash_unittest.cc b/chrome/browser/ash/magic_boost/magic_boost_state_ash_unittest.cc index 9dd92803..d617da8 100644 --- a/chrome/browser/ash/magic_boost/magic_boost_state_ash_unittest.cc +++ b/chrome/browser/ash/magic_boost/magic_boost_state_ash_unittest.cc
@@ -108,6 +108,7 @@ // Both HMR and Orca should be disabled when `kMagicBoostEnabled` is false. EXPECT_FALSE(MagicBoostState::Get()->hmr_enabled().value()); EXPECT_FALSE(prefs()->GetBoolean(ash::prefs::kOrcaEnabled)); + EXPECT_FALSE(prefs()->GetBoolean(ash::prefs::kLobsterEnabled)); // The observer class should get a notification when the pref value // changes. @@ -119,6 +120,7 @@ // Both HMR and Orca should be enabled when `kMagicBoostEnabled` is true. EXPECT_TRUE(MagicBoostState::Get()->hmr_enabled().value()); EXPECT_TRUE(prefs()->GetBoolean(ash::prefs::kOrcaEnabled)); + EXPECT_TRUE(prefs()->GetBoolean(ash::prefs::kLobsterEnabled)); // The observer class should get a notification when the pref value // changes.
diff --git a/chrome/browser/ash/policy/core/device_policy_decoder.cc b/chrome/browser/ash/policy/core/device_policy_decoder.cc index 6a007c1..e65612c5 100644 --- a/chrome/browser/ash/policy/core/device_policy_decoder.cc +++ b/chrome/browser/ash/policy/core/device_policy_decoder.cc
@@ -2010,6 +2010,18 @@ } } + if (policy.has_devicepowerbatterychargingoptimization()) { + const em::IntegerPolicyProto& container( + policy.devicepowerbatterychargingoptimization()); + if (container.has_value()) { + if (auto value = DecodeIntegerValue(container.value())) { + policies->Set(key::kDevicePowerBatteryChargingOptimization, + POLICY_LEVEL_MANDATORY, POLICY_SCOPE_MACHINE, + POLICY_SOURCE_CLOUD, std::move(*value), nullptr); + } + } + } + if (policy.has_device_usb_power_share()) { const em::DeviceUsbPowerShareProto& container( policy.device_usb_power_share());
diff --git a/chrome/browser/ash/policy/core/device_policy_decoder_unittest.cc b/chrome/browser/ash/policy/core/device_policy_decoder_unittest.cc index 5adf50e..b88b735f 100644 --- a/chrome/browser/ash/policy/core/device_policy_decoder_unittest.cc +++ b/chrome/browser/ash/policy/core/device_policy_decoder_unittest.cc
@@ -943,4 +943,23 @@ kInvalidJsonParsingErrorPrefix)); } +TEST_F(DevicePolicyDecoderTest, DevicePowerBatteryChargingOptimization) { + em::ChromeDeviceSettingsProto device_policy; + + // Test that the policy is not set by default. + DecodeUnsetDevicePolicyTestHelper( + device_policy, key::kDevicePowerBatteryChargingOptimization); + + // Test with a valid value (e.g., Adaptive charging, value = 2). + // The specific value doesn't matter, as we're testing the decoding logic. + // Test with Adaptive charging (value = 2) + int64_t charging_optimization_value = 2; + device_policy.mutable_devicepowerbatterychargingoptimization()->set_value( + charging_optimization_value); + + base::Value expected_value(static_cast<int>(charging_optimization_value)); + DecodeDevicePolicyTestHelper(device_policy, + key::kDevicePowerBatteryChargingOptimization, + std::move(expected_value)); +} } // namespace policy
diff --git a/chrome/browser/ash/policy/dlp/dlp_content_manager_ash_browsertest.cc b/chrome/browser/ash/policy/dlp/dlp_content_manager_ash_browsertest.cc index a8eeac9..5e2016c 100644 --- a/chrome/browser/ash/policy/dlp/dlp_content_manager_ash_browsertest.cc +++ b/chrome/browser/ash/policy/dlp/dlp_content_manager_ash_browsertest.cc
@@ -119,7 +119,7 @@ std::string requested_video_device_id, blink::mojom::MediaStreamType video_type) { return content::MediaStreamRequest( - web_contents->GetPrimaryMainFrame()->GetProcess()->GetID(), + web_contents->GetPrimaryMainFrame()->GetProcess()->GetDeprecatedID(), web_contents->GetPrimaryMainFrame()->GetRoutingID(), /*page_request_id=*/0, url::Origin::Create(GURL(kExampleUrl)), /*user_gesture=*/false, blink::MEDIA_GENERATE_STREAM, @@ -967,7 +967,9 @@ content::DesktopMediaID::kFakeId); const std::string requested_video_device_id = content::DesktopStreamsRegistry::GetInstance()->RegisterStream( - web_contents->GetPrimaryMainFrame()->GetProcess()->GetID(), + web_contents->GetPrimaryMainFrame() + ->GetProcess() + ->GetDeprecatedID(), web_contents->GetPrimaryMainFrame()->GetRoutingID(), url::Origin::Create(GURL(kExampleUrl)), media_id, content::DesktopStreamRegistryType::kRegistryStreamTypeDesktop); @@ -991,7 +993,8 @@ content::WebContents* web_contents, bool expect_allowed = true, bool expect_warning = false) { - int process_id = web_contents->GetPrimaryMainFrame()->GetProcess()->GetID(); + int process_id = + web_contents->GetPrimaryMainFrame()->GetProcess()->GetDeprecatedID(); int frame_id = web_contents->GetPrimaryMainFrame()->GetRoutingID(); const content::DesktopMediaID media_id( content::DesktopMediaID::TYPE_WEB_CONTENTS, @@ -1297,7 +1300,7 @@ content::DesktopMediaID::TYPE_WEB_CONTENTS, content::DesktopMediaID::kNullId, content::WebContentsMediaCaptureId( - web_contents->GetPrimaryMainFrame()->GetProcess()->GetID(), + web_contents->GetPrimaryMainFrame()->GetProcess()->GetDeprecatedID(), web_contents->GetPrimaryMainFrame()->GetRoutingID())); manager->OnScreenShareStarted(kLabel, {media_id}, kApplicationTitle, stop_cb_.Get(), state_change_cb_.Get(), @@ -1335,7 +1338,9 @@ content::DesktopMediaID::TYPE_WEB_CONTENTS, content::DesktopMediaID::kNullId, content::WebContentsMediaCaptureId( - new_web_contents->GetPrimaryMainFrame()->GetProcess()->GetID(), + new_web_contents->GetPrimaryMainFrame() + ->GetProcess() + ->GetDeprecatedID(), new_web_contents->GetPrimaryMainFrame()->GetRoutingID())); // Simulate changing the source to another tab. manager->OnScreenShareSourceChanging(
diff --git a/chrome/browser/ash/policy/dlp/dlp_content_manager_ash_unittest.cc b/chrome/browser/ash/policy/dlp/dlp_content_manager_ash_unittest.cc index 6c99f8a..217595e 100644 --- a/chrome/browser/ash/policy/dlp/dlp_content_manager_ash_unittest.cc +++ b/chrome/browser/ash/policy/dlp/dlp_content_manager_ash_unittest.cc
@@ -1180,7 +1180,7 @@ content::DesktopMediaID::TYPE_WEB_CONTENTS, content::DesktopMediaID::kNullId, content::WebContentsMediaCaptureId( - web_contents->GetPrimaryMainFrame()->GetProcess()->GetID(), + web_contents->GetPrimaryMainFrame()->GetProcess()->GetDeprecatedID(), web_contents->GetPrimaryMainFrame()->GetRoutingID())); GetManager()->CheckScreenShareRestriction(media_id, kApplicationName, cb.Get()); @@ -1239,7 +1239,7 @@ content::DesktopMediaID::TYPE_WEB_CONTENTS, content::DesktopMediaID::kNullId, content::WebContentsMediaCaptureId( - web_contents->GetPrimaryMainFrame()->GetProcess()->GetID(), + web_contents->GetPrimaryMainFrame()->GetProcess()->GetDeprecatedID(), web_contents->GetPrimaryMainFrame()->GetRoutingID())); // Warn restriction is enforced: allow and remember that the user proceeded. @@ -1293,7 +1293,7 @@ content::DesktopMediaID::TYPE_WEB_CONTENTS, content::DesktopMediaID::kNullId, content::WebContentsMediaCaptureId( - web_contents->GetPrimaryMainFrame()->GetProcess()->GetID(), + web_contents->GetPrimaryMainFrame()->GetProcess()->GetDeprecatedID(), web_contents->GetPrimaryMainFrame()->GetRoutingID())); // Warn restriction is enforced: reject since the user canceled.
diff --git a/chrome/browser/ash/policy/reporting/user_session_activity/BUILD.gn b/chrome/browser/ash/policy/reporting/user_session_activity/BUILD.gn index d3ee9254..f88dfd5 100644 --- a/chrome/browser/ash/policy/reporting/user_session_activity/BUILD.gn +++ b/chrome/browser/ash/policy/reporting/user_session_activity/BUILD.gn
@@ -59,3 +59,44 @@ "//testing/gmock:gmock", ] } + +source_set("browser_tests") { + testonly = true + + defines = [ "HAS_OUT_OF_PROC_TEST_RUNNER" ] + + sources = [ "user_session_activity_reporter_browsertest.cc" ] + + deps = [ + ":user_session_activity", + "//ash:ash", + "//ash/public/cpp:cpp", + "//base:base", + "//base/test:test_support", + "//chrome/browser/ash/login:login", + "//chrome/browser/ash/login:test_support", + "//chrome/browser/ash/login/lock:test_support", + "//chrome/browser/ash/login/session:test_support", + "//chrome/browser/ash/login/test:test_support", + "//chrome/browser/ash/policy/core:core", + "//chrome/browser/ash/policy/core:test_support", + "//chrome/browser/ash/policy/reporting:test_support", + "//chrome/browser/ash/profiles:profiles", + "//chrome/browser/ash/settings:settings", + "//chrome/browser/ash/settings:test_support", + "//chrome/browser/policy/messaging_layer/proto:user_session_activity_proto", + "//chrome/browser/ui:ui", + "//chrome/test:test_support", + "//chrome/test:test_support_ui", + "//chromeos/ash/components/dbus/session_manager:session_manager", + "//chromeos/ash/components/login/auth:auth", + "//chromeos/ash/components/login/auth/public:authpublic", + "//chromeos/dbus/missive:test_support", + "//components/reporting/proto:record_constants", + "//components/reporting/proto:record_proto", + "//components/user_manager:user_manager", + "//content/test:test_support", + "//testing/gtest:gtest", + "//ui/base:base", + ] +}
diff --git a/chrome/browser/ash/policy/reporting/user_session_activity/user_session_activity_reporter.cc b/chrome/browser/ash/policy/reporting/user_session_activity/user_session_activity_reporter.cc index 3ed0801..e43ac12 100644 --- a/chrome/browser/ash/policy/reporting/user_session_activity/user_session_activity_reporter.cc +++ b/chrome/browser/ash/policy/reporting/user_session_activity/user_session_activity_reporter.cc
@@ -23,6 +23,7 @@ #include "chromeos/ash/components/settings/cros_settings_names.h" #include "components/account_id/account_id.h" #include "components/policy/core/common/device_local_account_type.h" +#include "components/reporting/proto/synced/record_constants.pb.h" #include "components/user_manager/user.h" #include "components/user_manager/user_manager.h" #include "components/user_manager/user_names.h" @@ -116,21 +117,41 @@ OnSessionEnd(SessionEndEvent_Reason_LOCK, active_user); } +void UserSessionActivityReporter::OnUnlocked() { + DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); + CHECK_CURRENTLY_ON(content::BrowserThread::UI); + const user_manager::User* active_user = + user_manager::UserManager::Get()->GetActiveUser(); + + OnSessionStart(SessionStartEvent_Reason_UNLOCK, active_user); +} + void UserSessionActivityReporter::ActiveUserChanged( user_manager::User* active_user) { DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); CHECK_CURRENTLY_ON(content::BrowserThread::UI); - // This user change could be a login, or an unlock. + // Handle logins. Otherwise, if the session is inactive and the device is + // locked, it means we are unlocking the device in a multi-user session and we + // should just return and let OnUnlocked() start the session. if (!IsSessionActive()) { - if (is_device_locked_) { - OnSessionStart(SessionStartEvent_Reason_UNLOCK, active_user); - } else { + if (!is_device_locked_) { OnSessionStart(SessionStartEvent_Reason_LOGIN, active_user); } return; } + // If user A locks device in a multi-user session and user B unlocks the + // device, both OnUnlocked() and ActiveUserChanged() are called but we only + // want OnUnlocked() to handle it. If ActiveUserChanged() is called first, the + // above if-statement will return since the session is not active. If + // OnUnlocked() is called first, the session will start and `session_user_` + // will be set to the current active user. Then when ActiveUserChanged() is + // called, the below if-statement will return. + if (active_user == session_user_) { + return; + } + // We are switching users in multi-user mode. // End session for the current user and start the session for the // next user.
diff --git a/chrome/browser/ash/policy/reporting/user_session_activity/user_session_activity_reporter.h b/chrome/browser/ash/policy/reporting/user_session_activity/user_session_activity_reporter.h index be2e1ed..97fe93c 100644 --- a/chrome/browser/ash/policy/reporting/user_session_activity/user_session_activity_reporter.h +++ b/chrome/browser/ash/policy/reporting/user_session_activity/user_session_activity_reporter.h
@@ -136,6 +136,10 @@ // Called when device is locked. void OnLocked() override; + // ManagedSessionService::Observer + // Called when device is unlocked. + void OnUnlocked() override; + private: // Starts the user session. Called by OnLogin() and OnUnlocked(). void OnSessionStart(reporting::SessionStartEvent::Reason reason,
diff --git a/chrome/browser/ash/policy/reporting/user_session_activity/user_session_activity_reporter_browsertest.cc b/chrome/browser/ash/policy/reporting/user_session_activity/user_session_activity_reporter_browsertest.cc new file mode 100644 index 0000000..0d93f93 --- /dev/null +++ b/chrome/browser/ash/policy/reporting/user_session_activity/user_session_activity_reporter_browsertest.cc
@@ -0,0 +1,231 @@ +// 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. + +#include "chrome/browser/ash/policy/reporting/user_session_activity/user_session_activity_reporter.h" + +#include <unistd.h> + +#include "ash/public/cpp/login_screen_test_api.h" +#include "ash/session/session_controller_impl.h" +#include "ash/shell.h" +#include "base/run_loop.h" +#include "base/test/scoped_feature_list.h" +#include "base/test/test_mock_time_task_runner.h" +#include "base/time/time.h" +#include "chrome/browser/ash/login/lock/screen_locker_tester.h" +#include "chrome/browser/ash/login/session/user_session_manager_test_api.h" +#include "chrome/browser/ash/login/test/login_manager_mixin.h" +#include "chrome/browser/ash/login/test/session_manager_state_waiter.h" +#include "chrome/browser/ash/policy/core/device_cloud_policy_manager_ash.h" +#include "chrome/browser/ash/policy/core/device_policy_cros_browser_test.h" +#include "chrome/browser/ash/profiles/profile_helper.h" +#include "chrome/browser/ash/settings/scoped_testing_cros_settings.h" +#include "chrome/browser/ash/settings/stub_cros_settings_provider.h" +#include "chrome/browser/policy/messaging_layer/proto/synced/user_session_activity.pb.h" +#include "chrome/browser/ui/browser.h" +#include "chrome/test/base/in_process_browser_test.h" +#include "chromeos/ash/components/dbus/session_manager/fake_session_manager_client.h" +#include "chromeos/ash/components/login/auth/public/user_context.h" +#include "chromeos/ash/components/login/auth/stub_authenticator_builder.h" +#include "chromeos/ash/components/settings/cros_settings_names.h" +#include "chromeos/dbus/missive/missive_client_test_observer.h" +#include "components/account_id/account_id.h" +#include "components/reporting/proto/synced/record.pb.h" +#include "components/reporting/proto/synced/record_constants.pb.h" +#include "components/user_manager/user_manager.h" +#include "components/user_manager/user_names.h" +#include "content/public/test/browser_test.h" +#include "testing/gmock/include/gmock/gmock.h" +#include "ui/base/user_activity/user_activity_detector.h" + +using chromeos::MissiveClientTestObserver; +using ::reporting::Destination; +using ::reporting::Priority; +using ::reporting::Record; +using ::reporting::UserSessionActivityRecord; + +namespace ash { + +class UserSessionActivityReporterBrowserTest + : public policy::DevicePolicyCrosBrowserTest { + public: + UserSessionActivityReporterBrowserTest( + const UserSessionActivityReporterBrowserTest&) = delete; + UserSessionActivityReporterBrowserTest& operator=( + const UserSessionActivityReporterBrowserTest&) = delete; + + ~UserSessionActivityReporterBrowserTest() override = default; + + protected: + UserSessionActivityReporterBrowserTest() { + login_manager_.set_session_restore_enabled(); + + scoped_feature_list_.InitAndEnableFeature( + ::policy::kEnableUserSessionActivityReporting); + } + + void SetUpOnMainThread() override { + login_manager_.SetShouldLaunchBrowser(true); + + FakeSessionManagerClient::Get()->set_supports_browser_restart(true); + + policy::DevicePolicyCrosBrowserTest::SetUpOnMainThread(); + } + + void LoginUser() { + const UserContext user_context = + LoginManagerMixin::CreateDefaultUserContext(test_user_); + + auto authenticator_builder = + std::make_unique<StubAuthenticatorBuilder>(user_context); + + test::UserSessionManagerTestApi(UserSessionManager::GetInstance()) + .InjectAuthenticatorBuilder(std::move(authenticator_builder)); + + const std::string& password = user_context.GetKey()->GetSecret(); + LoginScreenTestApi::SubmitPassword(test_user_.account_id, password, + /*check_if_submittable=*/true); + } + + const LoginManagerMixin::TestUserInfo test_user_{ + AccountId::FromUserEmailGaiaId(FakeGaiaMixin::kFakeUserEmail, + FakeGaiaMixin::kFakeUserGaiaId)}; + + LoginManagerMixin login_manager_{&mixin_host_, {test_user_}}; + + ScopedTestingCrosSettings scoped_testing_cros_settings_; + + base::test::ScopedFeatureList scoped_feature_list_; +}; + +IN_PROC_BROWSER_TEST_F(UserSessionActivityReporterBrowserTest, + ReportSessionActivity) { + // Enable policy. + scoped_testing_cros_settings_.device_settings()->SetBoolean( + kReportDeviceActivityTimes, true); + + MissiveClientTestObserver missive_observer( + Destination::USER_SESSION_ACTIVITY); + + // Start session by logging in a user. + LoginUser(); + test::WaitForPrimaryUserSessionStart(); + + // End session by logging out. + Shell::Get()->session_controller()->RequestSignOut(); + base::RunLoop().RunUntilIdle(); + + // Verify that a record is enqueued when session ends. + EXPECT_TRUE(missive_observer.HasNewEnqueuedRecord()); + const auto [priority, enqueued_record] = + missive_observer.GetNextEnqueuedRecord(); + EXPECT_EQ(enqueued_record.source_info().source(), + ::reporting::SourceInfo::ASH); + + UserSessionActivityRecord activity_record; + ASSERT_TRUE(activity_record.ParseFromString(enqueued_record.data())); + + EXPECT_TRUE(activity_record.has_unaffiliated_user()); + EXPECT_TRUE(activity_record.unaffiliated_user().has_user_id_num()); + EXPECT_TRUE(activity_record.has_session_end()); + EXPECT_EQ(activity_record.session_end().reason(), + ::reporting::SessionEndEvent_Reason_LOGOUT); +} + +IN_PROC_BROWSER_TEST_F(UserSessionActivityReporterBrowserTest, + ReportSessionActivityWhenUserLocksDevice) { + // Enable policy. + scoped_testing_cros_settings_.device_settings()->SetBoolean( + kReportDeviceActivityTimes, true); + + MissiveClientTestObserver missive_observer( + Destination::USER_SESSION_ACTIVITY); + + // Trigger a session start. + LoginUser(); + test::WaitForPrimaryUserSessionStart(); + + // Lock the screen. This triggers a session end. + const AccountId account_id = + user_manager::UserManager::Get()->GetPrimaryUser()->GetAccountId(); + ScreenLockerTester screen_locker_tester; + screen_locker_tester.Lock(); + ASSERT_TRUE(screen_locker_tester.IsLocked()); + + // Verify that a record is enqueued when session ends. + EXPECT_TRUE(missive_observer.HasNewEnqueuedRecord()); + const auto [priority, enqueued_record] = + missive_observer.GetNextEnqueuedRecord(); + + EXPECT_EQ(enqueued_record.source_info().source(), + ::reporting::SourceInfo::ASH); + + UserSessionActivityRecord activity_record; + ASSERT_TRUE(activity_record.ParseFromString(enqueued_record.data())); + + // Verify the record contains the correct data. + EXPECT_TRUE(activity_record.has_session_start()); + EXPECT_EQ(activity_record.session_start().reason(), + ::reporting::SessionStartEvent_Reason_LOGIN); + EXPECT_TRUE(activity_record.has_session_end()); + EXPECT_EQ(activity_record.session_end().reason(), + ::reporting::SessionEndEvent_Reason_LOCK); + EXPECT_TRUE(activity_record.has_unaffiliated_user()); + EXPECT_TRUE(activity_record.unaffiliated_user().has_user_id_num()); + + // Start session by unlocking device. + screen_locker_tester.SetUnlockPassword(account_id, "pass"); + screen_locker_tester.UnlockWithPassword(account_id, "pass"); + screen_locker_tester.WaitForUnlock(); + + // End session by logging out. + Shell::Get()->session_controller()->RequestSignOut(); + base::RunLoop().RunUntilIdle(); + + // Verify that a second record is enqueued when the second session ends. + EXPECT_TRUE(missive_observer.HasNewEnqueuedRecord()); + const auto [second_priority, second_enqueued_record] = + missive_observer.GetNextEnqueuedRecord(); + + EXPECT_EQ(second_enqueued_record.source_info().source(), + ::reporting::SourceInfo::ASH); + + UserSessionActivityRecord second_activity_record; + ASSERT_TRUE( + second_activity_record.ParseFromString(second_enqueued_record.data())); + + // Verify the record contains the correct data. + EXPECT_TRUE(second_activity_record.has_session_start()); + EXPECT_EQ(second_activity_record.session_start().reason(), + ::reporting::SessionStartEvent_Reason_UNLOCK); + EXPECT_TRUE(second_activity_record.has_session_end()); + EXPECT_EQ(second_activity_record.session_end().reason(), + ::reporting::SessionEndEvent_Reason_LOGOUT); + EXPECT_TRUE(second_activity_record.has_unaffiliated_user()); + EXPECT_TRUE(second_activity_record.unaffiliated_user().has_user_id_num()); +} + +IN_PROC_BROWSER_TEST_F(UserSessionActivityReporterBrowserTest, + DoesNotReportWhenPolicyIsDisabled) { + // Turn off policy + scoped_testing_cros_settings_.device_settings()->SetBoolean( + kReportDeviceActivityTimes, false); + + MissiveClientTestObserver missive_observer( + Destination::USER_SESSION_ACTIVITY); + + // Trigger a session start. + LoginUser(); + test::WaitForPrimaryUserSessionStart(); + + // Lock the screen. This triggers a session end. + ScreenLockerTester screen_locker_tester; + screen_locker_tester.Lock(); + ASSERT_TRUE(screen_locker_tester.IsLocked()); + + // Verify no record is enqueued when session ends. + EXPECT_FALSE(missive_observer.HasNewEnqueuedRecord()); +} + +} // namespace ash
diff --git a/chrome/browser/ash/policy/reporting/user_session_activity/user_session_activity_reporter_delegate.cc b/chrome/browser/ash/policy/reporting/user_session_activity/user_session_activity_reporter_delegate.cc index e518264..938ea67 100644 --- a/chrome/browser/ash/policy/reporting/user_session_activity/user_session_activity_reporter_delegate.cc +++ b/chrome/browser/ash/policy/reporting/user_session_activity/user_session_activity_reporter_delegate.cc
@@ -58,13 +58,13 @@ bool UserSessionActivityReporterDelegate::IsUserActive( const ash::power::ml::IdleEventNotifier::ActivityData& activity_data) const { - // Calculate local time of day because that's how - // `activity_data.last_activity_time_of_day` is calculated. - const base::TimeDelta local_time_of_day_now = - base::Time::Now() - base::Time::Now().LocalMidnight(); + // Calculate current time the same way + // activity_data.last_activity_time_of_day` is calculated. + const base::Time time_now = base::Time::Now(); + const base::TimeDelta local_time = time_now - time_now.LocalMidnight(); const base::TimeDelta time_since_last_activity = - local_time_of_day_now - activity_data.last_activity_time_of_day; + local_time - activity_data.last_activity_time_of_day; return (time_since_last_activity < kActiveIdleStateCollectionFrequency) || activity_data.is_video_playing;
diff --git a/chrome/browser/ash/policy/reporting/user_session_activity/user_session_activity_reporter_unittest.cc b/chrome/browser/ash/policy/reporting/user_session_activity/user_session_activity_reporter_unittest.cc index 3b6575b5..2c14535 100644 --- a/chrome/browser/ash/policy/reporting/user_session_activity/user_session_activity_reporter_unittest.cc +++ b/chrome/browser/ash/policy/reporting/user_session_activity/user_session_activity_reporter_unittest.cc
@@ -106,6 +106,10 @@ void OnLocked(UserSessionActivityReporter* reporter) { reporter->OnLocked(); } + void OnUnlocked(UserSessionActivityReporter* reporter) { + reporter->OnUnlocked(); + } + user_manager::TypedScopedUserManager<ash::FakeChromeUserManager> fake_user_manager_; @@ -193,7 +197,7 @@ OnLocked(reporter.get()); // Start session by unlocking device. - ActiveUserChanged(reporter.get(), user); + OnUnlocked(reporter.get()); // End session by logging out. OnSessionTerminationStarted(reporter.get(), user);
diff --git a/chrome/browser/ash/power/renderer_freezer.cc b/chrome/browser/ash/power/renderer_freezer.cc index 3b1b125..e622e98 100644 --- a/chrome/browser/ash/power/renderer_freezer.cc +++ b/chrome/browser/ash/power/renderer_freezer.cc
@@ -58,7 +58,7 @@ return; } - const int rph_id = rph->GetID(); + const int rph_id = rph->GetDeprecatedID(); if (gcm_extension_processes_.find(rph_id) != gcm_extension_processes_.end()) { LOG(ERROR) << "Received duplicate notifications about the creation of a " @@ -103,7 +103,7 @@ void RendererFreezer::RenderProcessExited( content::RenderProcessHost* host, const content::ChildProcessTerminationInfo& info) { - auto it = gcm_extension_processes_.find(host->GetID()); + auto it = gcm_extension_processes_.find(host->GetDeprecatedID()); if (it == gcm_extension_processes_.end()) { LOG(ERROR) << "Received unrequested RenderProcessExited message"; return; @@ -120,7 +120,7 @@ void RendererFreezer::RenderProcessHostDestroyed( content::RenderProcessHost* host) { - auto it = gcm_extension_processes_.find(host->GetID()); + auto it = gcm_extension_processes_.find(host->GetDeprecatedID()); if (it == gcm_extension_processes_.end()) { LOG(ERROR) << "Received unrequested RenderProcessHostDestroyed message"; return;
diff --git a/chrome/browser/ash/power/renderer_freezer_unittest.cc b/chrome/browser/ash/power/renderer_freezer_unittest.cc index 10b044a1..70bdd28a 100644 --- a/chrome/browser/ash/power/renderer_freezer_unittest.cc +++ b/chrome/browser/ash/power/renderer_freezer_unittest.cc
@@ -265,7 +265,7 @@ // Fake that the RenderProcessHost is hosting the gcm app. extensions::ProcessMap::Get(profile_)->Insert(extension->id(), - rph->GetID()); + rph->GetDeprecatedID()); SimulateRenderProcessHostCreated(rph); }
diff --git a/chrome/browser/background/background_contents.cc b/chrome/browser/background/background_contents.cc index 1037078..c457e25 100644 --- a/chrome/browser/background/background_contents.cc +++ b/chrome/browser/background/background_contents.cc
@@ -44,7 +44,7 @@ WebContents::CreateParams create_params(profile_, std::move(site_instance)); create_params.opener_render_process_id = - opener ? opener->GetProcess()->GetID() : MSG_ROUTING_NONE; + opener ? opener->GetProcess()->GetDeprecatedID() : MSG_ROUTING_NONE; create_params.opener_render_frame_id = opener ? opener->GetRoutingID() : MSG_ROUTING_NONE;
diff --git a/chrome/browser/badging/badge_manager.cc b/chrome/browser/badging/badge_manager.cc index 7c8ea42..3948713 100644 --- a/chrome/browser/badging/badge_manager.cc +++ b/chrome/browser/badging/badge_manager.cc
@@ -98,7 +98,7 @@ return; auto context = std::make_unique<FrameBindingContext>( - frame->GetProcess()->GetID(), frame->GetRoutingID()); + frame->GetProcess()->GetDeprecatedID(), frame->GetRoutingID()); badge_manager->receivers_.Add(badge_manager, std::move(receiver), std::move(context)); } @@ -125,7 +125,7 @@ return; auto context = std::make_unique<BadgeManager::ServiceWorkerBindingContext>( - service_worker_process_host->GetID(), info.scope); + service_worker_process_host->GetDeprecatedID(), info.scope); badge_manager->receivers_.Add(badge_manager, std::move(receiver), std::move(context));
diff --git a/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.cc b/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.cc index 7f819ba6..e300c295 100644 --- a/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.cc +++ b/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.cc
@@ -1125,7 +1125,7 @@ if (render_process_host->GetBrowserContext() == profile_ && render_process_host->IsInitializedAndNotDead()) { web_cache::WebCacheManager::GetInstance()->ClearCacheForProcess( - render_process_host->GetID()); + render_process_host->GetDeprecatedID()); } } }
diff --git a/chrome/browser/chrome_browser_interface_binders.cc b/chrome/browser/chrome_browser_interface_binders.cc index 9569917..ace43cd 100644 --- a/chrome/browser/chrome_browser_interface_binders.cc +++ b/chrome/browser/chrome_browser_interface_binders.cc
@@ -151,6 +151,7 @@ #else #include "chrome/browser/badging/badge_manager.h" #include "chrome/browser/new_tab_page/modules/file_suggestion/drive_suggestion.mojom.h" +#include "chrome/browser/new_tab_page/modules/v2/authentication/microsoft_auth.mojom.h" #include "chrome/browser/new_tab_page/modules/v2/calendar/google_calendar.mojom.h" #include "chrome/browser/new_tab_page/modules/v2/calendar/outlook_calendar.mojom.h" #include "chrome/browser/new_tab_page/modules/v2/most_relevant_tab_resumption/most_relevant_tab_resumption.mojom.h" @@ -1147,6 +1148,13 @@ ntp::calendar::mojom::OutlookCalendarPageHandler, NewTabPageUI>(map); } + if (base::FeatureList::IsEnabled( + ntp_features::kNtpMicrosoftAuthenticationModule)) { + RegisterWebUIControllerInterfaceBinder< + ntp::authentication::mojom::MicrosoftAuthPageHandler, NewTabPageUI>( + map); + } + #if BUILDFLAG(IS_CHROMEOS_ASH) RegisterWebUIControllerInterfaceBinder< ash::mojom::HidPreservingBluetoothStateController,
diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/chrome_content_browser_client.cc index dacd9afb..6255527b 100644 --- a/chrome/browser/chrome_content_browser_client.cc +++ b/chrome/browser/chrome_content_browser_client.cc
@@ -1937,8 +1937,9 @@ #if BUILDFLAG(ENABLE_NACL) if (IsNaclAllowed() && !profile->IsSystemProfile()) { - host->AddFilter(new nacl::NaClHostMessageFilter( - host->GetID(), profile->IsOffTheRecord(), profile->GetPath())); + host->AddFilter(new nacl::NaClHostMessageFilter(host->GetDeprecatedID(), + profile->IsOffTheRecord(), + profile->GetPath())); } #endif @@ -2260,12 +2261,8 @@ return network::mojom::IPAddressSpace::kUnknown; } -bool ChromeContentBrowserClient::LogWebUICreated(const GURL& web_ui_url) { - return webui::LogWebUICreated(web_ui_url); -} - -bool ChromeContentBrowserClient::LogWebUIShown(const GURL& web_ui_url) { - return webui::LogWebUIShown(web_ui_url); +bool ChromeContentBrowserClient::LogWebUIUrl(const GURL& web_ui_url) { + return webui::LogWebUIUrl(web_ui_url); } bool ChromeContentBrowserClient::IsWebUIAllowedToMakeNetworkRequests( @@ -2378,7 +2375,7 @@ InstantServiceFactory::GetForProfile(profile); if (instant_service) { bool is_instant_process = - instant_service->IsInstantProcess(process_host->GetID()); + instant_service->IsInstantProcess(process_host->GetDeprecatedID()); bool should_be_in_instant_process = search::ShouldAssignURLToInstantRenderer(site_url, profile); if (is_instant_process || should_be_in_instant_process) @@ -2827,7 +2824,7 @@ InstantService* instant_service = InstantServiceFactory::GetForProfile(profile); if (instant_service && - instant_service->IsInstantProcess(process->GetID())) { + instant_service->IsInstantProcess(process->GetDeprecatedID())) { command_line->AppendSwitch(switches::kInstantProcess); } @@ -4240,7 +4237,7 @@ auto* process_map = extensions::ProcessMap::Get(profile); auto* registry = extensions::ExtensionRegistry::Get(profile); if (!URLHasExtensionPermission(process_map, registry, opener_url, - opener->GetProcess()->GetID(), + opener->GetProcess()->GetDeprecatedID(), APIPermissionID::kBackground)) { return false; } @@ -4262,7 +4259,7 @@ #if BUILDFLAG(ENABLE_GUEST_VIEW) if (extensions::WebViewRendererState::GetInstance()->IsGuest( - opener->GetProcess()->GetID())) { + opener->GetProcess()->GetDeprecatedID())) { return true; } #endif @@ -7692,10 +7689,10 @@ render_frame_host->GetMainFrame()->GetLastCommittedOrigin().GetURL(); auto* registry = extensions::ExtensionRegistry::Get(profile); if (url.SchemeIs(extensions::kExtensionScheme)) { - return URLHasExtensionPermission(extensions::ProcessMap::Get(profile), - registry, url, - render_frame_host->GetProcess()->GetID(), - APIPermissionID::kClipboardRead); + return URLHasExtensionPermission( + extensions::ProcessMap::Get(profile), registry, url, + render_frame_host->GetProcess()->GetDeprecatedID(), + APIPermissionID::kClipboardRead); } // or (4) origination from a process that at least might be running a
diff --git a/chrome/browser/chrome_content_browser_client.h b/chrome/browser/chrome_content_browser_client.h index 0f4a89ab..8c1f62998 100644 --- a/chrome/browser/chrome_content_browser_client.h +++ b/chrome/browser/chrome_content_browser_client.h
@@ -226,8 +226,7 @@ std::vector<std::string>* additional_schemes) override; network::mojom::IPAddressSpace DetermineAddressSpaceFromURL( const GURL& url) override; - bool LogWebUICreated(const GURL& web_ui_url) override; - bool LogWebUIShown(const GURL& web_ui_url) override; + bool LogWebUIUrl(const GURL& web_ui_url) override; bool IsWebUIAllowedToMakeNetworkRequests(const url::Origin& origin) override; bool IsHandledURL(const GURL& url) override; bool HasCustomSchemeHandler(content::BrowserContext* browser_context,
diff --git a/chrome/browser/chrome_content_browser_client_browsertest.cc b/chrome/browser/chrome_content_browser_client_browsertest.cc index 49c1d04ac..c4f467b 100644 --- a/chrome/browser/chrome_content_browser_client_browsertest.cc +++ b/chrome/browser/chrome_content_browser_client_browsertest.cc
@@ -222,7 +222,7 @@ InstantService* instant_service = InstantServiceFactory::GetForProfile(browser()->profile()); EXPECT_TRUE(instant_service->IsInstantProcess( - contents->GetPrimaryMainFrame()->GetProcess()->GetID())); + contents->GetPrimaryMainFrame()->GetProcess()->GetDeprecatedID())); EXPECT_EQ(contents->GetPrimaryMainFrame()->GetSiteInstance()->GetSiteURL(), ntp_site_instance->GetSiteURL()); @@ -230,7 +230,7 @@ // process. ASSERT_TRUE(ui_test_utils::NavigateToURL(browser(), isolated_url)); EXPECT_FALSE(instant_service->IsInstantProcess( - contents->GetPrimaryMainFrame()->GetProcess()->GetID())); + contents->GetPrimaryMainFrame()->GetProcess()->GetDeprecatedID())); EXPECT_EQ(contents->GetPrimaryMainFrame()->GetSiteInstance()->GetSiteURL(), site_instance->GetSiteURL()); } @@ -276,7 +276,7 @@ InstantService* instant_service = InstantServiceFactory::GetForProfile(browser()->profile()); EXPECT_TRUE(instant_service->IsInstantProcess( - ntp_tab->GetPrimaryMainFrame()->GetProcess()->GetID())); + ntp_tab->GetPrimaryMainFrame()->GetProcess()->GetDeprecatedID())); // Execute script that creates new window from ntp tab with // ntp.com/title1.html as target url. Host is same as remote-ntp host, yet @@ -298,7 +298,7 @@ EXPECT_EQ(generic_url, opened_tab->GetLastCommittedURL()); // New created tab should not reside in an Instant process. EXPECT_FALSE(instant_service->IsInstantProcess( - opened_tab->GetPrimaryMainFrame()->GetProcess()->GetID())); + opened_tab->GetPrimaryMainFrame()->GetProcess()->GetDeprecatedID())); } // Test that the System AccentColor keyword is supported ONLY for installed
diff --git a/chrome/browser/chrome_content_browser_client_receiver_bindings.cc b/chrome/browser/chrome_content_browser_client_receiver_bindings.cc index a05e11d95..49b4a2e 100644 --- a/chrome/browser/chrome_content_browser_client_receiver_bindings.cc +++ b/chrome/browser/chrome_content_browser_client_receiver_bindings.cc
@@ -224,7 +224,7 @@ base::BindRepeating( &NetBenchmarking::Create, loading_predictor ? loading_predictor->GetWeakPtr() : nullptr, - render_process_host->GetID()), + render_process_host->GetDeprecatedID()), ui_task_runner); } @@ -232,7 +232,8 @@ if (safe_browsing_service_) { registry->AddInterface<safe_browsing::mojom::SafeBrowsing>( base::BindRepeating( - &MaybeCreateSafeBrowsingForRenderer, render_process_host->GetID(), + &MaybeCreateSafeBrowsingForRenderer, + render_process_host->GetDeprecatedID(), base::BindRepeating( &ChromeContentBrowserClient::GetSafeBrowsingUrlCheckerDelegate, base::Unretained(this))), @@ -240,7 +241,7 @@ #if BUILDFLAG(ENABLE_EXTENSIONS) registry->AddInterface<safe_browsing::mojom::ExtensionWebRequestReporter>( base::BindRepeating(&MaybeCreateExtensionWebRequestReporterForRenderer, - render_process_host->GetID()), + render_process_host->GetDeprecatedID()), ui_task_runner); #endif // BUILDFLAG(ENABLE_EXTENSIONS) } @@ -259,7 +260,7 @@ return host->GetProcess().Duplicate(); return base::Process(); }, - render_process_host->GetID()); + render_process_host->GetDeprecatedID()); registry->AddInterface<mojom::ModuleEventSink>( base::BindRepeating( &ModuleEventSinkImpl::Create, std::move(get_process), @@ -276,7 +277,7 @@ base::BindRepeating( &performance_manager::mechanism::userspace_swap:: UserspaceSwapInitializationImpl::Create, - render_process_host->GetID()), + render_process_host->GetDeprecatedID()), performance_manager::PerformanceManager::GetTaskRunner()); } #endif // BUILDFLAG(IS_CHROMEOS) && defined(ARCH_CPU_X86_64) @@ -329,8 +330,8 @@ map->Add<spellcheck::mojom::SpellCheckHost>(base::BindRepeating( [](content::RenderFrameHost* frame_host, mojo::PendingReceiver<spellcheck::mojom::SpellCheckHost> receiver) { - SpellCheckHostChromeImpl::Create(frame_host->GetProcess()->GetID(), - std::move(receiver)); + SpellCheckHostChromeImpl::Create( + frame_host->GetProcess()->GetDeprecatedID(), std::move(receiver)); })); #endif // BUILDFLAG(ENABLE_SPELLCHECK) @@ -669,15 +670,15 @@ #if BUILDFLAG(ENABLE_SPELLCHECK) if (auto host_receiver = receiver.As<spellcheck::mojom::SpellCheckInitializationHost>()) { - SpellCheckInitializationHostImpl::Create(render_process_host->GetID(), - std::move(host_receiver)); + SpellCheckInitializationHostImpl::Create( + render_process_host->GetDeprecatedID(), std::move(host_receiver)); return; } #if BUILDFLAG(HAS_SPELLCHECK_PANEL) if (auto host_receiver = receiver.As<spellcheck::mojom::SpellCheckPanelHost>()) { - SpellCheckPanelHostImpl::Create(render_process_host->GetID(), + SpellCheckPanelHostImpl::Create(render_process_host->GetDeprecatedID(), std::move(host_receiver)); return; }
diff --git a/chrome/browser/chrome_content_browser_client_unittest.cc b/chrome/browser/chrome_content_browser_client_unittest.cc index 38f1ca0..de97b23 100644 --- a/chrome/browser/chrome_content_browser_client_unittest.cc +++ b/chrome/browser/chrome_content_browser_client_unittest.cc
@@ -1398,7 +1398,8 @@ command_line.AppendSwitchASCII(switches::kProcessType, switches::kRendererProcess); - client_.AppendExtraCommandLineSwitches(&command_line, process()->GetID()); + client_.AppendExtraCommandLineSwitches(&command_line, + process()->GetDeprecatedID()); return command_line; }
diff --git a/chrome/browser/chromeos/policy/dlp/dlp_content_manager.cc b/chrome/browser/chromeos/policy/dlp/dlp_content_manager.cc index a4849a0..fa89a72 100644 --- a/chrome/browser/chromeos/policy/dlp/dlp_content_manager.cc +++ b/chrome/browser/chromeos/policy/dlp/dlp_content_manager.cc
@@ -377,11 +377,11 @@ content::RenderFrameHost* main_frame = web_contents_->GetPrimaryMainFrame(); DCHECK(main_frame); source_callback_.Run( - content::DesktopMediaID( - content::DesktopMediaID::TYPE_WEB_CONTENTS, - content::DesktopMediaID::kNullId, - content::WebContentsMediaCaptureId( - main_frame->GetProcess()->GetID(), main_frame->GetRoutingID())), + content::DesktopMediaID(content::DesktopMediaID::TYPE_WEB_CONTENTS, + content::DesktopMediaID::kNullId, + content::WebContentsMediaCaptureId( + main_frame->GetProcess()->GetDeprecatedID(), + main_frame->GetRoutingID())), captured_surface_control_active_); // Start after source will be changed and notified. pending_start_on_source_change_ = true;
diff --git a/chrome/browser/chromeos/policy/dlp/dlp_content_manager_browsertest.cc b/chrome/browser/chromeos/policy/dlp/dlp_content_manager_browsertest.cc index 303ba9be..ec8c1c6d 100644 --- a/chrome/browser/chromeos/policy/dlp/dlp_content_manager_browsertest.cc +++ b/chrome/browser/chromeos/policy/dlp/dlp_content_manager_browsertest.cc
@@ -644,7 +644,7 @@ content::DesktopMediaID::TYPE_WEB_CONTENTS, content::DesktopMediaID::kNullId, content::WebContentsMediaCaptureId( - web_contents->GetPrimaryMainFrame()->GetProcess()->GetID(), + web_contents->GetPrimaryMainFrame()->GetProcess()->GetDeprecatedID(), web_contents->GetPrimaryMainFrame()->GetRoutingID())); DlpContentManager* manager = helper_->GetContentManager();
diff --git a/chrome/browser/chromeos/reporting/websites/website_events_observer.cc b/chrome/browser/chromeos/reporting/websites/website_events_observer.cc index 57248197..e34aadc 100644 --- a/chrome/browser/chromeos/reporting/websites/website_events_observer.cc +++ b/chrome/browser/chromeos/reporting/websites/website_events_observer.cc
@@ -61,7 +61,7 @@ ->mutable_website_opened_data(); website_opened_data->set_url(url_opened.spec()); website_opened_data->set_render_process_host_id( - web_contents->GetRenderViewHost()->GetProcess()->GetID()); + web_contents->GetRenderViewHost()->GetProcess()->GetDeprecatedID()); website_opened_data->set_render_frame_routing_id( web_contents->GetRenderViewHost()->GetRoutingID()); @@ -84,7 +84,7 @@ ->mutable_website_closed_data(); website_closed_data->set_url(url_closed.spec()); website_closed_data->set_render_process_host_id( - web_contents->GetRenderViewHost()->GetProcess()->GetID()); + web_contents->GetRenderViewHost()->GetProcess()->GetDeprecatedID()); website_closed_data->set_render_frame_routing_id( web_contents->GetRenderViewHost()->GetRoutingID());
diff --git a/chrome/browser/collaboration/messaging/DEPS b/chrome/browser/collaboration/messaging/DEPS index bfdc23d..0017ae1 100644 --- a/chrome/browser/collaboration/messaging/DEPS +++ b/chrome/browser/collaboration/messaging/DEPS
@@ -1,6 +1,8 @@ include_rules = [ # Minimize dependencies on internal code, but allow service construction. + "+components/collaboration/internal/messaging/data_sharing_change_notifier_impl.h", "+components/collaboration/internal/messaging/empty_messaging_backend_service.h", "+components/collaboration/internal/messaging/messaging_backend_service_impl.h", + "+components/collaboration/internal/messaging/storage/messaging_backend_store_impl.h", "+components/collaboration/internal/messaging/tab_group_change_notifier_impl.h", ]
diff --git a/chrome/browser/collaboration/messaging/messaging_backend_service_factory.cc b/chrome/browser/collaboration/messaging/messaging_backend_service_factory.cc index d041ca3..7580412a6 100644 --- a/chrome/browser/collaboration/messaging/messaging_backend_service_factory.cc +++ b/chrome/browser/collaboration/messaging/messaging_backend_service_factory.cc
@@ -14,8 +14,10 @@ #include "chrome/browser/profiles/profile.h" #include "chrome/browser/tab_group_sync/feature_utils.h" #include "chrome/browser/tab_group_sync/tab_group_sync_service_factory.h" +#include "components/collaboration/internal/messaging/data_sharing_change_notifier_impl.h" #include "components/collaboration/internal/messaging/empty_messaging_backend_service.h" #include "components/collaboration/internal/messaging/messaging_backend_service_impl.h" +#include "components/collaboration/internal/messaging/storage/messaging_backend_store_impl.h" #include "components/collaboration/internal/messaging/tab_group_change_notifier_impl.h" #include "components/data_sharing/public/features.h" #include "components/saved_tab_groups/public/features.h" @@ -70,9 +72,14 @@ data_sharing::DataSharingServiceFactory::GetForProfile(profile); auto tab_group_change_notifier = std::make_unique<TabGroupChangeNotifierImpl>(tab_group_sync_service); + auto data_sharing_change_notifier = + std::make_unique<DataSharingChangeNotifierImpl>(data_sharing_service); + auto messaging_backend_store = std::make_unique<MessagingBackendStoreImpl>(); auto service = std::make_unique<MessagingBackendServiceImpl>( - std::move(tab_group_change_notifier), tab_group_sync_service, + std::move(tab_group_change_notifier), + std::move(data_sharing_change_notifier), + std::move(messaging_backend_store), tab_group_sync_service, data_sharing_service); return std::move(service);
diff --git a/chrome/browser/controlled_frame/api/controlled_frame_internal_api.cc b/chrome/browser/controlled_frame/api/controlled_frame_internal_api.cc index 2cc4e223..830cde239 100644 --- a/chrome/browser/controlled_frame/api/controlled_frame_internal_api.cc +++ b/chrome/browser/controlled_frame/api/controlled_frame_internal_api.cc
@@ -34,7 +34,7 @@ Profile::FromBrowserContext(browser_context())->IsOffTheRecord(), extensions::MenuItem::ExtensionKey( /*extension_id=*/std::string(), - render_frame_host()->GetProcess()->GetID(), + render_frame_host()->GetProcess()->GetDeprecatedID(), render_frame_host()->GetRoutingID(), params->instance_id)); auto* menu_manager = extensions::MenuManager::Get(browser_context());
diff --git a/chrome/browser/controlled_frame/controlled_frame_apitest.cc b/chrome/browser/controlled_frame/controlled_frame_apitest.cc index 39ef0bc2..4733d916 100644 --- a/chrome/browser/controlled_frame/controlled_frame_apitest.cc +++ b/chrome/browser/controlled_frame/controlled_frame_apitest.cc
@@ -262,7 +262,8 @@ auto* menu_manager = extensions::MenuManager::Get(profile()); const extensions::MenuItem::ExtensionKey extension_key( - /*extension_id=*/"", web_view_guest->owner_rfh()->GetProcess()->GetID(), + /*extension_id=*/"", + web_view_guest->owner_rfh()->GetProcess()->GetDeprecatedID(), web_view_guest->owner_rfh()->GetRoutingID(), web_view_guest->view_instance_id()); EXPECT_EQ(0u, menu_manager->MenuItemsSize(extension_key)); @@ -305,7 +306,8 @@ CreateContextMenuItem(app_frame, kItem1ID, kItem1Title)); const extensions::MenuItem::ExtensionKey extension_key( - /*extension_id=*/"", web_view_guest->owner_rfh()->GetProcess()->GetID(), + /*extension_id=*/"", + web_view_guest->owner_rfh()->GetProcess()->GetDeprecatedID(), web_view_guest->owner_rfh()->GetRoutingID(), web_view_guest->view_instance_id()); ASSERT_EQ(1u, menu_manager->MenuItemsSize(extension_key)); @@ -339,7 +341,8 @@ EXPECT_EQ(kEvalSuccessStr, RemoveContextMenuItem(app_frame, kItem1ID)); const extensions::MenuItem::ExtensionKey extension_key( - /*extension_id=*/"", web_view_guest->owner_rfh()->GetProcess()->GetID(), + /*extension_id=*/"", + web_view_guest->owner_rfh()->GetProcess()->GetDeprecatedID(), web_view_guest->owner_rfh()->GetRoutingID(), web_view_guest->view_instance_id()); ASSERT_EQ(1u, menu_manager->MenuItemsSize(extension_key)); @@ -367,7 +370,8 @@ EXPECT_EQ(kEvalSuccessStr, RemoveAllContextMenuItems(app_frame)); const extensions::MenuItem::ExtensionKey extension_key( - /*extension_id=*/"", web_view_guest->owner_rfh()->GetProcess()->GetID(), + /*extension_id=*/"", + web_view_guest->owner_rfh()->GetProcess()->GetDeprecatedID(), web_view_guest->owner_rfh()->GetRoutingID(), web_view_guest->view_instance_id()); ASSERT_EQ(0u, menu_manager->MenuItemsSize(extension_key));
diff --git a/chrome/browser/controlled_frame/controlled_frame_menu_icon_loader_unittest.cc b/chrome/browser/controlled_frame/controlled_frame_menu_icon_loader_unittest.cc index b677c37b..19638d4 100644 --- a/chrome/browser/controlled_frame/controlled_frame_menu_icon_loader_unittest.cc +++ b/chrome/browser/controlled_frame/controlled_frame_menu_icon_loader_unittest.cc
@@ -113,7 +113,7 @@ ControlledFrameMenuIconLoader menu_icon_loader; extensions::MenuItem::ExtensionKey extension_key( - /*extension_id=*/"", main_rfh()->GetProcess()->GetID(), + /*extension_id=*/"", main_rfh()->GetProcess()->GetDeprecatedID(), main_rfh()->GetRoutingID(), kTestWebViewInstanceId); base::test::TestFuture<void> future; @@ -144,7 +144,7 @@ // is able to be accessed through GetIcon. Also check that the icon is removed // when the context item is removed. std::unique_ptr<extensions::MenuItem> item = CreateTestItem( - main_rfh()->GetProcess()->GetID(), main_rfh()->GetRoutingID(), + main_rfh()->GetProcess()->GetDeprecatedID(), main_rfh()->GetRoutingID(), /*webview_instance_id=*/kTestWebViewInstanceId, /*string_id=*/"test", /*visible=*/true); const extensions::MenuItem::Id& item_id = item->id(); @@ -176,7 +176,7 @@ extensions::MenuManager* menu_manager = CreateMenuManager(); std::unique_ptr<extensions::MenuItem> item = CreateTestItem( - main_rfh()->GetProcess()->GetID(), main_rfh()->GetRoutingID(), + main_rfh()->GetProcess()->GetDeprecatedID(), main_rfh()->GetRoutingID(), /*webview_instance_id=*/kTestWebViewInstanceId, /*string_id=*/"test", /*visible=*/true); const extensions::MenuItem::Id& item_id = item->id();
diff --git a/chrome/browser/data_sharing/BUILD.gn b/chrome/browser/data_sharing/BUILD.gn index c418dccb..cd6d27b0 100644 --- a/chrome/browser/data_sharing/BUILD.gn +++ b/chrome/browser/data_sharing/BUILD.gn
@@ -136,11 +136,15 @@ android_library("favicon_java") { resources_package = "org.chromium.chrome.browser.data_sharing" - sources = [ "android/java/src/org/chromium/chrome/browser/data_sharing/DataSharingFaviconProvider.java" ] + sources = [ + "android/java/src/org/chromium/chrome/browser/data_sharing/BulkFaviconUtil.java", + "android/java/src/org/chromium/chrome/browser/data_sharing/DataSharingFaviconProvider.java", + ] deps = [ "//base:callback_java", "//base:supplier_java", + "//base:tasks_java", "//chrome/browser/data_sharing:recent_activity_java", "//chrome/browser/profiles/android:java", "//chrome/browser/ui/android/favicon:java",
diff --git a/chrome/browser/data_sharing/android/java/src/org/chromium/chrome/browser/data_sharing/BulkFaviconUtil.java b/chrome/browser/data_sharing/android/java/src/org/chromium/chrome/browser/data_sharing/BulkFaviconUtil.java new file mode 100644 index 0000000..cdb70aa --- /dev/null +++ b/chrome/browser/data_sharing/android/java/src/org/chromium/chrome/browser/data_sharing/BulkFaviconUtil.java
@@ -0,0 +1,181 @@ +// 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.data_sharing; + +import android.content.Context; +import android.graphics.Bitmap; +import android.graphics.drawable.Drawable; + +import org.chromium.base.Callback; +import org.chromium.chrome.browser.profiles.Profile; +import org.chromium.chrome.browser.ui.favicon.FaviconHelper; +import org.chromium.chrome.browser.ui.favicon.FaviconUtils; +import org.chromium.components.browser_ui.widget.RoundedIconGenerator; +import org.chromium.url.GURL; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** Utility class for fetching favicons in bulk. */ +class BulkFaviconUtil { + + private static final class FaviconFetchRequest { + private final int mExpectedIcons; + private final Callback<Map<Integer, Bitmap>> mFaviconCallback; + private final Map<Integer, Bitmap> mFavicons = new HashMap<>(); + + /** + * @param callback The callback to be called when all favicons are fetched. + * @param expectedIcons The number of favicons expected to be fetched. + */ + FaviconFetchRequest(Callback<Map<Integer, Bitmap>> callback, int expectedIcons) { + mFaviconCallback = callback; + mExpectedIcons = expectedIcons; + if (mExpectedIcons == 0) { + mFaviconCallback.onResult(mFavicons); + } + } + + void onFaviconFetched(Integer index, Bitmap icon) { + mFavicons.put(index, icon); + if (mFavicons.size() == mExpectedIcons) { + mFaviconCallback.onResult(mFavicons); + } + } + } + + private FaviconHelper mFaviconHelper; + private FaviconHelper.DefaultFaviconHelper mDefaultFaviconHelper; + private RoundedIconGenerator mRoundedIconGenerator; + + BulkFaviconUtil() {} + + /** + * Fetches favicons for the given list of URLs. + * + * @param context The context for fetching fallback icon resources. + * @param profile The profile to use for fetching favicons. + * @param webPageUrlList The list of URLs to fetch favicons for. + * @param size The display size of the favicons to fetch. + * @param faviconCallback The callback to be called when all favicons are fetched. + */ + void fetchAsBitmap( + Context context, + Profile profile, + List<GURL> webPageUrlList, + int size, + Callback<List<Bitmap>> faviconCallback) { + Callback<Map<Integer, Bitmap>> addFallback = + (faviconMap) -> { + List<Bitmap> results = new ArrayList<>(); + for (int i = 0; i < faviconMap.size(); ++i) { + Bitmap favicon = faviconMap.get(i); + if (favicon == null) { + favicon = + getDefaultFaviconHelper() + .getDefaultFaviconBitmap( + context, + webPageUrlList.get(i), + // TODO(ssid): set the right mode. + /* useDarkIcon= */ true); + } + results.add(favicon); + } + faviconCallback.onResult(results); + }; + + fetchRawBitmaps(profile, webPageUrlList, size, addFallback); + } + + /** + * Fetches favicons for the given list of URLs as Drawables. + * + * @param context The context for fetching fallback icon resources. + * @param profile The profile to use for fetching favicons. + * @param webPageUrlList The list of webpage URLs to fetch favicons for. + * @param size The display size of the favicons to fetch. + * @param faviconCallback The callback to be called when all favicons are fetched. + */ + void fetchAsDrawable( + Context context, + Profile profile, + List<GURL> webPageUrlList, + int size, + Callback<List<Drawable>> faviconCallback) { + if (mRoundedIconGenerator == null) { + mRoundedIconGenerator = FaviconUtils.createCircularIconGenerator(context); + } + Callback<Map<Integer, Bitmap>> addFallback = + (faviconMap) -> { + List<Drawable> results = new ArrayList<>(); + for (int i = 0; i < faviconMap.size(); ++i) { + Drawable favicon = + FaviconUtils.getIconDrawableWithFilter( + faviconMap.get(i), + webPageUrlList.get(i), + mRoundedIconGenerator, + getDefaultFaviconHelper(), + context, + size); + results.add(favicon); + } + faviconCallback.onResult(results); + }; + + fetchRawBitmaps(profile, webPageUrlList, size, addFallback); + } + + /** Fetches favicons for the given list of URLs as Bitmaps without fallback. */ + private void fetchRawBitmaps( + Profile profile, + List<GURL> webPageUrlList, + int size, + Callback<Map<Integer, Bitmap>> faviconCallback) { + FaviconFetchRequest request = + new FaviconFetchRequest(faviconCallback, webPageUrlList.size()); + for (int i = 0; i < webPageUrlList.size(); ++i) { + Integer index = i; + getFaviconHelper() + .getForeignFaviconImageForURL( + profile, + webPageUrlList.get(i), + size, + (Bitmap bitmap, GURL url) -> { + request.onFaviconFetched(index, bitmap); + }); + } + } + + /** Destroys the favicon helper. */ + void destroy() { + if (mFaviconHelper != null) { + mFaviconHelper.destroy(); + } + } + + void setRoundedIconGeneratorForTesting(RoundedIconGenerator generator) { + mRoundedIconGenerator = generator; + } + + void setFaviconHelperForTesting(FaviconHelper helper) { + mFaviconHelper = helper; + } + + private FaviconHelper.DefaultFaviconHelper getDefaultFaviconHelper() { + if (mDefaultFaviconHelper == null) { + mDefaultFaviconHelper = new FaviconHelper.DefaultFaviconHelper(); + } + return mDefaultFaviconHelper; + } + + private FaviconHelper getFaviconHelper() { + if (mFaviconHelper == null) { + mFaviconHelper = new FaviconHelper(); + } + return mFaviconHelper; + } +}
diff --git a/chrome/browser/data_sharing/android/java/src/org/chromium/chrome/browser/data_sharing/BulkFaviconUtilUnitTest.java b/chrome/browser/data_sharing/android/java/src/org/chromium/chrome/browser/data_sharing/BulkFaviconUtilUnitTest.java new file mode 100644 index 0000000..976b9cd --- /dev/null +++ b/chrome/browser/data_sharing/android/java/src/org/chromium/chrome/browser/data_sharing/BulkFaviconUtilUnitTest.java
@@ -0,0 +1,242 @@ +// 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.data_sharing; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import static org.mockito.ArgumentMatchers.any; +import static org.mockito.ArgumentMatchers.anyBoolean; +import static org.mockito.ArgumentMatchers.anyInt; +import static org.mockito.ArgumentMatchers.eq; +import static org.mockito.Mockito.doAnswer; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.never; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +import android.content.Context; +import android.graphics.Bitmap; +import android.graphics.drawable.Drawable; + +import androidx.test.core.app.ApplicationProvider; + +import org.junit.After; +import org.junit.Before; +import org.junit.Rule; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.ArgumentCaptor; +import org.mockito.Captor; +import org.mockito.Mock; +import org.mockito.junit.MockitoJUnit; +import org.mockito.junit.MockitoRule; +import org.robolectric.annotation.Config; + +import org.chromium.base.Callback; +import org.chromium.base.test.BaseRobolectricTestRunner; +import org.chromium.chrome.browser.profiles.Profile; +import org.chromium.chrome.browser.ui.favicon.FaviconHelper; +import org.chromium.components.browser_ui.widget.RoundedIconGenerator; +import org.chromium.url.GURL; + +import java.util.Arrays; +import java.util.Collections; +import java.util.List; + +@RunWith(BaseRobolectricTestRunner.class) +@Config(manifest = Config.NONE) +public class BulkFaviconUtilUnitTest { + @Rule public MockitoRule mMockitoRule = MockitoJUnit.rule(); + + @Mock private Profile mProfile; + @Mock private FaviconHelper mFaviconHelper; + @Mock private RoundedIconGenerator mRoundedIconGenerator; + @Mock private FaviconHelper.DefaultFaviconHelper mDefaultFaviconHelper; + @Captor private ArgumentCaptor<FaviconHelper.FaviconImageCallback> mCallbackCaptor; + @Captor private ArgumentCaptor<List<Bitmap>> mResultCaptor; + + private Context mContext; + private BulkFaviconUtil mBulkFaviconUtil; + private GURL mGurl1 = new GURL("https://www.google.com"); + private GURL mGurl2 = new GURL("https://www.chromium.org"); + private List<GURL> mGurlList = Arrays.asList(mGurl1, mGurl2); + + @Before + public void setUp() { + mContext = ApplicationProvider.getApplicationContext(); + mBulkFaviconUtil = new BulkFaviconUtil(); + mBulkFaviconUtil.setFaviconHelperForTesting(mFaviconHelper); + mBulkFaviconUtil.setRoundedIconGeneratorForTesting(mRoundedIconGenerator); + // Necessary to avoid an NPE in |FaviconUtils.getIconDrawableWithFilter|. + when(mDefaultFaviconHelper.getDefaultFaviconBitmap(any(), any(), anyBoolean())) + .thenReturn(mock(Bitmap.class)); + } + + @After + public void tearDown() { + mBulkFaviconUtil.destroy(); + } + + @Test + public void testFetchAsBitmap_emptyList() { + Callback<List<Bitmap>> callback = mock(Callback.class); + mBulkFaviconUtil.fetchAsBitmap(mContext, mProfile, Collections.emptyList(), 16, callback); + verify(callback).onResult(Collections.emptyList()); + verify(mFaviconHelper, never()).getForeignFaviconImageForURL(any(), any(), anyInt(), any()); + } + + @Test + public void testFetchAsBitmap_singleUrl() { + Bitmap mockBitmap = mock(Bitmap.class); + doAnswer( + invocation -> { + mCallbackCaptor.getValue().onFaviconAvailable(mockBitmap, mGurl1); + return null; + }) + .when(mFaviconHelper) + .getForeignFaviconImageForURL( + eq(mProfile), eq(mGurl1), anyInt(), mCallbackCaptor.capture()); + + Callback<List<Bitmap>> callback = mock(Callback.class); + mBulkFaviconUtil.fetchAsBitmap(mContext, mProfile, Arrays.asList(mGurl1), 16, callback); + verify(callback).onResult(Arrays.asList(mockBitmap)); + } + + @Test + public void testFetchAsBitmap_twoUrls() { + Bitmap mockBitmap1 = mock(Bitmap.class); + doAnswer( + invocation -> { + mCallbackCaptor.getValue().onFaviconAvailable(mockBitmap1, mGurl1); + return null; + }) + .when(mFaviconHelper) + .getForeignFaviconImageForURL( + eq(mProfile), eq(mGurl1), anyInt(), mCallbackCaptor.capture()); + + Bitmap mockBitmap2 = mock(Bitmap.class); + doAnswer( + invocation -> { + mCallbackCaptor.getValue().onFaviconAvailable(mockBitmap2, mGurl2); + return null; + }) + .when(mFaviconHelper) + .getForeignFaviconImageForURL( + eq(mProfile), eq(mGurl2), anyInt(), mCallbackCaptor.capture()); + + Callback<List<Bitmap>> callback = mock(Callback.class); + mBulkFaviconUtil.fetchAsBitmap(mContext, mProfile, mGurlList, 16, callback); + verify(callback).onResult(Arrays.asList(mockBitmap1, mockBitmap2)); + } + + @Test + public void testFetchAsBitmap_nullFavicon() { + doAnswer( + invocation -> { + mCallbackCaptor.getValue().onFaviconAvailable(null, mGurl1); + return null; + }) + .when(mFaviconHelper) + .getForeignFaviconImageForURL( + eq(mProfile), eq(mGurl1), anyInt(), mCallbackCaptor.capture()); + + Callback<List<Bitmap>> callback = mock(Callback.class); + mBulkFaviconUtil.fetchAsBitmap(mContext, mProfile, Arrays.asList(mGurl1), 16, callback); + + // Verify that the default favicon is used. + verify(callback).onResult(mResultCaptor.capture()); + assertEquals(1, mResultCaptor.getValue().size()); + } + + @Test + public void testFetchAsDrawable_emptyList() { + Callback<List<Drawable>> callback = mock(Callback.class); + mBulkFaviconUtil.fetchAsDrawable(mContext, mProfile, Collections.emptyList(), 16, callback); + verify(callback).onResult(Collections.emptyList()); + verify(mFaviconHelper, never()).getForeignFaviconImageForURL(any(), any(), anyInt(), any()); + } + + @Test + public void testFetchAsDrawable_singleUrl() { + Bitmap realBitmap = Bitmap.createBitmap(100, 100, Bitmap.Config.ARGB_8888); + doAnswer( + invocation -> { + mCallbackCaptor.getValue().onFaviconAvailable(realBitmap, mGurl1); + return null; + }) + .when(mFaviconHelper) + .getForeignFaviconImageForURL( + eq(mProfile), eq(mGurl1), anyInt(), mCallbackCaptor.capture()); + + Callback<List<Drawable>> callback = mock(Callback.class); + mBulkFaviconUtil.fetchAsDrawable(mContext, mProfile, Arrays.asList(mGurl1), 16, callback); + + ArgumentCaptor<List<Drawable>> resultCaptor = ArgumentCaptor.forClass(List.class); + verify(callback).onResult(resultCaptor.capture()); + assertEquals(1, resultCaptor.getValue().size()); + assertTrue(resultCaptor.getValue().get(0) != null); + } + + @Test + public void testFetchAsDrawable_twoUrls() { + Bitmap realBitmap1 = Bitmap.createBitmap(100, 100, Bitmap.Config.ARGB_8888); + doAnswer( + invocation -> { + mCallbackCaptor.getValue().onFaviconAvailable(realBitmap1, mGurl1); + return null; + }) + .when(mFaviconHelper) + .getForeignFaviconImageForURL( + eq(mProfile), eq(mGurl1), anyInt(), mCallbackCaptor.capture()); + + Bitmap realBitmap2 = Bitmap.createBitmap(100, 100, Bitmap.Config.ARGB_8888); + doAnswer( + invocation -> { + mCallbackCaptor.getValue().onFaviconAvailable(realBitmap2, mGurl2); + return null; + }) + .when(mFaviconHelper) + .getForeignFaviconImageForURL( + eq(mProfile), eq(mGurl2), anyInt(), mCallbackCaptor.capture()); + + Callback<List<Drawable>> callback = mock(Callback.class); + mBulkFaviconUtil.fetchAsDrawable(mContext, mProfile, mGurlList, 16, callback); + + ArgumentCaptor<List<Drawable>> resultCaptor = ArgumentCaptor.forClass(List.class); + verify(callback).onResult(resultCaptor.capture()); + assertEquals(2, resultCaptor.getValue().size()); + assertTrue(resultCaptor.getValue().get(0) != null); + assertTrue(resultCaptor.getValue().get(1) != null); + } + + @Test + public void testFetchAsDrawable_nullFavicon() { + doAnswer( + invocation -> { + mCallbackCaptor.getValue().onFaviconAvailable(null, mGurl1); + return null; + }) + .when(mFaviconHelper) + .getForeignFaviconImageForURL( + eq(mProfile), eq(mGurl1), anyInt(), mCallbackCaptor.capture()); + + Bitmap realBitmap = Bitmap.createBitmap(100, 100, Bitmap.Config.ARGB_8888); + doAnswer( + invocation -> { + return realBitmap; + }) + .when(mRoundedIconGenerator) + .generateIconForUrl(eq(mGurl1)); + + Callback<List<Drawable>> callback = mock(Callback.class); + mBulkFaviconUtil.fetchAsDrawable(mContext, mProfile, Arrays.asList(mGurl1), 16, callback); + + // Verify that the default favicon is used. + ArgumentCaptor<List<Drawable>> resultCaptor = ArgumentCaptor.forClass(List.class); + verify(callback).onResult(resultCaptor.capture()); + assertEquals(1, resultCaptor.getValue().size()); + assertTrue(resultCaptor.getValue().get(0) != null); + } +}
diff --git a/chrome/browser/data_sharing/android/java/src/org/chromium/chrome/browser/data_sharing/DataSharingFaviconProvider.java b/chrome/browser/data_sharing/android/java/src/org/chromium/chrome/browser/data_sharing/DataSharingFaviconProvider.java index a58ba92..a6d827c 100644 --- a/chrome/browser/data_sharing/android/java/src/org/chromium/chrome/browser/data_sharing/DataSharingFaviconProvider.java +++ b/chrome/browser/data_sharing/android/java/src/org/chromium/chrome/browser/data_sharing/DataSharingFaviconProvider.java
@@ -10,13 +10,10 @@ import org.chromium.base.Callback; import org.chromium.chrome.browser.data_sharing.ui.recent_activity.RecentActivityListCoordinator; import org.chromium.chrome.browser.profiles.Profile; -import org.chromium.chrome.browser.ui.favicon.FaviconHelper; -import org.chromium.chrome.browser.ui.favicon.FaviconHelper.DefaultFaviconHelper; -import org.chromium.chrome.browser.ui.favicon.FaviconHelper.FaviconImageCallback; -import org.chromium.chrome.browser.ui.favicon.FaviconUtils; -import org.chromium.components.browser_ui.widget.RoundedIconGenerator; import org.chromium.url.GURL; +import java.util.Collections; + /** * Favicon provider for data sharing UI. Wraps around the favicon backend and provides convenient * methods for fetching foreign favicon drawable or bitmap for a given URL as required by the client @@ -24,9 +21,7 @@ */ public class DataSharingFaviconProvider implements RecentActivityListCoordinator.FaviconProvider { private final Context mContext; - private final FaviconHelper mFaviconHelper; - private final DefaultFaviconHelper mDefaultFaviconHelper; - private final RoundedIconGenerator mRounedIconGenerator; + private final BulkFaviconUtil mBulkFaviconUtil; private final int mFaviconSize; private final Profile mProfile; @@ -35,14 +30,12 @@ * * @param context The associated context. * @param profile The associated profile. - * @param faviconHelper The backend that provides favicons. + * @param bulkFaviconUtil Utility to fetch favicons. */ public DataSharingFaviconProvider( - Context context, Profile profile, FaviconHelper faviconHelper) { + Context context, Profile profile, BulkFaviconUtil bulkFaviconUtil) { mContext = context; - mFaviconHelper = faviconHelper; - mDefaultFaviconHelper = new DefaultFaviconHelper(); - mRounedIconGenerator = FaviconUtils.createCircularIconGenerator(mContext); + mBulkFaviconUtil = bulkFaviconUtil; mFaviconSize = mContext.getResources().getDimensionPixelSize(R.dimen.tile_view_icon_size_modern); mProfile = profile; @@ -50,24 +43,16 @@ @Override public void fetchFavicon(GURL tabUrl, Callback<Drawable> faviconDrawableCallback) { - FaviconImageCallback imageCallback = - (bitmap, iconUrl) -> { - Drawable faviconDrawable = - FaviconUtils.getIconDrawableWithFilter( - bitmap, - tabUrl, - mRounedIconGenerator, - mDefaultFaviconHelper, - mContext, - mFaviconSize); - faviconDrawableCallback.onResult(faviconDrawable); - }; - - mFaviconHelper.getForeignFaviconImageForURL(mProfile, tabUrl, mFaviconSize, imageCallback); + mBulkFaviconUtil.fetchAsDrawable( + mContext, + mProfile, + Collections.singletonList(tabUrl), + mFaviconSize, + (results) -> { + faviconDrawableCallback.onResult(results.get(0)); + }); } @Override - public void destroy() { - mFaviconHelper.destroy(); - } + public void destroy() {} }
diff --git a/chrome/browser/data_sharing/android/java/src/org/chromium/chrome/browser/data_sharing/DataSharingFaviconProviderUnitTest.java b/chrome/browser/data_sharing/android/java/src/org/chromium/chrome/browser/data_sharing/DataSharingFaviconProviderUnitTest.java index eaca71f..cd878173f 100644 --- a/chrome/browser/data_sharing/android/java/src/org/chromium/chrome/browser/data_sharing/DataSharingFaviconProviderUnitTest.java +++ b/chrome/browser/data_sharing/android/java/src/org/chromium/chrome/browser/data_sharing/DataSharingFaviconProviderUnitTest.java
@@ -4,13 +4,13 @@ package org.chromium.chrome.browser.data_sharing; +import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.anyInt; import static org.mockito.ArgumentMatchers.eq; import static org.mockito.ArgumentMatchers.notNull; import static org.mockito.Mockito.verify; import android.content.Context; -import android.graphics.Bitmap; import android.graphics.drawable.Drawable; import androidx.test.core.app.ApplicationProvider; @@ -28,10 +28,11 @@ import org.chromium.base.Callback; import org.chromium.base.test.BaseRobolectricTestRunner; import org.chromium.chrome.browser.profiles.Profile; -import org.chromium.chrome.browser.ui.favicon.FaviconHelper; -import org.chromium.chrome.browser.ui.favicon.FaviconHelper.FaviconImageCallback; import org.chromium.url.GURL; +import java.util.Arrays; +import java.util.List; + /** Unit tests for {@link DataSharingFaviconProvider}. */ @RunWith(BaseRobolectricTestRunner.class) @Config(manifest = Config.NONE) @@ -41,9 +42,9 @@ @Rule public MockitoRule mMockitoRule = MockitoJUnit.rule(); @Mock private Profile mProfile; - @Mock private FaviconHelper mFaviconHelper; + @Mock private BulkFaviconUtil mBulkFaviconUtil; @Mock private Callback<Drawable> mCallback; - private final Bitmap mBitmap = Bitmap.createBitmap(1, 1, Bitmap.Config.ARGB_8888); + @Mock private Drawable mDrawable; private Context mContext; private DataSharingFaviconProvider mFaviconProvider; @@ -51,24 +52,17 @@ @Before public void setUp() { mContext = ApplicationProvider.getApplicationContext(); - mFaviconProvider = new DataSharingFaviconProvider(mContext, mProfile, mFaviconHelper); + mFaviconProvider = new DataSharingFaviconProvider(mContext, mProfile, mBulkFaviconUtil); } @Test public void testBasic() { mFaviconProvider.fetchFavicon(TAB_URL, mCallback); - ArgumentCaptor<FaviconImageCallback> callbackCaptor = - ArgumentCaptor.forClass(FaviconImageCallback.class); - verify(mFaviconHelper) - .getForeignFaviconImageForURL( - eq(mProfile), eq(TAB_URL), anyInt(), callbackCaptor.capture()); - callbackCaptor.getValue().onFaviconAvailable(mBitmap, BITMAP_URL); + ArgumentCaptor<Callback<List<Drawable>>> callbackCaptor = + ArgumentCaptor.forClass(Callback.class); + verify(mBulkFaviconUtil) + .fetchAsDrawable(any(), eq(mProfile), any(), anyInt(), callbackCaptor.capture()); + callbackCaptor.getValue().onResult(Arrays.asList(mDrawable)); verify(mCallback).onResult(notNull()); } - - @Test - public void testDestroy() { - mFaviconProvider.destroy(); - verify(mFaviconHelper).destroy(); - } }
diff --git a/chrome/browser/data_sharing/android/java/src/org/chromium/chrome/browser/data_sharing/DataSharingTabManager.java b/chrome/browser/data_sharing/android/java/src/org/chromium/chrome/browser/data_sharing/DataSharingTabManager.java index 8064497..6e5130b8 100644 --- a/chrome/browser/data_sharing/android/java/src/org/chromium/chrome/browser/data_sharing/DataSharingTabManager.java +++ b/chrome/browser/data_sharing/android/java/src/org/chromium/chrome/browser/data_sharing/DataSharingTabManager.java
@@ -16,7 +16,6 @@ import androidx.annotation.Nullable; import org.chromium.base.Callback; -import org.chromium.base.ContextUtils; import org.chromium.base.Log; import org.chromium.base.supplier.ObservableSupplier; import org.chromium.base.supplier.OneshotSupplier; @@ -30,7 +29,6 @@ import org.chromium.chrome.browser.share.ShareDelegate; import org.chromium.chrome.browser.tab_group_sync.TabGroupSyncServiceFactory; import org.chromium.chrome.browser.tabmodel.TabModelSelector; -import org.chromium.chrome.browser.ui.favicon.FaviconHelper; import org.chromium.components.browser_ui.bottomsheet.BottomSheetContent; import org.chromium.components.browser_ui.bottomsheet.BottomSheetController; import org.chromium.components.browser_ui.bottomsheet.BottomSheetController.StateChangeReason; @@ -86,8 +84,8 @@ private final Map</*collaborationId*/ String, SyncObserver> mSyncObserversList = new HashMap<>(); private final LinkedList<Runnable> mTasksToRunOnProfileAvailable = new LinkedList<>(); + private final BulkFaviconUtil mBulkFaviconUtil = new BulkFaviconUtil(); - private FaviconHelper mFaviconHelper; private @Nullable Profile mProfile; private @Nullable DataSharingService mDataSharingService; private @Nullable MessagingBackendService mMessagingBackendService; @@ -181,6 +179,7 @@ entry.getValue().destroy(); } mSyncObserversList.clear(); + mBulkFaviconUtil.destroy(); } /** @@ -215,10 +214,6 @@ private String mSessionId; private DataSharingUIDelegate mUiDelegate; - private final Map<Integer, Bitmap> mFavicons = new HashMap<>(); - private int mExpectedIcons; - private Callback<Map<Integer, Bitmap>> mFaviconCallback; - JoinFlowTracker(DataSharingUIDelegate uiDelegate) { this.mUiDelegate = uiDelegate; } @@ -260,18 +255,6 @@ mUiDelegate.destroyFlow(mSessionId); } } - - void setPreviewFaviconCallback(Callback<Map<Integer, Bitmap>> callback, int expectedIcons) { - mFaviconCallback = callback; - mExpectedIcons = expectedIcons; - } - - void onFaviconFetched(Integer index, Bitmap icon) { - mFavicons.put(index, icon); - if (mFavicons.size() == mExpectedIcons) { - mFaviconCallback.onResult(mFavicons); - } - } } private GURL getTabGroupHelpUrl() { @@ -422,44 +405,34 @@ .build())); fetchFavicons( + activity, joinFlowTracker, preview, /* fetchAll= */ false, () -> { - fetchFavicons(joinFlowTracker, preview, /* fetchAll= */ true, () -> {}); + fetchFavicons( + activity, joinFlowTracker, preview, /* fetchAll= */ true, () -> {}); }); } private void fetchFavicons( + Activity activity, JoinFlowTracker joinFlowTracker, SharedTabGroupPreview preview, boolean fetchAll, Runnable doneCallback) { - int expectedCount = 0; int maxNumToFetch = fetchAll ? preview.tabs.size() : 4; - for (int i = 0; i < preview.tabs.size() && i < maxNumToFetch; ++i) { - expectedCount++; - Integer index = i; - getFaviconHelper() - .getForeignFaviconImageForURL( - mProfile, - preview.tabs.get(i).url, - // TODO(haileywang): add this to resources when using it in service. - 72, - (Bitmap bitmap, GURL url) -> { - if (bitmap == null) { - // TODO(ssid): use favicon provider used for recent activity. - bitmap = - new FaviconHelper.DefaultFaviconHelper() - .getDefaultFaviconBitmap( - ContextUtils.getApplicationContext(), - url, - /* useDarkIcon= */ true); - } - joinFlowTracker.onFaviconFetched(index, bitmap); - }); + int numToFetch = Math.min(maxNumToFetch, preview.tabs.size()); + List<GURL> urls = new ArrayList<>(); + for (int i = 0; i < numToFetch; ++i) { + urls.add(preview.tabs.get(i).url); } - joinFlowTracker.setPreviewFaviconCallback( + mBulkFaviconUtil.fetchAsBitmap( + activity, + mProfile, + urls, + // TODO(haileywang): add this to resources when using it in service. + /* size= */ 72, (favicons) -> { if (fetchAll) { updateAllFavicons(joinFlowTracker, preview, favicons); @@ -467,14 +440,11 @@ updatePreviewImage(joinFlowTracker, favicons); } doneCallback.run(); - }, - expectedCount); + }); } private void updateAllFavicons( - JoinFlowTracker joinFlowTracker, - SharedTabGroupPreview preview, - Map<Integer, Bitmap> favicons) { + JoinFlowTracker joinFlowTracker, SharedTabGroupPreview preview, List<Bitmap> favicons) { List<DataSharingPreviewDetailsConfig.TabPreview> tabPreviews = new ArrayList<>(); for (int i = 0; i < favicons.size(); ++i) { tabPreviews.add( @@ -494,8 +464,7 @@ .updateRuntimeData(joinFlowTracker.getSessionId(), runtimeConfig); } - private void updatePreviewImage( - JoinFlowTracker joinFlowTracker, Map<Integer, Bitmap> favicons) { + private void updatePreviewImage(JoinFlowTracker joinFlowTracker, List<Bitmap> favicons) { // TODO(ssid): Make bitmap of the grid view. Bitmap previewImage = favicons.get(0); DataSharingRuntimeDataConfig runtimeConfig = @@ -523,17 +492,6 @@ R.string.data_sharing_invitation_failure_button); } - void setFaviconHelperForTesting(FaviconHelper helper) { - mFaviconHelper = helper; - } - - private FaviconHelper getFaviconHelper() { - if (mFaviconHelper == null) { - mFaviconHelper = new FaviconHelper(); - } - return mFaviconHelper; - } - /** * Switch the view to a currently opened tab group. * @@ -849,7 +807,7 @@ activity, mBottomSheetControllerSupplier.get(), mMessagingBackendService, - new DataSharingFaviconProvider(activity, mProfile, mFaviconHelper), + new DataSharingFaviconProvider(activity, mProfile, mBulkFaviconUtil), avatarProvider, recentActivityActionHandler); recentActivityListCoordinator.requestShowUI(collaborationId); @@ -876,4 +834,8 @@ }); return bottomSheetContent; } + + BulkFaviconUtil getBulkFaviconUtilForTesting() { + return mBulkFaviconUtil; + } }
diff --git a/chrome/browser/data_sharing/android/java/src/org/chromium/chrome/browser/data_sharing/DataSharingTabManagerUnitTest.java b/chrome/browser/data_sharing/android/java/src/org/chromium/chrome/browser/data_sharing/DataSharingTabManagerUnitTest.java index edc90dd..742d87d 100644 --- a/chrome/browser/data_sharing/android/java/src/org/chromium/chrome/browser/data_sharing/DataSharingTabManagerUnitTest.java +++ b/chrome/browser/data_sharing/android/java/src/org/chromium/chrome/browser/data_sharing/DataSharingTabManagerUnitTest.java
@@ -217,7 +217,9 @@ } private void mockPreviewApiFetch() { - mDataSharingTabManager.setFaviconHelperForTesting(mFaviconHelper); + mDataSharingTabManager + .getBulkFaviconUtilForTesting() + .setFaviconHelperForTesting(mFaviconHelper); ArgumentCaptor<Callback<DataSharingService.SharedDataPreviewOrFailureOutcome>> previewCallbackCaptor = ArgumentCaptor.forClass(Callback.class); verify(mDataSharingService) @@ -393,6 +395,9 @@ @Test @DisableFeatures({ChromeFeatureList.DATA_SHARING_ANDROID_V2}) public void testDestroy() { + mDataSharingTabManager + .getBulkFaviconUtilForTesting() + .setFaviconHelperForTesting(mFaviconHelper); when(mProfile.getOriginalProfile()).thenReturn(mProfile); mockSuccessfulParseDataSharingUrl(); mSyncedGroupTestHelper.removeTabGroup(SYNC_GROUP_ID1); @@ -402,6 +407,7 @@ mDataSharingTabManager.destroy(); verify(mTabGroupSyncService).removeObserver(any()); + verify(mFaviconHelper).destroy(); } @Test @@ -598,7 +604,7 @@ @DisableFeatures({ChromeFeatureList.DATA_SHARING_ANDROID_V2}) public void testShowRecentActivity() { when(mProfile.getOriginalProfile()).thenReturn(mProfile); - mDataSharingTabManager.setFaviconHelperForTesting(mFaviconHelper); + // mDataSharingTabManager.setFaviconHelperForTesting(mFaviconHelper); doReturn(mSavedTabGroup).when(mTabGroupSyncService).getGroup(LOCAL_ID); setupActivityLogItemsOnTheBackend(); mDataSharingTabManager.showRecentActivity(mActivity, COLLABORATION_ID1);
diff --git a/chrome/browser/data_sharing/java_sources.gni b/chrome/browser/data_sharing/java_sources.gni index 98e2e5fa..0ced9a2c 100644 --- a/chrome/browser/data_sharing/java_sources.gni +++ b/chrome/browser/data_sharing/java_sources.gni
@@ -6,4 +6,5 @@ "//chrome/browser/data_sharing/android/java/src/org/chromium/chrome/browser/data_sharing/DataSharingTabManagerUnitTest.java", "//chrome/browser/data_sharing/android/java/src/org/chromium/chrome/browser/data_sharing/DataSharingFaviconProviderUnitTest.java", "//chrome/browser/data_sharing/android/java/src/org/chromium/chrome/browser/data_sharing/RecentActivityActionHandlerUnitTest.java", + "//chrome/browser/data_sharing/android/java/src/org/chromium/chrome/browser/data_sharing/BulkFaviconUtilUnitTest.java", ]
diff --git a/chrome/browser/devtools/devtools_browsertest.cc b/chrome/browser/devtools/devtools_browsertest.cc index 2348e964..23871e81b 100644 --- a/chrome/browser/devtools/devtools_browsertest.cc +++ b/chrome/browser/devtools/devtools_browsertest.cc
@@ -2057,7 +2057,7 @@ content::WebContents* offscreen_contents = offscreen_document->host_contents(); EXPECT_EQ(offscreen_url.spec(), view.url); - EXPECT_EQ(offscreen_document->render_process_host()->GetID(), + EXPECT_EQ(offscreen_document->render_process_host()->GetDeprecatedID(), view.render_process_id); EXPECT_EQ(offscreen_contents->GetPrimaryMainFrame()->GetRoutingID(), view.render_view_id);
diff --git a/chrome/browser/devtools/devtools_file_helper.cc b/chrome/browser/devtools/devtools_file_helper.cc index 402a15e..feaca922 100644 --- a/chrome/browser/devtools/devtools_file_helper.cc +++ b/chrome/browser/devtools/devtools_file_helper.cc
@@ -174,7 +174,7 @@ content::ChildProcessSecurityPolicy::GetInstance(); RenderViewHost* render_view_host = web_contents->GetPrimaryMainFrame()->GetRenderViewHost(); - int renderer_id = render_view_host->GetProcess()->GetID(); + int renderer_id = render_view_host->GetProcess()->GetDeprecatedID(); policy->GrantReadFileSystem(renderer_id, file_system.id()); policy->GrantWriteFileSystem(renderer_id, file_system.id()); policy->GrantCreateFileForFileSystem(renderer_id, file_system.id());
diff --git a/chrome/browser/devtools/devtools_ui_bindings.cc b/chrome/browser/devtools/devtools_ui_bindings.cc index e5dc99e..bb07a7a 100644 --- a/chrome/browser/devtools/devtools_ui_bindings.cc +++ b/chrome/browser/devtools/devtools_ui_bindings.cc
@@ -2135,7 +2135,7 @@ // process. Grant the devtools process the ability to request URLs from the // extension. content::ChildProcessSecurityPolicy::GetInstance()->GrantRequestOrigin( - web_contents_->GetPrimaryMainFrame()->GetProcess()->GetID(), + web_contents_->GetPrimaryMainFrame()->GetProcess()->GetDeprecatedID(), url::Origin::Create(extension->url())); base::Value::List runtime_allowed_hosts;
diff --git a/chrome/browser/devtools/devtools_window.cc b/chrome/browser/devtools/devtools_window.cc index 4aaba212..fe67c3d 100644 --- a/chrome/browser/devtools/devtools_window.cc +++ b/chrome/browser/devtools/devtools_window.cc
@@ -1667,7 +1667,7 @@ content::RenderViewHost* render_view_host = inspected_web_contents->GetPrimaryMainFrame()->GetRenderViewHost(); if (render_view_host) - child_id = render_view_host->GetProcess()->GetID(); + child_id = render_view_host->GetProcess()->GetDeprecatedID(); } // Use about:blank instead of an empty GURL. The browser treats an empty GURL // as navigating to the home page, which may be privileged (chrome://newtab/). @@ -1965,8 +1965,9 @@ } // Only show the infobar only if the RenderProcessHost id changes. - int rph_id = - inspected_web_contents->GetPrimaryMainFrame()->GetProcess()->GetID(); + int rph_id = inspected_web_contents->GetPrimaryMainFrame() + ->GetProcess() + ->GetDeprecatedID(); if (checked_sharing_process_id_ == rph_id) { return; }
diff --git a/chrome/browser/dips/dips_bounce_detector.cc b/chrome/browser/dips/dips_bounce_detector.cc index 32d1cc5c..5db4a2f8 100644 --- a/chrome/browser/dips/dips_bounce_detector.cc +++ b/chrome/browser/dips/dips_bounce_detector.cc
@@ -329,6 +329,22 @@ return sites_to_url_and_current_interaction; } +base::span<const DIPSRedirectInfoPtr> +DIPSRedirectContext::GetServerRedirectsSinceLastPrimaryPageChange() const { + size_t index = size(); + for (; index > 0; --index) { + const DIPSRedirectInfo& redirect = *redirects_.at(index - 1); + if (redirect.redirect_type != DIPSRedirectType::kServer) { + break; + } + } + + // For all i in [index, size()), redirects_[i] is a server redirect. + // Either i=0, or redirects_[i-1] is a client redirect. + + return base::span(redirects_).subspan(index); +} + void DIPSRedirectContext::HandleUncommitted( DIPSNavigationStart navigation_start, std::vector<DIPSRedirectInfoPtr> server_redirects) {
diff --git a/chrome/browser/dips/dips_bounce_detector.h b/chrome/browser/dips/dips_bounce_detector.h index e65a07c..d3e2523a 100644 --- a/chrome/browser/dips/dips_bounce_detector.h +++ b/chrome/browser/dips/dips_bounce_detector.h
@@ -10,6 +10,7 @@ #include <variant> #include "base/check_deref.h" +#include "base/containers/span.h" #include "base/functional/callback.h" #include "base/memory/raw_ptr.h" #include "base/observer_list.h" @@ -165,6 +166,12 @@ base::optional_ref<std::set<std::string>> allowed_sites, bool require_current_interaction) const; + // Returns the server redirects from the last navigation. Note that due to + // limitations in C++ the DIPSRedirectInfo objects are unavoidably mutable. + // Clients must not modify them. + base::span<const DIPSRedirectInfoPtr> + GetServerRedirectsSinceLastPrimaryPageChange() const; + private: void AppendClientRedirect(DIPSRedirectInfoPtr client_redirect); void AppendServerRedirects(std::vector<DIPSRedirectInfoPtr> server_redirects);
diff --git a/chrome/browser/dips/dips_bounce_detector_unittest.cc b/chrome/browser/dips/dips_bounce_detector_unittest.cc index 13fb91b..623d3a472 100644 --- a/chrome/browser/dips/dips_bounce_detector_unittest.cc +++ b/chrome/browser/dips/dips_bounce_detector_unittest.cc
@@ -1616,3 +1616,112 @@ std::pair<std::string, std::pair<GURL, bool>>( "b.test", std::make_pair(current_interaction_url.url, true)))); } + +TEST(DIPSRedirectContextTest, + GetServerRedirectsSinceLastPrimaryPageChangeNoRedirects) { + std::vector<ChainPair> chains; + DIPSRedirectContext context( + base::BindRepeating(AppendChainPair, std::ref(chains)), base::DoNothing(), + UrlAndSourceId(), + /*redirect_prefix_count=*/0); + ASSERT_EQ(context.size(), 0u); + + base::span<const DIPSRedirectInfoPtr> server_redirects = + context.GetServerRedirectsSinceLastPrimaryPageChange(); + + EXPECT_EQ(server_redirects.size(), 0u); +} + +TEST(DIPSRedirectContextTest, + GetServerRedirectsSinceLastPrimaryPageChangeOnlyClientSideRedirects) { + std::vector<ChainPair> chains; + DIPSRedirectContext context( + base::BindRepeating(AppendChainPair, std::ref(chains)), base::DoNothing(), + UrlAndSourceId(), + /*redirect_prefix_count=*/0); + context.AppendCommitted( + MakeClientRedirect("http://a.test/", SiteDataAccessType::kNone, false, + true), + {}, MakeUrlAndId("http://b.test/"), false); + ASSERT_EQ(context.size(), 1u); + + base::span<const DIPSRedirectInfoPtr> server_redirects = + context.GetServerRedirectsSinceLastPrimaryPageChange(); + + EXPECT_EQ(server_redirects.size(), 0u); +} + +TEST(DIPSRedirectContextTest, + GetServerRedirectsSinceLastPrimaryPageChangeOnlyServerSideRedirects) { + std::vector<ChainPair> chains; + DIPSRedirectContext context( + base::BindRepeating(AppendChainPair, std::ref(chains)), base::DoNothing(), + UrlAndSourceId(), + /*redirect_prefix_count=*/0); + context.AppendCommitted( + MakeUrlAndId("http://a.test/"), + {MakeServerRedirects({"http://b.test/", "http://c.test/"})}, + MakeUrlAndId("http://d.test"), false); + ASSERT_EQ(context.size(), 2u); + + base::span<const DIPSRedirectInfoPtr> server_redirects = + context.GetServerRedirectsSinceLastPrimaryPageChange(); + + EXPECT_EQ(server_redirects.size(), 2u); + EXPECT_EQ(server_redirects[0]->url.url, "http://b.test/"); + EXPECT_EQ(server_redirects[0]->redirect_type, DIPSRedirectType::kServer); + EXPECT_EQ(server_redirects[1]->url.url, "http://c.test/"); + EXPECT_EQ(server_redirects[1]->redirect_type, DIPSRedirectType::kServer); +} + +TEST( + DIPSRedirectContextTest, + GetServerRedirectsSinceLastPrimaryPageChangeNoServerSideRedirectsSinceLastClientSideRedirect) { + std::vector<ChainPair> chains; + DIPSRedirectContext context( + base::BindRepeating(AppendChainPair, std::ref(chains)), base::DoNothing(), + UrlAndSourceId(), + /*redirect_prefix_count=*/0); + context.AppendCommitted(MakeUrlAndId("http://a.test"), + {MakeServerRedirects({"http://b.test"})}, + MakeUrlAndId("http://c.test/"), false); + context.AppendCommitted( + MakeClientRedirect("http://b.test/", SiteDataAccessType::kNone, false, + true), + {}, MakeUrlAndId("http://d.test/"), false); + ASSERT_EQ(context.size(), 2u); + + base::span<const DIPSRedirectInfoPtr> server_redirects = + context.GetServerRedirectsSinceLastPrimaryPageChange(); + + EXPECT_EQ(server_redirects.size(), 0u); +} + +TEST( + DIPSRedirectContextTest, + GetServerRedirectsSinceLastPrimaryPageChangeServerSideRedirectsPrecededByClientSideRedirect) { + std::vector<ChainPair> chains; + DIPSRedirectContext context( + base::BindRepeating(AppendChainPair, std::ref(chains)), base::DoNothing(), + UrlAndSourceId(), + /*redirect_prefix_count=*/0); + context.AppendCommitted(MakeUrlAndId("http://a.test/"), + {MakeServerRedirects({"http://b.test/"})}, + MakeUrlAndId("http://c.test/"), false); + context.AppendCommitted( + MakeClientRedirect("http://b.test/", SiteDataAccessType::kNone, false, + true), + MakeServerRedirects({"http://a.test/server-redirect/"}), + MakeUrlAndId("http://d.test/"), false); + ASSERT_EQ(context.size(), 3u); + ASSERT_EQ(context[0].redirect_type, DIPSRedirectType::kServer); + ASSERT_EQ(context[1].redirect_type, DIPSRedirectType::kClient); + ASSERT_EQ(context[2].redirect_type, DIPSRedirectType::kServer); + + base::span<const DIPSRedirectInfoPtr> server_redirects = + context.GetServerRedirectsSinceLastPrimaryPageChange(); + + EXPECT_EQ(server_redirects.size(), 1u); + EXPECT_EQ(server_redirects[0]->url.url, "http://a.test/server-redirect/"); + EXPECT_EQ(server_redirects[0]->redirect_type, DIPSRedirectType::kServer); +}
diff --git a/chrome/browser/dips/dips_navigation_flow_detector.cc b/chrome/browser/dips/dips_navigation_flow_detector.cc index 99da652..3d90e63 100644 --- a/chrome/browser/dips/dips_navigation_flow_detector.cc +++ b/chrome/browser/dips/dips_navigation_flow_detector.cc
@@ -14,6 +14,12 @@ #include "services/metrics/public/cpp/ukm_recorder.h" namespace { +enum QuantityBucket { + kZero = 0, + kOne, + kMultiple, +}; + // Types that qualify a navigation for the DIPS.TrustIndicator.DirectNavigation // UKM event. Should only contain core page transition types (no qualifiers). constexpr const std::array<ui::PageTransition, 2>& @@ -49,47 +55,47 @@ // and returns it, if one exists. Returns nullptr otherwise. const DIPSRedirectInfo* GetEntrypointExitServerRedirect( const DIPSRedirectContext& redirect_context) { - size_t num_redirects = redirect_context.size(); - if (num_redirects == 0) { - return nullptr; - } - - size_t most_recent_redirect_index = num_redirects - 1; - const DIPSRedirectInfo* most_recent_redirect = - &redirect_context[most_recent_redirect_index]; - if (most_recent_redirect->redirect_type != DIPSRedirectType::kServer) { - return nullptr; - } - - bool is_single_hop_server_redirect = - most_recent_redirect_index == 0 || - redirect_context[most_recent_redirect_index - 1].redirect_type != - DIPSRedirectType::kServer; - if (!is_single_hop_server_redirect) { - return nullptr; - } - - return most_recent_redirect; + base::span<const DIPSRedirectInfoPtr> server_redirects = + redirect_context.GetServerRedirectsSinceLastPrimaryPageChange(); + return server_redirects.size() == 1 ? server_redirects.front().get() + : nullptr; } const DIPSRedirectInfo* GetFirstServerRedirect( const DIPSRedirectContext& redirect_context) { - size_t num_redirects = redirect_context.size(); - if (num_redirects == 0) { - return nullptr; + base::span<const DIPSRedirectInfoPtr> server_redirects = + redirect_context.GetServerRedirectsSinceLastPrimaryPageChange(); + return server_redirects.empty() ? nullptr : server_redirects.front().get(); +} + +QuantityBucket GetCrossSiteRedirectQuantity( + const std::string& initial_site, + base::span<const DIPSRedirectInfoPtr> server_redirects, + const std::string& final_site) { + const std::string* referring_site = &initial_site; + size_t num_cross_site_redirects = 0; + + for (const auto& server_redirect : server_redirects) { + if (server_redirect->site != *referring_site) { + num_cross_site_redirects += 1; + if (num_cross_site_redirects >= 2) { + return kMultiple; + } + referring_site = &server_redirect->site; + } + } + if (final_site != *referring_site) { + num_cross_site_redirects += 1; } - int redirect_index = num_redirects - 1; - const DIPSRedirectInfo* first_server_redirect = nullptr; - while (redirect_index >= 0) { - const DIPSRedirectInfo* redirect = &redirect_context[redirect_index]; - if (redirect->redirect_type != DIPSRedirectType::kServer) { - break; - } - first_server_redirect = redirect; - redirect_index -= 1; + switch (num_cross_site_redirects) { + case 0: + return kZero; + case 1: + return kOne; + default: + return kMultiple; } - return first_server_redirect; } void EmitSuspectedTrackerFlowUkm(ukm::SourceId referrer_source_id, @@ -170,6 +176,30 @@ was_referral_client_redirect( client_redirector_info.WasNavigationToPageClientRedirect()) {} +InFlowSuccessorInteractionState::InFlowSuccessorInteractionState( + dips::EntrypointInfo&& flow_entrypoint) + : flow_entrypoint_(flow_entrypoint) {} + +InFlowSuccessorInteractionState::~InFlowSuccessorInteractionState() = default; + +void InFlowSuccessorInteractionState::IncrementFlowIndex(size_t increment) { + flow_index_ += increment; +} + +void InFlowSuccessorInteractionState:: + RecordSuccessorInteractionAtCurrentFlowIndex() { + bool has_existing_record_for_current_index = + !successor_interaction_indices_.empty() && + successor_interaction_indices_.back() == flow_index_; + if (!has_existing_record_for_current_index) { + successor_interaction_indices_.push_back(flow_index_); + } +} + +bool InFlowSuccessorInteractionState::IsAtSuccessor() const { + return flow_index_ > 0; +} + } // namespace dips DipsNavigationFlowDetector::DipsNavigationFlowDetector( @@ -228,15 +258,29 @@ } last_page_change_time_ = now; - MaybeEmitDirectNavigationUkm( - navigation_handle, - redirect_chain_observation_.GetSource()->CommittedRedirectContext()); + const DIPSRedirectContext& redirect_context = GetRedirectContext(); + + bool did_start_new_flow = MaybeInitializeSuccessorInteractionTrackingState(); + + flow_status_ = FlowStatusAfterNavigation(did_start_new_flow); + if (flow_status_ == dips::kFlowOngoing && !did_start_new_flow) { + successor_interaction_tracking_state_->IncrementFlowIndex( + redirect_context.GetServerRedirectsSinceLastPrimaryPageChange().size() + + 1); + } + if (flow_status_ == dips::kFlowEnded) { + MaybeEmitInFlowSuccessorInteraction(); + } + if (flow_status_ != dips::kFlowOngoing) { + successor_interaction_tracking_state_.reset(); + } + + MaybeEmitDirectNavigationUkm(navigation_handle, redirect_context); MaybeEmitNavFlowNodeUkmForPreviousPage(); int32_t flow_id = static_cast<int32_t>(base::RandUint64()); const DIPSRedirectInfo* server_redirect_entrypoint_exit = - GetEntrypointExitServerRedirect( - redirect_chain_observation_.GetSource()->CommittedRedirectContext()); + GetEntrypointExitServerRedirect(redirect_context); if (server_redirect_entrypoint_exit != nullptr) { MaybeEmitSuspectedTrackerFlowUkmForServerRedirectExit( server_redirect_entrypoint_exit, flow_id); @@ -388,6 +432,116 @@ .Record(ukm::UkmRecorder::Get()); } +void DipsNavigationFlowDetector::MaybeEmitInFlowSuccessorInteraction() { + if (!successor_interaction_tracking_state_.has_value() || + successor_interaction_tracking_state_->successor_interaction_indices() + .empty()) { + return; + } + + const dips::EntrypointInfo& flow_entrypoint = + successor_interaction_tracking_state_->flow_entrypoint(); + for (size_t index : + successor_interaction_tracking_state_->successor_interaction_indices()) { + ukm::builders::DIPS_TrustIndicator_InFlowSuccessorInteraction( + flow_entrypoint.source_id) + .SetSuccessorRedirectIndex(index) + .SetDidEntrypointAccessStorage( + flow_entrypoint.had_triggering_storage_access) + .Record(ukm::UkmRecorder::Get()); + } +} + +dips::FlowStatus DipsNavigationFlowDetector::FlowStatusAfterNavigation( + bool did_most_recent_navigation_start_new_flow) const { + if (!current_page_visit_info_->WasNavigationToPageClientRedirect()) { + return dips::kFlowInvalidated; + } + if (!successor_interaction_tracking_state_.has_value()) { + return dips::kFlowInvalidated; + } + + const base::span<const DIPSRedirectInfoPtr> server_redirects = + GetRedirectContext().GetServerRedirectsSinceLastPrimaryPageChange(); + + if (did_most_recent_navigation_start_new_flow) { + bool is_still_on_entrypoint = server_redirects.empty(); + if (is_still_on_entrypoint) { + return dips::kFlowOngoing; + } + + return successor_interaction_tracking_state_->flow_entrypoint().site == + current_page_visit_info_->site + ? dips::kFlowOngoing + : dips::kFlowEnded; + } + + QuantityBucket cross_site_redirect_quantity_bucket = + GetCrossSiteRedirectQuantity(previous_page_visit_info_->site, + server_redirects, + current_page_visit_info_->site); + switch (cross_site_redirect_quantity_bucket) { + case kZero: + return dips::kFlowOngoing; + case kOne: + return dips::kFlowEnded; + case kMultiple: + return dips::kFlowInvalidated; + } +} + +bool DipsNavigationFlowDetector:: + MaybeInitializeSuccessorInteractionTrackingState() { + if (flow_status_ == dips::kFlowOngoing) { + return false; + } + if (!previous_page_visit_info_ || !current_page_visit_info_) { + return false; + } + if (!current_page_visit_info_->WasNavigationToPageClientRedirect()) { + return false; + } + + // Look for an entrypoint, which must either be the current page or the first + // server redirect since the prior page. + + base::span<const DIPSRedirectInfoPtr> server_redirects = + GetRedirectContext().GetServerRedirectsSinceLastPrimaryPageChange(); + bool can_entrypoint_be_current_page = server_redirects.empty(); + + if (can_entrypoint_be_current_page) { + if (current_page_visit_info_->site != previous_page_visit_info_->site) { + successor_interaction_tracking_state_.emplace( + dips::EntrypointInfo(*current_page_visit_info_)); + return true; + } + return false; + } + + const DIPSRedirectInfo* possible_entrypoint = server_redirects.front().get(); + if (possible_entrypoint->site == previous_page_visit_info_->site) { + return false; + } + bool had_cross_site_redirect_after_entrypoint = + GetCrossSiteRedirectQuantity( + previous_page_visit_info_->site, server_redirects, + current_page_visit_info_->site) == QuantityBucket::kMultiple; + if (had_cross_site_redirect_after_entrypoint) { + return false; + } + + successor_interaction_tracking_state_.emplace( + dips::EntrypointInfo(*possible_entrypoint, *current_page_visit_info_)); + successor_interaction_tracking_state_->IncrementFlowIndex( + server_redirects.size()); + return true; +} + +const DIPSRedirectContext& DipsNavigationFlowDetector::GetRedirectContext() + const { + return redirect_chain_observation_.GetSource()->CommittedRedirectContext(); +} + void DipsNavigationFlowDetector::OnCookiesAccessed( content::RenderFrameHost* render_frame_host, const content::CookieAccessDetails& details) { @@ -470,6 +624,12 @@ void DipsNavigationFlowDetector::FrameReceivedUserActivation( content::RenderFrameHost* render_frame_host) { current_page_visit_info_->did_page_receive_user_activation = true; + + if (successor_interaction_tracking_state_.has_value() && + successor_interaction_tracking_state_->IsAtSuccessor()) { + successor_interaction_tracking_state_ + ->RecordSuccessorInteractionAtCurrentFlowIndex(); + } } void DipsNavigationFlowDetector::WebAuthnAssertionRequestSucceeded(
diff --git a/chrome/browser/dips/dips_navigation_flow_detector.h b/chrome/browser/dips/dips_navigation_flow_detector.h index 7b05cc46..a492dd2 100644 --- a/chrome/browser/dips/dips_navigation_flow_detector.h +++ b/chrome/browser/dips/dips_navigation_flow_detector.h
@@ -69,6 +69,36 @@ bool was_referral_client_redirect; }; +enum FlowStatus { + kFlowInvalidated = 0, + kFlowOngoing, + kFlowEnded, +}; + +class InFlowSuccessorInteractionState { + public: + explicit InFlowSuccessorInteractionState( + dips::EntrypointInfo&& flow_entrypoint); + ~InFlowSuccessorInteractionState(); + + void IncrementFlowIndex(size_t increment); + void RecordSuccessorInteractionAtCurrentFlowIndex(); + bool IsAtSuccessor() const; + + const dips::EntrypointInfo& flow_entrypoint() const { + return flow_entrypoint_; + } + size_t flow_index() const { return flow_index_; } + const std::vector<size_t>& successor_interaction_indices() const { + return successor_interaction_indices_; + } + + private: + dips::EntrypointInfo flow_entrypoint_; + size_t flow_index_ = 0; + std::vector<size_t> successor_interaction_indices_; +}; + } // namespace dips // Detects possible navigation flows with the aim of discovering how to @@ -107,10 +137,20 @@ void MaybeEmitInFlowInteraction(int32_t flow_id); + void MaybeEmitInFlowSuccessorInteraction(); + private: // So WebContentsUserData::CreateForWebContents can call the constructor. friend class content::WebContentsUserData<DipsNavigationFlowDetector>; + dips::FlowStatus FlowStatusAfterNavigation( + bool did_most_recent_navigation_start_new_flow) const; + // Returns whether the entrypoint was set or not. + bool MaybeInitializeSuccessorInteractionTrackingState(); + void ResetSuccessorInteractionTrackingState(); + + const DIPSRedirectContext& GetRedirectContext() const; + // start WebContentsObserver overrides // For client-initiated cookie accesses, and late-reported cookie accesses in // navigations. @@ -138,6 +178,15 @@ std::optional<dips::PageVisitInfo> previous_page_visit_info_; std::optional<dips::PageVisitInfo> current_page_visit_info_; + // The status of a flow for the purposes of InFlowSuccessorInteraction, after + // the most recent primary page change. + dips::FlowStatus flow_status_ = dips::FlowStatus::kFlowInvalidated; + // Data needed for emitting DIPS.TrustIndicator.InFlowSuccessorInteraction. + // Set only when there's an ongoing flow that's possibly valid (we can't know + // for sure until it ends or is invalidated). + std::optional<dips::InFlowSuccessorInteractionState> + successor_interaction_tracking_state_; + // Tracks a navigational cookie access notification that is received before // the navigation finishes. std::optional<GURL> navigation_cookie_access_url_;
diff --git a/chrome/browser/dips/dips_navigation_flow_detector_browsertest.cc b/chrome/browser/dips/dips_navigation_flow_detector_browsertest.cc index 34f2eb46..b76b6f0 100644 --- a/chrome/browser/dips/dips_navigation_flow_detector_browsertest.cc +++ b/chrome/browser/dips/dips_navigation_flow_detector_browsertest.cc
@@ -36,6 +36,7 @@ #include "services/network/test/trust_token_test_util.h" #include "testing/gmock/include/gmock/gmock.h" #include "testing/gtest/include/gtest/gtest.h" +#include "third_party/blink/public/common/switches.h" #if !BUILDFLAG(IS_ANDROID) #include "chrome/browser/ssl/cert_verifier_browser_test.h" @@ -116,6 +117,8 @@ "DIPS.SuspectedTrackerFlowEntrypoint"; std::string_view kInFlowInteractionUkmEventName = "DIPS.TrustIndicator.InFlowInteraction"; +std::string_view kInFlowSuccessorInteractionUkmEventName = + "DIPS.TrustIndicator.InFlowSuccessorInteraction"; std::string_view kDirectNavigationUkmEventName = "DIPS.TrustIndicator.DirectNavigation"; std::string_view kSiteA = "a.test"; @@ -149,6 +152,11 @@ SetTestClock(); } + void SetUpCommandLine(base::CommandLine* command_line) override { + // Prevents flakiness by handling clicks even before content is drawn. + command_line->AppendSwitch(blink::switches::kAllowPreCommitInput); + } + content::WebContents* GetActiveWebContents() { return chrome_test_utils::GetActiveWebContents(this); } @@ -197,7 +205,13 @@ } void SimulateUserActivation(content::WebContents* web_contents) { +#if BUILDFLAG(IS_ANDROID) + // TODO - crbug.com/40247129: Remove the ExecJs workaround once mouse clicks + // / taps reliably trigger user activation on Android + ASSERT_TRUE(content::ExecJs(web_contents, "")); +#else SimulateMouseClickAndWait(web_contents); +#endif } [[nodiscard]] testing::AssertionResult WaitUntilTransientActivationLost( @@ -774,20 +788,6 @@ ukm_recorder().ExpectEntryMetric(entrypoint_entry, "FlowId", *flow_id); } -INSTANTIATE_TEST_SUITE_P( - All, - DipsNavigationFlowDetectorClientRedirectTest, - testing::Values(ClientRedirectType::kMetaTag, - ClientRedirectType::kJsWindowLocationReplace, - ClientRedirectType::kRedirectLikeNavigation), - [](const testing::TestParamInfo< - DipsNavigationFlowDetectorClientRedirectTest::ParamType>& param_info) { - ClientRedirectType client_redirect_type = param_info.param; - CHECK(client_redirect_type >= 0 && - client_redirect_type < kClientRedirectTypeNames.size()); - return std::string(kClientRedirectTypeNames[client_redirect_type]); - }); - IN_PROC_BROWSER_TEST_F( DipsNavigationFlowDetectorTest, SuspectedTrackerFlowNotEmittedWhenServerRedirectIsMultiHop) { @@ -1044,6 +1044,330 @@ ExpectNoUkmEventsOfType(kInFlowInteractionUkmEventName); } +IN_PROC_BROWSER_TEST_P(DipsNavigationFlowDetectorClientRedirectTest, + InFlowSuccessorInteractionEmittedForAllClientRedirects) { + // Visit A. + content::WebContents* web_contents = GetActiveWebContents(); + GURL referrer_url = + embedded_https_test_server_.GetURL(kSiteA, "/title1.html"); + ASSERT_TRUE(content::NavigateToURL(web_contents, referrer_url)); + // Client-redirect to B, the entrypoint for this flow. + GURL entrypoint_url = + embedded_https_test_server_.GetURL(kSiteB, "/title1.html"); + PerformClientRedirect(web_contents, entrypoint_url); + // Client-redirect to another page on B, the successor for this flow, and + // interact with the page. + GURL successor_url = + embedded_https_test_server_.GetURL(kSiteB, "/title2.html"); + PerformClientRedirect(web_contents, successor_url); + SimulateUserActivation(web_contents); + ASSERT_TRUE(WaitUntilTransientActivationLost( + web_contents->GetPrimaryMainFrame(), base::Seconds(5))); + // Client-redirect to C, ending the flow, and wait for UKM to emit. + GURL flow_end_url = + embedded_https_test_server_.GetURL(kSiteC, "/title1.html"); + base::RunLoop ukm_loop; + ukm_recorder().SetOnAddEntryCallback(kInFlowSuccessorInteractionUkmEventName, + ukm_loop.QuitClosure()); + PerformClientRedirect(web_contents, flow_end_url); + ukm_loop.Run(); + + // Expect InFlowSuccessorInteraction to have been emitted correctly. + auto ukm_entries = + ukm_recorder().GetEntriesByName(kInFlowSuccessorInteractionUkmEventName); + ASSERT_EQ(ukm_entries.size(), 1u); + auto ukm_entry = ukm_entries.at(0); + ukm_recorder().ExpectEntrySourceHasUrl(ukm_entry, entrypoint_url); + ukm_recorder().ExpectEntryMetric(ukm_entry, "SuccessorRedirectIndex", 1); + ukm_recorder().ExpectEntryMetric(ukm_entry, "DidEntrypointAccessStorage", + false); +} + +IN_PROC_BROWSER_TEST_P( + DipsNavigationFlowDetectorClientRedirectTest, + InFlowSuccessorInteractionEmittedForMixOfClientAndServerRedirects) { + // Visit A. + content::WebContents* web_contents = GetActiveWebContents(); + GURL referrer_url = + embedded_https_test_server_.GetURL(kSiteA, "/title1.html"); + ASSERT_TRUE(content::NavigateToURL(web_contents, referrer_url)); + // Client-redirect to B, the entrypoint for this flow. + GURL entrypoint_url = + embedded_https_test_server_.GetURL(kSiteB, "/title1.html"); + PerformClientRedirect(web_contents, entrypoint_url); + // Client-redirect to another page on B, which server-redirects to yet another + // page on B (the successor for this flow), and interact with the page. + GURL successor_url = + embedded_https_test_server_.GetURL(kSiteB, "/title2.html"); + GURL server_redirector_url = embedded_https_test_server_.GetURL( + kSiteB, "/server-redirect?/title2.html"); + ASSERT_TRUE(content::NavigateToURLFromRendererWithoutUserGesture( + web_contents, server_redirector_url, successor_url)); + SimulateUserActivation(web_contents); + ASSERT_TRUE(WaitUntilTransientActivationLost( + web_contents->GetPrimaryMainFrame(), base::Seconds(5))); + // Client-redirect to C, ending the flow, and wait for UKM to emit. + GURL flow_end_url = + embedded_https_test_server_.GetURL(kSiteC, "/title1.html"); + base::RunLoop ukm_loop; + ukm_recorder().SetOnAddEntryCallback(kInFlowSuccessorInteractionUkmEventName, + ukm_loop.QuitClosure()); + PerformClientRedirect(web_contents, flow_end_url); + ukm_loop.Run(); + + // Expect InFlowSuccessorInteraction to have been emitted correctly. + auto ukm_entries = + ukm_recorder().GetEntriesByName(kInFlowSuccessorInteractionUkmEventName); + ASSERT_EQ(ukm_entries.size(), 1u); + auto ukm_entry = ukm_entries.at(0); + ukm_recorder().ExpectEntrySourceHasUrl(ukm_entry, entrypoint_url); + ukm_recorder().ExpectEntryMetric(ukm_entry, "SuccessorRedirectIndex", 2); + ukm_recorder().ExpectEntryMetric(ukm_entry, "DidEntrypointAccessStorage", + false); +} + +IN_PROC_BROWSER_TEST_F( + DipsNavigationFlowDetectorTest, + InFlowSuccessorInteractionEmittedForMultipleSuccessorInteractions) { + // Visit A. + content::WebContents* web_contents = GetActiveWebContents(); + GURL referrer_url = + embedded_https_test_server_.GetURL(kSiteA, "/title1.html"); + ASSERT_TRUE(content::NavigateToURL(web_contents, referrer_url)); + // Client-redirect to B, the entrypoint for this flow. + GURL entrypoint_url = + embedded_https_test_server_.GetURL(kSiteB, "/title1.html"); + ASSERT_TRUE(content::NavigateToURLFromRendererWithoutUserGesture( + web_contents, entrypoint_url)); + // Client-redirect to another page on B, the first successor for this flow, + // and interact with the page. + GURL first_successor_url = + embedded_https_test_server_.GetURL(kSiteB, "/title2.html"); + ASSERT_TRUE(content::NavigateToURLFromRendererWithoutUserGesture( + web_contents, first_successor_url)); + SimulateUserActivation(web_contents); + ASSERT_TRUE(WaitUntilTransientActivationLost( + web_contents->GetPrimaryMainFrame(), base::Seconds(5))); + // Client-redirect to yet another page on B, the second successor for this + // flow, and interact with the page. + GURL second_successor_url = + embedded_https_test_server_.GetURL(kSiteB, "/title3.html"); + ASSERT_TRUE(content::NavigateToURLFromRendererWithoutUserGesture( + web_contents, first_successor_url)); + SimulateUserActivation(web_contents); + ASSERT_TRUE(WaitUntilTransientActivationLost( + web_contents->GetPrimaryMainFrame(), base::Seconds(5))); + // Client-redirect to C, ending the flow, and wait for UKM to emit. + GURL flow_end_url = + embedded_https_test_server_.GetURL(kSiteC, "/title1.html"); + base::RunLoop ukm_loop; + ukm_recorder().SetOnAddEntryCallback(kInFlowSuccessorInteractionUkmEventName, + ukm_loop.QuitClosure()); + ASSERT_TRUE(content::NavigateToURLFromRendererWithoutUserGesture( + web_contents, flow_end_url)); + ukm_loop.Run(); + + // Expect InFlowSuccessorInteraction entries to have been emitted correctly. + auto ukm_entries = + ukm_recorder().GetEntriesByName(kInFlowSuccessorInteractionUkmEventName); + ASSERT_EQ(ukm_entries.size(), 2u); + auto ukm_entry_1 = ukm_entries.at(0); + ukm_recorder().ExpectEntrySourceHasUrl(ukm_entry_1, entrypoint_url); + ukm_recorder().ExpectEntryMetric(ukm_entry_1, "SuccessorRedirectIndex", 1); + ukm_recorder().ExpectEntryMetric(ukm_entry_1, "DidEntrypointAccessStorage", + false); + auto ukm_entry_2 = ukm_entries.at(1); + ukm_recorder().ExpectEntrySourceHasUrl(ukm_entry_2, entrypoint_url); + ukm_recorder().ExpectEntryMetric(ukm_entry_2, "SuccessorRedirectIndex", 2); + ukm_recorder().ExpectEntryMetric(ukm_entry_2, "DidEntrypointAccessStorage", + false); +} + +IN_PROC_BROWSER_TEST_F(DipsNavigationFlowDetectorTest, + InFlowSuccessorInteractionEmittedForConsecutiveFlows) { + // Visit A. + content::WebContents* web_contents = GetActiveWebContents(); + GURL referrer_url = + embedded_https_test_server_.GetURL(kSiteA, "/title1.html"); + ASSERT_TRUE(content::NavigateToURL(web_contents, referrer_url)); + // Client-redirect to B, the entrypoint for the first flow. + GURL first_entrypoint_url = + embedded_https_test_server_.GetURL(kSiteB, "/title1.html"); + ASSERT_TRUE(content::NavigateToURLFromRendererWithoutUserGesture( + web_contents, first_entrypoint_url)); + // Client-redirect to another page on B, the successor for the first flow, and + // interact with the page. + GURL first_successor_url = + embedded_https_test_server_.GetURL(kSiteB, "/title2.html"); + ASSERT_TRUE(content::NavigateToURLFromRendererWithoutUserGesture( + web_contents, first_successor_url)); + SimulateUserActivation(web_contents); + ASSERT_TRUE(WaitUntilTransientActivationLost( + web_contents->GetPrimaryMainFrame(), base::Seconds(5))); + // Client-redirect to C, ending the first flow, and wait for UKM to emit. + GURL flow_end_url = + embedded_https_test_server_.GetURL(kSiteC, "/title1.html"); + base::RunLoop ukm_loop_1; + ukm_recorder().SetOnAddEntryCallback(kInFlowSuccessorInteractionUkmEventName, + ukm_loop_1.QuitClosure()); + ASSERT_TRUE(content::NavigateToURLFromRendererWithoutUserGesture( + web_contents, flow_end_url)); + ukm_loop_1.Run(); + // Client-redirect to a page on site D, the entrypoint for the second flow, + // and server-redirect within site D. + GURL second_entrypoint_url = embedded_https_test_server_.GetURL( + kSiteD, + "/server-redirect-with-secure-cookie?/server-redirect%3F/title1.html"); + GURL entrypoint_nav_commit_url = + embedded_https_test_server_.GetURL(kSiteD, "/title1.html"); + ASSERT_TRUE(content::NavigateToURLFromRendererWithoutUserGesture( + web_contents, second_entrypoint_url, entrypoint_nav_commit_url)); + // Client-redirect to another page on site D, the successor for the second + // flow, and interact with the page. + GURL second_successor_url = + embedded_https_test_server_.GetURL(kSiteD, "/title2.html"); + ASSERT_TRUE(content::NavigateToURLFromRendererWithoutUserGesture( + web_contents, second_successor_url)); + SimulateUserActivation(web_contents); + ASSERT_TRUE(WaitUntilTransientActivationLost( + web_contents->GetPrimaryMainFrame(), base::Seconds(5))); + // Client-redirect to C, ending the second flow, and wait for UKM to emit. + base::RunLoop ukm_loop_2; + ukm_recorder().SetOnAddEntryCallback(kInFlowSuccessorInteractionUkmEventName, + ukm_loop_2.QuitClosure()); + ASSERT_TRUE(content::NavigateToURLFromRendererWithoutUserGesture( + web_contents, flow_end_url)); + ukm_loop_2.Run(); + + // Expect InFlowSuccessorInteraction to have been emitted correctly. + auto ukm_entries = + ukm_recorder().GetEntriesByName(kInFlowSuccessorInteractionUkmEventName); + ASSERT_EQ(ukm_entries.size(), 2u); + auto first_ukm_entry = ukm_entries.at(0); + ukm_recorder().ExpectEntrySourceHasUrl(first_ukm_entry, first_entrypoint_url); + ukm_recorder().ExpectEntryMetric(first_ukm_entry, "SuccessorRedirectIndex", + 1); + ukm_recorder().ExpectEntryMetric(first_ukm_entry, + "DidEntrypointAccessStorage", false); + auto second_ukm_entry = ukm_entries.at(1); + ukm_recorder().ExpectEntrySourceHasUrl(second_ukm_entry, + second_entrypoint_url); + ukm_recorder().ExpectEntryMetric(second_ukm_entry, "SuccessorRedirectIndex", + 3); + ukm_recorder().ExpectEntryMetric(second_ukm_entry, + "DidEntrypointAccessStorage", true); +} + +IN_PROC_BROWSER_TEST_F(DipsNavigationFlowDetectorTest, + InFlowSuccessorInteractionNotEmittedWhenNoFlowEnd) { + // Visit A. + content::WebContents* web_contents = GetActiveWebContents(); + GURL referrer_url = + embedded_https_test_server_.GetURL(kSiteA, "/title1.html"); + ASSERT_TRUE(content::NavigateToURL(web_contents, referrer_url)); + // Client-redirect to B, the entrypoint for this flow. + GURL entrypoint_url = + embedded_https_test_server_.GetURL(kSiteB, "/title1.html"); + ASSERT_TRUE(content::NavigateToURLFromRendererWithoutUserGesture( + web_contents, entrypoint_url)); + // Client-redirect to another page on B, the successor for this flow, and + // interact with the page. + GURL successor_url = + embedded_https_test_server_.GetURL(kSiteB, "/title2.html"); + ASSERT_TRUE(content::NavigateToURLFromRendererWithoutUserGesture( + web_contents, successor_url)); + SimulateUserActivation(web_contents); + ASSERT_TRUE(WaitUntilTransientActivationLost( + web_contents->GetPrimaryMainFrame(), base::Seconds(5))); + + ExpectNoUkmEventsOfType(kInFlowSuccessorInteractionUkmEventName); +} + +IN_PROC_BROWSER_TEST_F( + DipsNavigationFlowDetectorTest, + InFlowSuccessorInteractionNotEmittedWhenMultipleCrossSiteServerRedirects) { + // Visit A. + content::WebContents* web_contents = GetActiveWebContents(); + GURL referrer_url = + embedded_https_test_server_.GetURL(kSiteA, "/title1.html"); + ASSERT_TRUE(content::NavigateToURL(web_contents, referrer_url)); + // Client-redirect to C, which server-redirects to D, which server-redirects + // to B, the would-be entrypoint. + GURL entrypoint_url = + embedded_https_test_server_.GetURL(kSiteB, "/title1.html"); + GURL first_server_redirector_url = embedded_https_test_server_.GetURL( + kSiteC, "/cross-site/d.test/cross-site/b.test/title1.html"); + ASSERT_TRUE(content::NavigateToURLFromRendererWithoutUserGesture( + web_contents, first_server_redirector_url, entrypoint_url)); + // Client-redirect to another page on B, the would-be successor, and interact + // with the page. + GURL successor_url = + embedded_https_test_server_.GetURL(kSiteB, "/title2.html"); + ASSERT_TRUE(content::NavigateToURLFromRendererWithoutUserGesture( + web_contents, successor_url)); + SimulateUserActivation(web_contents); + ASSERT_TRUE(WaitUntilTransientActivationLost( + web_contents->GetPrimaryMainFrame(), base::Seconds(5))); + // Client-redirect to C, which would end a valid flow. + GURL flow_end_url = + embedded_https_test_server_.GetURL(kSiteC, "/title1.html"); + ASSERT_TRUE(content::NavigateToURLFromRendererWithoutUserGesture( + web_contents, flow_end_url)); + + ExpectNoUkmEventsOfType(kInFlowSuccessorInteractionUkmEventName); +} + +IN_PROC_BROWSER_TEST_F(DipsNavigationFlowDetectorTest, + InFlowSuccessorInteractionOnlyEmittedOncePerSuccessor) { + // Visit A. + content::WebContents* web_contents = GetActiveWebContents(); + GURL referrer_url = + embedded_https_test_server_.GetURL(kSiteA, "/title1.html"); + ASSERT_TRUE(content::NavigateToURL(web_contents, referrer_url)); + // Client-redirect to B, the entrypoint for this flow. + GURL entrypoint_url = + embedded_https_test_server_.GetURL(kSiteB, "/title1.html"); + ASSERT_TRUE(content::NavigateToURLFromRendererWithoutUserGesture( + web_contents, entrypoint_url)); + // Client-redirect to another page on B, which server-redirects to yet another + // page on B (the successor for this flow), and interact with the page + // multiple times. + GURL successor_url = + embedded_https_test_server_.GetURL(kSiteB, "/title2.html"); + GURL server_redirector_url = embedded_https_test_server_.GetURL( + kSiteB, "/server-redirect?/title2.html"); + ASSERT_TRUE(content::NavigateToURLFromRendererWithoutUserGesture( + web_contents, server_redirector_url, successor_url)); + SimulateUserActivation(web_contents); + ASSERT_TRUE(WaitUntilTransientActivationLost( + web_contents->GetPrimaryMainFrame(), base::Seconds(5))); + SimulateUserActivation(web_contents); + ASSERT_TRUE(WaitUntilTransientActivationLost( + web_contents->GetPrimaryMainFrame(), base::Seconds(5))); + SimulateUserActivation(web_contents); + ASSERT_TRUE(WaitUntilTransientActivationLost( + web_contents->GetPrimaryMainFrame(), base::Seconds(5))); + // Client-redirect to C, ending the flow, and wait for UKM to emit. + GURL flow_end_url = + embedded_https_test_server_.GetURL(kSiteC, "/title1.html"); + base::RunLoop ukm_loop; + ukm_recorder().SetOnAddEntryCallback(kInFlowSuccessorInteractionUkmEventName, + ukm_loop.QuitClosure()); + ASSERT_TRUE(content::NavigateToURLFromRendererWithoutUserGesture( + web_contents, flow_end_url)); + ukm_loop.Run(); + + // Expect only one InFlowSuccessorInteraction event. + auto ukm_entries = + ukm_recorder().GetEntriesByName(kInFlowSuccessorInteractionUkmEventName); + ASSERT_EQ(ukm_entries.size(), 1u); + auto ukm_entry = ukm_entries.at(0); + ukm_recorder().ExpectEntrySourceHasUrl(ukm_entry, entrypoint_url); + ukm_recorder().ExpectEntryMetric(ukm_entry, "SuccessorRedirectIndex", 2); + ukm_recorder().ExpectEntryMetric(ukm_entry, "DidEntrypointAccessStorage", + false); +} + IN_PROC_BROWSER_TEST_F( DipsNavigationFlowDetectorTest, NavigationFlowNodeNotEmittedWhenLessThanThreePagesVisited) { @@ -1969,3 +2293,17 @@ "WereEntryAndExitRendererInitiated", false); } #endif // !BUILDFLAG(IS_ANDROID) + +INSTANTIATE_TEST_SUITE_P( + All, + DipsNavigationFlowDetectorClientRedirectTest, + testing::Values(ClientRedirectType::kMetaTag, + ClientRedirectType::kJsWindowLocationReplace, + ClientRedirectType::kRedirectLikeNavigation), + [](const testing::TestParamInfo< + DipsNavigationFlowDetectorClientRedirectTest::ParamType>& param_info) { + ClientRedirectType client_redirect_type = param_info.param; + CHECK(client_redirect_type >= 0 && + client_redirect_type < kClientRedirectTypeNames.size()); + return std::string(kClientRedirectTypeNames[client_redirect_type]); + });
diff --git a/chrome/browser/dips/dips_test_utils.cc b/chrome/browser/dips/dips_test_utils.cc index 2fe72c7..8320dd9a 100644 --- a/chrome/browser/dips/dips_test_utils.cc +++ b/chrome/browser/dips/dips_test_utils.cc
@@ -65,10 +65,18 @@ bool js_succeeded = content::ExecJs(frame, content::JsReplace( R"( - var element = document.createElement('meta'); - element.setAttribute('http-equiv', 'refresh'); - element.setAttribute('content', '0; url=$1'); - document.getElementsByTagName('head')[0].appendChild(element);)", + function redirectViaMetaTag() { + var element = document.createElement('meta'); + element.setAttribute('http-equiv', 'refresh'); + element.setAttribute('content', '0; url=$1'); + document.getElementsByTagName('head')[0].appendChild(element); + } + if (document.readyState === "loading") { + document.addEventListener("DOMContentLoaded", redirectViaMetaTag); + } else { + redirectViaMetaTag(); + } + )", target_url), content::EXECUTE_SCRIPT_NO_USER_GESTURE); if (!js_succeeded) {
diff --git a/chrome/browser/direct_sockets/chrome_direct_sockets_delegate.cc b/chrome/browser/direct_sockets/chrome_direct_sockets_delegate.cc index 0f83de26..6157921 100644 --- a/chrome/browser/direct_sockets/chrome_direct_sockets_delegate.cc +++ b/chrome/browser/direct_sockets/chrome_direct_sockets_delegate.cc
@@ -77,7 +77,7 @@ content::RenderFrameHost& rfh) { // No additional rules for Chrome Apps. if (extensions::ProcessMap::Get(rfh.GetBrowserContext()) - ->Contains(rfh.GetProcess()->GetID())) { + ->Contains(rfh.GetProcess()->GetDeprecatedID())) { return true; } @@ -97,7 +97,8 @@ // model. if (const extensions::Extension* extension = extensions::ProcessMap::Get(rfh.GetBrowserContext()) - ->GetEnabledExtensionByProcessID(rfh.GetProcess()->GetID())) { + ->GetEnabledExtensionByProcessID( + rfh.GetProcess()->GetDeprecatedID())) { return ValidateAddressAndPortForChromeApp(extension, address, port, protocol); } @@ -115,7 +116,7 @@ base::OnceCallback<void(bool)> callback) { // No additional rules for Chrome Apps. if (extensions::ProcessMap::Get(rfh.GetBrowserContext()) - ->Contains(rfh.GetProcess()->GetID())) { + ->Contains(rfh.GetProcess()->GetDeprecatedID())) { std::move(callback).Run(/*allow_access=*/true); return; }
diff --git a/chrome/browser/dom_distiller/tab_utils_browsertest.cc b/chrome/browser/dom_distiller/tab_utils_browsertest.cc index d823b12..a92ce8c 100644 --- a/chrome/browser/dom_distiller/tab_utils_browsertest.cc +++ b/chrome/browser/dom_distiller/tab_utils_browsertest.cc
@@ -282,7 +282,7 @@ ->tab_strip_model() ->GetActiveWebContents() ->GetPrimaryMainFrame(); - int process_id = main_frame->GetProcess()->GetID(); + int process_id = main_frame->GetProcess()->GetDeprecatedID(); int frame_routing_id = main_frame->GetRoutingID(); distillability_observer.WaitForResult(expected_result);
diff --git a/chrome/browser/download/android/download_controller.cc b/chrome/browser/download/android/download_controller.cc index aae65c7..ffb13e86 100644 --- a/chrome/browser/download/android/download_controller.cc +++ b/chrome/browser/download/android/download_controller.cc
@@ -591,7 +591,8 @@ const ContextMenuParams& params, WebContents* web_contents, bool is_link) { - int process_id = web_contents->GetRenderViewHost()->GetProcess()->GetID(); + int process_id = + web_contents->GetRenderViewHost()->GetProcess()->GetDeprecatedID(); int routing_id = web_contents->GetRenderViewHost()->GetRoutingID(); const content::WebContents::Getter& wc_getter(
diff --git a/chrome/browser/download/android/intercept_oma_download_navigation_throttle.cc b/chrome/browser/download/android/intercept_oma_download_navigation_throttle.cc index d87ec99..0f7f0c2d 100644 --- a/chrome/browser/download/android/intercept_oma_download_navigation_throttle.cc +++ b/chrome/browser/download/android/intercept_oma_download_navigation_throttle.cc
@@ -100,8 +100,9 @@ .value_or(std::string()); content::WebContents* web_contents = navigation_handle()->GetWebContents(); int process_id = - web_contents ? web_contents->GetRenderViewHost()->GetProcess()->GetID() - : 0; + web_contents + ? web_contents->GetRenderViewHost()->GetProcess()->GetDeprecatedID() + : 0; int routing_id = web_contents ? web_contents->GetRenderViewHost()->GetRoutingID() : 0;
diff --git a/chrome/browser/download/save_package_file_picker.cc b/chrome/browser/download/save_package_file_picker.cc index 411eb065..34c9eff 100644 --- a/chrome/browser/download/save_package_file_picker.cc +++ b/chrome/browser/download/save_package_file_picker.cc
@@ -137,7 +137,7 @@ DownloadPrefs* download_prefs, content::SavePackagePathPickedCallback callback) : render_process_id_( - web_contents->GetPrimaryMainFrame()->GetProcess()->GetID()), + web_contents->GetPrimaryMainFrame()->GetProcess()->GetDeprecatedID()), can_save_as_complete_(can_save_as_complete), download_prefs_(download_prefs), callback_(std::move(callback)) {
diff --git a/chrome/browser/download/save_page_browsertest.cc b/chrome/browser/download/save_page_browsertest.cc index cfefb021..d98991e 100644 --- a/chrome/browser/download/save_page_browsertest.cc +++ b/chrome/browser/download/save_page_browsertest.cc
@@ -1172,9 +1172,10 @@ [web_contents, &did_kill_a_process](RenderFrameHost* frame) { if (frame->GetLastCommittedURL().host() == "bar.com") { RenderProcessHost* process_to_kill = frame->GetProcess(); - EXPECT_NE( - web_contents->GetPrimaryMainFrame()->GetProcess()->GetID(), - process_to_kill->GetID()) + EXPECT_NE(web_contents->GetPrimaryMainFrame() + ->GetProcess() + ->GetDeprecatedID(), + process_to_kill->GetDeprecatedID()) << "a.com and bar.com should be in different processes."; EXPECT_TRUE(process_to_kill->FastShutdownIfPossible());
diff --git a/chrome/browser/enterprise/signin/managed_profile_creator.cc b/chrome/browser/enterprise/signin/managed_profile_creator.cc index c6048a39..6401574 100644 --- a/chrome/browser/enterprise/signin/managed_profile_creator.cc +++ b/chrome/browser/enterprise/signin/managed_profile_creator.cc
@@ -35,7 +35,7 @@ profile_manager->GetProfileAttributesStorage(); profile_observation_.Observe(&storage); - auto icon_index = storage.ChooseAvatarIconIndexForNewProfile(); + auto icon_index = profiles::GetPlaceholderAvatarIndex(); std::u16string name = local_profile_name.empty() ? storage.ChooseNameForNewProfile(icon_index) : local_profile_name;
diff --git a/chrome/browser/extensions/api/developer_private/developer_private_apitest.cc b/chrome/browser/extensions/api/developer_private/developer_private_apitest.cc index 7653ab4..2386bc2 100644 --- a/chrome/browser/extensions/api/developer_private/developer_private_apitest.cc +++ b/chrome/browser/extensions/api/developer_private/developer_private_apitest.cc
@@ -437,7 +437,7 @@ content::WebContents* offscreen_contents = offscreen_document->host_contents(); EXPECT_EQ(offscreen_url.spec(), view.url); - EXPECT_EQ(offscreen_document->render_process_host()->GetID(), + EXPECT_EQ(offscreen_document->render_process_host()->GetDeprecatedID(), view.render_process_id); EXPECT_EQ(offscreen_contents->GetPrimaryMainFrame()->GetRoutingID(), view.render_view_id);
diff --git a/chrome/browser/extensions/api/developer_private/inspectable_views_finder.cc b/chrome/browser/extensions/api/developer_private/inspectable_views_finder.cc index 8de3e233..ec11791 100644 --- a/chrome/browser/extensions/api/developer_private/inspectable_views_finder.cc +++ b/chrome/browser/extensions/api/developer_private/inspectable_views_finder.cc
@@ -191,9 +191,9 @@ } content::RenderProcessHost* process = host->GetProcess(); - result->push_back(ConstructView(url, process->GetID(), host->GetRoutingID(), - is_incognito, !host->IsInPrimaryMainFrame(), - ConvertViewType(host_type))); + result->push_back(ConstructView( + url, process->GetDeprecatedID(), host->GetRoutingID(), is_incognito, + !host->IsInPrimaryMainFrame(), ConvertViewType(host_type))); } std::vector<WorkerId> service_worker_ids = @@ -227,9 +227,10 @@ url = window->initial_url(); content::RenderFrameHost* main_frame = web_contents->GetPrimaryMainFrame(); - result->push_back(ConstructView( - url, main_frame->GetProcess()->GetID(), main_frame->GetRoutingID(), - false, false, ConvertViewType(GetViewType(web_contents)))); + result->push_back( + ConstructView(url, main_frame->GetProcess()->GetDeprecatedID(), + main_frame->GetRoutingID(), false, false, + ConvertViewType(GetViewType(web_contents)))); } }
diff --git a/chrome/browser/extensions/api/downloads/downloads_api_browsertest.cc b/chrome/browser/extensions/api/downloads/downloads_api_browsertest.cc index 510215c8..27e2d66 100644 --- a/chrome/browser/extensions/api/downloads/downloads_api_browsertest.cc +++ b/chrome/browser/extensions/api/downloads/downloads_api_browsertest.cc
@@ -723,7 +723,7 @@ function->set_extension(extension); function->SetRenderFrameHost(tab->GetPrimaryMainFrame()); function->set_source_process_id( - tab->GetPrimaryMainFrame()->GetProcess()->GetID()); + tab->GetPrimaryMainFrame()->GetProcess()->GetDeprecatedID()); } }
diff --git a/chrome/browser/extensions/api/processes/processes_api.cc b/chrome/browser/extensions/api/processes/processes_api.cc index 1f70d38..ba4b8777 100644 --- a/chrome/browser/extensions/api/processes/processes_api.cc +++ b/chrome/browser/extensions/api/processes/processes_api.cc
@@ -472,7 +472,8 @@ // TODO(crbug.com/41345944): chrome.processes.getProcessIdForTab API // incorrectly assumes a *single* renderer process per tab. - const int process_id = contents->GetPrimaryMainFrame()->GetProcess()->GetID(); + const int process_id = + contents->GetPrimaryMainFrame()->GetProcess()->GetDeprecatedID(); return RespondNow(ArgumentList( api::processes::GetProcessIdForTab::Results::Create(process_id))); }
diff --git a/chrome/browser/extensions/api/settings_private/settings_private_event_router_unittest.cc b/chrome/browser/extensions/api/settings_private/settings_private_event_router_unittest.cc index e75c657..4728ed2 100644 --- a/chrome/browser/extensions/api/settings_private/settings_private_event_router_unittest.cc +++ b/chrome/browser/extensions/api/settings_private/settings_private_event_router_unittest.cc
@@ -137,9 +137,9 @@ api::settings_private::OnPrefsChanged::kEventName, &otr_rph, kDummyURL); // Hook up some test observers - EventRouterObserver regular_counter(regular_rph.GetID()); + EventRouterObserver regular_counter(regular_rph.GetDeprecatedID()); regular_event_router->AddObserverForTesting(®ular_counter); - EventRouterObserver otr_counter(otr_rph.GetID()); + EventRouterObserver otr_counter(otr_rph.GetDeprecatedID()); otr_event_router->AddObserverForTesting(&otr_counter); EXPECT_EQ(0, regular_counter.dispatch_count);
diff --git a/chrome/browser/extensions/api/tab_capture/tab_capture_api.cc b/chrome/browser/extensions/api/tab_capture/tab_capture_api.cc index 7fad1fd..9e7a7e99 100644 --- a/chrome/browser/extensions/api/tab_capture/tab_capture_api.cc +++ b/chrome/browser/extensions/api/tab_capture/tab_capture_api.cc
@@ -74,7 +74,7 @@ target_contents->GetPrimaryMainFrame(); DesktopMediaID source( DesktopMediaID::TYPE_WEB_CONTENTS, DesktopMediaID::kNullId, - WebContentsMediaCaptureId(target_frame->GetProcess()->GetID(), + WebContentsMediaCaptureId(target_frame->GetProcess()->GetDeprecatedID(), target_frame->GetRoutingID())); return source; } @@ -192,7 +192,7 @@ TabCaptureRegistry* registry = TabCaptureRegistry::Get(browser_context()); content::RenderFrameHost* main_frame = extension_web_contents->GetPrimaryMainFrame(); - int caller_process_id = main_frame->GetProcess()->GetID(); + int caller_process_id = main_frame->GetProcess()->GetDeprecatedID(); int frame_id = main_frame->GetRoutingID(); std::string device_id = registry->AddRequest( target_contents, extension_id, false, extension()->url(), source, @@ -283,7 +283,7 @@ content::RenderFrameHost* main_frame = consumer_contents->GetPrimaryMainFrame(); - caller_process_id = main_frame->GetProcess()->GetID(); + caller_process_id = main_frame->GetProcess()->GetDeprecatedID(); restrict_to_render_frame_id = main_frame->GetRoutingID(); } else if (should_restrict_to_render_frame) { content::WebContents* sender_contents = GetSenderWebContents(); @@ -298,7 +298,7 @@ origin = extension()->url(); content::RenderFrameHost* main_frame = sender_contents->GetPrimaryMainFrame(); - caller_process_id = main_frame->GetProcess()->GetID(); + caller_process_id = main_frame->GetProcess()->GetDeprecatedID(); restrict_to_render_frame_id = main_frame->GetRoutingID(); } else { // TODO(crbug.com/40805196): Use url::Origin directly here and
diff --git a/chrome/browser/extensions/api/tab_capture/tab_capture_apitest.cc b/chrome/browser/extensions/api/tab_capture/tab_capture_apitest.cc index 330e2f5..65545a56 100644 --- a/chrome/browser/extensions/api/tab_capture/tab_capture_apitest.cc +++ b/chrome/browser/extensions/api/tab_capture/tab_capture_apitest.cc
@@ -168,7 +168,7 @@ web_contents->GetPrimaryMainFrame(); ASSERT_TRUE(main_frame); listener.Reply(base::StringPrintf("web-contents-media-stream://%i:%i", - main_frame->GetProcess()->GetID(), + main_frame->GetProcess()->GetDeprecatedID(), main_frame->GetRoutingID())); ResultCatcher catcher;
diff --git a/chrome/browser/extensions/api/tab_capture/tab_capture_registry.cc b/chrome/browser/extensions/api/tab_capture/tab_capture_registry.cc index 5faa503..c5b1989 100644 --- a/chrome/browser/extensions/api/tab_capture/tab_capture_registry.cc +++ b/chrome/browser/extensions/api/tab_capture/tab_capture_registry.cc
@@ -43,8 +43,9 @@ extension_id_(extension_id), is_anonymous_(is_anonymous), registry_(registry), - render_process_id_( - target_contents->GetPrimaryMainFrame()->GetProcess()->GetID()), + render_process_id_(target_contents->GetPrimaryMainFrame() + ->GetProcess() + ->GetDeprecatedID()), render_frame_id_( target_contents->GetPrimaryMainFrame()->GetRoutingID()) { DCHECK(web_contents());
diff --git a/chrome/browser/extensions/api/web_navigation/web_navigation_api.cc b/chrome/browser/extensions/api/web_navigation/web_navigation_api.cc index 3240115..0985e698 100644 --- a/chrome/browser/extensions/api/web_navigation/web_navigation_api.cc +++ b/chrome/browser/extensions/api/web_navigation/web_navigation_api.cc
@@ -356,7 +356,7 @@ bool new_contents_is_present_in_tabstrip = ExtensionTabUtil::GetTabStripModel( new_contents, &ignored_tab_strip_model, &ignored_tab_index); router->RecordNewWebContents( - web_contents(), source_render_frame_host->GetProcess()->GetID(), + web_contents(), source_render_frame_host->GetProcess()->GetDeprecatedID(), source_render_frame_host->GetRoutingID(), url, new_contents, !new_contents_is_present_in_tabstrip); } @@ -628,7 +628,8 @@ ExtensionApiFrameIdMap::GetFrameType(render_frame_host); frame.document_lifecycle = ExtensionApiFrameIdMap::GetDocumentLifecycle(render_frame_host); - frame.process_id = render_frame_host->GetProcess()->GetID(); + frame.process_id = + render_frame_host->GetProcess()->GetDeprecatedID(); frame.error_occurred = navigation_state->GetErrorOccurredInFrame(); result_list.push_back(std::move(frame)); return content::RenderFrameHost::FrameIterationAction::kContinue;
diff --git a/chrome/browser/extensions/api/web_navigation/web_navigation_api_helpers.cc b/chrome/browser/extensions/api/web_navigation/web_navigation_api_helpers.cc index 6d0d127a..a644d39 100644 --- a/chrome/browser/extensions/api/web_navigation/web_navigation_api_helpers.cc +++ b/chrome/browser/extensions/api/web_navigation/web_navigation_api_helpers.cc
@@ -112,7 +112,7 @@ ExtensionTabUtil::GetTabId(web_contents)); dict.Set(web_navigation_api_constants::kUrlKey, url.spec()); dict.Set(web_navigation_api_constants::kProcessIdKey, - frame_host->GetProcess()->GetID()); + frame_host->GetProcess()->GetDeprecatedID()); dict.Set(web_navigation_api_constants::kFrameIdKey, ExtensionApiFrameIdMap::GetFrameId(frame_host)); dict.Set(web_navigation_api_constants::kParentFrameIdKey, @@ -174,7 +174,7 @@ web_navigation::OnDOMContentLoaded::Details details; details.tab_id = ExtensionTabUtil::GetTabId(web_contents); details.url = url.spec(); - details.process_id = frame_host->GetProcess()->GetID(); + details.process_id = frame_host->GetProcess()->GetDeprecatedID(); details.frame_id = ExtensionApiFrameIdMap::GetFrameId(frame_host); details.parent_frame_id = ExtensionApiFrameIdMap::GetParentFrameId(frame_host); @@ -206,7 +206,7 @@ web_navigation::OnCompleted::Details details; details.tab_id = ExtensionTabUtil::GetTabId(web_contents); details.url = url.spec(); - details.process_id = frame_host->GetProcess()->GetID(); + details.process_id = frame_host->GetProcess()->GetDeprecatedID(); details.frame_id = ExtensionApiFrameIdMap::GetFrameId(frame_host); details.parent_frame_id = ExtensionApiFrameIdMap::GetParentFrameId(frame_host); @@ -276,7 +276,7 @@ web_navigation::OnErrorOccurred::Details details; details.tab_id = ExtensionTabUtil::GetTabId(web_contents); details.url = url.spec(); - details.process_id = frame_host->GetProcess()->GetID(); + details.process_id = frame_host->GetProcess()->GetDeprecatedID(); details.frame_id = ExtensionApiFrameIdMap::GetFrameId(frame_host); details.parent_frame_id = ExtensionApiFrameIdMap::GetParentFrameId(frame_host);
diff --git a/chrome/browser/extensions/api/web_request/web_request_apitest.cc b/chrome/browser/extensions/api/web_request/web_request_apitest.cc index 23d8443b..67ff3620 100644 --- a/chrome/browser/extensions/api/web_request/web_request_apitest.cc +++ b/chrome/browser/extensions/api/web_request/web_request_apitest.cc
@@ -2634,7 +2634,7 @@ content::RenderFrameHost* frame = temp_web_contents->GetPrimaryMainFrame(); EXPECT_TRUE(api->MaybeProxyURLLoaderFactory( frame->GetProcess()->GetBrowserContext(), frame, - frame->GetProcess()->GetID(), + frame->GetProcess()->GetDeprecatedID(), content::ContentBrowserClient::URLLoaderFactoryType::kDocumentSubResource, std::nullopt, ukm::kInvalidSourceIdObj, factory_builder, nullptr, nullptr));
diff --git a/chrome/browser/extensions/api/web_view/chrome_web_view_internal_api.cc b/chrome/browser/extensions/api/web_view/chrome_web_view_internal_api.cc index 7a09813..7e45682 100644 --- a/chrome/browser/extensions/api/web_view/chrome_web_view_internal_api.cc +++ b/chrome/browser/extensions/api/web_view/chrome_web_view_internal_api.cc
@@ -28,10 +28,10 @@ MenuItem::Id id( Profile::FromBrowserContext(browser_context())->IsOffTheRecord(), - MenuItem::ExtensionKey(MaybeGetExtensionId(extension()), - render_frame_host()->GetProcess()->GetID(), - render_frame_host()->GetRoutingID(), - params->instance_id)); + MenuItem::ExtensionKey( + MaybeGetExtensionId(extension()), + render_frame_host()->GetProcess()->GetDeprecatedID(), + render_frame_host()->GetRoutingID(), params->instance_id)); if (params->create_properties.id) { id.string_uid = *params->create_properties.id; @@ -63,10 +63,10 @@ Profile* profile = Profile::FromBrowserContext(browser_context()); MenuItem::Id item_id( profile->IsOffTheRecord(), - MenuItem::ExtensionKey(MaybeGetExtensionId(extension()), - render_frame_host()->GetProcess()->GetID(), - render_frame_host()->GetRoutingID(), - params->instance_id)); + MenuItem::ExtensionKey( + MaybeGetExtensionId(extension()), + render_frame_host()->GetProcess()->GetDeprecatedID(), + render_frame_host()->GetRoutingID(), params->instance_id)); if (params->id.as_string) { item_id.string_uid = *params->id.as_string; @@ -94,10 +94,10 @@ MenuItem::Id id( Profile::FromBrowserContext(browser_context())->IsOffTheRecord(), - MenuItem::ExtensionKey(MaybeGetExtensionId(extension()), - render_frame_host()->GetProcess()->GetID(), - render_frame_host()->GetRoutingID(), - params->instance_id)); + MenuItem::ExtensionKey( + MaybeGetExtensionId(extension()), + render_frame_host()->GetProcess()->GetDeprecatedID(), + render_frame_host()->GetRoutingID(), params->instance_id)); if (params->menu_item_id.as_string) { id.string_uid = *params->menu_item_id.as_string; @@ -130,7 +130,7 @@ MenuManager::Get(Profile::FromBrowserContext(browser_context())); menu_manager->RemoveAllContextItems(MenuItem::ExtensionKey( MaybeGetExtensionId(extension()), - render_frame_host()->GetProcess()->GetID(), + render_frame_host()->GetProcess()->GetDeprecatedID(), render_frame_host()->GetRoutingID(), params->instance_id)); return RespondNow(NoArguments());
diff --git a/chrome/browser/extensions/app_process_apitest.cc b/chrome/browser/extensions/app_process_apitest.cc index 0a694e3..7211943 100644 --- a/chrome/browser/extensions/app_process_apitest.cc +++ b/chrome/browser/extensions/app_process_apitest.cc
@@ -103,7 +103,7 @@ ->GetWebContentsAt(1) ->GetPrimaryMainFrame() ->GetProcess() - ->GetID())); + ->GetDeprecatedID())); EXPECT_FALSE(browser()->tab_strip_model()->GetWebContentsAt(1)->GetWebUI()); ui_test_utils::TabAddedWaiter tab_add(browser()); @@ -118,7 +118,7 @@ ->GetWebContentsAt(2) ->GetPrimaryMainFrame() ->GetProcess() - ->GetID())); + ->GetDeprecatedID())); EXPECT_FALSE(browser()->tab_strip_model()->GetWebContentsAt(2)->GetWebUI()); // We should have opened 2 new extension tabs. Including the original blank @@ -183,7 +183,7 @@ ->GetWebContentsAt(1) ->GetPrimaryMainFrame() ->GetProcess() - ->GetID())); + ->GetDeprecatedID())); EXPECT_FALSE(browser()->tab_strip_model()->GetWebContentsAt(1)->GetWebUI()); ui_test_utils::NavigateToURLWithDisposition( @@ -195,7 +195,7 @@ ->GetWebContentsAt(2) ->GetPrimaryMainFrame() ->GetProcess() - ->GetID())); + ->GetDeprecatedID())); EXPECT_FALSE(browser()->tab_strip_model()->GetWebContentsAt(2)->GetWebUI()); ui_test_utils::TabAddedWaiter tab_add(browser()); @@ -208,7 +208,7 @@ ->GetWebContentsAt(3) ->GetPrimaryMainFrame() ->GetProcess() - ->GetID())); + ->GetDeprecatedID())); EXPECT_FALSE(browser()->tab_strip_model()->GetWebContentsAt(3)->GetWebUI()); // We should have opened 3 new extension tabs. Including the original blank @@ -360,7 +360,7 @@ LOG(INFO) << "Loading path1/empty.html - done."; WebContents* contents = browser()->tab_strip_model()->GetWebContentsAt(0); EXPECT_FALSE(process_map->Contains( - contents->GetPrimaryMainFrame()->GetProcess()->GetID())); + contents->GetPrimaryMainFrame()->GetProcess()->GetDeprecatedID())); // Load app and re-navigate to the page. LOG(INFO) << "Loading extension."; @@ -373,7 +373,7 @@ browser(), base_url.Resolve("path1/empty.html"))); LOG(INFO) << "Loading path1/empty.html - done."; EXPECT_TRUE(process_map->Contains( - contents->GetPrimaryMainFrame()->GetProcess()->GetID())); + contents->GetPrimaryMainFrame()->GetProcess()->GetDeprecatedID())); // Disable app and re-navigate to the page. LOG(INFO) << "Disabling extension."; @@ -384,7 +384,7 @@ browser(), base_url.Resolve("path1/empty.html"))); LOG(INFO) << "Loading path1/empty.html - done."; EXPECT_FALSE(process_map->Contains( - contents->GetPrimaryMainFrame()->GetProcess()->GetID())); + contents->GetPrimaryMainFrame()->GetProcess()->GetDeprecatedID())); } // Ensure that reloading a URL after installing or uninstalling it as an app @@ -416,7 +416,7 @@ WebContents* contents = browser()->tab_strip_model()->GetWebContentsAt(0); content::NavigationController& controller = contents->GetController(); EXPECT_FALSE(process_map->Contains( - contents->GetPrimaryMainFrame()->GetProcess()->GetID())); + contents->GetPrimaryMainFrame()->GetProcess()->GetDeprecatedID())); // The test starts with about:blank, then navigates to path1/empty.html, // so there should be two entries. EXPECT_EQ(2, controller.GetEntryCount()); @@ -432,7 +432,7 @@ reload_observer.Wait(); LOG(INFO) << "Reloading - done."; EXPECT_TRUE(process_map->Contains( - contents->GetPrimaryMainFrame()->GetProcess()->GetID())); + contents->GetPrimaryMainFrame()->GetProcess()->GetDeprecatedID())); // Reloading, even with changing SiteInstance/process should not add any // more entries. EXPECT_EQ(2, controller.GetEntryCount()); @@ -448,7 +448,7 @@ reload_observer2.Wait(); LOG(INFO) << "Reloading - done."; EXPECT_FALSE(process_map->Contains( - contents->GetPrimaryMainFrame()->GetProcess()->GetID())); + contents->GetPrimaryMainFrame()->GetProcess()->GetDeprecatedID())); EXPECT_EQ(2, controller.GetEntryCount()); } @@ -480,7 +480,7 @@ LOG(INFO) << "Navigate to path1/empty.html - done."; WebContents* contents = browser()->tab_strip_model()->GetWebContentsAt(0); EXPECT_FALSE(process_map->Contains( - contents->GetPrimaryMainFrame()->GetProcess()->GetID())); + contents->GetPrimaryMainFrame()->GetProcess()->GetDeprecatedID())); // Enable app and reload via JavaScript. LOG(INFO) << "Enabling extension."; @@ -493,7 +493,7 @@ js_reload_observer.Wait(); LOG(INFO) << "Executing location.reload() - done."; EXPECT_TRUE(process_map->Contains( - contents->GetPrimaryMainFrame()->GetProcess()->GetID())); + contents->GetPrimaryMainFrame()->GetProcess()->GetDeprecatedID())); // Disable app and reload via JavaScript. LOG(INFO) << "Disabling extension."; @@ -506,7 +506,7 @@ js_reload_observer2.Wait(); LOG(INFO) << "Executing location = location - done."; EXPECT_FALSE(process_map->Contains( - contents->GetPrimaryMainFrame()->GetProcess()->GetID())); + contents->GetPrimaryMainFrame()->GetProcess()->GetDeprecatedID())); } // Similar to the previous test, but ensure that popup blocking bypass @@ -614,7 +614,7 @@ ->GetWebContentsAt(0) ->GetPrimaryMainFrame() ->GetProcess(); - EXPECT_TRUE(process_map->Contains(process->GetID())); + EXPECT_TRUE(process_map->Contains(process->GetDeprecatedID())); // Popup window should be in the app's process. const WindowControllerList* active_window_list = @@ -628,7 +628,7 @@ content::RenderProcessHost* popup_process = popup_contents->GetPrimaryMainFrame()->GetProcess(); EXPECT_EQ(process, popup_process); - EXPECT_TRUE(process_map->Contains(popup_process->GetID())); + EXPECT_TRUE(process_map->Contains(popup_process->GetDeprecatedID())); } IN_PROC_BROWSER_TEST_F(AppApiTest, ReloadAppAfterCrash) { @@ -644,7 +644,7 @@ browser(), base_url.Resolve("path1/empty.html"))); WebContents* contents = browser()->tab_strip_model()->GetWebContentsAt(0); EXPECT_TRUE(process_map->Contains( - contents->GetPrimaryMainFrame()->GetProcess()->GetID())); + contents->GetPrimaryMainFrame()->GetProcess()->GetDeprecatedID())); ASSERT_EQ(true, content::EvalJs(contents, "chrome.app.isInstalled")); // Crash the tab and reload it, chrome.app.isInstalled should still be true. @@ -675,7 +675,8 @@ browser(), base_url.Resolve("path1/iframe.html"))); content::SiteInstance* app_instance = browser()->tab_strip_model()->GetWebContentsAt(0)->GetSiteInstance(); - EXPECT_TRUE(process_map->Contains(app_instance->GetProcess()->GetID())); + EXPECT_TRUE( + process_map->Contains(app_instance->GetProcess()->GetDeprecatedID())); // Popup window should be in the app's process. const WindowControllerList* active_window_list =
diff --git a/chrome/browser/extensions/chrome_content_browser_client_extensions_part.cc b/chrome/browser/extensions/chrome_content_browser_client_extensions_part.cc index fd5cb94..3b994623 100644 --- a/chrome/browser/extensions/chrome_content_browser_client_extensions_part.cc +++ b/chrome/browser/extensions/chrome_content_browser_client_extensions_part.cc
@@ -205,7 +205,7 @@ if (!epm) continue; for (ExtensionHost* host : epm->background_hosts()) - process_ids.insert(host->render_process_host()->GetID()); + process_ids.insert(host->render_process_host()->GetDeprecatedID()); } return process_ids.size(); } @@ -405,7 +405,7 @@ // commit. This accounts for cases where an extension might have multiple // processes, such as incognito split mode. ProcessMap* process_map = ProcessMap::Get(process_host->GetBrowserContext()); - if (process_map->Contains(extension->id(), process_host->GetID())) { + if (process_map->Contains(extension->id(), process_host->GetDeprecatedID())) { return true; } @@ -430,13 +430,14 @@ // well, but their pages load in their own extension process and are allowed // through above.) #if BUILDFLAG(ENABLE_GUEST_VIEW) - bool is_guest = - WebViewRendererState::GetInstance()->IsGuest(process_host->GetID()); + bool is_guest = WebViewRendererState::GetInstance()->IsGuest( + process_host->GetDeprecatedID()); if (is_guest) { ExtensionId owner_extension_id; int owner_process_id = -1; bool found_owner = WebViewRendererState::GetInstance()->GetOwnerInfo( - process_host->GetID(), &owner_process_id, &owner_extension_id); + process_host->GetDeprecatedID(), &owner_process_id, + &owner_extension_id); DCHECK(found_owner); return extension->is_platform_app() && extension->permissions_data()->HasAPIPermission( @@ -475,8 +476,8 @@ // SiteInstances for both extensions and hosted apps. const Extension* extension = GetEnabledExtensionFromSiteURL(profile, site_url); - if (extension && - !process_map->Contains(extension->id(), process_host->GetID())) { + if (extension && !process_map->Contains(extension->id(), + process_host->GetDeprecatedID())) { return false; } @@ -484,7 +485,7 @@ // map to an enabled extension. For example, this prevents a reload of an // extension or app that has just been disabled from staying in the // privileged extension process. - if (!extension && process_map->Contains(process_host->GetID())) { + if (!extension && process_map->Contains(process_host->GetDeprecatedID())) { return false; } @@ -598,8 +599,9 @@ ProcessMap* process_map = ProcessMap::Get(site_instance->GetBrowserContext()); if (is_dest_url_for_webstore_app && site_instance->HasProcess() && !process_map->Contains(dest_extension->id(), - site_instance->GetProcess()->GetID())) + site_instance->GetProcess()->GetDeprecatedID())) { return true; + } // Otherwise, swap BrowsingInstances when transitioning to/from Chrome Web // Store. @@ -810,8 +812,8 @@ // unrelated tabs. This call will ignore duplicate insertions, which is fine, // since we only need to track if the extension is in the process, rather // than how many instances it has in that process. - ProcessMap::Get(context)->Insert(extension->id(), - site_instance->GetProcess()->GetID()); + ProcessMap::Get(context)->Insert( + extension->id(), site_instance->GetProcess()->GetDeprecatedID()); } bool ChromeContentBrowserClientExtensionsPart:: @@ -913,8 +915,9 @@ return; } - if (auto* extension = ProcessMap::Get(process.GetBrowserContext()) - ->GetEnabledExtensionByProcessID(process.GetID())) { + if (auto* extension = + ProcessMap::Get(process.GetBrowserContext()) + ->GetEnabledExtensionByProcessID(process.GetDeprecatedID())) { command_line->AppendSwitch(switches::kExtensionProcess); // Blink usually initializes the main-thread Isolate in background mode for
diff --git a/chrome/browser/extensions/chrome_content_browser_client_extensions_part_bindings.cc b/chrome/browser/extensions/chrome_content_browser_client_extensions_part_bindings.cc index a79f335c..ce7c164 100644 --- a/chrome/browser/extensions/chrome_content_browser_client_extensions_part_bindings.cc +++ b/chrome/browser/extensions/chrome_content_browser_client_extensions_part_bindings.cc
@@ -31,7 +31,7 @@ blink::AssociatedInterfaceRegistry* associated_registry, content::RenderProcessHost* host) { associated_registry->AddInterface<mojom::RendererHost>(base::BindRepeating( - &RendererStartupHelper::BindForRenderer, host->GetID())); + &RendererStartupHelper::BindForRenderer, host->GetDeprecatedID())); } void ChromeContentBrowserClientExtensionsPart:: @@ -60,7 +60,7 @@ ExposeInterfacesToRendererForRenderFrameHost( content::RenderFrameHost& frame_host, blink::AssociatedInterfaceRegistry& associated_registry) { - int render_process_id = frame_host.GetProcess()->GetID(); + int render_process_id = frame_host.GetProcess()->GetDeprecatedID(); associated_registry.AddInterface<mojom::RendererHost>(base::BindRepeating( &RendererStartupHelper::BindForRenderer, render_process_id)); #if BUILDFLAG(ENABLE_EXTENSIONS)
diff --git a/chrome/browser/extensions/chrome_extension_frame_host.cc b/chrome/browser/extensions/chrome_extension_frame_host.cc index b494e661..1737930 100644 --- a/chrome/browser/extensions/chrome_extension_frame_host.cc +++ b/chrome/browser/extensions/chrome_extension_frame_host.cc
@@ -90,7 +90,7 @@ stack_trace, web_contents_->GetLastCommittedURL(), blink::ConsoleMessageLevelToLogSeverity(level), render_frame_host->GetRoutingID(), - render_frame_host->GetProcess()->GetID()))); + render_frame_host->GetProcess()->GetDeprecatedID()))); } void ChromeExtensionFrameHost::ContentScriptsExecuting(
diff --git a/chrome/browser/extensions/chrome_extension_web_contents_observer.cc b/chrome/browser/extensions/chrome_extension_web_contents_observer.cc index 84abd3a..61d3fa3 100644 --- a/chrome/browser/extensions/chrome_extension_web_contents_observer.cc +++ b/chrome/browser/extensions/chrome_extension_web_contents_observer.cc
@@ -104,7 +104,7 @@ return; } - int process_id = render_frame_host->GetProcess()->GetID(); + int process_id = render_frame_host->GetProcess()->GetDeprecatedID(); auto* policy = content::ChildProcessSecurityPolicy::GetInstance(); // Components of chrome that are implemented as extensions or platform apps
diff --git a/chrome/browser/extensions/cross_origin_isolation_browsertest.cc b/chrome/browser/extensions/cross_origin_isolation_browsertest.cc index 1b1578b..6fa7c54 100644 --- a/chrome/browser/extensions/cross_origin_isolation_browsertest.cc +++ b/chrome/browser/extensions/cross_origin_isolation_browsertest.cc
@@ -332,19 +332,22 @@ ASSERT_TRUE(process_map); EXPECT_TRUE(process_map->Contains( coi_extension->id(), - coi_background_render_frame_host->GetProcess()->GetID())); - EXPECT_TRUE(process_map->Contains(coi_extension->id(), - extension_iframe->GetProcess()->GetID())); + coi_background_render_frame_host->GetProcess()->GetDeprecatedID())); + EXPECT_TRUE(process_map->Contains( + coi_extension->id(), + extension_iframe->GetProcess()->GetDeprecatedID())); GURL* url = nullptr; EXPECT_EQ( mojom::ContextType::kPrivilegedExtension, process_map->GetMostLikelyContextType( coi_extension, - coi_background_render_frame_host->GetProcess()->GetID(), url)); + coi_background_render_frame_host->GetProcess()->GetDeprecatedID(), + url)); EXPECT_EQ(mojom::ContextType::kPrivilegedExtension, process_map->GetMostLikelyContextType( - coi_extension, extension_iframe->GetProcess()->GetID(), url)); + coi_extension, + extension_iframe->GetProcess()->GetDeprecatedID(), url)); } // Ensure both cross-origin-isolated and non-cross-origin-isolated extension @@ -444,18 +447,19 @@ // extension has multiple processes for the same profile. ProcessMap* process_map = ProcessMap::Get(profile()); ASSERT_TRUE(process_map); + EXPECT_TRUE(process_map->Contains( + coi_extension->id(), extension_tab->GetProcess()->GetDeprecatedID())); EXPECT_TRUE(process_map->Contains(coi_extension->id(), - extension_tab->GetProcess()->GetID())); - EXPECT_TRUE(process_map->Contains(coi_extension->id(), - service_worker_process->GetID())); + service_worker_process->GetDeprecatedID())); GURL* url = nullptr; + EXPECT_EQ( + mojom::ContextType::kPrivilegedExtension, + process_map->GetMostLikelyContextType( + coi_extension, extension_tab->GetProcess()->GetDeprecatedID(), url)); EXPECT_EQ(mojom::ContextType::kPrivilegedExtension, process_map->GetMostLikelyContextType( - coi_extension, extension_tab->GetProcess()->GetID(), url)); - EXPECT_EQ(mojom::ContextType::kPrivilegedExtension, - process_map->GetMostLikelyContextType( - coi_extension, service_worker_process->GetID(), url)); + coi_extension, service_worker_process->GetDeprecatedID(), url)); } // Tests certain extension APIs which retrieve in-process extension windows.
diff --git a/chrome/browser/extensions/events_apitest.cc b/chrome/browser/extensions/events_apitest.cc index 5fb618b8..f64a53a6 100644 --- a/chrome/browser/extensions/events_apitest.cc +++ b/chrome/browser/extensions/events_apitest.cc
@@ -976,7 +976,7 @@ content::RenderProcessHost::FromID(unacked_event_info->render_process_id); ASSERT_TRUE(worker_render_process_host); ASSERT_EQ(unacked_event_info->render_process_id, - worker_render_process_host->GetID()); + worker_render_process_host->GetDeprecatedID()); // Terminate worker's RenderProcessHost which triggers the cleanup logic. content::RenderProcessHostWatcher process_exit_observer(
diff --git a/chrome/browser/extensions/extension_crash_recovery_browsertest.cc b/chrome/browser/extensions/extension_crash_recovery_browsertest.cc index ae3350cd..682b60a 100644 --- a/chrome/browser/extensions/extension_crash_recovery_browsertest.cc +++ b/chrome/browser/extensions/extension_crash_recovery_browsertest.cc
@@ -107,7 +107,8 @@ extensions::ProcessMap* process_map = extensions::ProcessMap::Get(browser()->profile()); ASSERT_TRUE(process_map->Contains( - extension_id, extension_host->render_process_host()->GetID())); + extension_id, + extension_host->render_process_host()->GetDeprecatedID())); } void LoadTestExtension() {
diff --git a/chrome/browser/extensions/extension_security_exploit_browsertest.cc b/chrome/browser/extensions/extension_security_exploit_browsertest.cc index 4540fbb4..e7c94ff 100644 --- a/chrome/browser/extensions/extension_security_exploit_browsertest.cc +++ b/chrome/browser/extensions/extension_security_exploit_browsertest.cc
@@ -357,13 +357,17 @@ // RenderProcessHost on all platforms.) GURL test_page_url = embedded_test_server()->GetURL("foo.com", "/title1.html"); - int old_process_id = - active_web_contents()->GetPrimaryMainFrame()->GetProcess()->GetID(); + int old_process_id = active_web_contents() + ->GetPrimaryMainFrame() + ->GetProcess() + ->GetDeprecatedID(); EXPECT_TRUE( ui_test_utils::NavigateToURL(browser(), GURL("chrome://version"))); EXPECT_TRUE(ui_test_utils::NavigateToURL(browser(), test_page_url)); - int new_process_id = - active_web_contents()->GetPrimaryMainFrame()->GetProcess()->GetID(); + int new_process_id = active_web_contents() + ->GetPrimaryMainFrame() + ->GetProcess() + ->GetDeprecatedID(); EXPECT_NE(old_process_id, new_process_id); // Install the extensions (and potentially spawn new RenderProcessHosts)
diff --git a/chrome/browser/extensions/extension_service.cc b/chrome/browser/extensions/extension_service.cc index 436cea2..1928cd8d 100644 --- a/chrome/browser/extensions/extension_service.cc +++ b/chrome/browser/extensions/extension_service.cc
@@ -2185,7 +2185,7 @@ // An extension process was terminated, this might have resulted in an // app or extension becoming idle. if (std::optional<std::string> extension_id = - process_map->GetExtensionIdForProcess(host->GetID())) { + process_map->GetExtensionIdForProcess(host->GetDeprecatedID())) { // The extension running in this process might also be referencing a shared // module which is waiting for idle to update. Check all imports of this // extension too. @@ -2213,7 +2213,7 @@ } } } - process_map->Remove(host->GetID()); + process_map->Remove(host->GetDeprecatedID()); } int ExtensionService::GetDisableReasonsOnInstalled(const Extension* extension) {
diff --git a/chrome/browser/extensions/offscreen_document_browsertest.cc b/chrome/browser/extensions/offscreen_document_browsertest.cc index ee146c2..b2038ec 100644 --- a/chrome/browser/extensions/offscreen_document_browsertest.cc +++ b/chrome/browser/extensions/offscreen_document_browsertest.cc
@@ -137,7 +137,8 @@ { mojom::ContextType context_type = ProcessMap::Get(profile())->GetMostLikelyContextType( - extension, contents->GetPrimaryMainFrame()->GetProcess()->GetID(), + extension, + contents->GetPrimaryMainFrame()->GetProcess()->GetDeprecatedID(), &offscreen_url); // TODO(crbug.com/40849649): The following check should be: // EXPECT_EQ(mojom::ContextType::kOffscreenExtension, context_type);
diff --git a/chrome/browser/extensions/omnibox_focus_interactive_test.cc b/chrome/browser/extensions/omnibox_focus_interactive_test.cc index 953546e..7a50df2d 100644 --- a/chrome/browser/extensions/omnibox_focus_interactive_test.cc +++ b/chrome/browser/extensions/omnibox_focus_interactive_test.cc
@@ -418,7 +418,8 @@ content::RenderFrameHost* main_frame = web_contents->GetPrimaryMainFrame(); EXPECT_NE(subframe->GetLastCommittedURL().scheme(), main_frame->GetLastCommittedURL().scheme()); - EXPECT_NE(subframe->GetProcess()->GetID(), main_frame->GetProcess()->GetID()); + EXPECT_NE(subframe->GetProcess()->GetDeprecatedID(), + main_frame->GetProcess()->GetDeprecatedID()); // Trigger a subframe-initiated navigation of the main frame. const char kLinkClickingScriptTemplate[] = R"(
diff --git a/chrome/browser/extensions/process_management_browsertest.cc b/chrome/browser/extensions/process_management_browsertest.cc index 82f714e..7fe3982 100644 --- a/chrome/browser/extensions/process_management_browsertest.cc +++ b/chrome/browser/extensions/process_management_browsertest.cc
@@ -340,7 +340,7 @@ << "When testing extension: " << host->extension_id()); // The process should be locked. EXPECT_TRUE(host->render_process_host()->IsProcessLockedToSiteForTesting()); - process_ids.insert(host->render_process_host()->GetID()); + process_ids.insert(host->render_process_host()->GetDeprecatedID()); } // Each extension is in a locked process, unavailable for sharing. EXPECT_EQ(3u, process_ids.size()); @@ -367,11 +367,11 @@ // Verify the number of processes across extensions and tabs. process_ids.insert( - web_contents1->GetPrimaryMainFrame()->GetProcess()->GetID()); + web_contents1->GetPrimaryMainFrame()->GetProcess()->GetDeprecatedID()); process_ids.insert( - web_contents2->GetPrimaryMainFrame()->GetProcess()->GetID()); + web_contents2->GetPrimaryMainFrame()->GetProcess()->GetDeprecatedID()); process_ids.insert( - web_contents3->GetPrimaryMainFrame()->GetProcess()->GetID()); + web_contents3->GetPrimaryMainFrame()->GetProcess()->GetDeprecatedID()); // The web processes still share 2 processes as if there were a single // extension process (making a total of 5 processes counting the existing 3 @@ -394,7 +394,7 @@ WebContents* web_contents4 = browser()->tab_strip_model()->GetActiveWebContents(); process_ids.insert( - web_contents4->GetPrimaryMainFrame()->GetProcess()->GetID()); + web_contents4->GetPrimaryMainFrame()->GetProcess()->GetDeprecatedID()); // The cross-site process adds 1 more process to the total, to avoid sharing // with the existing web renderer processes (due to Site Isolation). EXPECT_EQ(6u, process_ids.size()); @@ -552,7 +552,7 @@ web_contents->GetPrimaryMainFrame()->GetProcess(); if (GetParam() == kWebstoreURL) { EXPECT_TRUE(extensions::ProcessMap::Get(profile())->Contains( - extensions::kWebStoreAppId, new_process_host->GetID())); + extensions::kWebStoreAppId, new_process_host->GetDeprecatedID())); } // Verify that Webstore is isolated in a separate renderer process. @@ -598,7 +598,7 @@ content::RenderProcessHost* render_process_host = web_contents->GetPrimaryMainFrame()->GetProcess(); EXPECT_TRUE(extensions::ProcessMap::Get(profile())->Contains( - extensions::kWebStoreAppId, render_process_host->GetID())); + extensions::kWebStoreAppId, render_process_host->GetDeprecatedID())); } }
diff --git a/chrome/browser/extensions/process_manager_browsertest.cc b/chrome/browser/extensions/process_manager_browsertest.cc index c0edba4..c6c9b918 100644 --- a/chrome/browser/extensions/process_manager_browsertest.cc +++ b/chrome/browser/extensions/process_manager_browsertest.cc
@@ -750,7 +750,7 @@ EXPECT_EQ(extension->url(), extension_host->host_contents()->GetSiteInstance()->GetSiteURL()); - processes.insert(extension_host->render_process_host()->GetID()); + processes.insert(extension_host->render_process_host()->GetDeprecatedID()); } EXPECT_EQ(kNumExtensions, installed_extensions.size()); @@ -831,23 +831,23 @@ // to the process of the extension iframe. content::ChildProcessSecurityPolicy* policy = content::ChildProcessSecurityPolicy::GetInstance(); - EXPECT_TRUE(policy->CanRequestURL(extension_frame->GetProcess()->GetID(), + EXPECT_TRUE(policy->CanRequestURL( + extension_frame->GetProcess()->GetDeprecatedID(), extension_blob_url)); + EXPECT_TRUE(policy->CanRequestURL(main_frame->GetProcess()->GetDeprecatedID(), extension_blob_url)); - EXPECT_TRUE(policy->CanRequestURL(main_frame->GetProcess()->GetID(), - extension_blob_url)); - EXPECT_TRUE(policy->CanRequestURL(extension_frame->GetProcess()->GetID(), + EXPECT_TRUE(policy->CanRequestURL( + extension_frame->GetProcess()->GetDeprecatedID(), extension_url)); + EXPECT_TRUE(policy->CanRequestURL(main_frame->GetProcess()->GetDeprecatedID(), extension_url)); - EXPECT_TRUE( - policy->CanRequestURL(main_frame->GetProcess()->GetID(), extension_url)); EXPECT_TRUE(content::CanCommitURLForTesting( - extension_frame->GetProcess()->GetID(), extension_blob_url)); + extension_frame->GetProcess()->GetDeprecatedID(), extension_blob_url)); EXPECT_FALSE(content::CanCommitURLForTesting( - main_frame->GetProcess()->GetID(), extension_blob_url)); + main_frame->GetProcess()->GetDeprecatedID(), extension_blob_url)); EXPECT_TRUE(content::CanCommitURLForTesting( - extension_frame->GetProcess()->GetID(), extension_url)); + extension_frame->GetProcess()->GetDeprecatedID(), extension_url)); EXPECT_FALSE(content::CanCommitURLForTesting( - main_frame->GetProcess()->GetID(), extension_url)); + main_frame->GetProcess()->GetDeprecatedID(), extension_url)); // Open a new about:blank popup from main frame. This should stay in the web // process. @@ -1180,10 +1180,11 @@ content::ChildProcessSecurityPolicy* policy = content::ChildProcessSecurityPolicy::GetInstance(); EXPECT_FALSE(policy->CanRequestURL( - web_tab->GetPrimaryMainFrame()->GetProcess()->GetID(), + web_tab->GetPrimaryMainFrame()->GetProcess()->GetDeprecatedID(), app_origin.GetURL())); EXPECT_TRUE(policy->CanRequestURL( - guest_render_frame_host->GetProcess()->GetID(), app_origin.GetURL())); + guest_render_frame_host->GetProcess()->GetDeprecatedID(), + app_origin.GetURL())); // Try navigating the web tab to each nested URL with the app's origin. This // should be blocked.
diff --git a/chrome/browser/extensions/process_map_browsertest.cc b/chrome/browser/extensions/process_map_browsertest.cc index c8eb6d1..14903f7 100644 --- a/chrome/browser/extensions/process_map_browsertest.cc +++ b/chrome/browser/extensions/process_map_browsertest.cc
@@ -58,7 +58,7 @@ } int GetActiveMainFrameProcessID() { - return GetActiveMainFrameProcess().GetID(); + return GetActiveMainFrameProcess().GetDeprecatedID(); } // Adds a new extension with the given `extension_name` and host permission to @@ -755,8 +755,8 @@ EXPECT_TRUE(content::EvalJs(sandboxed_E2_frame, "window.origin == 'null';") .ExtractBool()); // The E2 frame has access to extension APIs. - EXPECT_TRUE( - process_map()->Contains(sandboxed_E2_frame->GetProcess()->GetID())); + EXPECT_TRUE(process_map()->Contains( + sandboxed_E2_frame->GetProcess()->GetDeprecatedID())); EXPECT_TRUE(FrameHasAccessToExtensionApis(sandboxed_E2_frame)); // The E2 frame is sandboxed by virtue of being loaded in an iframe with // a sandbox attribute set, but it is not a manifest-sandboxed frame. As such, @@ -986,10 +986,11 @@ EXPECT_FALSE(ExtensionFrameIsSandboxed(main_frame)); - int main_frame_process_id = main_frame->GetProcess()->GetID(); - int sandboxed_frame_process_id = sandboxed_child_frame->GetProcess()->GetID(); + int main_frame_process_id = main_frame->GetProcess()->GetDeprecatedID(); + int sandboxed_frame_process_id = + sandboxed_child_frame->GetProcess()->GetDeprecatedID(); int non_sandboxed_frame_process_id = - non_sandboxed_child_frame->GetProcess()->GetID(); + non_sandboxed_child_frame->GetProcess()->GetDeprecatedID(); if (expect_subframes_isolated_from_each_other) { EXPECT_NE(sandboxed_frame_process_id, non_sandboxed_frame_process_id); @@ -1090,7 +1091,8 @@ content::RenderFrameHost* sandboxed_child_frame = content::ChildFrameAt(main_frame, 0); - int sandboxed_frame_process_id = sandboxed_child_frame->GetProcess()->GetID(); + int sandboxed_frame_process_id = + sandboxed_child_frame->GetProcess()->GetDeprecatedID(); // Sandboxed extension frames should still have access to other extension // resources. Verify the extension script (resource.js) was properly loaded // by looking for foo variable. @@ -1171,8 +1173,9 @@ content::RenderFrameHost* sandboxed_child_frame = content::ChildFrameAt(main_frame, 0); - int main_frame_process_id = main_frame->GetProcess()->GetID(); - int sandboxed_frame_process_id = sandboxed_child_frame->GetProcess()->GetID(); + int main_frame_process_id = main_frame->GetProcess()->GetDeprecatedID(); + int sandboxed_frame_process_id = + sandboxed_child_frame->GetProcess()->GetDeprecatedID(); // Since we normally process-isolate E1 from E2, placing E1 in a sandboxed // iframe will make no difference. @@ -1235,10 +1238,11 @@ EXPECT_TRUE(ExtensionFrameIsSandboxed(sandboxed_frame)); EXPECT_TRUE(ExtensionFrameIsSandboxed(other_sandboxed_frame)); - int main_frame_process_id = main_frame->GetProcess()->GetID(); - int sandboxed_frame_process_id = sandboxed_frame->GetProcess()->GetID(); + int main_frame_process_id = main_frame->GetProcess()->GetDeprecatedID(); + int sandboxed_frame_process_id = + sandboxed_frame->GetProcess()->GetDeprecatedID(); int other_sandboxed_frame_process_id = - other_sandboxed_frame->GetProcess()->GetID(); + other_sandboxed_frame->GetProcess()->GetDeprecatedID(); // The two manifest-sandboxed frames will be in the same process, regardless // of whether IsolateSandboxedIframes is enabled or not. @@ -1315,7 +1319,8 @@ EXPECT_FALSE(content::EvalJs(srcdoc_frame, "!!chrome && !!chrome.tabs;") .ExtractBool()); - EXPECT_FALSE(process_map()->Contains(srcdoc_frame->GetProcess()->GetID())); + EXPECT_FALSE( + process_map()->Contains(srcdoc_frame->GetProcess()->GetDeprecatedID())); // Make sure the resulting srcdoc frame cannot fetch() extension resources. // The only way `success` in the JS below can become true is if the fetch() @@ -1372,9 +1377,11 @@ *sandboxed_frame->GetProcess(); if (content::SiteIsolationPolicy::AreIsolatedSandboxedIframesEnabled()) { - EXPECT_NE(main_frame_process.GetID(), sandboxed_frame_process.GetID()); + EXPECT_NE(main_frame_process.GetDeprecatedID(), + sandboxed_frame_process.GetDeprecatedID()); } else { - EXPECT_EQ(main_frame_process.GetID(), sandboxed_frame_process.GetID()); + EXPECT_EQ(main_frame_process.GetDeprecatedID(), + sandboxed_frame_process.GetDeprecatedID()); } RunCanProcessHostContextTypeChecks( @@ -1423,9 +1430,11 @@ // The embedder (the app window) should be a privileged extension process, // but the webview should not. EXPECT_TRUE(process_map()->IsPrivilegedExtensionProcess( - *extension, embedder->GetPrimaryMainFrame()->GetProcess()->GetID())); + *extension, + embedder->GetPrimaryMainFrame()->GetProcess()->GetDeprecatedID())); EXPECT_FALSE(process_map()->IsPrivilegedExtensionProcess( - *extension, webview->GetPrimaryMainFrame()->GetProcess()->GetID())); + *extension, + webview->GetPrimaryMainFrame()->GetProcess()->GetDeprecatedID())); } IN_PROC_BROWSER_TEST_F(ProcessMapBrowserTest, CanHostContextType_WebViews) {
diff --git a/chrome/browser/extensions/service_worker_apitest.cc b/chrome/browser/extensions/service_worker_apitest.cc index bd545f1..1ffd3d8 100644 --- a/chrome/browser/extensions/service_worker_apitest.cc +++ b/chrome/browser/extensions/service_worker_apitest.cc
@@ -223,7 +223,8 @@ content::RenderProcessHost::iterator it = content::RenderProcessHost::AllHostsIterator(); while (!it.IsAtEnd()) { - if (process_map->Contains(extension_id, it.GetCurrentValue()->GetID())) { + if (process_map->Contains(extension_id, + it.GetCurrentValue()->GetDeprecatedID())) { return true; } it.Advance();
diff --git a/chrome/browser/extensions/webstore_installer.cc b/chrome/browser/extensions/webstore_installer.cc index 9b676a1..4f4f255 100644 --- a/chrome/browser/extensions/webstore_installer.cc +++ b/chrome/browser/extensions/webstore_installer.cc
@@ -586,7 +586,7 @@ int render_process_host_id = web_contents_->GetPrimaryMainFrame() ->GetRenderViewHost() ->GetProcess() - ->GetID(); + ->GetDeprecatedID(); content::RenderFrameHost* render_frame_host = web_contents_->GetPrimaryMainFrame();
diff --git a/chrome/browser/file_system_access/chrome_file_system_access_permission_context_browsertest.cc b/chrome/browser/file_system_access/chrome_file_system_access_permission_context_browsertest.cc index 2d16191..529bb22 100644 --- a/chrome/browser/file_system_access/chrome_file_system_access_permission_context_browsertest.cc +++ b/chrome/browser/file_system_access/chrome_file_system_access_permission_context_browsertest.cc
@@ -340,11 +340,12 @@ content::FileSystemAccessPermissionGrant::PermissionRequestOutcome> future; auto* rfh = web_contents->GetPrimaryMainFrame(); - grant->RequestPermission(content::GlobalRenderFrameHostId( - rfh->GetProcess()->GetID(), rfh->GetRoutingID()), - content::FileSystemAccessPermissionGrant:: - UserActivationState::kNotRequired, - future.GetCallback()); + grant->RequestPermission( + content::GlobalRenderFrameHostId(rfh->GetProcess()->GetDeprecatedID(), + rfh->GetRoutingID()), + content::FileSystemAccessPermissionGrant::UserActivationState:: + kNotRequired, + future.GetCallback()); auto result = future.Get(); EXPECT_NE(result, content::FileSystemAccessPermissionGrant:: PermissionRequestOutcome::kGrantedByRestorePrompt);
diff --git a/chrome/browser/file_system_access/chrome_file_system_access_permission_context_unittest.cc b/chrome/browser/file_system_access/chrome_file_system_access_permission_context_unittest.cc index 02e0cfc..5b0db34 100644 --- a/chrome/browser/file_system_access/chrome_file_system_access_permission_context_unittest.cc +++ b/chrome/browser/file_system_access/chrome_file_system_access_permission_context_unittest.cc
@@ -449,7 +449,10 @@ WebContents* web_contents() { return web_contents_.get(); } int process_id() { - return web_contents()->GetPrimaryMainFrame()->GetProcess()->GetID(); + return web_contents() + ->GetPrimaryMainFrame() + ->GetProcess() + ->GetDeprecatedID(); } content::GlobalRenderFrameHostId frame_id() {
diff --git a/chrome/browser/flag-metadata.json b/chrome/browser/flag-metadata.json index fedbc5f21..01201df9 100644 --- a/chrome/browser/flag-metadata.json +++ b/chrome/browser/flag-metadata.json
@@ -7093,6 +7093,13 @@ "expiry_milestone": 148 }, { + "name": "privacy-sandbox-ads-api-ux-enhancements", + "owners": [ + "jacobstanley@google.com", + "koilos@google.com"], + "expiry_milestone": 135 + }, + { "name": "privacy-sandbox-ads-apis", "owners": [ "johnidel@chromium.org",
diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc index bc43379c..ee9a74098 100644 --- a/chrome/browser/flag_descriptions.cc +++ b/chrome/browser/flag_descriptions.cc
@@ -3137,6 +3137,12 @@ "Fenced Frames, Shared Storage, Private Aggregation, and their associated " "features."; +const char kPrivacySandboxAdsApiUxEnhancementsName[] = + "Privacy Sandbox Ads API UX Enhancements"; +const char kPrivacySandboxAdsApiUxEnhancementsDescription[] = + "Enables UI and text updates to the Privacy Sandbox Ads APIs Notice and " + "Consent UX, and settings pages to improve user comprehension"; + const char kPrivacySandboxEnrollmentOverridesName[] = "Privacy Sandbox Enrollment Overrides"; const char kPrivacySandboxEnrollmentOverridesDescription[] =
diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h index 88508d88..6712ea6d 100644 --- a/chrome/browser/flag_descriptions.h +++ b/chrome/browser/flag_descriptions.h
@@ -1801,6 +1801,9 @@ extern const char kPrivacySandboxAdsAPIsOverrideName[]; extern const char kPrivacySandboxAdsAPIsOverrideDescription[]; +extern const char kPrivacySandboxAdsApiUxEnhancementsName[]; +extern const char kPrivacySandboxAdsApiUxEnhancementsDescription[]; + extern const char kPrivacySandboxEnrollmentOverridesName[]; extern const char kPrivacySandboxEnrollmentOverridesDescription[];
diff --git a/chrome/browser/font_prewarmer_tab_helper.cc b/chrome/browser/font_prewarmer_tab_helper.cc index 1d81825..bb5ab8d 100644 --- a/chrome/browser/font_prewarmer_tab_helper.cc +++ b/chrome/browser/font_prewarmer_tab_helper.cc
@@ -227,8 +227,10 @@ DCHECK(rfh); FontPrewarmerCoordinator& coordinator = FontPrewarmerCoordinator::ForProfile(GetProfile()); - if (expected_render_process_host_id_ != rfh->GetProcess()->GetID()) + if (expected_render_process_host_id_ != + rfh->GetProcess()->GetDeprecatedID()) { coordinator.SendFontsToPrewarm(rfh->GetProcess()); + } coordinator.RequestFonts(rfh); }
diff --git a/chrome/browser/guest_view/mime_handler_view/chrome_mime_handler_view_browsertest.cc b/chrome/browser/guest_view/mime_handler_view/chrome_mime_handler_view_browsertest.cc index b6e1c52d..b94f66a 100644 --- a/chrome/browser/guest_view/mime_handler_view/chrome_mime_handler_view_browsertest.cc +++ b/chrome/browser/guest_view/mime_handler_view/chrome_mime_handler_view_browsertest.cc
@@ -680,7 +680,7 @@ base::OnceClosure resume_attach; auto* web_contents = browser()->tab_strip_model()->GetActiveWebContents(); auto* mime_handler_view_helper = extensions::MimeHandlerViewAttachHelper::Get( - web_contents->GetPrimaryMainFrame()->GetProcess()->GetID()); + web_contents->GetPrimaryMainFrame()->GetProcess()->GetDeprecatedID()); mime_handler_view_helper->set_resume_attach_callback_for_testing( base::BindLambdaForTesting([&](base::OnceClosure resume_closure) { resume_attach = std::move(resume_closure);
diff --git a/chrome/browser/history_embeddings/history_embeddings_service_browsertest.cc b/chrome/browser/history_embeddings/history_embeddings_service_browsertest.cc index 8ba4936..24040d7 100644 --- a/chrome/browser/history_embeddings/history_embeddings_service_browsertest.cc +++ b/chrome/browser/history_embeddings/history_embeddings_service_browsertest.cc
@@ -190,7 +190,7 @@ // Search for the passage. base::test::TestFuture<SearchResult> search_future; - service()->Search(nullptr, "A B C D e f g", {}, 1, + service()->Search(nullptr, "A B C D e f g", {}, 1, /*skip_answering=*/false, search_future.GetRepeatingCallback()); SearchResult result = search_future.Take(); EXPECT_EQ(result.scored_url_rows.size(), 1u); @@ -244,7 +244,7 @@ // Search for the passage. base::test::TestFuture<SearchResult> search_future; - service()->Search(nullptr, "A B C", {}, 1, + service()->Search(nullptr, "A B C", {}, 1, /*skip_answering=*/false, search_future.GetRepeatingCallback()); SearchResult result = search_future.Take(); EXPECT_EQ(result.scored_url_rows.size(), 1u); @@ -295,7 +295,7 @@ // Search for the passage. base::test::TestFuture<SearchResult> search_future; - service()->Search(nullptr, "A B C D e f g", {}, 1, + service()->Search(nullptr, "A B C D e f g", {}, 1, /*skip_answering=*/false, search_future.GetRepeatingCallback()); SearchResult result = search_future.Take(); EXPECT_TRUE(result.scored_url_rows.empty()); @@ -325,7 +325,7 @@ // Search for the passage. base::test::TestFuture<SearchResult> search_future; - service()->Search(nullptr, "A B C D e f g", {}, 1, + service()->Search(nullptr, "A B C D e f g", {}, 1, /*skip_answering=*/false, search_future.GetRepeatingCallback()); SearchResult result = search_future.Take(); EXPECT_TRUE(result.scored_url_rows.empty()); @@ -473,7 +473,7 @@ // Search for the passage, should return empty result because of the filter. base::test::TestFuture<SearchResult> search_future; - service()->Search(nullptr, "A B C D e f g", {}, 1, + service()->Search(nullptr, "A B C D e f g", {}, 1, /*skip_answering=*/false, search_future.GetRepeatingCallback()); SearchResult result = search_future.Take(); EXPECT_TRUE(result.scored_url_rows.empty()); @@ -508,7 +508,7 @@ // Search for the passage; should have valid result since the URL is allowed. base::test::TestFuture<SearchResult> search_future; - service()->Search(nullptr, "A B C D e f g", {}, 1, + service()->Search(nullptr, "A B C D e f g", {}, 1, /*skip_answering=*/false, search_future.GetRepeatingCallback()); SearchResult result = search_future.Take(); EXPECT_EQ(result.scored_url_rows.size(), 1u); @@ -543,7 +543,7 @@ // Search with an answerable query by ending it with '?'. base::test::TestFuture<SearchResult> search_future; - service()->Search(nullptr, "A B C D?", {}, 1, + service()->Search(nullptr, "A B C D?", {}, 1, /*skip_answering=*/false, search_future.GetRepeatingCallback()); SearchResult first_result = search_future.Take(); EXPECT_EQ(first_result.scored_url_rows.size(), 1u); @@ -572,7 +572,7 @@ // Search with a query that does not signal query intent (not answerable). base::test::TestFuture<SearchResult> search_future; - service()->Search(nullptr, "A B C D", {}, 1, + service()->Search(nullptr, "A B C D", {}, 1, /*skip_answering=*/false, search_future.GetRepeatingCallback()); SearchResult first_result = search_future.Take(); EXPECT_EQ(first_result.scored_url_rows.size(), 1u); @@ -610,7 +610,7 @@ // Search with a query that signals question intent, but is not answerable // due to account restriction. base::test::TestFuture<SearchResult> search_future; - service()->Search(nullptr, "A B C D?", {}, 1, + service()->Search(nullptr, "A B C D?", {}, 1, /*skip_answering=*/false, search_future.GetRepeatingCallback()); SearchResult first_result = search_future.Take(); EXPECT_EQ(first_result.scored_url_rows.size(), 1u);
diff --git a/chrome/browser/hub/internal/BUILD.gn b/chrome/browser/hub/internal/BUILD.gn index 814f171..a07be83 100644 --- a/chrome/browser/hub/internal/BUILD.gn +++ b/chrome/browser/hub/internal/BUILD.gn
@@ -19,6 +19,8 @@ "android/java/src/org/chromium/chrome/browser/hub/ApplyButtonData.java", "android/java/src/org/chromium/chrome/browser/hub/FadeHubLayoutAnimationFactory.java", "android/java/src/org/chromium/chrome/browser/hub/FadeHubLayoutAnimationFactoryImpl.java", + "android/java/src/org/chromium/chrome/browser/hub/HubColorBlendAnimatorSetHelper.java", + "android/java/src/org/chromium/chrome/browser/hub/HubColorSchemeUpdate.java", "android/java/src/org/chromium/chrome/browser/hub/HubColors.java", "android/java/src/org/chromium/chrome/browser/hub/HubCoordinator.java", "android/java/src/org/chromium/chrome/browser/hub/HubLayoutAnimationRunnerFactory.java", @@ -38,11 +40,13 @@ "android/java/src/org/chromium/chrome/browser/hub/HubToolbarProperties.java", "android/java/src/org/chromium/chrome/browser/hub/HubToolbarView.java", "android/java/src/org/chromium/chrome/browser/hub/HubToolbarViewBinder.java", + "android/java/src/org/chromium/chrome/browser/hub/HubViewColorBlend.java", "android/java/src/org/chromium/chrome/browser/hub/PaneBackStackHandler.java", "android/java/src/org/chromium/chrome/browser/hub/PaneManagerImpl.java", "android/java/src/org/chromium/chrome/browser/hub/PaneTransitionHelper.java", "android/java/src/org/chromium/chrome/browser/hub/ShrinkExpandHubLayoutAnimationFactory.java", "android/java/src/org/chromium/chrome/browser/hub/ShrinkExpandHubLayoutAnimatorProvider.java", + "android/java/src/org/chromium/chrome/browser/hub/SingleHubViewColorBlend.java", "android/java/src/org/chromium/chrome/browser/hub/TranslateHubLayoutAnimationFactory.java", "android/java/src/org/chromium/chrome/browser/hub/TranslateHubLayoutAnimationFactoryImpl.java", ]
diff --git a/chrome/browser/hub/internal/android/java/src/org/chromium/chrome/browser/hub/HubColorBlendAnimatorSetHelper.java b/chrome/browser/hub/internal/android/java/src/org/chromium/chrome/browser/hub/HubColorBlendAnimatorSetHelper.java new file mode 100644 index 0000000..8e25fae --- /dev/null +++ b/chrome/browser/hub/internal/android/java/src/org/chromium/chrome/browser/hub/HubColorBlendAnimatorSetHelper.java
@@ -0,0 +1,79 @@ +// 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.hub; + +import android.animation.Animator; +import android.animation.AnimatorSet; + +import androidx.annotation.Nullable; + +import java.util.ArrayList; +import java.util.List; + +/** Helper class to manage Animator object creation for views during a hub color scheme change. */ +public class HubColorBlendAnimatorSetHelper { + private List<HubViewColorBlend> mColorBlendList; + private @Nullable @HubColorScheme Integer mPrevColorScheme; + private @Nullable @HubColorScheme Integer mNewColorScheme; + + /** Default Constructor. */ + public HubColorBlendAnimatorSetHelper() { + mColorBlendList = new ArrayList<>(); + } + + /** + * Set the list of {@link HubViewColorBlend} objects which will be used to create the Animators + * in the AnimatorSet. The primary use of this method is for dependency injection during + * testing. + */ + public HubColorBlendAnimatorSetHelper setColorBlendList( + List<HubViewColorBlend> colorBlendList) { + mColorBlendList = colorBlendList; + return this; + } + + /** + * Add a {@link HubViewColorBlend} which will construct an animator that will be added to the + * end AnimatorSet. + */ + public HubColorBlendAnimatorSetHelper registerBlend(HubViewColorBlend colorBlend) { + mColorBlendList.add(colorBlend); + return this; + } + + /** Set the previous color scheme of the Hub which will be used in animations. */ + public HubColorBlendAnimatorSetHelper setNewColorScheme(@HubColorScheme int colorScheme) { + mNewColorScheme = colorScheme; + return this; + } + + /** Set the new color scheme of the Hub which will be used in animations. */ + public HubColorBlendAnimatorSetHelper setPreviousColorScheme(@HubColorScheme int colorScheme) { + mPrevColorScheme = colorScheme; + return this; + } + + /** Checks if any animations have been added to the builder. */ + public boolean hasAnimations() { + return !mColorBlendList.isEmpty(); + } + + /** Constructs the AnimatorSet. */ + public AnimatorSet build() { + assert !mColorBlendList.isEmpty(); + assert mPrevColorScheme != null; + assert mNewColorScheme != null; + + List<Animator> animatorsList = new ArrayList<>(); + for (HubViewColorBlend colorBlend : mColorBlendList) { + animatorsList.add( + colorBlend.createAnimationForTransition(mPrevColorScheme, mNewColorScheme)); + } + + AnimatorSet animatorSet = new AnimatorSet(); + animatorSet.playTogether(animatorsList); + return animatorSet; + } +}
diff --git a/chrome/browser/hub/internal/android/java/src/org/chromium/chrome/browser/hub/HubColorSchemeUpdate.java b/chrome/browser/hub/internal/android/java/src/org/chromium/chrome/browser/hub/HubColorSchemeUpdate.java new file mode 100644 index 0000000..6602816 --- /dev/null +++ b/chrome/browser/hub/internal/android/java/src/org/chromium/chrome/browser/hub/HubColorSchemeUpdate.java
@@ -0,0 +1,43 @@ +// 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.hub; + +import java.util.Locale; +import java.util.Objects; + +class HubColorSchemeUpdate { + public final @HubColorScheme int newColorScheme; + public final @HubColorScheme int previousColorScheme; + + public HubColorSchemeUpdate( + @HubColorScheme int newColorScheme, @HubColorScheme int previousColorScheme) { + this.newColorScheme = newColorScheme; + this.previousColorScheme = previousColorScheme; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o instanceof HubColorSchemeUpdate that) { + return previousColorScheme == that.previousColorScheme + && newColorScheme == that.newColorScheme; + } + return false; + } + + @Override + public int hashCode() { + return Objects.hash(previousColorScheme, newColorScheme); + } + + @Override + public String toString() { + return String.format( + Locale.getDefault(), + "HubColorSchemeUpdate{newColorScheme=%d, previousColorScheme=%d}", + newColorScheme, + previousColorScheme); + } +}
diff --git a/chrome/browser/hub/internal/android/java/src/org/chromium/chrome/browser/hub/HubColors.java b/chrome/browser/hub/internal/android/java/src/org/chromium/chrome/browser/hub/HubColors.java index 94da8e6..ad6cda5d 100644 --- a/chrome/browser/hub/internal/android/java/src/org/chromium/chrome/browser/hub/HubColors.java +++ b/chrome/browser/hub/internal/android/java/src/org/chromium/chrome/browser/hub/HubColors.java
@@ -11,6 +11,8 @@ import androidx.annotation.ColorInt; import androidx.annotation.ColorRes; +import androidx.annotation.DimenRes; +import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.annotation.StyleRes; import androidx.core.content.ContextCompat; @@ -48,17 +50,15 @@ } /** Returns the color most icons should use per the given color scheme. */ - public static ColorStateList getIconColor(Context context, @HubColorScheme int colorScheme) { + public static @ColorInt int getIconColor(Context context, @HubColorScheme int colorScheme) { switch (colorScheme) { case HubColorScheme.DEFAULT: - return ContextCompat.getColorStateList( - context, R.color.default_icon_color_tint_list); + return SemanticColorUtils.getDefaultIconColor(context); case HubColorScheme.INCOGNITO: - return ContextCompat.getColorStateList( - context, R.color.default_icon_color_light_tint_list); + return ContextCompat.getColor(context, R.color.default_icon_color_light); default: assert false; - return ColorStateList.valueOf(Color.TRANSPARENT); + return Color.TRANSPARENT; } } @@ -76,11 +76,24 @@ } } - /** Returns the color of secondary containers that reacts to being disabled. */ - public static ColorStateList getSecondaryContainerColorStateList( - Context context, @HubColorScheme int colorScheme) { - @ColorInt int color = getSecondaryContainerColor(context, colorScheme); - return asDisabledAndNormalStates(context, color); + /** Returns the color for the icon in the floating action button. */ + public static @ColorInt int getOnContainerColor( + boolean shouldUseAlternativeFabColor, + Context context, + @HubColorScheme int colorScheme) { + return shouldUseAlternativeFabColor + ? getOnPrimaryContainerColor(context, colorScheme) + : getOnSecondaryContainerColor(context, colorScheme); + } + + /** Returns the color of containers like the floating action button. */ + public static @ColorInt int getContainerColor( + boolean shouldUseAlternativeFabColor, + Context context, + @HubColorScheme int colorScheme) { + return shouldUseAlternativeFabColor + ? getPrimaryContainerColor(context, colorScheme) + : getSecondaryContainerColor(context, colorScheme); } /** Returns the color of secondary containers like the floating action button. */ @@ -113,11 +126,10 @@ } } - /** Returns the color of primary containers that reacts to being disabled. */ - public static ColorStateList getPrimaryContainerColorStateList( - Context context, @HubColorScheme int colorScheme) { - @ColorInt int color = getPrimaryContainerColor(context, colorScheme); - return asDisabledAndNormalStates(context, color); + /** Returns the color of containers that reacts to being disabled. */ + public static ColorStateList getContainerColorStateList( + Context context, @ColorInt int containerColor) { + return asDisabledAndNormalStates(context, containerColor); } /** Returns the color of primary containers like the floating action button. */ @@ -229,10 +241,23 @@ return ContextCompat.getColor(context, backgroundColorRes); } + public static ColorStateList getActionButtonColor(Context context, @ColorInt int color) { + @DimenRes int disabledAlpha = R.dimen.default_disabled_alpha; + return generateDisabledAndNormalStatesColorStateList(context, color, disabledAlpha); + } + private static ColorStateList asDisabledAndNormalStates(Context context, @ColorInt int color) { + @DimenRes int disabledAlpha = R.dimen.filled_button_bg_disabled_alpha; + return generateDisabledAndNormalStatesColorStateList(context, color, disabledAlpha); + } + + @NonNull + private static ColorStateList generateDisabledAndNormalStatesColorStateList( + Context context, int color, int disabledAlpha) { Resources resources = context.getResources(); - float alpha = ValueUtils.getFloat(resources, R.dimen.filled_button_bg_disabled_alpha); - int[] colors = new int[] {ColorUtils.setAlphaComponentWithFloat(color, alpha), color}; + float alpha = ValueUtils.getFloat(resources, disabledAlpha); + int alphaScaled = Math.round(alpha * 255); + int[] colors = new int[] {ColorUtils.setAlphaComponent(color, alphaScaled), color}; return new ColorStateList(DISABLED_AND_NORMAL_STATES, colors); } }
diff --git a/chrome/browser/hub/internal/android/java/src/org/chromium/chrome/browser/hub/HubCoordinatorUnitTest.java b/chrome/browser/hub/internal/android/java/src/org/chromium/chrome/browser/hub/HubCoordinatorUnitTest.java index 6b058cd..56a8ace 100644 --- a/chrome/browser/hub/internal/android/java/src/org/chromium/chrome/browser/hub/HubCoordinatorUnitTest.java +++ b/chrome/browser/hub/internal/android/java/src/org/chromium/chrome/browser/hub/HubCoordinatorUnitTest.java
@@ -95,6 +95,7 @@ mReferenceButtonDataSupplier.set(mReferenceButtonData); mProfileProviderSupplier.set(mProfileProvider); when(mTabSwitcherPane.getPaneId()).thenReturn(PaneId.TAB_SWITCHER); + when(mTabSwitcherPane.getColorScheme()).thenReturn(HubColorScheme.DEFAULT); when(mTabSwitcherPane.getHandleBackPressChangedSupplier()) .thenReturn(mTabSwitcherBackPressSupplier); when(mTabSwitcherPane.getActionButtonDataSupplier()) @@ -102,6 +103,7 @@ when(mTabSwitcherPane.getReferenceButtonDataSupplier()) .thenReturn(mReferenceButtonDataSupplier); when(mIncognitoTabSwitcherPane.getPaneId()).thenReturn(PaneId.INCOGNITO_TAB_SWITCHER); + when(mIncognitoTabSwitcherPane.getColorScheme()).thenReturn(HubColorScheme.INCOGNITO); when(mIncognitoTabSwitcherPane.getHandleBackPressChangedSupplier()) .thenReturn(mIncognitoTabSwitcherBackPressSupplier); when(mIncognitoTabSwitcherPane.getActionButtonDataSupplier())
diff --git a/chrome/browser/hub/internal/android/java/src/org/chromium/chrome/browser/hub/HubManagerImplUnitTest.java b/chrome/browser/hub/internal/android/java/src/org/chromium/chrome/browser/hub/HubManagerImplUnitTest.java index 40757b5..2290218 100644 --- a/chrome/browser/hub/internal/android/java/src/org/chromium/chrome/browser/hub/HubManagerImplUnitTest.java +++ b/chrome/browser/hub/internal/android/java/src/org/chromium/chrome/browser/hub/HubManagerImplUnitTest.java
@@ -104,6 +104,7 @@ mReferenceButtonDataSupplier.set(mReferenceButtonData); mProfileProviderSupplier.set(mProfileProvider); when(mTabSwitcherPane.getPaneId()).thenReturn(PaneId.TAB_SWITCHER); + when(mTabSwitcherPane.getColorScheme()).thenReturn(HubColorScheme.DEFAULT); when(mTabSwitcherPane.getReferenceButtonDataSupplier()) .thenReturn(mReferenceButtonDataSupplier); when(mTabSwitcherPane.getActionButtonDataSupplier()).thenReturn(mActionButtonDataSupplier); @@ -112,6 +113,7 @@ .thenReturn(mTabSwitcherMenuOrKeyboardActionHandler); when(mIncognitoTabSwitcherPane.getPaneId()).thenReturn(PaneId.INCOGNITO_TAB_SWITCHER); + when(mIncognitoTabSwitcherPane.getColorScheme()).thenReturn(HubColorScheme.INCOGNITO); when(mIncognitoTabSwitcherPane.getReferenceButtonDataSupplier()) .thenReturn(mReferenceButtonDataSupplier); when(mIncognitoTabSwitcherPane.getActionButtonDataSupplier())
diff --git a/chrome/browser/hub/internal/android/java/src/org/chromium/chrome/browser/hub/HubPaneHostMediator.java b/chrome/browser/hub/internal/android/java/src/org/chromium/chrome/browser/hub/HubPaneHostMediator.java index f62b4262..b6bd720 100644 --- a/chrome/browser/hub/internal/android/java/src/org/chromium/chrome/browser/hub/HubPaneHostMediator.java +++ b/chrome/browser/hub/internal/android/java/src/org/chromium/chrome/browser/hub/HubPaneHostMediator.java
@@ -118,7 +118,14 @@ } private void onPaneChange(@Nullable Pane pane) { - mPropertyModel.set(COLOR_SCHEME, HubColors.getColorSchemeSafe(pane)); + @HubColorScheme int newColorScheme = HubColors.getColorSchemeSafe(pane); + @HubColorScheme + int prevColorScheme = + mPropertyModel.get(COLOR_SCHEME) == null + ? newColorScheme + : mPropertyModel.get(COLOR_SCHEME).previousColorScheme; + + mPropertyModel.set(COLOR_SCHEME, new HubColorSchemeUpdate(newColorScheme, prevColorScheme)); View view = pane == null ? null : pane.getRootView(); mPropertyModel.set(PANE_ROOT_VIEW, view); }
diff --git a/chrome/browser/hub/internal/android/java/src/org/chromium/chrome/browser/hub/HubPaneHostProperties.java b/chrome/browser/hub/internal/android/java/src/org/chromium/chrome/browser/hub/HubPaneHostProperties.java index f9fcbee..3043521 100644 --- a/chrome/browser/hub/internal/android/java/src/org/chromium/chrome/browser/hub/HubPaneHostProperties.java +++ b/chrome/browser/hub/internal/android/java/src/org/chromium/chrome/browser/hub/HubPaneHostProperties.java
@@ -27,8 +27,10 @@ public static final WritableObjectPropertyKey<FullButtonData> ACTION_BUTTON_DATA = new WritableObjectPropertyKey(); - // Hold a value from @HubColorScheme. - public static final WritableIntPropertyKey COLOR_SCHEME = new WritableIntPropertyKey(); + // Holds two values from @HubColorScheme. The first value holds the current color scheme. The + // second value holds the previous color scheme. + public static final WritableObjectPropertyKey<HubColorSchemeUpdate> COLOR_SCHEME = + new WritableObjectPropertyKey<>(); public static final WritableBooleanPropertyKey HAIRLINE_VISIBILITY = new WritableBooleanPropertyKey();
diff --git a/chrome/browser/hub/internal/android/java/src/org/chromium/chrome/browser/hub/HubPaneHostView.java b/chrome/browser/hub/internal/android/java/src/org/chromium/chrome/browser/hub/HubPaneHostView.java index bc451e5..70a96196 100644 --- a/chrome/browser/hub/internal/android/java/src/org/chromium/chrome/browser/hub/HubPaneHostView.java +++ b/chrome/browser/hub/internal/android/java/src/org/chromium/chrome/browser/hub/HubPaneHostView.java
@@ -4,6 +4,7 @@ package org.chromium.chrome.browser.hub; +import static org.chromium.chrome.browser.hub.HubAnimationConstants.PANE_COLOR_BLEND_ANIMATION_DURATION_MS; import static org.chromium.chrome.browser.hub.HubAnimationConstants.PANE_FADE_ANIMATION_DURATION_MS; import android.animation.Animator; @@ -27,6 +28,7 @@ import org.chromium.base.Callback; import org.chromium.base.supplier.Supplier; +import org.chromium.ui.animation.AnimationHandler; import org.chromium.ui.interpolators.Interpolators; import org.chromium.ui.widget.ButtonCompat; @@ -50,7 +52,7 @@ int oldTop, int oldRight, int oldBottom) { - endFloatingActionButtonAnimation(); + mFloatingActionButtonAnimatorHandler.forceFinishAnimation(); int height = bottom - top; int oldHeight = oldBottom - oldTop; @@ -77,12 +79,10 @@ mActionButton.setTranslationY(0); mSnackbarHeightForAnimation = height; updateFloatingButtonBottomMargin(); - mFloatingActionButtonAnimator = null; } }); - mFloatingActionButtonAnimator = animator; - animator.start(); + mFloatingActionButtonAnimatorHandler.startAnimation(animator); } }; @@ -91,8 +91,10 @@ private ImageView mHairline; private ViewGroup mSnackbarContainer; private @Nullable View mCurrentViewRoot; - private @Nullable Animator mCurrentAnimator; - private @Nullable Animator mFloatingActionButtonAnimator; + private final AnimationHandler mFadeAnimatorHandler; + private final AnimationHandler mFloatingActionButtonAnimatorHandler; + private final AnimationHandler mColorBlendAnimatorHandler; + private final HubColorBlendAnimatorSetHelper mAnimatorSetBuilder; private int mFloatingActionButtonAnimatorDuration; private int mOriginalMargin; @@ -102,6 +104,10 @@ /** Default {@link FrameLayout} constructor called by inflation. */ public HubPaneHostView(Context context, AttributeSet attributeSet) { super(context, attributeSet); + mFadeAnimatorHandler = new AnimationHandler(); + mFloatingActionButtonAnimatorHandler = new AnimationHandler(); + mColorBlendAnimatorHandler = new AnimationHandler(); + mAnimatorSetBuilder = new HubColorBlendAnimatorSetHelper(); } @Override @@ -122,16 +128,16 @@ // this. mActionButton.setElevation( res.getDimensionPixelSize(R.dimen.floating_action_button_elevation)); + + registerColorBlends(); } void setRootView(@Nullable View newRootView) { final View oldRootView = mCurrentViewRoot; mCurrentViewRoot = newRootView; - if (mCurrentAnimator != null) { - mCurrentAnimator.end(); - assert mCurrentAnimator == null; - endFloatingActionButtonAnimation(); - } + + mFadeAnimatorHandler.forceFinishAnimation(); + mFloatingActionButtonAnimatorHandler.forceFinishAnimation(); if (oldRootView != null && newRootView != null) { newRootView.setAlpha(0); @@ -151,11 +157,9 @@ public void onAnimationEnd(Animator animation) { mPaneFrame.removeView(oldRootView); oldRootView.setAlpha(1); - mCurrentAnimator = null; } }); - mCurrentAnimator = animatorSet; - animatorSet.start(); + mFadeAnimatorHandler.startAnimation(animatorSet); } else if (newRootView == null) { mPaneFrame.removeAllViews(); } else { // oldRootView == null @@ -163,38 +167,68 @@ } } + void setColorScheme(HubColorSchemeUpdate colorSchemeUpdate) { + @HubColorScheme int newColorScheme = colorSchemeUpdate.newColorScheme; + @HubColorScheme int prevColorScheme = colorSchemeUpdate.previousColorScheme; + + @StyleRes + int textAppearance = + HubFieldTrial.useAlternativeFabColor() + ? HubColors.getTextAppearanceMediumOnPrimaryContainer(newColorScheme) + : HubColors.getTextAppearanceMedium(newColorScheme); + mActionButton.setTextAppearance(textAppearance); + + @ColorInt int hairlineColor = HubColors.getHairlineColor(getContext(), newColorScheme); + mHairline.setImageTintList(ColorStateList.valueOf(hairlineColor)); + + AnimatorSet animatorSet = + mAnimatorSetBuilder + .setNewColorScheme(newColorScheme) + .setPreviousColorScheme(prevColorScheme) + .build(); + mColorBlendAnimatorHandler.startAnimation(animatorSet); + } + + private void registerColorBlends() { + Context context = getContext(); + + mAnimatorSetBuilder.registerBlend( + new SingleHubViewColorBlend( + PANE_COLOR_BLEND_ANIMATION_DURATION_MS, + colorScheme -> HubColors.getBackgroundColor(context, colorScheme), + mPaneFrame::setBackgroundColor)); + + boolean shouldUseAlternativeFabColor = HubFieldTrial.useAlternativeFabColor(); + mAnimatorSetBuilder.registerBlend( + new SingleHubViewColorBlend( + PANE_COLOR_BLEND_ANIMATION_DURATION_MS, + colorScheme -> + HubColors.getContainerColor( + shouldUseAlternativeFabColor, context, colorScheme), + interpolatedColor -> + updateActionButtonColorInternal(context, interpolatedColor))); + + mAnimatorSetBuilder.registerBlend( + new SingleHubViewColorBlend( + PANE_COLOR_BLEND_ANIMATION_DURATION_MS, + colorScheme -> + HubColors.getOnContainerColor( + shouldUseAlternativeFabColor, context, colorScheme), + this::updateIconColorInternal)); + } + void setActionButtonData(@Nullable FullButtonData buttonData) { ApplyButtonData.apply(buttonData, mActionButton); } - void setColorScheme(@HubColorScheme int colorScheme) { - Context context = getContext(); + private void updateIconColorInternal(@ColorInt int color) { + ColorStateList interpolatedIconColor = ColorStateList.valueOf(color); + TextViewCompat.setCompoundDrawableTintList(mActionButton, interpolatedIconColor); + } - @ColorInt int backgroundColor = HubColors.getBackgroundColor(context, colorScheme); - mPaneFrame.setBackgroundColor(backgroundColor); - - ColorStateList iconColor; - ColorStateList buttonColor; - @StyleRes int textAppearance; - if (HubFieldTrial.useAlternativeFabColor()) { - iconColor = - ColorStateList.valueOf( - HubColors.getOnPrimaryContainerColor(context, colorScheme)); - buttonColor = HubColors.getPrimaryContainerColorStateList(context, colorScheme); - textAppearance = HubColors.getTextAppearanceMediumOnPrimaryContainer(colorScheme); - } else { - iconColor = - ColorStateList.valueOf( - HubColors.getOnSecondaryContainerColor(context, colorScheme)); - buttonColor = HubColors.getSecondaryContainerColorStateList(context, colorScheme); - textAppearance = HubColors.getTextAppearanceMedium(colorScheme); - } - TextViewCompat.setCompoundDrawableTintList(mActionButton, iconColor); + private void updateActionButtonColorInternal(Context context, @ColorInt int color) { + ColorStateList buttonColor = HubColors.getContainerColorStateList(context, color); mActionButton.setButtonColor(buttonColor); - mActionButton.setTextAppearance(textAppearance); - - @ColorInt int hairlineColor = HubColors.getHairlineColor(context, colorScheme); - mHairline.setImageTintList(ColorStateList.valueOf(hairlineColor)); } void setHairlineVisibility(boolean visible) { @@ -211,7 +245,7 @@ void setEdgeToEdgeBottomInsets(int bottomInsets) { mEdgeToEdgeBottomInset = bottomInsets; - endFloatingActionButtonAnimation(); + mFloatingActionButtonAnimatorHandler.forceFinishAnimation(); updateFloatingButtonBottomMargin(); } @@ -237,13 +271,6 @@ } } - private void endFloatingActionButtonAnimation() { - if (mFloatingActionButtonAnimator != null) { - mFloatingActionButtonAnimator.end(); - assert mFloatingActionButtonAnimator == null; - } - } - OnLayoutChangeListener getSnackbarLayoutChangeListenerForTesting() { return mSnackbarLayoutChangeListener; }
diff --git a/chrome/browser/hub/internal/android/java/src/org/chromium/chrome/browser/hub/HubPaneHostViewRenderTest.java b/chrome/browser/hub/internal/android/java/src/org/chromium/chrome/browser/hub/HubPaneHostViewRenderTest.java index 4b029147..bda56d2 100644 --- a/chrome/browser/hub/internal/android/java/src/org/chromium/chrome/browser/hub/HubPaneHostViewRenderTest.java +++ b/chrome/browser/hub/internal/android/java/src/org/chromium/chrome/browser/hub/HubPaneHostViewRenderTest.java
@@ -97,7 +97,10 @@ () -> { @ColorInt int defaultBgColor = SemanticColorUtils.getDefaultBgColor(mActivity); View rootView = solidColorView(defaultBgColor); - mPropertyModel.set(COLOR_SCHEME, HubColorScheme.DEFAULT); + mPropertyModel.set( + COLOR_SCHEME, + new HubColorSchemeUpdate( + HubColorScheme.DEFAULT, HubColorScheme.DEFAULT)); mPropertyModel.set(HAIRLINE_VISIBILITY, true); mPropertyModel.set(PANE_ROOT_VIEW, rootView); mPropertyModel.set(ACTION_BUTTON_DATA, enabledButtonData); @@ -111,7 +114,10 @@ ThreadUtils.runOnUiThreadBlocking( () -> { - mPropertyModel.set(COLOR_SCHEME, HubColorScheme.INCOGNITO); + mPropertyModel.set( + COLOR_SCHEME, + new HubColorSchemeUpdate( + HubColorScheme.INCOGNITO, HubColorScheme.INCOGNITO)); mPropertyModel.set(ACTION_BUTTON_DATA, enabledButtonData); }); mRenderTestRule.render(mPaneHost, prefix + "_incognitoButton");
diff --git a/chrome/browser/hub/internal/android/java/src/org/chromium/chrome/browser/hub/HubToolbarMediator.java b/chrome/browser/hub/internal/android/java/src/org/chromium/chrome/browser/hub/HubToolbarMediator.java index 6c302ae..ba5885d 100644 --- a/chrome/browser/hub/internal/android/java/src/org/chromium/chrome/browser/hub/HubToolbarMediator.java +++ b/chrome/browser/hub/internal/android/java/src/org/chromium/chrome/browser/hub/HubToolbarMediator.java
@@ -250,7 +250,14 @@ } private void onFocusedPaneChange(@Nullable Pane focusedPane) { - mPropertyModel.set(COLOR_SCHEME, HubColors.getColorSchemeSafe(focusedPane)); + @HubColorScheme int newColorScheme = HubColors.getColorSchemeSafe(focusedPane); + @HubColorScheme + int prevColorScheme = + mPropertyModel.get(COLOR_SCHEME) == null + ? newColorScheme + : mPropertyModel.get(COLOR_SCHEME).previousColorScheme; + + mPropertyModel.set(COLOR_SCHEME, new HubColorSchemeUpdate(newColorScheme, prevColorScheme)); @Nullable Integer focusedPaneId = focusedPane == null ? null : focusedPane.getPaneId(); if (focusedPaneId == null) {
diff --git a/chrome/browser/hub/internal/android/java/src/org/chromium/chrome/browser/hub/HubToolbarMediatorUnitTest.java b/chrome/browser/hub/internal/android/java/src/org/chromium/chrome/browser/hub/HubToolbarMediatorUnitTest.java index 199e0b4..4f15ffb 100644 --- a/chrome/browser/hub/internal/android/java/src/org/chromium/chrome/browser/hub/HubToolbarMediatorUnitTest.java +++ b/chrome/browser/hub/internal/android/java/src/org/chromium/chrome/browser/hub/HubToolbarMediatorUnitTest.java
@@ -263,13 +263,19 @@ public void testHubColorScheme() { new HubToolbarMediator(mActivity, mModel, mPaneManager, mTracker, mSearchActivityClient); mFocusedPaneSupplier.set(mTabSwitcherPane); - assertEquals(HubColorScheme.DEFAULT, mModel.get(COLOR_SCHEME)); + assertEquals( + new HubColorSchemeUpdate(HubColorScheme.DEFAULT, HubColorScheme.DEFAULT), + mModel.get(COLOR_SCHEME)); mFocusedPaneSupplier.set(mIncognitoTabSwitcherPane); - assertEquals(HubColorScheme.INCOGNITO, mModel.get(COLOR_SCHEME)); + assertEquals( + new HubColorSchemeUpdate(HubColorScheme.INCOGNITO, HubColorScheme.DEFAULT), + mModel.get(COLOR_SCHEME)); mFocusedPaneSupplier.set(null); - assertEquals(HubColorScheme.DEFAULT, mModel.get(COLOR_SCHEME)); + assertEquals( + new HubColorSchemeUpdate(HubColorScheme.DEFAULT, HubColorScheme.DEFAULT), + mModel.get(COLOR_SCHEME)); } @Test
diff --git a/chrome/browser/hub/internal/android/java/src/org/chromium/chrome/browser/hub/HubToolbarProperties.java b/chrome/browser/hub/internal/android/java/src/org/chromium/chrome/browser/hub/HubToolbarProperties.java index 5efc121..f490a45 100644 --- a/chrome/browser/hub/internal/android/java/src/org/chromium/chrome/browser/hub/HubToolbarProperties.java +++ b/chrome/browser/hub/internal/android/java/src/org/chromium/chrome/browser/hub/HubToolbarProperties.java
@@ -27,8 +27,10 @@ new WritableObjectPropertyKey<>(); public static final WritableIntPropertyKey PANE_SWITCHER_INDEX = new WritableIntPropertyKey(); - // Hold a value from @HubColorScheme. - public static final WritableIntPropertyKey COLOR_SCHEME = new WritableIntPropertyKey(); + // Holds two values from @HubColorScheme. The first value holds the current color scheme. The + // second value holds the previous color scheme. + public static final WritableObjectPropertyKey<HubColorSchemeUpdate> COLOR_SCHEME = + new WritableObjectPropertyKey<>(); public static final WritableBooleanPropertyKey MENU_BUTTON_VISIBLE = new WritableBooleanPropertyKey();
diff --git a/chrome/browser/hub/internal/android/java/src/org/chromium/chrome/browser/hub/HubToolbarView.java b/chrome/browser/hub/internal/android/java/src/org/chromium/chrome/browser/hub/HubToolbarView.java index 9a054e3..64d23cf 100644 --- a/chrome/browser/hub/internal/android/java/src/org/chromium/chrome/browser/hub/HubToolbarView.java +++ b/chrome/browser/hub/internal/android/java/src/org/chromium/chrome/browser/hub/HubToolbarView.java
@@ -4,6 +4,10 @@ package org.chromium.chrome.browser.hub; +import static org.chromium.chrome.browser.hub.HubAnimationConstants.PANE_COLOR_BLEND_ANIMATION_DURATION_MS; +import static org.chromium.ui.util.ColorBlendAnimationFactory.createMultiColorBlendAnimation; + +import android.animation.AnimatorSet; import android.content.Context; import android.content.res.ColorStateList; import android.graphics.drawable.Drawable; @@ -12,6 +16,7 @@ import android.view.View; import android.widget.Button; import android.widget.EditText; +import android.widget.ImageButton; import android.widget.ImageView; import android.widget.LinearLayout; @@ -19,6 +24,7 @@ import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.annotation.StringRes; +import androidx.core.widget.ImageViewCompat; import androidx.core.widget.TextViewCompat; import com.google.android.material.tabs.TabLayout; @@ -28,24 +34,31 @@ import org.chromium.base.Callback; import org.chromium.chrome.browser.hub.HubToolbarProperties.PaneButtonLookup; import org.chromium.components.omnibox.OmniboxFeatures; +import org.chromium.ui.animation.AnimationHandler; import java.util.List; /** Toolbar for the Hub. May contain a single or multiple rows, of which this view is the parent. */ public class HubToolbarView extends LinearLayout { + private Button mActionButton; private TabLayout mPaneSwitcher; private LinearLayout mMenuButtonContainer; + private ImageButton mMenuButton; private View mSearchBoxLayout; private EditText mSearchBoxTextView; private ImageView mSearchLoupeView; private OnTabSelectedListener mOnTabSelectedListener; private boolean mBlockTabSelectionCallback; + private final AnimationHandler mColorBlendAnimatorHandler; + private final HubColorBlendAnimatorSetHelper mAnimatorSetBuilder; /** Default {@link LinearLayout} constructor called by inflation. */ public HubToolbarView(Context context, AttributeSet attributeSet) { super(context, attributeSet); + mColorBlendAnimatorHandler = new AnimationHandler(); + mAnimatorSetBuilder = new HubColorBlendAnimatorSetHelper(); } @Override @@ -54,11 +67,18 @@ mActionButton = findViewById(R.id.toolbar_action_button); mPaneSwitcher = findViewById(R.id.pane_switcher); mMenuButtonContainer = findViewById(R.id.menu_button_container); + mMenuButton = mMenuButtonContainer.findViewById(R.id.menu_button); // SearchBoxLayout is GONE by default, and enabled via the mediator. mSearchBoxLayout = findViewById(R.id.search_box); mSearchBoxTextView = findViewById(R.id.search_box_text); mSearchLoupeView = findViewById(R.id.search_loupe); + + registerColorBlends(); + + if (OmniboxFeatures.sAndroidHubSearch.isEnabled()) { + registerSearchBoxColorBlends(); + } } void setMenuButtonVisible(boolean visible) { @@ -109,30 +129,115 @@ mBlockTabSelectionCallback = false; } - void setColorScheme(@HubColorScheme int colorScheme) { - Context context = getContext(); - setBackgroundColor(HubColors.getBackgroundColor(context, colorScheme)); - ColorStateList iconColor = HubColors.getIconColor(context, colorScheme); - @ColorInt int selectedIconColor = HubColors.getSelectedIconColor(context, colorScheme); - TextViewCompat.setCompoundDrawableTintList(mActionButton, iconColor); - mPaneSwitcher.setTabIconTint( - HubColors.getSelectableIconList(selectedIconColor, iconColor.getDefaultColor())); - mPaneSwitcher.setSelectedTabIndicatorColor(selectedIconColor); + void setColorScheme(HubColorSchemeUpdate colorSchemeUpdate) { + @HubColorScheme int newColorScheme = colorSchemeUpdate.newColorScheme; + @HubColorScheme int prevColorScheme = colorSchemeUpdate.previousColorScheme; - if (OmniboxFeatures.sAndroidHubSearch.isEnabled()) { - @ColorInt int hintTextColor = HubColors.getSearchBoxHintTextColor(context, colorScheme); - mSearchBoxTextView.setHintTextColor(hintTextColor); - GradientDrawable backgroundDrawable = - (GradientDrawable) mSearchBoxLayout.getBackground(); - @ColorInt int searchBoxBgColor = HubColors.getSearchBoxBgColor(context, colorScheme); - backgroundDrawable.setColor(searchBoxBgColor); - mSearchLoupeView.setImageTintList(iconColor); - } + AnimatorSet animatorSet = + mAnimatorSetBuilder + .setNewColorScheme(newColorScheme) + .setPreviousColorScheme(prevColorScheme) + .build(); + mColorBlendAnimatorHandler.startAnimation(animatorSet); // TODO(crbug.com/40948541): Updating the app menu color here is more correct and // should be done for code health. } + private void registerColorBlends() { + Context context = getContext(); + + mAnimatorSetBuilder.registerBlend( + new SingleHubViewColorBlend( + PANE_COLOR_BLEND_ANIMATION_DURATION_MS, + colorScheme -> HubColors.getBackgroundColor(context, colorScheme), + this::setBackgroundColor)); + + mAnimatorSetBuilder.registerBlend( + new SingleHubViewColorBlend( + PANE_COLOR_BLEND_ANIMATION_DURATION_MS, + colorScheme -> HubColors.getSelectedIconColor(context, colorScheme), + mPaneSwitcher::setSelectedTabIndicatorColor)); + + HubViewColorBlend multiColorBlend = + (prevColorScheme, newColorScheme) -> { + @ColorInt int newIconColor = HubColors.getIconColor(context, newColorScheme); + @ColorInt + int newSelectedIconColor = + HubColors.getSelectedIconColor(context, newColorScheme); + @ColorInt int prevIconColor = HubColors.getIconColor(context, prevColorScheme); + @ColorInt + int prevSelectedIconColor = + HubColors.getSelectedIconColor(context, prevColorScheme); + return createMultiColorBlendAnimation( + PANE_COLOR_BLEND_ANIMATION_DURATION_MS, + new int[] {prevIconColor, prevSelectedIconColor}, + new int[] {newIconColor, newSelectedIconColor}, + colorList -> { + @ColorInt int interpolatedIconColor = colorList[0]; + @ColorInt int interpolatedSelectedIconColor = colorList[1]; + updateTabIconTintInternal( + interpolatedIconColor, interpolatedSelectedIconColor); + }); + }; + mAnimatorSetBuilder.registerBlend(multiColorBlend); + + mAnimatorSetBuilder.registerBlend( + new SingleHubViewColorBlend( + PANE_COLOR_BLEND_ANIMATION_DURATION_MS, + colorScheme -> HubColors.getIconColor(context, colorScheme), + interpolatedColor -> { + updateActionButtonColorInternal(context, interpolatedColor); + ColorStateList menuButtonColor = + ColorStateList.valueOf(interpolatedColor); + ImageViewCompat.setImageTintList(mMenuButton, menuButtonColor); + })); + // TODO(crbug.com/40948541): Updating the app menu color here is more correct and + // should be done for code health. Menu Button Color is also set by + // HubToolbarCoordinator. + } + + private void registerSearchBoxColorBlends() { + Context context = getContext(); + + mAnimatorSetBuilder.registerBlend( + new SingleHubViewColorBlend( + PANE_COLOR_BLEND_ANIMATION_DURATION_MS, + colorScheme -> HubColors.getSearchBoxHintTextColor(context, colorScheme), + mSearchBoxTextView::setHintTextColor)); + + GradientDrawable backgroundDrawable = + (GradientDrawable) mSearchBoxLayout.getBackground().mutate(); + mAnimatorSetBuilder.registerBlend( + new SingleHubViewColorBlend( + PANE_COLOR_BLEND_ANIMATION_DURATION_MS, + colorScheme -> HubColors.getSearchBoxBgColor(context, colorScheme), + backgroundDrawable::setColor)); + + mAnimatorSetBuilder.registerBlend( + new SingleHubViewColorBlend( + PANE_COLOR_BLEND_ANIMATION_DURATION_MS, + colorScheme -> HubColors.getIconColor(context, colorScheme), + this::updateSearchLoupeColor)); + } + + private void updateTabIconTintInternal( + @ColorInt int iconColor, @ColorInt int selectedIconColor) { + ColorStateList selectableIconList = + HubColors.getSelectableIconList(selectedIconColor, iconColor); + mPaneSwitcher.setTabIconTint(selectableIconList); + } + + private void updateActionButtonColorInternal(Context context, @ColorInt int color) { + ColorStateList actionButtonColor = HubColors.getActionButtonColor(context, color); + TextViewCompat.setCompoundDrawableTintList(mActionButton, actionButtonColor); + } + + private void updateSearchLoupeColor(@ColorInt int color) { + ColorStateList colorStateList = ColorStateList.valueOf(color); + mSearchLoupeView.setImageTintList(colorStateList); + } + void setButtonLookupConsumer(Callback<PaneButtonLookup> lookupConsumer) { lookupConsumer.onResult(this::getButtonView); }
diff --git a/chrome/browser/hub/internal/android/java/src/org/chromium/chrome/browser/hub/HubToolbarViewRenderTest.java b/chrome/browser/hub/internal/android/java/src/org/chromium/chrome/browser/hub/HubToolbarViewRenderTest.java index a3af935..e8cc5efa 100644 --- a/chrome/browser/hub/internal/android/java/src/org/chromium/chrome/browser/hub/HubToolbarViewRenderTest.java +++ b/chrome/browser/hub/internal/android/java/src/org/chromium/chrome/browser/hub/HubToolbarViewRenderTest.java
@@ -55,7 +55,7 @@ public ChromeRenderTestRule mRenderTestRule = ChromeRenderTestRule.Builder.withPublicCorpus() .setBugComponent(ChromeRenderTestRule.Component.UI_BROWSER_MOBILE_HUB) - .setRevision(8) + .setRevision(9) .build(); @Mock private TabSwitcherDrawable.Observer mTabSwitcherDrawableObserver; @@ -139,7 +139,10 @@ mPropertyModel.set(HubToolbarProperties.ACTION_BUTTON_DATA, enabledButtonData); mPropertyModel.set(HubToolbarProperties.MENU_BUTTON_VISIBLE, true); mPropertyModel.set(HubToolbarProperties.SHOW_ACTION_BUTTON_TEXT, true); - mPropertyModel.set(HubToolbarProperties.COLOR_SCHEME, HubColorScheme.INCOGNITO); + mPropertyModel.set( + HubToolbarProperties.COLOR_SCHEME, + new HubColorSchemeUpdate( + HubColorScheme.INCOGNITO, HubColorScheme.INCOGNITO)); }); mRenderTestRule.render(mToolbar, "actionButtonIncognito"); @@ -174,9 +177,12 @@ mRenderTestRule.render(mToolbar, "paneSwitcherSelectedIndex"); ThreadUtils.runOnUiThreadBlocking( - () -> - mPropertyModel.set( - HubToolbarProperties.COLOR_SCHEME, HubColorScheme.INCOGNITO)); + () -> { + mPropertyModel.set( + HubToolbarProperties.COLOR_SCHEME, + new HubColorSchemeUpdate( + HubColorScheme.INCOGNITO, HubColorScheme.INCOGNITO)); + }); mRenderTestRule.render(mToolbar, "paneSwitcherIncognito"); } @@ -261,7 +267,10 @@ mPropertyModel.set(HubToolbarProperties.PANE_SWITCHER_INDEX, 1); mPropertyModel.set( HubToolbarProperties.PANE_SWITCHER_BUTTON_DATA, paneSwitcherButtonData); - mPropertyModel.set(HubToolbarProperties.COLOR_SCHEME, HubColorScheme.INCOGNITO); + mPropertyModel.set( + HubToolbarProperties.COLOR_SCHEME, + new HubColorSchemeUpdate( + HubColorScheme.INCOGNITO, HubColorScheme.INCOGNITO)); }); mRenderTestRule.render(mToolbar, "onIncognitoTabSwitcherDrawableNotificationOn");
diff --git a/chrome/browser/hub/internal/android/java/src/org/chromium/chrome/browser/hub/HubToolbarViewUnitTest.java b/chrome/browser/hub/internal/android/java/src/org/chromium/chrome/browser/hub/HubToolbarViewUnitTest.java index 35dc021..a6b11eb 100644 --- a/chrome/browser/hub/internal/android/java/src/org/chromium/chrome/browser/hub/HubToolbarViewUnitTest.java +++ b/chrome/browser/hub/internal/android/java/src/org/chromium/chrome/browser/hub/HubToolbarViewUnitTest.java
@@ -296,7 +296,9 @@ @MediumTest @EnableFeatures(OmniboxFeatureList.ANDROID_HUB_SEARCH) public void testUpdateSearchBoxColorScheme() { - mPropertyModel.set(COLOR_SCHEME, HubColorScheme.INCOGNITO); + mPropertyModel.set( + COLOR_SCHEME, + new HubColorSchemeUpdate(HubColorScheme.INCOGNITO, HubColorScheme.INCOGNITO)); assertEquals( ContextCompat.getColor(mActivity, R.color.baseline_neutral_60), mSearchBoxText.getCurrentHintTextColor()); @@ -307,7 +309,9 @@ ContextCompat.getColor(mActivity, R.color.baseline_neutral_20)), backgroundDrawable.getColor()); - mPropertyModel.set(COLOR_SCHEME, HubColorScheme.DEFAULT); + mPropertyModel.set( + COLOR_SCHEME, + new HubColorSchemeUpdate(HubColorScheme.DEFAULT, HubColorScheme.DEFAULT)); assertEquals( SemanticColorUtils.getDefaultTextColor(mActivity), mSearchBoxText.getCurrentHintTextColor());
diff --git a/chrome/browser/hub/internal/android/java/src/org/chromium/chrome/browser/hub/HubViewColorBlend.java b/chrome/browser/hub/internal/android/java/src/org/chromium/chrome/browser/hub/HubViewColorBlend.java new file mode 100644 index 0000000..5b4c203 --- /dev/null +++ b/chrome/browser/hub/internal/android/java/src/org/chromium/chrome/browser/hub/HubViewColorBlend.java
@@ -0,0 +1,26 @@ +// 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.hub; + +import android.animation.Animator; + +import androidx.annotation.ColorInt; + +/** Helper class to manage Animator object creation for views during a hub color scheme change. */ +public interface HubViewColorBlend { + + interface ColorGetter { + @ColorInt + int colorIntFromColorScheme(@HubColorScheme int hubColorScheme); + } + + interface ColorSetter { + void setColorInt(@ColorInt int colorInt); + } + + /** Creates a color blend animation for a hub color scheme change. */ + Animator createAnimationForTransition( + @HubColorScheme int startScheme, @HubColorScheme int endScheme); +}
diff --git a/chrome/browser/hub/internal/android/java/src/org/chromium/chrome/browser/hub/SingleHubViewColorBlend.java b/chrome/browser/hub/internal/android/java/src/org/chromium/chrome/browser/hub/SingleHubViewColorBlend.java new file mode 100644 index 0000000..8978a03 --- /dev/null +++ b/chrome/browser/hub/internal/android/java/src/org/chromium/chrome/browser/hub/SingleHubViewColorBlend.java
@@ -0,0 +1,42 @@ +// 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.hub; + +import static org.chromium.ui.util.ColorBlendAnimationFactory.createColorBlendAnimation; + +import android.animation.Animator; + +import androidx.annotation.ColorInt; + +/** Helper class to manage Animator object creation for views during a hub color scheme change. */ +public class SingleHubViewColorBlend implements HubViewColorBlend { + + private final long mDurationMs; + private final ColorGetter mColorGetter; + private final ColorSetter mColorSetter; + + /** + * @param durationMs The duration of the animation in milliseconds. + * @param colorGetter A method to get a ColorInt from a HubColorScheme. + * @param colorSetter A method which updates the color of the view(s) to an interpolated color + * on an animator update. + */ + public SingleHubViewColorBlend( + long durationMs, ColorGetter colorGetter, ColorSetter colorSetter) { + mDurationMs = durationMs; + mColorGetter = colorGetter; + mColorSetter = colorSetter; + } + + /** Creates a color blend animation for a hub color scheme change. */ + @Override + public Animator createAnimationForTransition( + @HubColorScheme int startScheme, @HubColorScheme int endScheme) { + @ColorInt int startColor = mColorGetter.colorIntFromColorScheme(startScheme); + @ColorInt int endColor = mColorGetter.colorIntFromColorScheme(endScheme); + return createColorBlendAnimation( + mDurationMs, startColor, endColor, mColorSetter::setColorInt); + } +}
diff --git a/chrome/browser/magic_stack/android/java/src/org/chromium/chrome/browser/magic_stack/HomeModulesMediator.java b/chrome/browser/magic_stack/android/java/src/org/chromium/chrome/browser/magic_stack/HomeModulesMediator.java index 386aa31..f610c82 100644 --- a/chrome/browser/magic_stack/android/java/src/org/chromium/chrome/browser/magic_stack/HomeModulesMediator.java +++ b/chrome/browser/magic_stack/android/java/src/org/chromium/chrome/browser/magic_stack/HomeModulesMediator.java
@@ -14,9 +14,7 @@ import org.chromium.chrome.browser.flags.ChromeFeatureList; import org.chromium.chrome.browser.magic_stack.ModuleDelegate.ModuleType; 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.MVCListAdapter.ModelList; @@ -638,8 +636,8 @@ mSegmentationPlatformService.getClassificationResult( "android_home_module_ranker", - /* prediction_options= */ createPredictionOptions(), - /* inputContext= */ createInputContext(), + createPredictionOptions(), + mModuleRegistry.createInputContext(), result -> { // It is possible that the result is received after the magic stack has been // hidden, exit now. @@ -657,33 +655,12 @@ } /** - * Creates an instance of InputContext. Each module in the set will have a freshness score, - * whose default value is {@link INVALID_FRESHNESS_SCORE} if hasn't been set. - */ - @VisibleForTesting - InputContext createInputContext() { - InputContext inputContext = new InputContext(); - for (@ModuleType int moduleType = 0; moduleType < ModuleType.NUM_ENTRIES; moduleType++) { - if (moduleType == ModuleType.EDUCATIONAL_TIP) { - continue; - } - - inputContext.addEntry( - HomeModulesMetricsUtils.getFreshnessInputContextString(moduleType), - ProcessedValue.fromFloat( - getFreshnessScore(isHomeModuleRankerV2Enabled(), moduleType))); - } - - return inputContext; - } - - /** * Creates an instance of PredictionOptions. If feature flag is enabled generate ondemand * prediction options else will generate cache prediction options. */ @VisibleForTesting PredictionOptions createPredictionOptions() { - boolean usePredictionOptions = isHomeModuleRankerV2Enabled(); + boolean usePredictionOptions = HomeModulesUtils.isHomeModuleRankerV2Enabled(); if (usePredictionOptions) { return new PredictionOptions( /* onDemandExecution= */ true, @@ -694,20 +671,6 @@ } } - /** Returns the freshness score of a module if valid. */ - private int getFreshnessScore(boolean useFreshnessScore, @ModuleType int moduleType) { - if (!useFreshnessScore) return INVALID_FRESHNESS_SCORE; - - long timeStamp = HomeModulesUtils.getFreshnessScoreTimeStamp(moduleType); - if (timeStamp == HomeModulesUtils.INVALID_TIMESTAMP - || SystemClock.elapsedRealtime() - timeStamp - >= HomeModulesMediator.FRESHNESS_THRESHOLD_MS) { - return INVALID_FRESHNESS_SCORE; - } - - return HomeModulesUtils.getFreshnessCount(moduleType); - } - @VisibleForTesting List<Integer> onGetClassificationResult( ClassificationResult result, Set<Integer> filteredEnabledModuleSet) { @@ -799,9 +762,4 @@ boolean getIsShownForTesting() { return mIsShown; } - - private boolean isHomeModuleRankerV2Enabled() { - return ChromeFeatureList.isEnabled( - ChromeFeatureList.SEGMENTATION_PLATFORM_ANDROID_HOME_MODULE_RANKER_V2); - } }
diff --git a/chrome/browser/magic_stack/android/java/src/org/chromium/chrome/browser/magic_stack/HomeModulesUtils.java b/chrome/browser/magic_stack/android/java/src/org/chromium/chrome/browser/magic_stack/HomeModulesUtils.java index a758c4e2..fc4d7a3 100644 --- a/chrome/browser/magic_stack/android/java/src/org/chromium/chrome/browser/magic_stack/HomeModulesUtils.java +++ b/chrome/browser/magic_stack/android/java/src/org/chromium/chrome/browser/magic_stack/HomeModulesUtils.java
@@ -4,18 +4,63 @@ package org.chromium.chrome.browser.magic_stack; +import static org.chromium.chrome.browser.magic_stack.ModuleDelegate.ModuleType.AUXILIARY_SEARCH; +import static org.chromium.chrome.browser.magic_stack.ModuleDelegate.ModuleType.PRICE_CHANGE; +import static org.chromium.chrome.browser.magic_stack.ModuleDelegate.ModuleType.SAFETY_HUB; +import static org.chromium.chrome.browser.magic_stack.ModuleDelegate.ModuleType.SINGLE_TAB; +import static org.chromium.chrome.browser.magic_stack.ModuleDelegate.ModuleType.TAB_RESUMPTION; + +import android.os.SystemClock; + import androidx.annotation.VisibleForTesting; import org.chromium.base.shared_preferences.SharedPreferencesManager; +import org.chromium.chrome.browser.flags.ChromeFeatureList; import org.chromium.chrome.browser.magic_stack.ModuleDelegate.ModuleType; import org.chromium.chrome.browser.preferences.ChromePreferenceKeys; import org.chromium.chrome.browser.preferences.ChromeSharedPreferences; +import org.chromium.components.segmentation_platform.InputContext; +import org.chromium.components.segmentation_platform.ProcessedValue; /** Utility class for the magic stack. */ public class HomeModulesUtils { static final long INVALID_TIMESTAMP = -1; static final int INVALID_FRESHNESS_SCORE = -1; + private static final String SINGLE_TAB_FRESHNESS_INPUT_CONTEXT = "single_tab_freshness"; + + private static final String PRICE_CHANGE_FRESHNESS_INPUT_CONTEXT = "price_change_freshness"; + + private static final String TAB_RESUMPTION_FRESHNESS_INPUT_CONTEXT = "tab_resumption_freshness"; + + private static final String SAFETY_HUB_FRESHNESS_INPUT_CONTEXT = "safety_hub_freshness"; + + private static final String AUXILIARY_SEARCH_FRESHNESS_INPUT_CONTEXT = + "auxiliary_search_freshness"; + + /** + * Returns the freshness score key used by InputContext for the given module. Remember to update + * the variant ModuleType in tools/metrics/histograms/metadata/magic_stack/histograms.xml when + * adding a new module type + */ + public static String getFreshnessInputContextString(@ModuleType int moduleType) { + switch (moduleType) { + case SINGLE_TAB: + return SINGLE_TAB_FRESHNESS_INPUT_CONTEXT; + case PRICE_CHANGE: + return PRICE_CHANGE_FRESHNESS_INPUT_CONTEXT; + case TAB_RESUMPTION: + return TAB_RESUMPTION_FRESHNESS_INPUT_CONTEXT; + case SAFETY_HUB: + return SAFETY_HUB_FRESHNESS_INPUT_CONTEXT; + case AUXILIARY_SEARCH: + return AUXILIARY_SEARCH_FRESHNESS_INPUT_CONTEXT; + default: + assert false : "Module type not supported!"; + return null; + } + } + /** Returns the preference key of the module type. */ private static String getFreshnessCountPreferenceKey(@ModuleType int moduleType) { assert 0 <= moduleType && moduleType < ModuleType.NUM_ENTRIES; @@ -80,6 +125,36 @@ return sharedPreferencesManager.readLong(freshnessScoreTimeStampKey, INVALID_TIMESTAMP); } + static boolean isHomeModuleRankerV2Enabled() { + return ChromeFeatureList.isEnabled( + ChromeFeatureList.SEGMENTATION_PLATFORM_ANDROID_HOME_MODULE_RANKER_V2); + } + + /** Creates an InputContext for the given module type. */ + public static InputContext createInputContextForTesting(@ModuleType int moduleType) { + InputContext inputContext = new InputContext(); + inputContext.addEntry( + getFreshnessInputContextString(moduleType), + ProcessedValue.fromFloat( + getFreshnessScoreForTesting(isHomeModuleRankerV2Enabled(), moduleType))); + return inputContext; + } + + /** Returns the freshness score of a module if valid. */ + private static int getFreshnessScoreForTesting( + boolean useFreshnessScore, @ModuleType int moduleType) { + if (!useFreshnessScore) return INVALID_FRESHNESS_SCORE; + + long timeStamp = getFreshnessScoreTimeStamp(moduleType); + if (timeStamp == INVALID_TIMESTAMP + || SystemClock.elapsedRealtime() - timeStamp + >= HomeModulesMediator.FRESHNESS_THRESHOLD_MS) { + return INVALID_FRESHNESS_SCORE; + } + + return getFreshnessCount(moduleType); + } + public static void setFreshnessCountForTesting(@ModuleType int moduleType, int count) { SharedPreferencesManager sharedPreferencesManager = ChromeSharedPreferences.getInstance(); String freshnessScoreKey = getFreshnessCountPreferenceKey(moduleType);
diff --git a/chrome/browser/magic_stack/android/java/src/org/chromium/chrome/browser/magic_stack/ModuleProviderBuilder.java b/chrome/browser/magic_stack/android/java/src/org/chromium/chrome/browser/magic_stack/ModuleProviderBuilder.java index ec667ee..cec6021d 100644 --- a/chrome/browser/magic_stack/android/java/src/org/chromium/chrome/browser/magic_stack/ModuleProviderBuilder.java +++ b/chrome/browser/magic_stack/android/java/src/org/chromium/chrome/browser/magic_stack/ModuleProviderBuilder.java
@@ -9,6 +9,8 @@ import androidx.annotation.NonNull; import org.chromium.base.Callback; +import org.chromium.build.annotations.Nullable; +import org.chromium.components.segmentation_platform.InputContext; import org.chromium.ui.modelutil.PropertyKey; import org.chromium.ui.modelutil.PropertyModel; @@ -54,4 +56,10 @@ * ModuleProviderBuilder to do some cleanup. */ default void onPauseWithNative() {} + + /** Creates an instance of InputContext. */ + @Nullable + default InputContext createInputContext() { + return null; + } }
diff --git a/chrome/browser/magic_stack/android/java/src/org/chromium/chrome/browser/magic_stack/ModuleRegistry.java b/chrome/browser/magic_stack/android/java/src/org/chromium/chrome/browser/magic_stack/ModuleRegistry.java index 8bc057c..a9aafcef 100644 --- a/chrome/browser/magic_stack/android/java/src/org/chromium/chrome/browser/magic_stack/ModuleRegistry.java +++ b/chrome/browser/magic_stack/android/java/src/org/chromium/chrome/browser/magic_stack/ModuleRegistry.java
@@ -14,6 +14,7 @@ import org.chromium.chrome.browser.lifecycle.LifecycleObserver; import org.chromium.chrome.browser.lifecycle.PauseResumeWithNativeObserver; import org.chromium.chrome.browser.magic_stack.ModuleDelegate.ModuleType; +import org.chromium.components.segmentation_platform.InputContext; import org.chromium.ui.modelutil.SimpleRecyclerViewAdapter; import java.util.HashMap; @@ -127,4 +128,13 @@ mLifecycleObserver = null; mActivityLifecycleDispatcher = null; } + + /** Creates an instance of InputContext. */ + InputContext createInputContext() { + InputContext inputContext = new InputContext(); + for (ModuleProviderBuilder builder : mModuleBuildersMap.values()) { + inputContext.mergeFrom(builder.createInputContext()); + } + return inputContext; + } }
diff --git a/chrome/browser/magic_stack/android/junit/src/org/chromium/chrome/browser/magic_stack/HomeModulesMediatorUnitTest.java b/chrome/browser/magic_stack/android/junit/src/org/chromium/chrome/browser/magic_stack/HomeModulesMediatorUnitTest.java index b14df2c67..e105bde 100644 --- a/chrome/browser/magic_stack/android/junit/src/org/chromium/chrome/browser/magic_stack/HomeModulesMediatorUnitTest.java +++ b/chrome/browser/magic_stack/android/junit/src/org/chromium/chrome/browser/magic_stack/HomeModulesMediatorUnitTest.java
@@ -18,9 +18,6 @@ import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; -import static org.chromium.chrome.browser.magic_stack.HomeModulesMediator.INVALID_FRESHNESS_SCORE; - -import android.os.SystemClock; import android.text.TextUtils; import androidx.test.filters.SmallTest; @@ -43,7 +40,6 @@ import org.chromium.chrome.browser.flags.ChromeFeatureList; import org.chromium.chrome.browser.magic_stack.ModuleDelegate.ModuleType; 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.MVCListAdapter.ListItem; @@ -643,22 +639,6 @@ ChromeFeatureList.SEGMENTATION_PLATFORM_ANDROID_HOME_MODULE_RANKER, ChromeFeatureList.SEGMENTATION_PLATFORM_ANDROID_HOME_MODULE_RANKER_V2 }) - public void testCreateContextInputEnabled_Empty() { - assertTrue( - ChromeFeatureList.isEnabled( - ChromeFeatureList.SEGMENTATION_PLATFORM_ANDROID_HOME_MODULE_RANKER_V2)); - - // Verifies that createInputContext() returns an empty one with invalid score value. - InputContext inputContext = mMediator.createInputContext(); - verifyEmptyInputContext(inputContext); - } - - @Test - @SmallTest - @EnableFeatures({ - ChromeFeatureList.SEGMENTATION_PLATFORM_ANDROID_HOME_MODULE_RANKER, - ChromeFeatureList.SEGMENTATION_PLATFORM_ANDROID_HOME_MODULE_RANKER_V2 - }) public void testCreateOptions_FlagEnabled() { assertTrue( ChromeFeatureList.isEnabled( @@ -691,64 +671,6 @@ @Test @SmallTest - @EnableFeatures({ChromeFeatureList.SEGMENTATION_PLATFORM_ANDROID_HOME_MODULE_RANKER}) - @DisableFeatures({ChromeFeatureList.SEGMENTATION_PLATFORM_ANDROID_HOME_MODULE_RANKER_V2}) - public void testCreateContextInputEnabled_NoFreshnessScore() { - assertFalse( - ChromeFeatureList.isEnabled( - ChromeFeatureList.SEGMENTATION_PLATFORM_ANDROID_HOME_MODULE_RANKER_V2)); - @ModuleType int moduleType = ModuleType.PRICE_CHANGE; - - // Verifies that createInputContext() returns an empty one with invalid score value if the - // freshness score is invalid or not added. - HomeModulesUtils.setFreshnessCountForTesting( - moduleType, HomeModulesUtils.INVALID_FRESHNESS_SCORE); - InputContext inputContext = mMediator.createInputContext(); - verifyEmptyInputContext(inputContext); - } - - @Test - @SmallTest - @EnableFeatures({ - ChromeFeatureList.SEGMENTATION_PLATFORM_ANDROID_HOME_MODULE_RANKER, - ChromeFeatureList.SEGMENTATION_PLATFORM_ANDROID_HOME_MODULE_RANKER_V2 - }) - public void testCreateContextInputEnabled() { - assertTrue( - ChromeFeatureList.isEnabled( - ChromeFeatureList.SEGMENTATION_PLATFORM_ANDROID_HOME_MODULE_RANKER_V2)); - @ModuleType int moduleType = ModuleType.PRICE_CHANGE; - - // Verifies that if the logged time is longer than the threshold, the freshness score is - // invalid. - int expectedScore = 100; - long scoreLoggedTime = - SystemClock.elapsedRealtime() - HomeModulesMediator.FRESHNESS_THRESHOLD_MS - 10; - HomeModulesUtils.setFreshnessScoreTimeStamp(moduleType, scoreLoggedTime); - HomeModulesUtils.setFreshnessCountForTesting(moduleType, expectedScore); - InputContext inputContext = mMediator.createInputContext(); - verifyEmptyInputContext(inputContext); - - // Verifies that the freshness score will be used if the logging time is less than the - // threshold. - scoreLoggedTime = SystemClock.elapsedRealtime() - 10; - HomeModulesUtils.setFreshnessScoreTimeStamp(moduleType, scoreLoggedTime); - HomeModulesUtils.setFreshnessCountForTesting(moduleType, expectedScore); - int[] scores = new int[] {-1, expectedScore, -1, -1, -1}; - inputContext = mMediator.createInputContext(); - verifyInputContext(inputContext, scores); - - // Verifies that if the freshness score becomes invalid or removed, there isn't any entry - // added to the InputContext. - HomeModulesUtils.setFreshnessCountForTesting(moduleType, INVALID_FRESHNESS_SCORE); - inputContext = mMediator.createInputContext(); - verifyEmptyInputContext(inputContext); - } - - // newly added: - - @Test - @SmallTest public void testGetFixedModuleList() { Set<Integer> filteredEnabledModuleSet = new HashSet<>(); filteredEnabledModuleSet.add(ModuleType.SINGLE_TAB); @@ -911,41 +833,6 @@ String expectedFreshnessString = "tab_resumption_freshness"; TextUtils.equals( expectedFreshnessString, - HomeModulesMetricsUtils.getFreshnessInputContextString(moduleType)); - } - - private void verifyInputContext(InputContext inputContext, int[] scores) { - assertEquals(ModuleType.NUM_ENTRIES - 1, inputContext.getSizeForTesting()); - - int j = 0; - for (int i = 0; i < ModuleType.NUM_ENTRIES; i++) { - if (i == ModuleType.EDUCATIONAL_TIP) { - continue; - } - - assertEquals( - scores[j], - inputContext.getEntryForTesting( - HomeModulesMetricsUtils.getFreshnessInputContextString(i)) - .floatValue, - 0.01); - j = j + 1; - } - } - - private void verifyEmptyInputContext(InputContext inputContext) { - assertEquals(ModuleType.NUM_ENTRIES - 1, inputContext.getSizeForTesting()); - for (int i = 0; i < ModuleType.NUM_ENTRIES; i++) { - if (i == ModuleType.EDUCATIONAL_TIP) { - continue; - } - - assertEquals( - INVALID_FRESHNESS_SCORE, - inputContext.getEntryForTesting( - HomeModulesMetricsUtils.getFreshnessInputContextString(i)) - .floatValue, - 0.01); - } + HomeModulesUtils.getFreshnessInputContextString(moduleType)); } }
diff --git a/chrome/browser/magic_stack/android/junit/src/org/chromium/chrome/browser/magic_stack/HomeModulesUtilsUnitTest.java b/chrome/browser/magic_stack/android/junit/src/org/chromium/chrome/browser/magic_stack/HomeModulesUtilsUnitTest.java index df4de571..10f16727b 100644 --- a/chrome/browser/magic_stack/android/junit/src/org/chromium/chrome/browser/magic_stack/HomeModulesUtilsUnitTest.java +++ b/chrome/browser/magic_stack/android/junit/src/org/chromium/chrome/browser/magic_stack/HomeModulesUtilsUnitTest.java
@@ -8,6 +8,10 @@ import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; +import static org.chromium.chrome.browser.magic_stack.HomeModulesMediator.INVALID_FRESHNESS_SCORE; + +import android.os.SystemClock; + import androidx.test.filters.SmallTest; import org.junit.Test; @@ -16,9 +20,13 @@ import org.chromium.base.shared_preferences.SharedPreferencesManager; import org.chromium.base.test.BaseRobolectricTestRunner; +import org.chromium.base.test.util.Features.DisableFeatures; +import org.chromium.base.test.util.Features.EnableFeatures; +import org.chromium.chrome.browser.flags.ChromeFeatureList; import org.chromium.chrome.browser.magic_stack.ModuleDelegate.ModuleType; import org.chromium.chrome.browser.preferences.ChromePreferenceKeys; import org.chromium.chrome.browser.preferences.ChromeSharedPreferences; +import org.chromium.components.segmentation_platform.InputContext; /** Unit tests for {@link HomeModulesUtils}. */ @RunWith(BaseRobolectricTestRunner.class) @@ -56,4 +64,107 @@ moduleFreshnessCountPreferenceKey, HomeModulesMediator.INVALID_FRESHNESS_SCORE)); } + + @Test + @SmallTest + @EnableFeatures({ + ChromeFeatureList.SEGMENTATION_PLATFORM_ANDROID_HOME_MODULE_RANKER, + ChromeFeatureList.SEGMENTATION_PLATFORM_ANDROID_HOME_MODULE_RANKER_V2 + }) + public void testCreateInputContext_InvalidScore() { + @ModuleType int moduleType = ModuleType.PRICE_CHANGE; + + HomeModulesUtils.setFreshnessCountForTesting( + moduleType, HomeModulesUtils.INVALID_FRESHNESS_SCORE); + + InputContext inputContext = HomeModulesUtils.createInputContextForTesting(moduleType); + + assertEquals(1, inputContext.getSizeForTesting()); + assertEquals( + INVALID_FRESHNESS_SCORE, + inputContext.getEntryForTesting( + HomeModulesUtils.getFreshnessInputContextString(moduleType)) + .floatValue, + 0.01); + } + + @Test + @SmallTest + @EnableFeatures({ + ChromeFeatureList.SEGMENTATION_PLATFORM_ANDROID_HOME_MODULE_RANKER, + ChromeFeatureList.SEGMENTATION_PLATFORM_ANDROID_HOME_MODULE_RANKER_V2 + }) + public void testCreateInputContext_InvalidTimestamp() { + @ModuleType int moduleType = ModuleType.PRICE_CHANGE; + + // Verifies that if the logged time is longer than the threshold, the freshness score is + // invalid. + int expectedScore = 100; + long scoreLoggedTime = + SystemClock.elapsedRealtime() - HomeModulesMediator.FRESHNESS_THRESHOLD_MS - 10; + HomeModulesUtils.setFreshnessScoreTimeStamp(moduleType, scoreLoggedTime); + HomeModulesUtils.setFreshnessCountForTesting(moduleType, expectedScore); + + InputContext inputContext = HomeModulesUtils.createInputContextForTesting(moduleType); + + assertEquals(1, inputContext.getSizeForTesting()); + assertEquals( + INVALID_FRESHNESS_SCORE, + inputContext.getEntryForTesting( + HomeModulesUtils.getFreshnessInputContextString(moduleType)) + .floatValue, + 0.01); + } + + @Test + @SmallTest + @EnableFeatures({ + ChromeFeatureList.SEGMENTATION_PLATFORM_ANDROID_HOME_MODULE_RANKER, + ChromeFeatureList.SEGMENTATION_PLATFORM_ANDROID_HOME_MODULE_RANKER_V2 + }) + public void testCreateInputContext() { + @ModuleType int moduleType = ModuleType.PRICE_CHANGE; + + // Verifies that the freshness score will be used if the logging time is less than the + // threshold. + int expectedScore = 100; + long scoreLoggedTime = SystemClock.elapsedRealtime() - 10; + HomeModulesUtils.setFreshnessScoreTimeStamp(moduleType, scoreLoggedTime); + HomeModulesUtils.setFreshnessCountForTesting(moduleType, expectedScore); + + InputContext inputContext = HomeModulesUtils.createInputContextForTesting(moduleType); + + assertEquals(1, inputContext.getSizeForTesting()); + assertEquals( + expectedScore, + inputContext.getEntryForTesting( + HomeModulesUtils.getFreshnessInputContextString(moduleType)) + .floatValue, + 0.01); + } + + @Test + @SmallTest + @EnableFeatures({ChromeFeatureList.SEGMENTATION_PLATFORM_ANDROID_HOME_MODULE_RANKER}) + @DisableFeatures({ChromeFeatureList.SEGMENTATION_PLATFORM_ANDROID_HOME_MODULE_RANKER_V2}) + public void testCreateInputContext_Disabled() { + @ModuleType int moduleType = ModuleType.PRICE_CHANGE; + + // Verifies that the freshness score won't be used if the flag + // ChromeFeatureList.SEGMENTATION_PLATFORM_ANDROID_HOME_MODULE_RANKER_V2 is disabled. + int expectedScore = 100; + long scoreLoggedTime = SystemClock.elapsedRealtime() - 10; + HomeModulesUtils.setFreshnessScoreTimeStamp(moduleType, scoreLoggedTime); + HomeModulesUtils.setFreshnessCountForTesting(moduleType, expectedScore); + + InputContext inputContext = HomeModulesUtils.createInputContextForTesting(moduleType); + + assertEquals(1, inputContext.getSizeForTesting()); + assertEquals( + INVALID_FRESHNESS_SCORE, + inputContext.getEntryForTesting( + HomeModulesUtils.getFreshnessInputContextString(moduleType)) + .floatValue, + 0.01); + } }
diff --git a/chrome/browser/magic_stack/android/junit/src/org/chromium/chrome/browser/magic_stack/ModuleRegistryUnitTest.java b/chrome/browser/magic_stack/android/junit/src/org/chromium/chrome/browser/magic_stack/ModuleRegistryUnitTest.java index 6ff7cc6..46f10a0 100644 --- a/chrome/browser/magic_stack/android/junit/src/org/chromium/chrome/browser/magic_stack/ModuleRegistryUnitTest.java +++ b/chrome/browser/magic_stack/android/junit/src/org/chromium/chrome/browser/magic_stack/ModuleRegistryUnitTest.java
@@ -4,10 +4,14 @@ package org.chromium.chrome.browser.magic_stack; +import static org.junit.Assert.assertEquals; import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.eq; import static org.mockito.Mockito.never; import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +import static org.chromium.chrome.browser.magic_stack.HomeModulesMediator.INVALID_FRESHNESS_SCORE; import androidx.test.filters.SmallTest; @@ -25,10 +29,18 @@ import org.chromium.base.Callback; import org.chromium.base.test.BaseRobolectricTestRunner; +import org.chromium.base.test.util.Features.EnableFeatures; +import org.chromium.chrome.browser.flags.ChromeFeatureList; import org.chromium.chrome.browser.init.ActivityLifecycleDispatcherImpl; import org.chromium.chrome.browser.lifecycle.PauseResumeWithNativeObserver; +import org.chromium.chrome.browser.magic_stack.ModuleDelegate.ModuleType; +import org.chromium.components.segmentation_platform.InputContext; +import org.chromium.components.segmentation_platform.ProcessedValue; import org.chromium.ui.modelutil.SimpleRecyclerViewAdapter; +import java.util.HashSet; +import java.util.Set; + /** Unit tests for {@link ModuleRegistry}. */ @RunWith(BaseRobolectricTestRunner.class) @Config(manifest = Config.NONE) @@ -40,7 +52,6 @@ @Mock private ModuleProviderBuilder mModuleProviderBuilder1; @Mock private ModuleProviderBuilder mModuleProviderBuilder2; - @Mock private ModuleDelegate mModuleDelegate; @Mock private Callback<ModuleProvider> mOnModuleBuiltCallback; @Mock private SimpleRecyclerViewAdapter mAdapter; @@ -104,4 +115,43 @@ mLifecycleObserverArgumentCaptor.getValue().onPauseWithNative(); verify(mModuleProviderBuilder1).onPauseWithNative(); } + + @Test + @SmallTest + @EnableFeatures({ + ChromeFeatureList.SEGMENTATION_PLATFORM_ANDROID_HOME_MODULE_RANKER, + ChromeFeatureList.SEGMENTATION_PLATFORM_ANDROID_HOME_MODULE_RANKER_V2 + }) + public void testCreateContextInput() { + @ModuleType int moduleType1 = ModuleType.PRICE_CHANGE; + @ModuleType int moduleType2 = ModuleType.EDUCATIONAL_TIP; + Set<Integer> mEnabledModuleSet = new HashSet<>(Set.of(moduleType1, moduleType2)); + + // Registers a solid module. + InputContext inputs1 = HomeModulesUtils.createInputContextForTesting(moduleType1); + when(mModuleProviderBuilder1.createInputContext()).thenReturn(inputs1); + + // Registers an ephemeral module. + InputContext inputs2 = new InputContext(); + inputs2.addEntry("key", ProcessedValue.fromFloat(1.0f)); + when(mModuleProviderBuilder2.createInputContext()).thenReturn(inputs2); + + when(mHomeModulesConfigManager.getEnabledModuleSet()).thenReturn(mEnabledModuleSet); + mModuleRegistry.registerModule(moduleType1, mModuleProviderBuilder1); + mModuleRegistry.registerModule(moduleType2, mModuleProviderBuilder2); + + InputContext inputContext = mModuleRegistry.createInputContext(); + + assertEquals(2, inputContext.getSizeForTesting()); + verify(mModuleProviderBuilder1).createInputContext(); + verify(mModuleProviderBuilder2).createInputContext(); + + assertEquals( + INVALID_FRESHNESS_SCORE, + inputContext.getEntryForTesting( + HomeModulesUtils.getFreshnessInputContextString(moduleType1)) + .floatValue, + 0.01); + assertEquals(1.0f, inputContext.getEntryForTesting("key").floatValue, 0.01); + } }
diff --git a/chrome/browser/media/android/media_capture_picker_dialog_bridge.cc b/chrome/browser/media/android/media_capture_picker_dialog_bridge.cc index 9367c2dd..9a779ddc 100644 --- a/chrome/browser/media/android/media_capture_picker_dialog_bridge.cc +++ b/chrome/browser/media/android/media_capture_picker_dialog_bridge.cc
@@ -65,7 +65,9 @@ content::DesktopMediaID::TYPE_WEB_CONTENTS, content::DesktopMediaID::kNullId, content::WebContentsMediaCaptureId( - web_contents->GetPrimaryMainFrame()->GetProcess()->GetID(), + web_contents->GetPrimaryMainFrame() + ->GetProcess() + ->GetDeprecatedID(), web_contents->GetPrimaryMainFrame()->GetRoutingID())); } std::move(callback_).Run(desktop_media_id);
diff --git a/chrome/browser/media/cast_mirroring_service_host.cc b/chrome/browser/media/cast_mirroring_service_host.cc index 4505c58..9cdc23b 100644 --- a/chrome/browser/media/cast_mirroring_service_host.cc +++ b/chrome/browser/media/cast_mirroring_service_host.cc
@@ -255,7 +255,7 @@ } media_id.type = content::DesktopMediaID::TYPE_WEB_CONTENTS; media_id.web_contents_id = content::WebContentsMediaCaptureId( - contents->GetPrimaryMainFrame()->GetProcess()->GetID(), + contents->GetPrimaryMainFrame()->GetProcess()->GetDeprecatedID(), contents->GetPrimaryMainFrame()->GetRoutingID(), true /* disable_local_echo */); return media_id;
diff --git a/chrome/browser/media/cast_mirroring_service_host_browsertest.cc b/chrome/browser/media/cast_mirroring_service_host_browsertest.cc index c268ced..71a7b5f 100644 --- a/chrome/browser/media/cast_mirroring_service_host_browsertest.cc +++ b/chrome/browser/media/cast_mirroring_service_host_browsertest.cc
@@ -73,7 +73,7 @@ content::DesktopMediaID media_id; content::RenderFrameHost* const main_frame = target_web_contents->GetPrimaryMainFrame(); - const int process_id = main_frame->GetProcess()->GetID(); + const int process_id = main_frame->GetProcess()->GetDeprecatedID(); const int frame_id = main_frame->GetRoutingID(); media_id.type = content::DesktopMediaID::TYPE_WEB_CONTENTS; media_id.web_contents_id = content::WebContentsMediaCaptureId(
diff --git a/chrome/browser/media/output_protection_impl.cc b/chrome/browser/media/output_protection_impl.cc index 56971a2..7f17203e 100644 --- a/chrome/browser/media/output_protection_impl.cc +++ b/chrome/browser/media/output_protection_impl.cc
@@ -33,7 +33,7 @@ content::RenderFrameHost& render_frame_host, mojo::PendingReceiver<media::mojom::OutputProtection> receiver) : DocumentService(render_frame_host, std::move(receiver)), - render_process_id_(render_frame_host.GetProcess()->GetID()), + render_process_id_(render_frame_host.GetProcess()->GetDeprecatedID()), render_frame_id_(render_frame_host.GetRoutingID()) {} OutputProtectionImpl::~OutputProtectionImpl() {
diff --git a/chrome/browser/media/router/presentation/controller_presentation_service_delegate_impl_unittest.cc b/chrome/browser/media/router/presentation/controller_presentation_service_delegate_impl_unittest.cc index 4d5358d..4c63304 100644 --- a/chrome/browser/media/router/presentation/controller_presentation_service_delegate_impl_unittest.cc +++ b/chrome/browser/media/router/presentation/controller_presentation_service_delegate_impl_unittest.cc
@@ -232,7 +232,7 @@ content::RenderFrameHost* main_frame = GetWebContents()->GetPrimaryMainFrame(); ASSERT_TRUE(main_frame); - main_frame_process_id_ = main_frame->GetProcess()->GetID(); + main_frame_process_id_ = main_frame->GetProcess()->GetDeprecatedID(); main_frame_routing_id_ = main_frame->GetRoutingID(); }
diff --git a/chrome/browser/media/unified_autoplay_browsertest.cc b/chrome/browser/media/unified_autoplay_browsertest.cc index 237eaef1..5112b3d 100644 --- a/chrome/browser/media/unified_autoplay_browsertest.cc +++ b/chrome/browser/media/unified_autoplay_browsertest.cc
@@ -145,7 +145,7 @@ open_url_params.initiator_origin = active_contents->GetPrimaryMainFrame()->GetLastCommittedOrigin(); open_url_params.source_render_process_id = - active_contents->GetPrimaryMainFrame()->GetProcess()->GetID(); + active_contents->GetPrimaryMainFrame()->GetProcess()->GetDeprecatedID(); open_url_params.source_render_frame_id = active_contents->GetPrimaryMainFrame()->GetRoutingID(); open_url_params.user_gesture = user_gesture;
diff --git a/chrome/browser/media/webrtc/audio_debug_recordings_handler.cc b/chrome/browser/media/webrtc/audio_debug_recordings_handler.cc index d95de82..8f847475 100644 --- a/chrome/browser/media/webrtc/audio_debug_recordings_handler.cc +++ b/chrome/browser/media/webrtc/audio_debug_recordings_handler.cc
@@ -76,7 +76,7 @@ base::BindOnce(&GetLogDirectoryAndEnsureExists, browser_context_->GetPath()), base::BindOnce(&AudioDebugRecordingsHandler::DoStartAudioDebugRecordings, - this, host->GetID(), delay, std::move(callback), + this, host->GetDeprecatedID(), delay, std::move(callback), std::move(error_callback))); } @@ -93,7 +93,7 @@ base::BindOnce(&GetLogDirectoryAndEnsureExists, browser_context_->GetPath()), base::BindOnce(&AudioDebugRecordingsHandler::DoStopAudioDebugRecordings, - this, host->GetID(), is_manual_stop, + this, host->GetDeprecatedID(), is_manual_stop, current_audio_debug_recordings_id_, std::move(callback), std::move(error_callback))); }
diff --git a/chrome/browser/media/webrtc/current_tab_desktop_media_list.cc b/chrome/browser/media/webrtc/current_tab_desktop_media_list.cc index f88cdf9..039bef1 100644 --- a/chrome/browser/media/webrtc/current_tab_desktop_media_list.cc +++ b/chrome/browser/media/webrtc/current_tab_desktop_media_list.cc
@@ -64,7 +64,9 @@ media_id_(content::DesktopMediaID::TYPE_WEB_CONTENTS, content::DesktopMediaID::kNullId, content::WebContentsMediaCaptureId( - web_contents->GetPrimaryMainFrame()->GetProcess()->GetID(), + web_contents->GetPrimaryMainFrame() + ->GetProcess() + ->GetDeprecatedID(), web_contents->GetPrimaryMainFrame()->GetRoutingID())), thumbnail_task_runner_(base::ThreadPool::CreateSequencedTaskRunner( {base::MayBlock(), base::TaskPriority::USER_VISIBLE})) {
diff --git a/chrome/browser/media/webrtc/desktop_capture_access_handler.cc b/chrome/browser/media/webrtc/desktop_capture_access_handler.cc index 6b21e69..6511054 100644 --- a/chrome/browser/media/webrtc/desktop_capture_access_handler.cc +++ b/chrome/browser/media/webrtc/desktop_capture_access_handler.cc
@@ -414,7 +414,8 @@ media_id = content::DesktopStreamsRegistry::GetInstance()->RequestMediaForStreamId( request.requested_video_device_ids.front(), - main_frame->GetProcess()->GetID(), main_frame->GetRoutingID(), + main_frame->GetProcess()->GetDeprecatedID(), + main_frame->GetRoutingID(), url::Origin::Create(request.security_origin), content::kRegistryStreamTypeDesktop); }
diff --git a/chrome/browser/media/webrtc/desktop_capture_access_handler_unittest.cc b/chrome/browser/media/webrtc/desktop_capture_access_handler_unittest.cc index f011193..6033fc20 100644 --- a/chrome/browser/media/webrtc/desktop_capture_access_handler_unittest.cc +++ b/chrome/browser/media/webrtc/desktop_capture_access_handler_unittest.cc
@@ -70,7 +70,7 @@ features::kMacSystemScreenCapturePermissionCheck); #endif content::MediaStreamRequest request( - web_contents()->GetPrimaryMainFrame()->GetProcess()->GetID(), + web_contents()->GetPrimaryMainFrame()->GetProcess()->GetDeprecatedID(), web_contents()->GetPrimaryMainFrame()->GetRoutingID(), /*page_request_id=*/0, url::Origin::Create(origin), /*user_gesture=*/false, blink::MEDIA_GENERATE_STREAM, @@ -365,7 +365,10 @@ const GURL origin(kOrigin); const std::string id = content::DesktopStreamsRegistry::GetInstance()->RegisterStream( - web_contents()->GetPrimaryMainFrame()->GetProcess()->GetID(), + web_contents() + ->GetPrimaryMainFrame() + ->GetProcess() + ->GetDeprecatedID(), web_contents()->GetPrimaryMainFrame()->GetRoutingID(), url::Origin::Create(origin), content::DesktopMediaID(content::DesktopMediaID::TYPE_SCREEN, @@ -527,7 +530,10 @@ const std::string id = content::DesktopStreamsRegistry::GetInstance()->RegisterStream( - web_contents()->GetPrimaryMainFrame()->GetProcess()->GetID(), + web_contents() + ->GetPrimaryMainFrame() + ->GetProcess() + ->GetDeprecatedID(), web_contents()->GetPrimaryMainFrame()->GetRoutingID(), url::Origin::Create(GURL(kOrigin)), content::DesktopMediaID(content::DesktopMediaID::TYPE_SCREEN, @@ -559,7 +565,10 @@ const std::string id = content::DesktopStreamsRegistry::GetInstance()->RegisterStream( - web_contents()->GetPrimaryMainFrame()->GetProcess()->GetID(), + web_contents() + ->GetPrimaryMainFrame() + ->GetProcess() + ->GetDeprecatedID(), web_contents()->GetPrimaryMainFrame()->GetRoutingID(), url::Origin::Create(GURL(kOrigin)), content::DesktopMediaID(content::DesktopMediaID::TYPE_SCREEN,
diff --git a/chrome/browser/media/webrtc/desktop_capture_devices_util.cc b/chrome/browser/media/webrtc/desktop_capture_devices_util.cc index b858706..58b8421 100644 --- a/chrome/browser/media/webrtc/desktop_capture_devices_util.cc +++ b/chrome/browser/media/webrtc/desktop_capture_devices_util.cc
@@ -224,7 +224,7 @@ // dialog for DISPLAY_VIDEO_CAPTURE_THIS_TAB could still return something // other than the current tab - be it a screen, window, or another tab. if (media_id.type == content::DesktopMediaID::TYPE_WEB_CONTENTS && - web_contents->GetPrimaryMainFrame()->GetProcess()->GetID() == + web_contents->GetPrimaryMainFrame()->GetProcess()->GetDeprecatedID() == media_id.web_contents_id.render_process_id && web_contents->GetPrimaryMainFrame()->GetRoutingID() == media_id.web_contents_id.main_render_frame_id) {
diff --git a/chrome/browser/media/webrtc/display_media_access_handler_unittest.cc b/chrome/browser/media/webrtc/display_media_access_handler_unittest.cc index 2d7d97fb..fd5547fc 100644 --- a/chrome/browser/media/webrtc/display_media_access_handler_unittest.cc +++ b/chrome/browser/media/webrtc/display_media_access_handler_unittest.cc
@@ -63,7 +63,8 @@ content::WebContentsMediaCaptureId GetWebContentsMediaCaptureId() { return content::WebContentsMediaCaptureId( - web_contents()->GetPrimaryMainFrame()->GetProcess()->GetID(), 1); + web_contents()->GetPrimaryMainFrame()->GetProcess()->GetDeprecatedID(), + 1); } FakeDesktopMediaPickerFactory::TestFlags MakePickerTestFlags( @@ -81,7 +82,7 @@ content::MediaStreamRequest MakeRequest(bool request_audio) { return content::MediaStreamRequest( - web_contents()->GetPrimaryMainFrame()->GetProcess()->GetID(), + web_contents()->GetPrimaryMainFrame()->GetProcess()->GetDeprecatedID(), web_contents()->GetPrimaryMainFrame()->GetRoutingID(), 0, url::Origin::Create(GURL("http://origin/")), false, blink::MEDIA_GENERATE_STREAM, /*requested_audio_device_ids=*/{}, @@ -402,7 +403,7 @@ TEST_F(DisplayMediaAccessHandlerTest, UpdateMediaRequestStateWithClosing) { const int render_process_id = - web_contents()->GetPrimaryMainFrame()->GetProcess()->GetID(); + web_contents()->GetPrimaryMainFrame()->GetProcess()->GetDeprecatedID(); const int render_frame_id = web_contents()->GetPrimaryMainFrame()->GetRoutingID(); const int page_request_id = 0; @@ -442,7 +443,7 @@ TEST_F(DisplayMediaAccessHandlerTest, CorrectHostAsksForPermissions) { const int render_process_id = - web_contents()->GetPrimaryMainFrame()->GetProcess()->GetID(); + web_contents()->GetPrimaryMainFrame()->GetProcess()->GetDeprecatedID(); const int render_frame_id = web_contents()->GetPrimaryMainFrame()->GetRoutingID(); const int page_request_id = 0; @@ -479,7 +480,7 @@ TEST_F(DisplayMediaAccessHandlerTest, CorrectHostAsksForPermissionsNormalURLs) { const int render_process_id = - web_contents()->GetPrimaryMainFrame()->GetProcess()->GetID(); + web_contents()->GetPrimaryMainFrame()->GetProcess()->GetDeprecatedID(); const int render_frame_id = web_contents()->GetPrimaryMainFrame()->GetRoutingID(); const int page_request_id = 0; @@ -535,7 +536,7 @@ url_info.origin().GetURL()); const int render_process_id = - web_contents()->GetPrimaryMainFrame()->GetProcess()->GetID(); + web_contents()->GetPrimaryMainFrame()->GetProcess()->GetDeprecatedID(); const int render_frame_id = web_contents()->GetPrimaryMainFrame()->GetRoutingID(); const int page_request_id = 0; @@ -571,7 +572,7 @@ false /* expect_audio */, content::DesktopMediaID(), true /* cancelled */}}); content::MediaStreamRequest request( - web_contents()->GetPrimaryMainFrame()->GetProcess()->GetID(), + web_contents()->GetPrimaryMainFrame()->GetProcess()->GetDeprecatedID(), web_contents()->GetPrimaryMainFrame()->GetRoutingID(), 0, url::Origin::Create(GURL("http://origin/")), false, blink::MEDIA_GENERATE_STREAM, /*requested_audio_device_ids=*/{}, @@ -613,7 +614,7 @@ std::array<base::RunLoop, kTestFlagCount> wait_loop; for (size_t i = 0; i < kTestFlagCount; ++i) { content::MediaStreamRequest request( - web_contents()->GetPrimaryMainFrame()->GetProcess()->GetID(), + web_contents()->GetPrimaryMainFrame()->GetProcess()->GetDeprecatedID(), web_contents()->GetPrimaryMainFrame()->GetRoutingID(), 0, url::Origin::Create(GURL("http://origin/")), false, blink::MEDIA_GENERATE_STREAM, /*requested_audio_device_ids=*/{},
diff --git a/chrome/browser/media/webrtc/media_stream_devices_controller_browsertest.cc b/chrome/browser/media/webrtc/media_stream_devices_controller_browsertest.cc index 221e0f6..78d1a4a 100644 --- a/chrome/browser/media/webrtc/media_stream_devices_controller_browsertest.cc +++ b/chrome/browser/media/webrtc/media_stream_devices_controller_browsertest.cc
@@ -179,8 +179,10 @@ ->GetLastCommittedOrigin() .GetURL()); } - int render_process_id = - GetWebContents()->GetPrimaryMainFrame()->GetProcess()->GetID(); + int render_process_id = GetWebContents() + ->GetPrimaryMainFrame() + ->GetProcess() + ->GetDeprecatedID(); int render_frame_id = GetWebContents()->GetPrimaryMainFrame()->GetRoutingID(); return content::MediaStreamRequest( @@ -956,7 +958,7 @@ content::MediaStreamRequest request = CreateRequest(example_audio_id(), example_video_id(), false); // Make the child frame the source of the request. - request.render_process_id = child_frame->GetProcess()->GetID(); + request.render_process_id = child_frame->GetProcess()->GetDeprecatedID(); request.render_frame_id = child_frame->GetRoutingID(); request.security_origin = child_frame->GetLastCommittedOrigin().GetURL(); @@ -987,7 +989,7 @@ content::MediaStreamRequest request = CreateRequest(std::string(), example_video_id(), false); // Make the child frame the source of the request. - request.render_process_id = child_frame->GetProcess()->GetID(); + request.render_process_id = child_frame->GetProcess()->GetDeprecatedID(); request.render_frame_id = child_frame->GetRoutingID(); request.security_origin = child_frame->GetLastCommittedOrigin().GetURL();
diff --git a/chrome/browser/media/webrtc/media_stream_focus_delegate_unittest.cc b/chrome/browser/media/webrtc/media_stream_focus_delegate_unittest.cc index 049edba..73f2a3d 100644 --- a/chrome/browser/media/webrtc/media_stream_focus_delegate_unittest.cc +++ b/chrome/browser/media/webrtc/media_stream_focus_delegate_unittest.cc
@@ -59,7 +59,7 @@ content::DesktopMediaID::TYPE_WEB_CONTENTS, content::DesktopMediaID::kNullId, content::WebContentsMediaCaptureId( - tab->GetPrimaryMainFrame()->GetProcess()->GetID(), + tab->GetPrimaryMainFrame()->GetProcess()->GetDeprecatedID(), tab->GetPrimaryMainFrame()->GetRoutingID())); }
diff --git a/chrome/browser/media/webrtc/tab_capture_access_handler_unittest.cc b/chrome/browser/media/webrtc/tab_capture_access_handler_unittest.cc index 3563f7d..6c58a7e 100644 --- a/chrome/browser/media/webrtc/tab_capture_access_handler_unittest.cc +++ b/chrome/browser/media/webrtc/tab_capture_access_handler_unittest.cc
@@ -50,7 +50,7 @@ blink::mojom::StreamDevices* devices_result, bool expect_result = true) { content::MediaStreamRequest request( - web_contents()->GetPrimaryMainFrame()->GetProcess()->GetID(), + web_contents()->GetPrimaryMainFrame()->GetProcess()->GetDeprecatedID(), web_contents()->GetPrimaryMainFrame()->GetRoutingID(), /*page_request_id=*/0, url::Origin::Create(GURL(kOrigin)), /*user_gesture=*/false, blink::MEDIA_GENERATE_STREAM, @@ -101,7 +101,7 @@ return web_contents()->GetPrimaryMainFrame(); } int main_frame_id() { return main_frame()->GetRoutingID(); } - int process_id() { return main_frame()->GetProcess()->GetID(); } + int process_id() { return main_frame()->GetProcess()->GetDeprecatedID(); } protected: std::unique_ptr<TabCaptureAccessHandler> access_handler_; @@ -112,7 +112,10 @@ content::DesktopMediaID::TYPE_WEB_CONTENTS, content::DesktopMediaID::kNullId, content::WebContentsMediaCaptureId( - web_contents()->GetPrimaryMainFrame()->GetProcess()->GetID(), + web_contents() + ->GetPrimaryMainFrame() + ->GetProcess() + ->GetDeprecatedID(), web_contents()->GetPrimaryMainFrame()->GetRoutingID())); extensions::TabCaptureRegistry::Get(profile())->AddRequest( @@ -136,7 +139,10 @@ content::DesktopMediaID::TYPE_WEB_CONTENTS, content::DesktopMediaID::kNullId, content::WebContentsMediaCaptureId( - web_contents()->GetPrimaryMainFrame()->GetProcess()->GetID(), + web_contents() + ->GetPrimaryMainFrame() + ->GetProcess() + ->GetDeprecatedID(), web_contents()->GetPrimaryMainFrame()->GetRoutingID())); // Setup Data Leak Prevention restriction. @@ -168,7 +174,10 @@ content::DesktopMediaID::TYPE_WEB_CONTENTS, content::DesktopMediaID::kNullId, content::WebContentsMediaCaptureId( - web_contents()->GetPrimaryMainFrame()->GetProcess()->GetID(), + web_contents() + ->GetPrimaryMainFrame() + ->GetProcess() + ->GetDeprecatedID(), web_contents()->GetPrimaryMainFrame()->GetRoutingID())); // Setup Data Leak Prevention restriction. @@ -200,7 +209,10 @@ content::DesktopMediaID::TYPE_WEB_CONTENTS, content::DesktopMediaID::kNullId, content::WebContentsMediaCaptureId( - web_contents()->GetPrimaryMainFrame()->GetProcess()->GetID(), + web_contents() + ->GetPrimaryMainFrame() + ->GetProcess() + ->GetDeprecatedID(), web_contents()->GetPrimaryMainFrame()->GetRoutingID())); // Setup Data Leak Prevention restriction.
diff --git a/chrome/browser/media/webrtc/tab_desktop_media_list.cc b/chrome/browser/media/webrtc/tab_desktop_media_list.cc index aa30506..fa393d8 100644 --- a/chrome/browser/media/webrtc/tab_desktop_media_list.cc +++ b/chrome/browser/media/webrtc/tab_desktop_media_list.cc
@@ -200,10 +200,11 @@ continue; content::RenderFrameHost* main_frame = contents->GetPrimaryMainFrame(); DCHECK(main_frame); - DesktopMediaID media_id( - DesktopMediaID::TYPE_WEB_CONTENTS, DesktopMediaID::kNullId, - content::WebContentsMediaCaptureId(main_frame->GetProcess()->GetID(), - main_frame->GetRoutingID())); + DesktopMediaID media_id(DesktopMediaID::TYPE_WEB_CONTENTS, + DesktopMediaID::kNullId, + content::WebContentsMediaCaptureId( + main_frame->GetProcess()->GetDeprecatedID(), + main_frame->GetRoutingID())); // Get tab's last active time stamp. const base::TimeTicks t = contents->GetLastActiveTimeTicks();
diff --git a/chrome/browser/media/webrtc/webrtc_desktop_capture_browsertest.cc b/chrome/browser/media/webrtc/webrtc_desktop_capture_browsertest.cc index f49c9a2..8c2e553b1 100644 --- a/chrome/browser/media/webrtc/webrtc_desktop_capture_browsertest.cc +++ b/chrome/browser/media/webrtc/webrtc_desktop_capture_browsertest.cc
@@ -59,8 +59,9 @@ return content::DesktopMediaID( content::DesktopMediaID::TYPE_WEB_CONTENTS, content::DesktopMediaID::kNullId, - content::WebContentsMediaCaptureId(main_frame->GetProcess()->GetID(), - main_frame->GetRoutingID())); + content::WebContentsMediaCaptureId( + main_frame->GetProcess()->GetDeprecatedID(), + main_frame->GetRoutingID())); } infobars::ContentInfoBarManager* GetInfoBarManager(Browser* browser, int tab) {
diff --git a/chrome/browser/media/webrtc/webrtc_event_log_manager.cc b/chrome/browser/media/webrtc/webrtc_event_log_manager.cc index 77e4997..01a056c6 100644 --- a/chrome/browser/media/webrtc/webrtc_event_log_manager.cc +++ b/chrome/browser/media/webrtc/webrtc_event_log_manager.cc
@@ -471,7 +471,7 @@ task_runner_->PostTask( FROM_HERE, base::BindOnce(&WebRtcEventLogManager::RenderProcessExitedInternal, - base::Unretained(this), host->GetID())); + base::Unretained(this), host->GetDeprecatedID())); } void WebRtcEventLogManager::OnPeerConnectionAdded(
diff --git a/chrome/browser/media/webrtc/webrtc_event_log_manager_unittest.cc b/chrome/browser/media/webrtc/webrtc_event_log_manager_unittest.cc index d1c4671..a27e8107 100644 --- a/chrome/browser/media/webrtc/webrtc_event_log_manager_unittest.cc +++ b/chrome/browser/media/webrtc/webrtc_event_log_manager_unittest.cc
@@ -143,7 +143,8 @@ PeerConnectionKey GetPeerConnectionKey(RenderProcessHost* rph, int lid) { const BrowserContext* browser_context = rph->GetBrowserContext(); const auto browser_context_id = GetBrowserContextId(browser_context); - return PeerConnectionKey(rph->GetID(), lid, browser_context_id, kFrameId); + return PeerConnectionKey(rph->GetDeprecatedID(), lid, browser_context_id, + kFrameId); } bool CreateRemoteBoundLogFile(const base::FilePath& dir, @@ -1799,7 +1800,7 @@ std::vector<std::string> logs; for (size_t i = 0; i < keys.size(); ++i) { - logs.emplace_back(base::NumberToString(rph_->GetID()) + + logs.emplace_back(base::NumberToString(rph_->GetDeprecatedID()) + base::NumberToString(kLid)); ASSERT_EQ(OnWebRtcEventLogWrite(keys[i], logs[i]), std::make_pair(true, false)); @@ -1984,7 +1985,7 @@ base::FilePath expected_path = local_logs_base_path; expected_path = local_logs_base_path.InsertBeforeExtension( FILE_PATH_LITERAL("_") + date + FILE_PATH_LITERAL("_") + time + - FILE_PATH_LITERAL("_") + NumberToStringType(rph_->GetID()) + + FILE_PATH_LITERAL("_") + NumberToStringType(rph_->GetDeprecatedID()) + FILE_PATH_LITERAL("_") + NumberToStringType(kLid)); expected_path = expected_path.AddExtension(local_log_extension_); @@ -2028,7 +2029,7 @@ base::FilePath expected_path_1 = local_logs_base_path; expected_path_1 = local_logs_base_path.InsertBeforeExtension( FILE_PATH_LITERAL("_") + date + FILE_PATH_LITERAL("_") + time + - FILE_PATH_LITERAL("_") + NumberToStringType(rph_->GetID()) + + FILE_PATH_LITERAL("_") + NumberToStringType(rph_->GetDeprecatedID()) + FILE_PATH_LITERAL("_") + NumberToStringType(kLid)); expected_path_1 = expected_path_1.AddExtension(local_log_extension_); @@ -2499,7 +2500,7 @@ std::vector<std::string> logs; for (size_t i = 0; i < keys.size(); ++i) { - logs.emplace_back(base::NumberToString(rph_->GetID()) + + logs.emplace_back(base::NumberToString(rph_->GetDeprecatedID()) + base::NumberToString(i)); ASSERT_EQ(OnWebRtcEventLogWrite(keys[i], logs[i]), std::make_pair(false, true)); @@ -2545,7 +2546,7 @@ std::vector<std::string> logs; for (size_t i = 0; i < keys.size(); ++i) { - logs.emplace_back(base::NumberToString(rph_->GetID()) + + logs.emplace_back(base::NumberToString(rph_->GetDeprecatedID()) + base::NumberToString(i)); ASSERT_EQ(OnWebRtcEventLogWrite(keys[i], logs[i]), std::make_pair(false, true));
diff --git a/chrome/browser/media/webrtc/webrtc_logging_controller.cc b/chrome/browser/media/webrtc/webrtc_logging_controller.cc index eb98087..0798034f5 100644 --- a/chrome/browser/media/webrtc/webrtc_logging_controller.cc +++ b/chrome/browser/media/webrtc/webrtc_logging_controller.cc
@@ -45,7 +45,7 @@ host->SetUserData( kRenderProcessHostKey, std::make_unique<base::UserDataAdapter<WebRtcLoggingController>>( - new WebRtcLoggingController(host->GetID(), + new WebRtcLoggingController(host->GetDeprecatedID(), host->GetBrowserContext()))); }
diff --git a/chrome/browser/memory_details.cc b/chrome/browser/memory_details.cc index a193af3f..61f5aca7 100644 --- a/chrome/browser/memory_details.cc +++ b/chrome/browser/memory_details.cc
@@ -306,7 +306,7 @@ extensions::ProcessMap* process_map = extensions::ProcessMap::Get(context); DCHECK(process_map); - int rph_id = render_process_host->GetID(); + int rph_id = render_process_host->GetDeprecatedID(); process_is_for_extensions = process_map->Contains(rph_id); // For our purposes, don't count processes running hosted apps as
diff --git a/chrome/browser/metrics/chrome_metrics_extensions_helper.cc b/chrome/browser/metrics/chrome_metrics_extensions_helper.cc index 30f7d867..e174d95 100644 --- a/chrome/browser/metrics/chrome_metrics_extensions_helper.cc +++ b/chrome/browser/metrics/chrome_metrics_extensions_helper.cc
@@ -27,7 +27,7 @@ auto* process_map = extensions::ProcessMap::Get(render_process_host->GetBrowserContext()); CHECK(process_map); - return process_map->Contains(render_process_host->GetID()); + return process_map->Contains(render_process_host->GetDeprecatedID()); #else return false; #endif
diff --git a/chrome/browser/metrics/chrome_metrics_extensions_helper_unittest.cc b/chrome/browser/metrics/chrome_metrics_extensions_helper_unittest.cc index 8bc875f..d8d41cd 100644 --- a/chrome/browser/metrics/chrome_metrics_extensions_helper_unittest.cc +++ b/chrome/browser/metrics/chrome_metrics_extensions_helper_unittest.cc
@@ -39,7 +39,7 @@ #if BUILDFLAG(ENABLE_EXTENSIONS) // Tag |host| so that it's an extensions host. - extensions::ProcessMap::Get(profile)->Insert("1", host->GetID()); + extensions::ProcessMap::Get(profile)->Insert("1", host->GetDeprecatedID()); EXPECT_TRUE(extensions_helper.IsExtensionProcess(host)); #endif rph_factory.reset();
diff --git a/chrome/browser/metrics/power/process_monitor.cc b/chrome/browser/metrics/power/process_monitor.cc index 64fca0e..5e25a609 100644 --- a/chrome/browser/metrics/power/process_monitor.cc +++ b/chrome/browser/metrics/power/process_monitor.cc
@@ -114,7 +114,7 @@ const extensions::Extension* extension = extensions::ProcessMap::Get(browser_context) - ->GetEnabledExtensionByProcessID(host->GetID()); + ->GetEnabledExtensionByProcessID(host->GetDeprecatedID()); if (!extension) { return kRenderer; }
diff --git a/chrome/browser/metrics/process_memory_metrics_emitter.cc b/chrome/browser/metrics/process_memory_metrics_emitter.cc index b26ea35..93abbd46 100644 --- a/chrome/browser/metrics/process_memory_metrics_emitter.cc +++ b/chrome/browser/metrics/process_memory_metrics_emitter.cc
@@ -1347,7 +1347,7 @@ } const extensions::Extension* extension = - process_map->GetEnabledExtensionByProcessID(rph->GetID()); + process_map->GetEnabledExtensionByProcessID(rph->GetDeprecatedID()); // Only include this extension if it's not a hosted app. return (extension && !extension->is_hosted_app()) ? 1 : 0; #else
diff --git a/chrome/browser/net/cert_verifier_policy_browsertest.cc b/chrome/browser/net/cert_verifier_policy_browsertest.cc index 6ce5e9b..67a3ba1 100644 --- a/chrome/browser/net/cert_verifier_policy_browsertest.cc +++ b/chrome/browser/net/cert_verifier_policy_browsertest.cc
@@ -951,13 +951,11 @@ { scoped_refptr<net::X509Certificate> root_cert = test_server_for_user_added.GetRoot(); - net::ServerCertificateDatabase::CertInformation user_root_info; - user_root_info.sha256hash_hex = - base::HexEncode(crypto::SHA256Hash(root_cert->cert_span())); + net::ServerCertificateDatabase::CertInformation user_root_info( + root_cert->cert_span()); user_root_info.cert_metadata.mutable_trust()->set_trust_type( chrome_browser_server_certificate_database::CertificateTrust:: CERTIFICATE_TRUST_TYPE_TRUSTED); - user_root_info.der_cert = base::ToVector(root_cert->cert_span()); base::test::TestFuture<bool> future; std::vector<net::ServerCertificateDatabase::CertInformation> cert_infos; @@ -970,13 +968,11 @@ scoped_refptr<net::X509Certificate> hint_cert = test_server_for_user_added.GetGeneratedIntermediate(); - net::ServerCertificateDatabase::CertInformation user_hint_info; - user_hint_info.sha256hash_hex = - base::HexEncode(crypto::SHA256Hash(hint_cert->cert_span())); + net::ServerCertificateDatabase::CertInformation user_hint_info( + hint_cert->cert_span()); user_hint_info.cert_metadata.mutable_trust()->set_trust_type( chrome_browser_server_certificate_database::CertificateTrust:: CERTIFICATE_TRUST_TYPE_UNSPECIFIED); - user_hint_info.der_cert = base::ToVector(hint_cert->cert_span()); base::test::TestFuture<bool> future; std::vector<net::ServerCertificateDatabase::CertInformation> cert_infos;
diff --git a/chrome/browser/net/cert_verifier_service_browsertest.cc b/chrome/browser/net/cert_verifier_service_browsertest.cc index df2e684..28c991c 100644 --- a/chrome/browser/net/cert_verifier_service_browsertest.cc +++ b/chrome/browser/net/cert_verifier_service_browsertest.cc
@@ -269,13 +269,11 @@ { scoped_refptr<net::X509Certificate> root_cert = https_test_server.GetRoot(); - net::ServerCertificateDatabase::CertInformation user_root_info; - user_root_info.sha256hash_hex = - base::HexEncode(crypto::SHA256Hash(root_cert->cert_span())); + net::ServerCertificateDatabase::CertInformation user_root_info( + root_cert->cert_span()); user_root_info.cert_metadata.mutable_trust()->set_trust_type( chrome_browser_server_certificate_database::CertificateTrust:: CERTIFICATE_TRUST_TYPE_TRUSTED); - user_root_info.der_cert = base::ToVector(root_cert->cert_span()); ASSERT_TRUE(AddCertificateToDatabaseAndWaitForVerifierUpdate( std::move(user_root_info))); @@ -283,13 +281,11 @@ { scoped_refptr<net::X509Certificate> hint_cert = https_test_server.GetGeneratedIntermediate(); - net::ServerCertificateDatabase::CertInformation user_hint_info; - user_hint_info.sha256hash_hex = - base::HexEncode(crypto::SHA256Hash(hint_cert->cert_span())); + net::ServerCertificateDatabase::CertInformation user_hint_info( + hint_cert->cert_span()); user_hint_info.cert_metadata.mutable_trust()->set_trust_type( chrome_browser_server_certificate_database::CertificateTrust:: CERTIFICATE_TRUST_TYPE_UNSPECIFIED); - user_hint_info.der_cert = base::ToVector(hint_cert->cert_span()); ASSERT_TRUE(AddCertificateToDatabaseAndWaitForVerifierUpdate( std::move(user_hint_info))); @@ -319,15 +315,13 @@ scoped_refptr<net::X509Certificate> root_cert = net::ImportCertFromFile(net::EmbeddedTestServer::GetRootCertPemPath()); ASSERT_TRUE(root_cert); - net::ServerCertificateDatabase::CertInformation user_root_info; - user_root_info.sha256hash_hex = - base::HexEncode(crypto::SHA256Hash(root_cert->cert_span())); + net::ServerCertificateDatabase::CertInformation user_root_info( + root_cert->cert_span()); user_root_info.cert_metadata.mutable_trust()->set_trust_type( chrome_browser_server_certificate_database::CertificateTrust:: CERTIFICATE_TRUST_TYPE_TRUSTED); user_root_info.cert_metadata.mutable_constraints()->add_dns_names( "localhost"); - user_root_info.der_cert = base::ToVector(root_cert->cert_span()); ASSERT_TRUE(AddCertificateToDatabaseAndWaitForVerifierUpdate( std::move(user_root_info))); @@ -357,15 +351,13 @@ scoped_refptr<net::X509Certificate> root_cert = net::ImportCertFromFile(net::EmbeddedTestServer::GetRootCertPemPath()); ASSERT_TRUE(root_cert); - net::ServerCertificateDatabase::CertInformation user_root_info; - user_root_info.sha256hash_hex = - base::HexEncode(crypto::SHA256Hash(root_cert->cert_span())); + net::ServerCertificateDatabase::CertInformation user_root_info( + root_cert->cert_span()); user_root_info.cert_metadata.mutable_trust()->set_trust_type( chrome_browser_server_certificate_database::CertificateTrust:: CERTIFICATE_TRUST_TYPE_TRUSTED); user_root_info.cert_metadata.mutable_constraints()->add_dns_names( "cruddyhost"); - user_root_info.der_cert = base::ToVector(root_cert->cert_span()); ASSERT_TRUE(AddCertificateToDatabaseAndWaitForVerifierUpdate( std::move(user_root_info))); @@ -393,13 +385,11 @@ net::ImportCertFromFile(net::EmbeddedTestServer::GetRootCertPemPath()); ASSERT_TRUE(root_cert); - net::ServerCertificateDatabase::CertInformation cert_info; - cert_info.sha256hash_hex = - base::HexEncode(crypto::SHA256Hash(root_cert->cert_span())); + net::ServerCertificateDatabase::CertInformation cert_info( + root_cert->cert_span()); cert_info.cert_metadata.mutable_trust()->set_trust_type( chrome_browser_server_certificate_database::CertificateTrust:: CERTIFICATE_TRUST_TYPE_DISTRUSTED); - cert_info.der_cert = base::ToVector(root_cert->cert_span()); ASSERT_TRUE( AddCertificateToDatabaseAndWaitForVerifierUpdate(std::move(cert_info))); @@ -425,13 +415,11 @@ net::ImportCertFromFile(net::EmbeddedTestServer::GetRootCertPemPath()); ASSERT_TRUE(root_cert); - net::ServerCertificateDatabase::CertInformation cert_info; - cert_info.sha256hash_hex = - base::HexEncode(crypto::SHA256Hash(root_cert->cert_span())); + net::ServerCertificateDatabase::CertInformation cert_info( + root_cert->cert_span()); cert_info.cert_metadata.mutable_trust()->set_trust_type( chrome_browser_server_certificate_database::CertificateTrust:: CERTIFICATE_TRUST_TYPE_DISTRUSTED); - cert_info.der_cert = base::ToVector(root_cert->cert_span()); ASSERT_TRUE( AddCertificateToDatabaseAndWaitForVerifierUpdate(std::move(cert_info))); @@ -459,13 +447,11 @@ https_test_server.GetCertificate(); ASSERT_TRUE(leaf_cert); - net::ServerCertificateDatabase::CertInformation cert_info; - cert_info.sha256hash_hex = - base::HexEncode(crypto::SHA256Hash(leaf_cert->cert_span())); + net::ServerCertificateDatabase::CertInformation cert_info( + leaf_cert->cert_span()); cert_info.cert_metadata.mutable_trust()->set_trust_type( chrome_browser_server_certificate_database::CertificateTrust:: CERTIFICATE_TRUST_TYPE_TRUSTED); - cert_info.der_cert = base::ToVector(leaf_cert->cert_span()); // Sanity check. ASSERT_EQ(net::ServerCertificateDatabase::GetUserCertificateTrust(cert_info), @@ -498,13 +484,11 @@ https_test_server.GetCertificate(); ASSERT_TRUE(leaf_cert); - net::ServerCertificateDatabase::CertInformation cert_info; - cert_info.sha256hash_hex = - base::HexEncode(crypto::SHA256Hash(leaf_cert->cert_span())); + net::ServerCertificateDatabase::CertInformation cert_info( + leaf_cert->cert_span()); cert_info.cert_metadata.mutable_trust()->set_trust_type( chrome_browser_server_certificate_database::CertificateTrust:: CERTIFICATE_TRUST_TYPE_TRUSTED); - cert_info.der_cert = base::ToVector(leaf_cert->cert_span()); // Sanity check. ASSERT_EQ(net::ServerCertificateDatabase::GetUserCertificateTrust(cert_info), @@ -536,13 +520,11 @@ scoped_refptr<net::X509Certificate> root_cert = https_test_server.GetRoot(); ASSERT_TRUE(root_cert); - net::ServerCertificateDatabase::CertInformation cert_info; - cert_info.sha256hash_hex = - base::HexEncode(crypto::SHA256Hash(root_cert->cert_span())); + net::ServerCertificateDatabase::CertInformation cert_info( + root_cert->cert_span()); cert_info.cert_metadata.mutable_trust()->set_trust_type( chrome_browser_server_certificate_database::CertificateTrust:: CERTIFICATE_TRUST_TYPE_TRUSTED); - cert_info.der_cert = base::ToVector(root_cert->cert_span()); // Sanity check. ASSERT_EQ(net::ServerCertificateDatabase::GetUserCertificateTrust(cert_info),
diff --git a/chrome/browser/net/server_certificate_database.cc b/chrome/browser/net/server_certificate_database.cc index cd65331..e1ab47d8 100644 --- a/chrome/browser/net/server_certificate_database.cc +++ b/chrome/browser/net/server_certificate_database.cc
@@ -5,10 +5,13 @@ #include "chrome/browser/net/server_certificate_database.h" #include "base/containers/span.h" +#include "base/containers/to_vector.h" #include "base/files/file_path.h" #include "base/sequence_checker.h" +#include "base/strings/string_number_conversions.h" #include "base/types/zip.h" #include "build/build_config.h" +#include "crypto/sha2.h" #include "net/cert/x509_util.h" #include "sql/init_status.h" #include "sql/meta_table.h" @@ -186,6 +189,12 @@ return delete_statement.Run() && db_.GetLastChangeCount() > 0; } +ServerCertificateDatabase::CertInformation::CertInformation( + base::span<const uint8_t> cert) { + der_cert = base::ToVector(cert); + sha256hash_hex = + base::ToLowerASCII(base::HexEncode(crypto::SHA256Hash(cert))); +} ServerCertificateDatabase::CertInformation::CertInformation() = default; ServerCertificateDatabase::CertInformation::~CertInformation() = default; ServerCertificateDatabase::CertInformation::CertInformation(
diff --git a/chrome/browser/net/server_certificate_database.h b/chrome/browser/net/server_certificate_database.h index 09b4309e..cfa0fc2 100644 --- a/chrome/browser/net/server_certificate_database.h +++ b/chrome/browser/net/server_certificate_database.h
@@ -23,6 +23,9 @@ class ServerCertificateDatabase { public: struct CertInformation { + // Initializes a CertInformation object with the `der_cert` and calculates + // the `sha256hash_hex` from the supplied cert. + explicit CertInformation(base::span<const uint8_t> cert); CertInformation(); ~CertInformation(); CertInformation(CertInformation&&);
diff --git a/chrome/browser/net/server_certificate_database_nss_migrator.cc b/chrome/browser/net/server_certificate_database_nss_migrator.cc index 5cc9bfb6..ab525cf9 100644 --- a/chrome/browser/net/server_certificate_database_nss_migrator.cc +++ b/chrome/browser/net/server_certificate_database_nss_migrator.cc
@@ -45,10 +45,8 @@ result.cert_count = certs_to_migrate.size(); for (net::PlatformTrustStore::CertWithTrust& cert_to_migrate : certs_to_migrate) { - net::ServerCertificateDatabase::CertInformation cert_info; - cert_info.sha256hash_hex = - base::HexEncode(crypto::SHA256Hash(cert_to_migrate.cert_bytes)); - cert_info.der_cert = std::move(cert_to_migrate.cert_bytes); + net::ServerCertificateDatabase::CertInformation cert_info( + cert_to_migrate.cert_bytes); cert_info.cert_metadata.mutable_trust()->set_trust_type( MapTrust(cert_to_migrate.trust));
diff --git a/chrome/browser/net/server_certificate_database_test_util.cc b/chrome/browser/net/server_certificate_database_test_util.cc index 0f1e4ab..ec170f32 100644 --- a/chrome/browser/net/server_certificate_database_test_util.cc +++ b/chrome/browser/net/server_certificate_database_test_util.cc
@@ -5,9 +5,6 @@ #include "chrome/browser/net/server_certificate_database_test_util.h" #include "base/containers/span.h" -#include "base/containers/to_vector.h" -#include "base/strings/string_number_conversions.h" -#include "crypto/sha2.h" namespace net { @@ -15,11 +12,9 @@ std::string_view der_cert, chrome_browser_server_certificate_database::CertificateTrust:: CertificateTrustType trust_type) { - ServerCertificateDatabase::CertInformation cert_info; - cert_info.sha256hash_hex = - base::HexEncode(crypto::SHA256HashString(der_cert)); + ServerCertificateDatabase::CertInformation cert_info( + base::as_byte_span(der_cert)); cert_info.cert_metadata.mutable_trust()->set_trust_type(trust_type); - cert_info.der_cert = base::ToVector(base::as_byte_span(der_cert)); return cert_info; }
diff --git a/chrome/browser/net/websocket_browsertest.cc b/chrome/browser/net/websocket_browsertest.cc index 9e707a73..d6d93ed 100644 --- a/chrome/browser/net/websocket_browsertest.cc +++ b/chrome/browser/net/websocket_browsertest.cc
@@ -157,12 +157,12 @@ process->GetStoragePartition()->GetNetworkContext()->CreateWebSocket( url, requested_protocols, site_for_cookies, net::StorageAccessApiStatus::kNone, isolation_info, - std::move(additional_headers), process->GetID(), origin, + std::move(additional_headers), process->GetDeprecatedID(), origin, network::mojom::kWebSocketOptionNone, net::MutableNetworkTrafficAnnotationTag(TRAFFIC_ANNOTATION_FOR_TESTS), std::move(handshake_client), process->GetStoragePartition()->CreateURLLoaderNetworkObserverForFrame( - process->GetID(), frame->GetRoutingID()), + process->GetDeprecatedID(), frame->GetRoutingID()), /*auth_handler=*/mojo::NullRemote(), /*header_client=*/mojo::NullRemote(), /*throttling_profile_id=*/std::nullopt);
diff --git a/chrome/browser/new_tab_page/modules/v2/authentication/BUILD.gn b/chrome/browser/new_tab_page/modules/v2/authentication/BUILD.gn new file mode 100644 index 0000000..32a371e --- /dev/null +++ b/chrome/browser/new_tab_page/modules/v2/authentication/BUILD.gn
@@ -0,0 +1,11 @@ +# 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. + +import("//mojo/public/tools/bindings/mojom.gni") + +mojom("mojo_bindings") { + sources = [ "microsoft_auth.mojom" ] + webui_module_path = "/" + public_deps = [ "//mojo/public/mojom/base" ] +}
diff --git a/chrome/browser/new_tab_page/modules/v2/authentication/OWNERS b/chrome/browser/new_tab_page/modules/v2/authentication/OWNERS new file mode 100644 index 0000000..08850f4 --- /dev/null +++ b/chrome/browser/new_tab_page/modules/v2/authentication/OWNERS
@@ -0,0 +1,2 @@ +per-file *.mojom=set noparent +per-file *.mojom=file://ipc/SECURITY_OWNERS
diff --git a/chrome/browser/new_tab_page/modules/v2/authentication/microsoft_auth.mojom b/chrome/browser/new_tab_page/modules/v2/authentication/microsoft_auth.mojom new file mode 100644 index 0000000..a5403a1 --- /dev/null +++ b/chrome/browser/new_tab_page/modules/v2/authentication/microsoft_auth.mojom
@@ -0,0 +1,14 @@ +// 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. + +module ntp.authentication.mojom; + +// Browser-side handler for requests from +// NTP Microsoft Authentication Module UI. +interface MicrosoftAuthPageHandler { + // Dismisses module for fixed amount of time. + DismissModule(); + // Restores the module immediately. + RestoreModule(); +};
diff --git a/chrome/browser/new_tab_page/modules/v2/authentication/microsoft_auth_page_handler.cc b/chrome/browser/new_tab_page/modules/v2/authentication/microsoft_auth_page_handler.cc new file mode 100644 index 0000000..ed63d37 --- /dev/null +++ b/chrome/browser/new_tab_page/modules/v2/authentication/microsoft_auth_page_handler.cc
@@ -0,0 +1,44 @@ +// 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. + +#include "chrome/browser/new_tab_page/modules/v2/authentication/microsoft_auth_page_handler.h" + +#include "chrome/browser/profiles/profile.h" +#include "components/prefs/pref_registry_simple.h" +#include "components/prefs/pref_service.h" +#include "components/search/ntp_features.h" + +namespace { + +const char kMicrosoftAuthLastDismissedTimePrefName[] = + "NewTabPage.MicrosoftAuthentication.LastDimissedTime"; + +} // namespace + +// static +void MicrosoftAuthPageHandler::RegisterProfilePrefs( + PrefRegistrySimple* registry) { + registry->RegisterTimePref(kMicrosoftAuthLastDismissedTimePrefName, + base::Time()); +} + +MicrosoftAuthPageHandler::MicrosoftAuthPageHandler( + mojo::PendingReceiver<ntp::authentication::mojom::MicrosoftAuthPageHandler> + handler, + Profile* profile) + : handler_(this, std::move(handler)), + profile_(profile), + pref_service_(profile_->GetPrefs()) {} + +MicrosoftAuthPageHandler::~MicrosoftAuthPageHandler() = default; + +void MicrosoftAuthPageHandler::DismissModule() { + // TODO(b:377378212): Resurface module after 12 hours. + pref_service_->SetTime(kMicrosoftAuthLastDismissedTimePrefName, + base::Time::Now()); +} + +void MicrosoftAuthPageHandler::RestoreModule() { + pref_service_->SetTime(kMicrosoftAuthLastDismissedTimePrefName, base::Time()); +}
diff --git a/chrome/browser/new_tab_page/modules/v2/authentication/microsoft_auth_page_handler.h b/chrome/browser/new_tab_page/modules/v2/authentication/microsoft_auth_page_handler.h new file mode 100644 index 0000000..813691d3 --- /dev/null +++ b/chrome/browser/new_tab_page/modules/v2/authentication/microsoft_auth_page_handler.h
@@ -0,0 +1,38 @@ +// 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. + +#ifndef CHROME_BROWSER_NEW_TAB_PAGE_MODULES_V2_AUTHENTICATION_MICROSOFT_AUTH_PAGE_HANDLER_H_ +#define CHROME_BROWSER_NEW_TAB_PAGE_MODULES_V2_AUTHENTICATION_MICROSOFT_AUTH_PAGE_HANDLER_H_ + +#include "base/memory/raw_ptr.h" +#include "chrome/browser/new_tab_page/modules/v2/authentication/microsoft_auth.mojom.h" +#include "mojo/public/cpp/bindings/pending_receiver.h" +#include "mojo/public/cpp/bindings/receiver.h" + +class PrefRegistrySimple; +class PrefService; +class Profile; + +class MicrosoftAuthPageHandler + : public ntp::authentication::mojom::MicrosoftAuthPageHandler { + public: + explicit MicrosoftAuthPageHandler( + mojo::PendingReceiver< + ntp::authentication::mojom::MicrosoftAuthPageHandler> handler, + Profile* profile); + ~MicrosoftAuthPageHandler() override; + + static void RegisterProfilePrefs(PrefRegistrySimple* registry); + + // ntp::authentication::mojom::MicrosoftAuthPageHandler: + void DismissModule() override; + void RestoreModule() override; + + private: + mojo::Receiver<ntp::authentication::mojom::MicrosoftAuthPageHandler> handler_; + raw_ptr<Profile> profile_; + raw_ptr<PrefService> pref_service_; +}; + +#endif // CHROME_BROWSER_NEW_TAB_PAGE_MODULES_V2_AUTHENTICATION_MICROSOFT_AUTH_PAGE_HANDLER_H_
diff --git a/chrome/browser/new_tab_page/modules/v2/authentication/microsoft_auth_page_handler_unittest.cc b/chrome/browser/new_tab_page/modules/v2/authentication/microsoft_auth_page_handler_unittest.cc new file mode 100644 index 0000000..3c22d62 --- /dev/null +++ b/chrome/browser/new_tab_page/modules/v2/authentication/microsoft_auth_page_handler_unittest.cc
@@ -0,0 +1,65 @@ +// 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. + +#include "chrome/browser/new_tab_page/modules/v2/authentication/microsoft_auth_page_handler.h" + +#include "chrome/test/base/testing_profile.h" +#include "components/prefs/pref_service.h" +#include "components/search/ntp_features.h" +#include "content/public/test/browser_task_environment.h" +#include "testing/gtest/include/gtest/gtest.h" + +class MicrosoftAuthPageHandlerTest : public testing::Test { + public: + MicrosoftAuthPageHandlerTest() { + feature_list_.InitWithFeatures( + /*enabled_features=*/{ntp_features::kNtpMicrosoftAuthenticationModule}, + /*disabled_features=*/{}); + profile_ = std::make_unique<TestingProfile>(); + pref_service_ = profile_->GetPrefs(); + } + + void SetUp() override { + handler_ = std::make_unique<MicrosoftAuthPageHandler>( + mojo::PendingReceiver< + ntp::authentication::mojom::MicrosoftAuthPageHandler>(), + profile_.get()); + } + + void TearDown() override { handler_.reset(); } + + MicrosoftAuthPageHandler& handler() { return *handler_; } + PrefService& pref_service() { return *pref_service_; } + TestingProfile& profile() { return *profile_; } + content::BrowserTaskEnvironment& task_environment() { + return task_environment_; + } + + private: + // NOTE: The initialization order of these members matters. + content::BrowserTaskEnvironment task_environment_{ + base::test::TaskEnvironment::TimeSource::MOCK_TIME}; + base::test::ScopedFeatureList feature_list_; + std::unique_ptr<TestingProfile> profile_; + std::unique_ptr<MicrosoftAuthPageHandler> handler_; + raw_ptr<PrefService> pref_service_; +}; + +TEST_F(MicrosoftAuthPageHandlerTest, DismissAndRestoreModule) { + const char kMicrosoftAuthLastDismissedTimePrefName[] = + "NewTabPage.MicrosoftAuthentication.LastDimissedTime"; + + EXPECT_EQ(pref_service().GetTime(kMicrosoftAuthLastDismissedTimePrefName), + base::Time()); + + handler().DismissModule(); + + EXPECT_EQ(pref_service().GetTime(kMicrosoftAuthLastDismissedTimePrefName), + base::Time::Now()); + + handler().RestoreModule(); + + EXPECT_EQ(pref_service().GetTime(kMicrosoftAuthLastDismissedTimePrefName), + base::Time()); +}
diff --git a/chrome/browser/new_tab_page/modules/v2/calendar/google_calendar_page_handler.cc b/chrome/browser/new_tab_page/modules/v2/calendar/google_calendar_page_handler.cc index 01376ed1..48c72d2 100644 --- a/chrome/browser/new_tab_page/modules/v2/calendar/google_calendar_page_handler.cc +++ b/chrome/browser/new_tab_page/modules/v2/calendar/google_calendar_page_handler.cc
@@ -109,10 +109,8 @@ // static void GoogleCalendarPageHandler::RegisterProfilePrefs( PrefRegistrySimple* registry) { - if (base::FeatureList::IsEnabled(ntp_features::kNtpCalendarModule)) { registry->RegisterTimePref(kGoogleCalendarLastDismissedTimePrefName, base::Time()); - } } GoogleCalendarPageHandler::GoogleCalendarPageHandler(
diff --git a/chrome/browser/offline_pages/android/downloads/offline_page_download_bridge.cc b/chrome/browser/offline_pages/android/downloads/offline_page_download_bridge.cc index c9b0313..16801aa 100644 --- a/chrome/browser/offline_pages/android/downloads/offline_page_download_bridge.cc +++ b/chrome/browser/offline_pages/android/downloads/offline_page_download_bridge.cc
@@ -266,7 +266,7 @@ // the WebContents. return base::BindRepeating( &GetWebContentsByFrameID, - web_contents->GetPrimaryMainFrame()->GetProcess()->GetID(), + web_contents->GetPrimaryMainFrame()->GetProcess()->GetDeprecatedID(), web_contents->GetPrimaryMainFrame()->GetRoutingID()); }
diff --git a/chrome/browser/offline_pages/offline_page_tab_helper_unittest.cc b/chrome/browser/offline_pages/offline_page_tab_helper_unittest.cc index 6fdb8c6..5748bc1 100644 --- a/chrome/browser/offline_pages/offline_page_tab_helper_unittest.cc +++ b/chrome/browser/offline_pages/offline_page_tab_helper_unittest.cc
@@ -323,7 +323,8 @@ SimulateOfflinePageLoad(kTestUrl, kTestMhtmlCreationTime, MHTMLLoadResult::kSuccess); - int process_id = web_contents()->GetPrimaryMainFrame()->GetProcess()->GetID(); + int process_id = + web_contents()->GetPrimaryMainFrame()->GetProcess()->GetDeprecatedID(); int main_frame_id = web_contents()->GetPrimaryMainFrame()->GetRoutingID(); // Navigate away.
diff --git a/chrome/browser/offline_pages/offline_page_utils.cc b/chrome/browser/offline_pages/offline_page_utils.cc index cef574ab70..9db760b 100644 --- a/chrome/browser/offline_pages/offline_page_utils.cc +++ b/chrome/browser/offline_pages/offline_page_utils.cc
@@ -133,7 +133,7 @@ // the WebContents. return base::BindRepeating( &GetWebContentsByFrameID, - web_contents->GetPrimaryMainFrame()->GetProcess()->GetID(), + web_contents->GetPrimaryMainFrame()->GetProcess()->GetDeprecatedID(), web_contents->GetPrimaryMainFrame()->GetRoutingID()); }
diff --git a/chrome/browser/pdf/pdf_extension_test.cc b/chrome/browser/pdf/pdf_extension_test.cc index 6539c2eb..0a04227 100644 --- a/chrome/browser/pdf/pdf_extension_test.cc +++ b/chrome/browser/pdf/pdf_extension_test.cc
@@ -270,7 +270,7 @@ content::RenderFrameHost* outer_frame) { auto* mime_handler_view_helper = extensions::MimeHandlerViewAttachHelper::Get( - outer_frame->GetProcess()->GetID()); + outer_frame->GetProcess()->GetDeprecatedID()); mime_handler_view_helper->set_resume_attach_callback_for_testing( base::BindOnce(&InnerWebContentsAttachDelayer::ResumeAttachCallback, base::Unretained(this)));
diff --git a/chrome/browser/permissions/permission_request_manager_browsertest.cc b/chrome/browser/permissions/permission_request_manager_browsertest.cc index ee6547a4..f09a618 100644 --- a/chrome/browser/permissions/permission_request_manager_browsertest.cc +++ b/chrome/browser/permissions/permission_request_manager_browsertest.cc
@@ -720,7 +720,7 @@ bubble_factory()->WaitForPermissionBubble(); content::RenderFrameHost* main_frame = GetActiveMainFrame(); - int main_frame_process_id = main_frame->GetProcess()->GetID(); + int main_frame_process_id = main_frame->GetProcess()->GetDeprecatedID(); int main_frame_routing_id = main_frame->GetRoutingID(); ui_test_utils::NavigateToURLBlockUntilNavigationsComplete( @@ -1347,7 +1347,7 @@ bubble_factory()->WaitForPermissionBubble(); content::RenderFrameHostWrapper rfh_a(GetActiveMainFrame()); content::RenderFrameHost* main_frame = GetActiveMainFrame(); - int main_frame_process_id = main_frame->GetProcess()->GetID(); + int main_frame_process_id = main_frame->GetProcess()->GetDeprecatedID(); int main_frame_routing_id = main_frame->GetRoutingID(); ui_test_utils::NavigateToURLBlockUntilNavigationsComplete( @@ -1378,7 +1378,7 @@ content::RenderFrameHostWrapper rfh_a(GetActiveMainFrame()); content::RenderFrameHost* main_frame = GetActiveMainFrame(); - int main_frame_process_id = main_frame->GetProcess()->GetID(); + int main_frame_process_id = main_frame->GetProcess()->GetDeprecatedID(); int main_frame_routing_id = main_frame->GetRoutingID(); // Request is not cancelled. EXPECT_FALSE(request_1.cancelled());
diff --git a/chrome/browser/plugins/chrome_content_browser_client_plugins_part.cc b/chrome/browser/plugins/chrome_content_browser_client_plugins_part.cc index 3842c6e..7b479564 100644 --- a/chrome/browser/plugins/chrome_content_browser_client_plugins_part.cc +++ b/chrome/browser/plugins/chrome_content_browser_client_plugins_part.cc
@@ -137,7 +137,7 @@ blink::AssociatedInterfaceRegistry& associated_registry) { associated_registry.AddInterface<chrome::mojom::PluginInfoHost>( base::BindRepeating(&BindPluginInfoHost, - render_frame_host.GetProcess()->GetID())); + render_frame_host.GetProcess()->GetDeprecatedID())); } bool ChromeContentBrowserClientPluginsPart::
diff --git a/chrome/browser/plugins/chrome_plugin_service_filter.cc b/chrome/browser/plugins/chrome_plugin_service_filter.cc index 291322bd..bb2fee5e 100644 --- a/chrome/browser/plugins/chrome_plugin_service_filter.cc +++ b/chrome/browser/plugins/chrome_plugin_service_filter.cc
@@ -101,7 +101,8 @@ web_contents->GetPrimaryMainFrame()->ForEachRenderFrameHost( [](content::RenderFrameHost* render_frame_host) { ChromePluginServiceFilter::GetInstance()->AuthorizePlugin( - render_frame_host->GetProcess()->GetID(), base::FilePath()); + render_frame_host->GetProcess()->GetDeprecatedID(), + base::FilePath()); }); if (load_blocked) { @@ -158,7 +159,7 @@ const content::ChildProcessTerminationInfo& info) { DCHECK_CURRENTLY_ON(BrowserThread::UI); base::AutoLock auto_lock(lock_); - plugin_details_.erase(host->GetID()); + plugin_details_.erase(host->GetDeprecatedID()); host_observation_.RemoveObservation(host); }
diff --git a/chrome/browser/plugins/chrome_plugin_service_filter_unittest.cc b/chrome/browser/plugins/chrome_plugin_service_filter_unittest.cc index 332a081..fe1105b2 100644 --- a/chrome/browser/plugins/chrome_plugin_service_filter_unittest.cc +++ b/chrome/browser/plugins/chrome_plugin_service_filter_unittest.cc
@@ -80,7 +80,7 @@ } TEST_F(ChromePluginServiceFilterTest, AuthorizePlugin) { - const int render_process_id = process()->GetID(); + const int render_process_id = process()->GetDeprecatedID(); const base::FilePath path(ChromeContentClient::kPDFExtensionPluginPath); RenderProcessHostObserverAddedWaiter waiter(filter_);
diff --git a/chrome/browser/plugins/plugin_info_host_impl_browsertest.cc b/chrome/browser/plugins/plugin_info_host_impl_browsertest.cc index 00181ff8..0bbe103 100644 --- a/chrome/browser/plugins/plugin_info_host_impl_browsertest.cc +++ b/chrome/browser/plugins/plugin_info_host_impl_browsertest.cc
@@ -90,7 +90,7 @@ ->GetActiveWebContents() ->GetPrimaryMainFrame() ->GetProcess() - ->GetID(); + ->GetDeprecatedID(); plugin_info_host_impl_ = std::make_unique<PluginInfoHostImpl>( active_render_process_id, browser()->profile());
diff --git a/chrome/browser/plugins/plugin_observer.cc b/chrome/browser/plugins/plugin_observer.cc index f20e74c8..415519b 100644 --- a/chrome/browser/plugins/plugin_observer.cc +++ b/chrome/browser/plugins/plugin_observer.cc
@@ -167,7 +167,10 @@ })"); std::unique_ptr<download::DownloadUrlParameters> params = std::make_unique<download::DownloadUrlParameters>( - url, render_frame_host->GetRenderViewHost()->GetProcess()->GetID(), + url, + render_frame_host->GetRenderViewHost() + ->GetProcess() + ->GetDeprecatedID(), render_frame_host->GetRoutingID(), traffic_annotation); params->set_referrer(referrer.url); params->set_referrer_policy(
diff --git a/chrome/browser/plugins/plugin_observer_common.cc b/chrome/browser/plugins/plugin_observer_common.cc index 13aca4b..e5fbb41 100644 --- a/chrome/browser/plugins/plugin_observer_common.cc +++ b/chrome/browser/plugins/plugin_observer_common.cc
@@ -14,7 +14,7 @@ const GURL& last_committed_url, content::Referrer* referrer) { if (!content::ChildProcessSecurityPolicy::GetInstance()->CanRequestURL( - render_frame_host->GetProcess()->GetID(), url)) { + render_frame_host->GetProcess()->GetDeprecatedID(), url)) { return false; }
diff --git a/chrome/browser/policy/configuration_policy_handler_list_factory.cc b/chrome/browser/policy/configuration_policy_handler_list_factory.cc index 2b9877c..c1b0c6a5 100644 --- a/chrome/browser/policy/configuration_policy_handler_list_factory.cc +++ b/chrome/browser/policy/configuration_policy_handler_list_factory.cc
@@ -43,6 +43,7 @@ #include "chrome/browser/policy/file_selection_dialogs_policy_handler.h" #include "chrome/browser/policy/homepage_location_policy_handler.h" #include "chrome/browser/policy/javascript_policy_handler.h" +#include "chrome/browser/policy/power_battery_charging_optimization_policy_handler.h" #include "chrome/browser/policy/webhid_device_policy_handler.h" #include "chrome/browser/policy/webusb_allow_devices_for_urls_policy_handler.h" #include "chrome/browser/prefetch/pref_names.h" @@ -1641,9 +1642,6 @@ { key::kFloatingWorkspaceV2Enabled, ash::prefs::kFloatingWorkspaceV2Enabled, base::Value::Type::BOOLEAN }, - { key::kDevicePowerAdaptiveChargingEnabled, - ash::prefs::kPowerAdaptiveChargingEnabled, - base::Value::Type::BOOLEAN }, { key::kCalendarIntegrationEnabled, ash::prefs::kCalendarIntegrationEnabled, base::Value::Type::BOOLEAN }, @@ -3260,6 +3258,15 @@ handlers->AddHandler(std::make_unique<GenAiDefaultSettingsPolicyHandler>( std::move(gen_ai_default_policies))); +#if BUILDFLAG(IS_CHROMEOS) + handlers->AddHandler(std::make_unique<SimpleDeprecatingPolicyHandler>( + std::make_unique<SimplePolicyHandler>( + key::kDevicePowerAdaptiveChargingEnabled, + ash::prefs::kPowerAdaptiveChargingEnabled, + base::Value::Type::BOOLEAN), + std::make_unique<PowerBatteryChargingOptimizationPolicyHandler>())); +#endif // BUILDFLAG(IS_CHROMEOS) + return handlers; }
diff --git a/chrome/browser/policy/power_battery_charging_optimization_policy_handler.cc b/chrome/browser/policy/power_battery_charging_optimization_policy_handler.cc new file mode 100644 index 0000000..d9b2bbc --- /dev/null +++ b/chrome/browser/policy/power_battery_charging_optimization_policy_handler.cc
@@ -0,0 +1,89 @@ +// 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. + +#include "chrome/browser/policy/power_battery_charging_optimization_policy_handler.h" + +#include "ash/constants/ash_pref_names.h" +#include "base/logging.h" +#include "base/notreached.h" +#include "base/values.h" +#include "chromeos/dbus/power/power_policy_controller.h" +#include "components/policy/core/common/policy_map.h" +#include "components/policy/core/common/policy_types.h" +#include "components/policy/policy_constants.h" +#include "components/prefs/pref_value_map.h" + +namespace policy { + +PowerBatteryChargingOptimizationPolicyHandler:: + PowerBatteryChargingOptimizationPolicyHandler() + : TypeCheckingPolicyHandler(key::kDevicePowerBatteryChargingOptimization, + base::Value::Type::INTEGER) {} + +PowerBatteryChargingOptimizationPolicyHandler:: + ~PowerBatteryChargingOptimizationPolicyHandler() = default; + +bool PowerBatteryChargingOptimizationPolicyHandler::CheckPolicySettings( + const PolicyMap& policies, + PolicyErrorMap* errors) { + // First, check if the policy has the correct type (integer). + if (!TypeCheckingPolicyHandler::CheckPolicySettings(policies, errors)) { + return false; + } + + // Then, check if the integer falls within the valid range (1-3). + const auto* charging_optimization_policy_value = policies.GetValue( + key::kDevicePowerBatteryChargingOptimization, base::Value::Type::INTEGER); + if (!charging_optimization_policy_value) { + return true; // Policy not set, so it's valid. + } + + if (charging_optimization_policy_value->is_int()) { + int charging_optimization_value = + charging_optimization_policy_value->GetInt(); + if (charging_optimization_value >= kMinPolicyValue && + charging_optimization_value <= kMaxPolicyValue) { + return true; + } + } + + return false; +} + +void PowerBatteryChargingOptimizationPolicyHandler::ApplyPolicySettings( + const PolicyMap& policies, + PrefValueMap* prefs) { + const base::Value* charging_optimization_policy_value = policies.GetValue( + key::kDevicePowerBatteryChargingOptimization, base::Value::Type::INTEGER); + + if (charging_optimization_policy_value != nullptr && + charging_optimization_policy_value->is_int()) { + int charging_optimization_value = + charging_optimization_policy_value->GetInt(); + switch (charging_optimization_value) { + case ChargingOptimizationMode::kStandard: + prefs->SetBoolean(ash::prefs::kPowerAdaptiveChargingEnabled, false); + prefs->SetBoolean(ash::prefs::kPowerChargeLimitEnabled, false); + break; + case ChargingOptimizationMode::kAdaptive: + prefs->SetBoolean(ash::prefs::kPowerAdaptiveChargingEnabled, true); + prefs->SetBoolean(ash::prefs::kPowerChargeLimitEnabled, false); + break; + case ChargingOptimizationMode::kLimited: + prefs->SetBoolean(ash::prefs::kPowerAdaptiveChargingEnabled, false); + prefs->SetBoolean(ash::prefs::kPowerChargeLimitEnabled, true); + break; + default: + LOG(WARNING) << "Unknown value for " + << key::kDevicePowerBatteryChargingOptimization + << ". Setting kPowerAdaptiveChargingEnabled to true and " + << "kPowerChargeLimitEnabled to false."; + prefs->SetBoolean(ash::prefs::kPowerAdaptiveChargingEnabled, true); + prefs->SetBoolean(ash::prefs::kPowerChargeLimitEnabled, false); + break; + } + } +} + +} // namespace policy
diff --git a/chrome/browser/policy/power_battery_charging_optimization_policy_handler.h b/chrome/browser/policy/power_battery_charging_optimization_policy_handler.h new file mode 100644 index 0000000..34fe5d0 --- /dev/null +++ b/chrome/browser/policy/power_battery_charging_optimization_policy_handler.h
@@ -0,0 +1,45 @@ +// 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. + +#ifndef CHROME_BROWSER_POLICY_POWER_BATTERY_CHARGING_OPTIMIZATION_POLICY_HANDLER_H_ +#define CHROME_BROWSER_POLICY_POWER_BATTERY_CHARGING_OPTIMIZATION_POLICY_HANDLER_H_ + +#include "components/policy/core/browser/configuration_policy_handler.h" +#include "components/policy/core/common/policy_map.h" +#include "components/prefs/pref_value_map.h" + +class PrefValueMap; + +namespace policy { +class PolicyMap; + +// This policy handler handles the DevicePowerBatteryChargingOptimization +// policy which is an enum ranging from 1 to 3. +class PowerBatteryChargingOptimizationPolicyHandler + : public TypeCheckingPolicyHandler { + public: + PowerBatteryChargingOptimizationPolicyHandler(); + ~PowerBatteryChargingOptimizationPolicyHandler() override; + + // ConfigurationPolicyHandler: + bool CheckPolicySettings(const policy::PolicyMap& policies, + policy::PolicyErrorMap* errors) override; + void ApplyPolicySettings(const PolicyMap& policies, + PrefValueMap* prefs) override; + + private: + // The minimum and maximum allowed values for the policy. + static constexpr int kMinPolicyValue = 1; + static constexpr int kMaxPolicyValue = 3; + + // Enum for different charging optimization modes. + enum ChargingOptimizationMode { + kStandard = 1, + kAdaptive = 2, + kLimited = 3, + }; +}; + +} // namespace policy +#endif // CHROME_BROWSER_POLICY_POWER_BATTERY_CHARGING_OPTIMIZATION_POLICY_HANDLER_H_
diff --git a/chrome/browser/policy/test/media_stream_policy_browsertest.cc b/chrome/browser/policy/test/media_stream_policy_browsertest.cc index 305332e..41f517a 100644 --- a/chrome/browser/policy/test/media_stream_policy_browsertest.cc +++ b/chrome/browser/policy/test/media_stream_policy_browsertest.cc
@@ -62,7 +62,7 @@ EXPECT_EQ(request_url_, web_contents->GetPrimaryMainFrame()->GetLastCommittedURL()); int render_process_id = - web_contents->GetPrimaryMainFrame()->GetProcess()->GetID(); + web_contents->GetPrimaryMainFrame()->GetProcess()->GetDeprecatedID(); int render_frame_id = web_contents->GetPrimaryMainFrame()->GetRoutingID(); return content::MediaStreamRequest( render_process_id, render_frame_id, 0,
diff --git a/chrome/browser/predictors/network_hints_handler_impl.cc b/chrome/browser/predictors/network_hints_handler_impl.cc index 46a43cd..d43a7a5 100644 --- a/chrome/browser/predictors/network_hints_handler_impl.cc +++ b/chrome/browser/predictors/network_hints_handler_impl.cc
@@ -89,7 +89,7 @@ NetworkHintsHandlerImpl::NetworkHintsHandlerImpl( content::RenderFrameHost* frame_host) - : render_process_id_(frame_host->GetProcess()->GetID()), + : render_process_id_(frame_host->GetProcess()->GetDeprecatedID()), render_frame_id_(frame_host->GetRoutingID()) { // Get the PreconnectManager for this process. auto* render_process_host = frame_host->GetProcess();
diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browser_prefs.cc index 39ec9e1..f2669c3 100644 --- a/chrome/browser/prefs/browser_prefs.cc +++ b/chrome/browser/prefs/browser_prefs.cc
@@ -277,6 +277,7 @@ #include "chrome/browser/nearby_sharing/common/nearby_share_prefs.h" #include "chrome/browser/new_tab_page/modules/file_suggestion/drive_service.h" #include "chrome/browser/new_tab_page/modules/safe_browsing/safe_browsing_handler.h" +#include "chrome/browser/new_tab_page/modules/v2/authentication/microsoft_auth_page_handler.h" #include "chrome/browser/new_tab_page/modules/v2/calendar/google_calendar_page_handler.h" #include "chrome/browser/new_tab_page/modules/v2/most_relevant_tab_resumption/most_relevant_tab_resumption_page_handler.h" #include "chrome/browser/new_tab_page/promos/promo_service.h" @@ -2172,6 +2173,7 @@ NtpCustomBackgroundService::RegisterProfilePrefs(registry); media_router::RegisterAccessCodeProfilePrefs(registry); media_router::RegisterProfilePrefs(registry); + MicrosoftAuthPageHandler::RegisterProfilePrefs(registry); NewTabPageHandler::RegisterProfilePrefs(registry); NewTabPageUI::RegisterProfilePrefs(registry); ntp::SafeBrowsingHandler::RegisterProfilePrefs(registry);
diff --git a/chrome/browser/preloading/prefetch/search_prefetch/search_prefetch_url_loader_interceptor.cc b/chrome/browser/preloading/prefetch/search_prefetch/search_prefetch_url_loader_interceptor.cc index 3f560890..52f0bd4 100644 --- a/chrome/browser/preloading/prefetch/search_prefetch/search_prefetch_url_loader_interceptor.cc +++ b/chrome/browser/preloading/prefetch/search_prefetch/search_prefetch_url_loader_interceptor.cc
@@ -155,7 +155,7 @@ if (web_request_api) { web_request_api->MaybeProxyURLLoaderFactory( browser_context, render_frame_host, - render_frame_host->GetProcess()->GetID(), + render_frame_host->GetProcess()->GetDeprecatedID(), content::ContentBrowserClient::URLLoaderFactoryType::kNavigation, navigation_id_, ukm::kInvalidSourceIdObj, factory_builder, /*header_client=*/nullptr, navigation_response_task_runner_,
diff --git a/chrome/browser/printing/print_view_manager_base.cc b/chrome/browser/printing/print_view_manager_base.cc index 05d05dd..ff2fbe1 100644 --- a/chrome/browser/printing/print_view_manager_base.cc +++ b/chrome/browser/printing/print_view_manager_base.cc
@@ -1309,7 +1309,7 @@ content::RenderProcessHost* render_process_host = rfh->GetProcess(); auto callback_wrapper = base::BindOnce( &PrintViewManagerBase::ScriptedPrintReply, weak_ptr_factory_.GetWeakPtr(), - std::move(callback), render_process_host->GetID()); + std::move(callback), render_process_host->GetDeprecatedID()); #if BUILDFLAG(IS_WIN) && BUILDFLAG(GOOGLE_CHROME_BRANDING) DisableThirdPartyBlocking(); #endif
diff --git a/chrome/browser/privacy_sandbox/android/java/res/xml/topics_preference.xml b/chrome/browser/privacy_sandbox/android/java/res/xml/topics_preference.xml index 159f890..0de107a1 100644 --- a/chrome/browser/privacy_sandbox/android/java/res/xml/topics_preference.xml +++ b/chrome/browser/privacy_sandbox/android/java/res/xml/topics_preference.xml
@@ -53,4 +53,10 @@ android:summary="@string/settings_topics_page_footer_new" app:allowDividerBelow="false" /> + <org.chromium.components.browser_ui.settings.ClickableSpansTextMessagePreference + android:key="topics_page_disclaimer" + android:summary="@string/settings_ad_topics_page_disclaimer_clank" + android:visibility="gone" + app:allowDividerAbove="false"/> + </PreferenceScreen>
diff --git a/chrome/browser/privacy_sandbox/android/java/src/org/chromium/chrome/browser/privacy_sandbox/TopicsFragment.java b/chrome/browser/privacy_sandbox/android/java/src/org/chromium/chrome/browser/privacy_sandbox/TopicsFragment.java index 1047d91d..407b64a 100644 --- a/chrome/browser/privacy_sandbox/android/java/src/org/chromium/chrome/browser/privacy_sandbox/TopicsFragment.java +++ b/chrome/browser/privacy_sandbox/android/java/src/org/chromium/chrome/browser/privacy_sandbox/TopicsFragment.java
@@ -16,6 +16,7 @@ import org.chromium.base.metrics.RecordUserAction; import org.chromium.base.supplier.ObservableSupplier; import org.chromium.base.supplier.ObservableSupplierImpl; +import org.chromium.chrome.browser.flags.ChromeFeatureList; import org.chromium.chrome.browser.preferences.Pref; import org.chromium.chrome.browser.profiles.Profile; import org.chromium.chrome.browser.settings.ChromeManagedPreferenceDelegate; @@ -24,6 +25,7 @@ import org.chromium.components.browser_ui.settings.ClickableSpansTextMessagePreference; import org.chromium.components.browser_ui.settings.SettingsUtils; import org.chromium.components.browser_ui.settings.TextMessagePreference; +import org.chromium.components.embedder_support.util.UrlConstants; import org.chromium.components.prefs.PrefService; import org.chromium.components.user_prefs.UserPrefs; import org.chromium.ui.text.SpanApplier; @@ -43,6 +45,7 @@ private static final String ACTIVE_TOPICS_PREFERENCE = "active_topics"; private static final String BLOCKED_TOPICS_PREFERENCE = "blocked_topics"; private static final String MANAGE_TOPICS_PREFERENCE = "manage_topics"; + private static final String TOPICS_DISCLAIMER = "topics_page_disclaimer"; private ChromeSwitchPreference mTopicsTogglePreference; private TextMessagePreference mTopicsExplanationPreference; @@ -133,6 +136,7 @@ onManagingAdPrivacyClicked(); } }))); + maybeApplyAdsApiUxEnhancements(); } @Override @@ -140,6 +144,49 @@ return mPageTitle; } + private void maybeApplyAdsApiUxEnhancements() { + if (!ChromeFeatureList.isEnabled( + ChromeFeatureList.PRIVACY_SANDBOX_ADS_API_UX_ENHANCEMENTS)) { + return; + } + mTopicsPageFooterPreference.setSummary( + SpanApplier.applySpans( + getResources().getString(R.string.settings_ad_topics_page_footer_v2), + new SpanApplier.SpanInfo( + "<link1>", + "</link1>", + new ClickableSpan() { + @Override + public void onClick(View view) { + onFledgeSettingsLinkClicked(); + } + }), + new SpanApplier.SpanInfo( + "<link2>", + "</link2>", + new ClickableSpan() { + @Override + public void onClick(View view) { + onCookieSettingsLink(); + } + }))); + ClickableSpansTextMessagePreference disclaimerPreference = + findPreference(TOPICS_DISCLAIMER); + disclaimerPreference.setVisible(true); + disclaimerPreference.setSummary( + SpanApplier.applySpans( + getResources().getString(R.string.settings_ad_topics_page_disclaimer_clank), + new SpanApplier.SpanInfo( + "<link>", + "</link>", + new ClickableSpan() { + @Override + public void onClick(View view) { + onPrivacyPolicyLinkClicked(); + } + }))); + } + private void onManagingAdPrivacyClicked() { getCustomTabLauncher() .openUrlInCct(getContext(), PrivacySandboxSettingsFragment.HELP_CENTER_URL); @@ -153,6 +200,10 @@ launchCookieSettings(); } + private void onPrivacyPolicyLinkClicked() { + getCustomTabLauncher().openUrlInCct(getContext(), UrlConstants.GOOGLE_PRIVACY_POLICY); + } + @Override public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) { super.onViewCreated(view, savedInstanceState);
diff --git a/chrome/browser/privacy_sandbox/android/javatests/src/org/chromium/chrome/browser/privacy_sandbox/TopicsFragmentTest.java b/chrome/browser/privacy_sandbox/android/javatests/src/org/chromium/chrome/browser/privacy_sandbox/TopicsFragmentTest.java index e96e9d30..385fd56 100644 --- a/chrome/browser/privacy_sandbox/android/javatests/src/org/chromium/chrome/browser/privacy_sandbox/TopicsFragmentTest.java +++ b/chrome/browser/privacy_sandbox/android/javatests/src/org/chromium/chrome/browser/privacy_sandbox/TopicsFragmentTest.java
@@ -149,6 +149,7 @@ @Test @SmallTest @Feature({"RenderTest"}) + @DisableFeatures(ChromeFeatureList.PRIVACY_SANDBOX_ADS_API_UX_ENHANCEMENTS) public void testRenderTopicsOff() throws IOException { setTopicsPrefEnabled(false); startTopicsSettings(); @@ -158,6 +159,7 @@ @Test @SmallTest @Feature({"RenderTest"}) + @DisableFeatures(ChromeFeatureList.PRIVACY_SANDBOX_ADS_API_UX_ENHANCEMENTS) public void testRenderTopicsEmpty() throws IOException { setTopicsPrefEnabled(true); startTopicsSettings(); @@ -167,6 +169,7 @@ @Test @SmallTest @Feature({"RenderTest"}) + @DisableFeatures(ChromeFeatureList.PRIVACY_SANDBOX_ADS_API_UX_ENHANCEMENTS) public void testRenderTopicsPopulated() throws IOException { setTopicsPrefEnabled(true); mFakePrivacySandboxBridge.setCurrentTopTopics(TOPIC_NAME_1, TOPIC_NAME_2); @@ -197,6 +200,16 @@ @Test @SmallTest + @Feature({"RenderTest"}) + @EnableFeatures(ChromeFeatureList.PRIVACY_SANDBOX_ADS_API_UX_ENHANCEMENTS) + public void testRenderTopicsOffV2() throws IOException { + setTopicsPrefEnabled(false); + startTopicsSettings(); + mRenderTestRule.render(getTopicsRootView(), "topics_page_off_v2"); + } + + @Test + @SmallTest public void testToggleUncheckedWhenTopicsOff() { setTopicsPrefEnabled(false); startTopicsSettings();
diff --git a/chrome/browser/privacy_sandbox/privacy_sandbox_service.h b/chrome/browser/privacy_sandbox/privacy_sandbox_service.h index 0036edb2..08b9e455 100644 --- a/chrome/browser/privacy_sandbox/privacy_sandbox_service.h +++ b/chrome/browser/privacy_sandbox/privacy_sandbox_service.h
@@ -121,9 +121,6 @@ }; // Contains the possible states of the Notice Queue. - // Must be kept in sync with NoticeQueueState in - // tools/metrics/histograms/enums.xml - // LINT.IfChange(NoticeQueueState) enum class NoticeQueueState { // Queued on browser startup. kQueueOnStartup = 0, @@ -137,7 +134,6 @@ kReleaseOnShown = 4, kMaxValue = kReleaseOnShown, }; - // LINT.ThenChange(//tools/metrics/histograms/enums.xml:NoticeQueueState) // If during the trials a previous consent decision was made, or the notice // was already acknowledged, and the privacy sandbox is disabled,
diff --git a/chrome/browser/privacy_sandbox/privacy_sandbox_service_impl.cc b/chrome/browser/privacy_sandbox/privacy_sandbox_service_impl.cc index 3e6444e7..01ebef9 100644 --- a/chrome/browser/privacy_sandbox/privacy_sandbox_service_impl.cc +++ b/chrome/browser/privacy_sandbox/privacy_sandbox_service_impl.cc
@@ -97,6 +97,25 @@ default_content_setting == ContentSetting::CONTENT_SETTING_BLOCK; } +#if !BUILDFLAG(IS_ANDROID) +const char* QueueSourceToUserActionString(NoticeQueueState notice_state) { + switch (notice_state) { + case NoticeQueueState::kQueueOnStartup: + return "NoticeQueue.PrivacySandboxNotice.QueueOnStartup"; + case NoticeQueueState::kQueueOnThOrNav: + return "NoticeQueue.PrivacySandboxNotice.QueueOnThOrNav"; + case NoticeQueueState::kReleaseOnThOrNav: + return "NoticeQueue.PrivacySandboxNotice.ReleaseOnThOrNav"; + case NoticeQueueState::kReleaseOnDMA: + return "NoticeQueue.PrivacySandboxNotice.ReleaseOnDMA"; + case NoticeQueueState::kReleaseOnShown: + return "NoticeQueue.PrivacySandboxNotice.ReleaseOnShown"; + default: + NOTREACHED(); + } +} +#endif // !BUILDFLAG(IS_ANDROID) + // Similar to the function above, but checks for ALL 3P cookies to be blocked // pre and post 3PCD. bool AreAllThirdPartyCookiesBlocked( @@ -722,8 +741,8 @@ notice_handle_.Release(); // Unqueue if we are in the queue (checked by controller). GetProductMessagingController()->UnqueueRequiredNotice(kPrivacySandboxNotice); - - base::UmaHistogramEnumeration("PrivacySandbox.NoticeQueue", unqueue_source); + base::RecordAction( + base::UserMetricsAction(QueueSourceToUserActionString(unqueue_source))); } bool PrivacySandboxServiceImpl::IsNoticeQueued() { @@ -750,7 +769,8 @@ GetProductMessagingController()->QueueRequiredNotice( kPrivacySandboxNotice, base::BindOnce(&PrivacySandboxServiceImpl::HoldQueueHandle, weak_factory_.GetWeakPtr()), {/* TODO(crbug.com/370804492): When we add the DMA notice, add it to this show_after_ list*/}); - base::UmaHistogramEnumeration("PrivacySandbox.NoticeQueue", queue_source); + base::RecordAction( + base::UserMetricsAction(QueueSourceToUserActionString(queue_source))); } #endif // !BUILDFLAG(IS_ANDROID)
diff --git a/chrome/browser/renderer_context_menu/render_view_context_menu.cc b/chrome/browser/renderer_context_menu/render_view_context_menu.cc index 1f65b49..62502fc9 100644 --- a/chrome/browser/renderer_context_menu/render_view_context_menu.cc +++ b/chrome/browser/renderer_context_menu/render_view_context_menu.cc
@@ -1083,7 +1083,8 @@ title = extension ? base::UTF8ToUTF16(extension->name()) : web_view_guest->owner_web_contents()->GetTitle(); key = MenuItem::ExtensionKey( - extension_id, web_view_guest->owner_rfh()->GetProcess()->GetID(), + extension_id, + web_view_guest->owner_rfh()->GetProcess()->GetDeprecatedID(), web_view_guest->owner_rfh()->GetRoutingID(), web_view_guest->view_instance_id()); } else { @@ -4265,7 +4266,7 @@ })"); auto dl_params = std::make_unique<DownloadUrlParameters>( - url, render_frame_host->GetProcess()->GetID(), + url, render_frame_host->GetProcess()->GetDeprecatedID(), render_frame_host->GetRoutingID(), traffic_annotation); content::Referrer referrer = CreateReferrer(url, params_); dl_params->set_referrer(referrer.url);
diff --git a/chrome/browser/renderer_context_menu/render_view_context_menu_unittest.cc b/chrome/browser/renderer_context_menu/render_view_context_menu_unittest.cc index 55db232b..1e1b313 100644 --- a/chrome/browser/renderer_context_menu/render_view_context_menu_unittest.cc +++ b/chrome/browser/renderer_context_menu/render_view_context_menu_unittest.cc
@@ -978,7 +978,7 @@ // initiator. EXPECT_EQ(main_frame.GetFrameToken(), delegate.last_navigation_params()->initiator_frame_token); - EXPECT_EQ(main_frame.GetProcess()->GetID(), + EXPECT_EQ(main_frame.GetProcess()->GetDeprecatedID(), delegate.last_navigation_params()->initiator_process_id); // Verify that the impression is attached to the navigation.
diff --git a/chrome/browser/renderer_host/chrome_render_widget_host_view_mac_delegate.mm b/chrome/browser/renderer_host/chrome_render_widget_host_view_mac_delegate.mm index 2f4968aa..853d546 100644 --- a/chrome/browser/renderer_host/chrome_render_widget_host_view_mac_delegate.mm +++ b/chrome/browser/renderer_host/chrome_render_widget_host_view_mac_delegate.mm
@@ -56,7 +56,7 @@ (content::RenderWidgetHost*)renderWidgetHost { self = [super init]; if (self) { - _widgetProcessId = renderWidgetHost->GetProcess()->GetID(); + _widgetProcessId = renderWidgetHost->GetProcess()->GetDeprecatedID(); _widgetRoutingId = renderWidgetHost->GetRoutingID(); _historySwiper = [[HistorySwiper alloc] initWithDelegate:self]; }
diff --git a/chrome/browser/resource_coordinator/tab_manager_browsertest.cc b/chrome/browser/resource_coordinator/tab_manager_browsertest.cc index cf8ad2f..4c01bfb4 100644 --- a/chrome/browser/resource_coordinator/tab_manager_browsertest.cc +++ b/chrome/browser/resource_coordinator/tab_manager_browsertest.cc
@@ -778,7 +778,7 @@ ASSERT_TRUE(process); EXPECT_TRUE(process->IsInitializedAndNotDead()); EXPECT_NE(base::kNullProcessHandle, process->GetProcess().Handle()); - const int initial_renderer_id = process->GetID(); + const int initial_renderer_id = process->GetDeprecatedID(); // Discard the tab. This simulates a tab discard. TabLifecycleUnitExternal::FromWebContents(web_contents) @@ -793,7 +793,7 @@ content::RenderProcessHost* new_process = web_contents->GetPrimaryMainFrame()->GetProcess(); EXPECT_NE(new_process, process); - EXPECT_NE(new_process->GetID(), initial_renderer_id); + EXPECT_NE(new_process->GetDeprecatedID(), initial_renderer_id); process = new_process; } @@ -834,8 +834,8 @@ child_frame->GetLastCommittedURL().DeprecatedGetOriginAsURL()); if (content::AreAllSitesIsolatedForTesting()) { EXPECT_NE(main_frame->GetSiteInstance(), child_frame->GetSiteInstance()); - EXPECT_NE(main_frame->GetProcess()->GetID(), - child_frame->GetProcess()->GetID()); + EXPECT_NE(main_frame->GetProcess()->GetDeprecatedID(), + child_frame->GetProcess()->GetDeprecatedID()); } // document.wasDiscarded is false before discard, on main frame and child
diff --git a/chrome/browser/resources/ash/settings/multidevice_page/multidevice_smartlock_item.ts b/chrome/browser/resources/ash/settings/multidevice_page/multidevice_smartlock_item.ts index 75b878ea..8cc0cb79 100644 --- a/chrome/browser/resources/ash/settings/multidevice_page/multidevice_smartlock_item.ts +++ b/chrome/browser/resources/ash/settings/multidevice_page/multidevice_smartlock_item.ts
@@ -51,12 +51,12 @@ * Authentication token provided by lock-screen-password-prompt-dialog. */ authToken: { - type: Object, + type: String, }, }; } - authToken: chrome.quickUnlockPrivate.TokenInfo|undefined; + authToken: string|undefined; private browserProxy_: MultiDeviceBrowserProxy; constructor() { @@ -110,7 +110,8 @@ const enabled = event.detail.enabled; this.browserProxy_.setFeatureEnabledState( - feature, enabled, this.authToken!.token); + feature, enabled, this.authToken!); + recordSettingChange(Setting.kSmartLockOnOff); } }
diff --git a/chrome/browser/resources/ash/settings/os_a11y_page/os_a11y_page.html b/chrome/browser/resources/ash/settings/os_a11y_page/os_a11y_page.html index 36365b408..2ff8a6d4 100644 --- a/chrome/browser/resources/ash/settings/os_a11y_page/os_a11y_page.html +++ b/chrome/browser/resources/ash/settings/os_a11y_page/os_a11y_page.html
@@ -1,5 +1,5 @@ <style include="settings-shared"> - :host-context(body.revamp-wayfinding-enabled) settings-toggle-button { + settings-toggle-button { --cr-icon-button-margin-end: 16px; --iron-icon-fill-color: var(--cros-sys-primary); } @@ -12,7 +12,7 @@ <settings-card header-text="$i18n{a11yPageTitle}"> <settings-toggle-button id="a11yImageLabelsToggle" - icon="[[rowIcons_.imageDescription]]" + icon="os-settings:a11y-image-description" hidden="[[!hasScreenReader_]]" pref="{{prefs.settings.a11y.enable_accessibility_image_labels}}" on-change="onToggleAccessibilityImageLabels_" @@ -22,7 +22,7 @@ </settings-toggle-button> <div class="hr" hidden="[[!hasScreenReader_]]"></div> <settings-toggle-button id="optionsInMenuToggle" - icon="[[rowIcons_.showInQuickSettings]]" + icon="os-settings:accessibility-revamp" label="$i18n{optionsInMenuLabel}" sub-label="$i18n{optionsInMenuDescription}" pref="{{prefs.settings.a11y.enable_menu}}" @@ -30,7 +30,7 @@ </settings-toggle-button> <div class="hr"></div> <cr-link-row id="textToSpeechSubpageTrigger" - start-icon="[[rowIcons_.textToSpeech]]" + start-icon="os-settings:text-to-speech" label="$i18n{textToSpeechLinkTitle}" on-click="onTextToSpeechClick_" sub-label="$i18n{textToSpeechLinkDescription}" @@ -38,7 +38,7 @@ </cr-link-row> <div class="hr"></div> <cr-link-row id="displayAndMagnificationPageTrigger" - start-icon="[[rowIcons_.displayAndMagnification]]" + start-icon="os-settings:zoom-in" label="$i18n{displayAndMagnificationLinkTitle}" on-click="onDisplayAndMagnificationClick_" sub-label="$i18n{displayAndMagnificationLinkDescription}" @@ -46,7 +46,7 @@ </cr-link-row> <div class="hr"></div> <cr-link-row id="keyboardAndTextInputPageTrigger" - start-icon="[[rowIcons_.keyboardAndTextInput]]" + start-icon="os-settings:a11y-keyboard-and-text-input" label="$i18n{keyboardAndTextInputLinkTitle}" on-click="onKeyboardAndTextInputClick_" sub-label="$i18n{keyboardAndTextInputLinkDescription}" @@ -54,7 +54,7 @@ </cr-link-row> <div class="hr"></div> <cr-link-row id="cursorAndTouchpadPageTrigger" - start-icon="[[rowIcons_.cursorAndTouchpad]]" + start-icon="os-settings:cursor-click" label="$i18n{cursorAndTouchpadLinkTitle}" on-click="onCursorAndTouchpadClick_" sub-label="$i18n{cursorAndTouchpadLinkDescription}" @@ -62,7 +62,7 @@ </cr-link-row> <div class="hr"></div> <cr-link-row id="audioAndCaptionsPageTrigger" - start-icon="[[rowIcons_.audioAndCaptions]]" + start-icon="os-settings:a11y-hearing" label="$i18n{audioAndCaptionsLinkTitle}" on-click="onAudioAndCaptionsClick_" sub-label="$i18n{audioAndCaptionsLinkDescription}" @@ -71,7 +71,7 @@ <template is="dom-if" if="[[!isGuest_]]"> <cr-link-row id="additionalFeaturesLink" class="hr" - start-icon="[[rowIcons_.findMore]]" + start-icon="os-settings:a11y-find-more" label="$i18n{additionalFeaturesTitle}" on-click="onAdditionalFeaturesClick_" external>
diff --git a/chrome/browser/resources/ash/settings/os_a11y_page/os_a11y_page.ts b/chrome/browser/resources/ash/settings/os_a11y_page/os_a11y_page.ts index 8e79217..dd8cb70 100644 --- a/chrome/browser/resources/ash/settings/os_a11y_page/os_a11y_page.ts +++ b/chrome/browser/resources/ash/settings/os_a11y_page/os_a11y_page.ts
@@ -20,7 +20,6 @@ import {PolymerElement} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js'; import {DeepLinkingMixin} from '../common/deep_linking_mixin.js'; -import {isRevampWayfindingEnabled} from '../common/load_time_booleans.js'; import {RouteOriginMixin} from '../common/route_origin_mixin.js'; import type {SettingsToggleButtonElement} from '../controls/settings_toggle_button.js'; import {Section} from '../mojom-webui/routes.mojom-webui.js'; @@ -114,35 +113,6 @@ Setting.kLiveCaption, ]), }, - - rowIcons_: { - type: Object, - value() { - if (isRevampWayfindingEnabled()) { - return { - imageDescription: 'os-settings:a11y-image-description', - showInQuickSettings: 'os-settings:accessibility-revamp', - textToSpeech: 'os-settings:text-to-speech', - displayAndMagnification: 'os-settings:zoom-in', - keyboardAndTextInput: 'os-settings:a11y-keyboard-and-text-input', - cursorAndTouchpad: 'os-settings:cursor-click', - audioAndCaptions: 'os-settings:a11y-hearing', - findMore: 'os-settings:a11y-find-more', - }; - } - - return { - imageDescription: '', - showInQuickSettings: '', - textToSpeech: '', - displayAndMagnification: '', - keyboardAndTextInput: '', - cursorAndTouchpad: '', - audioAndCaptions: '', - findMore: '', - }; - }, - }, }; } @@ -154,7 +124,6 @@ private hasScreenReader_: boolean; private isGuest_: boolean; private isKioskOldA11ySettingsRedirectionEnabled_: boolean; - private rowIcons_: Record<string, string>; private section_: Section; constructor() {
diff --git a/chrome/browser/resources/commerce/product_specifications/app.ts b/chrome/browser/resources/commerce/product_specifications/app.ts index e76bb1d3..5378a9a 100644 --- a/chrome/browser/resources/commerce/product_specifications/app.ts +++ b/chrome/browser/resources/commerce/product_specifications/app.ts
@@ -99,9 +99,21 @@ MAX_VALUE = 6, } +// This enum is used for metrics and should be kept in sync with the enum of +// the same name in enums.xml. +export enum CompareTableLoadStatus { + SUCCESS = 0, + FAILURE = 1, + // Must be last: + MAX_VALUE = 2, +} + export const COLUMN_MODIFICATION_HISTOGRAM_NAME: string = 'Commerce.Compare.Table.ColumnModification'; +export const TABLE_LOAD_HISTOGRAM_NAME: string = + 'Commerce.Compare.Table.LoadStatus'; + enum AppState { ERROR = 0, TABLE_EMPTY = 1, @@ -500,6 +512,13 @@ // the URLs in the comparison will still be displayed as columns. if (productSpecs.productDimensionMap.size === 0 && urls.length > 1) { this.$.errorToast.show(); + chrome.metricsPrivate.recordEnumerationValue( + TABLE_LOAD_HISTOGRAM_NAME, CompareTableLoadStatus.FAILURE, + CompareTableLoadStatus.MAX_VALUE); + } else { + chrome.metricsPrivate.recordEnumerationValue( + TABLE_LOAD_HISTOGRAM_NAME, CompareTableLoadStatus.SUCCESS, + CompareTableLoadStatus.MAX_VALUE); } }
diff --git a/chrome/browser/resources/new_tab_page/BUILD.gn b/chrome/browser/resources/new_tab_page/BUILD.gn index 5a63caa..daa37f81 100644 --- a/chrome/browser/resources/new_tab_page/BUILD.gn +++ b/chrome/browser/resources/new_tab_page/BUILD.gn
@@ -47,6 +47,7 @@ mojo_files_deps = [ "//chrome/browser/new_tab_page/modules/file_suggestion:mojo_bindings_ts__generator", + "//chrome/browser/new_tab_page/modules/v2/authentication:mojo_bindings_ts__generator", "//chrome/browser/new_tab_page/modules/v2/calendar:mojo_bindings_ts__generator", "//chrome/browser/new_tab_page/modules/v2/most_relevant_tab_resumption:mojo_bindings_ts__generator", "//chrome/browser/ui/webui/new_tab_page:mojo_bindings_ts__generator", @@ -57,6 +58,7 @@ "$root_gen_dir/chrome/browser/new_tab_page/modules/v2/calendar/calendar_data.mojom-webui.ts", "$root_gen_dir/chrome/browser/new_tab_page/modules/v2/calendar/outlook_calendar.mojom-webui.ts", "$root_gen_dir/chrome/browser/new_tab_page/modules/v2/calendar/google_calendar.mojom-webui.ts", + "$root_gen_dir/chrome/browser/new_tab_page/modules/v2/authentication/microsoft_auth.mojom-webui.ts", "$root_gen_dir/chrome/browser/new_tab_page/modules/v2/most_relevant_tab_resumption/url_visit_types.mojom-webui.ts", "$root_gen_dir/chrome/browser/new_tab_page/modules/v2/most_relevant_tab_resumption/most_relevant_tab_resumption.mojom-webui.ts", "$root_gen_dir/chrome/browser/ui/webui/new_tab_page/new_tab_page.mojom-webui.ts",
diff --git a/chrome/browser/resources/new_tab_page/lazy_load.ts b/chrome/browser/resources/new_tab_page/lazy_load.ts index a7c5dfe..e81f92d 100644 --- a/chrome/browser/resources/new_tab_page/lazy_load.ts +++ b/chrome/browser/resources/new_tab_page/lazy_load.ts
@@ -27,6 +27,7 @@ export {ModuleRegistry} from './modules/module_registry.js'; export {ModuleWrapperElement} from './modules/module_wrapper.js'; export {microsoftAuthModuleDescriptor, MicrosoftAuthModuleElement} from './modules/v2/authentication/microsoft_auth_module.js'; +export {MicrosoftAuthProxyImpl} from './modules/v2/authentication/microsoft_auth_module_proxy.js'; export {CalendarElement} from './modules/v2/calendar/calendar.js'; export {CalendarEventElement} from './modules/v2/calendar/calendar_event.js'; export {CalendarAction} from './modules/v2/calendar/common.js';
diff --git a/chrome/browser/resources/new_tab_page/modules/modules.gni b/chrome/browser/resources/new_tab_page/modules/modules.gni index 0a84760..047f49f 100644 --- a/chrome/browser/resources/new_tab_page/modules/modules.gni +++ b/chrome/browser/resources/new_tab_page/modules/modules.gni
@@ -17,7 +17,8 @@ "modules/module_descriptor.ts", "modules/module_descriptors.ts", "modules/module_registry.ts", - ] + calendar_v2_non_web_component_files + + ] + authentication_non_web_component_files + + calendar_v2_non_web_component_files + file_suggestion_non_web_component_files + most_relevant_tab_resumption_v2_non_web_component_files
diff --git a/chrome/browser/resources/new_tab_page/modules/v2/authentication/authentication.gni b/chrome/browser/resources/new_tab_page/modules/v2/authentication/authentication.gni index 2dd569b..d8f3cc4 100644 --- a/chrome/browser/resources/new_tab_page/modules/v2/authentication/authentication.gni +++ b/chrome/browser/resources/new_tab_page/modules/v2/authentication/authentication.gni
@@ -6,5 +6,9 @@ authentication_web_component_files = [ "modules/v2/authentication/microsoft_auth_module.ts" ] +# List of files that don't need to be passed to html_to_wrapper(). +authentication_non_web_component_files = + [ "modules/v2/authentication/microsoft_auth_module_proxy.ts" ] + authentication_css_files = [ "modules/v2/authentication/microsoft_auth_module.css" ]
diff --git a/chrome/browser/resources/new_tab_page/modules/v2/authentication/microsoft_auth_module.css b/chrome/browser/resources/new_tab_page/modules/v2/authentication/microsoft_auth_module.css index af305f4..b1c09c9 100644 --- a/chrome/browser/resources/new_tab_page/modules/v2/authentication/microsoft_auth_module.css +++ b/chrome/browser/resources/new_tab_page/modules/v2/authentication/microsoft_auth_module.css
@@ -63,7 +63,3 @@ line-height: var(--ntp-module-line-height); margin: 0; } - -#signInButton { - width: 165px; -}
diff --git a/chrome/browser/resources/new_tab_page/modules/v2/authentication/microsoft_auth_module.ts b/chrome/browser/resources/new_tab_page/modules/v2/authentication/microsoft_auth_module.ts index f59dbb9..5d169512 100644 --- a/chrome/browser/resources/new_tab_page/modules/v2/authentication/microsoft_auth_module.ts +++ b/chrome/browser/resources/new_tab_page/modules/v2/authentication/microsoft_auth_module.ts
@@ -7,11 +7,14 @@ import {CrLitElement} from 'chrome://resources/lit/v3_0/lit.rollup.js'; import {I18nMixinLit, loadTimeData} from '../../../i18n_setup.js'; +import type {MicrosoftAuthPageHandlerRemote} from '../../../microsoft_auth.mojom-webui.js'; import {ModuleDescriptor} from '../../module_descriptor.js'; import type {MenuItem, ModuleHeaderElement} from '../module_header.js'; import {getCss} from './microsoft_auth_module.css.js'; import {getHtml} from './microsoft_auth_module.html.js'; +import {MicrosoftAuthProxyImpl} from './microsoft_auth_module_proxy.js'; + export interface MicrosoftAuthModuleElement { $: { @@ -39,6 +42,13 @@ return getHtml.bind(this)(); } + private handler_: MicrosoftAuthPageHandlerRemote; + + constructor() { + super(); + this.handler_ = MicrosoftAuthProxyImpl.getInstance().handler; + } + protected getMenuItemGroups_(): MenuItem[][] { return [ [ @@ -76,7 +86,17 @@ } protected onDismissButtonClick_() { - // TODO(crbug.com/377378212): Handle button click. + this.handler_.dismissModule(); + this.dispatchEvent(new CustomEvent('dismiss-module-instance', { + bubbles: true, + composed: true, + detail: { + message: loadTimeData.getStringF( + 'dismissModuleToastMessage', + loadTimeData.getString('modulesMicrosoftAuthName')), + restoreCallback: () => this.handler_.restoreModule(), + }, + })); } protected onSignInClick_() {
diff --git a/chrome/browser/resources/new_tab_page/modules/v2/authentication/microsoft_auth_module_proxy.ts b/chrome/browser/resources/new_tab_page/modules/v2/authentication/microsoft_auth_module_proxy.ts new file mode 100644 index 0000000..6dc1715 --- /dev/null +++ b/chrome/browser/resources/new_tab_page/modules/v2/authentication/microsoft_auth_module_proxy.ts
@@ -0,0 +1,39 @@ +// 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. + +import type {MicrosoftAuthPageHandlerRemote} from '../../../microsoft_auth.mojom-webui.js'; +import {MicrosoftAuthPageHandler} from '../../../microsoft_auth.mojom-webui.js'; + +/** + * @fileoverview This file provides a singleton class that exposes the Mojo + * handler interface used for bidirectional communication between the page and + * the browser. + */ + +export interface MicrosoftAuthProxy { + handler: MicrosoftAuthPageHandlerRemote; +} + +export class MicrosoftAuthProxyImpl implements MicrosoftAuthProxy { + handler: MicrosoftAuthPageHandlerRemote; + + constructor(handler: MicrosoftAuthPageHandlerRemote) { + this.handler = handler; + } + + static getInstance(): MicrosoftAuthProxy { + if (instance) { + return instance; + } + + const handler = MicrosoftAuthPageHandler.getRemote(); + return instance = new MicrosoftAuthProxyImpl(handler); + } + + static setInstance(obj: MicrosoftAuthProxy) { + instance = obj; + } +} + +let instance: MicrosoftAuthProxy|null = null;
diff --git a/chrome/browser/resources/new_tab_page/new_tab_page.gni b/chrome/browser/resources/new_tab_page/new_tab_page.gni index c94d5eaa..d276d8ec 100644 --- a/chrome/browser/resources/new_tab_page/new_tab_page.gni +++ b/chrome/browser/resources/new_tab_page/new_tab_page.gni
@@ -52,9 +52,10 @@ "drive_suggestion.mojom-webui.js", "file_suggestion.mojom-webui.js", "google_calendar.mojom-webui.js", - "outlook_calendar.mojom-webui.js", - "new_tab_page.mojom-webui.js", + "microsoft_auth.mojom-webui.js", "most_relevant_tab_resumption.mojom-webui.js", + "new_tab_page.mojom-webui.js", + "outlook_calendar.mojom-webui.js", "url_visit_types.mojom-webui.js", ]
diff --git a/chrome/browser/search/instant_service.cc b/chrome/browser/search/instant_service.cc index 709ba9a..e3296f0 100644 --- a/chrome/browser/search/instant_service.cc +++ b/chrome/browser/search/instant_service.cc
@@ -94,7 +94,7 @@ InstantService::~InstantService() = default; void InstantService::AddInstantProcess(content::RenderProcessHost* host) { - process_ids_.insert(host->GetID()); + process_ids_.insert(host->GetDeprecatedID()); // The same process may be added for multiple WebContents. Only observe once. if (!host_observation_.IsObservingSource(host)) { host_observation_.AddObservation(host); @@ -178,7 +178,7 @@ content::RenderProcessHost* host) { Profile* renderer_profile = static_cast<Profile*>(host->GetBrowserContext()); if (profile_ == renderer_profile) { - process_ids_.erase(host->GetID()); + process_ids_.erase(host->GetDeprecatedID()); host_observation_.RemoveObservation(host); } }
diff --git a/chrome/browser/search/most_visited_iframe_source_unittest.cc b/chrome/browser/search/most_visited_iframe_source_unittest.cc index 26faf542..5d3fceb6 100644 --- a/chrome/browser/search/most_visited_iframe_source_unittest.cc +++ b/chrome/browser/search/most_visited_iframe_source_unittest.cc
@@ -69,9 +69,11 @@ : task_environment_(content::BrowserTaskEnvironment::IO_MAINLOOP), response_(nullptr) {} - int GetInstantRendererPID() const { return mock_host_.GetID(); } - int GetNonInstantRendererPID() const { return mock_host_.GetID() + 1; } - int GetInvalidRendererPID() const { return mock_host_.GetID() + 2; } + int GetInstantRendererPID() const { return mock_host_.GetDeprecatedID(); } + int GetNonInstantRendererPID() const { + return mock_host_.GetDeprecatedID() + 1; + } + int GetInvalidRendererPID() const { return mock_host_.GetDeprecatedID() + 2; } TestMostVisitedIframeSource* source() { return source_.get(); }
diff --git a/chrome/browser/search/search.cc b/chrome/browser/search/search.cc index 40c586f..af241ed 100644 --- a/chrome/browser/search/search.cc +++ b/chrome/browser/search/search.cc
@@ -229,7 +229,7 @@ return false; } - return instant_service->IsInstantProcess(process_host->GetID()); + return instant_service->IsInstantProcess(process_host->GetDeprecatedID()); #endif }
diff --git a/chrome/browser/search/search_unittest.cc b/chrome/browser/search/search_unittest.cc index 591519d..85fd2696 100644 --- a/chrome/browser/search/search_unittest.cc +++ b/chrome/browser/search/search_unittest.cc
@@ -102,7 +102,7 @@ InstantService* instant_service = InstantServiceFactory::GetForProfile(profile()); return instant_service->IsInstantProcess( - contents->GetPrimaryMainFrame()->GetProcess()->GetID()); + contents->GetPrimaryMainFrame()->GetProcess()->GetDeprecatedID()); } // Each test case represents a navigation to |start_url| followed by a
diff --git a/chrome/browser/signin/header_modification_delegate_impl.cc b/chrome/browser/signin/header_modification_delegate_impl.cc index 1fb8ca1..98bcfc65 100644 --- a/chrome/browser/signin/header_modification_delegate_impl.cc +++ b/chrome/browser/signin/header_modification_delegate_impl.cc
@@ -212,7 +212,7 @@ } if (extensions::WebViewRendererState::GetInstance()->IsGuest( - contents->GetPrimaryMainFrame()->GetProcess()->GetID())) { + contents->GetPrimaryMainFrame()->GetProcess()->GetDeprecatedID())) { CHECK(contents->GetSiteInstance()->IsGuest()); return true; }
diff --git a/chrome/browser/site_isolation/site_per_process_text_input_browsertest.cc b/chrome/browser/site_isolation/site_per_process_text_input_browsertest.cc index 7904b02..7518566 100644 --- a/chrome/browser/site_isolation/site_per_process_text_input_browsertest.cc +++ b/chrome/browser/site_isolation/site_per_process_text_input_browsertest.cc
@@ -1333,7 +1333,7 @@ // Destroy the RenderWidgetHost from the browser side right after the // dictionary message is received. The destruction is post tasked to UI // thread. - int32_t child_process_id = child_frame->GetProcess()->GetID(); + int32_t child_process_id = child_frame->GetProcess()->GetDeprecatedID(); int32_t child_frame_routing_id = child_frame->GetRoutingID(); text_input_local_frame.SetStringForRangeCallback(base::BindRepeating( @@ -1402,7 +1402,7 @@ // Destroy the RenderWidgetHost from the browser side right after the // dictionary message is received. The destruction is post tasked to UI // thread. - int32_t main_frame_process_id = main_frame->GetProcess()->GetID(); + int32_t main_frame_process_id = main_frame->GetProcess()->GetDeprecatedID(); int32_t main_frame_routing_id = main_frame->GetRoutingID(); text_input_local_frame.SetStringForRangeCallback(base::BindRepeating( [](int32_t process_id, int32_t routing_id,
diff --git a/chrome/browser/spellchecker/spell_check_host_chrome_impl_mac_browsertest.cc b/chrome/browser/spellchecker/spell_check_host_chrome_impl_mac_browsertest.cc index e3a28736..831faf2 100644 --- a/chrome/browser/spellchecker/spell_check_host_chrome_impl_mac_browsertest.cc +++ b/chrome/browser/spellchecker/spell_check_host_chrome_impl_mac_browsertest.cc
@@ -23,7 +23,8 @@ content::BrowserContext* context = browser()->profile(); renderer_ = std::make_unique<content::MockRenderProcessHost>(context); SpellCheckHostChromeImpl::Create( - renderer_->GetID(), spell_check_host_.BindNewPipeAndPassReceiver()); + renderer_->GetDeprecatedID(), + spell_check_host_.BindNewPipeAndPassReceiver()); } void TearDownOnMainThread() override { renderer_.reset(); }
diff --git a/chrome/browser/spellchecker/spell_check_host_chrome_impl_win_browsertest.cc b/chrome/browser/spellchecker/spell_check_host_chrome_impl_win_browsertest.cc index ce6c5d0c..308c905 100644 --- a/chrome/browser/spellchecker/spell_check_host_chrome_impl_win_browsertest.cc +++ b/chrome/browser/spellchecker/spell_check_host_chrome_impl_win_browsertest.cc
@@ -44,7 +44,8 @@ renderer_ = std::make_unique<content::MockRenderProcessHost>(context); SpellCheckHostChromeImpl::Create( - renderer_->GetID(), spell_check_host_.BindNewPipeAndPassReceiver()); + renderer_->GetDeprecatedID(), + spell_check_host_.BindNewPipeAndPassReceiver()); InitializeSpellcheckService();
diff --git a/chrome/browser/spellchecker/spellcheck_service_browsertest.cc b/chrome/browser/spellchecker/spellcheck_service_browsertest.cc index 741761a..5c455e7 100644 --- a/chrome/browser/spellchecker/spellcheck_service_browsertest.cc +++ b/chrome/browser/spellchecker/spellcheck_service_browsertest.cc
@@ -328,7 +328,7 @@ private: void RequestSpellCheckHost( mojo::Remote<spellcheck::mojom::SpellCheckHost>* interface) { - SpellCheckHostChromeImpl::Create(GetRenderer()->GetID(), + SpellCheckHostChromeImpl::Create(GetRenderer()->GetDeprecatedID(), interface->BindNewPipeAndPassReceiver()); } @@ -336,7 +336,8 @@ mojo::Remote<spellcheck::mojom::SpellCheckInitializationHost>* interface) { SpellCheckInitializationHostImpl::Create( - GetRenderer()->GetID(), interface->BindNewPipeAndPassReceiver()); + GetRenderer()->GetDeprecatedID(), + interface->BindNewPipeAndPassReceiver()); } void SpellingServiceDone(bool success,
diff --git a/chrome/browser/storage_access_api/api_browsertest.cc b/chrome/browser/storage_access_api/api_browsertest.cc index 0ab522b3..e6e74f04 100644 --- a/chrome/browser/storage_access_api/api_browsertest.cc +++ b/chrome/browser/storage_access_api/api_browsertest.cc
@@ -394,6 +394,8 @@ return https_server_.GetURL(host, path); } + // TODO(crbug.com/381856829): Update SetBlockThirdPartyCookies to use sync + // interface once implemented. void SetBlockThirdPartyCookies(bool value) { browser()->profile()->GetPrefs()->SetInteger( prefs::kCookieControlsMode,
diff --git a/chrome/browser/supervised_user/supervised_user_navigation_observer.cc b/chrome/browser/supervised_user/supervised_user_navigation_observer.cc index fee9504e..8d1c542 100644 --- a/chrome/browser/supervised_user/supervised_user_navigation_observer.cc +++ b/chrome/browser/supervised_user/supervised_user_navigation_observer.cc
@@ -155,7 +155,7 @@ if (navigation_handle->IsSameDocument() && navigation_handle->IsInPrimaryMainFrame()) { auto* render_frame_host = web_contents()->GetPrimaryMainFrame(); - int process_id = render_frame_host->GetProcess()->GetID(); + int process_id = render_frame_host->GetProcess()->GetDeprecatedID(); int routing_id = render_frame_host->GetRoutingID(); bool skip_manual_parent_filter = supervised_user::ShouldContentSkipParentAllowlistFiltering( @@ -235,7 +235,7 @@ void SupervisedUserNavigationObserver::OnURLFilterChanged() { auto* main_frame = web_contents()->GetPrimaryMainFrame(); - int main_frame_process_id = main_frame->GetProcess()->GetID(); + int main_frame_process_id = main_frame->GetProcess()->GetDeprecatedID(); int routing_id = main_frame->GetRoutingID(); bool skip_manual_parent_filter = supervised_user::ShouldContentSkipParentAllowlistFiltering( @@ -395,7 +395,7 @@ last_committed_url, web_contents()->GetLastCommittedURL(), base::BindOnce(&SupervisedUserNavigationObserver::URLFilterCheckCallback, weak_ptr_factory_.GetWeakPtr(), last_committed_url, - render_frame_host->GetProcess()->GetID(), + render_frame_host->GetProcess()->GetDeprecatedID(), render_frame_host->GetRoutingID())); }
diff --git a/chrome/browser/support_tool/screenshot_data_collector_browsertest.cc b/chrome/browser/support_tool/screenshot_data_collector_browsertest.cc index 0f9ea61d..6df3d20 100644 --- a/chrome/browser/support_tool/screenshot_data_collector_browsertest.cc +++ b/chrome/browser/support_tool/screenshot_data_collector_browsertest.cc
@@ -53,8 +53,8 @@ return content::DesktopMediaID( content::DesktopMediaID::TYPE_WEB_CONTENTS, content::DesktopMediaID::kNullId, - content::WebContentsMediaCaptureId(host->GetProcess()->GetID(), - host->GetRoutingID())); + content::WebContentsMediaCaptureId( + host->GetProcess()->GetDeprecatedID(), host->GetRoutingID())); } // Ensure that TestFlags outlive FakeDesktopMediaPickerFactory.
diff --git a/chrome/browser/tab/java/src/org/chromium/chrome/browser/tab/Tab.java b/chrome/browser/tab/java/src/org/chromium/chrome/browser/tab/Tab.java index efaa75b8..cc82014 100644 --- a/chrome/browser/tab/java/src/org/chromium/chrome/browser/tab/Tab.java +++ b/chrome/browser/tab/java/src/org/chromium/chrome/browser/tab/Tab.java
@@ -343,7 +343,7 @@ long getTimestampMillis(); /** - * Sets the last time this tab was shown. Used for delcutter to mark the tab as "active" after + * Sets the last time this tab was shown. Used for declutter to mark the tab as "active" after * it's restored, but not immediately shown. */ void setTimestampMillis(long timestampMillis);
diff --git a/chrome/browser/tab_contents/view_source_browsertest.cc b/chrome/browser/tab_contents/view_source_browsertest.cc index e11e4e2..01bf07f 100644 --- a/chrome/browser/tab_contents/view_source_browsertest.cc +++ b/chrome/browser/tab_contents/view_source_browsertest.cc
@@ -271,8 +271,8 @@ if (content::AreAllSitesIsolatedForTesting()) { EXPECT_NE(original_main_frame->GetSiteInstance(), original_child_frame->GetSiteInstance()); - EXPECT_NE(original_main_frame->GetProcess()->GetID(), - original_child_frame->GetProcess()->GetID()); + EXPECT_NE(original_main_frame->GetProcess()->GetDeprecatedID(), + original_child_frame->GetProcess()->GetDeprecatedID()); } // Open view-source mode tab for the subframe. This tries to mimic the
diff --git a/chrome/browser/task_manager/providers/per_profile_worker_task_tracker.cc b/chrome/browser/task_manager/providers/per_profile_worker_task_tracker.cc index b8fc5b5..e444312a 100644 --- a/chrome/browser/task_manager/providers/per_profile_worker_task_tracker.cc +++ b/chrome/browser/task_manager/providers/per_profile_worker_task_tracker.cc
@@ -148,9 +148,9 @@ base::flat_map<WorkerId, std::unique_ptr<WorkerTask>>* out_worker_tasks) { DCHECK(worker_process_host); auto insertion_result = out_worker_tasks->emplace( - worker_id, - std::make_unique<WorkerTask>(worker_process_host->GetProcess().Handle(), - task_type, worker_process_host->GetID())); + worker_id, std::make_unique<WorkerTask>( + worker_process_host->GetProcess().Handle(), task_type, + worker_process_host->GetDeprecatedID())); DCHECK(insertion_result.second); worker_task_provider_->OnWorkerTaskAdded( insertion_result.first->second.get());
diff --git a/chrome/browser/task_manager/providers/render_process_host_task_provider.cc b/chrome/browser/task_manager/providers/render_process_host_task_provider.cc index d0f9c7e..cdd4b23 100644 --- a/chrome/browser/task_manager/providers/render_process_host_task_provider.cc +++ b/chrome/browser/task_manager/providers/render_process_host_task_provider.cc
@@ -45,7 +45,7 @@ RenderProcessHost* host = it.GetCurrentValue(); host_observation_.AddObservation(host); if (host->GetProcess().IsValid()) { - CreateTask(host->GetID()); + CreateTask(host->GetDeprecatedID()); } else { // If the host isn't ready, do nothing and wait for the // OnRenderProcessHostCreated() notification. @@ -79,7 +79,7 @@ // Create the task and notify the observer. ChildProcessData data(content::PROCESS_TYPE_RENDERER); data.SetProcess(host->GetProcess().Duplicate()); - data.id = host->GetID(); + data.id = host->GetDeprecatedID(); task = std::make_unique<ChildProcessTask>( data, ChildProcessTask::ProcessSubtype::kUnknownRenderProcess); NotifyObserverTaskAdded(task.get()); @@ -102,7 +102,7 @@ void RenderProcessHostTaskProvider::OnRenderProcessHostCreated( content::RenderProcessHost* host) { if (is_updating_) { - CreateTask(host->GetID()); + CreateTask(host->GetDeprecatedID()); // If the host is reused after the process exited, it is possible to get a // second created notification for the same host. if (!host_observation_.IsObservingSource(host)) { @@ -114,13 +114,13 @@ void RenderProcessHostTaskProvider::RenderProcessExited( content::RenderProcessHost* host, const content::ChildProcessTerminationInfo& info) { - DeleteTask(host->GetID()); + DeleteTask(host->GetDeprecatedID()); host_observation_.RemoveObservation(host); } void RenderProcessHostTaskProvider::RenderProcessHostDestroyed( content::RenderProcessHost* host) { - DeleteTask(host->GetID()); + DeleteTask(host->GetDeprecatedID()); host_observation_.RemoveObservation(host); }
diff --git a/chrome/browser/task_manager/providers/spare_render_process_host_task_provider.cc b/chrome/browser/task_manager/providers/spare_render_process_host_task_provider.cc index b18dc277..9bd76cd 100644 --- a/chrome/browser/task_manager/providers/spare_render_process_host_task_provider.cc +++ b/chrome/browser/task_manager/providers/spare_render_process_host_task_provider.cc
@@ -57,12 +57,12 @@ RenderProcessHost* host) { ChildProcessData data(content::PROCESS_TYPE_RENDERER); data.SetProcess(host->GetProcess().Duplicate()); - data.id = host->GetID(); + data.id = host->GetDeprecatedID(); auto task = std::make_unique<ChildProcessTask>( data, ChildProcessTask::ProcessSubtype::kSpareRenderProcess); auto [it, inserted] = - tasks_by_rph_id_.emplace(host->GetID(), std::move(task)); + tasks_by_rph_id_.emplace(host->GetDeprecatedID(), std::move(task)); CHECK(inserted); NotifyObserverTaskAdded(it->second.get()); @@ -70,7 +70,7 @@ void SpareRenderProcessHostTaskProvider::OnSpareRenderProcessHostRemoved( RenderProcessHost* host) { - auto it = tasks_by_rph_id_.find(host->GetID()); + auto it = tasks_by_rph_id_.find(host->GetDeprecatedID()); if (it == tasks_by_rph_id_.end()) { // This can happen when a spare RenderProcessHost was created but never // reached the "ready" state.
diff --git a/chrome/browser/task_manager/providers/spare_render_process_host_task_unittest.cc b/chrome/browser/task_manager/providers/spare_render_process_host_task_unittest.cc index dd97a0e0..e5d9f1ac 100644 --- a/chrome/browser/task_manager/providers/spare_render_process_host_task_unittest.cc +++ b/chrome/browser/task_manager/providers/spare_render_process_host_task_unittest.cc
@@ -81,16 +81,22 @@ EXPECT_TRUE(provided_tasks().empty()); OnSpareRenderProcessHostReady(&provider, render_process1.get()); - EXPECT_THAT(provided_tasks(), ContainsRphId(render_process1->GetID())); - EXPECT_THAT(provided_tasks(), Not(ContainsRphId(render_process2->GetID()))); + EXPECT_THAT(provided_tasks(), + ContainsRphId(render_process1->GetDeprecatedID())); + EXPECT_THAT(provided_tasks(), + Not(ContainsRphId(render_process2->GetDeprecatedID()))); OnSpareRenderProcessHostReady(&provider, render_process2.get()); - EXPECT_THAT(provided_tasks(), ContainsRphId(render_process1->GetID())); - EXPECT_THAT(provided_tasks(), ContainsRphId(render_process2->GetID())); + EXPECT_THAT(provided_tasks(), + ContainsRphId(render_process1->GetDeprecatedID())); + EXPECT_THAT(provided_tasks(), + ContainsRphId(render_process2->GetDeprecatedID())); OnSpareRenderProcessHostRemoved(&provider, render_process1.get()); - EXPECT_THAT(provided_tasks(), Not(ContainsRphId(render_process1->GetID()))); - EXPECT_THAT(provided_tasks(), ContainsRphId(render_process2->GetID())); + EXPECT_THAT(provided_tasks(), + Not(ContainsRphId(render_process1->GetDeprecatedID()))); + EXPECT_THAT(provided_tasks(), + ContainsRphId(render_process2->GetDeprecatedID())); OnSpareRenderProcessHostRemoved(&provider, render_process2.get()); EXPECT_TRUE(provided_tasks().empty());
diff --git a/chrome/browser/task_manager/providers/web_contents/renderer_task.cc b/chrome/browser/task_manager/providers/web_contents/renderer_task.cc index 33495ad7..5eb53b3 100644 --- a/chrome/browser/task_manager/providers/web_contents/renderer_task.cc +++ b/chrome/browser/task_manager/providers/web_contents/renderer_task.cc
@@ -79,7 +79,7 @@ render_process_host_(render_process_host), renderer_resources_sampler_( CreateRendererResourcesSampler(render_process_host_)), - render_process_id_(render_process_host_->GetID()), + render_process_id_(render_process_host_->GetDeprecatedID()), v8_memory_allocated_(0), v8_memory_used_(0), webcache_stats_(blink::WebCacheResourceTypeStats()),
diff --git a/chrome/browser/task_manager/providers/web_contents/web_contents_task_provider.cc b/chrome/browser/task_manager/providers/web_contents/web_contents_task_provider.cc index 7d27986a..5b19881 100644 --- a/chrome/browser/task_manager/providers/web_contents/web_contents_task_provider.cc +++ b/chrome/browser/task_manager/providers/web_contents/web_contents_task_provider.cc
@@ -465,7 +465,7 @@ render_frame_host->GetProcess()->PostTaskWhenProcessIsReady( base::BindOnce(&WebContentsEntry::RenderFrameReady, weak_factory_.GetWeakPtr(), - render_frame_host->GetProcess()->GetID(), + render_frame_host->GetProcess()->GetDeprecatedID(), render_frame_host->GetRoutingID())); } }
diff --git a/chrome/browser/task_manager/providers/worker_task_provider_browsertest.cc b/chrome/browser/task_manager/providers/worker_task_provider_browsertest.cc index e38813b..301f1d9 100644 --- a/chrome/browser/task_manager/providers/worker_task_provider_browsertest.cc +++ b/chrome/browser/task_manager/providers/worker_task_provider_browsertest.cc
@@ -55,7 +55,7 @@ ->GetActiveWebContents() ->GetPrimaryMainFrame() ->GetProcess() - ->GetID(); + ->GetDeprecatedID(); } } // namespace
diff --git a/chrome/browser/top_level_storage_access_api/request_storage_access_for_browsertest.cc b/chrome/browser/top_level_storage_access_api/request_storage_access_for_browsertest.cc index 2d252785..006f495 100644 --- a/chrome/browser/top_level_storage_access_api/request_storage_access_for_browsertest.cc +++ b/chrome/browser/top_level_storage_access_api/request_storage_access_for_browsertest.cc
@@ -46,7 +46,9 @@ #include "ui/base/window_open_disposition.h" using content::BrowserThread; +using testing::ElementsAreArray; using testing::Gt; +using testing::ValuesIn; namespace { @@ -56,6 +58,8 @@ constexpr char kHostC[] = "c.test"; constexpr char kHostD[] = "d.test"; +constexpr char kSameSiteNoneSecure[] = ";SameSite=None;Secure"; + constexpr char kRequestOutcomeHistogram[] = "API.TopLevelStorageAccess.RequestOutcome"; @@ -67,6 +71,11 @@ constexpr char kRequestStorageResultMetricName[] = "RequestStorageResult"; +constexpr char kTopLevelStorageExemptionReasonEntryName[] = + "RequestStorageAccessFor.TopLevelStorageIsExemptionReason"; + +constexpr char kTopLevelStorageExemptionReasonMetricName[] = "NumberOfCookies"; + // Path for URL of custom response constexpr char kFetchWithCredentialsPath[] = "/respondwithcookies"; @@ -162,7 +171,19 @@ return https_server_.GetURL(host, "/"); } + // TODO(crbug.com/381856829): Update SetBlockThirdPartyCookies to use sync + // interface once implemented. void SetBlockThirdPartyCookies(bool value) { + // The call to the perf should be enough to set third party cookie blocking. + // Until crbug.com/381856829 is fixed, we also call set it using the cookie + // manager to help reduce the potential for flakiness due to the race + // condition described in the bug. + browser() + ->profile() + ->GetDefaultStoragePartition() + ->GetCookieManagerForBrowserProcess() + ->BlockThirdPartyCookies(value); + browser()->profile()->GetPrefs()->SetInteger( prefs::kCookieControlsMode, static_cast<int>( @@ -1318,4 +1339,175 @@ Gt(0)); } +enum class CookieSetMechanism { + kBrowserInternal, + kDocumentCookie, + kNetworkResponse +}; + +struct TopLevelStorageExemptionReasonTestData { + CookieSetMechanism cookie_set_mechanism; + std::vector<std::string> cookie_name_value; + bool block_third_party_cookies; + std::string expected_cookie_string; + std::vector<int64_t> expected_metric_value; +}; + +class TopLevelStorageExemptionReasonMetricTest + : public RequestStorageAccessForWithFirstPartySetsBrowserTest, + public testing::WithParamInterface< + TopLevelStorageExemptionReasonTestData> { + public: + bool block_third_party_cookies() const { + return GetParam().block_third_party_cookies; + } + + CookieSetMechanism cookie_set_mechanism() const { + return GetParam().cookie_set_mechanism; + } + + const std::vector<std::string>& cookie_name_value() { + return GetParam().cookie_name_value; + } + + std::string expected_cookie_string() const { + return GetParam().expected_cookie_string; + } + + const std::vector<int64_t>& expected_metric_value() { + return GetParam().expected_metric_value; + } +}; + +INSTANTIATE_TEST_SUITE_P( + /* no label */, + TopLevelStorageExemptionReasonMetricTest, + ValuesIn({ + // RequestStorageAccessForOrigin called but not the exemption reason. + TopLevelStorageExemptionReasonTestData{ + .cookie_set_mechanism = CookieSetMechanism::kBrowserInternal, + .cookie_name_value = {"cross-site=b.test"}, + .block_third_party_cookies = false, + .expected_cookie_string = "cross-site=b.test", + .expected_metric_value = {}, + }, + // One cookie access granted through TopLevelStorage. + TopLevelStorageExemptionReasonTestData{ + .cookie_set_mechanism = CookieSetMechanism::kBrowserInternal, + .cookie_name_value = {"cross-site=b.test"}, + .block_third_party_cookies = true, + .expected_cookie_string = "cross-site=b.test", + .expected_metric_value = {1}, + }, + // Multiple cookie access granted through TopLevelStorage using + // kBrowserInternal. + TopLevelStorageExemptionReasonTestData{ + .cookie_set_mechanism = CookieSetMechanism::kBrowserInternal, + .cookie_name_value = {"cross-site=b.test", "second-cookie"}, + .block_third_party_cookies = true, + .expected_cookie_string = "cross-site=b.test; second-cookie", + .expected_metric_value = {2}}, + // Confirm that metric records exponential numbers of cookies + // correctly. + TopLevelStorageExemptionReasonTestData{ + .cookie_set_mechanism = CookieSetMechanism::kBrowserInternal, + .cookie_name_value = {"cross-site=b.test", "second-cookie=2", + "third-cookie=3", "fourth-cookie=4", + "fifth-cookie=5", "sixth-cookie=6", + "seventh-cookie=7", "eighth-cookie=8", + "ninth-cookie=9", "tenth-cookie=10"}, + .block_third_party_cookies = true, + .expected_cookie_string = + "cross-site=b.test; second-cookie=2; third-cookie=3; " + "fourth-cookie=4; fifth-cookie=5; sixth-cookie=6; " + "seventh-cookie=7; eighth-cookie=8; ninth-cookie=9; " + "tenth-cookie=10", + .expected_metric_value = {8}, + }, + // Test by using document.cookie to set the cookie. + TopLevelStorageExemptionReasonTestData{ + .cookie_set_mechanism = CookieSetMechanism::kDocumentCookie, + .cookie_name_value = {"document=b.test"}, + .block_third_party_cookies = true, + .expected_cookie_string = "document=b.test", + .expected_metric_value = {1}, + }, + // Multiple cookie access granted through TopLevelStorage using + // document.cookie. + TopLevelStorageExemptionReasonTestData{ + .cookie_set_mechanism = CookieSetMechanism::kDocumentCookie, + .cookie_name_value = {"cross-site=b.test", "second-cookie"}, + .block_third_party_cookies = true, + .expected_cookie_string = "cross-site=b.test; second-cookie", + .expected_metric_value = {2}}, + // Test by using network response to set the cookie. + TopLevelStorageExemptionReasonTestData{ + .cookie_set_mechanism = CookieSetMechanism::kNetworkResponse, + .cookie_name_value = {"network=b.test"}, + .block_third_party_cookies = true, + .expected_cookie_string = "network=b.test", + .expected_metric_value = {1}}, + // Multiple cookie access granted through TopLevelStorage using network + // response. + TopLevelStorageExemptionReasonTestData{ + .cookie_set_mechanism = CookieSetMechanism::kNetworkResponse, + .cookie_name_value = {"cross-site=b.test", "second-cookie"}, + .block_third_party_cookies = true, + .expected_cookie_string = "cross-site=b.test; second-cookie", + .expected_metric_value = {2}}, + })); + +IN_PROC_BROWSER_TEST_P(TopLevelStorageExemptionReasonMetricTest, + TestMetricResults) { + ukm::TestAutoSetUkmRecorder ukm_recorder; + SetBlockThirdPartyCookies(block_third_party_cookies()); + + switch (cookie_set_mechanism()) { + case CookieSetMechanism::kBrowserInternal: + for (const auto& name_value : cookie_name_value()) { + ASSERT_TRUE(content::SetCookie( + browser()->profile(), GetURL(kHostB), + base::StrCat({name_value, kSameSiteNoneSecure}))); + } + break; + case CookieSetMechanism::kDocumentCookie: + NavigateToPageWithFrame(kHostB); + for (const auto& name_value : cookie_name_value()) { + EXPECT_TRUE(content::ExecJs( + GetFrame(), content::JsReplace( + "document.cookie = $1", + base::StrCat({name_value, kSameSiteNoneSecure})))); + } + break; + case CookieSetMechanism::kNetworkResponse: + NavigateToPageWithFrame(kHostB); + for (const auto& name_value : cookie_name_value()) { + NavigateFrameTo(kHostB, base::StrCat({"/set-cookie?", name_value, + kSameSiteNoneSecure})); + } + break; + default: { + ADD_FAILURE() << "Invalid value in switch statement."; + } + } + + ASSERT_EQ(content::GetCookies(browser()->profile(), GetURL(kHostB)), + expected_cookie_string()); + + NavigateToPageWithFrame(kHostA); + NavigateFrameTo(kHostB, "/"); + + EXPECT_TRUE(storage::test::RequestStorageAccessForOrigin( + GetPrimaryMainFrame(), GetURL(kHostB).spec())); + + EXPECT_EQ(CookiesFromFetchWithCredentials(GetPrimaryMainFrame(), kHostB, + /*cors_enabled=*/true), + expected_cookie_string()); + + EXPECT_THAT(ukm_recorder.GetMetricsEntryValues( + kTopLevelStorageExemptionReasonEntryName, + kTopLevelStorageExemptionReasonMetricName), + ElementsAreArray(expected_metric_value())); +} + } // namespace
diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn index 464b1bf..ed6ed814 100644 --- a/chrome/browser/ui/BUILD.gn +++ b/chrome/browser/ui/BUILD.gn
@@ -4750,6 +4750,8 @@ "views/tabs/window_finder.h", "views/tabs/z_orderable_tab_container_element.cc", "views/tabs/z_orderable_tab_container_element.h", + "views/task_manager_search_bar_view.cc", + "views/task_manager_search_bar_view.h", "views/task_manager_view.cc", "views/task_manager_view.h", "views/theme_copying_widget.cc",
diff --git a/chrome/browser/ui/android/context_menu_helper.cc b/chrome/browser/ui/android/context_menu_helper.cc index f2c939a..16060aa 100644 --- a/chrome/browser/ui/android/context_menu_helper.cc +++ b/chrome/browser/ui/android/context_menu_helper.cc
@@ -53,7 +53,8 @@ Java_ContextMenuHelper_showContextMenu( env, java_obj_, context_menu::BuildJavaContextMenuParams( - context_menu_params_, render_frame_host.GetProcess()->GetID(), + context_menu_params_, + render_frame_host.GetProcess()->GetDeprecatedID(), render_frame_host.GetFrameToken().value()), render_frame_host.GetJavaRenderFrameHost(), view->GetContainerView(), view->content_offset() * view->GetDipScale());
diff --git a/chrome/browser/ui/ash/capture_mode/lens_overlay_query_controller.cc b/chrome/browser/ui/ash/capture_mode/lens_overlay_query_controller.cc index 4994eec..5b8e7bae 100644 --- a/chrome/browser/ui/ash/capture_mode/lens_overlay_query_controller.cc +++ b/chrome/browser/ui/ash/capture_mode/lens_overlay_query_controller.cc
@@ -1275,7 +1275,7 @@ void LensOverlayQueryController::RunSuggestInputsCallback() { suggest_inputs_.set_send_gsession_vsrid_for_contextual_suggest( lens::features::GetLensOverlaySendLensInputsForContextualSuggest()); - suggest_inputs_.set_send_gsession_vsrid_for_lens_suggest( + suggest_inputs_.set_send_gsession_vsrid_vit_for_lens_suggest( lens::features::GetLensOverlaySendLensInputsForLensSuggest()); suggest_inputs_.set_send_vsint_for_lens_suggest( lens::features::
diff --git a/chrome/browser/ui/ash/quick_answers/ui/quick_answers_view.cc b/chrome/browser/ui/ash/quick_answers/ui/quick_answers_view.cc index 78a5acdc..c70f1a16 100644 --- a/chrome/browser/ui/ash/quick_answers/ui/quick_answers_view.cc +++ b/chrome/browser/ui/ash/quick_answers/ui/quick_answers_view.cc
@@ -7,6 +7,7 @@ #include <string> #include <string_view> +#include "ash/style/typography.h" #include "base/check_is_test.h" #include "base/functional/bind.h" #include "base/memory/raw_ptr.h" @@ -275,12 +276,15 @@ } views::Builder<views::Label> GetRefreshUiHeader() { - int line_height = GetCrosAnnotation1LineHeight(); + int line_height = ash::TypographyProvider::Get()->ResolveLineHeight( + ash::TypographyToken::kCrosAnnotation1); int vertical_padding = std::max(0, (20 - line_height) / 2); return views::Builder<views::Label>() - .SetFontList(GetCrosAnnotation1FontList().DeriveWithWeight( - gfx::Font::Weight::MEDIUM)) + .SetFontList( + ash::TypographyProvider::Get() + ->ResolveTypographyToken(ash::TypographyToken::kCrosAnnotation1) + .DeriveWithWeight(gfx::Font::Weight::MEDIUM)) .SetLineHeight(line_height) .SetProperty( views::kMarginsKey, @@ -298,7 +302,8 @@ } views::Builder<views::BoxLayoutView> GetMagicBoostHeader() { - int line_height = GetCrosAnnotation1LineHeight(); + int line_height = ash::TypographyProvider::Get()->ResolveLineHeight( + ash::TypographyToken::kCrosAnnotation1); int vertical_padding = std::max(0, (20 - line_height) / 2); return views::Builder<views::BoxLayoutView>() @@ -324,8 +329,10 @@ .SetProperty(views::kMarginsKey, gfx::Insets::VH(vertical_padding, 0)) .SetHorizontalAlignment(gfx::HorizontalAlignment::ALIGN_LEFT) - .SetFontList(GetCrosAnnotation1FontList().DeriveWithWeight( - gfx::Font::Weight::MEDIUM))) + .SetFontList(ash::TypographyProvider::Get() + ->ResolveTypographyToken( + ash::TypographyToken::kCrosAnnotation1) + .DeriveWithWeight(gfx::Font::Weight::MEDIUM))) .AddChild(views::Builder<chromeos::ExperimentBadge>()); }
diff --git a/chrome/browser/ui/ash/quick_answers/ui/typography.cc b/chrome/browser/ui/ash/quick_answers/ui/typography.cc index 606c5fb..1310366 100644 --- a/chrome/browser/ui/ash/quick_answers/ui/typography.cc +++ b/chrome/browser/ui/ash/quick_answers/ui/typography.cc
@@ -28,17 +28,6 @@ } // namespace -const gfx::FontList& GetCrosAnnotation1FontList() { - static const base::NoDestructor<gfx::FontList> annotation_1_font_list( - gfx::FontList({"Google Sans", "Roboto"}, gfx::Font::NORMAL, 12, - gfx::Font::Weight::NORMAL)); - return *annotation_1_font_list; -} - -int GetCrosAnnotation1LineHeight() { - return 18; -} - const gfx::FontList GetFirstLineFontList(Design design) { switch (design) { case Design::kCurrent: @@ -58,20 +47,21 @@ return kCurrentDesignLineHeight; case Design::kRefresh: case Design::kMagicBoost: - // `ash::TypographyToken::kCrosHeadline1` - return 22; + return ash::TypographyProvider::Get()->ResolveLineHeight( + ash::TypographyToken::kCrosHeadline1); } NOTREACHED() << "Invalid design enum value provided"; } -const gfx::FontList& GetSecondLineFontList(Design design) { +const gfx::FontList GetSecondLineFontList(Design design) { switch (design) { case Design::kCurrent: return GetCurrentDesignFontList(); case Design::kRefresh: case Design::kMagicBoost: - return GetCrosAnnotation1FontList(); + return ash::TypographyProvider::Get()->ResolveTypographyToken( + ash::TypographyToken::kCrosAnnotation1); } NOTREACHED() << "Invalid design enum value provided"; @@ -83,7 +73,8 @@ return kCurrentDesignLineHeight; case Design::kRefresh: case Design::kMagicBoost: - return GetCrosAnnotation1LineHeight(); + return ash::TypographyProvider::Get()->ResolveLineHeight( + ash::TypographyToken::kCrosAnnotation1); } NOTREACHED() << "Invalid design enum value provided";
diff --git a/chrome/browser/ui/ash/quick_answers/ui/typography.h b/chrome/browser/ui/ash/quick_answers/ui/typography.h index 1abc740..c1e9b37 100644 --- a/chrome/browser/ui/ash/quick_answers/ui/typography.h +++ b/chrome/browser/ui/ash/quick_answers/ui/typography.h
@@ -10,14 +10,10 @@ namespace quick_answers { -// TODO(b/340629098): remove this once a dependency from lacros being removed. -const gfx::FontList& GetCrosAnnotation1FontList(); -int GetCrosAnnotation1LineHeight(); - const gfx::FontList GetFirstLineFontList(Design design); int GetFirstLineHeight(Design design); -const gfx::FontList& GetSecondLineFontList(Design design); +const gfx::FontList GetSecondLineFontList(Design design); int GetSecondLineHeight(Design design); } // namespace quick_answers
diff --git a/chrome/browser/ui/aura/accessibility/automation_manager_aura_browsertest.cc b/chrome/browser/ui/aura/accessibility/automation_manager_aura_browsertest.cc index 621a6b0f..b8de02a 100644 --- a/chrome/browser/ui/aura/accessibility/automation_manager_aura_browsertest.cc +++ b/chrome/browser/ui/aura/accessibility/automation_manager_aura_browsertest.cc
@@ -68,7 +68,7 @@ ui::AXTreeID GetAXTreeIDFromRenderFrameHost(content::RenderFrameHost* rfh) { auto* registry = ui::AXActionHandlerRegistry::GetInstance(); return registry->GetAXTreeID(ui::AXActionHandlerRegistry::FrameID( - rfh->GetProcess()->GetID(), rfh->GetRoutingID())); + rfh->GetProcess()->GetDeprecatedID(), rfh->GetRoutingID())); } // A class that installs itself as the sink to handle automation event bundles
diff --git a/chrome/browser/ui/blocked_content/popup_blocker_browsertest.cc b/chrome/browser/ui/blocked_content/popup_blocker_browsertest.cc index c6d1f83..735dc78 100644 --- a/chrome/browser/ui/blocked_content/popup_blocker_browsertest.cc +++ b/chrome/browser/ui/blocked_content/popup_blocker_browsertest.cc
@@ -792,7 +792,7 @@ ->tab_strip_model() ->GetActiveWebContents() ->GetPrimaryMainFrame()); - int process_id = rfh->GetProcess()->GetID(); + int process_id = rfh->GetProcess()->GetDeprecatedID(); int frame_routing_id = rfh->GetRoutingID(); // Navigate to another page on the same domain. This will trigger a check on
diff --git a/chrome/browser/ui/blocked_content/safe_browsing_triggered_popup_blocker_browsertest.cc b/chrome/browser/ui/blocked_content/safe_browsing_triggered_popup_blocker_browsertest.cc index 328b5a49..7020250 100644 --- a/chrome/browser/ui/blocked_content/safe_browsing_triggered_popup_blocker_browsertest.cc +++ b/chrome/browser/ui/blocked_content/safe_browsing_triggered_popup_blocker_browsertest.cc
@@ -665,7 +665,7 @@ ->tab_strip_model() ->GetActiveWebContents() ->GetPrimaryMainFrame(); - int main_frame_process_id = main_frame->GetProcess()->GetID(); + int main_frame_process_id = main_frame->GetProcess()->GetDeprecatedID(); int main_frame_routing_id = main_frame->GetRoutingID(); // Navigate away from the abusive page. This should block bfcache.
diff --git a/chrome/browser/ui/browser.cc b/chrome/browser/ui/browser.cc index a62c82aa..3e3d31fc 100644 --- a/chrome/browser/ui/browser.cc +++ b/chrome/browser/ui/browser.cc
@@ -2422,7 +2422,8 @@ requesting_frame); if (owner_extension && process_map->IsPrivilegedExtensionProcess( - *owner_extension, requesting_frame->GetProcess()->GetID())) { + *owner_extension, + requesting_frame->GetProcess()->GetDeprecatedID())) { return blink::ProtocolHandlerSecurityLevel::kExtensionFeatures; } return blink::ProtocolHandlerSecurityLevel::kStrict; @@ -3543,8 +3544,9 @@ // Ensure that we're trying to open this from the extension's process. extensions::ProcessMap* process_map = extensions::ProcessMap::Get(profile_); if (!source_site_instance->GetProcess() || - !process_map->Contains(extension->id(), - source_site_instance->GetProcess()->GetID())) { + !process_map->Contains( + extension->id(), + source_site_instance->GetProcess()->GetDeprecatedID())) { return false; }
diff --git a/chrome/browser/ui/browser_instant_controller.cc b/chrome/browser/ui/browser_instant_controller.cc index 8df6139..b692e80 100644 --- a/chrome/browser/ui/browser_instant_controller.cc +++ b/chrome/browser/ui/browser_instant_controller.cc
@@ -63,7 +63,7 @@ if (instant_service) { content::RenderProcessHost* rph = contents->GetPrimaryMainFrame()->GetProcess(); - is_ntp = instant_service->IsInstantProcess(rph->GetID()); + is_ntp = instant_service->IsInstantProcess(rph->GetDeprecatedID()); } }
diff --git a/chrome/browser/ui/browser_instant_controller_unittest.cc b/chrome/browser/ui/browser_instant_controller_unittest.cc index 3c4b8c7..89dbb0aa 100644 --- a/chrome/browser/ui/browser_instant_controller_unittest.cc +++ b/chrome/browser/ui/browser_instant_controller_unittest.cc
@@ -115,9 +115,10 @@ browser()->tab_strip_model()->GetActiveWebContents(); // Validate initial instant state. - EXPECT_EQ(test.start_in_instant_process, - instant_service_->IsInstantProcess( - contents->GetPrimaryMainFrame()->GetProcess()->GetID())) + EXPECT_EQ( + test.start_in_instant_process, + instant_service_->IsInstantProcess( + contents->GetPrimaryMainFrame()->GetProcess()->GetDeprecatedID())) << test.description; // Setup an observer to verify reload or absence thereof.
diff --git a/chrome/browser/ui/browser_navigator.cc b/chrome/browser/ui/browser_navigator.cc index d26f6e2..819c4484 100644 --- a/chrome/browser/ui/browser_navigator.cc +++ b/chrome/browser/ui/browser_navigator.cc
@@ -532,7 +532,7 @@ if (params.opener) { create_params.opener_render_frame_id = params.opener->GetRoutingID(); create_params.opener_render_process_id = - params.opener->GetProcess()->GetID(); + params.opener->GetProcess()->GetDeprecatedID(); } create_params.opened_by_another_window = params.opened_by_another_window;
diff --git a/chrome/browser/ui/browser_navigator_browsertest.cc b/chrome/browser/ui/browser_navigator_browsertest.cc index c7ec4e55..82d7d55 100644 --- a/chrome/browser/ui/browser_navigator_browsertest.cc +++ b/chrome/browser/ui/browser_navigator_browsertest.cc
@@ -1152,8 +1152,9 @@ params.contents_to_insert->GetPrimaryMainFrame()->IsRenderFrameLive()); EXPECT_TRUE( params.contents_to_insert->GetController().IsInitialBlankNavigation()); - int renderer_id = - params.contents_to_insert->GetPrimaryMainFrame()->GetProcess()->GetID(); + int renderer_id = params.contents_to_insert->GetPrimaryMainFrame() + ->GetProcess() + ->GetDeprecatedID(); // We should have one window, with one tab of WebContents differ from // params.target_contents. @@ -1172,7 +1173,7 @@ EXPECT_EQ(renderer_id, params.navigated_or_inserted_contents->GetPrimaryMainFrame() ->GetProcess() - ->GetID()); + ->GetDeprecatedID()); // We should have one window, with two tabs. EXPECT_EQ(1u, chrome::GetTotalBrowserCount());
diff --git a/chrome/browser/ui/color/chrome_color_id.h b/chrome/browser/ui/color/chrome_color_id.h index 81f3ab0..8ddd88b8 100644 --- a/chrome/browser/ui/color/chrome_color_id.h +++ b/chrome/browser/ui/color/chrome_color_id.h
@@ -787,6 +787,8 @@ E_CPONLY(kColorTabSearchScrollbarThumb) \ /* Task Manager colors. */ \ E_CPONLY(kColorTaskManagerBackground) \ + E_CPONLY(kColorTaskManagerSearchBarBackground) \ + E_CPONLY(kColorTaskManagerSearchBarTransparent) \ /* Thumbnail tab colors. */ \ E_CPONLY(kColorThumbnailTabBackground) \ E_CPONLY(kColorThumbnailTabForeground) \
diff --git a/chrome/browser/ui/color/chrome_color_mixer.cc b/chrome/browser/ui/color/chrome_color_mixer.cc index c6ce548a..48ab546f 100644 --- a/chrome/browser/ui/color/chrome_color_mixer.cc +++ b/chrome/browser/ui/color/chrome_color_mixer.cc
@@ -648,6 +648,9 @@ #if !BUILDFLAG(IS_ANDROID) if (base::FeatureList::IsEnabled(features::kTaskManagerDesktopRefresh)) { mixer[kColorTaskManagerBackground] = {ui::kColorSysSurface2}; + mixer[kColorTaskManagerSearchBarBackground] = { + ui::kColorSysBaseContainerElevated}; + mixer[kColorTaskManagerSearchBarTransparent] = {SK_ColorTRANSPARENT}; } #endif // BUILDFLAG(IS_ANDROID) mixer[kColorThumbnailTabBackground] =
diff --git a/chrome/browser/ui/color/new_tab_page_color_mixer.cc b/chrome/browser/ui/color/new_tab_page_color_mixer.cc index a282de3a..09438ee 100644 --- a/chrome/browser/ui/color/new_tab_page_color_mixer.cc +++ b/chrome/browser/ui/color/new_tab_page_color_mixer.cc
@@ -152,10 +152,6 @@ // to the GM3 color mixer. When removing a color ID, remove it from the // GM3 mixer if it already exists there. // LINT.IfChange - mixer[kColorNewTabPageActionButtonBackground] = - select_topmost_element_background_color; - mixer[kColorNewTabPageActionButtonForeground] = - select_topmost_element_foreground_color; mixer[kColorNewTabPageBorder] = SelectBasedOnWhiteNtpBackground( gfx::kGoogleGrey300, element_background_color); mixer[kColorNewTabPageChipBackground] = element_background_color; @@ -285,15 +281,7 @@ const bool dark_mode = key.color_mode == ui::ColorProviderKey::ColorMode::kDark; - // Non-native surfaces in GM3 rely on a prominent color that may or may not - // match the accent color. - const SkColor prominent_color = - dark_mode ? gfx::kGoogleBlue300 : gfx::kGoogleBlue600; - ui::ColorMixer& mixer = provider->AddMixer(); - mixer[kColorNewTabPageActionButtonBackground] = {prominent_color}; - mixer[kColorNewTabPageActionButtonForeground] = - ui::GetColorWithMaxContrast(kColorNewTabPageActionButtonBackground); mixer[kColorNewTabPageBackground] = {kColorToolbar}; mixer[kColorNewTabPageHeader] = {SkColorSetRGB(0x96, 0x96, 0x96)}; mixer[kColorNewTabPageLogoUnthemedDark] = {gfx::kGoogleGrey700};
diff --git a/chrome/browser/ui/extensions/hosted_app_browsertest.cc b/chrome/browser/ui/extensions/hosted_app_browsertest.cc index 22c1af5..20b8ef07 100644 --- a/chrome/browser/ui/extensions/hosted_app_browsertest.cc +++ b/chrome/browser/ui/extensions/hosted_app_browsertest.cc
@@ -1032,7 +1032,7 @@ << " for " << url << " from " << rfh->GetLastCommittedURL(); EXPECT_EQ(expect_app_process, - process_map_->Contains(new_rfh->GetProcess()->GetID())) + process_map_->Contains(new_rfh->GetProcess()->GetDeprecatedID())) << " for " << url << " from " << rfh->GetLastCommittedURL(); EXPECT_EQ(expect_app_process, new_rfh->GetSiteInstance()->GetSiteURL().SchemeIs( @@ -1079,7 +1079,7 @@ << " for " << url << " from " << parent_rfh->GetLastCommittedURL(); EXPECT_EQ(expect_app_process, - process_map_->Contains(subframe->GetProcess()->GetID())) + process_map_->Contains(subframe->GetProcess()->GetDeprecatedID())) << " for " << url << " from " << parent_rfh->GetLastCommittedURL(); if (!base::FeatureList::IsEnabled( features::kSiteInstanceGroupsForDataUrls)) { @@ -1216,12 +1216,14 @@ // The isolated origin iframe's process should be in the ProcessMap, since // the isolated origin is covered by the app's extent. - EXPECT_TRUE(process_map_->Contains(isolated->GetProcess()->GetID())); + EXPECT_TRUE( + process_map_->Contains(isolated->GetProcess()->GetDeprecatedID())); // If we swapped processes for the |cross_site| iframe, its process should // not be on the ProcessMap. if (should_swap_for_cross_site_) - EXPECT_FALSE(process_map_->Contains(cross_site->GetProcess()->GetID())); + EXPECT_FALSE( + process_map_->Contains(cross_site->GetProcess()->GetDeprecatedID())); // Verify that |same_dir| and |diff_dir| can script each other. // (they should - they have the same origin). @@ -1528,7 +1530,8 @@ // The resulting page should load in an app process, and the corresponding // SiteInstance's site URL should be a valid, non-empty chrome-extension:// // URL with a valid host that corresponds to the app's ID. - EXPECT_TRUE(process_map_->Contains(main_frame->GetProcess()->GetID())); + EXPECT_TRUE( + process_map_->Contains(main_frame->GetProcess()->GetDeprecatedID())); EXPECT_FALSE(main_frame->GetSiteInstance()->GetSiteURL().is_empty()); EXPECT_TRUE(main_frame->GetSiteInstance()->GetSiteURL().SchemeIs( extensions::kExtensionScheme)); @@ -1600,7 +1603,7 @@ GURL app_site = GetSiteForURL(app_browser_->profile(), app->GetLastCommittedURL()); EXPECT_EQ(extensions::kExtensionScheme, app_site.scheme()); - EXPECT_TRUE(process_map_->Contains(app->GetProcess()->GetID())); + EXPECT_TRUE(process_map_->Contains(app->GetProcess()->GetDeprecatedID())); // Load a page as a fenced frame in the app. GURL fenced_frame_url = @@ -1669,7 +1672,7 @@ GURL app_site = GetSiteForURL(app_browser_->profile(), app->GetLastCommittedURL()); EXPECT_EQ(extensions::kExtensionScheme, app_site.scheme()); - EXPECT_TRUE(process_map_->Contains(app->GetProcess()->GetID())); + EXPECT_TRUE(process_map_->Contains(app->GetProcess()->GetDeprecatedID())); // Add a same-site subframe on isolated.com outside the app's extent. This // should stay in app process. @@ -1704,12 +1707,12 @@ // processes to a non-app process. ASSERT_TRUE(ui_test_utils::NavigateToURL(app_browser_, very_isolated_url)); EXPECT_FALSE(process_map_->Contains( - web_contents->GetPrimaryMainFrame()->GetProcess()->GetID())); + web_contents->GetPrimaryMainFrame()->GetProcess()->GetDeprecatedID())); // Navigating main frame back to the app URL should go into an app process. ASSERT_TRUE(ui_test_utils::NavigateToURL(app_browser_, app_url)); EXPECT_TRUE(process_map_->Contains( - web_contents->GetPrimaryMainFrame()->GetProcess()->GetID())); + web_contents->GetPrimaryMainFrame()->GetProcess()->GetDeprecatedID())); } // Check that when a hosted app's extent contains multiple origins, one of @@ -1745,10 +1748,10 @@ // The app URL should have loaded in an app process. RenderFrameHost* app = web_contents->GetPrimaryMainFrame(); - EXPECT_TRUE(process_map_->Contains(app->GetProcess()->GetID())); + EXPECT_TRUE(process_map_->Contains(app->GetProcess()->GetDeprecatedID())); EXPECT_EQ(extensions::kExtensionScheme, app->GetSiteInstance()->GetSiteURL().scheme()); - int first_app_process_id = app->GetProcess()->GetID(); + int first_app_process_id = app->GetProcess()->GetDeprecatedID(); // Creating a subframe on unisolated.com should not be allowed to share the // main frame's app process, since we don't want the isolated.com isolated @@ -1766,9 +1769,10 @@ ASSERT_TRUE(ui_test_utils::NavigateToURL(app_browser_, unisolated_app_url)); EXPECT_TRUE(process_map_->Contains( - web_contents->GetPrimaryMainFrame()->GetProcess()->GetID())); - EXPECT_NE(first_app_process_id, - web_contents->GetPrimaryMainFrame()->GetProcess()->GetID()); + web_contents->GetPrimaryMainFrame()->GetProcess()->GetDeprecatedID())); + EXPECT_NE( + first_app_process_id, + web_contents->GetPrimaryMainFrame()->GetProcess()->GetDeprecatedID()); } class HostedAppSitePerProcessTest : public HostedAppProcessModelTest { @@ -1888,19 +1892,19 @@ // Ensure each process only has access to its site's data. auto* policy = content::ChildProcessSecurityPolicy::GetInstance(); - EXPECT_TRUE(policy->CanAccessDataForOrigin(foo_process->GetID(), + EXPECT_TRUE(policy->CanAccessDataForOrigin(foo_process->GetDeprecatedID(), url::Origin::Create(foo_app_url))); EXPECT_FALSE(policy->CanAccessDataForOrigin( - foo_process->GetID(), url::Origin::Create(bar_app_url))); + foo_process->GetDeprecatedID(), url::Origin::Create(bar_app_url))); EXPECT_FALSE(policy->CanAccessDataForOrigin( - bar_process->GetID(), url::Origin::Create(foo_app_url))); - EXPECT_TRUE(policy->CanAccessDataForOrigin(bar_process->GetID(), + bar_process->GetDeprecatedID(), url::Origin::Create(foo_app_url))); + EXPECT_TRUE(policy->CanAccessDataForOrigin(bar_process->GetDeprecatedID(), url::Origin::Create(bar_app_url))); // Both processes should still be app processes. auto* process_map = extensions::ProcessMap::Get(browser()->profile()); - EXPECT_TRUE(process_map->Contains(foo_process->GetID())); - EXPECT_TRUE(process_map->Contains(bar_process->GetID())); + EXPECT_TRUE(process_map->Contains(foo_process->GetDeprecatedID())); + EXPECT_TRUE(process_map->Contains(bar_process->GetDeprecatedID())); } #if BUILDFLAG(ENABLE_PDF) @@ -1962,7 +1966,8 @@ // Ensure the app URL loaded in a hosted app process. auto* process_map = extensions::ProcessMap::Get(browser()->profile()); content::RenderFrameHost* app_frame = foo_contents->GetPrimaryMainFrame(); - EXPECT_TRUE(process_map->Contains(app_frame->GetProcess()->GetID())); + EXPECT_TRUE( + process_map->Contains(app_frame->GetProcess()->GetDeprecatedID())); // Add a same-site PDF subframe and wait for it to load. GURL pdf_url = embedded_test_server()->GetURL("foo.com", "/pdf/test.pdf"); @@ -1994,7 +1999,8 @@ // The current behavior is that the PDF process is also considered to be an // app process, since its URL matched the app's extent. This is probably not // necessary and is something to consider changing in future. - EXPECT_TRUE(process_map->Contains(pdf_document_frame->GetProcess()->GetID())); + EXPECT_TRUE(process_map->Contains( + pdf_document_frame->GetProcess()->GetDeprecatedID())); } #endif // BUILDFLAG(ENABLE_PDF) @@ -2156,15 +2162,15 @@ web_contents->GetPrimaryMainFrame()->GetSiteInstance(); auto* foo_process = foo_site_instance->GetProcess(); auto* process_map = extensions::ProcessMap::Get(browser()->profile()); - EXPECT_TRUE(process_map->Contains(foo_process->GetID())); + EXPECT_TRUE(process_map->Contains(foo_process->GetDeprecatedID())); // At this point the main frame process should have access to foo.com data // but not bar.com data. auto* policy = content::ChildProcessSecurityPolicy::GetInstance(); - EXPECT_TRUE(policy->CanAccessDataForOrigin(foo_process->GetID(), + EXPECT_TRUE(policy->CanAccessDataForOrigin(foo_process->GetDeprecatedID(), url::Origin::Create(foo_app_url))); EXPECT_FALSE(policy->CanAccessDataForOrigin( - foo_process->GetID(), url::Origin::Create(bar_app_url))); + foo_process->GetDeprecatedID(), url::Origin::Create(bar_app_url))); // Ensure the current process is allowed to access cookies. EXPECT_TRUE(ExecJs(web_contents, "document.cookie = 'foo=bar';")); @@ -2183,14 +2189,14 @@ web_contents->GetPrimaryMainFrame()->GetSiteInstance(); EXPECT_NE(foo_site_instance, bar_site_instance); auto* bar_process = bar_site_instance->GetProcess(); - EXPECT_TRUE(process_map->Contains(bar_process->GetID())); + EXPECT_TRUE(process_map->Contains(bar_process->GetDeprecatedID())); EXPECT_NE(foo_process, bar_process); // At this point the main frame process should have access to bar.com data. - EXPECT_TRUE(policy->CanAccessDataForOrigin(bar_process->GetID(), + EXPECT_TRUE(policy->CanAccessDataForOrigin(bar_process->GetDeprecatedID(), url::Origin::Create(bar_app_url))); EXPECT_FALSE(policy->CanAccessDataForOrigin( - bar_process->GetID(), url::Origin::Create(foo_app_url))); + bar_process->GetDeprecatedID(), url::Origin::Create(foo_app_url))); // Ensure the current process is allowed to access cookies. EXPECT_TRUE(ExecJs(web_contents, "document.cookie = 'foo=bar';")); @@ -2202,7 +2208,7 @@ EXPECT_EQ(foo_app_url, web_contents->GetLastCommittedURL()); foo_site_instance = web_contents->GetPrimaryMainFrame()->GetSiteInstance(); foo_process = foo_site_instance->GetProcess(); - EXPECT_TRUE(process_map->Contains(foo_process->GetID())); + EXPECT_TRUE(process_map->Contains(foo_process->GetDeprecatedID())); GURL foo_nonapp_url( embedded_test_server()->GetURL("foo.com", "/title1.html")); @@ -2217,12 +2223,13 @@ web_contents->GetPrimaryMainFrame()->GetSiteInstance()); auto* foo_nonapp_process = web_contents->GetPrimaryMainFrame()->GetProcess(); EXPECT_NE(foo_process, foo_nonapp_process); - EXPECT_FALSE(process_map->Contains(foo_nonapp_process->GetID())); + EXPECT_FALSE(process_map->Contains(foo_nonapp_process->GetDeprecatedID())); // Ensure the current non-app foo.com process is allowed to access foo.com // data. - EXPECT_TRUE(policy->CanAccessDataForOrigin( - foo_nonapp_process->GetID(), url::Origin::Create(foo_nonapp_url))); + EXPECT_TRUE( + policy->CanAccessDataForOrigin(foo_nonapp_process->GetDeprecatedID(), + url::Origin::Create(foo_nonapp_url))); EXPECT_TRUE(ExecJs(web_contents, "document.cookie = 'foo=bar';")); EXPECT_EQ("foo=bar", EvalJs(web_contents, "document.cookie")); } @@ -2297,8 +2304,8 @@ // Ensure all tabs are in app processes. auto* process_map = extensions::ProcessMap::Get(browser()->profile()); - EXPECT_TRUE(process_map->Contains(foo_process->GetID())); - EXPECT_TRUE(process_map->Contains(bar_process->GetID())); + EXPECT_TRUE(process_map->Contains(foo_process->GetDeprecatedID())); + EXPECT_TRUE(process_map->Contains(bar_process->GetDeprecatedID())); // Open a background page from the first foo.com window. {
diff --git a/chrome/browser/ui/lens/lens_overlay_controller_browsertest.cc b/chrome/browser/ui/lens/lens_overlay_controller_browsertest.cc index b48f448..1921bad 100644 --- a/chrome/browser/ui/lens/lens_overlay_controller_browsertest.cc +++ b/chrome/browser/ui/lens/lens_overlay_controller_browsertest.cc
@@ -212,15 +212,6 @@ "(function() {history.replaceState({'test':1}, 'test'); " "history.pushState({'test':1}, 'test'); history.back();})();"; -// Returns true if the selection elements have bounds and are ready for input -// events. -constexpr char kOverlayReadyScript[] = - "(function() {const regionLayerBounds " - "=document.querySelector('lens-overlay-app').shadowRoot.querySelector('" - "lens-selection-overlay').shadowRoot.querySelector('region-selection')." - "getBoundingClientRect(); return regionLayerBounds.width > 0 && " - "regionLayerBounds.height > 0;})();"; - constexpr char kTestSuggestSignals[] = "encoded_image_signals"; constexpr char kStartTimeQueryParamKey[] = "qsubts"; @@ -605,24 +596,9 @@ return controller->GetOverlayWebViewForTesting()->GetWebContents(); } - // Waits for the WebUI to have the screenshot loaded and is ready for input - // events. - void WaitForOverlayReady(content::WebContents* overlay_web_contents) { - ASSERT_TRUE(base::test::RunUntil([&]() { - return content::EvalJs(overlay_web_contents->GetPrimaryMainFrame(), - kOverlayReadyScript, - content::EXECUTE_SCRIPT_NO_USER_GESTURE) - .ExtractBool(); - })); - } - void SimulateLeftClickDrag(gfx::Point from, gfx::Point to) { auto* overlay_web_contents = GetOverlayWebContents(); - // We need to wait until the selection overlay has resized and is ready to - // receive input events. - WaitForOverlayReady(overlay_web_contents); - // We should wait for the main frame's hit-test data to be ready before // sending the click event below to avoid flakiness. content::WaitForHitTestData(overlay_web_contents->GetPrimaryMainFrame()); @@ -6063,7 +6039,7 @@ // TODO(crbug.com/360161233): This test is flaky. IN_PROC_BROWSER_TEST_F(LensOverlayControllerContextualFeaturesDisabledTest, - DISABLED_PreselectionToastDisappearsOnSelection) { + PreselectionToastDisappearsOnSelection) { WaitForPaint(); // State should start in off.
diff --git a/chrome/browser/ui/lens/lens_overlay_query_controller.cc b/chrome/browser/ui/lens/lens_overlay_query_controller.cc index f5c20a14..a42291e 100644 --- a/chrome/browser/ui/lens/lens_overlay_query_controller.cc +++ b/chrome/browser/ui/lens/lens_overlay_query_controller.cc
@@ -1657,7 +1657,7 @@ void LensOverlayQueryController::RunSuggestInputsCallback() { suggest_inputs_.set_send_gsession_vsrid_for_contextual_suggest( lens::features::GetLensOverlaySendLensInputsForContextualSuggest()); - suggest_inputs_.set_send_gsession_vsrid_for_lens_suggest( + suggest_inputs_.set_send_gsession_vsrid_vit_for_lens_suggest( lens::features::GetLensOverlaySendLensInputsForLensSuggest()); suggest_inputs_.set_send_vsint_for_lens_suggest( lens::features::
diff --git a/chrome/browser/ui/lens/lens_overlay_query_controller_unittest.cc b/chrome/browser/ui/lens/lens_overlay_query_controller_unittest.cc index 6d2b91ac..655bf44 100644 --- a/chrome/browser/ui/lens/lens_overlay_query_controller_unittest.cc +++ b/chrome/browser/ui/lens/lens_overlay_query_controller_unittest.cc
@@ -605,7 +605,8 @@ ASSERT_FALSE( latest_suggest_inputs_.send_gsession_vsrid_for_contextual_suggest()); - ASSERT_FALSE(latest_suggest_inputs_.send_gsession_vsrid_for_lens_suggest()); + ASSERT_FALSE( + latest_suggest_inputs_.send_gsession_vsrid_vit_for_lens_suggest()); ASSERT_FALSE(latest_suggest_inputs_.send_vsint_for_lens_suggest()); }
diff --git a/chrome/browser/ui/privacy_sandbox/privacy_sandbox_queue_browsertest.cc b/chrome/browser/ui/privacy_sandbox/privacy_sandbox_queue_browsertest.cc index 9b24a07..f45e083 100644 --- a/chrome/browser/ui/privacy_sandbox/privacy_sandbox_queue_browsertest.cc +++ b/chrome/browser/ui/privacy_sandbox/privacy_sandbox_queue_browsertest.cc
@@ -3,6 +3,7 @@ // found in the LICENSE file. #include "base/test/metrics/histogram_tester.h" +#include "base/test/metrics/user_action_tester.h" #include "base/test/scoped_feature_list.h" #include "chrome/browser/browser_process.h" #include "chrome/browser/privacy_sandbox/privacy_sandbox_service.h" @@ -25,11 +26,6 @@ #include "ui/views/widget/widget.h" #include "ui/views/widget/widget_delegate.h" -namespace { - -const char kQueueHistogram[] = "PrivacySandbox.NoticeQueue"; -} // namespace - // This file is meant to test the general code path that causes notices to show. // Specifically triggering of the notice queue. class PrivacySandboxQueueTestHelper : public InProcessBrowserTest { @@ -85,7 +81,7 @@ // Navigate to a invalid then valid webpage. Ensure handle is held throughout. IN_PROC_BROWSER_TEST_F(PrivacySandboxQueueTestNotice, NoPrompt) { // Set flags correctly - base::HistogramTester histogram_tester; + base::UserActionTester user_action_tester; SetUpPrivacySandboxService(); auto* privacy_sandbox_service = PrivacySandboxServiceFactory::GetForProfile(browser()->profile()); @@ -111,17 +107,15 @@ ui_test_utils::BROWSER_TEST_WAIT_FOR_LOAD_STOP)); ASSERT_TRUE(privacy_sandbox_service->IsHoldingHandle()); - histogram_tester.ExpectBucketCount( - kQueueHistogram, - static_cast<int>( - PrivacySandboxService::NoticeQueueState::kQueueOnStartup), - 1); + EXPECT_EQ(user_action_tester.GetActionCount( + "NoticeQueue.PrivacySandboxNotice.QueueOnStartup"), + 1); } // Navigate to a valid webpage (settings page) and click a notice. One window. IN_PROC_BROWSER_TEST_F(PrivacySandboxQueueTestNotice, PromptShows) { // Set flags correctly. - base::HistogramTester histogram_tester; + base::UserActionTester user_action_tester; SetUpPrivacySandboxService(); auto* privacy_sandbox_service = PrivacySandboxServiceFactory::GetForProfile(browser()->profile()); @@ -150,22 +144,18 @@ // After click, should release handle. ASSERT_FALSE(privacy_sandbox_service->IsHoldingHandle()); - histogram_tester.ExpectBucketCount( - kQueueHistogram, - static_cast<int>( - PrivacySandboxService::NoticeQueueState::kQueueOnStartup), - 1); - histogram_tester.ExpectBucketCount( - kQueueHistogram, - static_cast<int>( - PrivacySandboxService::NoticeQueueState::kReleaseOnShown), - 1); + EXPECT_EQ(user_action_tester.GetActionCount( + "NoticeQueue.PrivacySandboxNotice.QueueOnStartup"), + 1); + EXPECT_EQ(user_action_tester.GetActionCount( + "NoticeQueue.PrivacySandboxNotice.ReleaseOnShown"), + 1); } // Navigate to a valid webpage (settings page) and click a notice. Two windows. IN_PROC_BROWSER_TEST_F(PrivacySandboxQueueTestNotice, PromptShowsMultipleWindows) { - base::HistogramTester histogram_tester; + base::UserActionTester user_action_tester; // Set flags correctly. SetUpPrivacySandboxService(); auto* privacy_sandbox_service = @@ -203,21 +193,17 @@ // After click, should release handle. ASSERT_FALSE(privacy_sandbox_service->IsHoldingHandle()); - histogram_tester.ExpectBucketCount( - kQueueHistogram, - static_cast<int>( - PrivacySandboxService::NoticeQueueState::kQueueOnStartup), - 1); - histogram_tester.ExpectBucketCount( - kQueueHistogram, - static_cast<int>( - PrivacySandboxService::NoticeQueueState::kReleaseOnShown), - 1); + EXPECT_EQ(user_action_tester.GetActionCount( + "NoticeQueue.PrivacySandboxNotice.QueueOnStartup"), + 1); + EXPECT_EQ(user_action_tester.GetActionCount( + "NoticeQueue.PrivacySandboxNotice.ReleaseOnShown"), + 1); } // Browser startup assumes we don't need a notice. Then we need a notice. IN_PROC_BROWSER_TEST_F(PrivacySandboxQueueTestNotice, DontNeedThenNeed) { - base::HistogramTester histogram_tester; + base::UserActionTester user_action_tester; // Set flags incorrectly so we don't need a prompt. SetUpPrivacySandboxService(); auto* privacy_sandbox_service = @@ -245,16 +231,14 @@ // After second nav, should have been queued and holding handle. ASSERT_TRUE(privacy_sandbox_service->IsHoldingHandle()); - histogram_tester.ExpectBucketCount( - kQueueHistogram, - static_cast<int>( - PrivacySandboxService::NoticeQueueState::kQueueOnThOrNav), - 1); + EXPECT_EQ(user_action_tester.GetActionCount( + "NoticeQueue.PrivacySandboxNotice.QueueOnThOrNav"), + 1); } // Browser startup assumes we need a notice. Then we realize we don't need it. IN_PROC_BROWSER_TEST_F(PrivacySandboxQueueTestNotice, NeedThenDontNeed) { - base::HistogramTester histogram_tester; + base::UserActionTester user_action_tester; // Set flags correctly. SetUpPrivacySandboxService(); auto* privacy_sandbox_service = @@ -281,16 +265,12 @@ // After second nav do not hold handle. ASSERT_FALSE(privacy_sandbox_service->IsNoticeQueued()); ASSERT_FALSE(privacy_sandbox_service->IsHoldingHandle()); - histogram_tester.ExpectBucketCount( - kQueueHistogram, - static_cast<int>( - PrivacySandboxService::NoticeQueueState::kQueueOnStartup), - 1); - histogram_tester.ExpectBucketCount( - kQueueHistogram, - static_cast<int>( - PrivacySandboxService::NoticeQueueState::kReleaseOnThOrNav), - 1); + EXPECT_EQ(user_action_tester.GetActionCount( + "NoticeQueue.PrivacySandboxNotice.QueueOnStartup"), + 1); + EXPECT_EQ(user_action_tester.GetActionCount( + "NoticeQueue.PrivacySandboxNotice.ReleaseOnThOrNav"), + 1); } class PrivacySandboxQueueTestNoticeWithSearchEngine @@ -313,7 +293,7 @@ // Navigate to a page where the DMA notice should show and ensure suppression. IN_PROC_BROWSER_TEST_F(PrivacySandboxQueueTestNoticeWithSearchEngine, PromptSuppressed) { - base::HistogramTester histogram_tester; + base::UserActionTester user_action_tester; // Set flags correctly. SetUpPrivacySandboxServiceAndDMA(); auto* privacy_sandbox_service = @@ -336,13 +316,10 @@ // After second nav do not queue or hold the handle. Suppress should be true. ASSERT_FALSE(privacy_sandbox_service->IsNoticeQueued()); ASSERT_FALSE(privacy_sandbox_service->IsHoldingHandle()); - histogram_tester.ExpectBucketCount( - kQueueHistogram, - static_cast<int>( - PrivacySandboxService::NoticeQueueState::kQueueOnStartup), - 1); - histogram_tester.ExpectBucketCount( - kQueueHistogram, - static_cast<int>(PrivacySandboxService::NoticeQueueState::kReleaseOnDMA), - 1); + EXPECT_EQ(user_action_tester.GetActionCount( + "NoticeQueue.PrivacySandboxNotice.QueueOnStartup"), + 1); + EXPECT_EQ(user_action_tester.GetActionCount( + "NoticeQueue.PrivacySandboxNotice.ReleaseOnDMA"), + 1); }
diff --git a/chrome/browser/ui/search/search_ipc_router.cc b/chrome/browser/ui/search/search_ipc_router.cc index 388e5a8..e9a94704 100644 --- a/chrome/browser/ui/search/search_ipc_router.cc +++ b/chrome/browser/ui/search/search_ipc_router.cc
@@ -32,7 +32,7 @@ if (!instant_service) return false; - return instant_service->IsInstantProcess(process_host->GetID()); + return instant_service->IsInstantProcess(process_host->GetDeprecatedID()); } } // namespace
diff --git a/chrome/browser/ui/search/search_tab_helper.cc b/chrome/browser/ui/search/search_tab_helper.cc index a19bf15..67b430f5 100644 --- a/chrome/browser/ui/search/search_tab_helper.cc +++ b/chrome/browser/ui/search/search_tab_helper.cc
@@ -89,7 +89,7 @@ return false; return instant_service->IsInstantProcess( - contents->GetPrimaryMainFrame()->GetProcess()->GetID()); + contents->GetPrimaryMainFrame()->GetProcess()->GetDeprecatedID()); } // Called when an NTP finishes loading. If the load start time was noted,
diff --git a/chrome/browser/ui/search/third_party_ntp_browsertest.cc b/chrome/browser/ui/search/third_party_ntp_browsertest.cc index 105a4294..49d9564e 100644 --- a/chrome/browser/ui/search/third_party_ntp_browsertest.cc +++ b/chrome/browser/ui/search/third_party_ntp_browsertest.cc
@@ -58,7 +58,7 @@ InstantService* instant_service = InstantServiceFactory::GetForProfile(browser()->profile()); EXPECT_TRUE(instant_service->IsInstantProcess( - contents->GetPrimaryMainFrame()->GetProcess()->GetID())); + contents->GetPrimaryMainFrame()->GetProcess()->GetDeprecatedID())); // Add a chrome-search://most-visited/title.html?rid=1&fs=0 subframe and // verify that navigation completes successfully, with no kills.
diff --git a/chrome/browser/ui/tabs/organization/tab_declutter_controller.h b/chrome/browser/ui/tabs/organization/tab_declutter_controller.h index ff58e7a..55298a8 100644 --- a/chrome/browser/ui/tabs/organization/tab_declutter_controller.h +++ b/chrome/browser/ui/tabs/organization/tab_declutter_controller.h
@@ -84,7 +84,7 @@ virtual std::vector<tabs::TabInterface*> GetStaleTabs(); - std::map<GURL, std::vector<tabs::TabInterface*>> GetDuplicateTabs(); + virtual std::map<GURL, std::vector<tabs::TabInterface*>> GetDuplicateTabs(); TabStripModel* tab_strip_model() { return tab_strip_model_; }
diff --git a/chrome/browser/ui/tabs/saved_tab_groups/collaboration_messaging_tab_data.cc b/chrome/browser/ui/tabs/saved_tab_groups/collaboration_messaging_tab_data.cc index bbc5d9c..fbd420c3 100644 --- a/chrome/browser/ui/tabs/saved_tab_groups/collaboration_messaging_tab_data.cc +++ b/chrome/browser/ui/tabs/saved_tab_groups/collaboration_messaging_tab_data.cc
@@ -27,10 +27,22 @@ message.collaboration_event == CollaborationEvent::TAB_UPDATED); message_ = message; + NotifyMessageChanged(); } void CollaborationMessagingTabData::ClearMessage(PersistentMessage message) { message_ = std::nullopt; + NotifyMessageChanged(); +} + +base::CallbackListSubscription +CollaborationMessagingTabData::RegisterMessageChangedCallback( + CallbackList::CallbackType cb) { + return message_changed_callback_list_.Add(std::move(cb)); +} + +void CollaborationMessagingTabData::NotifyMessageChanged() { + message_changed_callback_list_.Notify(); } } // namespace tab_groups
diff --git a/chrome/browser/ui/tabs/saved_tab_groups/collaboration_messaging_tab_data.h b/chrome/browser/ui/tabs/saved_tab_groups/collaboration_messaging_tab_data.h index 064e506..3086d8ea 100644 --- a/chrome/browser/ui/tabs/saved_tab_groups/collaboration_messaging_tab_data.h +++ b/chrome/browser/ui/tabs/saved_tab_groups/collaboration_messaging_tab_data.h
@@ -5,10 +5,9 @@ #ifndef CHROME_BROWSER_UI_TABS_SAVED_TAB_GROUPS_COLLABORATION_MESSAGING_TAB_DATA_H_ #define CHROME_BROWSER_UI_TABS_SAVED_TAB_GROUPS_COLLABORATION_MESSAGING_TAB_DATA_H_ +#include "base/callback_list.h" #include "base/strings/utf_string_conversions.h" #include "components/collaboration/public/messaging/message.h" -#include "content/public/browser/web_contents_observer.h" -#include "ui/base/l10n/l10n_util.h" namespace tab_groups { @@ -17,6 +16,8 @@ class CollaborationMessagingTabData { public: + using CallbackList = base::RepeatingCallbackList<void()>; + CollaborationMessagingTabData(); CollaborationMessagingTabData(CollaborationMessagingTabData& other) = delete; CollaborationMessagingTabData& operator=( @@ -30,6 +31,10 @@ void ClearMessage(PersistentMessage message); bool HasMessage() { return message_.has_value(); } + base::CallbackListSubscription RegisterMessageChangedCallback( + CallbackList::CallbackType cb); + void NotifyMessageChanged(); + std::u16string given_name() { CHECK(HasMessage()); @@ -60,6 +65,9 @@ private: std::optional<PersistentMessage> message_ = std::nullopt; + // Listeners to notify when the message for this tab changes. + CallbackList message_changed_callback_list_; + // Must be the last member. base::WeakPtrFactory<CollaborationMessagingTabData> weak_factory_{this}; };
diff --git a/chrome/browser/ui/tabs/saved_tab_groups/collaboration_messaging_tab_data_unittest.cc b/chrome/browser/ui/tabs/saved_tab_groups/collaboration_messaging_tab_data_unittest.cc index 21a0ac4d..8622a149 100644 --- a/chrome/browser/ui/tabs/saved_tab_groups/collaboration_messaging_tab_data_unittest.cc +++ b/chrome/browser/ui/tabs/saved_tab_groups/collaboration_messaging_tab_data_unittest.cc
@@ -4,6 +4,7 @@ #include "chrome/browser/ui/tabs/saved_tab_groups/collaboration_messaging_tab_data.h" +#include "base/test/mock_callback.h" #include "components/collaboration/public/messaging/message.h" #include "components/data_sharing/public/group_data.h" #include "testing/gtest/include/gtest/gtest.h" @@ -74,4 +75,24 @@ EXPECT_FALSE(tab_data().HasMessage()); } +TEST_F(CollaborationMessagingTabDataTest, NotifiesListeners) { + EXPECT_FALSE(tab_data().HasMessage()); + + auto message = CreateMessage("User", "URL", CollaborationEvent::TAB_ADDED); + + base::MockCallback<CollaborationMessagingTabData::CallbackList::CallbackType> + cb; + auto subscription = tab_data().RegisterMessageChangedCallback(cb.Get()); + + // Callback is called when message is set. + EXPECT_CALL(cb, Run); + tab_data().SetMessage(message); + EXPECT_TRUE(tab_data().HasMessage()); + + // Callback is called again when message is cleared. + EXPECT_CALL(cb, Run); + tab_data().ClearMessage(message); + EXPECT_FALSE(tab_data().HasMessage()); +} + } // namespace tab_groups
diff --git a/chrome/browser/ui/tabs/saved_tab_groups/tab_group_sync_service_proxy.cc b/chrome/browser/ui/tabs/saved_tab_groups/tab_group_sync_service_proxy.cc index 052e3319..b70aa11 100644 --- a/chrome/browser/ui/tabs/saved_tab_groups/tab_group_sync_service_proxy.cc +++ b/chrome/browser/ui/tabs/saved_tab_groups/tab_group_sync_service_proxy.cc
@@ -55,7 +55,7 @@ } void TabGroupSyncServiceProxy::RemoveGroup(const base::Uuid& sync_id) { - service_->model()->RemovedLocally(sync_id); + service_->model()->RemovedFromSync(sync_id); } void TabGroupSyncServiceProxy::UpdateVisualData(
diff --git a/chrome/browser/ui/toolbar/app_menu_model.cc b/chrome/browser/ui/toolbar/app_menu_model.cc index a3d073a1..72d9a49 100644 --- a/chrome/browser/ui/toolbar/app_menu_model.cc +++ b/chrome/browser/ui/toolbar/app_menu_model.cc
@@ -887,26 +887,35 @@ // - Developer tools. // - Option to enable profiling. void ToolsMenuModel::Build(Browser* browser) { - if (base::FeatureList::IsEnabled(features::kTabOrganizationAppMenuItem) && - TabOrganizationUtils::GetInstance()->IsEnabled(browser->profile())) { - auto* const tab_organization_service = - TabOrganizationServiceFactory::GetForProfile(browser->profile()); - if (tab_organization_service) { - AddItemWithStringIdAndVectorIcon( - this, IDC_ORGANIZE_TABS, IDS_TAB_ORGANIZE_MENU, kAutoTabGroupsIcon); + // Tablet mode does not have a Tab Search button, so tab organization and + // declutter are unavailable. We should not show tablet mode users these menu + // items. + bool is_tablet_mode = false; +#if BUILDFLAG(IS_CHROMEOS) + is_tablet_mode = display::Screen::GetScreen()->InTabletMode(); +#endif // BUILDFLAG(IS_CHROMEOS) + if (!is_tablet_mode) { + if (base::FeatureList::IsEnabled(features::kTabOrganizationAppMenuItem) && + TabOrganizationUtils::GetInstance()->IsEnabled(browser->profile())) { + auto* const tab_organization_service = + TabOrganizationServiceFactory::GetForProfile(browser->profile()); + if (tab_organization_service) { + AddItemWithStringIdAndVectorIcon( + this, IDC_ORGANIZE_TABS, IDS_TAB_ORGANIZE_MENU, kAutoTabGroupsIcon); + } } - } - if (base::FeatureList::IsEnabled(features::kTabstripDeclutter) && - !browser->profile()->IsIncognitoProfile()) { - AddItemWithStringIdAndVectorIcon(this, IDC_DECLUTTER_TABS, - features::IsTabstripDedupeEnabled() - ? IDS_DECLUTTER_MENU - : IDS_DECLUTTER_MENU_NO_DEDUPE, - kTabCloseInactiveIcon); - SetIsNewFeatureAt( - GetIndexOfCommandId(IDC_DECLUTTER_TABS).value(), - browser->window()->MaybeShowNewBadgeFor(features::kTabstripDeclutter)); + if (base::FeatureList::IsEnabled(features::kTabstripDeclutter) && + !browser->profile()->IsIncognitoProfile()) { + AddItemWithStringIdAndVectorIcon(this, IDC_DECLUTTER_TABS, + features::IsTabstripDedupeEnabled() + ? IDS_DECLUTTER_MENU + : IDS_DECLUTTER_MENU_NO_DEDUPE, + kTabCloseInactiveIcon); + SetIsNewFeatureAt(GetIndexOfCommandId(IDC_DECLUTTER_TABS).value(), + browser->window()->MaybeShowNewBadgeFor( + features::kTabstripDeclutter)); + } } AddItemWithStringIdAndVectorIcon(this, IDC_NAME_WINDOW, IDS_NAME_WINDOW,
diff --git a/chrome/browser/ui/views/bookmarks/bookmark_button.cc b/chrome/browser/ui/views/bookmarks/bookmark_button.cc index 4ae4049..301f66a 100644 --- a/chrome/browser/ui/views/bookmarks/bookmark_button.cc +++ b/chrome/browser/ui/views/bookmarks/bookmark_button.cc
@@ -117,20 +117,32 @@ BookmarkButton::~BookmarkButton() = default; -std::u16string BookmarkButton::GetTooltipText(const gfx::Point& p) const { +void BookmarkButton::AddedToWidget() { + widget_observation_.Observe(GetWidget()); + + UpdateMaxTooltipWidth(); +} + +void BookmarkButton::RemovedFromWidget() { + widget_observation_.Reset(); +} + +void BookmarkButton::OnBoundsChanged(const gfx::Rect& previous_bounds) { + BookmarkButtonBase::OnBoundsChanged(previous_bounds); + UpdateMaxTooltipWidth(); +} + +void BookmarkButton::UpdateTooltipText() { + if (!GetWidget()) { + return; + } + const views::TooltipManager* tooltip_manager = GetWidget()->GetTooltipManager(); - gfx::Point location(p); - ConvertPointToScreen(this, &location); - // Also update when the maximum width for tooltip has changed because the - // it may be elided differently. - int max_tooltip_width = tooltip_manager->GetMaxWidth(location); - if (tooltip_text_.empty() || max_tooltip_width != max_tooltip_width_) { - max_tooltip_width_ = max_tooltip_width; - tooltip_text_ = BookmarkBarView::CreateToolTipForURLAndTitle( - max_tooltip_width_, tooltip_manager->GetFontList(), *url_, GetText()); + if (tooltip_manager) { + SetCachedTooltipText(BookmarkBarView::CreateToolTipForURLAndTitle( + max_tooltip_width_, tooltip_manager->GetFontList(), *url_, GetText())); } - return tooltip_text_; } void BookmarkButton::AdjustAccessibleName(std::u16string& new_name, @@ -147,7 +159,7 @@ void BookmarkButton::SetText(const std::u16string& text) { BookmarkButtonBase::SetText(text); - tooltip_text_.clear(); + UpdateTooltipText(); } void BookmarkButton::OnMouseEntered(const ui::MouseEvent& event) { @@ -215,6 +227,11 @@ return BookmarkButtonBase::OnMouseMoved(event); } +void BookmarkButton::OnWidgetBoundsChanged(views::Widget* widget, + const gfx::Rect& new_bounds) { + UpdateMaxTooltipWidth(); +} + void BookmarkButton::StartPreconnecting(GURL url) { CHECK(base::FeatureList::IsEnabled(features::kBookmarkTriggerForPrerender2)); if (prerender_handle_) { @@ -263,5 +280,21 @@ prerender_handle_ = prerender_manager->StartPrerenderBookmark(url); } +void BookmarkButton::UpdateMaxTooltipWidth() { + if (!GetWidget()) { + return; + } + + const views::TooltipManager* tooltip_manager = + GetWidget()->GetTooltipManager(); + gfx::Point p; + ConvertPointToScreen(this, &p); + int max_tooltip_width = tooltip_manager->GetMaxWidth(p); + if (max_tooltip_width != max_tooltip_width_) { + max_tooltip_width_ = max_tooltip_width; + UpdateTooltipText(); + } +} + BEGIN_METADATA(BookmarkButton) END_METADATA
diff --git a/chrome/browser/ui/views/bookmarks/bookmark_button.h b/chrome/browser/ui/views/bookmarks/bookmark_button.h index 04db45a..953cbe8 100644 --- a/chrome/browser/ui/views/bookmarks/bookmark_button.h +++ b/chrome/browser/ui/views/bookmarks/bookmark_button.h
@@ -13,6 +13,7 @@ #include "ui/views/controls/button/label_button.h" #include "ui/views/controls/button/label_button_border.h" #include "ui/views/view.h" +#include "ui/views/widget/widget_observer.h" class Browser; @@ -39,7 +40,7 @@ }; // Buttons used on the bookmark bar. -class BookmarkButton : public BookmarkButtonBase { +class BookmarkButton : public BookmarkButtonBase, public views::WidgetObserver { METADATA_HEADER(BookmarkButton, BookmarkButtonBase) public: @@ -53,8 +54,12 @@ void OnButtonPressed(const ui::Event& event) { callback_.Run(event); } + void UpdateTooltipText(); + // views::View: - std::u16string GetTooltipText(const gfx::Point& p) const override; + void AddedToWidget() override; + void RemovedFromWidget() override; + void OnBoundsChanged(const gfx::Rect& previous_bounds) override; void AdjustAccessibleName(std::u16string& new_name, ax::mojom::NameFrom& name_from) override; void SetText(const std::u16string& text) override; @@ -63,20 +68,28 @@ bool OnMousePressed(const ui::MouseEvent& event) override; void OnMouseMoved(const ui::MouseEvent& event) override; + // WidgetObserver: + void OnWidgetBoundsChanged(views::Widget* widget, + const gfx::Rect& new_bounds) override; + private: void StartPreconnecting(GURL url); void StartPrerendering(GURL url); + void UpdateMaxTooltipWidth(); + // A cached value of maximum width for tooltip to skip generating // new tooltip text. mutable int max_tooltip_width_ = 0; - mutable std::u16string tooltip_text_; PressedCallback callback_; const raw_ref<const GURL> url_; const raw_ptr<Browser> browser_; base::WeakPtr<content::PrerenderHandle> prerender_handle_; base::RetainingOneShotTimer preloading_timer_; base::WeakPtr<content::WebContents> prerender_web_contents_; + + base::ScopedObservation<views::Widget, views::WidgetObserver> + widget_observation_{this}; }; #endif // CHROME_BROWSER_UI_VIEWS_BOOKMARKS_BOOKMARK_BUTTON_H_
diff --git a/chrome/browser/ui/views/chrome_layout_provider.cc b/chrome/browser/ui/views/chrome_layout_provider.cc index 337a6c9..03454fbf 100644 --- a/chrome/browser/ui/views/chrome_layout_provider.cc +++ b/chrome/browser/ui/views/chrome_layout_provider.cc
@@ -166,6 +166,8 @@ return 12; case DISTANCE_TASK_MANAGER_HEADER_VERTICAL_SPACING: return 4; + case DISTANCE_TASK_MANAGER_SEARCH_ICON_SIZE: + return 20; case DISTANCE_TOAST_BUBBLE_BETWEEN_CHILD_SPACING: case DISTANCE_TOAST_BUBBLE_BROWSER_WINDOW_MARGIN: return 4;
diff --git a/chrome/browser/ui/views/chrome_layout_provider.h b/chrome/browser/ui/views/chrome_layout_provider.h index 6eba6fa3..36cc547 100644 --- a/chrome/browser/ui/views/chrome_layout_provider.h +++ b/chrome/browser/ui/views/chrome_layout_provider.h
@@ -104,6 +104,9 @@ DISTANCE_TASK_MANAGER_HEADER_HORIZONTAL_SPACING, // Vertical spacing between the header components and the header separator. DISTANCE_TASK_MANAGER_HEADER_VERTICAL_SPACING, + // Width and height of the vector icons shown in the search bar of the task + // manager. + DISTANCE_TASK_MANAGER_SEARCH_ICON_SIZE, // Distance between most child elements inside the toast. DISTANCE_TOAST_BUBBLE_BETWEEN_CHILD_SPACING, // Distance between the toast label and action button.
diff --git a/chrome/browser/ui/views/desktop_capture/share_this_tab_dialog_views.cc b/chrome/browser/ui/views/desktop_capture/share_this_tab_dialog_views.cc index 7289c6e..7555991a 100644 --- a/chrome/browser/ui/views/desktop_capture/share_this_tab_dialog_views.cc +++ b/chrome/browser/ui/views/desktop_capture/share_this_tab_dialog_views.cc
@@ -218,7 +218,9 @@ content::DesktopMediaID::TYPE_WEB_CONTENTS, content::DesktopMediaID::kNullId, content::WebContentsMediaCaptureId( - web_contents_->GetPrimaryMainFrame()->GetProcess()->GetID(), + web_contents_->GetPrimaryMainFrame() + ->GetProcess() + ->GetDeprecatedID(), web_contents_->GetPrimaryMainFrame()->GetRoutingID())); desktop_media_id.audio_share = audio_toggle_button_ && audio_toggle_button_->GetIsOn();
diff --git a/chrome/browser/ui/views/extensions/extensions_menu_main_page_view_interactive_uitest.cc b/chrome/browser/ui/views/extensions/extensions_menu_main_page_view_interactive_uitest.cc index aa0993f..ffc4ef0 100644 --- a/chrome/browser/ui/views/extensions/extensions_menu_main_page_view_interactive_uitest.cc +++ b/chrome/browser/ui/views/extensions/extensions_menu_main_page_view_interactive_uitest.cc
@@ -27,10 +27,12 @@ #include "content/public/test/browser_test.h" #include "content/public/test/browser_test_utils.h" #include "content/public/test/test_navigation_observer.h" +#include "extensions/browser/extension_host_registry.h" #include "extensions/common/extension_features.h" #include "extensions/test/permissions_manager_waiter.h" #include "extensions/test/test_extension_dir.h" #include "testing/gmock/include/gmock/gmock.h" +#include "ui/base/interaction/state_observer.h" #include "ui/base/l10n/l10n_util.h" #include "ui/views/animation/ink_drop.h" #include "ui/views/controls/button/toggle_button.h" @@ -43,6 +45,49 @@ using ScriptingPermissionsModifier = extensions::ScriptingPermissionsModifier; using SitePermissionsHelper = extensions::SitePermissionsHelper; +enum class ExtensionHostState { kNone = 0, kLoaded = 1, kDestroyed = 2 }; + +class ExtensionHostObserver : public ui::test::ObservationStateObserver< + ExtensionHostState, + extensions::ExtensionHostRegistry, + extensions::ExtensionHostRegistry::Observer> { + public: + explicit ExtensionHostObserver( + extensions::ExtensionHostRegistry* host_registry, + const extensions::ExtensionId& extension_id) + : ObservationStateObserver(host_registry), extension_id_(extension_id) { + host_state_ = ExtensionHostState::kNone; + } + ~ExtensionHostObserver() override = default; + + protected: + // ExtensionHostRegistry::Observer: + void OnExtensionHostCompletedFirstLoad( + content::BrowserContext* browser_context, + extensions::ExtensionHost* host) override { + if (host->extension_id() != extension_id_) { + return; + } + + host_state_ = ExtensionHostState::kLoaded; + OnStateObserverStateChanged(host_state_); + } + + void OnExtensionHostDestroyed(content::BrowserContext* browser_context, + extensions::ExtensionHost* host) override { + if (host->extension_id() != extension_id_) { + return; + } + + host_state_ = ExtensionHostState::kDestroyed; + OnStateObserverStateChanged(host_state_); + } + + private: + extensions::ExtensionId extension_id_; + ExtensionHostState host_state_; +}; + } // namespace class ExtensionsMenuMainPageViewInteractiveUITest @@ -520,6 +565,15 @@ l10n_util::GetStringUTF16(label_id)); } + // Verifies whether `extension_id` has its action popped out in the extensions + // container. + auto CheckPoppedOutAction( + const std::optional<extensions::ExtensionId>& extension_id) { + return CheckResult( + [&]() { return extensions_container()->GetPoppedOutActionId(); }, + extension_id); + } + // Returns the menu item view for `extension_id` in the menu's main page, if // existent. ExtensionMenuItemView* GetMenuItemViewFor( @@ -655,9 +709,7 @@ CheckResult( [&]() { return extensions_container()->IsExtensionsMenuShowing(); }, false), - CheckResult( - [&]() { return extensions_container()->GetPoppedOutActionId(); }, - std::nullopt)); + CheckPoppedOutAction(std::nullopt)); } // Tests triggering the extension's action while the extensions menu is opened @@ -701,6 +753,53 @@ // fixed. } +// Tests that clicking on the extension menu item for an extension with a popup +// pops out its action on the toolbar and loads the popup, and when the popup +// is dismissed the popup is closed and the action pops in on the toolbar. +IN_PROC_BROWSER_TEST_F(ExtensionsMenuMainPageViewInteractiveTest, + TriggerExtensionPopup) { + DEFINE_LOCAL_ELEMENT_IDENTIFIER_VALUE(kTab); + DEFINE_LOCAL_STATE_IDENTIFIER_VALUE(ExtensionHostObserver, + kExtensionHostState); + + constexpr char kExtensionMenuItemActionButton[] = + "extension_menu_item_action_button"; + const extensions::Extension* extension = + LoadExtension(test_data_dir_.AppendASCII("simple_with_popup")); + + RunTestSequence( + InstrumentTab(kTab), OpenExtensionsMenu(), + + // Trigger the extension's action by clicking on its menu + // entry. + CheckView(kExtensionMenuItemViewElementId, + [extension](ExtensionMenuItemView* menu_item) { + return menu_item->view_controller()->GetId() == + extension->id(); + }), + NameDescendantViewByType<ExtensionsMenuButton>( + kExtensionMenuItemViewElementId, kExtensionMenuItemActionButton), + ObserveState(kExtensionHostState, + extensions::ExtensionHostRegistry::Get(profile()), + extension->id()), + PressButton(kExtensionMenuItemActionButton), + + // Verify extension's action is popped out, and the extension's popup is + // loaded on the toolbar. + WaitForShow(kToolbarActionViewElementId), + CheckPoppedOutAction(extension->id()), + WaitForState(kExtensionHostState, ExtensionHostState::kLoaded), + + // Hide the extension's popup. + Do([this]() { extensions_container()->HideActivePopup(); }), + + // Verify the extension's popup is destroyed, and the extension's action + // is hidden on the toolbar. + WaitForState(kExtensionHostState, ExtensionHostState::kDestroyed), + WaitForHide(kToolbarActionViewElementId), + CheckPoppedOutAction(std::nullopt)); +} + // Tests that removing an extension while it's action is showing a popup removes // the action from the toolbar. IN_PROC_BROWSER_TEST_F(ExtensionsMenuMainPageViewInteractiveTest, @@ -727,18 +826,14 @@ // Verify extension's action is popped out. WaitForShow(kToolbarActionViewElementId).SetTransitionOnlyOnEvent(true), - CheckResult( - [&]() { return extensions_container()->GetPoppedOutActionId(); }, - extension->id()), + CheckPoppedOutAction(extension->id()), // Disable the extension. Do([&]() { DisableExtension(extension->id()); }), // Verify extension's action is not popped out. WaitForHide(kToolbarActionViewElementId).SetTransitionOnlyOnEvent(true), - CheckResult( - [&]() { return extensions_container()->GetPoppedOutActionId(); }, - std::nullopt)); + CheckPoppedOutAction(std::nullopt)); } // Tests that removing multiple extensions while one of the extension's action @@ -772,9 +867,7 @@ // Verify extension A action is popped out. WaitForShow(kToolbarActionViewElementId).SetTransitionOnlyOnEvent(true), - CheckResult( - [&]() { return extensions_container()->GetPoppedOutActionId(); }, - extension_A->id()), + CheckPoppedOutAction(extension_A->id()), // Disable both extensions. Do([&]() { @@ -784,9 +877,7 @@ // Verify extension A action is not popped out. WaitForHide(kToolbarActionViewElementId).SetTransitionOnlyOnEvent(true), - CheckResult( - [&]() { return extensions_container()->GetPoppedOutActionId(); }, - std::nullopt)); + CheckPoppedOutAction(std::nullopt)); } // Test that an extension's context menu shows the correct label when the @@ -826,9 +917,7 @@ // Verify extension is pinned but not stored as the popped out action. WaitForShow(kToolbarActionViewElementId) .SetTransitionOnlyOnEvent(/*transition_only_on_event=*/true), - CheckResult( - [&]() { return extensions_container()->GetPoppedOutActionId(); }, - std::nullopt), + CheckPoppedOutAction(std::nullopt), // Verify the toggle visibility entry is "unpin from toolbar" label when // context menu is opened from the toolbar action or the extensions menu. @@ -875,9 +964,7 @@ // action. WaitForShow(kToolbarActionViewElementId) .SetTransitionOnlyOnEvent(/*transition_only_on_event=*/true), - CheckResult( - [this]() { return extensions_container()->GetPoppedOutActionId(); }, - extension->id()), + CheckPoppedOutAction(extension->id()), // Verify the toggle visibility entry when opened from the toolbar is to // pin the extension, since the extension is not pinned (just popped out).
diff --git a/chrome/browser/ui/views/frame/browser_view.cc b/chrome/browser/ui/views/frame/browser_view.cc index ddecdfd..24227c1e 100644 --- a/chrome/browser/ui/views/frame/browser_view.cc +++ b/chrome/browser/ui/views/frame/browser_view.cc
@@ -1836,6 +1836,7 @@ ChromeWebContentsViewFocusHelper::FromWebContents(new_contents); if (focus_helper && focus_helper->GetStoredFocus() != contents_web_view_) { + GetWidget()->UpdateAccessibleNameForRootView(); GetWidget()->GetRootView()->NotifyAccessibilityEvent( ax::mojom::Event::kFocusContext, true); }
diff --git a/chrome/browser/ui/views/frame/immersive_mode_controller_mac.mm b/chrome/browser/ui/views/frame/immersive_mode_controller_mac.mm index bd815a9..769365fe8 100644 --- a/chrome/browser/ui/views/frame/immersive_mode_controller_mac.mm +++ b/chrome/browser/ui/views/frame/immersive_mode_controller_mac.mm
@@ -42,7 +42,6 @@ // for a window with an NSToolbar. constexpr int kTrafficLightsWidth = 62; constexpr int kTabAlignmentInset = 4; -constexpr base::TimeDelta kTabSlideAnimationDuration = base::Milliseconds(149); class ImmersiveModeFocusSearchMac : public views::FocusSearch { public: @@ -66,12 +65,6 @@ raw_ptr<BrowserView> browser_view_; }; -bool ShouldAnimateTabs() { - return base::FeatureList::IsEnabled(features::kFullscreenAnimateTabs) && - !base::FeatureList::IsEnabled( - remote_cocoa::features::kFullscreenAlwaysShowTrafficLights); -} - } // namespace ImmersiveModeControllerMac::RevealedLock::RevealedLock( @@ -188,15 +181,8 @@ // If the window is maximized OnViewBoundsChanged will not be called // when transitioning to full screen. Call it now. OnViewBoundsChanged(browser_view_->top_container()); - - if (separate_tab_strip_) { - tab_bounds_animator_ = std::make_unique<views::BoundsAnimator>( - browser_view_->tab_overlay_view(), false); - tab_bounds_animator_->SetAnimationDuration(kTabSlideAnimationDuration); - } } else { if (separate_tab_strip_) { - tab_bounds_animator_.reset(); browser_view_->tab_overlay_widget()->Hide(); browser_view_->tab_strip_region_view()->SetBorder(nullptr); browser_view_->top_container()->AddChildViewAt( @@ -238,14 +224,7 @@ } gfx::Insets ImmersiveModeControllerMac::GetTabStripRegionViewInsets() { - // Inset the start of `tab_strip_region_view` by `kTabAlignmentInset` + - // `kTrafficLightsWidth`. This leaves a hole for the traffic lights to appear. - // When tab animation is enabled, only inset by `kTabAlignmentInset`, this - // keeps the tab strip aligned with the toolbar. The tab strip will slide out - // of the way when the traffic lights appear. - int right_left_inset = ShouldAnimateTabs() - ? kTabAlignmentInset - : kTabAlignmentInset + kTrafficLightsWidth; + int right_left_inset = kTabAlignmentInset + kTrafficLightsWidth; // Without this +1 top inset the tabs sit 1px too high. I assume this is // because in fullscreen there is no resize handle. @@ -469,29 +448,10 @@ void ImmersiveModeControllerMac::OnImmersiveModeMenuBarRevealChanged( double reveal_amount) { - bool should_shift_tabs = reveal_amount == 1 || reveal_amount > reveal_amount_; reveal_amount_ = reveal_amount; if (!browser_view_->infobar_container()->IsEmpty()) { browser_view_->InvalidateLayout(); } - - if (!ShouldAnimateTabs() || !tab_bounds_animator_.get()) { - return; - } - - if (should_shift_tabs) { - tab_bounds_animator_->AnimateViewTo( - browser_view_->tab_strip_region_view(), - gfx::Rect(kTrafficLightsWidth, 0, - browser_view_->tab_overlay_view()->size().width() - - kTrafficLightsWidth, - browser_view_->tab_strip_region_view()->height())); - } else { - tab_bounds_animator_->AnimateViewTo( - browser_view_->tab_strip_region_view(), - gfx::Rect(0, 0, browser_view_->tab_overlay_view()->size().width(), - browser_view_->tab_strip_region_view()->height())); - } } void ImmersiveModeControllerMac::OnAutohidingMenuBarHeightChanged(
diff --git a/chrome/browser/ui/views/payments/payment_handler_web_flow_view_controller.cc b/chrome/browser/ui/views/payments/payment_handler_web_flow_view_controller.cc index 2349fb7b..ecf869d3 100644 --- a/chrome/browser/ui/views/payments/payment_handler_web_flow_view_controller.cc +++ b/chrome/browser/ui/views/payments/payment_handler_web_flow_view_controller.cc
@@ -473,7 +473,11 @@ if (first_navigation_complete_callback_) { std::move(first_navigation_complete_callback_) - .Run(true, web_contents()->GetPrimaryMainFrame()->GetProcess()->GetID(), + .Run(true, + web_contents() + ->GetPrimaryMainFrame() + ->GetProcess() + ->GetDeprecatedID(), web_contents()->GetPrimaryMainFrame()->GetRoutingID()); }
diff --git a/chrome/browser/ui/views/sync/inline_login_ui_browsertest.cc b/chrome/browser/ui/views/sync/inline_login_ui_browsertest.cc index 8ef286c..7f302e22 100644 --- a/chrome/browser/ui/views/sync/inline_login_ui_browsertest.cc +++ b/chrome/browser/ui/views/sync/inline_login_ui_browsertest.cc
@@ -113,7 +113,7 @@ browser->tab_strip_model()->GetActiveWebContents(); content::RenderProcessHost* process = contents->GetPrimaryMainFrame()->GetProcess(); - return ContentInfo(contents, process->GetID(), + return ContentInfo(contents, process->GetDeprecatedID(), process->GetStoragePartition()); } @@ -310,7 +310,7 @@ content::WebContents* webview_contents = *set.begin(); content::RenderProcessHost* process = webview_contents->GetPrimaryMainFrame()->GetProcess(); - ASSERT_NE(info.pid, process->GetID()); + ASSERT_NE(info.pid, process->GetDeprecatedID()); ASSERT_NE(info.storage_partition, process->GetStoragePartition()); }
diff --git a/chrome/browser/ui/views/tab_sharing/tab_sharing_ui_views.cc b/chrome/browser/ui/views/tab_sharing/tab_sharing_ui_views.cc index f3ae8be2..6445551f 100644 --- a/chrome/browser/ui/views/tab_sharing/tab_sharing_ui_views.cc +++ b/chrome/browser/ui/views/tab_sharing/tab_sharing_ui_views.cc
@@ -275,11 +275,11 @@ RenderFrameHost* main_frame = shared_tab->GetPrimaryMainFrame(); DCHECK(main_frame); source_callback_.Run( - content::DesktopMediaID( - content::DesktopMediaID::TYPE_WEB_CONTENTS, - content::DesktopMediaID::kNullId, - content::WebContentsMediaCaptureId(main_frame->GetProcess()->GetID(), - main_frame->GetRoutingID())), + content::DesktopMediaID(content::DesktopMediaID::TYPE_WEB_CONTENTS, + content::DesktopMediaID::kNullId, + content::WebContentsMediaCaptureId( + main_frame->GetProcess()->GetDeprecatedID(), + main_frame->GetRoutingID())), captured_surface_control_active_); }
diff --git a/chrome/browser/ui/views/tab_sharing/tab_sharing_ui_views_browsertest.cc b/chrome/browser/ui/views/tab_sharing/tab_sharing_ui_views_browsertest.cc index 4fa5061..9805e2a8 100644 --- a/chrome/browser/ui/views/tab_sharing/tab_sharing_ui_views_browsertest.cc +++ b/chrome/browser/ui/views/tab_sharing/tab_sharing_ui_views_browsertest.cc
@@ -156,8 +156,9 @@ return content::DesktopMediaID( content::DesktopMediaID::TYPE_WEB_CONTENTS, content::DesktopMediaID::kNullId, - content::WebContentsMediaCaptureId(main_frame->GetProcess()->GetID(), - main_frame->GetRoutingID())); + content::WebContentsMediaCaptureId( + main_frame->GetProcess()->GetDeprecatedID(), + main_frame->GetRoutingID())); } views::Widget* GetContentsBorder(Browser* browser) {
diff --git a/chrome/browser/ui/views/task_manager_search_bar_view.cc b/chrome/browser/ui/views/task_manager_search_bar_view.cc new file mode 100644 index 0000000..217962e --- /dev/null +++ b/chrome/browser/ui/views/task_manager_search_bar_view.cc
@@ -0,0 +1,132 @@ +// 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. + +#include "chrome/browser/ui/views/task_manager_search_bar_view.h" + +#include <memory> +#include <string> + +#include "base/functional/bind.h" +#include "base/functional/callback.h" +#include "chrome/browser/ui/color/chrome_color_id.h" +#include "chrome/grit/branded_strings.h" +#include "components/vector_icons/vector_icons.h" +#include "ui/base/l10n/l10n_util.h" +#include "ui/base/metadata/metadata_impl_macros.h" +#include "ui/views/animation/ink_drop.h" +#include "ui/views/controls/button/image_button_factory.h" +#include "ui/views/controls/highlight_path_generator.h" +#include "ui/views/controls/image_view.h" +#include "ui/views/layout/box_layout.h" +#include "ui/views/layout/flex_layout.h" + +namespace task_manager { +TaskManagerSearchBarView::TaskManagerSearchBarView( + const std::u16string& placeholder, + const gfx::Insets& margins) { + auto* layout_provider = ChromeLayoutProvider::Get(); + + auto search_bar_layout = std::make_unique<views::BoxLayout>(); + search_bar_layout->SetOrientation(views::LayoutOrientation::kHorizontal); + search_bar_layout->set_cross_axis_alignment(views::LayoutAlignment::kCenter); + + auto search_icon = + std::make_unique<views::ImageView>(ui::ImageModel::FromVectorIcon( + vector_icons::kSearchChromeRefreshIcon, ui::kColorIcon, + layout_provider->GetDistanceMetric( + DISTANCE_TASK_MANAGER_SEARCH_ICON_SIZE))); + search_icon->SetProperty(views::kMarginsKey, margins); + + auto input = + views::Builder<views::Textfield>() + .SetPlaceholderText(placeholder) + .SetAccessibleName(l10n_util::GetStringUTF16( + IDS_TASK_MANAGER_SEARCH_ACCESSIBILITY_NAME)) + .SetController(this) + .SetBorder(nullptr) + .SetBackgroundColor(kColorTaskManagerSearchBarBackground) + .SetProperty(views::kElementIdentifierKey, kInputField) + // Set margins to remove duplicate space between search + // icon and textfield. + .SetProperty(views::kMarginsKey, gfx::Insets::TLBR(0, 0, 0, 0)) + .Build(); + + auto clear_btn = + views::Builder<views::ImageButton>( + views::CreateVectorImageButtonWithNativeTheme( + base::BindRepeating(&TaskManagerSearchBarView::OnClearPressed, + base::Unretained(this)), + vector_icons::kCloseChromeRefreshIcon)) + // Reset the border set by + // `CreateVectorImageButtonWithNativeTheme()` as it sets + // an unnecessary padding to the highlighting circle. + .SetBorder(nullptr) + .SetAccessibleName(l10n_util::GetStringUTF16( + IDS_TASK_MANAGER_CLEAR_SEARCH_BUTTON_ACCESSIBILITY_NAME)) + .SetProperty(views::kMarginsKey, margins) + .Build(); + + search_bar_layout->SetFlexForView(input.get(), 1); + + SetLayoutManager(std::move(search_bar_layout)); + + AddChildView(std::move(search_icon)); + input_ = AddChildView(std::move(input)); + if (views::InkDrop::Get(input_)) { + views::InkDrop::Get(input_)->SetBaseColorCallback(base::BindRepeating( + [](views::Textfield* host) { + const auto* color_provider = host->GetColorProvider(); + return color_provider && host->HasFocus() + ? color_provider->GetColor( + kColorTaskManagerSearchBarTransparent) + : color_provider->GetColor( + kColorTaskManagerSearchBarBackground); + }, + input_)); + } + clear_ = AddChildView(std::move(clear_btn)); + views::InstallCircleHighlightPathGenerator(clear_); + // Only visible when users type in search keywords. + if (input_->GetText().empty()) { + clear_->SetVisible(false); + } +} + +TaskManagerSearchBarView::~TaskManagerSearchBarView() = default; + +bool TaskManagerSearchBarView::HandleKeyEvent(views::Textfield* sender, + const ui::KeyEvent& key_event) { + if (key_event.type() == ui::EventType::kKeyPressed && + !input_->GetText().empty() && !clear_->GetVisible()) { + clear_->SetVisible(true); + } + return false; +} +void TaskManagerSearchBarView::Focus() { + input_->RequestFocus(); +} +void TaskManagerSearchBarView::OnClearPressed() { + input_->SetText(u""); + clear_->SetVisible(false); +} + +bool TaskManagerSearchBarView::GetClearButtonVisibleStatusForTesting() const { + return clear_->GetVisible(); +} + +void TaskManagerSearchBarView::SetInputTextForTesting( + const std::u16string& text) { + input_->SetText(text); +} + +gfx::Point TaskManagerSearchBarView::GetClearButtonScreenCenterPointForTesting() + const { + return clear_->GetBoundsInScreen().CenterPoint(); +} + +BEGIN_METADATA(TaskManagerSearchBarView) +END_METADATA + +DEFINE_CLASS_ELEMENT_IDENTIFIER_VALUE(TaskManagerSearchBarView, kInputField); +} // namespace task_manager
diff --git a/chrome/browser/ui/views/task_manager_search_bar_view.h b/chrome/browser/ui/views/task_manager_search_bar_view.h new file mode 100644 index 0000000..319a949c --- /dev/null +++ b/chrome/browser/ui/views/task_manager_search_bar_view.h
@@ -0,0 +1,54 @@ +// 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. + +#ifndef CHROME_BROWSER_UI_VIEWS_TASK_MANAGER_SEARCH_BAR_VIEW_H_ +#define CHROME_BROWSER_UI_VIEWS_TASK_MANAGER_SEARCH_BAR_VIEW_H_ + +#include <string> + +#include "base/functional/callback.h" +#include "base/memory/raw_ref.h" +#include "base/timer/timer.h" +#include "chrome/browser/ui/views/chrome_layout_provider.h" +#include "ui/base/interaction/element_identifier.h" +#include "ui/gfx/geometry/point.h" +#include "ui/views/controls/button/image_button.h" +#include "ui/views/controls/textfield/textfield.h" +#include "ui/views/controls/textfield/textfield_controller.h" +#include "ui/views/focus/focus_manager.h" +#include "ui/views/view.h" + +namespace task_manager { +class TaskManagerSearchBarView : public views::View, + public views::TextfieldController { + METADATA_HEADER(TaskManagerSearchBarView, views::View) + + public: + DECLARE_CLASS_ELEMENT_IDENTIFIER_VALUE(kInputField); + + TaskManagerSearchBarView(const std::u16string& placeholder, + const gfx::Insets& margins); + TaskManagerSearchBarView(const TaskManagerSearchBarView&) = delete; + TaskManagerSearchBarView& operator=(const TaskManagerSearchBarView&) = delete; + ~TaskManagerSearchBarView() override; + + // views::TextfieldController: + bool HandleKeyEvent(views::Textfield* sender, + const ui::KeyEvent& key_event) override; + + // Focus on the input field. + void Focus(); + bool GetClearButtonVisibleStatusForTesting() const; + void SetInputTextForTesting(const std::u16string& text); + gfx::Point GetClearButtonScreenCenterPointForTesting() const; + + private: + void OnClearPressed(); + + raw_ptr<views::Textfield> input_ = nullptr; + raw_ptr<views::Button> clear_ = nullptr; +}; +} // namespace task_manager + +#endif // CHROME_BROWSER_UI_VIEWS_TASK_MANAGER_SEARCH_BAR_VIEW_H_
diff --git a/chrome/browser/ui/views/task_manager_search_bar_view_unittest.cc b/chrome/browser/ui/views/task_manager_search_bar_view_unittest.cc new file mode 100644 index 0000000..bb0e716 --- /dev/null +++ b/chrome/browser/ui/views/task_manager_search_bar_view_unittest.cc
@@ -0,0 +1,94 @@ +// 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. + +#include "chrome/browser/ui/views/task_manager_search_bar_view.h" + +#include <memory> + +#include "base/functional/callback_helpers.h" +#include "base/test/mock_callback.h" +#include "base/time/time.h" +#include "chrome/test/views/chrome_views_test_base.h" +#include "testing/gmock/include/gmock/gmock.h" +#include "testing/gtest/include/gtest/gtest.h" +#include "ui/events/test/event_generator.h" +#include "ui/events/types/event_type.h" +#include "ui/views/widget/widget.h" +#include "ui/views/widget/widget_utils.h" + +namespace task_manager { + +using ::testing::Eq; +using ::testing::InSequence; +using ::testing::Mock; +using ::testing::MockFunction; + +class TaskManagerSearchBarViewTest : public ChromeViewsTestBase { + public: + // views::ViewsTestBase: + void SetUp() override { + ChromeViewsTestBase::SetUp(); + widget_ = + CreateTestWidget(views::Widget::InitParams::WIDGET_OWNS_NATIVE_WIDGET); + generator_ = std::make_unique<ui::test::EventGenerator>( + views::GetRootWindow(widget_.get())); + } + + void TearDown() override { + generator_.reset(); + widget_.reset(); + ChromeViewsTestBase::TearDown(); + } + + protected: + views::Widget& widget() { return *widget_; } + ui::test::EventGenerator& generator() { return *generator_; } + + private: + std::unique_ptr<views::Widget> widget_; + std::unique_ptr<ui::test::EventGenerator> generator_; +}; + +TEST_F(TaskManagerSearchBarViewTest, SetsFocusOnTextfield) { + auto* view = + widget().SetContentsView(std::make_unique<TaskManagerSearchBarView>( + u"placeholder", gfx::Insets::TLBR(0, 0, 0, 0))); + widget().Show(); + view->Focus(); + + views::View* focused_field = widget().GetFocusManager()->GetFocusedView(); + ASSERT_NE(focused_field, nullptr); + EXPECT_EQ(focused_field->GetClassMetaData()->type_name(), + std::string("Textfield")); +} + +TEST_F(TaskManagerSearchBarViewTest, KeyPressedFromTextfield) { + auto* view = + widget().SetContentsView(std::make_unique<TaskManagerSearchBarView>( + u"placeholder", gfx::Insets::TLBR(0, 0, 0, 0))); + EXPECT_FALSE(view->GetClearButtonVisibleStatusForTesting()); + widget().Show(); + view->Focus(); + + generator().PressAndReleaseKey(ui::VKEY_A); + generator().PressAndReleaseKey(ui::VKEY_B); + generator().PressAndReleaseKey(ui::VKEY_C); + EXPECT_TRUE(view->GetClearButtonVisibleStatusForTesting()); +} + +TEST_F(TaskManagerSearchBarViewTest, ClearButton) { + auto* view = + widget().SetContentsView(std::make_unique<TaskManagerSearchBarView>( + u"placeholder", gfx::Insets::TLBR(0, 0, 0, 0))); + widget().Show(); + view->Focus(); + + view->SetInputTextForTesting(u"abc"); + + generator().MoveMouseTo(view->GetClearButtonScreenCenterPointForTesting()); + generator().ClickLeftButton(); + EXPECT_FALSE(view->GetClearButtonVisibleStatusForTesting()); +} + +} // namespace task_manager
diff --git a/chrome/browser/ui/views/task_manager_view.cc b/chrome/browser/ui/views/task_manager_view.cc index 2b1fe8b..0b98ad9 100644 --- a/chrome/browser/ui/views/task_manager_view.cc +++ b/chrome/browser/ui/views/task_manager_view.cc
@@ -39,6 +39,7 @@ #include "ui/base/mojom/menu_source_type.mojom-forward.h" #include "ui/compositor/layer.h" #include "ui/compositor/layer_type.h" +#include "ui/views/background.h" #include "ui/views/border.h" #include "ui/views/controls/label.h" #include "ui/views/controls/scroll_view.h" @@ -97,7 +98,7 @@ TaskManagerView::~TaskManagerView() { // Delete child views now, while our table model still exists. - end_process_btn_ = nullptr; // Destroyed by `container` below. + end_process_btn_ = nullptr; // Destroyed by `right_aligned_container` below. RemoveAllChildViews(); // When the view is destroyed, the lifecycle of the Task Manager is complete. @@ -433,25 +434,44 @@ // Empty Container, Search Bar, End Task Button, and Separator auto empty_view = std::make_unique<views::View>(); - std::unique_ptr<views::Textfield> search_bar = CreateSearchBar( - gfx::Insets::TLBR(0, 0, vertical_spacing, horizontal_spacing)); - std::unique_ptr<views::MdTextButton> end_process_btn = CreateEndProcessButton( - gfx::Insets::TLBR(0, horizontal_spacing, vertical_spacing, 0)); - std::unique_ptr<views::Separator> separator = - CreateSeparator(gfx::Insets::TLBR(0, 0, separator_spacing, 0)); + empty_view->SetProperty(views::kMarginsKey, + gfx::Insets::VH(0, horizontal_spacing)); + auto search_bar_container = CreateSearchBar(provider); + + auto end_process_btn = CreateEndProcessButton( + gfx::Insets::TLBR(0, horizontal_spacing, vertical_spacing, 0)); + + auto separator = + CreateSeparator(gfx::Insets::TLBR(0, 0, separator_spacing, 0)); // Allow empty spacing and the search bar to flex freely. header_layout->SetFlexForView(empty_view.get(), 2); - header_layout->SetFlexForView(search_bar.get(), 3); + header_layout->SetFlexForView(search_bar_container.get(), 3); // Set the layout manager for the parent container to BoxLayout. container->SetLayoutManager(std::move(header_layout)); + auto right_aligned_container = std::make_unique<views::View>(); + right_aligned_container->SetProperty(views::kMarginsKey, + gfx::Insets::VH(0, horizontal_spacing)); + // The container holds search bar and end process button, so their layout + // could keep consistent during resizing. + auto right_aligned_container_layout = std::make_unique<views::BoxLayout>(); + right_aligned_container_layout->SetOrientation( + views::LayoutOrientation::kHorizontal); + right_aligned_container_layout->set_cross_axis_alignment( + views::LayoutAlignment::kCenter); + right_aligned_container->SetLayoutManager( + std::move(right_aligned_container_layout)); + + right_aligned_container->AddChildView(std::move(search_bar_container)); + end_process_btn_ = + right_aligned_container->AddChildView(std::move(end_process_btn)); + // Compose all parts into header. container->AddChildView(std::move(tabs)); container->AddChildView(std::move(empty_view)); - container->AddChildView(std::move(search_bar)); - end_process_btn_ = container->AddChildView(std::move(end_process_btn)); + container->AddChildView(std::move(right_aligned_container)); // Attach header to the top of the dialog contents. AddChildView(std::move(container)); @@ -460,15 +480,34 @@ AddChildView(std::move(separator)); } -std::unique_ptr<views::Textfield> TaskManagerView::CreateSearchBar( - const gfx::Insets& margins) { - auto search_bar = std::make_unique<views::Textfield>(); - search_bar->SetAccessibleName( - l10n_util::GetStringUTF16(IDS_TASK_MANAGER_SEARCH_ACCESSIBILITY_NAME)); - search_bar->SetPlaceholderText( - l10n_util::GetStringUTF16(IDS_TASK_MANAGER_SEARCH_PLACEHOLDER)); - search_bar->SetProperty(views::kMarginsKey, margins); - return search_bar; +std::unique_ptr<views::View> TaskManagerView::CreateSearchBar( + const ChromeLayoutProvider* provider) { + const int vertical_spacing = provider->GetDistanceMetric( + DISTANCE_TASK_MANAGER_HEADER_VERTICAL_SPACING); + const int horizontal_spacing = provider->GetDistanceMetric( + DISTANCE_TASK_MANAGER_HEADER_HORIZONTAL_SPACING); + const int search_bar_container_radius = provider->GetCornerRadiusMetric( + views::ShapeContextTokens::kOmniboxExpandedRadius); + + auto search_bar_layout = std::make_unique<views::BoxLayout>(); + search_bar_layout->SetOrientation(views::LayoutOrientation::kHorizontal); + search_bar_layout->set_main_axis_alignment(views::LayoutAlignment::kEnd); + search_bar_layout->set_cross_axis_alignment(views::LayoutAlignment::kEnd); + + auto search_bar_container = std::make_unique<views::View>(); + search_bar_container->SetBackground(views::CreateThemedRoundedRectBackground( + kColorTaskManagerSearchBarBackground, search_bar_container_radius)); + search_bar_container->SetLayoutManager(std::move(search_bar_layout)); + search_bar_container->SetProperty( + views::kMarginsKey, + gfx::Insets::TLBR(0, 0, vertical_spacing, horizontal_spacing)); + + auto search_bar = std::make_unique<TaskManagerSearchBarView>( + l10n_util::GetStringUTF16(IDS_TASK_MANAGER_SEARCH_PLACEHOLDER), + gfx::Insets::VH(0, horizontal_spacing)); + search_bar_container->AddChildView(std::move(search_bar)); + + return search_bar_container; } std::unique_ptr<views::MdTextButton> TaskManagerView::CreateEndProcessButton(
diff --git a/chrome/browser/ui/views/task_manager_view.h b/chrome/browser/ui/views/task_manager_view.h index 7df6d30..953ffc8 100644 --- a/chrome/browser/ui/views/task_manager_view.h +++ b/chrome/browser/ui/views/task_manager_view.h
@@ -11,6 +11,7 @@ #include "chrome/browser/task_manager/task_manager_metrics_recorder.h" #include "chrome/browser/ui/task_manager/task_manager_table_model.h" #include "chrome/browser/ui/views/chrome_layout_provider.h" +#include "chrome/browser/ui/views/task_manager_search_bar_view.h" #include "ui/base/metadata/metadata_header_macros.h" #include "ui/base/models/table_model.h" #include "ui/base/mojom/dialog_button.mojom.h" @@ -141,7 +142,8 @@ // Creates all corresponding subcomponents for the header. std::unique_ptr<views::View> CreateTabbedPane(); - std::unique_ptr<views::Textfield> CreateSearchBar(const gfx::Insets& margins); + std::unique_ptr<views::View> CreateSearchBar( + const ChromeLayoutProvider* provider); std::unique_ptr<views::MdTextButton> CreateEndProcessButton( const gfx::Insets& margins); std::unique_ptr<views::Separator> CreateSeparator(const gfx::Insets& margins);
diff --git a/chrome/browser/ui/web_applications/web_app_launch_utils.cc b/chrome/browser/ui/web_applications/web_app_launch_utils.cc index f48ff3c..418d2d3f 100644 --- a/chrome/browser/ui/web_applications/web_app_launch_utils.cc +++ b/chrome/browser/ui/web_applications/web_app_launch_utils.cc
@@ -1465,7 +1465,7 @@ AppNavigationResult MaybeHandleAppNavigation(const NavigateParams& params) { Profile* profile = params.initiating_profile; - if (!AreWebAppsEnabled(profile) || + if (!AreWebAppsUserInstallable(profile) || Browser::GetCreationStatusForProfile(profile) != Browser::CreationStatus::kOk || !params.url.is_valid()) { @@ -1897,7 +1897,7 @@ // capturing wasn't enabled for the navigation. return; } - CHECK(AreWebAppsEnabled(params.initiating_profile)); + CHECK(AreWebAppsUserInstallable(params.initiating_profile)); CHECK(!(params.force_open_pwa_window && params.open_pwa_window_if_possible)); std::optional<webapps::AppId> first_navigation_app_id =
diff --git a/chrome/browser/ui/webui/accessibility/accessibility_ui.cc b/chrome/browser/ui/webui/accessibility/accessibility_ui.cc index d0fe204..440b5ad4 100644 --- a/chrome/browser/ui/webui/accessibility/accessibility_ui.cc +++ b/chrome/browser/ui/webui/accessibility/accessibility_ui.cc
@@ -165,8 +165,8 @@ } return BuildTargetDescriptor(url, title, favicon_url, - rvh->GetProcess()->GetID(), rvh->GetRoutingID(), - accessibility_mode); + rvh->GetProcess()->GetDeprecatedID(), + rvh->GetRoutingID(), accessibility_mode); } #if !BUILDFLAG(IS_ANDROID)
diff --git a/chrome/browser/ui/webui/ash/network_ui/onc_import_message_handler.cc b/chrome/browser/ui/webui/ash/network_ui/onc_import_message_handler.cc index 25b217b..d42fc88 100644 --- a/chrome/browser/ui/webui/ash/network_ui/onc_import_message_handler.cc +++ b/chrome/browser/ui/webui/ash/network_ui/onc_import_message_handler.cc
@@ -222,11 +222,8 @@ for (const auto& cert : certs->server_or_authority_certificates()) { scoped_refptr<net::X509Certificate> cert_to_import = cert.certificate(); - net::ServerCertificateDatabase::CertInformation cert_info; - cert_info.sha256hash_hex = base::ToLowerASCII( - base::HexEncode(net::X509Certificate::CalculateFingerprint256( - cert_to_import->cert_buffer()) - .data)); + net::ServerCertificateDatabase::CertInformation cert_info( + cert_to_import->cert_span()); bool found = false; for (const auto& current_cert : current_certs) { @@ -244,7 +241,6 @@ CERTIFICATE_TRUST_TYPE_TRUSTED : chrome_browser_server_certificate_database::CertificateTrust:: CERTIFICATE_TRUST_TYPE_UNSPECIFIED); - cert_info.der_cert = base::ToVector(cert_to_import->cert_span()); cert_infos.push_back(std::move(cert_info)); }
diff --git a/chrome/browser/ui/webui/ash/settings/pages/a11y/accessibility_section.cc b/chrome/browser/ui/webui/ash/settings/pages/a11y/accessibility_section.cc index 2dbd51b3..00758fa 100644 --- a/chrome/browser/ui/webui/ash/settings/pages/a11y/accessibility_section.cc +++ b/chrome/browser/ui/webui/ash/settings/pages/a11y/accessibility_section.cc
@@ -678,9 +678,6 @@ void AccessibilitySection::AddLoadTimeData( content::WebUIDataSource* html_source) { - const bool kIsRevampEnabled = - ash::features::IsOsSettingsRevampWayfindingEnabled(); - webui::LocalizedString kLocalizedStrings[] = { {"a11yExplanation", IDS_SETTINGS_ACCESSIBILITY_EXPLANATION}, {"a11yPageTitle", IDS_SETTINGS_ACCESSIBILITY}, @@ -1470,11 +1467,8 @@ IDS_SETTINGS_A11Y_TABLET_MODE_SHELF_BUTTONS_DESCRIPTION}, {"tabletModeShelfNavigationButtonsSettingLabel", IDS_SETTINGS_A11Y_TABLET_MODE_SHELF_BUTTONS_LABEL}, - {"tapDraggingLabel", kIsRevampEnabled - ? IDS_OS_SETTINGS_REVAMP_TAP_DRAGGING_LABEL - : IDS_SETTINGS_TAP_DRAGGING_LABEL}, - {"tapDraggingDescription", - IDS_OS_SETTINGS_REVAMP_TAP_DRAGGING_DESCRIPTION}, + {"tapDraggingLabel", IDS_OS_SETTINGS_TAP_DRAGGING_LABEL}, + {"tapDraggingDescription", IDS_OS_SETTINGS_TAP_DRAGGING_DESCRIPTION}, {"textToSpeechEngines", IDS_SETTINGS_TEXT_TO_SPEECH_ENGINES}, {"textToSpeechHeading", IDS_SETTINGS_ACCESSIBILITY_TEXT_TO_SPEECH_HEADING},
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 77b12ecb..d99fdfab 100644 --- a/chrome/browser/ui/webui/certificate_manager/user_cert_sources.cc +++ b/chrome/browser/ui/webui/certificate_manager/user_cert_sources.cc
@@ -350,13 +350,9 @@ net::ServerCertificateDatabaseServiceFactory::GetForBrowserContext( profile_); - net::ServerCertificateDatabase::CertInformation cert_info; - cert_info.sha256hash_hex = base::ToLowerASCII( - base::HexEncode(net::X509Certificate::CalculateFingerprint256( - cert_to_import->cert_buffer()) - .data)); + net::ServerCertificateDatabase::CertInformation cert_info( + cert_to_import->cert_span()); cert_info.cert_metadata.mutable_trust()->set_trust_type(trust_); - cert_info.der_cert = base::ToVector(cert_to_import->cert_span()); std::vector<net::ServerCertificateDatabase::CertInformation> cert_infos; cert_infos.push_back(std::move(cert_info));
diff --git a/chrome/browser/ui/webui/certificate_manager/user_cert_sources_unittest.cc b/chrome/browser/ui/webui/certificate_manager/user_cert_sources_unittest.cc index 930b682..46156fb 100644 --- a/chrome/browser/ui/webui/certificate_manager/user_cert_sources_unittest.cc +++ b/chrome/browser/ui/webui/certificate_manager/user_cert_sources_unittest.cc
@@ -73,11 +73,8 @@ net::ServerCertificateDatabaseService* server_cert_service = net::ServerCertificateDatabaseServiceFactory::GetForBrowserContext( profile()); - net::ServerCertificateDatabase::CertInformation cert_info; - cert_info.sha256hash_hex = base::ToLowerASCII(base::HexEncode( - net::X509Certificate::CalculateFingerprint256(cert->cert_buffer()) - .data)); - cert_info.der_cert = base::ToVector(cert->cert_span()); + net::ServerCertificateDatabase::CertInformation cert_info( + cert->cert_span()); cert_info.cert_metadata.mutable_trust()->set_trust_type( chrome_browser_server_certificate_database:: CertificateTrust_CertificateTrustType_CERTIFICATE_TRUST_TYPE_TRUSTED);
diff --git a/chrome/browser/ui/webui/cr_components/history_embeddings/history_embeddings_handler.cc b/chrome/browser/ui/webui/cr_components/history_embeddings/history_embeddings_handler.cc index 6197441..ad8d2d8d 100644 --- a/chrome/browser/ui/webui/cr_components/history_embeddings/history_embeddings_handler.cc +++ b/chrome/browser/ui/webui/cr_components/history_embeddings/history_embeddings_handler.cc
@@ -100,6 +100,7 @@ last_result_ = service->Search( &last_result_, query->query, query->time_range_start, history_embeddings::GetFeatureParameters().search_result_item_count, + /*skip_answering=*/false, base::BindRepeating(&HistoryEmbeddingsHandler::OnReceivedSearchResult, weak_ptr_factory_.GetWeakPtr())); VLOG(3) << "HistoryEmbeddingsHandler::Search started for '"
diff --git a/chrome/browser/ui/webui/downloads/downloads_dom_handler.cc b/chrome/browser/ui/webui/downloads/downloads_dom_handler.cc index 4d65650..43ab966 100644 --- a/chrome/browser/ui/webui/downloads/downloads_dom_handler.cc +++ b/chrome/browser/ui/webui/downloads/downloads_dom_handler.cc
@@ -574,7 +574,7 @@ // chrome://downloads/ page. Thus we get the NIK from |file|, not from // |render_frame_host|. auto dl_params = std::make_unique<download::DownloadUrlParameters>( - url, render_frame_host->GetProcess()->GetID(), + url, render_frame_host->GetProcess()->GetDeprecatedID(), render_frame_host->GetRoutingID(), traffic_annotation); dl_params->set_content_initiated(true); dl_params->set_initiator(url::Origin::Create(GURL("chrome://downloads")));
diff --git a/chrome/browser/ui/webui/log_web_ui_url.cc b/chrome/browser/ui/webui/log_web_ui_url.cc index 0f14092..9f77c59 100644 --- a/chrome/browser/ui/webui/log_web_ui_url.cc +++ b/chrome/browser/ui/webui/log_web_ui_url.cc
@@ -11,41 +11,22 @@ #include "content/public/common/url_constants.h" #include "url/gurl.h" -namespace { - -bool ShouldLogUrl(const GURL& web_ui_url) { - return web_ui_url.SchemeIs(content::kChromeUIScheme) || - web_ui_url.SchemeIs(content::kChromeUIUntrustedScheme) || - web_ui_url.SchemeIs(content::kChromeDevToolsScheme); -} - -} // namespace - namespace webui { const char kWebUICreatedForUrl[] = "WebUI.CreatedForUrl"; -const char kWebUIShownUrl[] = "WebUI.ShownUrl"; -bool LogWebUICreated(const GURL& web_ui_url) { - if (!ShouldLogUrl(web_ui_url)) { - return false; +bool LogWebUIUrl(const GURL& web_ui_url) { + bool should_log = web_ui_url.SchemeIs(content::kChromeUIScheme) || + web_ui_url.SchemeIs(content::kChromeUIUntrustedScheme) || + web_ui_url.SchemeIs(content::kChromeDevToolsScheme); + + if (should_log) { + uint32_t hash = base::Hash(web_ui_url.DeprecatedGetOriginAsURL().spec()); + base::UmaHistogramSparse(kWebUICreatedForUrl, + static_cast<base::HistogramBase::Sample>(hash)); } - uint32_t hash = base::Hash(web_ui_url.DeprecatedGetOriginAsURL().spec()); - base::UmaHistogramSparse(kWebUICreatedForUrl, - static_cast<base::HistogramBase::Sample>(hash)); - return true; -} - -bool LogWebUIShown(const GURL& web_ui_url) { - if (!ShouldLogUrl(web_ui_url)) { - return false; - } - - uint32_t hash = base::Hash(web_ui_url.DeprecatedGetOriginAsURL().spec()); - base::UmaHistogramSparse(kWebUIShownUrl, - static_cast<base::HistogramBase::Sample>(hash)); - return true; + return should_log; } } // namespace webui
diff --git a/chrome/browser/ui/webui/log_web_ui_url.h b/chrome/browser/ui/webui/log_web_ui_url.h index 053bfdf..468b8c41 100644 --- a/chrome/browser/ui/webui/log_web_ui_url.h +++ b/chrome/browser/ui/webui/log_web_ui_url.h
@@ -9,23 +9,13 @@ namespace webui { -// Name of histogram that WebUI URLs are logged to when the WebUI object is -// created. +// Name of histogram that WebUI URLs are logged to. extern const char kWebUICreatedForUrl[]; -// Name of histogram that WebUI URLs are logged to when the WebUI is shown. -extern const char kWebUIShownUrl[]; - -// Called when WebUI objects are created. Only internal (e.g. chrome://) URLs -// are logged. Note that a WebUI can be created but never shown, which will -// also be logged by this function. Returns whether the URL was actually logged. -// This is used to collect WebUI usage data. -bool LogWebUICreated(const GURL& web_ui_url); - -// Called when a WebUI completes the first non-empty paint. Only internal -// (e.g. chrome://) URLs are logged. Returns whether the URL was actually -// logged. This is used to collect WebUI usage data. -bool LogWebUIShown(const GURL& web_ui_url); +// Called when WebUI objects are created to get aggregate usage data (i.e. is +// chrome://history used more than chrome://help?). Only internal (e.g. +// chrome://) URLs are logged. Returns whether the URL was actually logged. +bool LogWebUIUrl(const GURL& web_ui_url); } // namespace webui
diff --git a/chrome/browser/ui/webui/log_web_ui_url_browsertest.cc b/chrome/browser/ui/webui/log_web_ui_url_browsertest.cc index 6e8bf8e..98d8373d 100644 --- a/chrome/browser/ui/webui/log_web_ui_url_browsertest.cc +++ b/chrome/browser/ui/webui/log_web_ui_url_browsertest.cc
@@ -9,11 +9,9 @@ #include <vector> #include "base/hash/hash.h" -#include "base/run_loop.h" #include "base/strings/strcat.h" #include "base/strings/utf_string_conversions.h" #include "base/test/metrics/histogram_tester.h" -#include "chrome/browser/profiles/profile.h" #include "chrome/browser/ui/browser.h" #include "chrome/browser/ui/browser_commands.h" #include "chrome/browser/ui/tabs/tab_strip_model.h" @@ -22,7 +20,6 @@ #include "chrome/test/base/in_process_browser_test.h" #include "chrome/test/base/ui_test_utils.h" #include "components/strings/grit/components_strings.h" -#include "content/public/browser/web_contents_observer.h" #include "content/public/common/url_constants.h" #include "content/public/test/browser_test.h" #include "content/public/test/browser_test_utils.h" @@ -34,29 +31,6 @@ using base::Bucket; using testing::ElementsAre; -namespace { - -class WebContentsNonEmptyPaintWaiter : public content::WebContentsObserver { - public: - explicit WebContentsNonEmptyPaintWaiter(content::WebContents* web_contents) - : WebContentsObserver(web_contents) {} - - void Wait() { - if (web_contents()->CompletedFirstVisuallyNonEmptyPaint()) { - return; - } - run_loop_.Run(); - } - - private: - // WebContentsObserver: - void DidFirstVisuallyNonEmptyPaint() override { run_loop_.Quit(); } - - base::RunLoop run_loop_; -}; - -} // namespace - namespace webui { class LogWebUIUrlTest : public InProcessBrowserTest { @@ -68,8 +42,6 @@ ~LogWebUIUrlTest() override = default; - base::HistogramTester& histogram_tester() { return histogram_tester_; } - void RunTest(std::u16string title, const GURL& url) { EXPECT_THAT(histogram_tester_.GetAllSamples(webui::kWebUICreatedForUrl), ::testing::IsEmpty()); @@ -117,36 +89,4 @@ } #endif -// Tests that WebUI.ShownURL is logged after showing a WebUI. -IN_PROC_BROWSER_TEST_F(LogWebUIUrlTest, ShownWebUI) { - const GURL url(chrome::kChromeUIHistoryURL); - EXPECT_THAT(histogram_tester().GetAllSamples(webui::kWebUICreatedForUrl), - ::testing::IsEmpty()); - EXPECT_THAT(histogram_tester().GetAllSamples(webui::kWebUIShownUrl), - ::testing::IsEmpty()); - - std::unique_ptr<content::WebContents> web_contents = - content::WebContents::Create( - content::WebContents::CreateParams(browser()->profile())); - - ASSERT_TRUE(content::NavigateToURL(web_contents.get(), url)); - ASSERT_TRUE( - content::WaitForRenderFrameReady(web_contents->GetPrimaryMainFrame())); - - uint32_t origin_hash = base::Hash(url.DeprecatedGetOriginAsURL().spec()); - EXPECT_THAT(histogram_tester().GetAllSamples(webui::kWebUICreatedForUrl), - ElementsAre(Bucket(origin_hash, 1))); - // The content is not visible before attaching it to the browser. - EXPECT_THAT( - histogram_tester().GetBucketCount(webui::kWebUIShownUrl, origin_hash), 0); - - content::WebContents* web_contents_ptr = web_contents.get(); - browser()->tab_strip_model()->InsertWebContentsAt(0, std::move(web_contents), - AddTabTypes::ADD_ACTIVE); - - WebContentsNonEmptyPaintWaiter(web_contents_ptr).Wait(); - EXPECT_THAT(histogram_tester().GetAllSamples(webui::kWebUIShownUrl), - ElementsAre(Bucket(origin_hash, 1))); -} - } // namespace webui
diff --git a/chrome/browser/ui/webui/log_web_ui_url_unittest.cc b/chrome/browser/ui/webui/log_web_ui_url_unittest.cc index 7223798..0d5d4723 100644 --- a/chrome/browser/ui/webui/log_web_ui_url_unittest.cc +++ b/chrome/browser/ui/webui/log_web_ui_url_unittest.cc
@@ -11,31 +11,31 @@ TEST(LogWebUIUrlTest, ValidUrls) { // chrome:// WebUI page. - EXPECT_TRUE(webui::LogWebUICreated(GURL(chrome::kChromeUIDownloadsURL))); + EXPECT_TRUE(webui::LogWebUIUrl(GURL(chrome::kChromeUIDownloadsURL))); #if !BUILDFLAG(IS_ANDROID) // chrome-untrusted:// WebUI page. - EXPECT_TRUE(webui::LogWebUICreated(GURL(chrome::kChromeUIUntrustedPrintURL))); + EXPECT_TRUE(webui::LogWebUIUrl(GURL(chrome::kChromeUIUntrustedPrintURL))); #endif // WebUI page with a subpage. GURL::Replacements replace_clear_data_path; replace_clear_data_path.SetPathStr(chrome::kClearBrowserDataSubPage); EXPECT_TRUE( - webui::LogWebUICreated(GURL(chrome::kChromeUISettingsURL) - .ReplaceComponents(replace_clear_data_path))); + webui::LogWebUIUrl(GURL(chrome::kChromeUISettingsURL) + .ReplaceComponents(replace_clear_data_path))); // Developer tools scheme. - EXPECT_TRUE(webui::LogWebUICreated(GURL("devtools://devtools"))); + EXPECT_TRUE(webui::LogWebUIUrl(GURL("devtools://devtools"))); } TEST(LogWebUIUrlTest, InvalidUrls) { // HTTP/HTTPS/FTP/etc. schemes should be ignored. - EXPECT_FALSE(webui::LogWebUICreated(GURL("http://google.com?q=pii"))); - EXPECT_FALSE(webui::LogWebUICreated(GURL("https://facebook.com"))); - EXPECT_FALSE(webui::LogWebUICreated(GURL("ftp://ftp.mysite.com"))); + EXPECT_FALSE(webui::LogWebUIUrl(GURL("http://google.com?q=pii"))); + EXPECT_FALSE(webui::LogWebUIUrl(GURL("https://facebook.com"))); + EXPECT_FALSE(webui::LogWebUIUrl(GURL("ftp://ftp.mysite.com"))); // Extensions schemes should also be ignored. - EXPECT_FALSE(webui::LogWebUICreated( - GURL("chrome-extension://mfehgcgbbipciphmccgaenjidiccnmng"))); + EXPECT_FALSE(webui::LogWebUIUrl(GURL( + "chrome-extension://mfehgcgbbipciphmccgaenjidiccnmng"))); }
diff --git a/chrome/browser/ui/webui/new_tab_page/new_tab_page_ui.cc b/chrome/browser/ui/webui/new_tab_page/new_tab_page_ui.cc index 9b73e5ee..c3e0ea7 100644 --- a/chrome/browser/ui/webui/new_tab_page/new_tab_page_ui.cc +++ b/chrome/browser/ui/webui/new_tab_page/new_tab_page_ui.cc
@@ -22,6 +22,7 @@ #include "chrome/browser/buildflags.h" #include "chrome/browser/new_tab_page/feature_promo_helper/new_tab_page_feature_promo_helper.h" #include "chrome/browser/new_tab_page/modules/file_suggestion/drive_suggestion_handler.h" +#include "chrome/browser/new_tab_page/modules/v2/authentication/microsoft_auth_page_handler.h" #include "chrome/browser/new_tab_page/modules/v2/calendar/google_calendar_page_handler.h" #include "chrome/browser/new_tab_page/modules/v2/calendar/outlook_calendar_page_handler.h" #include "chrome/browser/new_tab_page/modules/v2/most_relevant_tab_resumption/most_relevant_tab_resumption_page_handler.h" @@ -704,6 +705,13 @@ } void NewTabPageUI::BindInterface( + mojo::PendingReceiver<ntp::authentication::mojom::MicrosoftAuthPageHandler> + pending_page_handler) { + microsoft_auth_handler_ = std::make_unique<MicrosoftAuthPageHandler>( + std::move(pending_page_handler), profile_); +} + +void NewTabPageUI::BindInterface( mojo::PendingReceiver<page_image_service::mojom::PageImageServiceHandler> pending_page_handler) { base::WeakPtr<page_image_service::ImageService> image_service_weak;
diff --git a/chrome/browser/ui/webui/new_tab_page/new_tab_page_ui.h b/chrome/browser/ui/webui/new_tab_page/new_tab_page_ui.h index 04ee3ef..176c3704 100644 --- a/chrome/browser/ui/webui/new_tab_page/new_tab_page_ui.h +++ b/chrome/browser/ui/webui/new_tab_page/new_tab_page_ui.h
@@ -13,6 +13,7 @@ #include "base/time/time.h" #include "chrome/browser/new_tab_page/modules/file_suggestion/drive_suggestion.mojom.h" #include "chrome/browser/new_tab_page/modules/new_tab_page_modules.h" +#include "chrome/browser/new_tab_page/modules/v2/authentication/microsoft_auth.mojom.h" #include "chrome/browser/new_tab_page/modules/v2/calendar/google_calendar.mojom.h" #include "chrome/browser/new_tab_page/modules/v2/calendar/outlook_calendar.mojom.h" #include "chrome/browser/new_tab_page/modules/v2/most_relevant_tab_resumption/most_relevant_tab_resumption.mojom.h" @@ -73,6 +74,7 @@ class GoogleCalendarPageHandler; class OutlookCalendarPageHandler; class GURL; +class MicrosoftAuthPageHandler; class MostRelevantTabResumptionPageHandler; class MostVisitedHandler; class NewTabPageHandler; @@ -176,6 +178,13 @@ mojo::PendingReceiver<ntp::calendar::mojom::OutlookCalendarPageHandler> pending_receiver); + // Instantiates the implementor of + // npt::authentication::mojom::MicrosoftAuthPageHandler mojo + // interface passing the pending receiver that will be internally bound. + void BindInterface(mojo::PendingReceiver< + ntp::authentication::mojom::MicrosoftAuthPageHandler> + pending_receiver); + #if !defined(OFFICIAL_BUILD) // Instantiates the implementor of the foo::mojom::FooHandler mojo interface // passing the pending receiver that will be internally bound. @@ -280,8 +289,9 @@ const std::vector<ntp::ModuleIdDetail> module_id_details_; // Mojo implementations for modules: - std::unique_ptr<GoogleCalendarPageHandler> google_calendar_handler_; std::unique_ptr<DriveSuggestionHandler> drive_handler_; + std::unique_ptr<GoogleCalendarPageHandler> google_calendar_handler_; + std::unique_ptr<MicrosoftAuthPageHandler> microsoft_auth_handler_; std::unique_ptr<OutlookCalendarPageHandler> outlook_calendar_handler_; PrefChangeRegistrar pref_change_registrar_;
diff --git a/chrome/browser/ui/webui/new_tab_page/webui_ntp_browsertest.cc b/chrome/browser/ui/webui/new_tab_page/webui_ntp_browsertest.cc index 613ba890..83046911 100644 --- a/chrome/browser/ui/webui/new_tab_page/webui_ntp_browsertest.cc +++ b/chrome/browser/ui/webui/new_tab_page/webui_ntp_browsertest.cc
@@ -119,9 +119,9 @@ ExpectIsWebUiNtp(ntp); // Check spare was taken. - EXPECT_TRUE( - base::Contains(spare_ids_before_navigation, - ntp->GetPrimaryMainFrame()->GetProcess()->GetID())); + EXPECT_TRUE(base::Contains( + spare_ids_before_navigation, + ntp->GetPrimaryMainFrame()->GetProcess()->GetDeprecatedID())); // No processes should be unnecessarily terminated. const std::set<int> ending_rph_ids = LiveRenderProcessHostIds();
diff --git a/chrome/browser/ui/webui/tab_search/tab_search_page_handler.cc b/chrome/browser/ui/webui/tab_search/tab_search_page_handler.cc index bc958c13..e26159f 100644 --- a/chrome/browser/ui/webui/tab_search/tab_search_page_handler.cc +++ b/chrome/browser/ui/webui/tab_search/tab_search_page_handler.cc
@@ -464,6 +464,23 @@ : nullptr); } +std::vector<tabs::TabInterface*> +TabSearchPageHandler::FilterDuplicateTabsFromStaleTabs( + std::vector<tabs::TabInterface*> stale_tabs, + std::map<GURL, std::vector<tabs::TabInterface*>> duplicate_tabs) { + std::vector<tabs::TabInterface*> filtered_stale_tabs; + + for (tabs::TabInterface* stale_tab : stale_tabs) { + GURL tab_url = + stale_tab->GetContents()->GetLastCommittedURL().GetWithoutRef(); + if (duplicate_tabs.find(tab_url) == duplicate_tabs.end()) { + filtered_stale_tabs.push_back(stale_tab); + } + } + + return filtered_stale_tabs; +} + void TabSearchPageHandler::OnStaleTabDidEnterForeground( tabs::TabInterface* tab) { RemoveStaleTab(static_cast<tabs::TabInterface*>(tab)); @@ -517,8 +534,7 @@ } void TabSearchPageHandler::GetUnusedTabs(GetUnusedTabsCallback callback) { - UpdateStaleTabs(); - // TODO(crbug.com/376879734): Maybe update duplicate tabs here? + UpdateUnusedTabs(); std::move(callback).Run(GetMojoUnusedTabs()); } @@ -994,15 +1010,26 @@ return profile_data; } -void TabSearchPageHandler::UpdateStaleTabs() { +void TabSearchPageHandler::UpdateUnusedTabs() { stale_tabs_.clear(); + duplicate_tabs_.clear(); + UnregisterTabCallbacks(); if (!tab_declutter_controller_) { return; } + std::vector<tabs::TabInterface*> stale_tabs = tab_declutter_controller_->GetStaleTabs(); - stale_tabs_ = stale_tabs; + std::map<GURL, std::vector<tabs::TabInterface*>> duplicate_tabs; + + if (features::IsTabstripDedupeEnabled()) { + duplicate_tabs = tab_declutter_controller_->GetDuplicateTabs(); + } + + duplicate_tabs_ = duplicate_tabs; + stale_tabs_ = FilterDuplicateTabsFromStaleTabs(stale_tabs, duplicate_tabs); + for (tabs::TabInterface* tab : stale_tabs_) { RegisterTabDeclutterCallbacks(tab); } @@ -1018,7 +1045,7 @@ tab_declutter_controller_ = tab_declutter_controller; if (tab_declutter_controller_) { tab_declutter_observation_.Observe(tab_declutter_controller_.get()); - UpdateStaleTabs(); + UpdateUnusedTabs(); page_->UnusedTabsChanged(GetMojoUnusedTabs()); } } @@ -1027,8 +1054,12 @@ std::vector<tabs::TabInterface*> stale_tabs, std::map<GURL, std::vector<tabs::TabInterface*>> duplicate_tabs) { stale_tabs_.clear(); + duplicate_tabs_.clear(); UnregisterTabCallbacks(); - stale_tabs_ = stale_tabs; + + duplicate_tabs_ = duplicate_tabs; + stale_tabs_ = FilterDuplicateTabsFromStaleTabs(stale_tabs, duplicate_tabs); + for (tabs::TabInterface* tab : stale_tabs_) { RegisterTabDeclutterCallbacks(tab); } @@ -1065,12 +1096,33 @@ base::flat_map<std::string, std::vector<mojo::StructPtr<tab_search::mojom::Tab>>> TabSearchPageHandler::GetMojoDuplicateTabs() { - // TODO(crbug.com/376879734): Placeholder, replace with actual duplicate tabs. base::flat_map<std::string, std::vector<mojo::StructPtr<tab_search::mojom::Tab>>> - map; - map.emplace("about:blank", GetMojoStaleTabs()); - return map; + mojo_duplicate_tabs; + + if (!tab_declutter_controller_) { + return mojo_duplicate_tabs; + } + + TabStripModel* tab_strip_model = tab_declutter_controller_->tab_strip_model(); + + for (const auto& [url, tabs] : duplicate_tabs_) { + std::vector<mojo::StructPtr<tab_search::mojom::Tab>> mojo_tabs; + + for (tabs::TabInterface* tab : tabs) { + const int tab_index = + tab_strip_model->GetIndexOfWebContents(tab->GetContents()); + std::string last_active_text = GetLastActiveElapsedTextForDeclutter( + tab->GetContents()->GetLastActiveTime()); + + mojo_tabs.push_back(GetTab(tab_strip_model, tab->GetContents(), tab_index, + last_active_text)); + } + + mojo_duplicate_tabs.emplace(url.spec(), std::move(mojo_tabs)); + } + + return mojo_duplicate_tabs; } void TabSearchPageHandler::AddRecentlyClosedEntries(
diff --git a/chrome/browser/ui/webui/tab_search/tab_search_page_handler.h b/chrome/browser/ui/webui/tab_search/tab_search_page_handler.h index 9715179..fcaccc0 100644 --- a/chrome/browser/ui/webui/tab_search/tab_search_page_handler.h +++ b/chrome/browser/ui/webui/tab_search/tab_search_page_handler.h
@@ -209,7 +209,7 @@ void MaybeShowUI(); tab_search::mojom::ProfileDataPtr CreateProfileData(); - void UpdateStaleTabs(); + void UpdateUnusedTabs(); void SetTabDeclutterController( tabs::TabDeclutterController* tab_declutter_controller); @@ -280,6 +280,10 @@ // Called when the browser window context for this WebUI has changed. void BrowserWindowInterfaceChanged(); + std::vector<tabs::TabInterface*> FilterDuplicateTabsFromStaleTabs( + std::vector<tabs::TabInterface*> stale_tabs, + std::map<GURL, std::vector<tabs::TabInterface*>> duplicate_tabs); + mojo::Receiver<tab_search::mojom::PageHandler> receiver_; mojo::Remote<tab_search::mojom::Page> page_; const raw_ptr<content::WebUI> web_ui_; @@ -322,6 +326,7 @@ listened_sessions_; std::vector<tabs::TabInterface*> stale_tabs_; + std::map<GURL, std::vector<tabs::TabInterface*>> duplicate_tabs_; std::map<tabs::TabInterface*, std::vector<base::CallbackListSubscription>> tab_declutter_subscriptions_map_;
diff --git a/chrome/browser/ui/webui/tab_search/tab_search_page_handler_unittest.cc b/chrome/browser/ui/webui/tab_search/tab_search_page_handler_unittest.cc index 7b04eca2..0e5944c 100644 --- a/chrome/browser/ui/webui/tab_search/tab_search_page_handler_unittest.cc +++ b/chrome/browser/ui/webui/tab_search/tab_search_page_handler_unittest.cc
@@ -71,6 +71,10 @@ : TabDeclutterController(browser) {} MOCK_METHOD(std::vector<tabs::TabInterface*>, GetStaleTabs, (), (override)); + MOCK_METHOD((std::map<GURL, std::vector<tabs::TabInterface*>>), + GetDuplicateTabs, + (), + (override)); }; class MockPage : public tab_search::mojom::Page { @@ -928,7 +932,8 @@ public: void SetUp() override { TabSearchPageHandlerTest::SetUp(); - feature_list_.InitWithFeatures({features::kTabstripDeclutter}, {}); + feature_list_.InitWithFeatures( + {features::kTabstripDeclutter, features::kTabstripDedupe}, {}); testing_profile_ = std::make_unique<TestingProfile>(); tab_strip_model_delegate_ = std::make_unique<TestTabStripModelDelegate>(); tab_strip_model_ = std::make_unique<TabStripModel>( @@ -974,8 +979,9 @@ TEST_F(TabSearchPageHandlerDeclutterTest, TabDeclutterFindStaleTabs) { EXPECT_CALL(page_, UnusedTabsChanged(_)).Times(1); - std::vector<tabs::TabInterface*> stale_tabs_raw_ptr; + // Create stale tabs. + std::vector<tabs::TabInterface*> stale_tabs_raw_ptr; for (int i = 0; i < 4; ++i) { std::unique_ptr<tabs::TabModel> tab_model = std::make_unique<tabs::TabModel>( @@ -986,16 +992,38 @@ fake_tab_strip_model()->AppendTab(std::move(tab_model), false); } + // Create duplicate tabs. + std::map<GURL, std::vector<tabs::TabInterface*>> duplicate_tabs; + GURL duplicate_tabs_url("https://duplicate_url.com"); + for (int i = 0; i < 2; ++i) { + std::unique_ptr<tabs::TabModel> tab_model = + std::make_unique<tabs::TabModel>( + content::WebContents::Create( + content::WebContents::CreateParams(testing_profile())), + fake_tab_strip_model()); + duplicate_tabs[duplicate_tabs_url].push_back(tab_model.get()); + fake_tab_strip_model()->AppendTab(std::move(tab_model), false); + } + EXPECT_CALL(*tab_declutter_controller(), GetStaleTabs()) .WillOnce(testing::Return(stale_tabs_raw_ptr)); + EXPECT_CALL(*tab_declutter_controller(), GetDuplicateTabs()) + .WillOnce(testing::Return(duplicate_tabs)); + tab_search::mojom::PageHandler::GetUnusedTabsCallback callback = base::BindLambdaForTesting( [&](tab_search::mojom::UnusedTabInfoPtr unused_tabs) { + // Verify stale tabs. EXPECT_EQ(4u, unused_tabs->stale_tabs.size()); + + // Verify duplicate tabs. + auto it = + unused_tabs->duplicate_tabs.find(duplicate_tabs_url.spec()); + ASSERT_NE(it, unused_tabs->duplicate_tabs.end()); + EXPECT_EQ(2u, it->second.size()); }); - // Installing a declutter controller will trigger `GetUnusedTabs()`. handler()->GetUnusedTabs(std::move(callback)); } @@ -1013,15 +1041,29 @@ fake_tab_strip_model()->AppendTab(std::move(tab_model), false); } + std::map<GURL, std::vector<tabs::TabInterface*>> duplicate_tabs; + GURL duplicate_tabs_url("https://duplicate_url.com"); + for (int i = 0; i < 2; ++i) { + std::unique_ptr<tabs::TabModel> tab_model = + std::make_unique<tabs::TabModel>( + content::WebContents::Create( + content::WebContents::CreateParams(testing_profile())), + fake_tab_strip_model()); + duplicate_tabs[duplicate_tabs_url].push_back(tab_model.get()); + fake_tab_strip_model()->AppendTab(std::move(tab_model), false); + } + EXPECT_CALL(*tab_declutter_controller(), GetStaleTabs()) .WillRepeatedly(testing::Return(stale_tabs_raw_ptr)); + EXPECT_CALL(*tab_declutter_controller(), GetDuplicateTabs()) + .WillRepeatedly(testing::Return(duplicate_tabs)); + auto task_runner = base::MakeRefCounted<base::TestMockTimeTaskRunner>(); base::TestMockTimeTaskRunner::ScopedContext scoped_context(task_runner); tab_declutter_controller()->SetTimerForTesting( task_runner->GetMockTickClock(), task_runner); - task_runner->FastForwardBy( tab_declutter_controller()->declutter_timer_interval()); }
diff --git a/chrome/browser/ui/webui/top_chrome/webui_contents_warmup_level_recorder.cc b/chrome/browser/ui/webui/top_chrome/webui_contents_warmup_level_recorder.cc index 97ff054..ce6a3d6 100644 --- a/chrome/browser/ui/webui/top_chrome/webui_contents_warmup_level_recorder.cc +++ b/chrome/browser/ui/webui/top_chrome/webui_contents_warmup_level_recorder.cc
@@ -70,9 +70,10 @@ CHECK(pre_condition_) << "You must call BeforeContentsCreation()"; CHECK(web_contents); - if (base::Contains( - pre_condition_->spare_process_ids, - web_contents->GetPrimaryMainFrame()->GetProcess()->GetID())) { + if (base::Contains(pre_condition_->spare_process_ids, + web_contents->GetPrimaryMainFrame() + ->GetProcess() + ->GetDeprecatedID())) { level_ = WebUIContentsWarmupLevel::kSpareRenderer; return; }
diff --git a/chrome/browser/user_education/user_education_configuration_provider.cc b/chrome/browser/user_education/user_education_configuration_provider.cc index 3cf1df89..98ff47c4 100644 --- a/chrome/browser/user_education/user_education_configuration_provider.cc +++ b/chrome/browser/user_education/user_education_configuration_provider.cc
@@ -4,6 +4,8 @@ #include "chrome/browser/user_education/user_education_configuration_provider.h" +#include <algorithm> + #include "base/feature_list.h" #include "base/notreached.h" #include "base/strings/string_util.h" @@ -23,6 +25,16 @@ return name; } +// Returns whether a comparator is bounded from above. +bool IsAdditionalConfigBounded(const feature_engagement::EventConfig& config) { + const auto& comparator = config.comparator; + return (comparator.value > 0 && + comparator.type == feature_engagement::LESS_THAN) || + comparator.type == feature_engagement::LESS_THAN_OR_EQUAL || + (comparator.value == 0 && + comparator.type == feature_engagement::EQUAL); +} + } // namespace // Implemented in chrome/browser/ui/views/user_education. @@ -210,14 +222,18 @@ if (config.availability.type != feature_engagement::GREATER_THAN) { config.availability.type = feature_engagement::GREATER_THAN_OR_EQUAL; } - } else if (!config.event_configs.empty() || - config.used.comparator.value != 0 || - additional.initial_delay_days().has_value()) { - // Use the initial delay specified, or settle on a default. When there are - // additional conditions or a nontrivial "used" condition, assume that some - // time will be required to determine if the conditions are met. + } else if (additional.initial_delay_days().has_value()) { + // Explicit availability was set in User Ed config, so use that. config.availability.type = feature_engagement::GREATER_THAN_OR_EQUAL; - config.availability.value = additional.initial_delay_days().value_or(7); + config.availability.value = additional.initial_delay_days().value(); + } else if (std::any_of(config.event_configs.begin(), + config.event_configs.end(), + &IsAdditionalConfigBounded)) { + // If any of the additional event configs have put a maximum cap on a + // particular event, then default to a minimum availability period to give + // enough time to determine if the events in question happened. + config.availability.type = feature_engagement::GREATER_THAN_OR_EQUAL; + config.availability.value = 7; } else { // This should already be the default - the promo will be available as soon // as the feature is enabled.
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 0571a201..fce02a8 100644 --- a/chrome/browser/user_education/user_education_configuration_provider_unittest.cc +++ b/chrome/browser/user_education/user_education_configuration_provider_unittest.cc
@@ -463,27 +463,6 @@ } TEST_F(UserEducationConfigurationProviderTest, - AdditionalConditions_UsedLimitDefaultAvailability) { - SetEnableV2(true); - auto spec = user_education::FeaturePromoSpecification::CreateForToastPromo( - kIphWithConditionFeature, kTestElementId, IDS_CLOSE, IDS_CANCEL, {}); - AdditionalConditions additional_conditions; - additional_conditions.set_used_limit(kAdditionalConditionUsedLimit); - spec.SetAdditionalConditions(std::move(additional_conditions)); - - feature_engagement::FeatureConfig config; - EXPECT_TRUE(CreateProvider(std::move(spec)) - ->MaybeProvideFeatureConfiguration(kIphWithConditionFeature, - config, kKnownFeatures, - kKnownGroups)); - - const feature_engagement::Comparator comparator{ - feature_engagement::LESS_THAN_OR_EQUAL, kAdditionalConditionUsedLimit}; - EXPECT_EQ(comparator, config.used.comparator); - EXPECT_EQ(kAtLeast7, config.availability); -} - -TEST_F(UserEducationConfigurationProviderTest, AdditionalConditions_UsedLimitCustomAvailability) { SetEnableV2(true); auto spec = user_education::FeaturePromoSpecification::CreateForToastPromo( @@ -508,7 +487,102 @@ } TEST_F(UserEducationConfigurationProviderTest, - AdditionalConditions_AddedConditionDefaultAvailability) { + AdditionalConditions_AddedConditionUpperBoundDefaultAvailability) { + SetEnableV2(true); + auto spec = user_education::FeaturePromoSpecification::CreateForToastPromo( + kIphWithConditionFeature, kTestElementId, IDS_CLOSE, IDS_CANCEL, {}); + AdditionalConditions additional_conditions; + additional_conditions.AddAdditionalCondition( + kAdditionalConditionName, AdditionalConditions::Constraint::kAtMost, + kAdditionalConditionCount, kAdditionalConditionDays); + spec.SetAdditionalConditions(std::move(additional_conditions)); + + feature_engagement::FeatureConfig config; + EXPECT_TRUE(CreateProvider(std::move(spec)) + ->MaybeProvideFeatureConfiguration(kIphWithConditionFeature, + config, kKnownFeatures, + kKnownGroups)); + + EXPECT_EQ(1U, config.event_configs.size()); + auto& event_config = *config.event_configs.begin(); + EXPECT_EQ(kAdditionalConditionName, event_config.name); + EXPECT_EQ(kAdditionalConditionCount, event_config.comparator.value); + EXPECT_EQ(feature_engagement::LESS_THAN_OR_EQUAL, + event_config.comparator.type); + EXPECT_EQ(kAdditionalConditionDays, event_config.window); + EXPECT_LE(kAdditionalConditionDays, event_config.storage); + EXPECT_EQ(kAtLeast7, config.availability); +} + +TEST_F(UserEducationConfigurationProviderTest, + AdditionalConditions_AddedConditionUpperBoundCustomAvailability) { + SetEnableV2(true); + auto spec = user_education::FeaturePromoSpecification::CreateForToastPromo( + kIphWithConditionFeature, kTestElementId, IDS_CLOSE, IDS_CANCEL, {}); + AdditionalConditions additional_conditions; + additional_conditions.set_initial_delay_days(kAdditionalConditionDelayDays); + additional_conditions.AddAdditionalCondition( + kAdditionalConditionName, AdditionalConditions::Constraint::kAtMost, + kAdditionalConditionCount, kAdditionalConditionDays); + spec.SetAdditionalConditions(std::move(additional_conditions)); + + feature_engagement::FeatureConfig config; + EXPECT_TRUE(CreateProvider(std::move(spec)) + ->MaybeProvideFeatureConfiguration(kIphWithConditionFeature, + config, kKnownFeatures, + kKnownGroups)); + + EXPECT_EQ(1U, config.event_configs.size()); + auto& event_config = *config.event_configs.begin(); + EXPECT_EQ(kAdditionalConditionName, event_config.name); + EXPECT_EQ(kAdditionalConditionCount, event_config.comparator.value); + EXPECT_EQ(feature_engagement::LESS_THAN_OR_EQUAL, + event_config.comparator.type); + EXPECT_EQ(kAdditionalConditionDays, event_config.window); + EXPECT_LE(kAdditionalConditionDays, event_config.storage); + const feature_engagement::Comparator expected_availability{ + feature_engagement::GREATER_THAN_OR_EQUAL, kAdditionalConditionDelayDays}; + EXPECT_EQ(expected_availability, config.availability); +} + +TEST_F(UserEducationConfigurationProviderTest, + AdditionalConditions_AddedConditionUpperBoundInAddition) { + SetEnableV2(true); + auto spec = user_education::FeaturePromoSpecification::CreateForToastPromo( + kIphWithConditionFeature, kTestElementId, IDS_CLOSE, IDS_CANCEL, {}); + AdditionalConditions additional_conditions; + additional_conditions.AddAdditionalCondition( + kAdditionalConditionName, AdditionalConditions::Constraint::kAtMost, + kAdditionalConditionCount, kAdditionalConditionDays); + spec.SetAdditionalConditions(std::move(additional_conditions)); + + feature_engagement::FeatureConfig config; + feature_engagement::EventConfig event_config; + event_config.name = kAdditionalCondition2Name; + event_config.comparator = {feature_engagement::LESS_THAN_OR_EQUAL, 1}; + config.event_configs.insert(event_config); + EXPECT_TRUE(CreateProvider(std::move(spec)) + ->MaybeProvideFeatureConfiguration(kIphWithConditionFeature, + config, kKnownFeatures, + kKnownGroups)); + + EXPECT_EQ(2U, config.event_configs.size()); + for (const auto& cur_config : config.event_configs) { + if (cur_config.name == event_config.name) { + EXPECT_EQ(event_config.comparator, cur_config.comparator); + } else { + EXPECT_EQ(kAdditionalConditionName, cur_config.name); + EXPECT_EQ(kAdditionalConditionCount, cur_config.comparator.value); + EXPECT_EQ(feature_engagement::LESS_THAN_OR_EQUAL, + cur_config.comparator.type); + EXPECT_EQ(kAdditionalConditionDays, cur_config.window); + EXPECT_LE(kAdditionalConditionDays, cur_config.storage); + } + } +} + +TEST_F(UserEducationConfigurationProviderTest, + AdditionalConditions_AddedConditionLowerBoundDefaultAvailability) { SetEnableV2(true); auto spec = user_education::FeaturePromoSpecification::CreateForToastPromo( kIphWithConditionFeature, kTestElementId, IDS_CLOSE, IDS_CANCEL, {}); @@ -532,11 +606,11 @@ event_config.comparator.type); EXPECT_EQ(kAdditionalConditionDays, event_config.window); EXPECT_LE(kAdditionalConditionDays, event_config.storage); - EXPECT_EQ(kAtLeast7, config.availability); + EXPECT_EQ(kAny, config.availability); } TEST_F(UserEducationConfigurationProviderTest, - AdditionalConditions_AddedConditionCustomAvailability) { + AdditionalConditions_AddedConditionLowerBoundCustomAvailability) { SetEnableV2(true); auto spec = user_education::FeaturePromoSpecification::CreateForToastPromo( kIphWithConditionFeature, kTestElementId, IDS_CLOSE, IDS_CANCEL, {}); @@ -567,7 +641,7 @@ } TEST_F(UserEducationConfigurationProviderTest, - AdditionalConditions_AddedConditionInAddition) { + AdditionalConditions_AddedConditionLowerBoundInAddition) { SetEnableV2(true); auto spec = user_education::FeaturePromoSpecification::CreateForToastPromo( kIphWithConditionFeature, kTestElementId, IDS_CLOSE, IDS_CANCEL, {});
diff --git a/chrome/browser/web_applications/web_app_launch_queue.cc b/chrome/browser/web_applications/web_app_launch_queue.cc index 030dd7ee..5d781b5 100644 --- a/chrome/browser/web_applications/web_app_launch_queue.cc +++ b/chrome/browser/web_applications/web_app_launch_queue.cc
@@ -62,7 +62,9 @@ url::Origin::Create(launch_url)), launch_url, content::GlobalRenderFrameHostId( - web_contents->GetPrimaryMainFrame()->GetProcess()->GetID(), + web_contents->GetPrimaryMainFrame() + ->GetProcess() + ->GetDeprecatedID(), web_contents->GetPrimaryMainFrame()->GetRoutingID())) { entries_.reserve(expected_number_of_entries); }
diff --git a/chrome/build/android-arm32.pgo.txt b/chrome/build/android-arm32.pgo.txt index d86f821d..81bd0088 100644 --- a/chrome/build/android-arm32.pgo.txt +++ b/chrome/build/android-arm32.pgo.txt
@@ -1 +1 @@ -chrome-android32-main-1733831804-bd0d92d437897721f84b5531246a509f1fb63a28-29659a0d00f69de45568964970ca3c22fc030bcc.profdata +chrome-android32-main-1733853479-6d06c07850795c0e815d84c238b7e341554f675a-df3de733e26e58e8a9388accd5ec5e826f9813fe.profdata
diff --git a/chrome/build/android-arm64.pgo.txt b/chrome/build/android-arm64.pgo.txt index ff979e1..cf12943 100644 --- a/chrome/build/android-arm64.pgo.txt +++ b/chrome/build/android-arm64.pgo.txt
@@ -1 +1 @@ -chrome-android64-main-1733846298-f7b0e84a2eedaa2dddcd0c015bfbbd033d805393-fedcf46f574de1850e111e3406aec0b4e83de04e.profdata +chrome-android64-main-1733858578-0d28ef1a115a45327d676b677befaad677187f1f-85a6a02aca408915d944aea0ec8674c4cc2a0fee.profdata
diff --git a/chrome/build/win32.pgo.txt b/chrome/build/win32.pgo.txt index 40b93fcc..1a66c3e 100644 --- a/chrome/build/win32.pgo.txt +++ b/chrome/build/win32.pgo.txt
@@ -1 +1 @@ -chrome-win32-main-1733831804-6866afa18a40fc574840e3263cd2a7da435eb6a7-29659a0d00f69de45568964970ca3c22fc030bcc.profdata +chrome-win32-main-1733842763-bbef554a46f552411cdc7dbe1e52d5a2a9dd5605-4d7ff799890096fa5ff28c9d779e5b4046c1b502.profdata
diff --git a/chrome/build/win64.pgo.txt b/chrome/build/win64.pgo.txt index a747264..912b8f8 100644 --- a/chrome/build/win64.pgo.txt +++ b/chrome/build/win64.pgo.txt
@@ -1 +1 @@ -chrome-win64-main-1733831804-59920a788c6cc46e90f3d07245bb2575c1699eab-29659a0d00f69de45568964970ca3c22fc030bcc.profdata +chrome-win64-main-1733842763-b7722395e69213697fa397f243637f6299059a3e-4d7ff799890096fa5ff28c9d779e5b4046c1b502.profdata
diff --git a/chrome/common/chrome_features.cc b/chrome/common/chrome_features.cc index eceaf82..43d40a91 100644 --- a/chrome/common/chrome_features.cc +++ b/chrome/common/chrome_features.cc
@@ -683,16 +683,7 @@ BASE_FEATURE(kImmersiveFullscreenPWAs, "ImmersiveFullscreenPWAs", base::FEATURE_ENABLED_BY_DEFAULT); - -// Slide tabs out of the way during the reveal of the close, minimize and -// maximize (traffic lights) buttons. kImmersiveFullscreenTabs must be enabled -// for this feature to have an effect. -// If remote_cocoa::features::kFullscreenAlwaysShowTrafficLights is enabled, -// this feature has no effect. -BASE_FEATURE(kFullscreenAnimateTabs, - "FullscreenAnimateTabs", - base::FEATURE_DISABLED_BY_DEFAULT); -#endif +#endif // BUILDFLAG(IS_MAC) #if BUILDFLAG(IS_CHROMEOS_ASH) // Enables scraping of password-expiry information during SAML login flow, which
diff --git a/chrome/common/profiler/BUILD.gn b/chrome/common/profiler/BUILD.gn index 467eb8a..03b8c6e 100644 --- a/chrome/common/profiler/BUILD.gn +++ b/chrome/common/profiler/BUILD.gn
@@ -44,6 +44,7 @@ if (is_android) { deps += [ + "//base:native_unwinder_android", "//chrome/android/features/stack_unwinder/public:native", "//chrome/android/modules/stack_unwinder/public:module", ]
diff --git a/chrome/common/profiler/native_unwinder_android_map_delegate_impl.cc b/chrome/common/profiler/native_unwinder_android_map_delegate_impl.cc index 54367536..6621121 100644 --- a/chrome/common/profiler/native_unwinder_android_map_delegate_impl.cc +++ b/chrome/common/profiler/native_unwinder_android_map_delegate_impl.cc
@@ -4,11 +4,10 @@ #include "chrome/common/profiler/native_unwinder_android_map_delegate_impl.h" -NativeUnwinderAndroidMapDelegateImpl::NativeUnwinderAndroidMapDelegateImpl( - stack_unwinder::Module* module) - : module_(module) { - DCHECK(module); -} +#include "base/profiler/native_unwinder_android.h" + +NativeUnwinderAndroidMapDelegateImpl::NativeUnwinderAndroidMapDelegateImpl() = + default; NativeUnwinderAndroidMapDelegateImpl::~NativeUnwinderAndroidMapDelegateImpl() { DCHECK_EQ(reference_count_, 0u); @@ -19,7 +18,7 @@ NativeUnwinderAndroidMapDelegateImpl::GetMapReference() { if (reference_count_ == 0) { DCHECK(!memory_regions_map_); - memory_regions_map_ = module_->CreateMemoryRegionsMap(); + memory_regions_map_ = base::NativeUnwinderAndroid::CreateMemoryRegionsMap(); } reference_count_++; return memory_regions_map_.get();
diff --git a/chrome/common/profiler/native_unwinder_android_map_delegate_impl.h b/chrome/common/profiler/native_unwinder_android_map_delegate_impl.h index 6d81fc2..9c06980 100644 --- a/chrome/common/profiler/native_unwinder_android_map_delegate_impl.h +++ b/chrome/common/profiler/native_unwinder_android_map_delegate_impl.h
@@ -6,12 +6,12 @@ #define CHROME_COMMON_PROFILER_NATIVE_UNWINDER_ANDROID_MAP_DELEGATE_IMPL_H_ #include <stdint.h> + #include <memory> #include "base/functional/callback.h" #include "base/profiler/native_unwinder_android_map_delegate.h" #include "base/profiler/native_unwinder_android_memory_regions_map.h" -#include "chrome/android/modules/stack_unwinder/public/module.h" // The implementation of map delegate that manages the lifecycle of // libunwindstack resources. It is intended that this logic lives in chrome code @@ -26,7 +26,7 @@ class NativeUnwinderAndroidMapDelegateImpl : public base::NativeUnwinderAndroidMapDelegate { public: - explicit NativeUnwinderAndroidMapDelegateImpl(stack_unwinder::Module* module); + NativeUnwinderAndroidMapDelegateImpl(); ~NativeUnwinderAndroidMapDelegateImpl() override; @@ -35,7 +35,6 @@ void ReleaseMapReference() override; private: - const raw_ptr<stack_unwinder::Module> module_; uint32_t reference_count_ = 0u; std::unique_ptr<base::NativeUnwinderAndroidMemoryRegionsMap> memory_regions_map_;
diff --git a/chrome/common/profiler/thread_profiler_platform_configuration.cc b/chrome/common/profiler/thread_profiler_platform_configuration.cc index 5b4b1fe..2355c2a 100644 --- a/chrome/common/profiler/thread_profiler_platform_configuration.cc +++ b/chrome/common/profiler/thread_profiler_platform_configuration.cc
@@ -69,15 +69,20 @@ } #endif - CHECK(*release_channel == version_info::Channel::CANARY || - *release_channel == version_info::Channel::DEV || - *release_channel == version_info::Channel::BETA); + CHECK_NE(*release_channel, version_info::Channel::UNKNOWN); - if (*release_channel == version_info::Channel::BETA) { - // TODO(crbug.com/1497983): Ramp up enable rate on Non-Android platforms. - return RelativePopulations{90.0, 0.0, 10.0}; + switch (*release_channel) { + case version_info::Channel::BETA: { + // TODO(crbug.com/1497983): Ramp up enable rate on Non-Android platforms. + return RelativePopulations{90.0, 0.0, 10.0}; + } + case version_info::Channel::STABLE: { + static constexpr double experiment_rate = 0.006; + return RelativePopulations{100.0 - experiment_rate, 0.0, experiment_rate}; + } + default: + return RelativePopulations{0.0, 80.0, 20.0}; } - return RelativePopulations{0.0, 80.0, 20.0}; } double DefaultPlatformConfiguration::GetChildProcessPerExecutionEnableFraction( @@ -137,11 +142,8 @@ } #endif - // Canary, dev, and beta are the only channels currently supported in release - // builds. - return *release_channel == version_info::Channel::CANARY || - *release_channel == version_info::Channel::DEV || - *release_channel == version_info::Channel::BETA; + // All channels are supported in release builds. + return *release_channel != version_info::Channel::UNKNOWN; } #if BUILDFLAG(IS_ANDROID)
diff --git a/chrome/common/profiler/thread_profiler_platform_configuration_unittest.cc b/chrome/common/profiler/thread_profiler_platform_configuration_unittest.cc index 9f422b4..30491b6d 100644 --- a/chrome/common/profiler/thread_profiler_platform_configuration_unittest.cc +++ b/chrome/common/profiler/thread_profiler_platform_configuration_unittest.cc
@@ -79,7 +79,7 @@ EXPECT_TRUE(config()->IsSupported(version_info::Channel::CANARY)); EXPECT_TRUE(config()->IsSupported(version_info::Channel::DEV)); EXPECT_TRUE(config()->IsSupported(version_info::Channel::BETA)); - EXPECT_FALSE(config()->IsSupported(version_info::Channel::STABLE)); + EXPECT_TRUE(config()->IsSupported(version_info::Channel::STABLE)); EXPECT_TRUE(config()->IsSupported(std::nullopt)); #endif @@ -106,7 +106,8 @@ config()->GetEnableRates(version_info::Channel::DEV)); EXPECT_EQ((RelativePopulations{90.0, 0.0, 10.0}), config()->GetEnableRates(version_info::Channel::BETA)); - EXPECT_CHECK_DEATH(config()->GetEnableRates(version_info::Channel::STABLE)); + EXPECT_EQ((RelativePopulations{100.0 - 0.006, 0.0, 0.006}), + config()->GetEnableRates(version_info::Channel::STABLE)); EXPECT_EQ((RelativePopulations{0.0, 100.0, 0.0}), config()->GetEnableRates(std::nullopt));
diff --git a/chrome/common/profiler/unwind_util.cc b/chrome/common/profiler/unwind_util.cc index 334f1aa5..8a52165a 100644 --- a/chrome/common/profiler/unwind_util.cc +++ b/chrome/common/profiler/unwind_util.cc
@@ -54,6 +54,8 @@ #endif // ANDROID_ARM64_UNWINDING_SUPPORTED #if ANDROID_UNWINDING_SUPPORTED +#include "base/profiler/libunwindstack_unwinder_android.h" +#include "base/profiler/native_unwinder_android.h" #include "chrome/android/modules/stack_unwinder/public/module.h" #include "chrome/common/profiler/native_unwinder_android_map_delegate_impl.h" @@ -102,34 +104,35 @@ private: base::MemoryMappedFile chrome_cfi_file_; }; -#endif // ANDROID_ARM32_UNWINDING_SUPPORTED +#endif // ANDROID_ARM32_UNWINDING_SUPPORTED #if ANDROID_UNWINDING_SUPPORTED -std::vector<std::unique_ptr<base::Unwinder>> CreateLibunwindstackUnwinders( - stack_unwinder::Module* const stack_unwinder_module) { +std::vector<std::unique_ptr<base::Unwinder>> CreateLibunwindstackUnwinders() { + // Ensure that the unwinder initialization occurs off the main thread, since + // it involves some additional latency. CHECK_NE(getpid(), gettid()); std::vector<std::unique_ptr<base::Unwinder>> unwinders; - unwinders.push_back(stack_unwinder_module->CreateLibunwindstackUnwinder()); + unwinders.push_back(std::make_unique<base::LibunwindstackUnwinderAndroid>()); return unwinders; } -std::vector<std::unique_ptr<base::Unwinder>> CreateCoreUnwinders( - stack_unwinder::Module* const stack_unwinder_module) { +std::vector<std::unique_ptr<base::Unwinder>> CreateCoreUnwinders() { + // Ensure that the unwinder initialization occurs off the main thread, since + // it involves some additional latency. CHECK_NE(getpid(), gettid()); #if ANDROID_ARM64_UNWINDING_SUPPORTED // For now, we only use Libunwindstack on 64 bit (no other unwinders). - return CreateLibunwindstackUnwinders(stack_unwinder_module); + return CreateLibunwindstackUnwinders(); #else - static base::NoDestructor<NativeUnwinderAndroidMapDelegateImpl> map_delegate( - stack_unwinder_module); + static base::NoDestructor<NativeUnwinderAndroidMapDelegateImpl> map_delegate; static base::NoDestructor<ChromeUnwinderCreator> chrome_unwinder_creator; // Note order matters: the more general unwinder must appear first in the // vector. std::vector<std::unique_ptr<base::Unwinder>> unwinders; - unwinders.push_back(stack_unwinder_module->CreateNativeUnwinder( - map_delegate.get(), reinterpret_cast<uintptr_t>(&__executable_start))); + unwinders.push_back(std::make_unique<base::NativeUnwinderAndroid>( + reinterpret_cast<uintptr_t>(&__executable_start), map_delegate.get())); unwinders.push_back(chrome_unwinder_creator->Create()); return unwinders; @@ -222,11 +225,10 @@ } #if ANDROID_UNWINDING_SUPPORTED -stack_unwinder::Module* GetOrLoadModule() { +void LoadModule() { CHECK(AreUnwindPrerequisitesAvailable(chrome::GetChannel())); static base::NoDestructor<std::unique_ptr<stack_unwinder::Module>> stack_unwinder_module(stack_unwinder::Module::Load()); - return stack_unwinder_module.get()->get(); } #endif // ANDROID_UNWINDING_SUPPORTED @@ -235,7 +237,8 @@ return base::StackSamplingProfiler::UnwindersFactory(); } #if ANDROID_UNWINDING_SUPPORTED - return base::BindOnce(CreateCoreUnwinders, GetOrLoadModule()); + LoadModule(); + return base::BindOnce(CreateCoreUnwinders); #else // ANDROID_UNWINDING_SUPPORTED return base::StackSamplingProfiler::UnwindersFactory(); #endif // ANDROID_UNWINDING_SUPPORTED @@ -247,7 +250,7 @@ return base::StackSamplingProfiler::UnwindersFactory(); } #if ANDROID_UNWINDING_SUPPORTED - return base::BindOnce(CreateLibunwindstackUnwinders, GetOrLoadModule()); + return base::BindOnce(CreateLibunwindstackUnwinders); #else // ANDROID_UNWINDING_SUPPORTED return base::StackSamplingProfiler::UnwindersFactory(); #endif // ANDROID_UNWINDING_SUPPORTED
diff --git a/chrome/test/BUILD.gn b/chrome/test/BUILD.gn index 9f4cc12..6d55b3a 100644 --- a/chrome/test/BUILD.gn +++ b/chrome/test/BUILD.gn
@@ -1677,9 +1677,6 @@ if (enable_arm_cfi_table) { sources += [ "../common/profiler/thread_profiler_browsertest.cc" ] - # Cannot depend on the stack_unwinder/internal:java since it uses a custom - # GEN_JNI class via @NativeMethods("stack_unwinder"). - deps += [ "//chrome/android/modules/stack_unwinder/internal:stack_unwinder_for_testing" ] configs -= [ "//build/config/compiler:default_symbols" ] if (symbol_level == 2) { configs += [ "//build/config/compiler:symbols" ] @@ -7844,6 +7841,7 @@ "../browser/new_tab_page/modules/safe_browsing/safe_browsing_handler_unittest.cc", "../browser/new_tab_page/modules/test_support.cc", "../browser/new_tab_page/modules/test_support.h", + "../browser/new_tab_page/modules/v2/authentication/microsoft_auth_page_handler_unittest.cc", "../browser/new_tab_page/modules/v2/calendar/google_calendar_page_handler_unittest.cc", "../browser/new_tab_page/modules/v2/calendar/outlook_calendar_page_handler_unittest.cc", "../browser/new_tab_page/modules/v2/most_relevant_tab_resumption/most_relevant_tab_resumption_page_handler_unittest.cc", @@ -7899,6 +7897,7 @@ "//chrome/browser/media/webrtc:test_support", "//chrome/browser/metrics/desktop_session_duration", "//chrome/browser/new_tab_page/chrome_colors", + "//chrome/browser/new_tab_page/modules/v2/authentication:mojo_bindings", "//chrome/browser/new_tab_page/modules/v2/calendar:mojo_bindings", "//chrome/browser/new_tab_page/modules/v2/most_relevant_tab_resumption:mojo_bindings", "//chrome/browser/profile_resetter:fake_profile_resetter", @@ -9826,6 +9825,7 @@ "../browser/ui/views/tabs/tab_strip_scroll_session_unittest.cc", "../browser/ui/views/tabs/tab_strip_unittest.cc", "../browser/ui/views/tabs/tab_unittest.cc", + "../browser/ui/views/task_manager_search_bar_view_unittest.cc", "../browser/ui/views/toolbar/chrome_labs/chrome_labs_button_unittest.cc", "../browser/ui/views/toolbar/chrome_labs/chrome_labs_unittest.cc", "../browser/ui/views/toolbar/pinned_toolbar_actions_container_unittest.cc",
diff --git a/chrome/test/data/webui/chrome_urls/app_test.ts b/chrome/test/data/webui/chrome_urls/app_test.ts index bc0b1a8..4c39860 100644 --- a/chrome/test/data/webui/chrome_urls/app_test.ts +++ b/chrome/test/data/webui/chrome_urls/app_test.ts
@@ -5,10 +5,11 @@ import 'chrome://chrome-urls/app.js'; import type {ChromeUrlsAppElement} from 'chrome://chrome-urls/app.js'; +import {INTERNAL_DEBUG_PAGES_HASH} from 'chrome://chrome-urls/app.js'; import {BrowserProxyImpl} from 'chrome://chrome-urls/browser_proxy.js'; import type {WebuiUrlInfo} from 'chrome://chrome-urls/chrome_urls.mojom-webui.js'; import type {Url} from 'chrome://resources/mojo/url/mojom/url.mojom-webui.js'; -import {assertEquals, assertFalse, assertTrue} from 'chrome://webui-test/chai_assert.js'; +import {assertEquals, assertFalse, assertGT, assertTrue} from 'chrome://webui-test/chai_assert.js'; import {microtasksFinished} from 'chrome://webui-test/test_util.js'; import {TestChromeUrlsBrowserProxy} from './test_chrome_urls_browser_proxy.js'; @@ -192,4 +193,43 @@ assertEquals(1, internalItems.length); assertFalse(!!internalItems[0]!.querySelector('a')); }); + + test('Navigate to debug UI headings', async () => { + // Ensure we need to scroll by making a short window and lots of urls. + // We do this by making the <body> scrollable and document fixed height + // since we can't resize the window itself in tests. + document.documentElement.style.height = '200px'; + document.documentElement.style.maxHeight = '200px'; + document.documentElement.style.overflow = 'hidden'; + document.body.style.height = '100%'; + document.body.style.overflow = 'auto'; + + window.history.replaceState({}, '', `/#${INTERNAL_DEBUG_PAGES_HASH}`); + window.dispatchEvent(new CustomEvent('popstate')); + const webuiUrls: WebuiUrlInfo[] = [ + {url: {url: 'chrome://settings/'}, enabled: true, internal: false}, + {url: {url: 'chrome://extensions/'}, enabled: true, internal: false}, + {url: {url: 'chrome://downloads/'}, enabled: true, internal: false}, + {url: {url: 'chrome://print/'}, enabled: true, internal: false}, + {url: {url: 'chrome://history/'}, enabled: true, internal: false}, + {url: {url: 'chrome://new-tab-page/'}, enabled: true, internal: false}, + {url: {url: 'chrome://whats-new/'}, enabled: true, internal: false}, + {url: {url: 'chrome://bookmarks/'}, enabled: false, internal: false}, + {url: {url: 'chrome://test-1/'}, enabled: false, internal: false}, + {url: {url: 'chrome://test-2/'}, enabled: false, internal: false}, + {url: {url: 'chrome://test-3/'}, enabled: false, internal: false}, + {url: {url: 'chrome://test-4/'}, enabled: false, internal: false}, + {url: {url: 'chrome://test-5/'}, enabled: false, internal: false}, + {url: {url: 'chrome://webui-gallery/'}, enabled: true, internal: true}, + ]; + await finishSetup(webuiUrls); + + const header = + app.shadowRoot!.querySelector<HTMLElement>('#internal-debugging-pages'); + assertTrue(!!header); + // Header should be in the viewport. + assertGT( + 200 + document.body.scrollTop, + app.offsetTop + header.offsetTop + header.offsetHeight); + }); });
diff --git a/chrome/test/data/webui/chromeos/settings/multidevice_page/multidevice_smartlock_item_test.ts b/chrome/test/data/webui/chromeos/settings/multidevice_page/multidevice_smartlock_item_test.ts index 2b9e4c7..b2b5953 100644 --- a/chrome/test/data/webui/chromeos/settings/multidevice_page/multidevice_smartlock_item_test.ts +++ b/chrome/test/data/webui/chromeos/settings/multidevice_page/multidevice_smartlock_item_test.ts
@@ -56,10 +56,7 @@ */ async function simulateFeatureStateChangeRequest(enabled: boolean) { const token = 'token1'; - smartLockItem.authToken = { - lifetimeSeconds: 300, - token: token, - }; + smartLockItem.authToken = token; // When the user requets a feature state change, an event with the relevant // details is handled.
diff --git a/chrome/test/data/webui/commerce/product_specifications/app_test.ts b/chrome/test/data/webui/commerce/product_specifications/app_test.ts index 67002768..d819ad1 100644 --- a/chrome/test/data/webui/commerce/product_specifications/app_test.ts +++ b/chrome/test/data/webui/commerce/product_specifications/app_test.ts
@@ -5,7 +5,7 @@ import 'chrome://compare/app.js'; import {CrFeedbackOption} from '//resources/cr_elements/cr_feedback_buttons/cr_feedback_buttons.js'; -import {COLUMN_MODIFICATION_HISTOGRAM_NAME, CompareTableColumnAction, LOADING_END_EVENT_TYPE, LOADING_START_EVENT_TYPE} from 'chrome://compare/app.js'; +import {COLUMN_MODIFICATION_HISTOGRAM_NAME, CompareTableColumnAction, CompareTableLoadStatus, LOADING_END_EVENT_TYPE, LOADING_START_EVENT_TYPE, TABLE_LOAD_HISTOGRAM_NAME} from 'chrome://compare/app.js'; import type {ProductSpecificationsElement} from 'chrome://compare/app.js'; import type {ProductSelectorElement} from 'chrome://compare/product_selector.js'; import {Router} from 'chrome://compare/router.js'; @@ -1432,6 +1432,45 @@ COLUMN_MODIFICATION_HISTOGRAM_NAME, CompareTableColumnAction.UPDATE_FROM_RECENTLY_VIEWED)); }); + + test('record metrics for success state', async () => { + // Table has been loaded in test setup. + assertEquals( + 1, + metrics.count( + TABLE_LOAD_HISTOGRAM_NAME, CompareTableLoadStatus.SUCCESS)); + }); + + test('record metrics for error state', async () => { + const productInfo1 = createProductInfo({ + clusterId: BigInt(123), + title: 'Product 1', + productUrl: {url: 'https://example.com/1'}, + imageUrl: {url: 'http://example.com/image1.png'}, + }); + + const productInfo2 = createProductInfo({ + clusterId: BigInt(456), + title: 'Product 2', + productUrl: {url: 'https://example.com/2'}, + imageUrl: {url: 'http://example.com/image2.png'}, + }); + + const promiseValues = createAppPromiseValues({ + urlsParam: ['https://example.com/1', 'https://example.com/2'], + specs: createSpecs({ + productDimensionMap: new Map<bigint, string>(), + }), + productInfos: [productInfo1, productInfo2], + }); + await createAppElementWithPromiseValues(promiseValues); + + assertTrue(appElement.$.errorToast.open); + assertEquals( + 1, + metrics.count( + TABLE_LOAD_HISTOGRAM_NAME, CompareTableLoadStatus.FAILURE)); + }); }); test('name change updates page title', async () => {
diff --git a/chrome/test/data/webui/new_tab_page/modules/v2/authentication/microsoft_auth_module_test.ts b/chrome/test/data/webui/new_tab_page/modules/v2/authentication/microsoft_auth_module_test.ts index 4f202dfd..9a02dce 100644 --- a/chrome/test/data/webui/new_tab_page/modules/v2/authentication/microsoft_auth_module_test.ts +++ b/chrome/test/data/webui/new_tab_page/modules/v2/authentication/microsoft_auth_module_test.ts
@@ -2,27 +2,37 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -import type {DisableModuleEvent, MicrosoftAuthModuleElement} from 'chrome://new-tab-page/lazy_load.js'; -import {microsoftAuthModuleDescriptor} from 'chrome://new-tab-page/lazy_load.js'; +import type {DisableModuleEvent, DismissModuleInstanceEvent, MicrosoftAuthModuleElement} from 'chrome://new-tab-page/lazy_load.js'; +import {microsoftAuthModuleDescriptor, MicrosoftAuthProxyImpl} from 'chrome://new-tab-page/lazy_load.js'; +import {MicrosoftAuthPageHandlerRemote} from 'chrome://new-tab-page/microsoft_auth.mojom-webui.js'; import {loadTimeData} from 'chrome://resources/js/load_time_data.js'; import {assertEquals, assertTrue} from 'chrome://webui-test/chai_assert.js'; +import type {TestMock} from 'chrome://webui-test/test_mock.js'; import {eventToPromise, microtasksFinished} from 'chrome://webui-test/test_util.js'; +import {installMock} from '../../../test_support.js'; + suite('MicrosoftAuthModule', () => { + let handler: TestMock<MicrosoftAuthPageHandlerRemote>; + let microsoftAuthModule: MicrosoftAuthModuleElement; + const modulesMicrosoftAuthName = 'Microsoft Authentication'; + setup(async () => { document.body.innerHTML = window.trustedTypes!.emptyHTML; + loadTimeData.overrideValues( + {modulesMicrosoftAuthName: modulesMicrosoftAuthName}); + handler = installMock( + MicrosoftAuthPageHandlerRemote, + mock => MicrosoftAuthProxyImpl.setInstance( + new MicrosoftAuthProxyImpl(mock))); + microsoftAuthModule = await microsoftAuthModuleDescriptor.initialize(0) as + MicrosoftAuthModuleElement; + assertTrue(!!microsoftAuthModule); + document.body.append(microsoftAuthModule); + await microtasksFinished(); }); test('clicking the disable button fires a disable module event', async () => { - // Arrange. - const modulesMicrosoftAuthName = 'Microsoft Authentication'; - loadTimeData.overrideValues( - {modulesMicrosoftAuthName: modulesMicrosoftAuthName}); - const microsoftAuthModule = await microsoftAuthModuleDescriptor.initialize( - 0) as MicrosoftAuthModuleElement; - document.body.append(microsoftAuthModule); - await microtasksFinished(); - // Act. const whenFired = eventToPromise('disable-module', microsoftAuthModule); const disableButton = @@ -37,4 +47,24 @@ ('You won\'t see ' + modulesMicrosoftAuthName + ' on this page again'), event.detail.message); }); + + test('dismisses and restores module', async () => { + // Act. + const whenFired = + eventToPromise('dismiss-module-instance', microsoftAuthModule); + microsoftAuthModule.$.moduleHeaderElementV2.dispatchEvent( + new Event('dismiss-button-click')); + + // Assert. + const event: DismissModuleInstanceEvent = await whenFired; + assertEquals((modulesMicrosoftAuthName + ' hidden'), event.detail.message); + assertTrue(!!event.detail.restoreCallback); + assertEquals(1, handler.getCallCount('dismissModule')); + + // Act. + event.detail.restoreCallback!(); + + // Assert. + assertEquals(1, handler.getCallCount('restoreModule')); + }); });
diff --git a/chrome/utility/importer/favicon_reencode.cc b/chrome/utility/importer/favicon_reencode.cc index ca1574b..c1752303 100644 --- a/chrome/utility/importer/favicon_reencode.cc +++ b/chrome/utility/importer/favicon_reencode.cc
@@ -17,7 +17,7 @@ base::span<const uint8_t> src) { // Decode the favicon using WebKit's image decoder. SkBitmap decoded = content::DecodeImage( - src.data(), gfx::Size(gfx::kFaviconSize, gfx::kFaviconSize), src.size()); + src, gfx::Size(gfx::kFaviconSize, gfx::kFaviconSize)); if (decoded.empty()) { return std::nullopt; // Unable to decode. }
diff --git a/chromecast/browser/cast_content_browser_client.cc b/chromecast/browser/cast_content_browser_client.cc index 20c86c1d..0583c59 100644 --- a/chromecast/browser/cast_content_browser_client.cc +++ b/chromecast/browser/cast_content_browser_client.cc
@@ -588,7 +588,7 @@ base::BindOnce( &CastContentBrowserClient::SelectClientCertificateOnIOThread, base::Unretained(this), requesting_url, session_id, - web_contents->GetPrimaryMainFrame()->GetProcess()->GetID(), + web_contents->GetPrimaryMainFrame()->GetProcess()->GetDeprecatedID(), web_contents->GetPrimaryMainFrame()->GetRoutingID(), base::SequencedTaskRunner::GetCurrentDefault(), base::BindOnce(
diff --git a/chromeos/CHROMEOS_LKGM b/chromeos/CHROMEOS_LKGM index 5a34fe4f..e836e1d 100644 --- a/chromeos/CHROMEOS_LKGM +++ b/chromeos/CHROMEOS_LKGM
@@ -1 +1 @@ -16123.0.0-1065331 \ No newline at end of file +16124.0.0-1065346 \ No newline at end of file
diff --git a/chromeos/ash/components/boca/babelorca/babel_orca_manager.cc b/chromeos/ash/components/boca/babelorca/babel_orca_manager.cc index 61779961..cd05a43 100644 --- a/chromeos/ash/components/boca/babelorca/babel_orca_manager.cc +++ b/chromeos/ash/components/boca/babelorca/babel_orca_manager.cc
@@ -39,12 +39,15 @@ scoped_refptr<network::SharedURLLoaderFactory> url_loader_factory, captions::LiveCaptionController* live_caption_controller, std::unique_ptr<captions::CaptionBubbleContext> caption_bubble_context, - std::unique_ptr<babelorca::BabelOrcaSpeechRecognizer> speech_recognizer) { + std::unique_ptr<babelorca::BabelOrcaSpeechRecognizer> speech_recognizer, + std::unique_ptr<babelorca::BabelOrcaCaptionTranslator> translator, + PrefService* pref_service) { ControllerFactory controller_factory = base::BindOnce( babelorca::BabelOrcaProducer::Create, url_loader_factory, std::move(speech_recognizer), std::make_unique<babelorca::LiveCaptionControllerWrapperImpl>( - live_caption_controller, std::move(caption_bubble_context))); + live_caption_controller, std::move(caption_bubble_context)), + std::move(translator), pref_service); return std::make_unique<BabelOrcaManager>( identity_manager, url_loader_factory, std::move(controller_factory)); }
diff --git a/chromeos/ash/components/boca/babelorca/babel_orca_manager.h b/chromeos/ash/components/boca/babelorca/babel_orca_manager.h index 0b8f4a4..5da05b0 100644 --- a/chromeos/ash/components/boca/babelorca/babel_orca_manager.h +++ b/chromeos/ash/components/boca/babelorca/babel_orca_manager.h
@@ -63,7 +63,9 @@ scoped_refptr<network::SharedURLLoaderFactory> url_loader_factory, ::captions::LiveCaptionController* live_caption_controller, std::unique_ptr<::captions::CaptionBubbleContext> caption_bubble_context, - std::unique_ptr<babelorca::BabelOrcaSpeechRecognizer> speech_recognizer); + std::unique_ptr<babelorca::BabelOrcaSpeechRecognizer> speech_recognizer, + std::unique_ptr<babelorca::BabelOrcaCaptionTranslator> translator, + PrefService* pref_service); static std::unique_ptr<BabelOrcaManager> CreateAsConsumer( signin::IdentityManager* identity_manager,
diff --git a/chromeos/ash/components/boca/babelorca/babel_orca_producer.cc b/chromeos/ash/components/boca/babelorca/babel_orca_producer.cc index 30b40ef..4c46342 100644 --- a/chromeos/ash/components/boca/babelorca/babel_orca_producer.cc +++ b/chromeos/ash/components/boca/babelorca/babel_orca_producer.cc
@@ -13,6 +13,7 @@ #include "base/memory/scoped_refptr.h" #include "base/sequence_checker.h" #include "base/time/time.h" +#include "chromeos/ash/components/boca/babelorca/babel_orca_caption_translator.h" #include "chromeos/ash/components/boca/babelorca/babel_orca_controller.h" #include "chromeos/ash/components/boca/babelorca/babel_orca_speech_recognizer.h" #include "chromeos/ash/components/boca/babelorca/live_caption_controller_wrapper.h" @@ -23,6 +24,9 @@ #include "chromeos/ash/components/boca/babelorca/token_manager.h" #include "chromeos/ash/components/boca/babelorca/transcript_sender_impl.h" #include "chromeos/ash/components/boca/babelorca/transcript_sender_rate_limiter.h" +#include "components/live_caption/pref_names.h" +#include "components/prefs/pref_change_registrar.h" +#include "media/mojo/mojom/speech_recognition_result.h" #include "services/network/public/cpp/shared_url_loader_factory.h" namespace ash::babelorca { @@ -32,6 +36,8 @@ scoped_refptr<network::SharedURLLoaderFactory> url_loader_factory, std::unique_ptr<BabelOrcaSpeechRecognizer> speech_recognizer, std::unique_ptr<LiveCaptionControllerWrapper> caption_controller_wrapper, + std::unique_ptr<BabelOrcaCaptionTranslator> translator, + PrefService* pref_service, TokenManager* oauth_token_manager, TachyonRequestDataProvider* request_data_provider) { return std::make_unique<BabelOrcaProducer>( @@ -40,20 +46,37 @@ std::make_unique<TachyonAuthedClientImpl>( std::make_unique<babelorca::TachyonClientImpl>(url_loader_factory), oauth_token_manager), - request_data_provider); + request_data_provider, std::move(translator), pref_service); } -// TODO(373880912): implement translations for producer. BabelOrcaProducer::BabelOrcaProducer( scoped_refptr<network::SharedURLLoaderFactory> url_loader_factory, std::unique_ptr<BabelOrcaSpeechRecognizer> speech_recognizer, std::unique_ptr<LiveCaptionControllerWrapper> caption_controller_wrapper, std::unique_ptr<TachyonAuthedClient> authed_client, - TachyonRequestDataProvider* request_data_provider) + TachyonRequestDataProvider* request_data_provider, + std::unique_ptr<BabelOrcaCaptionTranslator> translator, + PrefService* pref_service) : speech_recognizer_(std::move(speech_recognizer)), caption_controller_wrapper_(std::move(caption_controller_wrapper)), + translator_(std::move(translator)), + pref_service_(pref_service), + pref_change_registrar_(std::make_unique<PrefChangeRegistrar>()), authed_client_(std::move(authed_client)), - request_data_provider_(request_data_provider) {} + request_data_provider_(request_data_provider) { + pref_change_registrar_->Init(pref_service_); + pref_change_registrar_->Add( + prefs::kLiveTranslateTargetLanguageCode, + base::BindRepeating(&BabelOrcaProducer::OnTranslationPrefChanged, + weak_ptr_factory_.GetWeakPtr())); + + // TODO(377696975) re-factor translator. + translator_->InitTranslationAndSetCallback( + base::BindRepeating(&BabelOrcaProducer::OnTranslationCallback, + weak_ptr_factory_.GetWeakPtr()), + pref_service_->GetString(prefs::kUserMicrophoneCaptionLanguageCode), + pref_service_->GetString(prefs::kLiveTranslateTargetLanguageCode)); +} BabelOrcaProducer::~BabelOrcaProducer() { DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); @@ -127,6 +150,7 @@ if (session_captions_enabled_ && rate_limited_sender_) { return; } + speech_recognizer_->ObserveTranscriptionResult( base::BindRepeating(&BabelOrcaProducer::OnTranscriptionResult, weak_ptr_factory_.GetWeakPtr())); @@ -166,20 +190,21 @@ const media::SpeechRecognitionResult& result, const std::string& source_language) { DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); - if (local_captions_enabled_) { - bool dispatch_success = - caption_controller_wrapper_->DispatchTranscription(result); - if (!dispatch_success) { - // Restart captions in case the bubble was closed. - caption_controller_wrapper_->RestartCaptions(); - dispatch_success = - caption_controller_wrapper_->DispatchTranscription(result); - } - // TODO(crbug.com/373692250): add dispatch attempts error limit and report - // failure. - VLOG_IF(1, !dispatch_success) - << "Caption bubble transcription dispatch failed"; - } + // If the source and target languages for translation are the + // same then the translator will simply forward the result + // to the callback function which is set during construction and + // when the translation target language changes with the translator's + // `InitTranslationAndSetCallback` function. + // + // The callback we set here will then dispatch the result to the + // live caption bubble. + // + // This is confusing, but the next CL downstream of this one simplifies + // the translator's API and makes it clear what is happening here. + // + // TODO(377696975) re-factor translator. + translator_->Translate(result); + // `session_captions_enabled_` can be enabled but `rate_limited_sender_` is // not initialized because signin is not complete. if (!session_captions_enabled_ || !rate_limited_sender_) { @@ -208,4 +233,46 @@ rate_limited_sender_.reset(); } +void BabelOrcaProducer::OnTranslationPrefChanged() { + DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); + translator_->InitTranslationAndSetCallback( + base::BindRepeating(&BabelOrcaProducer::OnTranslationCallback, + weak_ptr_factory_.GetWeakPtr()), + pref_service_->GetString(prefs::kUserMicrophoneCaptionLanguageCode), + pref_service_->GetString(prefs::kLiveTranslateTargetLanguageCode)); +} + +void BabelOrcaProducer::OnTranslationCallback( + const std::optional<media::SpeechRecognitionResult>& result) { + if (!result) { + VLOG(1) << "Failed to recieve translation"; + return; + } + + DispatchToBubble(result.value()); +} + +void BabelOrcaProducer::DispatchToBubble( + const media::SpeechRecognitionResult& result) { + DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); + + if (!local_captions_enabled_) { + return; + } + + bool dispatch_success = + caption_controller_wrapper_->DispatchTranscription(result); + if (!dispatch_success) { + // Restart captions in case the bubble was closed. + caption_controller_wrapper_->RestartCaptions(); + dispatch_success = + caption_controller_wrapper_->DispatchTranscription(result); + } + + // TODO(crbug.com/373692250): add dispatch attempts error limit and report + // failure. + VLOG_IF(1, !dispatch_success) + << "Caption bubble transcription dispatch failed"; +} + } // namespace ash::babelorca
diff --git a/chromeos/ash/components/boca/babelorca/babel_orca_producer.h b/chromeos/ash/components/boca/babelorca/babel_orca_producer.h index 15be0467..0f0cedd5 100644 --- a/chromeos/ash/components/boca/babelorca/babel_orca_producer.h +++ b/chromeos/ash/components/boca/babelorca/babel_orca_producer.h
@@ -13,8 +13,11 @@ #include "base/memory/weak_ptr.h" #include "base/sequence_checker.h" #include "base/thread_annotations.h" +#include "chromeos/ash/components/boca/babelorca/babel_orca_caption_translator.h" #include "chromeos/ash/components/boca/babelorca/babel_orca_controller.h" #include "chromeos/ash/components/boca/babelorca/tachyon_authed_client_impl.h" +#include "components/prefs/pref_change_registrar.h" +#include "components/prefs/pref_service.h" namespace media { struct SpeechRecognitionResult; @@ -39,6 +42,8 @@ scoped_refptr<network::SharedURLLoaderFactory> url_loader_factory, std::unique_ptr<BabelOrcaSpeechRecognizer> speech_recognizer, std::unique_ptr<LiveCaptionControllerWrapper> caption_controller_wrapper, + std::unique_ptr<BabelOrcaCaptionTranslator> translator, + PrefService* pref_service, TokenManager* oauth_token_manager, TachyonRequestDataProvider* request_data_provider); @@ -47,7 +52,9 @@ std::unique_ptr<BabelOrcaSpeechRecognizer> speech_recognizer, std::unique_ptr<LiveCaptionControllerWrapper> caption_controller_wrapper, std::unique_ptr<babelorca::TachyonAuthedClient> authed_client, - TachyonRequestDataProvider* request_data_provider); + TachyonRequestDataProvider* request_data_provider, + std::unique_ptr<BabelOrcaCaptionTranslator> translator, + PrefService* pref_service); ~BabelOrcaProducer() override; @@ -68,12 +75,26 @@ void StopRecognition(); + void OnTranslationPrefChanged(); + // TODO(377696975) After re-factor this method will be unneeded. + void OnTranslationCallback( + const std::optional<media::SpeechRecognitionResult>& result); + void TranslateAndDispatchToBubble( + const media::SpeechRecognitionResult& result); + + void DispatchToBubble(const media::SpeechRecognitionResult& result); + SEQUENCE_CHECKER(sequence_checker_); const std::unique_ptr<BabelOrcaSpeechRecognizer> speech_recognizer_ GUARDED_BY_CONTEXT(sequence_checker_); const std::unique_ptr<LiveCaptionControllerWrapper> caption_controller_wrapper_ GUARDED_BY_CONTEXT(sequence_checker_); + const std::unique_ptr<BabelOrcaCaptionTranslator> translator_ + GUARDED_BY_CONTEXT(sequence_checker_); + const raw_ptr<PrefService> pref_service_; + const std::unique_ptr<PrefChangeRegistrar> pref_change_registrar_; + std::unique_ptr<babelorca::TachyonAuthedClient> authed_client_; const raw_ptr<TachyonRequestDataProvider> request_data_provider_;
diff --git a/chromeos/ash/components/boca/babelorca/babel_orca_producer_unittest.cc b/chromeos/ash/components/boca/babelorca/babel_orca_producer_unittest.cc index 792a7cf..15dec299 100644 --- a/chromeos/ash/components/boca/babelorca/babel_orca_producer_unittest.cc +++ b/chromeos/ash/components/boca/babelorca/babel_orca_producer_unittest.cc
@@ -12,16 +12,22 @@ #include "base/check_op.h" #include "base/functional/callback_forward.h" +#include "base/memory/weak_ptr.h" +#include "base/test/bind.h" #include "base/test/task_environment.h" #include "base/time/time.h" #include "chromeos/ash/components/boca/babelorca/babel_orca_speech_recognizer.h" #include "chromeos/ash/components/boca/babelorca/fakes/fake_tachyon_authed_client.h" #include "chromeos/ash/components/boca/babelorca/fakes/fake_tachyon_request_data_provider.h" #include "chromeos/ash/components/boca/babelorca/fakes/fake_token_manager.h" +#include "chromeos/ash/components/boca/babelorca/fakes/fake_translation_dispatcher.h" #include "chromeos/ash/components/boca/babelorca/live_caption_controller_wrapper.h" #include "chromeos/ash/components/boca/babelorca/proto/babel_orca_message.pb.h" #include "chromeos/ash/components/boca/babelorca/proto/tachyon.pb.h" #include "chromeos/ash/components/boca/babelorca/tachyon_request_data_provider.h" +#include "components/live_caption/pref_names.h" +#include "components/prefs/pref_registry_simple.h" +#include "components/prefs/testing_pref_service.h" #include "media/mojo/mojom/speech_recognition_result.h" #include "services/network/public/cpp/data_element.h" #include "services/network/public/cpp/resource_request.h" @@ -34,6 +40,7 @@ namespace { const std::string kLanguage = "en-US"; +const std::string kTranslationTargetLanguage = "de-DE"; class MockSpeechRecognizer : public BabelOrcaSpeechRecognizer { public: @@ -61,17 +68,34 @@ MOCK_METHOD(void, RestartCaptions, (), (override)); }; +void RegisterStringPrefs(TestingPrefServiceSimple* pref_service) { + pref_service->registry()->RegisterStringPref( + prefs::kUserMicrophoneCaptionLanguageCode, kLanguage); + // For most tests we aren't testing translations, in the translation + // test specifically we change this value to the kTranslationTargetLanguage. + pref_service->registry()->RegisterStringPref( + prefs::kLiveTranslateTargetLanguageCode, kLanguage); +} + class BabelOrcaProducerTest : public testing::Test { protected: using TranscriptionResultCallback = BabelOrcaSpeechRecognizer::TranscriptionResultCallback; void SetUp() override { + RegisterStringPrefs(&pref_service_); speech_recognizer_ = std::make_unique<testing::NiceMock<MockSpeechRecognizer>>(); caption_controller_wrapper_ = std::make_unique<testing::NiceMock<MockLiveCaptionControllerWrapper>>(); authed_client_ = std::make_unique<FakeTachyonAuthedClient>(); + + auto fake_translation_dispatcher = + std::make_unique<FakeBabelOrcaTranslationDispatcher>(); + translation_dispatcher_ = fake_translation_dispatcher->GetWeakPtr(); + + translator_ = std::make_unique<BabelOrcaCaptionTranslator>( + std::move(fake_translation_dispatcher)); } media::SpeechRecognitionResult GetTranscriptFromRequest( @@ -92,6 +116,9 @@ std::unique_ptr<MockLiveCaptionControllerWrapper> caption_controller_wrapper_; std::unique_ptr<FakeTachyonAuthedClient> authed_client_; FakeTachyonRequestDataProvider request_data_provider_; + base::WeakPtr<FakeBabelOrcaTranslationDispatcher> translation_dispatcher_; + std::unique_ptr<BabelOrcaCaptionTranslator> translator_; + TestingPrefServiceSimple pref_service_; }; TEST_F(BabelOrcaProducerTest, EnableLocalCaptionsOutOfSession) { @@ -103,7 +130,7 @@ BabelOrcaProducer producer( url_loader_factory_.GetSafeWeakWrapper(), std::move(speech_recognizer_), std::move(caption_controller_wrapper_), std::move(authed_client_), - &request_data_provider_); + &request_data_provider_, std::move(translator_), &pref_service_); EXPECT_CALL(*caption_controller_wrapper_ptr, ToggleLiveCaptionForBabelOrca(true)) @@ -145,7 +172,7 @@ BabelOrcaProducer producer( url_loader_factory_.GetSafeWeakWrapper(), std::move(speech_recognizer_), std::move(caption_controller_wrapper_), std::move(authed_client_), - &request_data_provider_); + &request_data_provider_, std::move(translator_), &pref_service_); EXPECT_CALL(*speech_recognizer_ptr, ObserveTranscriptionResult).Times(0); EXPECT_CALL(*speech_recognizer_ptr, Start).Times(0); @@ -164,10 +191,10 @@ caption_controller_wrapper_.get(); FakeTachyonAuthedClient* authed_client_ptr = authed_client_.get(); TranscriptionResultCallback transcript_cb; - BabelOrcaProducer producer(url_loader_factory_.GetSafeWeakWrapper(), - std::move(speech_recognizer_), - std::move(caption_controller_wrapper_), - std::move(authed_client_), &data_provider); + BabelOrcaProducer producer( + url_loader_factory_.GetSafeWeakWrapper(), std::move(speech_recognizer_), + std::move(caption_controller_wrapper_), std::move(authed_client_), + &data_provider, std::move(translator_), &pref_service_); producer.OnSessionStarted(); producer.OnSessionCaptionConfigUpdated(/*session_captions_enabled=*/true, @@ -231,10 +258,10 @@ caption_controller_wrapper_.get(); FakeTachyonAuthedClient* authed_client_ptr = authed_client_.get(); TranscriptionResultCallback transcript_cb; - BabelOrcaProducer producer(url_loader_factory_.GetSafeWeakWrapper(), - std::move(speech_recognizer_), - std::move(caption_controller_wrapper_), - std::move(authed_client_), &data_provider); + BabelOrcaProducer producer( + url_loader_factory_.GetSafeWeakWrapper(), std::move(speech_recognizer_), + std::move(caption_controller_wrapper_), std::move(authed_client_), + &data_provider, std::move(translator_), &pref_service_); producer.OnSessionStarted(); @@ -289,10 +316,10 @@ "group-id", "sender@email.com"); MockSpeechRecognizer* speech_recognizer_ptr = speech_recognizer_.get(); TranscriptionResultCallback transcript_cb; - BabelOrcaProducer producer(url_loader_factory_.GetSafeWeakWrapper(), - std::move(speech_recognizer_), - std::move(caption_controller_wrapper_), - std::move(authed_client_), &data_provider); + BabelOrcaProducer producer( + url_loader_factory_.GetSafeWeakWrapper(), std::move(speech_recognizer_), + std::move(caption_controller_wrapper_), std::move(authed_client_), + &data_provider, std::move(translator_), &pref_service_); producer.OnSessionStarted(); @@ -311,10 +338,10 @@ "group-id", "sender@email.com"); MockSpeechRecognizer* speech_recognizer_ptr = speech_recognizer_.get(); TranscriptionResultCallback transcript_cb; - BabelOrcaProducer producer(url_loader_factory_.GetSafeWeakWrapper(), - std::move(speech_recognizer_), - std::move(caption_controller_wrapper_), - std::move(authed_client_), &data_provider); + BabelOrcaProducer producer( + url_loader_factory_.GetSafeWeakWrapper(), std::move(speech_recognizer_), + std::move(caption_controller_wrapper_), std::move(authed_client_), + &data_provider, std::move(translator_), &pref_service_); producer.OnSessionStarted(); producer.OnSessionCaptionConfigUpdated(/*session_captions_enabled=*/true, @@ -333,10 +360,10 @@ "group-id", "sender@email.com"); MockSpeechRecognizer* speech_recognizer_ptr = speech_recognizer_.get(); TranscriptionResultCallback transcript_cb; - BabelOrcaProducer producer(url_loader_factory_.GetSafeWeakWrapper(), - std::move(speech_recognizer_), - std::move(caption_controller_wrapper_), - std::move(authed_client_), &data_provider); + BabelOrcaProducer producer( + url_loader_factory_.GetSafeWeakWrapper(), std::move(speech_recognizer_), + std::move(caption_controller_wrapper_), std::move(authed_client_), + &data_provider, std::move(translator_), &pref_service_); producer.OnSessionStarted(); producer.OnSessionCaptionConfigUpdated(/*session_captions_enabled=*/true, @@ -358,10 +385,10 @@ "group-id", "sender@email.com"); MockSpeechRecognizer* speech_recognizer_ptr = speech_recognizer_.get(); TranscriptionResultCallback transcript_cb; - BabelOrcaProducer producer(url_loader_factory_.GetSafeWeakWrapper(), - std::move(speech_recognizer_), - std::move(caption_controller_wrapper_), - std::move(authed_client_), &data_provider); + BabelOrcaProducer producer( + url_loader_factory_.GetSafeWeakWrapper(), std::move(speech_recognizer_), + std::move(caption_controller_wrapper_), std::move(authed_client_), + &data_provider, std::move(translator_), &pref_service_); producer.OnSessionStarted(); producer.OnSessionCaptionConfigUpdated(/*session_captions_enabled=*/true, @@ -383,10 +410,10 @@ MockLiveCaptionControllerWrapper* caption_controller_wrapper_ptr = caption_controller_wrapper_.get(); TranscriptionResultCallback transcript_cb; - BabelOrcaProducer producer(url_loader_factory_.GetSafeWeakWrapper(), - std::move(speech_recognizer_), - std::move(caption_controller_wrapper_), - std::move(authed_client_), &data_provider); + BabelOrcaProducer producer( + url_loader_factory_.GetSafeWeakWrapper(), std::move(speech_recognizer_), + std::move(caption_controller_wrapper_), std::move(authed_client_), + &data_provider, std::move(translator_), &pref_service_); producer.OnSessionStarted(); EXPECT_CALL(*speech_recognizer_ptr, ObserveTranscriptionResult).Times(1); @@ -409,10 +436,10 @@ MockLiveCaptionControllerWrapper* caption_controller_wrapper_ptr = caption_controller_wrapper_.get(); TranscriptionResultCallback transcript_cb; - BabelOrcaProducer producer(url_loader_factory_.GetSafeWeakWrapper(), - std::move(speech_recognizer_), - std::move(caption_controller_wrapper_), - std::move(authed_client_), &data_provider); + BabelOrcaProducer producer( + url_loader_factory_.GetSafeWeakWrapper(), std::move(speech_recognizer_), + std::move(caption_controller_wrapper_), std::move(authed_client_), + &data_provider, std::move(translator_), &pref_service_); producer.OnSessionStarted(); producer.OnLocalCaptionConfigUpdated(/*local_captions_enabled=*/true); @@ -439,10 +466,10 @@ caption_controller_wrapper_.get(); FakeTachyonAuthedClient* authed_client_ptr = authed_client_.get(); TranscriptionResultCallback transcript_cb; - BabelOrcaProducer producer(url_loader_factory_.GetSafeWeakWrapper(), - std::move(speech_recognizer_), - std::move(caption_controller_wrapper_), - std::move(authed_client_), &data_provider); + BabelOrcaProducer producer( + url_loader_factory_.GetSafeWeakWrapper(), std::move(speech_recognizer_), + std::move(caption_controller_wrapper_), std::move(authed_client_), + &data_provider, std::move(translator_), &pref_service_); producer.OnSessionStarted(); @@ -489,7 +516,7 @@ BabelOrcaProducer producer( url_loader_factory_.GetSafeWeakWrapper(), std::move(speech_recognizer_), std::move(caption_controller_wrapper_), std::move(authed_client_), - &request_data_provider_); + &request_data_provider_, std::move(translator_), &pref_service_); EXPECT_CALL(*speech_recognizer_ptr, ObserveTranscriptionResult) .WillOnce( @@ -507,5 +534,111 @@ transcript_cb.Run(transcript, kLanguage); } +TEST_F(BabelOrcaProducerTest, EnableTranslations) { + media::SpeechRecognitionResult transcript1("transcript1", /*is_final=*/true); + media::SpeechRecognitionResult transcript2("transcript3", /*is_final=*/true); + std::string translated_transcript_string = "translated_transcript"; + media::SpeechRecognitionResult translated_transcript( + translated_transcript_string, /*is_final=*/true); + FakeTachyonRequestDataProvider data_provider("session-id", + /*tachyon_token=*/std::nullopt, + "group-id", "sender@email.com"); + MockSpeechRecognizer* speech_recognizer_ptr = speech_recognizer_.get(); + MockLiveCaptionControllerWrapper* caption_controller_wrapper_ptr = + caption_controller_wrapper_.get(); + TranscriptionResultCallback transcript_cb; + BabelOrcaProducer producer( + url_loader_factory_.GetSafeWeakWrapper(), std::move(speech_recognizer_), + std::move(caption_controller_wrapper_), std::move(authed_client_), + &data_provider, std::move(translator_), &pref_service_); + + producer.OnSessionStarted(); + + EXPECT_CALL(*caption_controller_wrapper_ptr, + ToggleLiveCaptionForBabelOrca(true)) + .Times(1); + EXPECT_CALL(*speech_recognizer_ptr, ObserveTranscriptionResult) + .WillOnce( + [&transcript_cb](TranscriptionResultCallback transcript_cb_param) { + transcript_cb = std::move(transcript_cb_param); + }); + EXPECT_CALL(*speech_recognizer_ptr, Start).Times(1); + translation_dispatcher_->InjectTranslationResult( + translated_transcript_string); + producer.OnLocalCaptionConfigUpdated(/*local_captions_enabled=*/true); + + ASSERT_TRUE(transcript_cb); + EXPECT_CALL(*caption_controller_wrapper_ptr, + DispatchTranscription(transcript1)) + .WillOnce(testing::Return(true)); + transcript_cb.Run(transcript1, kLanguage); + + // Now we set a target language that is distinct from the source + // language to ensure that we translate when relevant. + pref_service_.SetString(prefs::kLiveTranslateTargetLanguageCode, + kTranslationTargetLanguage); + + EXPECT_CALL(*caption_controller_wrapper_ptr, + DispatchTranscription(translated_transcript)) + .WillOnce(testing::Return(true)); + transcript_cb.Run(transcript2, kLanguage); +} + +TEST_F(BabelOrcaProducerTest, TranslationsDontAffectSentTranscripts) { + media::SpeechRecognitionResult transcript("transcript1", /*is_final=*/true); + std::string translated_transcript_string = "translated_transcript"; + media::SpeechRecognitionResult translated_transcript( + translated_transcript_string, /*is_final=*/true); + FakeTachyonRequestDataProvider data_provider("session-id", + /*tachyon_token=*/std::nullopt, + "group-id", "sender@email.com"); + MockSpeechRecognizer* speech_recognizer_ptr = speech_recognizer_.get(); + MockLiveCaptionControllerWrapper* caption_controller_wrapper_ptr = + caption_controller_wrapper_.get(); + TranscriptionResultCallback transcript_cb; + FakeTachyonAuthedClient* authed_client_ptr = authed_client_.get(); + BabelOrcaProducer producer( + url_loader_factory_.GetSafeWeakWrapper(), std::move(speech_recognizer_), + std::move(caption_controller_wrapper_), std::move(authed_client_), + &data_provider, std::move(translator_), &pref_service_); + + producer.OnSessionStarted(); + + EXPECT_CALL(*caption_controller_wrapper_ptr, + ToggleLiveCaptionForBabelOrca(true)) + .Times(1); + EXPECT_CALL(*speech_recognizer_ptr, ObserveTranscriptionResult) + .WillOnce( + [&transcript_cb](TranscriptionResultCallback transcript_cb_param) { + transcript_cb = std::move(transcript_cb_param); + }); + EXPECT_CALL(*speech_recognizer_ptr, Start).Times(1); + pref_service_.SetString(prefs::kLiveTranslateTargetLanguageCode, + kTranslationTargetLanguage); + translation_dispatcher_->InjectTranslationResult( + translated_transcript_string); + producer.OnLocalCaptionConfigUpdated(/*local_captions_enabled=*/true); + // Session translations are only relevant for consumers. Translations + // on the producer is controlled by the TranslationTargetLanguage + // preference. + producer.OnSessionCaptionConfigUpdated(/*session_captions_enabled=*/true, + /*translations_enabled=*/false); + base::OnceCallback<void(bool)> signin_cb = data_provider.TakeSigninCb(); + ASSERT_FALSE(signin_cb.is_null()); + data_provider.set_tachyon_token("tachyon_token"); + std::move(signin_cb).Run(true); + + ASSERT_TRUE(transcript_cb); + EXPECT_CALL(*caption_controller_wrapper_ptr, + DispatchTranscription(translated_transcript)) + .WillOnce(testing::Return(true)); + transcript_cb.Run(transcript, kLanguage); + authed_client_ptr->WaitForRequest(); + media::SpeechRecognitionResult sent_transcript = + GetTranscriptFromRequest(authed_client_ptr->GetRequestString()); + // Something has gone wrong if we got the translated string here. + EXPECT_EQ(transcript, sent_transcript); +} + } // namespace } // namespace ash::babelorca
diff --git a/chromeos/ash/components/boca/babelorca/fakes/fake_translation_dispatcher.cc b/chromeos/ash/components/boca/babelorca/fakes/fake_translation_dispatcher.cc index bcdd620..4562fe9 100644 --- a/chromeos/ash/components/boca/babelorca/fakes/fake_translation_dispatcher.cc +++ b/chromeos/ash/components/boca/babelorca/fakes/fake_translation_dispatcher.cc
@@ -19,7 +19,12 @@ const std::string& target_language, captions::OnTranslateEventCallback callback) { ++num_translation_calls_; - std::move(callback).Run(result); + std::move(callback).Run(injected_result_.value_or(result)); +} + +void FakeBabelOrcaTranslationDispatcher::InjectTranslationResult( + const std::string& translation) { + injected_result_ = translation; } } // namespace ash::babelorca
diff --git a/chromeos/ash/components/boca/babelorca/fakes/fake_translation_dispatcher.h b/chromeos/ash/components/boca/babelorca/fakes/fake_translation_dispatcher.h index e3099fc2..75db1a59 100644 --- a/chromeos/ash/components/boca/babelorca/fakes/fake_translation_dispatcher.h +++ b/chromeos/ash/components/boca/babelorca/fakes/fake_translation_dispatcher.h
@@ -6,16 +6,23 @@ #define CHROMEOS_ASH_COMPONENTS_BOCA_BABELORCA_FAKES_FAKE_TRANSLATION_DISPATCHER_H_ #include <memory> +#include <optional> #include <string> #include "chromeos/ash/components/boca/babelorca/babel_orca_translation_dispatcher.h" #include "components/live_caption/translation_dispatcher.h" +#include "media/mojo/mojom/speech_recognition_result.h" namespace ash::babelorca { class FakeBabelOrcaTranslationDispatcher : public BabelOrcaTranslationDipsatcher { public: + using CustomGetTranslationHandle = base::RepeatingCallback<void( + const std::string& result, + const std::string& source_language, + const std::string& target_language, + captions::OnTranslateEventCallback callback)>; FakeBabelOrcaTranslationDispatcher(); ~FakeBabelOrcaTranslationDispatcher() override; @@ -26,12 +33,16 @@ int GetNumGetTranslationCalls() { return num_translation_calls_; } + void InjectTranslationResult(const std::string& translation); + base::WeakPtr<FakeBabelOrcaTranslationDispatcher> GetWeakPtr() { return weak_ptr_factory_.GetWeakPtr(); } private: std::atomic<size_t> num_translation_calls_ = 0; + std::optional<std::string> injected_result_; + base::WeakPtrFactory<FakeBabelOrcaTranslationDispatcher> weak_ptr_factory_{ this}; };
diff --git a/chromeos/dbus/power/power_policy_controller.cc b/chromeos/dbus/power/power_policy_controller.cc index 484c8ef..d330ee9 100644 --- a/chromeos/dbus/power/power_policy_controller.cc +++ b/chromeos/dbus/power/power_policy_controller.cc
@@ -577,6 +577,10 @@ } } + if (values.charge_limit_enabled.has_value()) { + prefs_policy_.set_charge_limit_enabled(values.charge_limit_enabled.value()); + } + prefs_were_set_ = true; SendCurrentPolicy(); }
diff --git a/chromeos/dbus/power/power_policy_controller.h b/chromeos/dbus/power/power_policy_controller.h index 2f9db445..ab8f152 100644 --- a/chromeos/dbus/power/power_policy_controller.h +++ b/chromeos/dbus/power/power_policy_controller.h
@@ -119,6 +119,8 @@ std::optional<bool> send_feedback_if_undimmed; // Only set adaptive_charging_enabled in policy proto if this field is set. std::optional<bool> adaptive_charging_enabled; + // Only set charge_limit_enabled in policy proto if this field is set. + std::optional<bool> charge_limit_enabled; // Adaptive charging configs, only set when adaptive_charging_enabled. // Configurable via base::FeatureParam.
diff --git a/clank b/clank index 3be7352..12d8c4c 160000 --- a/clank +++ b/clank
@@ -1 +1 @@ -Subproject commit 3be735239add5952890b3fd30b6e3857d9188ce4 +Subproject commit 12d8c4cde9da5b8bffbb33956e0a3f780656c2f2
diff --git a/components/affiliations/core/browser/facet_manager_unittest.cc b/components/affiliations/core/browser/facet_manager_unittest.cc index b024d7b..f01aa1844 100644 --- a/components/affiliations/core/browser/facet_manager_unittest.cc +++ b/components/affiliations/core/browser/facet_manager_unittest.cc
@@ -2,16 +2,12 @@ // 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/40285824): Remove this and convert code to safer constructs. -#pragma allow_unsafe_buffers -#endif - #include "components/affiliations/core/browser/facet_manager.h" #include <stddef.h> #include <algorithm> +#include <array> #include <memory> #include "base/functional/bind.h" @@ -581,10 +577,11 @@ // [F-------------------------F-----------------------F------------------> // TEST_F(FacetManagerTest, PrefetchWithEmptyOrStaleCache) { - struct { + struct TestCases { base::TimeDelta prefetch_length; size_t expected_num_fetches; - } const kTestCases[] = { + }; + const auto kTestCases = std::to_array<TestCases>({ // Note: Zero length prefetches are tested later. {GetShortTestPeriod(), 1}, {GetCacheSoftExpiryPeriod(), 1}, @@ -592,12 +589,14 @@ {GetCacheHardExpiryPeriod() + GetShortTestPeriod(), 2}, {GetCacheSoftExpiryPeriod() + GetCacheSoftExpiryPeriod(), 2}, {GetCacheHardExpiryPeriod() + GetCacheSoftExpiryPeriod(), 2}, - {base::TimeDelta::Max(), 3}}; + {base::TimeDelta::Max(), 3}, + }); - const base::TimeDelta kExpectedFetchTimes[] = { + const auto kExpectedFetchTimes = std::to_array<base::TimeDelta>({ base::TimeDelta(), GetCacheSoftExpiryPeriod(), - 2 * GetCacheSoftExpiryPeriod()}; + 2 * GetCacheSoftExpiryPeriod(), + }); const base::TimeDelta kMaximumTestDuration = 2 * GetCacheHardExpiryPeriod(); @@ -688,11 +687,12 @@ // : [F----------------------F-------------> // TEST_F(FacetManagerTest, PrefetchTriggeredFetchSchedulingAfterNonEmptyCache) { - struct { + struct TestCases { base::TimeDelta prefetch_start; base::TimeDelta prefetch_end; size_t expected_num_fetches; - } const kTestCases[] = { + }; + const auto kTestCases = std::to_array<TestCases>({ // Note: Zero length prefetches are tested later. // Prefetch starts at the exact time the data was incidentally fetched. @@ -702,39 +702,34 @@ {base::TimeDelta(), GetCacheHardExpiryPeriod() + GetShortTestPeriod(), 1}, {base::TimeDelta(), 2 * GetCacheSoftExpiryPeriod(), 1}, {base::TimeDelta(), - GetCacheSoftExpiryPeriod() + GetCacheHardExpiryPeriod(), - 1}, + GetCacheSoftExpiryPeriod() + GetCacheHardExpiryPeriod(), 1}, {base::TimeDelta(), base::TimeDelta::Max(), 2}, // Prefetch starts a short time after the unrelated fetch. {GetShortTestPeriod(), 2 * GetShortTestPeriod(), 0}, {GetShortTestPeriod(), GetCacheSoftExpiryPeriod(), 0}, {GetShortTestPeriod(), GetCacheHardExpiryPeriod(), 0}, - {GetShortTestPeriod(), - GetCacheHardExpiryPeriod() + GetShortTestPeriod(), + {GetShortTestPeriod(), GetCacheHardExpiryPeriod() + GetShortTestPeriod(), 1}, {GetShortTestPeriod(), 2 * GetCacheSoftExpiryPeriod(), 1}, {GetShortTestPeriod(), - GetCacheSoftExpiryPeriod() + GetCacheHardExpiryPeriod(), - 1}, + GetCacheSoftExpiryPeriod() + GetCacheHardExpiryPeriod(), 1}, {GetShortTestPeriod(), base::TimeDelta::Max(), 2}, // Prefetch starts at the soft expiry time of the unrelated fetch. {GetCacheSoftExpiryPeriod(), - GetCacheSoftExpiryPeriod() + GetShortTestPeriod(), - 0}, + GetCacheSoftExpiryPeriod() + GetShortTestPeriod(), 0}, {GetCacheSoftExpiryPeriod(), GetCacheHardExpiryPeriod(), 0}, - {GetShortTestPeriod(), - GetCacheHardExpiryPeriod() + GetShortTestPeriod(), + {GetShortTestPeriod(), GetCacheHardExpiryPeriod() + GetShortTestPeriod(), 1}, {GetCacheSoftExpiryPeriod(), 2 * GetCacheSoftExpiryPeriod(), 1}, {GetCacheSoftExpiryPeriod(), - GetCacheSoftExpiryPeriod() + GetCacheHardExpiryPeriod(), - 1}, - {GetCacheSoftExpiryPeriod(), base::TimeDelta::Max(), 2}}; + GetCacheSoftExpiryPeriod() + GetCacheHardExpiryPeriod(), 1}, + {GetCacheSoftExpiryPeriod(), base::TimeDelta::Max(), 2}, + }); - const base::TimeDelta kExpectedFetchTimes[] = { - GetCacheSoftExpiryPeriod(), 2 * GetCacheSoftExpiryPeriod()}; + const auto kExpectedFetchTimes = std::to_array<base::TimeDelta>( + {GetCacheSoftExpiryPeriod(), 2 * GetCacheSoftExpiryPeriod()}); const base::TimeDelta kMaximumTestDuration = 2 * GetCacheHardExpiryPeriod(); @@ -772,34 +767,32 @@ // Last block of tests from above. TEST_F(FacetManagerTest, PrefetchTriggeredFetchSchedulingAfterNonEmptyCache2) { - struct { + struct TestCases { base::TimeDelta prefetch_start; base::TimeDelta prefetch_end; size_t expected_num_fetches; - } const kTestCases[] = { + }; + const auto kTestCases = std::to_array<TestCases>({ // Note: Zero length prefetches are tested later. // Prefetch starts between the soft and hard expiry time. {GetCacheSoftExpiryPeriod() + GetShortTestPeriod(), - GetCacheHardExpiryPeriod(), - 0}, + GetCacheHardExpiryPeriod(), 0}, {GetCacheSoftExpiryPeriod() + GetShortTestPeriod(), - GetCacheHardExpiryPeriod() + GetShortTestPeriod(), - 1}, + GetCacheHardExpiryPeriod() + GetShortTestPeriod(), 1}, {GetCacheSoftExpiryPeriod() + GetShortTestPeriod(), - 2 * GetCacheSoftExpiryPeriod() + GetShortTestPeriod(), - 1}, + 2 * GetCacheSoftExpiryPeriod() + GetShortTestPeriod(), 1}, {GetCacheSoftExpiryPeriod() + GetShortTestPeriod(), GetCacheHardExpiryPeriod() + GetCacheSoftExpiryPeriod() + GetShortTestPeriod(), 1}, {GetCacheSoftExpiryPeriod() + GetShortTestPeriod(), - base::TimeDelta::Max(), - 2}}; + base::TimeDelta::Max(), 2}, + }); - const base::TimeDelta kExpectedFetchTimes[] = { - GetCacheSoftExpiryPeriod() + GetShortTestPeriod(), - 2 * GetCacheSoftExpiryPeriod() + GetShortTestPeriod()}; + const auto kExpectedFetchTimes = std::to_array<base::TimeDelta>( + {GetCacheSoftExpiryPeriod() + GetShortTestPeriod(), + 2 * GetCacheSoftExpiryPeriod() + GetShortTestPeriod()}); const base::TimeDelta kMaximumTestDuration = 2 * GetCacheHardExpiryPeriod(); @@ -887,18 +880,20 @@ // : : : [----): // TEST_F(FacetManagerTest, NestedPrefetches) { - struct { + struct FirstPrefetchParams { base::TimeDelta prefetch_length; size_t expected_num_fetches; - } const kFirstPrefetchParams[] = { + }; + const auto kFirstPrefetchParams = std::to_array<FirstPrefetchParams>({ {GetCacheHardExpiryPeriod() + GetCacheSoftExpiryPeriod(), 2}, {base::TimeDelta::Max(), 3}, - }; + }); - struct { + struct SecondPrefetchParams { base::TimeDelta second_prefetch_start; base::TimeDelta second_prefetch_end; - } const kSecondPrefetchParams[] = { + }; + const auto kSecondPrefetchParams = std::to_array<SecondPrefetchParams>({ {base::TimeDelta(), GetShortTestPeriod()}, {GetShortTestPeriod(), 2 * GetShortTestPeriod()}, {GetShortTestPeriod(), GetCacheSoftExpiryPeriod()}, @@ -919,12 +914,14 @@ {2 * GetCacheSoftExpiryPeriod(), GetCacheHardExpiryPeriod() + GetCacheSoftExpiryPeriod()}, {2 * GetCacheSoftExpiryPeriod() + GetShortTestPeriod(), - GetCacheHardExpiryPeriod() + GetCacheSoftExpiryPeriod()}}; + GetCacheHardExpiryPeriod() + GetCacheSoftExpiryPeriod()}, + }); - const base::TimeDelta kExpectedFetchTimes[] = { + const auto kExpectedFetchTimes = std::to_array<base::TimeDelta>({ base::TimeDelta(), GetCacheSoftExpiryPeriod(), - 2 * GetCacheSoftExpiryPeriod()}; + 2 * GetCacheSoftExpiryPeriod(), + }); const base::TimeDelta kTestDuration = GetCacheSoftExpiryPeriod() + GetCacheHardExpiryPeriod(); @@ -972,24 +969,25 @@ // : [F----------------------F-----------> // TEST_F(FacetManagerTest, OverlappingPrefetches) { - struct { + struct TestCases { base::TimeDelta second_prefetch_start; base::TimeDelta second_prefetch_end; size_t expected_num_fetches; - } const kTestCases[] = { + }; + const auto kTestCases = std::to_array<TestCases>({ {GetShortTestPeriod(), - GetCacheSoftExpiryPeriod() + GetCacheHardExpiryPeriod(), - 2}, + GetCacheSoftExpiryPeriod() + GetCacheHardExpiryPeriod(), 2}, {GetShortTestPeriod(), base::TimeDelta::Max(), 3}, {GetCacheSoftExpiryPeriod(), - GetCacheSoftExpiryPeriod() + GetCacheHardExpiryPeriod(), - 2}, - {GetCacheSoftExpiryPeriod(), base::TimeDelta::Max(), 3}}; + GetCacheSoftExpiryPeriod() + GetCacheHardExpiryPeriod(), 2}, + {GetCacheSoftExpiryPeriod(), base::TimeDelta::Max(), 3}, + }); - const base::TimeDelta kExpectedFetchTimes[] = { + const auto kExpectedFetchTimes = std::to_array<base::TimeDelta>({ base::TimeDelta(), GetCacheSoftExpiryPeriod(), - 2 * GetCacheSoftExpiryPeriod()}; + 2 * GetCacheSoftExpiryPeriod(), + }); const base::TimeDelta kTestDuration = GetCacheSoftExpiryPeriod() + GetCacheHardExpiryPeriod(); @@ -1044,76 +1042,50 @@ // [NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN... // TEST_F(FacetManagerTest, PrefetchWithNonInstantFetches) { - struct { + struct TestCases { base::TimeDelta prefetch_length; base::TimeDelta expected_fetch_time1; base::TimeDelta fetch_completion_delay1; base::TimeDelta expected_fetch_time2; base::TimeDelta fetch_completion_delay2; - } const kTestCases[] = { - {GetCacheHardExpiryPeriod(), - base::TimeDelta(), - GetShortTestPeriod(), - base::TimeDelta::Max(), - base::TimeDelta::Max()}, + }; + const auto kTestCases = std::to_array<TestCases>({ + {GetCacheHardExpiryPeriod(), base::TimeDelta(), GetShortTestPeriod(), + base::TimeDelta::Max(), base::TimeDelta::Max()}, {GetCacheHardExpiryPeriod() + GetCacheSoftExpiryPeriod(), - base::TimeDelta(), - base::TimeDelta(), - GetCacheSoftExpiryPeriod(), + base::TimeDelta(), base::TimeDelta(), GetCacheSoftExpiryPeriod(), GetCacheSoftExpiryPeriod() + GetShortTestPeriod()}, {GetCacheHardExpiryPeriod() + GetCacheSoftExpiryPeriod(), - base::TimeDelta(), - GetCacheSoftExpiryPeriod(), - base::TimeDelta::Max(), + base::TimeDelta(), GetCacheSoftExpiryPeriod(), base::TimeDelta::Max(), base::TimeDelta::Max()}, - {GetCacheHardExpiryPeriod() + GetShortTestPeriod(), - base::TimeDelta(), - GetShortTestPeriod(), - base::TimeDelta::Max(), - base::TimeDelta::Max()}, + {GetCacheHardExpiryPeriod() + GetShortTestPeriod(), base::TimeDelta(), + GetShortTestPeriod(), base::TimeDelta::Max(), base::TimeDelta::Max()}, {GetCacheHardExpiryPeriod() + GetCacheSoftExpiryPeriod() + GetShortTestPeriod(), - base::TimeDelta(), - base::TimeDelta(), - GetCacheSoftExpiryPeriod(), + base::TimeDelta(), base::TimeDelta(), GetCacheSoftExpiryPeriod(), GetCacheSoftExpiryPeriod() + GetShortTestPeriod()}, {GetCacheHardExpiryPeriod() + GetCacheSoftExpiryPeriod() + GetShortTestPeriod(), - base::TimeDelta(), - GetCacheSoftExpiryPeriod() + GetShortTestPeriod(), - base::TimeDelta::Max(), - base::TimeDelta::Max()}, + base::TimeDelta(), GetCacheSoftExpiryPeriod() + GetShortTestPeriod(), + base::TimeDelta::Max(), base::TimeDelta::Max()}, {GetCacheHardExpiryPeriod() + GetCacheSoftExpiryPeriod() + 2 * GetShortTestPeriod(), - base::TimeDelta(), - GetShortTestPeriod(), + base::TimeDelta(), GetShortTestPeriod(), GetCacheSoftExpiryPeriod() + GetShortTestPeriod(), GetCacheSoftExpiryPeriod() + 2 * GetShortTestPeriod()}, - {GetShortTestPeriod(), - base::TimeDelta(), - base::TimeDelta::Max(), - base::TimeDelta::Max(), - base::TimeDelta::Max()}, - {GetCacheHardExpiryPeriod(), - base::TimeDelta(), - base::TimeDelta::Max(), - base::TimeDelta::Max(), + {GetShortTestPeriod(), base::TimeDelta(), base::TimeDelta::Max(), + base::TimeDelta::Max(), base::TimeDelta::Max()}, + {GetCacheHardExpiryPeriod(), base::TimeDelta(), base::TimeDelta::Max(), + base::TimeDelta::Max(), base::TimeDelta::Max()}, + {GetCacheSoftExpiryPeriod() + GetCacheHardExpiryPeriod(), + base::TimeDelta(), base::TimeDelta(), GetCacheSoftExpiryPeriod(), base::TimeDelta::Max()}, {GetCacheSoftExpiryPeriod() + GetCacheHardExpiryPeriod(), - base::TimeDelta(), - base::TimeDelta(), - GetCacheSoftExpiryPeriod(), + base::TimeDelta(), base::TimeDelta::Max(), base::TimeDelta::Max(), base::TimeDelta::Max()}, - {GetCacheSoftExpiryPeriod() + GetCacheHardExpiryPeriod(), - base::TimeDelta(), - base::TimeDelta::Max(), - base::TimeDelta::Max(), - base::TimeDelta::Max()}, - {base::TimeDelta::Max(), - base::TimeDelta(), - base::TimeDelta::Max(), - base::TimeDelta::Max(), - base::TimeDelta::Max()}}; + {base::TimeDelta::Max(), base::TimeDelta(), base::TimeDelta::Max(), + base::TimeDelta::Max(), base::TimeDelta::Max()}, + }); const base::TimeDelta kMaximumTestDuration = GetCacheSoftExpiryPeriod() + GetCacheHardExpiryPeriod() + @@ -1171,33 +1143,32 @@ // [F-------------------------F-----------------------F--X- - - - -> // TEST_F(FacetManagerTest, CancelPrefetch) { - struct { + struct TestCases { base::TimeDelta prefetch_length; base::TimeDelta cancel_time; size_t expected_num_fetches; - } const kTestCases[] = { + }; + const auto kTestCases = std::to_array<TestCases>({ {GetCacheHardExpiryPeriod(), GetShortTestPeriod(), 1}, {GetCacheHardExpiryPeriod(), GetCacheSoftExpiryPeriod(), 1}, {GetCacheHardExpiryPeriod(), - GetCacheSoftExpiryPeriod() + GetShortTestPeriod(), - 1}, + GetCacheSoftExpiryPeriod() + GetShortTestPeriod(), 1}, {base::TimeDelta::Max(), GetShortTestPeriod(), 1}, {base::TimeDelta::Max(), GetCacheSoftExpiryPeriod(), 1}, {base::TimeDelta::Max(), - GetCacheSoftExpiryPeriod() + GetShortTestPeriod(), - 2}, + GetCacheSoftExpiryPeriod() + GetShortTestPeriod(), 2}, {base::TimeDelta::Max(), - GetCacheHardExpiryPeriod() + GetShortTestPeriod(), - 2}, + GetCacheHardExpiryPeriod() + GetShortTestPeriod(), 2}, {base::TimeDelta::Max(), 2 * GetCacheSoftExpiryPeriod(), 2}, {base::TimeDelta::Max(), - 2 * GetCacheSoftExpiryPeriod() + GetShortTestPeriod(), - 3}}; + 2 * GetCacheSoftExpiryPeriod() + GetShortTestPeriod(), 3}, + }); - const base::TimeDelta kExpectedFetchTimes[] = { + const auto kExpectedFetchTimes = std::to_array<base::TimeDelta>({ base::TimeDelta(), GetCacheSoftExpiryPeriod(), - 2 * GetCacheSoftExpiryPeriod()}; + 2 * GetCacheSoftExpiryPeriod(), + }); for (size_t i = 0; i < std::size(kTestCases); ++i) { SCOPED_TRACE(testing::Message() << "Test case: #" << i);
diff --git a/components/autofill/content/browser/content_autofill_driver.cc b/components/autofill/content/browser/content_autofill_driver.cc index 8545c25..d249450 100644 --- a/components/autofill/content/browser/content_autofill_driver.cc +++ b/components/autofill/content/browser/content_autofill_driver.cc
@@ -387,7 +387,7 @@ blink::RemoteFrameToken blink_remote_token( absl::get<RemoteFrameToken>(query).value()); content::RenderFrameHost* remote_rfh = - content::RenderFrameHost::FromPlaceholderToken(rph->GetID(), + content::RenderFrameHost::FromPlaceholderToken(rph->GetDeprecatedID(), blink_remote_token); if (!remote_rfh) { return std::nullopt;
diff --git a/components/autofill/ios/browser/autofill_driver_ios_factory_unittest.mm b/components/autofill/ios/browser/autofill_driver_ios_factory_unittest.mm index ab44146..5b736cc 100644 --- a/components/autofill/ios/browser/autofill_driver_ios_factory_unittest.mm +++ b/components/autofill/ios/browser/autofill_driver_ios_factory_unittest.mm
@@ -120,7 +120,7 @@ std::unique_ptr<web::FakeWebFrame> CreateFrame(bool is_main_frame) { std::unique_ptr<web::FakeWebFrame> frame = web::FakeWebFrame::Create( - test::MakeLocalFrameToken().ToString(), is_main_frame, GURL()); + test::MakeLocalFrameToken().ToString(), is_main_frame); frame->set_browser_state(GetBrowserState()); return frame; }
diff --git a/components/blocked_content/safe_browsing_triggered_popup_blocker_unittest.cc b/components/blocked_content/safe_browsing_triggered_popup_blocker_unittest.cc index 6511e9e..727d530a 100644 --- a/components/blocked_content/safe_browsing_triggered_popup_blocker_unittest.cc +++ b/components/blocked_content/safe_browsing_triggered_popup_blocker_unittest.cc
@@ -234,7 +234,7 @@ params.triggering_event_info = blink::mojom::TriggeringEventInfo::kFromUntrustedEvent; params.source_render_frame_id = main_rfh()->GetRoutingID(); - params.source_render_process_id = main_rfh()->GetProcess()->GetID(); + params.source_render_process_id = main_rfh()->GetProcess()->GetDeprecatedID(); MaybeBlockPopup(web_contents(), nullptr, std::make_unique<TestPopupNavigationDelegate>(
diff --git a/components/blocklist/opt_out_blocklist/opt_out_blocklist_unittest.cc b/components/blocklist/opt_out_blocklist/opt_out_blocklist_unittest.cc index 5e282a3b..5d3c8ee 100644 --- a/components/blocklist/opt_out_blocklist/opt_out_blocklist_unittest.cc +++ b/components/blocklist/opt_out_blocklist/opt_out_blocklist_unittest.cc
@@ -2,14 +2,10 @@ // 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/40285824): Remove this and convert code to safer constructs. -#pragma allow_unsafe_buffers -#endif - #include "components/blocklist/opt_out_blocklist/opt_out_blocklist.h" #include <algorithm> +#include <array> #include <map> #include <memory> #include <string> @@ -585,12 +581,12 @@ TEST_F(OptOutBlocklistTest, HostIndifferentBlocklist) { // Tests the block list behavior when a null OptOutStore is passed in. - const std::string hosts[] = { + const auto hosts = std::to_array<std::string>({ "url_0.com", "url_1.com", "url_2.com", "url_3.com", - }; + }); int host_indifferent_threshold = 4; @@ -893,12 +889,12 @@ TEST_F(OptOutBlocklistTest, ObserverIsNotifiedOnUserBlocklisted) { // Tests the block list behavior when a null OptOutStore is passed in. - const std::string hosts[] = { + const auto hosts = std::to_array<std::string>({ "url_0.com", "url_1.com", "url_2.com", "url_3.com", - }; + }); int host_indifferent_threshold = 4; @@ -1087,12 +1083,12 @@ TEST_F(OptOutBlocklistTest, PassedReasonsWhenUserBlocklisted) { // Test that IsLoadedAndAllow, push checked BlocklistReasons to the // |passed_reasons| vector. - const std::string hosts[] = { + const auto hosts = std::to_array<std::string>({ "http://www.url_0.com", "http://www.url_1.com", "http://www.url_2.com", "http://www.url_3.com", - }; + }); auto session_policy = std::make_unique<BlocklistData::Policy>(base::Seconds(1), 1u, 1); @@ -1117,10 +1113,10 @@ BlocklistReason::kUserOptedOutInGeneral, block_list_->IsLoadedAndAllowed(hosts[0], 1, false, &passed_reasons_)); - BlocklistReason expected_reasons[] = { + auto expected_reasons = std::to_array<BlocklistReason>({ BlocklistReason::kBlocklistNotLoaded, BlocklistReason::kUserOptedOutInSession, - }; + }); EXPECT_EQ(std::size(expected_reasons), passed_reasons_.size()); for (size_t i = 0; i < passed_reasons_.size(); i++) { EXPECT_EQ(expected_reasons[i], passed_reasons_[i]); @@ -1153,11 +1149,11 @@ BlocklistReason::kUserOptedOutOfHost, block_list_->IsLoadedAndAllowed(kTestHost1, 1, false, &passed_reasons_)); - BlocklistReason expected_reasons[] = { + auto expected_reasons = std::to_array<BlocklistReason>({ BlocklistReason::kBlocklistNotLoaded, BlocklistReason::kUserOptedOutInSession, BlocklistReason::kUserOptedOutInGeneral, - }; + }); EXPECT_EQ(std::size(expected_reasons), passed_reasons_.size()); for (size_t i = 0; i < passed_reasons_.size(); i++) { EXPECT_EQ(expected_reasons[i], passed_reasons_[i]); @@ -1190,13 +1186,13 @@ BlocklistReason::kAllowed, block_list_->IsLoadedAndAllowed(kTestHost1, 1, false, &passed_reasons_)); - BlocklistReason expected_reasons[] = { + auto expected_reasons = std::to_array<BlocklistReason>({ BlocklistReason::kBlocklistNotLoaded, BlocklistReason::kUserOptedOutInSession, BlocklistReason::kUserOptedOutInGeneral, BlocklistReason::kUserOptedOutOfHost, BlocklistReason::kUserOptedOutOfType, - }; + }); EXPECT_EQ(std::size(expected_reasons), passed_reasons_.size()); for (size_t i = 0; i < passed_reasons_.size(); i++) { EXPECT_EQ(expected_reasons[i], passed_reasons_[i]);
diff --git a/components/browsing_topics/browsing_topics_calculator_unittest.cc b/components/browsing_topics/browsing_topics_calculator_unittest.cc index 195ee22..053691fd 100644 --- a/components/browsing_topics/browsing_topics_calculator_unittest.cc +++ b/components/browsing_topics/browsing_topics_calculator_unittest.cc
@@ -2,13 +2,9 @@ // 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/40285824): Remove this and convert code to safer constructs. -#pragma allow_unsafe_buffers -#endif - #include "components/browsing_topics/browsing_topics_calculator.h" +#include <array> #include <memory> #include "base/files/scoped_temp_dir.h" @@ -51,10 +47,12 @@ constexpr char kHost6[] = "www.foo6.com"; Topic ExpectedRandomTopic(size_t index) { - Topic kExpectedRandomTopicsForTaxonomyV1[5] = { - Topic(101), Topic(102), Topic(103), Topic(104), Topic(105)}; - Topic kExpectedRandomTopicsForTaxonomyV2[5] = { - Topic(176), Topic(177), Topic(180), Topic(183), Topic(184)}; + std::array<Topic, 5> kExpectedRandomTopicsForTaxonomyV1 = { + Topic(101), Topic(102), Topic(103), Topic(104), Topic(105), + }; + std::array<Topic, 5> kExpectedRandomTopicsForTaxonomyV2 = { + Topic(176), Topic(177), Topic(180), Topic(183), Topic(184), + }; if (blink::features::kBrowsingTopicsTaxonomyVersion.Get() == 1) { return kExpectedRandomTopicsForTaxonomyV1[index];
diff --git a/components/certificate_transparency/chrome_ct_policy_enforcer_unittest.cc b/components/certificate_transparency/chrome_ct_policy_enforcer_unittest.cc index c05ece9f..0d13c82 100644 --- a/components/certificate_transparency/chrome_ct_policy_enforcer_unittest.cc +++ b/components/certificate_transparency/chrome_ct_policy_enforcer_unittest.cc
@@ -2,13 +2,9 @@ // 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/40285824): Remove this and convert code to safer constructs. -#pragma allow_unsafe_buffers -#endif - #include "components/certificate_transparency/chrome_ct_policy_enforcer.h" +#include <array> #include <map> #include <memory> #include <string> @@ -625,20 +621,23 @@ base::Time time_2016_3_0_25_11_25_0_0 = CreateTime({2016, 3, 0, 25, 11, 25, 0, 0}); - const struct TestData { + struct TestData { base::Time validity_start; base::Time validity_end; size_t scts_required; - } kTestData[] = {{// Cert valid for -12 months (nonsensical), needs 2 SCTs. - time_2016_3_0_25_11_25_0_0, time_2015_3_0_25_11_25_0_0, 2}, - {// Cert valid for 179 days, needs 2 SCTs. - time_2015_3_0_25_11_25_0_0, time_2015_9_0_20_11_25_0_0, 2}, - {// Cert valid for exactly 180 days, needs only 2 SCTs. - time_2015_3_0_25_11_25_0_0, time_2015_9_0_21_11_25_0_0, 2}, - {// Cert valid for barely over 180 days, needs 3 SCTs. - time_2015_3_0_25_11_25_0_0, time_2015_9_0_21_11_25_1_0, 3}, - {// Cert valid for over 180 days, needs 3 SCTs. - time_2015_3_0_25_11_25_0_0, time_2016_3_0_25_11_25_0_0, 3}}; + }; + const auto kTestData = std::to_array<TestData>({ + {// Cert valid for -12 months (nonsensical), needs 2 SCTs. + time_2016_3_0_25_11_25_0_0, time_2015_3_0_25_11_25_0_0, 2}, + {// Cert valid for 179 days, needs 2 SCTs. + time_2015_3_0_25_11_25_0_0, time_2015_9_0_20_11_25_0_0, 2}, + {// Cert valid for exactly 180 days, needs only 2 SCTs. + time_2015_3_0_25_11_25_0_0, time_2015_9_0_21_11_25_0_0, 2}, + {// Cert valid for barely over 180 days, needs 3 SCTs. + time_2015_3_0_25_11_25_0_0, time_2015_9_0_21_11_25_1_0, 3}, + {// Cert valid for over 180 days, needs 3 SCTs. + time_2015_3_0_25_11_25_0_0, time_2016_3_0_25_11_25_0_0, 3}, + }); for (size_t i = 0; i < std::size(kTestData); ++i) { SCOPED_TRACE(i);
diff --git a/components/chrome_urls_ui/resources/BUILD.gn b/components/chrome_urls_ui/resources/BUILD.gn index cc971d7..d69c0a1 100644 --- a/components/chrome_urls_ui/resources/BUILD.gn +++ b/components/chrome_urls_ui/resources/BUILD.gn
@@ -18,6 +18,7 @@ ts_deps = [ "//third_party/lit/v3_0:build_ts", "//ui/webui/resources/cr_elements:build_ts", + "//ui/webui/resources/js:build_ts", "//ui/webui/resources/mojo:build_ts", ] webui_context_type = "trusted"
diff --git a/components/chrome_urls_ui/resources/app.html.ts b/components/chrome_urls_ui/resources/app.html.ts index d44ce17..2f4bcba1 100644 --- a/components/chrome_urls_ui/resources/app.html.ts +++ b/components/chrome_urls_ui/resources/app.html.ts
@@ -18,7 +18,7 @@ }`)} </ul> ${this.internalUrlInfos_.length ? html` - <h2>Internal Debugging Page URLs</h2> + <h2 id="internal-debugging-pages">Internal Debugging Page URLs</h2> <p id="debug-pages-description"> <span>Internal debugging pages are currently </span> <span class="bold">${this.getDebugPagesEnabledText_()}</span><span>.</span>
diff --git a/components/chrome_urls_ui/resources/app.ts b/components/chrome_urls_ui/resources/app.ts index ad723397..abb5ebd 100644 --- a/components/chrome_urls_ui/resources/app.ts +++ b/components/chrome_urls_ui/resources/app.ts
@@ -4,7 +4,11 @@ import 'chrome://resources/cr_elements/cr_button/cr_button.js'; +import {assert} from 'chrome://resources/js/assert.js'; +import {CrRouter} from 'chrome://resources/js/cr_router.js'; +import {EventTracker} from 'chrome://resources/js/event_tracker.js'; import {CrLitElement} from 'chrome://resources/lit/v3_0/lit.rollup.js'; +import type {PropertyValues} from 'chrome://resources/lit/v3_0/lit.rollup.js'; import type {Url} from 'chrome://resources/mojo/url/mojom/url.mojom-webui.js'; import {getCss} from './app.css.js'; @@ -12,6 +16,8 @@ import {BrowserProxyImpl} from './browser_proxy.js'; import type {WebuiUrlInfo} from './chrome_urls.mojom-webui.js'; +export const INTERNAL_DEBUG_PAGES_HASH: string = 'internal-debug-pages'; + export class ChromeUrlsAppElement extends CrLitElement { static get is() { return 'chrome-urls-app'; @@ -40,10 +46,28 @@ protected internalUrlInfos_: WebuiUrlInfo[] = []; protected commandUrls_: Url[] = []; protected internalUisEnabled_: boolean = false; + protected tracker_: EventTracker = new EventTracker(); + + + override updated(changedProperties: PropertyValues<this>) { + super.updated(changedProperties); + + const changedPrivateProperties = + changedProperties as Map<PropertyKey, unknown>; + if (changedPrivateProperties.has('internalUrlInfos_') && + this.internalUrlInfos_.length > 0) { + this.onHashChanged_(CrRouter.getInstance().getHash()); + } + } override connectedCallback() { super.connectedCallback(); + this.onHashChanged_(CrRouter.getInstance().getHash()); + this.tracker_.add( + CrRouter.getInstance(), 'cr-router-hash-changed', + (e: Event) => this.onHashChanged_((e as CustomEvent<string>).detail)); + BrowserProxyImpl.getInstance().handler.getUrls().then(({urlsData}) => { // Since we use GURL on the C++ side, we need to remove the trailing // '/' here for nicer display. @@ -60,6 +84,23 @@ }); } + override disconnectedCallback() { + super.disconnectedCallback(); + this.tracker_.removeAll(); + } + + private onHashChanged_(hash: string) { + if (hash !== INTERNAL_DEBUG_PAGES_HASH || + this.internalUrlInfos_.length === 0) { + return; + } + + const header = this.shadowRoot!.querySelector<HTMLElement>( + '#internal-debugging-pages'); + assert(header); + header.scrollIntoView(true); + } + protected getDebugPagesEnabledText_(): string { return this.internalUisEnabled_ ? 'enabled' : 'disabled'; }
diff --git a/components/collaboration/internal/BUILD.gn b/components/collaboration/internal/BUILD.gn index 8b21113..c802061 100644 --- a/components/collaboration/internal/BUILD.gn +++ b/components/collaboration/internal/BUILD.gn
@@ -72,6 +72,10 @@ sources = [ "messaging/configuration.cc", "messaging/configuration.h", + "messaging/data_sharing_change_notifier.cc", + "messaging/data_sharing_change_notifier.h", + "messaging/data_sharing_change_notifier_impl.cc", + "messaging/data_sharing_change_notifier_impl.h", "messaging/empty_messaging_backend_service.cc", "messaging/empty_messaging_backend_service.h", "messaging/messaging_backend_service_impl.cc", @@ -91,7 +95,9 @@ "//base", "//components/collaboration/internal/messaging/storage/protocol", "//components/collaboration/public:messaging_public", + "//components/data_sharing/public", "//components/saved_tab_groups/public", + "//google_apis", ] if (is_android) { @@ -149,6 +155,7 @@ source_set("messaging_unit_tests") { testonly = true sources = [ + "messaging/data_sharing_change_notifier_impl_unittest.cc", "messaging/messaging_backend_service_impl_unittest.cc", "messaging/storage/messaging_backend_store_impl_unittest.cc", "messaging/tab_group_change_notifier_impl_unittest.cc", @@ -157,6 +164,8 @@ ":messaging_internal", "//base", "//base/test:test_support", + "//components/data_sharing:test_support", + "//components/data_sharing/public", "//components/saved_tab_groups/public", "//components/saved_tab_groups/test_support:test_support", "//components/tab_groups",
diff --git a/components/collaboration/internal/messaging/DEPS b/components/collaboration/internal/messaging/DEPS index 173322a..c580980 100644 --- a/components/collaboration/internal/messaging/DEPS +++ b/components/collaboration/internal/messaging/DEPS
@@ -1,3 +1,4 @@ include_rules = [ "+components/tab_groups", + "+google_apis/gaia/gaia_id.h", ]
diff --git a/components/collaboration/internal/messaging/data_sharing_change_notifier.cc b/components/collaboration/internal/messaging/data_sharing_change_notifier.cc new file mode 100644 index 0000000..4435d0d --- /dev/null +++ b/components/collaboration/internal/messaging/data_sharing_change_notifier.cc
@@ -0,0 +1,11 @@ +// 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. + +#include "components/collaboration/internal/messaging/data_sharing_change_notifier.h" + +namespace collaboration::messaging { + +DataSharingChangeNotifier::~DataSharingChangeNotifier() = default; + +} // namespace collaboration::messaging
diff --git a/components/collaboration/internal/messaging/data_sharing_change_notifier.h b/components/collaboration/internal/messaging/data_sharing_change_notifier.h new file mode 100644 index 0000000..26bef4c2 --- /dev/null +++ b/components/collaboration/internal/messaging/data_sharing_change_notifier.h
@@ -0,0 +1,59 @@ +// 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. + +#ifndef COMPONENTS_COLLABORATION_INTERNAL_MESSAGING_DATA_SHARING_CHANGE_NOTIFIER_H_ +#define COMPONENTS_COLLABORATION_INTERNAL_MESSAGING_DATA_SHARING_CHANGE_NOTIFIER_H_ + +#include "components/data_sharing/public/data_sharing_service.h" +#include "google_apis/gaia/gaia_id.h" + +namespace base { +class Time; +} // namespace base + +namespace collaboration::messaging { + +class DataSharingChangeNotifier + : public data_sharing::DataSharingService::Observer { + public: + class Observer : public base::CheckedObserver { + public: + // Called when the DataSharingServiceChangeNofitier has been initialized. + // Use DataSharingChangeNotifier::IsInitialized() to check whether it has + // already been initialized. If the service has already been initialized + // when an observer is added, this is invoked asynchronously. + virtual void OnDataSharingChangeNotifierInitialized() {} + + // User either created a new group or has joined an existing one. + virtual void OnGroupAdded(const data_sharing::GroupData& group_data, + const base::Time& event_time) {} + // Either group has been deleted or user has been removed from the group. + virtual void OnGroupRemoved(const data_sharing::GroupData& group_id, + const base::Time& event_time) {} + + // Called when a new member has been added to the group. + virtual void OnGroupMemberAdded(const data_sharing::GroupData& group_id, + const GaiaId& member_gaia_id, + const base::Time& event_time) {} + // Called when a member has been removed from the group. + virtual void OnGroupMemberRemoved(const data_sharing::GroupData& group_id, + const GaiaId& member_gaia_id, + const base::Time& event_time) {} + }; + + ~DataSharingChangeNotifier() override; + + virtual void AddObserver(Observer* observer) = 0; + virtual void RemoveObserver(Observer* observer) = 0; + + // Kicks off the initialization of this component. + virtual void Initialize() = 0; + + // Whether this instance has finished initialization. + virtual bool IsInitialized() = 0; +}; + +} // namespace collaboration::messaging + +#endif // COMPONENTS_COLLABORATION_INTERNAL_MESSAGING_DATA_SHARING_CHANGE_NOTIFIER_H_
diff --git a/components/collaboration/internal/messaging/data_sharing_change_notifier_impl.cc b/components/collaboration/internal/messaging/data_sharing_change_notifier_impl.cc new file mode 100644 index 0000000..07440d2 --- /dev/null +++ b/components/collaboration/internal/messaging/data_sharing_change_notifier_impl.cc
@@ -0,0 +1,74 @@ +// 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. + +#include "components/collaboration/internal/messaging/data_sharing_change_notifier_impl.h" + +#include "base/observer_list.h" +#include "base/task/single_thread_task_runner.h" +#include "components/collaboration/internal/messaging/data_sharing_change_notifier.h" +#include "components/data_sharing/public/data_sharing_service.h" + +namespace collaboration::messaging { + +DataSharingChangeNotifierImpl::DataSharingChangeNotifierImpl( + data_sharing::DataSharingService* data_sharing_service) + : data_sharing_service_(data_sharing_service) {} + +DataSharingChangeNotifierImpl::~DataSharingChangeNotifierImpl() = default; + +void DataSharingChangeNotifierImpl::AddObserver(Observer* observer) { + observers_.AddObserver(observer); + if (is_initialized_) { + base::SingleThreadTaskRunner::GetCurrentDefault()->PostTask( + FROM_HERE, + base::BindOnce(&DataSharingChangeNotifierImpl:: + NotifyDataSharingChangeNotifierInitialized, + weak_ptr_factory_.GetWeakPtr())); + } +} + +void DataSharingChangeNotifierImpl::RemoveObserver(Observer* observer) { + observers_.RemoveObserver(observer); +} + +void DataSharingChangeNotifierImpl::Initialize() { + data_sharing_service_observer_.Observe(data_sharing_service_); + + if (data_sharing_service_->IsGroupDataModelLoaded()) { + is_initialized_ = true; + base::SingleThreadTaskRunner::GetCurrentDefault()->PostTask( + FROM_HERE, + base::BindOnce(&DataSharingChangeNotifierImpl:: + NotifyDataSharingChangeNotifierInitialized, + weak_ptr_factory_.GetWeakPtr())); + } +} + +void DataSharingChangeNotifierImpl::OnGroupDataModelLoaded() { + if (is_initialized_) { + // The DataSharingService was ready at startup, so we do not need to do + // anything now. + return; + } + + is_initialized_ = true; + + // This is the first time we know about initialization, so inform our + // observers. Since we are reacting to a callback, we do not need to post + // this. + NotifyDataSharingChangeNotifierInitialized(); +} + +bool DataSharingChangeNotifierImpl::IsInitialized() { + return is_initialized_; +} + +void DataSharingChangeNotifierImpl::NotifyDataSharingChangeNotifierInitialized() + const { + for (auto& observer : observers_) { + observer.OnDataSharingChangeNotifierInitialized(); + } +} + +} // namespace collaboration::messaging
diff --git a/components/collaboration/internal/messaging/data_sharing_change_notifier_impl.h b/components/collaboration/internal/messaging/data_sharing_change_notifier_impl.h new file mode 100644 index 0000000..765fe1d --- /dev/null +++ b/components/collaboration/internal/messaging/data_sharing_change_notifier_impl.h
@@ -0,0 +1,59 @@ +// 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. + +#ifndef COMPONENTS_COLLABORATION_INTERNAL_MESSAGING_DATA_SHARING_CHANGE_NOTIFIER_IMPL_H_ +#define COMPONENTS_COLLABORATION_INTERNAL_MESSAGING_DATA_SHARING_CHANGE_NOTIFIER_IMPL_H_ + +#include "base/memory/weak_ptr.h" +#include "base/observer_list.h" +#include "base/observer_list_types.h" +#include "base/scoped_observation.h" +#include "components/collaboration/internal/messaging/data_sharing_change_notifier.h" +#include "components/data_sharing/public/data_sharing_service.h" +#include "google_apis/gaia/gaia_id.h" + +namespace collaboration::messaging { + +class DataSharingChangeNotifierImpl : public DataSharingChangeNotifier { + public: + explicit DataSharingChangeNotifierImpl( + data_sharing::DataSharingService* data_sharing_service); + ~DataSharingChangeNotifierImpl() override; + + // DataSharingChangeNotifier. + void AddObserver(Observer* observer) override; + void RemoveObserver(Observer* observer) override; + void Initialize() override; + bool IsInitialized() override; + + // DataSharingService::Observer. + void OnGroupDataModelLoaded() override; + + private: + // Informs observers that this has been initialized. This is in a separate + // method to ensure that we can post this if the DataSharingService is already + // initialized when we try to initialize this class. + void NotifyDataSharingChangeNotifierInitialized() const; + + // Whether this has already been initialized. + bool is_initialized_ = false; + + // Our scoped observer of the DataSharingService. Using ScopedObservation + // simplifies our destruction logic. + base::ScopedObservation<data_sharing::DataSharingService, + data_sharing::DataSharingService::Observer> + data_sharing_service_observer_{this}; + + // The list of observers observing this particular class. + base::ObserverList<Observer> observers_; + + // The DataSharingService that is the source of the updates. + raw_ptr<data_sharing::DataSharingService> data_sharing_service_; + + base::WeakPtrFactory<DataSharingChangeNotifierImpl> weak_ptr_factory_{this}; +}; + +} // namespace collaboration::messaging + +#endif // COMPONENTS_COLLABORATION_INTERNAL_MESSAGING_DATA_SHARING_CHANGE_NOTIFIER_IMPL_H_
diff --git a/components/collaboration/internal/messaging/data_sharing_change_notifier_impl_unittest.cc b/components/collaboration/internal/messaging/data_sharing_change_notifier_impl_unittest.cc new file mode 100644 index 0000000..c2b0a00 --- /dev/null +++ b/components/collaboration/internal/messaging/data_sharing_change_notifier_impl_unittest.cc
@@ -0,0 +1,110 @@ +// 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. + +#include "components/collaboration/internal/messaging/data_sharing_change_notifier_impl.h" + +#include "base/test/gmock_callback_support.h" +#include "base/test/task_environment.h" +#include "components/collaboration/internal/messaging/data_sharing_change_notifier.h" +#include "components/collaboration/internal/messaging/data_sharing_change_notifier_impl.h" +#include "components/data_sharing/test_support/mock_data_sharing_service.h" +#include "testing/gmock/include/gmock/gmock.h" +#include "testing/gtest/include/gtest/gtest.h" + +using testing::_; +using testing::Return; +using testing::SaveArg; + +namespace collaboration::messaging { + +class MockDataSharingChangeNotifierObserver + : public DataSharingChangeNotifier::Observer { + public: + MockDataSharingChangeNotifierObserver() = default; + ~MockDataSharingChangeNotifierObserver() override = default; + + MOCK_METHOD(void, OnDataSharingChangeNotifierInitialized, (), (override)); + MOCK_METHOD(void, + OnGroupAdded, + (const data_sharing::GroupData& group_data, + const base::Time& event_time), + (override)); + MOCK_METHOD(void, + OnGroupRemoved, + (const data_sharing::GroupData& group_id, + const base::Time& event_time), + (override)); + MOCK_METHOD(void, + OnGroupMemberAdded, + (const data_sharing::GroupData& group_id, + const GaiaId& member_gaia_id, + const base::Time& event_time), + (override)); + MOCK_METHOD(void, + OnGroupMemberRemoved, + (const data_sharing::GroupData& group_id, + const GaiaId& member_gaia_id, + const base::Time& event_time), + (override)); +}; + +class DataSharingChangeNotifierImplTest : public testing::Test { + public: + DataSharingChangeNotifierImplTest() = default; + ~DataSharingChangeNotifierImplTest() override = default; + + void SetUp() override { + data_sharing_service_ = + std::make_unique<data_sharing::MockDataSharingService>(); + notifier_ = std::make_unique<DataSharingChangeNotifierImpl>( + data_sharing_service_.get()); + notifier_observer_ = + std::make_unique<MockDataSharingChangeNotifierObserver>(); + notifier_->AddObserver(notifier_observer_.get()); + } + + void InitializeNotifier(bool data_sharing_service_initialized) { + EXPECT_CALL(*data_sharing_service_, IsGroupDataModelLoaded()) + .WillOnce(Return(data_sharing_service_initialized)); + EXPECT_CALL(*data_sharing_service_, AddObserver(_)) + .WillOnce(SaveArg<0>(&dss_observer_)); + notifier_->Initialize(); + } + + void TearDown() override { + EXPECT_CALL(*data_sharing_service_, RemoveObserver(_)).Times(1); + notifier_->RemoveObserver(notifier_observer_.get()); + } + + protected: + base::test::SingleThreadTaskEnvironment task_environment; + + std::unique_ptr<data_sharing::MockDataSharingService> data_sharing_service_; + std::unique_ptr<DataSharingChangeNotifierImpl> notifier_; + std::unique_ptr<MockDataSharingChangeNotifierObserver> notifier_observer_; + + raw_ptr<data_sharing::DataSharingService::Observer> dss_observer_; +}; + +TEST_F(DataSharingChangeNotifierImplTest, + TestInitializationServiceAlreadyInitialized) { + base::RunLoop run_loop; + EXPECT_CALL(*notifier_observer_, OnDataSharingChangeNotifierInitialized()) + .WillOnce([&run_loop]() { run_loop.Quit(); }); + InitializeNotifier(/*data_sharing_service_initialized=*/true); + run_loop.Run(); + EXPECT_EQ(true, notifier_->IsInitialized()); +} + +TEST_F(DataSharingChangeNotifierImplTest, + TestInitializationServiceInitializedLater) { + InitializeNotifier(/*data_sharing_service_initialized=*/false); + EXPECT_EQ(false, notifier_->IsInitialized()); + + EXPECT_CALL(*notifier_observer_, OnDataSharingChangeNotifierInitialized()); + dss_observer_->OnGroupDataModelLoaded(); + EXPECT_EQ(true, notifier_->IsInitialized()); +} + +} // namespace collaboration::messaging
diff --git a/components/collaboration/internal/messaging/messaging_backend_service_impl.cc b/components/collaboration/internal/messaging/messaging_backend_service_impl.cc index 521771c..deb99dc8 100644 --- a/components/collaboration/internal/messaging/messaging_backend_service_impl.cc +++ b/components/collaboration/internal/messaging/messaging_backend_service_impl.cc
@@ -12,6 +12,7 @@ #include "base/check.h" #include "base/functional/callback.h" +#include "components/collaboration/internal/messaging/data_sharing_change_notifier_impl.h" #include "components/collaboration/internal/messaging/storage/messaging_backend_store.h" #include "components/collaboration/internal/messaging/tab_group_change_notifier.h" #include "components/collaboration/public/messaging/message.h" @@ -21,18 +22,23 @@ MessagingBackendServiceImpl::MessagingBackendServiceImpl( std::unique_ptr<TabGroupChangeNotifier> tab_group_change_notifier, + std::unique_ptr<DataSharingChangeNotifier> data_sharing_change_notifier, + std::unique_ptr<MessagingBackendStore> messaging_backend_store, tab_groups::TabGroupSyncService* tab_group_sync_service, data_sharing::DataSharingService* data_sharing_service) : tab_group_change_notifier_(std::move(tab_group_change_notifier)), + data_sharing_change_notifier_(std::move(data_sharing_change_notifier)), + store_(std::move(messaging_backend_store)), tab_group_sync_service_(tab_group_sync_service), data_sharing_service_(data_sharing_service) { - tab_group_change_notifier_->AddObserver(this); + tab_group_change_notifier_observer_.Observe(tab_group_change_notifier_.get()); tab_group_change_notifier_->Initialize(); + data_sharing_change_notifier_observer_.Observe( + data_sharing_change_notifier_.get()); + data_sharing_change_notifier_->Initialize(); } -MessagingBackendServiceImpl::~MessagingBackendServiceImpl() { - tab_group_change_notifier_->RemoveObserver(this); -} +MessagingBackendServiceImpl::~MessagingBackendServiceImpl() = default; void MessagingBackendServiceImpl::SetInstantMessageDelegate( InstantMessageDelegate* instant_message_delegate) { @@ -52,7 +58,8 @@ } bool MessagingBackendServiceImpl::IsInitialized() { - return tab_group_change_notifier_initialized_; + return tab_group_change_notifier_initialized_ && + data_sharing_change_notifier_initialized_; } std::vector<PersistentMessage> MessagingBackendServiceImpl::GetMessagesForTab( @@ -89,6 +96,10 @@ tab_group_change_notifier_initialized_ = true; } +void MessagingBackendServiceImpl::OnDataSharingChangeNotifierInitialized() { + data_sharing_change_notifier_initialized_ = true; +} + void MessagingBackendServiceImpl::OnTabGroupAdded( const tab_groups::SavedTabGroup& added_group) {}
diff --git a/components/collaboration/internal/messaging/messaging_backend_service_impl.h b/components/collaboration/internal/messaging/messaging_backend_service_impl.h index 62b3542..6c45447 100644 --- a/components/collaboration/internal/messaging/messaging_backend_service_impl.h +++ b/components/collaboration/internal/messaging/messaging_backend_service_impl.h
@@ -10,15 +10,13 @@ #include "base/memory/raw_ptr.h" #include "base/observer_list.h" +#include "base/scoped_observation.h" +#include "components/collaboration/internal/messaging/data_sharing_change_notifier.h" #include "components/collaboration/internal/messaging/tab_group_change_notifier.h" #include "components/collaboration/public/messaging/message.h" #include "components/collaboration/public/messaging/messaging_backend_service.h" #include "components/saved_tab_groups/public/tab_group_sync_service.h" -namespace collaboration::messaging { -class MessagingBackendStore; -} - namespace data_sharing { class DataSharingService; } // namespace data_sharing @@ -28,12 +26,18 @@ } // namespace tab_groups namespace collaboration::messaging { +class DataSharingChangeNotifier; +class MessagingBackendStore; + // The implementation of the MessagingBackendService. class MessagingBackendServiceImpl : public MessagingBackendService, - public TabGroupChangeNotifier::Observer { + public TabGroupChangeNotifier::Observer, + public DataSharingChangeNotifier::Observer { public: MessagingBackendServiceImpl( std::unique_ptr<TabGroupChangeNotifier> tab_group_change_notifier, + std::unique_ptr<DataSharingChangeNotifier> data_sharing_change_notifier, + std::unique_ptr<MessagingBackendStore> messaging_backend_store, tab_groups::TabGroupSyncService* tab_group_sync_service, data_sharing::DataSharingService* data_sharing_service); ~MessagingBackendServiceImpl() override; @@ -71,17 +75,35 @@ void OnTabSelected( std::optional<tab_groups::SavedTabGroupTab> selected_tab) override; + // DataSharingChangeNotifier::Observer. + void OnDataSharingChangeNotifierInitialized() override; + private: // Provides functionality to go from observing the TabGroupSyncService to // a delta based observer API. std::unique_ptr<TabGroupChangeNotifier> tab_group_change_notifier_; + // Provides functionality to go from observing the DataSharingService to a + // smaller API surface and delta observation. + std::unique_ptr<DataSharingChangeNotifier> data_sharing_change_notifier_; + // Store for reading and writing messages: std::unique_ptr<MessagingBackendStore> store_; + // Scoped observers for our delta change notifiers. + base::ScopedObservation<TabGroupChangeNotifier, + TabGroupChangeNotifier::Observer> + tab_group_change_notifier_observer_{this}; + base::ScopedObservation<DataSharingChangeNotifier, + DataSharingChangeNotifier::Observer> + data_sharing_change_notifier_observer_{this}; + // Whether the TabGroupChangeNotifier has been initialized. bool tab_group_change_notifier_initialized_ = false; + // Whether the DataSharingChangeNotifier has been initialized. + bool data_sharing_change_notifier_initialized_ = false; + // Service providing information about tabs and tab groups. raw_ptr<tab_groups::TabGroupSyncService> tab_group_sync_service_;
diff --git a/components/collaboration/internal/messaging/messaging_backend_service_impl_unittest.cc b/components/collaboration/internal/messaging/messaging_backend_service_impl_unittest.cc index 73fed92..05ffba2 100644 --- a/components/collaboration/internal/messaging/messaging_backend_service_impl_unittest.cc +++ b/components/collaboration/internal/messaging/messaging_backend_service_impl_unittest.cc
@@ -8,6 +8,8 @@ #include "base/test/gmock_callback_support.h" #include "base/test/task_environment.h" +#include "components/collaboration/internal/messaging/data_sharing_change_notifier.h" +#include "components/collaboration/internal/messaging/storage/messaging_backend_store.h" #include "components/collaboration/internal/messaging/tab_group_change_notifier.h" #include "components/saved_tab_groups/public/tab_group_sync_service.h" #include "components/saved_tab_groups/test_support/mock_tab_group_sync_service.h" @@ -40,6 +42,73 @@ MOCK_METHOD(bool, IsInitialized, (), (override)); }; +class MockMessagingBackendStore : public MessagingBackendStore { + public: + MockMessagingBackendStore() = default; + ~MockMessagingBackendStore() override = default; + + MOCK_METHOD(void, + Initialize, + (base::OnceCallback<void(bool)> on_initialized_callback), + (override)); + MOCK_METHOD(bool, HasAnyDirtyMessages, (DirtyType dirty_type), (override)); + MOCK_METHOD(void, + ClearDirtyMessageForTab, + (const data_sharing::GroupId& collaboration_id, + const base::Uuid& tab_id, + DirtyType dirty_type), + (override)); + MOCK_METHOD(void, + ClearDirtyMessage, + (const base::Uuid uuid, DirtyType dirty_type), + (override)); + MOCK_METHOD(std::vector<collaboration_pb::Message>, + GetDirtyMessages, + (DirtyType dirty_type), + (override)); + MOCK_METHOD(std::vector<collaboration_pb::Message>, + GetDirtyMessagesForGroup, + (const data_sharing::GroupId& collaboration_id, + DirtyType dirty_type), + (override)); + MOCK_METHOD(std::optional<collaboration_pb::Message>, + GetDirtyMessageForTab, + (const data_sharing::GroupId& collaboration_id, + const base::Uuid& tab_id, + DirtyType dirty_type), + (override)); + MOCK_METHOD(std::vector<collaboration_pb::Message>, + GetRecentMessagesForGroup, + (const data_sharing::GroupId& collaboration_id), + (override)); + MOCK_METHOD(void, + AddMessage, + (const collaboration_pb::Message& message), + (override)); + MOCK_METHOD(base::TimeDelta, GetRecentMessageCutoffDuration, (), (override)); + MOCK_METHOD(void, + SetRecentMessageCutoffDuration, + (base::TimeDelta time_delta), + (override)); +}; + +class MockDataSharingChangeNotifier : public DataSharingChangeNotifier { + public: + MockDataSharingChangeNotifier() = default; + ~MockDataSharingChangeNotifier() override = default; + + MOCK_METHOD(void, + AddObserver, + (DataSharingChangeNotifier::Observer * observer), + (override)); + MOCK_METHOD(void, + RemoveObserver, + (DataSharingChangeNotifier::Observer * observer), + (override)); + MOCK_METHOD(void, Initialize, (), (override)); + MOCK_METHOD(bool, IsInitialized, (), (override)); +}; + class MessagingBackendServiceImplTest : public testing::Test { public: void SetUp() override { @@ -55,12 +124,27 @@ unowned_tab_group_change_notifier_ = tab_group_change_notifier.get(); EXPECT_CALL(*unowned_tab_group_change_notifier_, AddObserver(_)) .Times(1) - .WillOnce(SaveArg<0>(¬ifier_observer_)); + .WillOnce(SaveArg<0>(&tg_notifier_observer_)); EXPECT_CALL(*unowned_tab_group_change_notifier_, Initialize()); EXPECT_CALL(*unowned_tab_group_change_notifier_, RemoveObserver(_)); + auto data_sharing_change_notifier = + std::make_unique<MockDataSharingChangeNotifier>(); + unowned_data_sharing_change_notifier_ = data_sharing_change_notifier.get(); + EXPECT_CALL(*unowned_data_sharing_change_notifier_, AddObserver(_)) + .Times(1) + .WillOnce(SaveArg<0>(&ds_notifier_observer_)); + EXPECT_CALL(*unowned_data_sharing_change_notifier_, Initialize()); + EXPECT_CALL(*unowned_data_sharing_change_notifier_, RemoveObserver(_)); + + auto mock_messaging_backend_store = + std::make_unique<MockMessagingBackendStore>(); + unowned_messaging_backend_store_ = mock_messaging_backend_store.get(); + service_ = std::make_unique<MessagingBackendServiceImpl>( std::move(tab_group_change_notifier), + std::move(data_sharing_change_notifier), + std::move(mock_messaging_backend_store), mock_tab_group_sync_service_.get(), /*data_sharing_service=*/nullptr); } @@ -72,13 +156,18 @@ mock_tab_group_sync_service_; std::unique_ptr<MessagingBackendServiceImpl> service_; raw_ptr<MockTabGroupChangeNotifier> unowned_tab_group_change_notifier_; - raw_ptr<TabGroupChangeNotifier::Observer> notifier_observer_; + raw_ptr<MockDataSharingChangeNotifier> unowned_data_sharing_change_notifier_; + raw_ptr<MockMessagingBackendStore> unowned_messaging_backend_store_; + raw_ptr<TabGroupChangeNotifier::Observer> tg_notifier_observer_; + raw_ptr<DataSharingChangeNotifier::Observer> ds_notifier_observer_; }; TEST_F(MessagingBackendServiceImplTest, TestInitialization) { CreateService(); EXPECT_FALSE(service_->IsInitialized()); - notifier_observer_->OnTabGroupChangeNotifierInitialized(); + tg_notifier_observer_->OnTabGroupChangeNotifierInitialized(); + EXPECT_FALSE(service_->IsInitialized()); + ds_notifier_observer_->OnDataSharingChangeNotifierInitialized(); EXPECT_TRUE(service_->IsInitialized()); }
diff --git a/components/collaboration/public/messaging/activity_log.cc b/components/collaboration/public/messaging/activity_log.cc index 7691384..cc89097 100644 --- a/components/collaboration/public/messaging/activity_log.cc +++ b/components/collaboration/public/messaging/activity_log.cc
@@ -14,10 +14,9 @@ } // namespace -// TODO(crbug.com/345856704): Update this to UNDEFINED. ActivityLogItem::ActivityLogItem() - : collaboration_event(CollaborationEvent::TAB_ADDED), - action(RecentActivityAction::kFocusTab) {} + : collaboration_event(CollaborationEvent::UNDEFINED), + action(RecentActivityAction::kNone) {} ActivityLogItem::ActivityLogItem(const ActivityLogItem& other) = default;
diff --git a/components/collaboration/public/messaging/activity_log.h b/components/collaboration/public/messaging/activity_log.h index 019db6dd..13397ae2 100644 --- a/components/collaboration/public/messaging/activity_log.h +++ b/components/collaboration/public/messaging/activity_log.h
@@ -23,17 +23,20 @@ // // GENERATED_JAVA_ENUM_PACKAGE: org.chromium.components.collaboration.messaging enum class RecentActivityAction { + // No action should be taken. + kNone = 0, + // Focus a given tab. - kFocusTab = 0, + kFocusTab = 1, // Reopen a given URL as a new tab in the group. - kReopenTab = 1, + kReopenTab = 2, // Open the tab group dialog UI to edit tab group properties. - kOpenTabGroupEditDialog = 2, + kOpenTabGroupEditDialog = 3, // Open the people group management screen. - kManageSharing = 3 + kManageSharing = 4 }; // Struct containing information needed to show one row in the activity log UI. @@ -55,6 +58,9 @@ std::string timestamp_text; // Display name to be shown in the title line. + // This is the triggering user for tab and tab group related events. + // This is the affected user for membership changes (added/removed user). + // This the `data_sharing::GroupMember::given_name`. std::string user_display_name; // Whether the user associated with the activity log item is the current
diff --git a/components/collaboration/public/messaging/message.h b/components/collaboration/public/messaging/message.h index 8854651..20fd94b 100644 --- a/components/collaboration/public/messaging/message.h +++ b/components/collaboration/public/messaging/message.h
@@ -134,9 +134,6 @@ MessageAttribution(const MessageAttribution& other); ~MessageAttribution(); - // TODO(nyquist): Maybe make collaboration, tab, group, and affected users - // vectors. - // The collaboration this message is associated with (if any). data_sharing::GroupId collaboration_id; @@ -147,9 +144,15 @@ std::optional<TabMessageMetadata> tab_metadata; // The user the related action applies to (if any). + // This is the added or removed user for + // CollaborationEvent::COLLABORATION_MEMBER_ADDED and + // CollaborationEvent::COLLABORATION_MEMBER_REMOVED, otherwise std::nullopt. std::optional<data_sharing::GroupMember> affected_user; // The user who performed the related action and caused the message (if any). + // This is not set for CollaborationEvent::COLLABORATION_MEMBER_ADDED and + // CollaborationEvent::COLLABORATION_MEMBER_REMOVED since we do not have a way + // to know how the change was triggered. std::optional<data_sharing::GroupMember> triggering_user; };
diff --git a/components/collaboration/public/messaging/messaging_backend_service.h b/components/collaboration/public/messaging/messaging_backend_service.h index dcb328ad..8678c82 100644 --- a/components/collaboration/public/messaging/messaging_backend_service.h +++ b/components/collaboration/public/messaging/messaging_backend_service.h
@@ -20,6 +20,7 @@ public base::SupportsUserData { public: class PersistentMessageObserver : public base::CheckedObserver { + public: // Invoked once when the service is initialized. This is invoked only once // and is immediately invoked if the service was initialized before the // observer was added. The initialization state can also be inspected using
diff --git a/components/content_capture/browser/content_capture_receiver.cc b/components/content_capture/browser/content_capture_receiver.cc index 23d93b0..eee39eb 100644 --- a/components/content_capture/browser/content_capture_receiver.cc +++ b/components/content_capture/browser/content_capture_receiver.cc
@@ -75,7 +75,7 @@ ContentCaptureReceiver::~ContentCaptureReceiver() = default; int64_t ContentCaptureReceiver::GetIdFrom(content::RenderFrameHost* rfh) { - return static_cast<int64_t>(rfh->GetProcess()->GetID()) << 32 | + return static_cast<int64_t>(rfh->GetProcess()->GetDeprecatedID()) << 32 | (rfh->GetRoutingID() & 0xFFFFFFFF); }
diff --git a/components/content_settings/browser/content_settings_manager_impl.cc b/components/content_settings/browser/content_settings_manager_impl.cc index 71fcce1..4332bbb 100644 --- a/components/content_settings/browser/content_settings_manager_impl.cc +++ b/components/content_settings/browser/content_settings_manager_impl.cc
@@ -128,13 +128,13 @@ DCHECK_CURRENTLY_ON(content::BrowserThread::UI); base::ThreadPool::CreateSingleThreadTaskRunner( {base::TaskPriority::USER_BLOCKING}) - ->PostTask( - FROM_HERE, - base::BindOnce(&ContentSettingsManagerImpl::CreateOnThread, - render_process_host->GetID(), std::move(receiver), - delegate->GetCookieSettings( - render_process_host->GetBrowserContext()), - std::move(delegate))); + ->PostTask(FROM_HERE, + base::BindOnce(&ContentSettingsManagerImpl::CreateOnThread, + render_process_host->GetDeprecatedID(), + std::move(receiver), + delegate->GetCookieSettings( + render_process_host->GetBrowserContext()), + std::move(delegate))); } void ContentSettingsManagerImpl::Clone(
diff --git a/components/content_settings/core/browser/content_settings_utils_unittest.cc b/components/content_settings/core/browser/content_settings_utils_unittest.cc index c0cabb15..f7054ff 100644 --- a/components/content_settings/core/browser/content_settings_utils_unittest.cc +++ b/components/content_settings/core/browser/content_settings_utils_unittest.cc
@@ -2,15 +2,11 @@ // 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/40285824): Remove this and convert code to safer constructs. -#pragma allow_unsafe_buffers -#endif - #include "components/content_settings/core/browser/content_settings_utils.h" #include <stddef.h> +#include <array> #include <string> #include "base/test/scoped_feature_list.h" @@ -27,14 +23,14 @@ namespace { // clang-format off -const char* const kContentSettingNames[] = { +const auto kContentSettingNames = std::to_array<const char *>({ "default", "allow", "block", "ask", "session_only", "detect_important_content", -}; +}); // clang-format on static_assert(std::size(kContentSettingNames) == CONTENT_SETTING_NUM_SETTINGS,
diff --git a/components/crash/content/browser/child_exit_observer_android.cc b/components/crash/content/browser/child_exit_observer_android.cc index 9abf5c52..2f934d7 100644 --- a/components/crash/content/browser/child_exit_observer_android.cc +++ b/components/crash/content/browser/child_exit_observer_android.cc
@@ -70,7 +70,8 @@ content::RenderProcessHost* host) { // The child process pid isn't available when process is gone, keep a mapping // between process_host_id and pid, so we can find it later. - process_host_id_to_pid_[host->GetID()] = host->GetProcess().Handle(); + process_host_id_to_pid_[host->GetDeprecatedID()] = + host->GetProcess().Handle(); if (!render_process_host_observation_.IsObservingSource(host)) { render_process_host_observation_.AddObservation(host); } @@ -151,7 +152,7 @@ const content::ChildProcessTerminationInfo* content_info) { DCHECK_CURRENTLY_ON(BrowserThread::UI); TerminationInfo info; - info.process_host_id = rph->GetID(); + info.process_host_id = rph->GetDeprecatedID(); info.pid = rph->GetProcess().Handle(); info.process_type = content::PROCESS_TYPE_RENDERER; info.app_state = base::android::APPLICATION_STATE_UNKNOWN; @@ -183,7 +184,7 @@ info.renderer_shutdown_requested = rph->ShutdownRequested(); } - const auto& iter = process_host_id_to_pid_.find(rph->GetID()); + const auto& iter = process_host_id_to_pid_.find(rph->GetDeprecatedID()); if (iter == process_host_id_to_pid_.end()) { return; }
diff --git a/components/crx_file/id_util_unittest.cc b/components/crx_file/id_util_unittest.cc index c60a81e..239bf37 100644 --- a/components/crx_file/id_util_unittest.cc +++ b/components/crx_file/id_util_unittest.cc
@@ -6,12 +6,14 @@ #include <stdint.h> +#include <array> + #include "testing/gtest/include/gtest/gtest.h" namespace crx_file::id_util { TEST(IDUtilTest, GenerateID) { - const uint8_t public_key_info[] = { + const auto public_key_info = std::to_array<uint8_t>({ 0x30, 0x81, 0x9f, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x01, 0x05, 0x00, 0x03, 0x81, 0x8d, 0x00, 0x30, 0x81, 0x89, 0x02, 0x81, 0x81, 0x00, 0xb8, 0x7f, 0x2b, 0x20, 0xdc, 0x7c, 0x9b, @@ -25,7 +27,8 @@ 0x84, 0x32, 0x33, 0xf3, 0x17, 0x49, 0xbf, 0xe9, 0x96, 0xd0, 0xd6, 0x14, 0x6f, 0x13, 0x8d, 0xc5, 0xfc, 0x2c, 0x72, 0xba, 0xac, 0xea, 0x7e, 0x18, 0x53, 0x56, 0xa6, 0x83, 0xa2, 0xce, 0x93, 0x93, 0xe7, 0x1f, 0x0f, 0xe6, - 0x0f, 0x02, 0x03, 0x01, 0x00, 0x01}; + 0x0f, 0x02, 0x03, 0x01, 0x00, 0x01, + }); std::string extension_id = GenerateId(std::string(reinterpret_cast<const char*>(&public_key_info[0]), std::size(public_key_info)));
diff --git a/components/guest_view/browser/guest_view_manager.cc b/components/guest_view/browser/guest_view_manager.cc index 62de7dd4..c94861bc 100644 --- a/components/guest_view/browser/guest_view_manager.cc +++ b/components/guest_view/browser/guest_view_manager.cc
@@ -57,7 +57,7 @@ RenderProcessHost* host, const content::ChildProcessTerminationInfo& info) override { if (guest_view_manager_) - guest_view_manager_->EmbedderProcessDestroyed(host->GetID()); + guest_view_manager_->EmbedderProcessDestroyed(host->GetDeprecatedID()); } void RenderProcessHostDestroyed(RenderProcessHost* host) override { @@ -212,7 +212,7 @@ RenderProcessHost* owner_process = guest->owner_rfh()->GetProcess(); DCHECK(owner_process); ObserveEmbedderLifetime(owner_process); - owned_guests_.insert({owner_process->GetID(), std::move(guest)}); + owned_guests_.insert({owner_process->GetDeprecatedID(), std::move(guest)}); } std::unique_ptr<content::WebContents> @@ -569,8 +569,8 @@ void GuestViewManager::ObserveEmbedderLifetime( RenderProcessHost* embedder_process) { - if (!embedders_observed_.count(embedder_process->GetID())) { - embedders_observed_.insert(embedder_process->GetID()); + if (!embedders_observed_.count(embedder_process->GetDeprecatedID())) { + embedders_observed_.insert(embedder_process->GetDeprecatedID()); // EmbedderRenderProcessHostObserver owns itself. new EmbedderRenderProcessHostObserver(weak_ptr_factory_.GetWeakPtr(), embedder_process); @@ -650,8 +650,11 @@ // to run in the main frame or its local subframes. const int allowed_embedder_render_process_id = guest_view->CanBeEmbeddedInsideCrossProcessFrames() - ? guest_view->owner_rfh()->GetProcess()->GetID() - : guest_view->owner_rfh()->GetMainFrame()->GetProcess()->GetID(); + ? guest_view->owner_rfh()->GetProcess()->GetDeprecatedID() + : guest_view->owner_rfh() + ->GetMainFrame() + ->GetProcess() + ->GetDeprecatedID(); if (embedder_render_process_id != allowed_embedder_render_process_id) { bad_access_key.Set("Bad embedder process");
diff --git a/components/history_embeddings/history_embeddings_service.cc b/components/history_embeddings/history_embeddings_service.cc index f8fe726..2313b11 100644 --- a/components/history_embeddings/history_embeddings_service.cc +++ b/components/history_embeddings/history_embeddings_service.cc
@@ -191,6 +191,7 @@ clone.query = query; clone.time_range_start = time_range_start; clone.count = count; + clone.search_params = search_params; clone.scored_url_rows = scored_url_rows; return clone; } @@ -392,6 +393,7 @@ std::string query, std::optional<base::Time> time_range_start, size_t count, + bool skip_answering, SearchResultCallback callback) { SearchResult result; @@ -416,13 +418,27 @@ result.time_range_start = time_range_start; result.count = count; - SearchParams search_params; - search_params.erase_non_ascii = + // Set search parameters, kept within result for caller convenience. + result.search_params.skip_answering = skip_answering; + result.search_params.erase_non_ascii = GetFeatureParameters().erase_non_ascii_characters; - if (search_params.erase_non_ascii) { + if (result.search_params.erase_non_ascii) { EraseNonAsciiCharacters(query); } - if (QueryIsFiltered(query, search_params)) { + result.search_params.word_match_minimum_embedding_score = + GetFeatureParameters().word_match_min_embedding_score; + result.search_params.word_match_score_boost_factor = + GetFeatureParameters().word_match_score_boost_factor; + result.search_params.word_match_limit = + GetFeatureParameters().word_match_limit; + result.search_params.word_match_smoothing_factor = + GetFeatureParameters().word_match_smoothing_factor; + result.search_params.word_match_max_term_count = + GetFeatureParameters().word_match_max_term_count; + result.search_params.word_match_required_term_ratio = + GetFeatureParameters().word_match_required_term_ratio; + + if (QueryIsFiltered(query, result.search_params)) { result.count = 0; base::SequencedTaskRunner::GetCurrentDefault()->PostTask( FROM_HERE, base::BindOnce( @@ -432,29 +448,17 @@ callback, result.Clone())); return result; } - search_params.word_match_minimum_embedding_score = - GetFeatureParameters().word_match_min_embedding_score; - search_params.word_match_score_boost_factor = - GetFeatureParameters().word_match_score_boost_factor; - search_params.word_match_limit = GetFeatureParameters().word_match_limit; - search_params.word_match_smoothing_factor = - GetFeatureParameters().word_match_smoothing_factor; - search_params.word_match_max_term_count = - GetFeatureParameters().word_match_max_term_count; - search_params.word_match_required_term_ratio = - GetFeatureParameters().word_match_required_term_ratio; embedder_->ComputePassagesEmbeddings( PassageKind::QUERY, {std::move(query)}, base::BindOnce(&HistoryEmbeddingsService::OnQueryEmbeddingComputed, weak_ptr_factory_.GetWeakPtr(), std::move(callback), - std::move(search_params), result.Clone())); + result.Clone())); return result; } void HistoryEmbeddingsService::OnQueryEmbeddingComputed( SearchResultCallback callback, - SearchParams search_params, SearchResult result, std::vector<std::string> query_passages, std::vector<Embedding> query_embeddings, @@ -479,7 +483,7 @@ query_id_++; storage_.AsyncCall(&Storage::Search) .WithArgs(query_id_weak_ptr_factory_.GetWeakPtr(), query_id_.load(), - std::move(search_params), std::move(query_embeddings.front()), + result.search_params, std::move(query_embeddings.front()), result.time_range_start, result.count) .Then(base::BindOnce(&HistoryEmbeddingsService::OnSearchCompleted, weak_ptr_factory_.GetWeakPtr(), std::move(callback), @@ -976,6 +980,12 @@ SearchResult result) { callback.Run(result.Clone()); + // Do no intent classification or answering if `Search` caller requested + // to `skip_answering`. + if (result.search_params.skip_answering) { + return; + } + // TODO(b/369446266): Intent classification can execute in parallel with // initial query embedding computation and search. This doesn't make // much difference when the mock is used but could save time when the
diff --git a/components/history_embeddings/history_embeddings_service.h b/components/history_embeddings/history_embeddings_service.h index f23a19b..3b954e9 100644 --- a/components/history_embeddings/history_embeddings_service.h +++ b/components/history_embeddings/history_embeddings_service.h
@@ -123,6 +123,7 @@ std::string query; std::optional<base::Time> time_range_start; size_t count = 0; + SearchParams search_params; // The actual search result data. Note that the size of this vector will // not necessarily match the above requested `count`. @@ -180,17 +181,19 @@ // the time range is inclusive and the end is unbounded. Practically, this can // be thought of as [start, now) but now isn't fixed. Virtual for testing. // The `callback` may be called back later with another search result - // containing an answer. This two-phase result callback scheme lets callers - // receive initial search results without having to wait longer for answers. - // The `previous_search_result` may be nullptr to signal the beginning of a - // completely new search session; if it is non-null and the session_id was - // set, the new session_id is set based on the previous to indicate a - // continuing search session. Returns a stub result that can be used to detect - // if a later published SearchResult instance is related to this search. + // containing an answer, only if `skip_answering` is false. This two-phase + // result callback scheme lets callers receive initial search results without + // having to wait longer for answers. The `previous_search_result` may be + // nullptr to signal the beginning of a completely new search session; if it + // is non-null and the session_id was set, the new session_id is set based on + // the previous to indicate a continuing search session. Returns a stub result + // that can be used to detect if a later published SearchResult instance is + // related to this search. virtual SearchResult Search(SearchResult* previous_search_result, std::string query, std::optional<base::Time> time_range_start, size_t count, + bool skip_answering, SearchResultCallback callback); // Weak `this` provider method. @@ -320,7 +323,6 @@ // computed. void OnQueryEmbeddingComputed( SearchResultCallback callback, - SearchParams search_params, SearchResult result, std::vector<std::string> query_passages, std::vector<Embedding> query_embedding,
diff --git a/components/history_embeddings/history_embeddings_service_unittest.cc b/components/history_embeddings/history_embeddings_service_unittest.cc index 51c13a2..7b271fe9 100644 --- a/components/history_embeddings/history_embeddings_service_unittest.cc +++ b/components/history_embeddings/history_embeddings_service_unittest.cc
@@ -280,7 +280,8 @@ // Search results created by service search have new valid ID. base::test::TestFuture<SearchResult> future; - service_->Search(nullptr, "", {}, 1, future.GetRepeatingCallback()); + service_->Search(nullptr, "", {}, 1, /*skip_answering=*/false, + future.GetRepeatingCallback()); EXPECT_FALSE(future.Take().session_id.empty()); } @@ -337,7 +338,8 @@ base::HistogramTester histogram_tester; base::test::TestFuture<SearchResult> future; OverrideVisibilityScoresForTesting({{"", 0.99}}); - service_->Search(nullptr, "", {}, 1, future.GetRepeatingCallback()); + service_->Search(nullptr, "", {}, 1, /*skip_answering=*/false, + future.GetRepeatingCallback()); EXPECT_TRUE(future.Take().scored_url_rows.empty()); histogram_tester.ExpectUniqueSample("History.Embeddings.Search.Completed", @@ -355,7 +357,7 @@ // Specifying null produces a new random session_id with sequence number 0. service_->Search(/*previous_search_result=*/nullptr, "", {}, 1, - future.GetRepeatingCallback()); + /*skip_answering=*/false, future.GetRepeatingCallback()); token = *base::Token::FromString(future.Take().session_id); EXPECT_NE(token.high(), 0u); EXPECT_EQ(token.low() & HistoryEmbeddingsService::kSessionIdSequenceBitMask, @@ -363,7 +365,8 @@ // Likewise for first new result when previous result was empty. SearchResult result; - service_->Search(&result, "", {}, 1, future.GetRepeatingCallback()); + service_->Search(&result, "", {}, 1, /*skip_answering=*/false, + future.GetRepeatingCallback()); result = future.Take(); token = *base::Token::FromString(result.session_id); EXPECT_NE(token.high(), 0u); @@ -374,7 +377,8 @@ for (size_t i = 1; i <= HistoryEmbeddingsService::kSessionIdSequenceBitMask; i++) { old_token = token; - service_->Search(&result, "", {}, 1, future.GetRepeatingCallback()); + service_->Search(&result, "", {}, 1, /*skip_answering=*/false, + future.GetRepeatingCallback()); result = future.Take(); token = *base::Token::FromString(result.session_id); EXPECT_EQ(token.high(), old_token.high()); @@ -399,13 +403,15 @@ // Additional increments simply overflow into the next higher bits. old_token = base::Token(old_token.high(), old_token.low() + 1); - service_->Search(&result, "", {}, 1, future.GetRepeatingCallback()); + service_->Search(&result, "", {}, 1, /*skip_answering=*/false, + future.GetRepeatingCallback()); result = future.Take(); token = *base::Token::FromString(result.session_id); EXPECT_EQ(old_token, token); old_token = base::Token(old_token.high(), old_token.low() + 1); - service_->Search(&result, "", {}, 1, future.GetRepeatingCallback()); + service_->Search(&result, "", {}, 1, /*skip_answering=*/false, + future.GetRepeatingCallback()); result = future.Take(); token = *base::Token::FromString(result.session_id); EXPECT_EQ(old_token, token); @@ -508,7 +514,8 @@ {"test passage 5", 0.99}, {"test passage 6", 0.99}, }); - service_->Search(nullptr, "test query", {}, 3, future.GetRepeatingCallback()); + service_->Search(nullptr, "test query", {}, 3, /*skip_answering=*/false, + future.GetRepeatingCallback()); SearchResult result = future.Take(); EXPECT_EQ(result.query, "test query"); @@ -564,7 +571,7 @@ { base::test::TestFuture<SearchResult> future; service_->Search(nullptr, "query without terms", {}, 3, - future.GetRepeatingCallback()); + /*skip_answering=*/false, future.GetRepeatingCallback()); SearchResult result = future.Take(); EXPECT_FALSE(result.session_id.empty()); EXPECT_EQ(result.query, "query without terms"); @@ -573,7 +580,8 @@ { base::test::TestFuture<SearchResult> future; service_->Search(nullptr, "query with inexact spe'cial in the middle", {}, - 3, future.GetRepeatingCallback()); + 3, /*skip_answering=*/false, + future.GetRepeatingCallback()); SearchResult result = future.Take(); EXPECT_FALSE(result.session_id.empty()); EXPECT_EQ(result.query, "query with inexact spe'cial in the middle"); @@ -582,7 +590,8 @@ { base::test::TestFuture<SearchResult> future; service_->Search(nullptr, "query with non-ASCII ∅ character but no terms", - {}, 3, future.GetRepeatingCallback()); + {}, 3, /*skip_answering=*/false, + future.GetRepeatingCallback()); SearchResult result = future.Take(); EXPECT_FALSE(result.session_id.empty()); EXPECT_EQ(result.query, "query with non-ASCII ∅ character but no terms"); @@ -591,7 +600,7 @@ { base::test::TestFuture<SearchResult> future; service_->Search(nullptr, "the word 'special' has its hash filtered", {}, 3, - future.GetRepeatingCallback()); + /*skip_answering=*/false, future.GetRepeatingCallback()); SearchResult result = future.Take(); EXPECT_FALSE(result.session_id.empty()); EXPECT_EQ(result.query, "the word 'special' has its hash filtered"); @@ -599,9 +608,9 @@ } { base::test::TestFuture<SearchResult> future; - service_->Search(nullptr, - "the phrase 'something something' is also hash filtered", - {}, 3, future.GetRepeatingCallback()); + service_->Search( + nullptr, "the phrase 'something something' is also hash filtered", {}, + 3, /*skip_answering=*/false, future.GetRepeatingCallback()); SearchResult result = future.Take(); EXPECT_FALSE(result.session_id.empty()); EXPECT_EQ(result.query, @@ -611,7 +620,8 @@ { base::test::TestFuture<SearchResult> future; service_->Search(nullptr, "this Hello, World! is also hash filtered", - {}, 3, future.GetRepeatingCallback()); + {}, 3, /*skip_answering=*/false, + future.GetRepeatingCallback()); SearchResult result = future.Take(); EXPECT_FALSE(result.session_id.empty()); EXPECT_EQ(result.query, "this Hello, World! is also hash filtered"); @@ -621,7 +631,7 @@ base::test::TestFuture<SearchResult> future; service_->Search( nullptr, "Hello | World is also filtered due to trimmed empty removal", - {}, 3, future.GetRepeatingCallback()); + {}, 3, /*skip_answering=*/false, future.GetRepeatingCallback()); SearchResult result = future.Take(); EXPECT_FALSE(result.session_id.empty()); EXPECT_EQ(result.query, @@ -630,9 +640,9 @@ } { base::test::TestFuture<SearchResult> future; - service_->Search(nullptr, - "hellow orld is not filtered since its hash differs", {}, - 3, future.GetRepeatingCallback()); + service_->Search( + nullptr, "hellow orld is not filtered since its hash differs", {}, 3, + /*skip_answering=*/false, future.GetRepeatingCallback()); SearchResult result = future.Take(); EXPECT_FALSE(result.session_id.empty()); EXPECT_EQ(result.query, @@ -703,7 +713,8 @@ { base::test::TestFuture<SearchResult> future; service_->Search(/*previous_search_result=*/nullptr, "boosted test query", - {}, 1, future.GetRepeatingCallback()); + {}, 1, /*skip_answering=*/false, + future.GetRepeatingCallback()); SearchResult result = future.Take(); EXPECT_EQ(result.scored_url_rows.size(), 1u); const ScoredUrlRow& row = result.scored_url_rows[0]; @@ -717,7 +728,7 @@ service_->Search( /*previous_search_result=*/nullptr, "this very very very very very long test query isn't boosted", {}, 1, - future.GetRepeatingCallback()); + /*skip_answering=*/false, future.GetRepeatingCallback()); SearchResult result = future.Take(); EXPECT_EQ(result.scored_url_rows.size(), 1u); const ScoredUrlRow& row = result.scored_url_rows[0]; @@ -752,7 +763,8 @@ set_ratio(0.3f); base::test::TestFuture<SearchResult> future; service_->Search(/*previous_search_result=*/nullptr, "boosted test query", - {}, 1, future.GetRepeatingCallback()); + {}, 1, /*skip_answering=*/false, + future.GetRepeatingCallback()); SearchResult result = future.Take(); EXPECT_EQ(result.scored_url_rows.size(), 1u); const ScoredUrlRow& row = result.scored_url_rows[0]; @@ -764,7 +776,8 @@ set_ratio(0.5f); base::test::TestFuture<SearchResult> future; service_->Search(/*previous_search_result=*/nullptr, "boosted test query", - {}, 1, future.GetRepeatingCallback()); + {}, 1, /*skip_answering=*/false, + future.GetRepeatingCallback()); SearchResult result = future.Take(); EXPECT_EQ(result.scored_url_rows.size(), 1u); const ScoredUrlRow& row = result.scored_url_rows[0]; @@ -776,7 +789,7 @@ set_ratio(1.0f); base::test::TestFuture<SearchResult> future; service_->Search(/*previous_search_result=*/nullptr, - "test passage one more", {}, 1, + "test passage one more", {}, 1, /*skip_answering=*/false, future.GetRepeatingCallback()); SearchResult result = future.Take(); EXPECT_EQ(result.scored_url_rows.size(), 1u); @@ -788,7 +801,8 @@ set_ratio(1.0f); base::test::TestFuture<SearchResult> future; service_->Search(/*previous_search_result=*/nullptr, "test passage one", {}, - 1, future.GetRepeatingCallback()); + 1, /*skip_answering=*/false, + future.GetRepeatingCallback()); SearchResult result = future.Take(); EXPECT_EQ(result.scored_url_rows.size(), 1u); const ScoredUrlRow& row = result.scored_url_rows[0]; @@ -799,7 +813,8 @@ set_ratio(1.0f); base::test::TestFuture<SearchResult> future; service_->Search(/*previous_search_result=*/nullptr, "test passage one two", - {}, 1, future.GetRepeatingCallback()); + {}, 1, /*skip_answering=*/false, + future.GetRepeatingCallback()); SearchResult result = future.Take(); EXPECT_EQ(result.scored_url_rows.size(), 1u); const ScoredUrlRow& row = result.scored_url_rows[0];
diff --git a/components/history_embeddings/mock_history_embeddings_service.h b/components/history_embeddings/mock_history_embeddings_service.h index 09de6297..0a241fc2 100644 --- a/components/history_embeddings/mock_history_embeddings_service.h +++ b/components/history_embeddings/mock_history_embeddings_service.h
@@ -27,6 +27,7 @@ std::string query, std::optional<base::Time> time_range_start, size_t count, + bool skip_answering, SearchResultCallback callback), (override)); explicit MockHistoryEmbeddingsService(
diff --git a/components/history_embeddings/vector_database.cc b/components/history_embeddings/vector_database.cc index 3c85a68..eee731e4 100644 --- a/components/history_embeddings/vector_database.cc +++ b/components/history_embeddings/vector_database.cc
@@ -153,8 +153,10 @@ //////////////////////////////////////////////////////////////////////////////// SearchParams::SearchParams() = default; +SearchParams::SearchParams(const SearchParams&) = default; SearchParams::SearchParams(SearchParams&&) = default; SearchParams::~SearchParams() = default; +SearchParams& SearchParams::operator=(const SearchParams&) = default; ////////////////////////////////////////////////////////////////////////////////
diff --git a/components/history_embeddings/vector_database.h b/components/history_embeddings/vector_database.h index 39ae30a..ffc218ca 100644 --- a/components/history_embeddings/vector_database.h +++ b/components/history_embeddings/vector_database.h
@@ -43,8 +43,10 @@ struct SearchParams { SearchParams(); + SearchParams(const SearchParams&); SearchParams(SearchParams&&); ~SearchParams(); + SearchParams& operator=(const SearchParams&); // Portions of lower-cased query representing terms usable for text search. // Owned std::string instances are used instead of std::string_view into @@ -78,6 +80,9 @@ // If true, any non-ASCII characters in queries or passages will be erased // instead of ignoring such queries or passages entirely. bool erase_non_ascii = false; + + // If true, answering step will be skipped even if the query is answerable. + bool skip_answering = false; }; struct SearchInfo {
diff --git a/components/input/gesture_event_queue_unittest.cc b/components/input/gesture_event_queue_unittest.cc index 4c7a122..0c59c51 100644 --- a/components/input/gesture_event_queue_unittest.cc +++ b/components/input/gesture_event_queue_unittest.cc
@@ -2,15 +2,11 @@ // 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/40285824): Remove this and convert code to safer constructs. -#pragma allow_unsafe_buffers -#endif - #include "components/input/gesture_event_queue.h" #include <stddef.h> +#include <array> #include <memory> #include <utility> #include <vector> @@ -325,12 +321,13 @@ EXPECT_FALSE(ScrollingInProgress()); // Verify that the coalescing queue contains the correct events. - WebInputEvent::Type expected[] = {WebInputEvent::Type::kGestureScrollUpdate, - WebInputEvent::Type::kGestureScrollUpdate, - WebInputEvent::Type::kGestureScrollEnd}; + auto expected = std::to_array<WebInputEvent::Type>({ + WebInputEvent::Type::kGestureScrollUpdate, + WebInputEvent::Type::kGestureScrollUpdate, + WebInputEvent::Type::kGestureScrollEnd, + }); - for (unsigned i = 0; i < sizeof(expected) / sizeof(WebInputEvent::Type); - i++) { + for (size_t i = 0; i < expected.size(); i++) { WebGestureEvent merged_event = GestureEventQueueEventAt(i); EXPECT_EQ(expected[i], merged_event.GetType()); } @@ -363,12 +360,13 @@ EXPECT_EQ(0U, GestureEventDebouncingQueueSize()); // Verify that the coalescing queue contains the correct events. - WebInputEvent::Type expected[] = {WebInputEvent::Type::kGestureScrollUpdate, - WebInputEvent::Type::kGestureScrollEnd, - WebInputEvent::Type::kGestureScrollBegin}; + auto expected = std::to_array<WebInputEvent::Type>({ + WebInputEvent::Type::kGestureScrollUpdate, + WebInputEvent::Type::kGestureScrollEnd, + WebInputEvent::Type::kGestureScrollBegin, + }); - for (unsigned i = 0; i < sizeof(expected) / sizeof(WebInputEvent::Type); - i++) { + for (size_t i = 0; i < expected.size(); i++) { WebGestureEvent merged_event = GestureEventQueueEventAt(i); EXPECT_EQ(expected[i], merged_event.GetType()); } @@ -428,11 +426,11 @@ EXPECT_TRUE(ScrollingInProgress()); // Verify that the coalescing queue contains the correct events. - WebInputEvent::Type expected[] = {WebInputEvent::Type::kGestureScrollUpdate, - WebInputEvent::Type::kGestureScrollUpdate}; + auto expected = std::to_array<WebInputEvent::Type>( + {WebInputEvent::Type::kGestureScrollUpdate, + WebInputEvent::Type::kGestureScrollUpdate}); - for (unsigned i = 0; i < sizeof(expected) / sizeof(WebInputEvent::Type); - i++) { + for (size_t i = 0; i < expected.size(); i++) { WebGestureEvent merged_event = GestureEventQueueEventAt(i); EXPECT_EQ(expected[i], merged_event.GetType()); } @@ -468,11 +466,11 @@ EXPECT_TRUE(ScrollingInProgress()); // Verify that the coalescing queue contains the correct events. - WebInputEvent::Type expected[] = {WebInputEvent::Type::kGestureScrollUpdate, - WebInputEvent::Type::kGestureScrollUpdate}; + auto expected = std::to_array<WebInputEvent::Type>( + {WebInputEvent::Type::kGestureScrollUpdate, + WebInputEvent::Type::kGestureScrollUpdate}); - for (unsigned i = 0; i < sizeof(expected) / sizeof(WebInputEvent::Type); - i++) { + for(size_t i = 0; i < expected.size(); i++) { WebGestureEvent merged_event = GestureEventQueueEventAt(i); EXPECT_EQ(expected[i], merged_event.GetType()); }
diff --git a/components/input/touch_event_stream_validator_unittest.cc b/components/input/touch_event_stream_validator_unittest.cc index 08504ea..a0d4374 100644 --- a/components/input/touch_event_stream_validator_unittest.cc +++ b/components/input/touch_event_stream_validator_unittest.cc
@@ -2,15 +2,12 @@ // 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/342213636): Remove this and spanify to fix the errors. -#pragma allow_unsafe_buffers -#endif - #include "components/input/touch_event_stream_validator.h" #include <stddef.h> +#include <array> + #include "components/input/web_touch_event_traits.h" #include "testing/gtest/include/gtest/gtest.h" #include "third_party/blink/public/common/input/synthetic_web_input_event_builders.h" @@ -143,14 +140,14 @@ TouchEventStreamValidator validator; std::string error_msg; - WebInputEvent::Type kTouchTypes[4] = { + std::array<WebInputEvent::Type, 4> kTouchTypes = { WebInputEvent::Type::kTouchStart, WebInputEvent::Type::kTouchMove, WebInputEvent::Type::kTouchEnd, WebInputEvent::Type::kTouchCancel, }; - WebTouchPoint::State kValidTouchPointStatesForType[4] = { + std::array<WebTouchPoint::State, 4> kValidTouchPointStatesForType = { WebTouchPoint::State::kStatePressed, WebTouchPoint::State::kStateMoved, WebTouchPoint::State::kStateReleased,
diff --git a/components/lens/lens_features.h b/components/lens/lens_features.h index 7480b8b..015471d 100644 --- a/components/lens/lens_features.h +++ b/components/lens/lens_features.h
@@ -307,9 +307,10 @@ COMPONENT_EXPORT(LENS_FEATURES) extern bool GetLensOverlaySendLensInputsForContextualSuggest(); -// Returns whether or not to send the search session and visual -// search request ids in suggest requests from the Lens -// search box. +// Returns whether or not to send the search session, visual +// search request id, and visual interaction type in suggest requests from the +// Lens search box. These params replace the existing "iil" image signals +// param. COMPONENT_EXPORT(LENS_FEATURES) extern bool GetLensOverlaySendLensInputsForLensSuggest();
diff --git a/components/lens/proto/server/lens_overlay_response.proto b/components/lens/proto/server/lens_overlay_response.proto index 88895cb..a3cdb34 100644 --- a/components/lens/proto/server/lens_overlay_response.proto +++ b/components/lens/proto/server/lens_overlay_response.proto
@@ -32,8 +32,9 @@ // Whether or not to include the request and search session ids // in Lens query flow suggest requests in the - // "gsessionid" and "vsrid" params. - optional bool send_gsession_vsrid_for_lens_suggest = 6; + // "gsessionid" and "vsrid" params. If the request was a multimodal request + // starting from a contextual search, the "vit" param will also be included. + optional bool send_gsession_vsrid_vit_for_lens_suggest = 6; // Whether or not to include the visual search interaction log data // in Lens query flow suggest requests in the "vsint" param.
diff --git a/components/live_caption/views/caption_bubble_model.cc b/components/live_caption/views/caption_bubble_model.cc index dd9cc456..2aa233d 100644 --- a/components/live_caption/views/caption_bubble_model.cc +++ b/components/live_caption/views/caption_bubble_model.cc
@@ -180,9 +180,7 @@ } bool CaptionBubbleModel::SkipPrefChangeOnClose() { - return context_->GetSessionId() == - std::string(kBocaWithTranslationSessionId) || - context_->GetSessionId() == std::string(kBocaNoTranslationSessionId); + return context_->GetSessionId() == std::string(kBocaWithTranslationSessionId); } // static
diff --git a/components/live_caption/views/caption_bubble_model.h b/components/live_caption/views/caption_bubble_model.h index a47f53d..fc6a654 100644 --- a/components/live_caption/views/caption_bubble_model.h +++ b/components/live_caption/views/caption_bubble_model.h
@@ -58,7 +58,6 @@ public: // TODO(crbug.com/378469298): Gate Boca strings and functions behind ChromeOS // build flag. - static constexpr char kBocaNoTranslationSessionId[] = "BocaNoTranslation"; static constexpr char kBocaWithTranslationSessionId[] = "BocaWithTranslation"; using Id = base::IdTypeU64<CaptionBubbleModel>;
diff --git a/components/metrics/content/subprocess_metrics_provider.cc b/components/metrics/content/subprocess_metrics_provider.cc index a29c118..c2c8cec 100644 --- a/components/metrics/content/subprocess_metrics_provider.cc +++ b/components/metrics/content/subprocess_metrics_provider.cc
@@ -225,8 +225,9 @@ host->TakeMetricsAllocator(); if (allocator) { RegisterSubprocessAllocator( - host->GetID(), std::make_unique<base::PersistentHistogramAllocator>( - std::move(allocator))); + host->GetDeprecatedID(), + std::make_unique<base::PersistentHistogramAllocator>( + std::move(allocator))); } } @@ -235,7 +236,7 @@ const content::ChildProcessTerminationInfo& info) { DCHECK_CALLED_ON_VALID_THREAD(thread_checker_); - DeregisterSubprocessAllocator(host->GetID()); + DeregisterSubprocessAllocator(host->GetDeprecatedID()); } void SubprocessMetricsProvider::RenderProcessHostDestroyed( @@ -246,7 +247,7 @@ // (above) being called so it's necessary to de-register also upon the // destruction of the host. If both get called, no harm is done. - DeregisterSubprocessAllocator(host->GetID()); + DeregisterSubprocessAllocator(host->GetDeprecatedID()); scoped_observations_.RemoveObservation(host); }
diff --git a/components/metrics/persistent_system_profile.cc b/components/metrics/persistent_system_profile.cc index 5f53ff2..3cef1f2 100644 --- a/components/metrics/persistent_system_profile.cc +++ b/components/metrics/persistent_system_profile.cc
@@ -109,7 +109,7 @@ if (!AddSegment(remaining_size)) return false; } - // Write out as much of the data as possible. |data| and |remaining_size| + // Write out as much of the data as possible. `data` and `remaining_size` // are updated in place. if (!WriteData(type, &data, &remaining_size)) return false; @@ -152,8 +152,7 @@ bool PersistentSystemProfile::RecordAllocator::NextSegment() const { base::PersistentMemoryAllocator::Iterator iter(allocator_, alloc_reference_); - alloc_reference_ = iter.GetNextOfType(kTypeIdSystemProfile); - alloc_size_ = allocator_->GetAllocSize(alloc_reference_); + alloc_reference_ = iter.GetNextOfType(kTypeIdSystemProfile, &alloc_size_); end_offset_ = 0; return alloc_reference_ != 0; } @@ -174,13 +173,15 @@ size_t size = std::max(CalculateRecordSize(min_size), kSystemProfileAllocSize); - uint32_t ref = allocator_->Allocate(size, kTypeIdSystemProfile); + size_t new_alloc_size = 0; + uint32_t ref = + allocator_->Allocate(size, kTypeIdSystemProfile, &new_alloc_size); if (!ref) return false; // Allocator must be full. allocator_->MakeIterable(ref); alloc_reference_ = ref; - alloc_size_ = allocator_->GetAllocSize(ref); + alloc_size_ = new_alloc_size; return true; } @@ -289,7 +290,7 @@ base::PersistentMemoryAllocator* memory_allocator) { DCHECK_CALLED_ON_VALID_THREAD(thread_checker_); - // Create and store the allocator. A |min_size| of "1" ensures that a memory + // Create and store the allocator. A `min_size` of "1" ensures that a memory // block is reserved now. RecordAllocator allocator(memory_allocator, 1); allocators_.push_back(std::move(allocator));
diff --git a/components/network_hints/browser/simple_network_hints_handler_impl.cc b/components/network_hints/browser/simple_network_hints_handler_impl.cc index 7743625..1a19a42 100644 --- a/components/network_hints/browser/simple_network_hints_handler_impl.cc +++ b/components/network_hints/browser/simple_network_hints_handler_impl.cc
@@ -132,7 +132,7 @@ void SimpleNetworkHintsHandlerImpl::Create( content::RenderFrameHost* frame_host, mojo::PendingReceiver<mojom::NetworkHintsHandler> receiver) { - int render_process_id = frame_host->GetProcess()->GetID(); + int render_process_id = frame_host->GetProcess()->GetDeprecatedID(); int render_frame_id = frame_host->GetRoutingID(); mojo::MakeSelfOwnedReceiver( base::WrapUnique(new SimpleNetworkHintsHandlerImpl(render_process_id,
diff --git a/components/no_state_prefetch/browser/no_state_prefetch_processor_impl.cc b/components/no_state_prefetch/browser/no_state_prefetch_processor_impl.cc index a1c18f45..9a4597c7 100644 --- a/components/no_state_prefetch/browser/no_state_prefetch_processor_impl.cc +++ b/components/no_state_prefetch/browser/no_state_prefetch_processor_impl.cc
@@ -38,7 +38,7 @@ std::unique_ptr<NoStatePrefetchProcessorImplDelegate> delegate) { // NoStatePrefetchProcessorImpl is a self-owned object. This deletes itself on // the mojo disconnect handler. - new NoStatePrefetchProcessorImpl(frame_host->GetProcess()->GetID(), + new NoStatePrefetchProcessorImpl(frame_host->GetProcess()->GetDeprecatedID(), frame_host->GetRoutingID(), frame_host->GetLastCommittedOrigin(), std::move(receiver), std::move(delegate));
diff --git a/components/omnibox/browser/history_embeddings_provider.cc b/components/omnibox/browser/history_embeddings_provider.cc index fcf62a8..53b1745 100644 --- a/components/omnibox/browser/history_embeddings_provider.cc +++ b/components/omnibox/browser/history_embeddings_provider.cc
@@ -92,7 +92,7 @@ metrics::OmniboxEventProto_Feature_HISTORY_EMBEDDINGS_FEATURE); service->Search( nullptr, base::UTF16ToUTF8(adjusted_input.text()), {}, - provider_max_matches_, + provider_max_matches_, /*skip_answering=*/false, base::BindRepeating(&HistoryEmbeddingsProvider::OnReceivedSearchResult, weak_factory_.GetWeakPtr())); }
diff --git a/components/omnibox/browser/history_embeddings_provider_unittest.cc b/components/omnibox/browser/history_embeddings_provider_unittest.cc index 9f23ac67..5d5af43 100644 --- a/components/omnibox/browser/history_embeddings_provider_unittest.cc +++ b/components/omnibox/browser/history_embeddings_provider_unittest.cc
@@ -133,11 +133,12 @@ // When `Search()` is called, pushes a callback to `search_callbacks_` that // can be ran to simulate `Search()` responding asyncly. ON_CALL(*history_embeddings_service_, - Search(testing::_, testing::_, testing::_, testing::_, testing::_)) + Search(testing::_, testing::_, testing::_, testing::_, testing::_, + testing::_)) .WillByDefault( [&](history_embeddings::SearchResult* previous_search_result, std::string query, std::optional<base::Time> time_range_start, - size_t count, + size_t count, bool skip_answering, history_embeddings::SearchResultCallback callback) { search_callbacks_.push_back(base::BindOnce( [](history_embeddings::SearchResultCallback callback, @@ -187,9 +188,9 @@ // When the feature is disabled, should early exit. EXPECT_CALL(*client_, IsHistoryEmbeddingsEnabled()) .WillOnce(testing::Return(false)); - EXPECT_CALL( - *history_embeddings_service_, - Search(testing::_, testing::_, testing::_, testing::_, testing::_)) + EXPECT_CALL(*history_embeddings_service_, + Search(testing::_, testing::_, testing::_, testing::_, testing::_, + testing::_)) .Times(0); history_embeddings_provider_->Start(long_input, false); EXPECT_FALSE(trigger_service->GetFeatureTriggeredInSession(trigger_feature)); @@ -209,18 +210,18 @@ EXPECT_CALL(*client_, IsHistoryEmbeddingsEnabled()) .WillRepeatedly(testing::Return(true)); - EXPECT_CALL( - *history_embeddings_service_, - Search(testing::_, testing::_, testing::_, testing::_, testing::_)) + EXPECT_CALL(*history_embeddings_service_, + Search(testing::_, testing::_, testing::_, testing::_, testing::_, + testing::_)) .Times(0); history_embeddings_provider_->Start(short_input, false); EXPECT_FALSE(trigger_service->GetFeatureTriggeredInSession(trigger_feature)); trigger_service->ResetSession(); // Sync queries should be blocked. - EXPECT_CALL( - *history_embeddings_service_, - Search(testing::_, testing::_, testing::_, testing::_, testing::_)) + EXPECT_CALL(*history_embeddings_service_, + Search(testing::_, testing::_, testing::_, testing::_, testing::_, + testing::_)) .Times(0); history_embeddings_provider_->Start(sync_long_input, false); EXPECT_FALSE(trigger_service->GetFeatureTriggeredInSession(trigger_feature)); @@ -229,7 +230,7 @@ // Long queries should pass. EXPECT_CALL(*history_embeddings_service_, Search(testing::_, "query query query", - std::optional<base::Time>{}, 3u, testing::_)) + std::optional<base::Time>{}, 3u, false, testing::_)) .Times(1); history_embeddings_provider_->Start(long_input, false); EXPECT_TRUE(trigger_service->GetFeatureTriggeredInSession(trigger_feature));
diff --git a/components/omnibox/browser/remote_suggestions_service.cc b/components/omnibox/browser/remote_suggestions_service.cc index 27a02cc..4d9d4d1 100644 --- a/components/omnibox/browser/remote_suggestions_service.cc +++ b/components/omnibox/browser/remote_suggestions_service.cc
@@ -53,22 +53,23 @@ } GURL modified_url = GURL(url_to_modify); bool send_request_and_session_ids = false; + bool send_vit = false; if (search_terms_args.page_classification == metrics::OmniboxEventProto::CONTEXTUAL_SEARCHBOX) { send_request_and_session_ids = lens_overlay_suggest_inputs ->send_gsession_vsrid_for_contextual_suggest(); - if (lens_overlay_suggest_inputs->has_contextual_visual_input_type()) { - modified_url = net::AppendOrReplaceQueryParameter( - modified_url, "vit", - lens_overlay_suggest_inputs->contextual_visual_input_type()); - } + send_vit = true; } else if (search_terms_args.page_classification == metrics::OmniboxEventProto::LENS_SIDE_PANEL_SEARCHBOX) { - send_request_and_session_ids = - lens_overlay_suggest_inputs->send_gsession_vsrid_for_lens_suggest(); - if (lens_overlay_suggest_inputs->has_encoded_image_signals()) { + if (lens_overlay_suggest_inputs + ->send_gsession_vsrid_vit_for_lens_suggest()) { + send_request_and_session_ids = true; + send_vit = true; + } else if (lens_overlay_suggest_inputs->has_encoded_image_signals()) { + // Only attach the iil param if we are not sending the request and session + // ids. modified_url = net::AppendOrReplaceQueryParameter( modified_url, "iil", lens_overlay_suggest_inputs->encoded_image_signals()); @@ -83,6 +84,13 @@ } } + if (send_vit && + lens_overlay_suggest_inputs->has_contextual_visual_input_type()) { + modified_url = net::AppendOrReplaceQueryParameter( + modified_url, "vit", + lens_overlay_suggest_inputs->contextual_visual_input_type()); + } + if (send_request_and_session_ids) { if (lens_overlay_suggest_inputs->has_encoded_request_id()) { modified_url = net::AppendOrReplaceQueryParameter(
diff --git a/components/omnibox/browser/remote_suggestions_service_unittest.cc b/components/omnibox/browser/remote_suggestions_service_unittest.cc index ca6b8d4..01482c12 100644 --- a/components/omnibox/browser/remote_suggestions_service_unittest.cc +++ b/components/omnibox/browser/remote_suggestions_service_unittest.cc
@@ -479,21 +479,32 @@ &google_template_url, search_terms_args, SearchTermsData()); // No additional query params are appended for empty Lens suggest inputs - // because send_gsession_vsrid_for_lens_suggest and + // because send_gsession_vsrid_vit_for_lens_suggest and // send_vsint_for_lens_suggest are false. ASSERT_EQ(endpoint_url.spec(), "https://www.google.com/" "suggest?q=query&client=chrome-multimodal&iil=iil"); search_terms_args.lens_overlay_suggest_inputs - ->set_send_gsession_vsrid_for_lens_suggest(true); + ->set_send_gsession_vsrid_vit_for_lens_suggest(true); endpoint_url = RemoteSuggestionsService::EndpointUrl( &google_template_url, search_terms_args, SearchTermsData()); - // Appended gsessionid and vsrids. + // Appended gsessionid and vsrids. iil is removed. ASSERT_EQ(endpoint_url.spec(), "https://www.google.com/" - "suggest?q=query&client=chrome-multimodal&iil=iil&vsrid=vsrid&" + "suggest?q=query&client=chrome-multimodal&vsrid=vsrid&" + "gsessionid=gsessionid"); + + search_terms_args.lens_overlay_suggest_inputs + ->set_contextual_visual_input_type("vit"); + endpoint_url = RemoteSuggestionsService::EndpointUrl( + &google_template_url, search_terms_args, SearchTermsData()); + + // Appended vit. + ASSERT_EQ(endpoint_url.spec(), + "https://www.google.com/" + "suggest?q=query&client=chrome-multimodal&vit=vit&vsrid=vsrid&" "gsessionid=gsessionid"); search_terms_args.lens_overlay_suggest_inputs @@ -504,7 +515,7 @@ // Appended vsint. ASSERT_EQ(endpoint_url.spec(), "https://www.google.com/" - "suggest?q=query&client=chrome-multimodal&iil=iil&vsint=vsint&" + "suggest?q=query&client=chrome-multimodal&vsint=vsint&vit=vit&" "vsrid=vsrid&gsessionid=gsessionid"); } @@ -539,7 +550,7 @@ search_terms_args.lens_overlay_suggest_inputs ->set_send_vsint_for_lens_suggest(true); search_terms_args.lens_overlay_suggest_inputs - ->set_send_gsession_vsrid_for_lens_suggest(true); + ->set_send_gsession_vsrid_vit_for_lens_suggest(true); GURL endpoint_url = RemoteSuggestionsService::EndpointUrl( &google_template_url, search_terms_args, SearchTermsData()); @@ -568,7 +579,8 @@ lens_overlay_suggest_inputs.set_send_gsession_vsrid_for_contextual_suggest( true); lens_overlay_suggest_inputs.set_send_vsint_for_lens_suggest(true); - lens_overlay_suggest_inputs.set_send_gsession_vsrid_for_lens_suggest(true); + lens_overlay_suggest_inputs.set_send_gsession_vsrid_vit_for_lens_suggest( + true); search_terms_args.lens_overlay_suggest_inputs = lens_overlay_suggest_inputs; search_terms_args.page_classification =
diff --git a/components/optimization_guide/internal b/components/optimization_guide/internal index 4381a0f..d53d6d6 160000 --- a/components/optimization_guide/internal +++ b/components/optimization_guide/internal
@@ -1 +1 @@ -Subproject commit 4381a0f78e891579dc1e0353486886b1fc2b59e0 +Subproject commit d53d6d646f35e1f960c944b1bde61ebabd045985
diff --git a/components/optimization_guide/proto/features/common_quality_data.proto b/components/optimization_guide/proto/features/common_quality_data.proto index 92bd23e..0da09e3 100644 --- a/components/optimization_guide/proto/features/common_quality_data.proto +++ b/components/optimization_guide/proto/features/common_quality_data.proto
@@ -368,19 +368,15 @@ // The name of the table, coming from the caption. string table_name = 1; - TableRow header_row = 2; + repeated TableRow header_rows = 2; repeated TableRow body_rows = 3; - TableRow footer_row = 4; + repeated TableRow footer_rows = 4; } message TableRow { - repeated TableCell cells = 2; -} - -message TableCell { - repeated ContentNode cell_content = 3; + repeated ContentNode cells = 1; } message IframeData { @@ -1271,7 +1267,7 @@ } // In the future, this will be expanded to include more types of content. -// Next ID: 11; +// Next ID: 12; enum ContentAttributeType { CONTENT_ATTRIBUTE_UNKNOWN = 0; @@ -1296,6 +1292,8 @@ CONTENT_ATTRIBUTE_IMAGE = 9; CONTENT_ATTRIBUTE_TABLE = 10; + + CONTENT_ATTRIBUTE_TABLE_CELL = 11; } // Next ID: 5
diff --git a/components/optimization_guide/proto/features/model_prototyping.proto b/components/optimization_guide/proto/features/model_prototyping.proto index 54af937..495d95b 100644 --- a/components/optimization_guide/proto/features/model_prototyping.proto +++ b/components/optimization_guide/proto/features/model_prototyping.proto
@@ -6,13 +6,12 @@ package optimization_guide.proto; +import "components/optimization_guide/proto/features/forms_predictions.proto"; import "components/optimization_guide/proto/features/common_quality_data.proto"; import "components/optimization_guide/proto/common_types.proto"; -import "components/optimization_guide/proto/features/forms_predictions.proto"; - import "components/optimization_guide/proto/model_quality_metadata.proto"; option optimize_for = LITE_RUNTIME; @@ -200,7 +199,6 @@ repeated string passages = 4; } - message HistoryQuery { // The text used to find matching history items. // If empty returns all entries matching the other query parameters.
diff --git a/components/optimization_guide/proto/features/permissions_ai.proto b/components/optimization_guide/proto/features/permissions_ai.proto new file mode 100644 index 0000000..e46464d --- /dev/null +++ b/components/optimization_guide/proto/features/permissions_ai.proto
@@ -0,0 +1,47 @@ +// 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. + +syntax = "proto3"; + +package optimization_guide.proto; + +import "components/optimization_guide/proto/model_quality_metadata.proto"; + +option optimize_for = LITE_RUNTIME; +option java_package = "org.chromium.components.optimization_guide.features.proto"; + +option java_outer_classname = "PermissionsAIProto"; + +// DO NOT EDIT THIS FILE DIRECTLY! +// +// This file is generated in g3 and then synced to Chrome. Instead, please +// refer to http://go/chrome-intelligence-feature-protos (Google-internal link), +// and then changes will be synced with Chrome automatically. + +message PermissionsAILoggingData { + PermissionsAiRequest request = 1; + + PermissionsAiResponse response = 2; + + ModelExecutionInfo model_execution_info = 3; +} + +message PermissionsAiRequest { + // The permission that the page requests from the user. + string requested_permission = 1; + + // Text that was extracted from the page through GetInnerText within Chromium. + // This text will be used to add onto the prompt under the model execution + // config. + string rendered_text = 2; +} + +// Information about LLM detection of a page of what the page is about. This +// information is used to determine if the page's request for a specific +// permission is backed up by the sites content. +message PermissionsAiResponse { + // The AIs decision whether the request seems legit or should be blocked + // without further user interaction. + bool block_permission = 2; +}
diff --git a/components/os_crypt/sync/os_crypt.h b/components/os_crypt/sync/os_crypt.h index a9e77e1..16859f0a 100644 --- a/components/os_crypt/sync/os_crypt.h +++ b/components/os_crypt/sync/os_crypt.h
@@ -13,6 +13,7 @@ #include "base/task/single_thread_task_runner.h" #include "build/build_config.h" #include "build/chromecast_buildflags.h" +#include "crypto/subtle_passkey.h" #if BUILDFLAG(IS_LINUX) class KeyStorageLinux; @@ -232,21 +233,28 @@ #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_APPLE) #if BUILDFLAG(IS_LINUX) - // Returns a cached string of "peanuts". Is thread-safe. - crypto::SymmetricKey* GetPasswordV10(); + static constexpr size_t kDerivedKeyBytes = 16; - // Caches and returns the password from the KeyStorage or null if there is no - // service. Is thread-safe. Set `probe` to true if caller wishes to get - // nullptr back rather than crashing due to no config being set. - crypto::SymmetricKey* GetPasswordV11(bool probe); + crypto::SubtlePassKey MakeCryptoPassKey(); - // For password_v10, nullptr means uninitialised. - std::unique_ptr<crypto::SymmetricKey> password_v10_cache_; + // Derive a new key of `kDerivedKeyBytes` from a given input key using + // PBKDF2-HMAC-SHA1. + std::array<uint8_t, kDerivedKeyBytes> Pbkdf2(const std::string& key); - // For password_v11, nullptr means no backend. - std::unique_ptr<crypto::SymmetricKey> password_v11_cache_; + // Try to fill in `v11_key_` with a V1.1 derived key. Returns true if a v11 + // key is now present in `v11_key_` (which may have just been cached + // previously) and false if one is not present. If `try_v11_` is false, and + // there is no cached v11 key, this method just returns false. + bool DeriveV11Key(); - bool is_password_v11_cached_ = false; + // The cached V1.1 derived key. If this is nullopt, no V1.1 key is available + // yet, but `DeriveV11Key()` may be able to generate one. + std::optional<std::array<uint8_t, kDerivedKeyBytes>> v11_key_; + + // Whether to try V1.1 key generation at all. When OSCrypt is used in the + // network service, V1.1 key generation can't succeed (it is blocked by the + // sandbox) so it should never be attempted. + bool try_v11_ = true; // |config_| is used to initialise |password_v11_cache_| and then cleared. std::unique_ptr<os_crypt::Config> config_;
diff --git a/components/os_crypt/sync/os_crypt_linux.cc b/components/os_crypt/sync/os_crypt_linux.cc index cb6f41c..ce19927 100644 --- a/components/os_crypt/sync/os_crypt_linux.cc +++ b/components/os_crypt/sync/os_crypt_linux.cc
@@ -21,23 +21,13 @@ #include "components/os_crypt/sync/key_storage_config_linux.h" #include "components/os_crypt/sync/key_storage_linux.h" #include "components/os_crypt/sync/os_crypt_metrics.h" +#include "crypto/aes_cbc.h" #include "crypto/encryptor.h" +#include "crypto/kdf.h" #include "crypto/symmetric_key.h" namespace { -// Salt for Symmetric key derivation. -constexpr char kSalt[] = "saltysalt"; - -// Key size required for 128 bit AES. -constexpr size_t kDerivedKeySizeInBits = 128; - -// Constant for Symmetric key derivation. -constexpr size_t kEncryptionIterations = 1; - -// Size of initialization vector for AES 128-bit. -constexpr size_t kIVBlockSizeAES128 = 16; - // Prefixes for cypher text returned by obfuscation version. We prefix the // ciphertext with this string so that future data migration can detect // this and migrate to full encryption without data loss. kObfuscationPrefixV10 @@ -47,41 +37,35 @@ constexpr char kObfuscationPrefixV10[] = "v10"; constexpr char kObfuscationPrefixV11[] = "v11"; +constexpr crypto::kdf::Pbkdf2HmacSha1Params kParams{ + .iterations = 1, +}; + +const auto kSalt = base::byte_span_from_cstring("saltysalt"); + +// clang-format off +// PBKDF2-HMAC-SHA1(1 iteration, key = "peanuts", salt = "saltysalt") +constexpr auto kV10Key = std::to_array<uint8_t>({ + 0xfd, 0x62, 0x1f, 0xe5, 0xa2, 0xb4, 0x02, 0x53, + 0x9d, 0xfa, 0x14, 0x7c, 0xa9, 0x27, 0x27, 0x78, +}); + +// PBKDF2-HMAC-SHA1(1 iteration, key = "", salt = "saltysalt") +constexpr auto kEmptyKey = std::to_array<uint8_t>({ + 0xd0, 0xd0, 0xec, 0x9c, 0x7d, 0x77, 0xd4, 0x3a, + 0xc5, 0x41, 0x87, 0xfa, 0x48, 0x18, 0xd1, 0x7f, +}); + +const std::array<uint8_t, crypto::aes_cbc::kBlockSize> kIv{ + ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', + ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', +}; +// clang-format on + // The UMA metric name for whether the false was decryptable with an empty key. constexpr char kMetricDecryptedWithEmptyKey[] = "OSCrypt.Linux.DecryptedWithEmptyKey"; -// Generates a newly allocated SymmetricKey object based on a password. -// Ownership of the key is passed to the caller. Returns null key if a key -// generation error occurs. -std::unique_ptr<crypto::SymmetricKey> GenerateEncryptionKey( - const std::string& password) { - const std::string salt(kSalt); - - // Create an encryption key from our password and salt. - std::unique_ptr<crypto::SymmetricKey> encryption_key( - crypto::SymmetricKey::DeriveKeyFromPasswordUsingPbkdf2( - crypto::SymmetricKey::AES, password, salt, kEncryptionIterations, - kDerivedKeySizeInBits)); - DCHECK(encryption_key); - - return encryption_key; -} - -// Decrypt `ciphertext` using `encryption_key` and store the result in -// `encryption_key`. -bool DecryptWith(const std::string& ciphertext, - crypto::SymmetricKey* encryption_key, - std::string* plaintext) { - const std::string iv(kIVBlockSizeAES128, ' '); - crypto::Encryptor encryptor; - if (!encryptor.Init(encryption_key, crypto::Encryptor::CBC, iv)) { - return false; - } - - return encryptor.Decrypt(ciphertext, plaintext); -} - } // namespace namespace OSCrypt { @@ -155,31 +139,19 @@ return true; } - // If we are able to create a V11 key (i.e. a KeyStorage was available), then - // we'll use it. If not, we'll use V10. - crypto::SymmetricKey* encryption_key = GetPasswordV11(/*probe=*/false); - std::string obfuscation_prefix = kObfuscationPrefixV11; - if (!encryption_key) { - encryption_key = GetPasswordV10(); - obfuscation_prefix = kObfuscationPrefixV10; + base::span<const uint8_t> key; + + if (DeriveV11Key()) { + key = *v11_key_; + *ciphertext = kObfuscationPrefixV11; + } else { + key = kV10Key; + *ciphertext = kObfuscationPrefixV10; } - if (!encryption_key) { - return false; - } + ciphertext->append(base::as_string_view( + crypto::aes_cbc::Encrypt(key, kIv, base::as_byte_span(plaintext)))); - const std::string iv(kIVBlockSizeAES128, ' '); - crypto::Encryptor encryptor; - if (!encryptor.Init(encryption_key, crypto::Encryptor::CBC, iv)) { - return false; - } - - if (!encryptor.Encrypt(plaintext, ciphertext)) { - return false; - } - - // Prefix the cipher text with version information. - ciphertext->insert(0, obfuscation_prefix); return true; } @@ -193,19 +165,23 @@ // Check that the incoming ciphertext was encrypted and with what version. // Credit card numbers are current legacy unencrypted data, so false match // with prefix won't happen. - crypto::SymmetricKey* encryption_key = nullptr; + base::span<const uint8_t> key; std::string obfuscation_prefix; os_crypt::EncryptionPrefixVersion encryption_version = os_crypt::EncryptionPrefixVersion::kNoVersion; if (base::StartsWith(ciphertext, kObfuscationPrefixV10, base::CompareCase::SENSITIVE)) { - encryption_key = GetPasswordV10(); + key = kV10Key; obfuscation_prefix = kObfuscationPrefixV10; encryption_version = os_crypt::EncryptionPrefixVersion::kVersion10; } else if (base::StartsWith(ciphertext, kObfuscationPrefixV11, base::CompareCase::SENSITIVE)) { - encryption_key = GetPasswordV11(/*probe=*/false); + if (!DeriveV11Key()) { + VLOG(1) << "Decryption failed: could not get the key"; + return false; + } + key = *v11_key_; obfuscation_prefix = kObfuscationPrefixV11; encryption_version = os_crypt::EncryptionPrefixVersion::kVersion11; } @@ -219,26 +195,27 @@ return true; } - if (!encryption_key) { - VLOG(1) << "Decryption failed: could not get the key"; - return false; - } - // Strip off the versioning prefix before decrypting. const std::string raw_ciphertext = ciphertext.substr(obfuscation_prefix.length()); - if (DecryptWith(raw_ciphertext, encryption_key, plaintext)) { + std::optional<std::vector<uint8_t>> maybe_plain = + crypto::aes_cbc::Decrypt(key, kIv, base::as_byte_span(raw_ciphertext)); + + if (maybe_plain) { base::UmaHistogramBoolean(kMetricDecryptedWithEmptyKey, false); + plaintext->assign(base::as_string_view(*maybe_plain)); return true; } - // Some clients have encrypted data with an empty key. See - // crbug.com/1195256. - auto empty_key = GenerateEncryptionKey(std::string()); - if (DecryptWith(raw_ciphertext, empty_key.get(), plaintext)) { + // Decryption failed - try the empty fallback key. See + // https://crbug.com/40055416. + maybe_plain = crypto::aes_cbc::Decrypt(kEmptyKey, kIv, + base::as_byte_span(raw_ciphertext)); + if (maybe_plain) { VLOG(1) << "Decryption succeeded after retrying with an empty key"; base::UmaHistogramBoolean(kMetricDecryptedWithEmptyKey, true); + plaintext->assign(base::as_string_view(*maybe_plain)); return true; } @@ -248,45 +225,50 @@ } void OSCryptImpl::SetConfig(std::unique_ptr<os_crypt::Config> config) { - // Setting initialisation parameters makes no sense after initializing. - DCHECK(!is_password_v11_cached_); + CHECK(!v11_key_); config_ = std::move(config); } bool OSCryptImpl::IsEncryptionAvailable() { - return GetPasswordV11(/*probe=*/true); + // IsEncryptionAvailable() actually means "is real encryption backed by the + // system secret store available", which here means a v11 key is available, + // as opposed to the hardcoded v10 obfuscation key. Therefore, try deriving a + // v11 key - if one is already available this function will just return true. + return DeriveV11Key(); } void OSCryptImpl::SetRawEncryptionKey(const std::string& raw_key) { base::AutoLock auto_lock(OSCryptImpl::GetLock()); // Check if the v11 password is already cached. If it is, then data encrypted // with the old password might not be decryptable. - DCHECK(!is_password_v11_cached_); + CHECK(!v11_key_); // The config won't be used if this function is being called. Callers should // choose between setting a config and setting a raw encryption key. - DCHECK(!config_); - if (!raw_key.empty()) { - password_v11_cache_ = - crypto::SymmetricKey::Import(crypto::SymmetricKey::AES, raw_key); + CHECK(!config_); + + if (raw_key.empty()) { + // Empty key means a v11 key is not available on the browser side. To match + // the browser's behavior, this OSCryptImpl instance also should not try to + // derive a v11 key. + try_v11_ = false; + } else { + // If the provided key is non-empty, it's a derived key and can be stored + // directly. Also, set `try_v11_` regardless of its previous state since a + // v11 key is now available. + v11_key_.emplace(std::array<uint8_t, kDerivedKeyBytes>()); + base::span(*v11_key_).copy_from(base::as_byte_span(raw_key)); + try_v11_ = true; } - // Always set |is_password_v11_cached_|, even if given an empty string. - // Note that |raw_key| can be an empty string if real V11 encryption is not - // available, and setting |is_password_v11_cached_| causes GetPasswordV11 to - // correctly return nullptr in that case. - is_password_v11_cached_ = true; } std::string OSCryptImpl::GetRawEncryptionKey() { - if (crypto::SymmetricKey* key = GetPasswordV11(/*probe=*/false)) { - return key->key(); - } - return std::string(); + return DeriveV11Key() ? std::string(base::as_string_view(*v11_key_)) + : std::string(); } void OSCryptImpl::ClearCacheForTesting() { - password_v10_cache_.reset(); - password_v11_cache_.reset(); - is_password_v11_cached_ = false; + v11_key_ = std::nullopt; + try_v11_ = true; config_.reset(); } @@ -299,47 +281,54 @@ void OSCryptImpl::SetEncryptionPasswordForTesting(const std::string& password) { ClearCacheForTesting(); // IN-TEST - password_v11_cache_ = GenerateEncryptionKey(password); - is_password_v11_cached_ = true; + v11_key_ = Pbkdf2(password); + try_v11_ = true; } -// Returns a cached string of "peanuts". Is thread-safe. -crypto::SymmetricKey* OSCryptImpl::GetPasswordV10() { +crypto::SubtlePassKey OSCryptImpl::MakeCryptoPassKey() { + return crypto::SubtlePassKey{}; +} + +std::array<uint8_t, OSCryptImpl::kDerivedKeyBytes> OSCryptImpl::Pbkdf2( + const std::string& key) { + std::array<uint8_t, OSCryptImpl::kDerivedKeyBytes> result; + crypto::kdf::DeriveKeyPbkdf2HmacSha1(kParams, base::as_byte_span(key), kSalt, + result, MakeCryptoPassKey()); + return result; +} + +bool OSCryptImpl::DeriveV11Key() { base::AutoLock auto_lock(OSCryptImpl::GetLock()); - if (!password_v10_cache_.get()) { - password_v10_cache_ = GenerateEncryptionKey("peanuts"); + if (!try_v11_) { + return false; } - return password_v10_cache_.get(); -} -// Caches and returns the password from the KeyStorage or null if there is no -// service. Is thread-safe. -crypto::SymmetricKey* OSCryptImpl::GetPasswordV11(bool probe) { - base::AutoLock auto_lock(OSCryptImpl::GetLock()); - if (is_password_v11_cached_) { - return password_v11_cache_.get(); + if (v11_key_) { + return true; } std::unique_ptr<KeyStorageLinux> key_storage; if (storage_provider_factory_for_testing_) { key_storage = std::move(storage_provider_factory_for_testing_).Run(); } else { - CHECK(probe || config_); if (config_) { key_storage = KeyStorageLinux::CreateService(*config_); config_.reset(); } } - if (key_storage) { - std::optional<std::string> key = key_storage->GetKey(); - if (key.has_value()) { - password_v11_cache_ = GenerateEncryptionKey(*key); - } + if (!key_storage) { + // No backend available, can't do v11. + try_v11_ = false; + return false; } - is_password_v11_cached_ = true; - return password_v11_cache_.get(); + std::optional<std::string> maybe_key = key_storage->GetKey(); + if (maybe_key) { + v11_key_ = Pbkdf2(*maybe_key); + } + + return v11_key_.has_value(); } // static
diff --git a/components/page_load_metrics/browser/observers/ad_metrics/ads_page_load_metrics_observer.cc b/components/page_load_metrics/browser/observers/ad_metrics/ads_page_load_metrics_observer.cc index f16d0349..7f31835 100644 --- a/components/page_load_metrics/browser/observers/ad_metrics/ads_page_load_metrics_observer.cc +++ b/components/page_load_metrics/browser/observers/ad_metrics/ads_page_load_metrics_observer.cc
@@ -860,7 +860,7 @@ void AdsPageLoadMetricsObserver::ProcessResourceForPage( content::RenderFrameHost* render_frame_host, const mojom::ResourceDataUpdatePtr& resource) { - int process_id = render_frame_host->GetProcess()->GetID(); + int process_id = render_frame_host->GetProcess()->GetDeprecatedID(); auto mime_type = ResourceLoadAggregator::GetResourceMimeType(resource); int unaccounted_ad_bytes = GetUnaccountedAdBytes(process_id, resource); bool is_outermost_main_frame = !render_frame_host->GetParentOrOuterDocument(); @@ -907,12 +907,12 @@ return; auto mime_type = ResourceLoadAggregator::GetResourceMimeType(resource); - int unaccounted_ad_bytes = - GetUnaccountedAdBytes(render_frame_host->GetProcess()->GetID(), resource); + int unaccounted_ad_bytes = GetUnaccountedAdBytes( + render_frame_host->GetProcess()->GetDeprecatedID(), resource); if (unaccounted_ad_bytes) ancestor_data->AdjustAdBytes(unaccounted_ad_bytes, mime_type); ancestor_data->ProcessResourceLoadInFrame( - resource, render_frame_host->GetProcess()->GetID(), + resource, render_frame_host->GetProcess()->GetDeprecatedID(), GetDelegate().GetResourceTracker()); MaybeTriggerHeavyAdIntervention(render_frame_host, ancestor_data); }
diff --git a/components/page_load_metrics/browser/observers/use_counter/ukm_features.cc b/components/page_load_metrics/browser/observers/use_counter/ukm_features.cc index 21d13df0..e6524f2 100644 --- a/components/page_load_metrics/browser/observers/use_counter/ukm_features.cc +++ b/components/page_load_metrics/browser/observers/use_counter/ukm_features.cc
@@ -414,6 +414,7 @@ WebFeature::kThirdPartyCookieBlocked, WebFeature::kStorageAccessAPI_requestStorageAccessFor_Method, WebFeature::kSharedWorkerScriptUnderServiceWorkerControlIsBlob, + WebFeature::kCSSEnvironmentVariable_SafeAreaInsetBottom_FastPath, })); return *opt_in_features; }
diff --git a/components/page_load_metrics/browser/page_load_metrics_memory_tracker_unittest.cc b/components/page_load_metrics/browser/page_load_metrics_memory_tracker_unittest.cc index 5add1e7..01ff9bc 100644 --- a/components/page_load_metrics/browser/page_load_metrics_memory_tracker_unittest.cc +++ b/components/page_load_metrics/browser/page_load_metrics_memory_tracker_unittest.cc
@@ -169,7 +169,7 @@ content::GlobalRenderFrameHostId global_routing_id = render_frame_host->GetGlobalId(); - int process_id = render_frame_host->GetProcess()->GetID(); + int process_id = render_frame_host->GetProcess()->GetDeprecatedID(); performance_manager::RenderProcessHostId pm_process_id = static_cast<performance_manager::RenderProcessHostId>(process_id);
diff --git a/components/page_load_metrics/browser/page_load_tracker.cc b/components/page_load_metrics/browser/page_load_tracker.cc index 437c0c7..a3a55487 100644 --- a/components/page_load_metrics/browser/page_load_tracker.cc +++ b/components/page_load_metrics/browser/page_load_tracker.cc
@@ -1134,7 +1134,7 @@ void PageLoadTracker::UpdateResourceDataUse( content::RenderFrameHost* rfh, const std::vector<mojom::ResourceDataUpdatePtr>& resources) { - resource_tracker_.UpdateResourceDataUse(rfh->GetProcess()->GetID(), + resource_tracker_.UpdateResourceDataUse(rfh->GetProcess()->GetDeprecatedID(), resources); for (const auto& observer : observers_) { observer->OnResourceDataUseObserved(rfh, resources);
diff --git a/components/paint_preview/browser/paint_preview_client.cc b/components/paint_preview/browser/paint_preview_client.cc index f1a8919..7cb4004 100644 --- a/components/paint_preview/browser/paint_preview_client.cc +++ b/components/paint_preview/browser/paint_preview_client.cc
@@ -468,7 +468,7 @@ base::BindOnce(&PaintPreviewClient::RequestCaptureOnUIThread, weak_ptr_factory_.GetWeakPtr(), frame_guid, params, content::GlobalRenderFrameHostId( - render_frame_host->GetProcess()->GetID(), + render_frame_host->GetProcess()->GetDeprecatedID(), render_frame_host->GetRoutingID()))); }
diff --git a/components/password_manager/content/browser/bad_message.cc b/components/password_manager/content/browser/bad_message.cc index f396b63..59cab17 100644 --- a/components/password_manager/content/browser/bad_message.cc +++ b/components/password_manager/content/browser/bad_message.cc
@@ -55,7 +55,7 @@ content::ChildProcessSecurityPolicy* policy = content::ChildProcessSecurityPolicy::GetInstance(); - if (!policy->CanAccessDataForOrigin(frame->GetProcess()->GetID(), + if (!policy->CanAccessDataForOrigin(frame->GetProcess()->GetDeprecatedID(), url::Origin::Create(form_url))) { SYSLOG(WARNING) << "Killing renderer: illegal password access. Reason: " << static_cast<int>(reason);
diff --git a/components/password_manager/core/browser/password_store/password_store_unittest.cc b/components/password_manager/core/browser/password_store/password_store_unittest.cc index 3dff396..35d4eee1 100644 --- a/components/password_manager/core/browser/password_store/password_store_unittest.cc +++ b/components/password_manager/core/browser/password_store/password_store_unittest.cc
@@ -6,6 +6,7 @@ #include <stddef.h> +#include <array> #include <memory> #include <utility> @@ -249,7 +250,7 @@ TEST_F(PasswordStoreTest, UpdateLoginPrimaryKeyFields) { base::HistogramTester histogram_tester; /* clang-format off */ - static const PasswordFormData kTestCredentials[] = { + static const auto kTestCredentials = std::to_array<PasswordFormData>({ // The old credential. {PasswordForm::Scheme::kHtml, kTestWebRealm1, @@ -263,7 +264,7 @@ kTestWebOrigin2, "", u"", u"username_element_2", u"password_element_2", u"username_value_2", - u"", kTestLastUsageTime, 1}}; + u"", kTestLastUsageTime, 1}}); /* clang-format on */ scoped_refptr<PasswordStore> store = CreatePasswordStore();
diff --git a/components/password_manager/core/browser/ui/credential_ui_entry_unittest.cc b/components/password_manager/core/browser/ui/credential_ui_entry_unittest.cc index e1d42add..343eee5 100644 --- a/components/password_manager/core/browser/ui/credential_ui_entry_unittest.cc +++ b/components/password_manager/core/browser/ui/credential_ui_entry_unittest.cc
@@ -4,6 +4,7 @@ #include "components/password_manager/core/browser/ui/credential_ui_entry.h" +#include <array> #include <vector> #include "base/strings/utf_string_conversions.h" @@ -189,7 +190,8 @@ TEST(CredentialUIEntryTest, CredentialUIEntryFromFormsVectorWithDifferentNotes) { std::vector<PasswordForm> forms; - const std::u16string kNotes[] = {u"Note", u"", u"Another note"}; + const auto kNotes = + std::to_array<std::u16string>({u"Note", u"", u"Another note"}); for (const auto& kNote : kNotes) { PasswordForm form;
diff --git a/components/performance_manager/binders.cc b/components/performance_manager/binders.cc index c69f46f4..d9775eb 100644 --- a/components/performance_manager/binders.cc +++ b/components/performance_manager/binders.cc
@@ -100,12 +100,12 @@ void Binders::ExposeInterfacesToRendererProcess( service_manager::BinderRegistry* registry, content::RenderProcessHost* host) { - registry->AddInterface( - base::BindRepeating(&BindRenderProcessCoordinationUnit, host->GetID()), - base::SequencedTaskRunner::GetCurrentDefault()); + registry->AddInterface(base::BindRepeating(&BindRenderProcessCoordinationUnit, + host->GetDeprecatedID()), + base::SequencedTaskRunner::GetCurrentDefault()); registry->AddInterface( base::BindRepeating(&BindChildProcessCoordinationUnitForRenderProcessHost, - host->GetID()), + host->GetDeprecatedID()), base::SequencedTaskRunner::GetCurrentDefault()); }
diff --git a/components/performance_manager/public/graph/process_node.h b/components/performance_manager/public/graph/process_node.h index 1dc366d..671dbfb4 100644 --- a/components/performance_manager/public/graph/process_node.h +++ b/components/performance_manager/public/graph/process_node.h
@@ -137,8 +137,9 @@ // only be non-zero on Linux, ChromeOS, and Android. virtual uint64_t GetPrivateSwapKb() const = 0; - // Returns the render process id (equivalent to RenderProcessHost::GetID()), - // or ChildProcessHost::kInvalidUniqueID if this is not a renderer. + // Returns the render process id (equivalent to + // RenderProcessHost::GetDeprecatedID()), or + // ChildProcessHost::kInvalidUniqueID if this is not a renderer. virtual RenderProcessHostId GetRenderProcessHostId() const = 0; // Returns a proxy to the RenderProcessHost associated with this node. The
diff --git a/components/performance_manager/public/render_process_host_id.h b/components/performance_manager/public/render_process_host_id.h index 2adcb0b..a96be35 100644 --- a/components/performance_manager/public/render_process_host_id.h +++ b/components/performance_manager/public/render_process_host_id.h
@@ -10,7 +10,8 @@ namespace performance_manager { -// A strongly typed wrapper for the id returned by RenderProcessHost::GetID(). +// A strongly typed wrapper for the id returned by +// RenderProcessHost::GetDeprecatedID(). // // This uses ChildProcessHost::kInvalidUniqueId (-1) as the default invalid id, // but also recognizes 0 as an invalid id because there is existing code that
diff --git a/components/performance_manager/public/render_process_host_proxy.h b/components/performance_manager/public/render_process_host_proxy.h index 44ccaa4..5272e70 100644 --- a/components/performance_manager/public/render_process_host_proxy.h +++ b/components/performance_manager/public/render_process_host_proxy.h
@@ -36,7 +36,7 @@ bool is_valid() const { return !render_process_host_id_.is_null(); } // Returns the routing id of the render process (from - // RenderProcessHost::GetID). + // RenderProcessHost::GetDeprecatedID()). RenderProcessHostId render_process_host_id() const { return render_process_host_id_; }
diff --git a/components/performance_manager/public/resource_attribution/attribution_helpers.h b/components/performance_manager/public/resource_attribution/attribution_helpers.h index efeeb41..3e065c7 100644 --- a/components/performance_manager/public/resource_attribution/attribution_helpers.h +++ b/components/performance_manager/public/resource_attribution/attribution_helpers.h
@@ -5,15 +5,10 @@ #ifndef COMPONENTS_PERFORMANCE_MANAGER_PUBLIC_RESOURCE_ATTRIBUTION_ATTRIBUTION_HELPERS_H_ #define COMPONENTS_PERFORMANCE_MANAGER_PUBLIC_RESOURCE_ATTRIBUTION_ATTRIBUTION_HELPERS_H_ -#include <set> - #include "base/check.h" -#include "base/containers/contains.h" #include "base/functional/function_ref.h" -#include "base/functional/overloaded.h" #include "components/performance_manager/public/graph/process_node.h" #include "content/public/common/process_type.h" -#include "third_party/abseil-cpp/absl/types/variant.h" namespace performance_manager { class FrameNode; @@ -22,16 +17,9 @@ namespace resource_attribution { -// A set of nodes to exclude from a resource split. -using NodeSplitSet = - std::set<absl::variant<const performance_manager::FrameNode*, - const performance_manager::WorkerNode*>>; - // Splits a resource of type T between all frames and workers hosted in // `process_node`. `frame_setter` or `worker_setter` will be called for each // node with that node's fraction of `resource_value`. -// -// Any node in `nodes_to_skip` will be excluded from the split. template <typename T, // Template parameters are used to alias FrameNode and WorkerNode // without introducing them into the resource_attribution namespace. @@ -42,30 +30,9 @@ void SplitResourceAmongFramesAndWorkers( T resource_value, const performance_manager::ProcessNode* process_node, - const NodeSplitSet& nodes_to_skip, FrameSetter frame_setter, WorkerSetter worker_setter); -// Splits a resource of type T between all frames and workers hosted in -// `process_node`. `frame_setter` or `worker_setter` will be called for each -// node with that node's fraction of `resource_value`. -template <typename T, - // Template parameters are used to alias FrameNode and WorkerNode - // without introducing them into the resource_attribution namespace. - typename FrameNode = performance_manager::FrameNode, - typename WorkerNode = performance_manager::WorkerNode, - typename FrameSetter = base::FunctionRef<void(const FrameNode*, T)>, - typename WorkerSetter = base::FunctionRef<void(const WorkerNode*, T)>> -void SplitResourceAmongFramesAndWorkers( - T resource_value, - const performance_manager::ProcessNode* process_node, - FrameSetter frame_setter, - WorkerSetter worker_setter) { - SplitResourceAmongFramesAndWorkers(resource_value, process_node, - /*nodes_to_skip=*/{}, frame_setter, - worker_setter); -} - // Implementation template <typename T, @@ -76,7 +43,6 @@ void SplitResourceAmongFramesAndWorkers( T resource_value, const performance_manager::ProcessNode* process_node, - const NodeSplitSet& nodes_to_skip, FrameSetter frame_setter, WorkerSetter worker_setter) { // Attribute the resources of the process to its frames and workers @@ -86,20 +52,8 @@ return; } - std::set<const FrameNode*> frame_nodes; - for (const FrameNode* f : process_node->GetFrameNodes()) { - if (!base::Contains(nodes_to_skip, f)) { - frame_nodes.insert(f); - } - } - - std::set<const WorkerNode*> worker_nodes; - for (const WorkerNode* w : process_node->GetWorkerNodes()) { - if (!base::Contains(nodes_to_skip, w)) { - worker_nodes.insert(w); - } - } - + const auto frame_nodes = process_node->GetFrameNodes(); + const auto worker_nodes = process_node->GetWorkerNodes(); const size_t frame_and_worker_node_count = frame_nodes.size() + worker_nodes.size(); if (frame_and_worker_node_count == 0) {
diff --git a/components/performance_manager/public/v8_memory/v8_detailed_memory_any_seq.h b/components/performance_manager/public/v8_memory/v8_detailed_memory_any_seq.h index c4c74465..0a2f1f3d 100644 --- a/components/performance_manager/public/v8_memory/v8_detailed_memory_any_seq.h +++ b/components/performance_manager/public/v8_memory/v8_detailed_memory_any_seq.h
@@ -56,7 +56,7 @@ // // Process was deleted after measurement arrived on the PM sequence. // return; // } -// LOG(INFO) << "Process " << process->GetID() << +// LOG(INFO) << "Process " << process->GetDeprecatedID() << // " reported " << process_data.detached_v8_bytes_used() << // " bytes of V8 memory that wasn't associated with a frame."; // LOG(INFO) << "Process " << process_node->GetProcessId() <<
diff --git a/components/performance_manager/render_process_user_data.cc b/components/performance_manager/render_process_user_data.cc index b7d0827..ac294f7 100644 --- a/components/performance_manager/render_process_user_data.cc +++ b/components/performance_manager/render_process_user_data.cc
@@ -35,7 +35,7 @@ ? base::TaskPriority::LOWEST : base::TaskPriority::HIGHEST; process_node_ = PerformanceManagerImpl::CreateProcessNode( - RenderProcessHostProxy(RenderProcessHostId(host_->GetID())), + RenderProcessHostProxy(RenderProcessHostId(host_->GetDeprecatedID())), initial_priority); }
diff --git a/components/performance_manager/resource_attribution/cpu_measurement_monitor.cc b/components/performance_manager/resource_attribution/cpu_measurement_monitor.cc index 8614f767..8e62232 100644 --- a/components/performance_manager/resource_attribution/cpu_measurement_monitor.cc +++ b/components/performance_manager/resource_attribution/cpu_measurement_monitor.cc
@@ -377,13 +377,17 @@ (total_live_estimate + total_dead_estimate) / 1024); } -void CPUMeasurementMonitor::OnFrameNodeAdded(const FrameNode* frame_node) { +void CPUMeasurementMonitor::OnBeforeFrameNodeAdded( + const FrameNode* frame_node, + const FrameNode* pending_parent_frame_node, + const PageNode* pending_page_node, + const ProcessNode* pending_process_node, + const FrameNode* pending_parent_or_outer_document_or_embedder) { DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); // Take a measurement of the process CPU usage *before* this node was added. // This is safe because frames should only be added after their containing // process has started. - UpdateCPUMeasurements(frame_node->GetProcessNode(), - GraphChangeAddFrame(frame_node)); + UpdateCPUMeasurements(pending_process_node); } void CPUMeasurementMonitor::OnBeforeFrameNodeRemoved( @@ -445,13 +449,14 @@ process_node, previous_value)); } -void CPUMeasurementMonitor::OnWorkerNodeAdded(const WorkerNode* worker_node) { +void CPUMeasurementMonitor::OnBeforeWorkerNodeAdded( + const WorkerNode* worker_node, + const ProcessNode* pending_process_node) { DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); // Take a measurement of the process CPU usage *before* this node was added. // This is safe because workers should only be added after their containing // process has started. - UpdateCPUMeasurements(worker_node->GetProcessNode(), - GraphChangeAddWorker(worker_node)); + UpdateCPUMeasurements(pending_process_node); } void CPUMeasurementMonitor::OnBeforeWorkerNodeRemoved( @@ -1013,27 +1018,10 @@ CHECK(inserted); }; - // Don't distribute measurements to nodes that are being added to the graph. - // The current measurement covers the time before the node was added. - NodeSplitSet nodes_to_skip; - - absl::visit(base::Overloaded{ - [&nodes_to_skip](GraphChangeAddFrame change) { - nodes_to_skip.insert(change.frame_node.get()); - }, - [&nodes_to_skip](GraphChangeAddWorker change) { - nodes_to_skip.insert(change.worker_node.get()); - }, - [](auto change) { - // Do nothing. - }, - }, - graph_change); - record_cpu_deltas(process_node->GetResourceContext(), cumulative_cpu_delta, MeasurementAlgorithm::kDirectMeasurement); resource_attribution::SplitResourceAmongFramesAndWorkers( - cumulative_cpu_delta, process_node, nodes_to_skip, + cumulative_cpu_delta, process_node, [&record_cpu_deltas](const FrameNode* f, base::TimeDelta cpu_delta) { record_cpu_deltas(f->GetResourceContext(), cpu_delta, MeasurementAlgorithm::kSplit);
diff --git a/components/performance_manager/resource_attribution/cpu_measurement_monitor.h b/components/performance_manager/resource_attribution/cpu_measurement_monitor.h index 3ccdd3de..57a3ca5d 100644 --- a/components/performance_manager/resource_attribution/cpu_measurement_monitor.h +++ b/components/performance_manager/resource_attribution/cpu_measurement_monitor.h
@@ -20,7 +20,6 @@ #include "components/performance_manager/public/graph/page_node.h" #include "components/performance_manager/public/graph/process_node.h" #include "components/performance_manager/public/graph/worker_node.h" -#include "components/performance_manager/public/resource_attribution/attribution_helpers.h" #include "components/performance_manager/public/resource_attribution/cpu_measurement_delegate.h" #include "components/performance_manager/public/resource_attribution/origin_in_browsing_instance_context.h" #include "components/performance_manager/public/resource_attribution/query_results.h" @@ -98,7 +97,12 @@ void RecordMemoryMetrics(); // FrameNode::Observer: - void OnFrameNodeAdded(const FrameNode* frame_node) override; + void OnBeforeFrameNodeAdded( + const FrameNode* frame_node, + const FrameNode* pending_parent_frame_node, + const PageNode* pending_page_node, + const ProcessNode* pending_process_node, + const FrameNode* pending_parent_or_outer_document_or_embedder) override; void OnBeforeFrameNodeRemoved(const FrameNode* frame_node) override; void OnOriginChanged( const FrameNode* frame_node, @@ -114,7 +118,9 @@ base::TaskPriority previous_value) override; // WorkerNode::Observer: - void OnWorkerNodeAdded(const WorkerNode* worker_node) override; + void OnBeforeWorkerNodeAdded( + const WorkerNode* worker_node, + const ProcessNode* pending_process_node) override; void OnBeforeWorkerNodeRemoved(const WorkerNode* worker_node) override; void OnBeforeClientFrameAdded(const WorkerNode* worker_node, const FrameNode* client_frame_node) override; @@ -182,8 +188,7 @@ // MeasureAndDistributeCPUUsage(). Adds the estimated CPU usage of each frame // and worker since the last time the process was measured to // `measurement_results_`. `graph_change` is the event that triggered the - // measurement or NoGraphChange if it wasn't triggered due to a graph topology - // change. + // measurement or NoGraphChange if it wasn't triggered due to a graph change. void UpdateCPUMeasurements(const ProcessNode* process_node, GraphChange graph_change = NoGraphChange()); @@ -196,8 +201,7 @@ // Adds the new measurements in `measurement_deltas` to // `measurement_results_`. `graph_change` is the event that triggered the - // measurement or NoGraphChange if it wasn't triggered due to a graph topology - // change. + // measurement or NoGraphChange if it wasn't triggered due to a graph change. void ApplyMeasurementDeltas( const std::map<ResourceContext, CPUTimeResult>& measurement_deltas, GraphChange graph_change = NoGraphChange());
diff --git a/components/performance_manager/resource_attribution/graph_change.h b/components/performance_manager/resource_attribution/graph_change.h index f613904..591cc18 100644 --- a/components/performance_manager/resource_attribution/graph_change.h +++ b/components/performance_manager/resource_attribution/graph_change.h
@@ -9,13 +9,12 @@ #include "base/memory/raw_ptr.h" #include "base/task/task_traits.h" -#include "components/performance_manager/public/graph/process_node.h" -#include "components/performance_manager/resource_attribution/performance_manager_aliases.h" #include "third_party/abseil-cpp/absl/types/variant.h" #include "url/origin.h" namespace performance_manager { class Node; +class ProcessNode; } namespace resource_attribution { @@ -24,18 +23,6 @@ // These are all passed on the stack so don't need to use raw_ptr. struct NoGraphChange {}; -struct GraphChangeAddFrame { - explicit GraphChangeAddFrame(const FrameNode* node) : frame_node(node) {} - - raw_ptr<const FrameNode> frame_node; -}; - -struct GraphChangeAddWorker { - explicit GraphChangeAddWorker(const WorkerNode* node) : worker_node(node) {} - - raw_ptr<const WorkerNode> worker_node; -}; - // Not technically a graph change, but modifies the distribution of FrameNode // and WorkerNode measurements to OriginInBrowsingInstanceContexts the same way // graph changes modify the distribution of measurements to PageContexts. @@ -64,8 +51,6 @@ }; using GraphChange = absl::variant<NoGraphChange, - GraphChangeAddFrame, - GraphChangeAddWorker, GraphChangeUpdateOrigin, GraphChangeUpdateProcessPriority>;
diff --git a/components/performance_manager/resource_attribution/process_context.cc b/components/performance_manager/resource_attribution/process_context.cc index e9fb2cd..0dd2229 100644 --- a/components/performance_manager/resource_attribution/process_context.cc +++ b/components/performance_manager/resource_attribution/process_context.cc
@@ -57,7 +57,7 @@ content::RenderProcessHost* host) { DCHECK_CURRENTLY_ON(content::BrowserThread::UI); CHECK(host); - RenderProcessHostId id(host->GetID()); + RenderProcessHostId id(host->GetDeprecatedID()); CHECK(!id.is_null()); base::WeakPtr<ProcessNode> process_node = PerformanceManager::GetProcessNodeForRenderProcessHost(host);
diff --git a/components/performance_manager/resource_attribution/process_context_unittest.cc b/components/performance_manager/resource_attribution/process_context_unittest.cc index c7e6b46d..f4c12d3e 100644 --- a/components/performance_manager/resource_attribution/process_context_unittest.cc +++ b/components/performance_manager/resource_attribution/process_context_unittest.cc
@@ -88,7 +88,7 @@ ASSERT_TRUE(rfh); content::RenderProcessHost* rph = rfh->GetProcess(); ASSERT_TRUE(rph); - const auto rph_id = RenderProcessHostId(rph->GetID()); + const auto rph_id = RenderProcessHostId(rph->GetDeprecatedID()); std::optional<ProcessContext> process_context = ProcessContext::FromRenderProcessHost(rph);
diff --git a/components/performance_manager/resource_attribution/worker_context_unittest.cc b/components/performance_manager/resource_attribution/worker_context_unittest.cc index d5b6746b..6034c11 100644 --- a/components/performance_manager/resource_attribution/worker_context_unittest.cc +++ b/components/performance_manager/resource_attribution/worker_context_unittest.cc
@@ -61,12 +61,12 @@ blink::DedicatedWorkerToken worker_token2; ASSERT_NE(worker_token, worker_token2); - worker_watcher->OnWorkerCreated(worker_token, rfh->GetProcess()->GetID(), - rfh->GetLastCommittedOrigin(), - rfh->GetGlobalId()); - worker_watcher->OnWorkerCreated(worker_token2, rfh->GetProcess()->GetID(), - rfh->GetLastCommittedOrigin(), - rfh->GetGlobalId()); + worker_watcher->OnWorkerCreated( + worker_token, rfh->GetProcess()->GetDeprecatedID(), + rfh->GetLastCommittedOrigin(), rfh->GetGlobalId()); + worker_watcher->OnWorkerCreated( + worker_token2, rfh->GetProcess()->GetDeprecatedID(), + rfh->GetLastCommittedOrigin(), rfh->GetGlobalId()); absl::Cleanup delete_workers = [&] { worker_watcher->OnBeforeWorkerDestroyed(worker_token, rfh->GetGlobalId()); worker_watcher->OnBeforeWorkerDestroyed(worker_token2, rfh->GetGlobalId());
diff --git a/components/performance_manager/v8_memory/v8_memory_test_helpers.cc b/components/performance_manager/v8_memory/v8_memory_test_helpers.cc index 11fdc28b..1555cc46 100644 --- a/components/performance_manager/v8_memory/v8_memory_test_helpers.cc +++ b/components/performance_manager/v8_memory/v8_memory_test_helpers.cc
@@ -201,7 +201,8 @@ SetContents(CreateTestWebContents()); main_frame_ = content::NavigationSimulator::NavigateAndCommitFromBrowser( web_contents(), GURL(kMainFrameUrl)); - main_process_id_ = RenderProcessHostId(main_frame_->GetProcess()->GetID()); + main_process_id_ = + RenderProcessHostId(main_frame_->GetProcess()->GetDeprecatedID()); } void V8MemoryPerformanceManagerTestHarness::CreateCrossProcessChildFrame() { @@ -211,7 +212,8 @@ content::RenderFrameHostTester::For(main_frame_)->AppendChild("frame1"); child_frame_ = content::NavigationSimulator::NavigateAndCommitFromDocument( GURL(kChildFrameUrl), child_frame_); - child_process_id_ = RenderProcessHostId(child_frame_->GetProcess()->GetID()); + child_process_id_ = + RenderProcessHostId(child_frame_->GetProcess()->GetDeprecatedID()); ASSERT_NE(main_process_id_, child_process_id_); }
diff --git a/components/permissions/contexts/geolocation_permission_context_unittest.cc b/components/permissions/contexts/geolocation_permission_context_unittest.cc index 82337aa..cab5f04 100644 --- a/components/permissions/contexts/geolocation_permission_context_unittest.cc +++ b/components/permissions/contexts/geolocation_permission_context_unittest.cc
@@ -306,11 +306,11 @@ MockRenderProcessHost* process, int request_id, bool allowed) { - ASSERT_EQ(responses_.count(process->GetID()), 1U); + ASSERT_EQ(responses_.count(process->GetDeprecatedID()), 1U); EXPECT_EQ(PermissionRequestID::RequestLocalId(request_id), - responses_[process->GetID()].first); - EXPECT_EQ(allowed, responses_[process->GetID()].second); - responses_.erase(process->GetID()); + responses_[process->GetDeprecatedID()].first); + EXPECT_EQ(allowed, responses_[process->GetDeprecatedID()].second); + responses_.erase(process->GetDeprecatedID()); } void GeolocationPermissionContextTests::AddNewTab(const GURL& url) {
diff --git a/components/permissions/contexts/nfc_permission_context_unittest.cc b/components/permissions/contexts/nfc_permission_context_unittest.cc index 8462e91..2ef42905 100644 --- a/components/permissions/contexts/nfc_permission_context_unittest.cc +++ b/components/permissions/contexts/nfc_permission_context_unittest.cc
@@ -116,11 +116,11 @@ MockRenderProcessHost* process, int request_id, bool allowed) { - ASSERT_EQ(responses_.count(process->GetID()), 1U); + ASSERT_EQ(responses_.count(process->GetDeprecatedID()), 1U); EXPECT_EQ(permissions::PermissionRequestID::RequestLocalId(request_id), - responses_[process->GetID()].first); - EXPECT_EQ(allowed, responses_[process->GetID()].second); - responses_.erase(process->GetID()); + responses_[process->GetDeprecatedID()].first); + EXPECT_EQ(allowed, responses_[process->GetDeprecatedID()].second); + responses_.erase(process->GetDeprecatedID()); } void NfcPermissionContextTests::SetUp() {
diff --git a/components/permissions/permission_manager.cc b/components/permissions/permission_manager.cc index ae652d3..22ac315 100644 --- a/components/permissions/permission_manager.cc +++ b/components/permissions/permission_manager.cc
@@ -70,7 +70,7 @@ content::RenderFrameHost* render_frame_host, const std::vector<ContentSettingsType>& permissions, base::OnceCallback<void(const std::vector<ContentSetting>&)> callback) - : render_process_id_(render_frame_host->GetProcess()->GetID()), + : render_process_id_(render_frame_host->GetProcess()->GetDeprecatedID()), render_frame_id_(render_frame_host->GetRoutingID()), callback_(std::move(callback)), permissions_(permissions),
diff --git a/components/policy/proto/chrome_device_policy.proto b/components/policy/proto/chrome_device_policy.proto index cce153a..74416f9 100644 --- a/components/policy/proto/chrome_device_policy.proto +++ b/components/policy/proto/chrome_device_policy.proto
@@ -2090,4 +2090,5 @@ optional BooleanPolicyProto DevicePostQuantumKeyAgreementEnabled = 1276; optional StringPolicyProto DeviceRestrictionSchedule = 1290; optional BooleanPolicyProto DeviceNativeClientForceAllowed = 1314; + optional IntegerPolicyProto DevicePowerBatteryChargingOptimization = 1319; }
diff --git a/components/policy/resources/templates/policies.yaml b/components/policy/resources/templates/policies.yaml index f855a3c..2a12b91 100644 --- a/components/policy/resources/templates/policies.yaml +++ b/components/policy/resources/templates/policies.yaml
@@ -1317,6 +1317,7 @@ 1316: PasswordManagerPasskeysEnabled 1317: FilePickerChooseFromDriveSettings 1318: LiveTranslateEnabled + 1319: DevicePowerBatteryChargingOptimization atomic_groups: 1: Homepage
diff --git a/components/policy/resources/templates/policy_definitions/PowerManagement/DevicePowerAdaptiveChargingEnabled.yaml b/components/policy/resources/templates/policy_definitions/PowerManagement/DevicePowerAdaptiveChargingEnabled.yaml index 0a1a8ff7..4bca541 100644 --- a/components/policy/resources/templates/policy_definitions/PowerManagement/DevicePowerAdaptiveChargingEnabled.yaml +++ b/components/policy/resources/templates/policy_definitions/PowerManagement/DevicePowerAdaptiveChargingEnabled.yaml
@@ -7,6 +7,8 @@ When the device is on AC, the adaptive charging model evaluates if charging process should be hold to extend battery life. If the adaptive charging model holds the charging process, it'll keep the battery at a certain level (i.e. 80%) and then charge the device to 100% when the user needs it. If this policy is set to True, the adaptive charging model will be enabled and allowed to hold the charging process to extend battery life. If this policy is set to False or unset, the adaptive charging model will not influence the charging process. + + Note: This policy has no effect if DevicePowerBatteryChargingOptimization is set. example_value: false features: dynamic_refresh: true
diff --git a/components/policy/resources/templates/policy_definitions/PowerManagement/DevicePowerBatteryChargingOptimization.yaml b/components/policy/resources/templates/policy_definitions/PowerManagement/DevicePowerBatteryChargingOptimization.yaml new file mode 100644 index 0000000..517ec3c --- /dev/null +++ b/components/policy/resources/templates/policy_definitions/PowerManagement/DevicePowerBatteryChargingOptimization.yaml
@@ -0,0 +1,47 @@ +caption: Battery Charging Optimization +desc: |- + Battery health can be affected by factors like frequent full charges and extended charging durations. This policy provides three options to optimize charging behavior and mitigate these factors, ultimately prolonging battery lifespan. + + Setting the policy to Standard, the battery charges normally to 100%. This disables adaptive and limited charging. + + Setting the policy to Adaptive, the device learns your charging habits and delays charging to 100% until necessary. This helps prolong battery health. + + Setting the policy to Limited, the battery charges only to around 80% to maximize its lifespan. + + Leaving this policy unset applies the Standard option (where supported). + + The DevicePowerBatteryChargingOptimization policy overrides the DevicePowerAdaptiveChargingEnabled policy. + + DevicePowerAdaptiveChargingEnabled controls adaptive charging if DevicePowerBatteryChargingOptimization is unset. + + The DevicePowerBatteryChargingOptimization and DevicePowerAdaptiveChargingEnabled policies always take precedence over user settings. + +device_only: true +example_value: 1 +default: 1 +features: + dynamic_refresh: true + per_profile: false +items: +- caption: Fully charge battery at a standard rate. This mode disables adaptive and limited charging. + name: Standard + value: 1 +- caption: Adaptive charge battery using machine learning to predict the time you disconnect the charger and delays charging to 100% to extend battery life. + name: Adaptive + value: 2 +- caption: Charge battery to around 80% to maximize battery lifespan. + name: Limited + value: 3 +owners: +- jingmuli@google.com +- chromeos-power-team@google.com +schema: + enum: + - 1 + - 2 + - 3 + type: integer +future_on: +- chrome_os +tags: [] +type: int-enum
diff --git a/components/policy/test/data/pref_mapping/DevicePowerBatteryChargingOptimization.json b/components/policy/test/data/pref_mapping/DevicePowerBatteryChargingOptimization.json new file mode 100644 index 0000000..1c5f9a0a --- /dev/null +++ b/components/policy/test/data/pref_mapping/DevicePowerBatteryChargingOptimization.json
@@ -0,0 +1,147 @@ + +[ + { + "os": [ + "chromeos_ash" + ], + "note": "Test for DevicePowerBatteryChargingOptimization and DevicePowerAdaptiveChargingEnabled policy.", + "policy_pref_mapping_tests": [ + { + "note": "Check default value when no policies are set. DevicePowerAdaptiveChargingEnabled has a default_for_enterprise_users, so when DevicePowerAdaptiveChargingEnabled unset, the pref will be overriden by default_for_enterprise_users", + "policies": {}, + "prefs": { + "power.adaptive_charging_enabled": { + "location": "user_profile", + "value": false + }, + "power.charge_limit_enabled": { + "location": "local_state", + "default_value": false + } + } + }, + { + "note":"Check when DevicePowerBatteryChargingOptimization is unset, DevicePowerAdaptiveChargingEnabled can still set adaptive charging", + "policies": { + "DevicePowerAdaptiveChargingEnabled": false + }, + "prefs": { + "power.adaptive_charging_enabled": { + "location": "user_profile", + "value": false + } + } + }, + { + "policies": { + "DevicePowerAdaptiveChargingEnabled": true + }, + "prefs": { + "power.adaptive_charging_enabled": { + "location": "user_profile", + "value": true + } + } + }, + { + "note":"Check when DevicePowerBatteryChargingOptimization is unset, DevicePowerAdaptiveChargingEnabled can still set adaptive charging", + "policies": { + "DevicePowerBatteryChargingOptimization": 1 + }, + "prefs": { + "power.adaptive_charging_enabled": { + "location": "user_profile", + "value": false + }, + "power.charge_limit_enabled": { + "location": "local_state", + "value": false + } + } + }, + { + "note": "DevicePowerBatteryChargingOptimization overrides DevicePowerAdaptiveChargingEnabled.", + "policies": { + "DevicePowerBatteryChargingOptimization": 1, + "DevicePowerAdaptiveChargingEnabled": true + }, + "prefs": { + "power.adaptive_charging_enabled": { + "location": "user_profile", + "value": false + }, + "power.charge_limit_enabled": { + "location": "local_state", + "value": false + } + } + }, + { + "note": "Check that DevicePowerBatteryChargingOptimization sets the preference correctly (Adaptive).", + "policies": { + "DevicePowerBatteryChargingOptimization": 2 + }, + "prefs": { + "power.adaptive_charging_enabled": { + "location": "user_profile", + "value": true + }, + "power.charge_limit_enabled": { + "location": "local_state", + "value": false + } + } + }, + { + "note": "DevicePowerBatteryChargingOptimization overrides DevicePowerAdaptiveChargingEnabled.", + "policies": { + "DevicePowerBatteryChargingOptimization": 2, + "DevicePowerAdaptiveChargingEnabled": false + }, + "prefs": { + "power.adaptive_charging_enabled": { + "location": "user_profile", + "value": true + }, + "power.charge_limit_enabled": { + "location": "local_state", + "value": false + } + } + }, + { + "note": "Check that DevicePowerBatteryChargingOptimization sets the preference correctly (Limited).", + "policies": { + "DevicePowerBatteryChargingOptimization": 3 + }, + "prefs": { + "power.adaptive_charging_enabled": { + "location": "user_profile", + "value": false + }, + "power.charge_limit_enabled": { + "location": "local_state", + "value": true + } + } + }, + { + "note": "DevicePowerBatteryChargingOptimization overrides DevicePowerAdaptiveChargingEnabled.", + "policies": { + "DevicePowerBatteryChargingOptimization": 3, + "DevicePowerAdaptiveChargingEnabled": true + }, + "prefs": { + "power.adaptive_charging_enabled": { + "location": "user_profile", + "value": false + }, + "power.charge_limit_enabled": { + "location": "local_state", + "value": true + } + } + } + ] + } +]
diff --git a/components/printing/browser/print_composite_client.cc b/components/printing/browser/print_composite_client.cc index 82e1d936..a9fff5e 100644 --- a/components/printing/browser/print_composite_client.cc +++ b/components/printing/browser/print_composite_client.cc
@@ -38,7 +38,7 @@ namespace { uint64_t GenerateFrameGuid(content::RenderFrameHost* render_frame_host) { - int process_id = render_frame_host->GetProcess()->GetID(); + int process_id = render_frame_host->GetProcess()->GetDeprecatedID(); int frame_id = render_frame_host->GetRoutingID(); return static_cast<uint64_t>(process_id) << 32 | frame_id; } @@ -53,7 +53,7 @@ content::RenderFrameHost* render_frame_host, const ContentToProxyTokenMap& content_proxy_map) { ContentToFrameMap content_frame_map; - int process_id = render_frame_host->GetProcess()->GetID(); + int process_id = render_frame_host->GetProcess()->GetDeprecatedID(); for (const auto& entry : content_proxy_map) { auto content_id = entry.first; auto proxy_token = entry.second;
diff --git a/components/privacy_sandbox_strings.grd b/components/privacy_sandbox_strings.grd index 137935a..91e86ee 100644 --- a/components/privacy_sandbox_strings.grd +++ b/components/privacy_sandbox_strings.grd
@@ -559,6 +559,12 @@ <message name="IDS_SETTINGS_AD_TOPICS_PAGE_DISCLAIMER" desc="" translateable="false"> Google requires companies to state publicly that they won't use this data to track you across sites. Some sites may use your activity to personalize your experience for more than just ads. They may also combine it with other information they already know about you. Companies are responsible for letting you know how they use your data. Learn more about how Google protects your data in our <ph name="BEGIN_LINK1"><a href="$1" aria-description="$2" on-click="$3" target="_blank"></ph>Privacy Policy<ph name="LINK_END1"></a></ph>. </message> + <message name="IDS_SETTINGS_AD_TOPICS_PAGE_DISCLAIMER_CLANK" desc="" translateable="false" formatter_data="android_java"> + Google requires companies to state publicly that they won't use this data to track you across sites. Some sites may use your activity to personalize your experience for more than just ads. They may also combine it with other information they already know about you. Companies are responsible for letting you know how they use your data. Learn more about how Google protects your data in our <ph name="BEGIN_LINK"><link></ph>Privacy Policy<ph name="END_LINK"></link></ph>. + </message> + <message name="IDS_SETTINGS_AD_TOPICS_PAGE_FOOTER_V2" desc="This footer helps the user understand that this setting is just one signal among others that affect whether this user sees personalized ads on a site. We define 'personalize' as 'when Google provides recommendations and other content for users based on their data'. At a high level, there are 4 things that affect whether an ad is personalized in this context: * 'this setting' refers to the 'Ad topics' setting. The user is on this page. * 'Site-suggested ads': this is a link to the other new ad setting Chrome is launching and that sites can use to personalize ads a user sees. * 'cookie settings': this is a link to the cookies control section in Chrome settings. The Privacy Sandbox project deprecates third-party cookies, but it's a process, and we're launching new functionality that will replace important functionality of cookies. Until third-party cookies are deprecated, the two systems remain active in Chrome. * 'site you're viewing personalizes ads': When a user engages with a site, Chrome has no control over whether that site shows the user personalized ads. Imagine you visit www.interesting-site.com and they know a lot about you already based on previous visits. They can personalize content and ads to you if they like. They can use an ad-serving product, like Facebook or Google Ads to deliver personalized ads. They can also use the new Privacy Sandbox APIs (if they so choose) in order to get more information about the user that could be helpful to them in order to personalize ads. Those 2 APIs (settings, from the user's perspective), are 'Ad topics' and 'Site-suggested ads'." formatter_data="android_java" translateable="false"> + Whether an ad you see is personalized can depend on many things including this setting, <ph name="BEGIN_LINK_1"><link1></ph>site-suggested ads<ph name="END_LINK_1"></link1></ph>, your <ph name="BEGIN_LINK_2"><link2></ph>cookie settings<ph name="END_LINK_2"></link2></ph>, and if the site you're viewing personalizes ads. + </message> <!--Ad measurement page - Ads API UX Enhancement--> <message name="IDS_SETTINGS_AD_MEASUREMENT_PAGE_DISCLAIMER" desc="" translateable="false"> Google requires companies to state publicly that they won't use this data to track you across sites. Some sites may use your activity to personalize your experience for more than just ads. They may also combine it with other information they already know about you. Companies are responsible for letting you know how they use your data. Learn more about how Google protects your data in our <ph name="BEGIN_LINK1"><a href="$1" aria-description="$2" on-click="$3" target="_blank"></ph>Privacy Policy<ph name="LINK_END1"></a></ph>.
diff --git a/components/query_parser/query_parser_unittest.cc b/components/query_parser/query_parser_unittest.cc index ee81064..4dde88f 100644 --- a/components/query_parser/query_parser_unittest.cc +++ b/components/query_parser/query_parser_unittest.cc
@@ -11,6 +11,8 @@ #include <stddef.h> +#include <array> + #include "base/strings/utf_string_conversions.h" #include "testing/gtest/include/gtest/gtest.h" @@ -78,12 +80,12 @@ } TEST_F(QueryParserTest, NumWords) { - TestData data[] = { - { "blah", 1 }, - { "foo \"bar baz\"", 3 }, - { "foo \"baz\"", 2 }, - { "foo \"bar baz\" blah", 4 }, - }; + auto data = std::to_array<TestData>({ + {"blah", 1}, + {"foo \"bar baz\"", 3}, + {"foo \"baz\"", 2}, + {"foo \"bar baz\" blah", 4}, + }); for (size_t i = 0; i < std::size(data); ++i) { std::u16string query_string; @@ -103,24 +105,25 @@ const size_t m1_end; const size_t m2_start; const size_t m2_end; - } data[] = { - { "foo", "fooey foo", true, 0, 3, 6, 9 }, - { "foo foo", "foo", true, 0, 3, 0, 0 }, - { "foo fooey", "fooey", true, 0, 5, 0, 0 }, - { "fooey foo", "fooey", true, 0, 5, 0, 0 }, - { "foo fooey bar", "bar fooey", true, 0, 3, 4, 9 }, - { "blah", "blah", true, 0, 4, 0, 0 }, - { "blah", "foo", false, 0, 0, 0, 0 }, - { "blah", "blahblah", true, 0, 4, 0, 0 }, - { "blah", "foo blah", true, 4, 8, 0, 0 }, - { "foo blah", "blah", false, 0, 0, 0, 0 }, - { "foo blah", "blahx foobar", true, 0, 4, 6, 9 }, - { "\"foo blah\"", "foo blah", true, 0, 8, 0, 0 }, - { "\"foo blah\"", "foox blahx", false, 0, 0, 0, 0 }, - { "\"foo blah\"", "foo blah", true, 0, 8, 0, 0 }, - { "\"foo blah\"", "\"foo blah\"", true, 1, 9, 0, 0 }, - { "foo blah", "\"foo bar blah\"", true, 1, 4, 9, 13 }, }; + auto data = std::to_array<TestData2>({ + {"foo", "fooey foo", true, 0, 3, 6, 9}, + {"foo foo", "foo", true, 0, 3, 0, 0}, + {"foo fooey", "fooey", true, 0, 5, 0, 0}, + {"fooey foo", "fooey", true, 0, 5, 0, 0}, + {"foo fooey bar", "bar fooey", true, 0, 3, 4, 9}, + {"blah", "blah", true, 0, 4, 0, 0}, + {"blah", "foo", false, 0, 0, 0, 0}, + {"blah", "blahblah", true, 0, 4, 0, 0}, + {"blah", "foo blah", true, 4, 8, 0, 0}, + {"foo blah", "blah", false, 0, 0, 0, 0}, + {"foo blah", "blahx foobar", true, 0, 4, 6, 9}, + {"\"foo blah\"", "foo blah", true, 0, 8, 0, 0}, + {"\"foo blah\"", "foox blahx", false, 0, 0, 0, 0}, + {"\"foo blah\"", "foo blah", true, 0, 8, 0, 0}, + {"\"foo blah\"", "\"foo blah\"", true, 1, 9, 0, 0}, + {"foo blah", "\"foo bar blah\"", true, 1, 4, 9, 13}, + }); for (size_t i = 0; i < std::size(data); ++i) { query_parser::QueryNodeVector query_nodes; QueryParser::ParseQueryNodes(base::UTF8ToUTF16(data[i].query), @@ -151,12 +154,13 @@ const std::string w2; const std::string w3; const size_t word_count; - } data[] = { - { "foo", "foo", "", "", 1 }, - { "foo bar", "foo", "bar", "", 2 }, - { "\"foo bar\"", "foo", "bar", "", 2 }, - { "\"foo bar\" a", "foo", "bar", "a", 3 }, }; + auto data = std::to_array<TestData2>({ + {"foo", "foo", "", "", 1}, + {"foo bar", "foo", "bar", "", 2}, + {"\"foo bar\"", "foo", "bar", "", 2}, + {"\"foo bar\" a", "foo", "bar", "a", 3}, + }); for (size_t i = 0; i < std::size(data); ++i) { std::vector<std::u16string> results; QueryParser::ParseQueryWords(base::UTF8ToUTF16(data[i].text), @@ -175,7 +179,8 @@ const std::string query; const std::string find_in_text; const bool matches; - } data[] = { + }; + auto data = std::to_array<TestData2>({ // Trivial cases. {"blah", "blah", true}, {"blah", "foo", false}, @@ -198,7 +203,7 @@ {"\"foo blah\"", "foox blahx", false}, {"\"foo blah\"", "\"foo blah\"", true}, {"foo blah", "\"foo bar blah\"", true}, - }; + }); for (size_t i = 0; i < std::size(data); ++i) { SCOPED_TRACE(::testing::Message() << " Testing case i=" << i << " query=" << data[i].query
diff --git a/components/query_parser/snippet_unittest.cc b/components/query_parser/snippet_unittest.cc index c5477d5ad..a1714c6f 100644 --- a/components/query_parser/snippet_unittest.cc +++ b/components/query_parser/snippet_unittest.cc
@@ -12,6 +12,7 @@ #include <stddef.h> #include <algorithm> +#include <array> #include "base/strings/string_split.h" #include "base/strings/string_util.h" @@ -234,18 +235,19 @@ const std::string offsets_string; const size_t expected_match_count; const size_t expected_matches[10]; - } data[] = { - { "0 0 1 2 0 0 4 1 0 0 1 5", 1, { 1, 6 } }, - { "0 0 1 4 0 0 2 1", 1, { 1, 5 } }, - { "0 0 4 1 0 0 2 1", 2, { 2, 3, 4, 5 } }, - { "0 0 0 1", 1, { 0, 1 } }, - { "0 0 0 1 0 0 0 2", 1, { 0, 2 } }, - { "0 0 1 1 0 0 1 2", 1, { 1, 3 } }, - { "0 0 1 2 0 0 4 3 0 0 3 1", 1, { 1, 7 } }, - { "0 0 1 4 0 0 2 5", 1, { 1, 7 } }, - { "0 0 1 2 0 0 1 1", 1, { 1, 3 } }, - { "0 0 1 1 0 0 5 2 0 0 10 1 0 0 3 10", 2, { 1, 2, 3, 13 } }, }; + auto data = std::to_array<TestData>({ + {"0 0 1 2 0 0 4 1 0 0 1 5", 1, {1, 6}}, + {"0 0 1 4 0 0 2 1", 1, {1, 5}}, + {"0 0 4 1 0 0 2 1", 2, {2, 3, 4, 5}}, + {"0 0 0 1", 1, {0, 1}}, + {"0 0 0 1 0 0 0 2", 1, {0, 2}}, + {"0 0 1 1 0 0 1 2", 1, {1, 3}}, + {"0 0 1 2 0 0 4 3 0 0 3 1", 1, {1, 7}}, + {"0 0 1 4 0 0 2 5", 1, {1, 7}}, + {"0 0 1 2 0 0 1 1", 1, {1, 3}}, + {"0 0 1 1 0 0 5 2 0 0 10 1 0 0 3 10", 2, {1, 2, 3, 13}}, + }); for (size_t i = 0; i < std::size(data); ++i) { Snippet::MatchPositions matches; Snippet::ExtractMatchPositions(data[i].offsets_string, "0", &matches);
diff --git a/components/remote_cocoa/app_shim/features.cc b/components/remote_cocoa/app_shim/features.cc index 67b1d00..ff4e875 100644 --- a/components/remote_cocoa/app_shim/features.cc +++ b/components/remote_cocoa/app_shim/features.cc
@@ -22,11 +22,6 @@ "ImmersiveFullscreenOverlayWindowDebug", base::FEATURE_DISABLED_BY_DEFAULT); -// The close, minimize and maximize (traffic lights) buttons are always visible. -// kImmersiveFullscreenTabs must be enabled for this feature to have an effect. -BASE_FEATURE(kFullscreenAlwaysShowTrafficLights, - "FullscreenAlwaysShowTrafficLights", - base::FEATURE_DISABLED_BY_DEFAULT); // Keeps the "thin" titlebar accessory view controller permanently in // browser windows, instead of inserting it on immersive fullscreen enablement. // Addresses a race condition in PWAs (see https://crbug.com/373722654)
diff --git a/components/remote_cocoa/app_shim/features.h b/components/remote_cocoa/app_shim/features.h index 14b98f7..de74a35 100644 --- a/components/remote_cocoa/app_shim/features.h +++ b/components/remote_cocoa/app_shim/features.h
@@ -14,8 +14,6 @@ REMOTE_COCOA_APP_SHIM_EXPORT BASE_DECLARE_FEATURE(kImmersiveFullscreenOverlayWindowDebug); REMOTE_COCOA_APP_SHIM_EXPORT -BASE_DECLARE_FEATURE(kFullscreenAlwaysShowTrafficLights); -REMOTE_COCOA_APP_SHIM_EXPORT BASE_DECLARE_FEATURE(kFullscreenPermanentThinController); } // namespace remote_cocoa::features
diff --git a/components/remote_cocoa/app_shim/immersive_mode_tabbed_controller_cocoa.mm b/components/remote_cocoa/app_shim/immersive_mode_tabbed_controller_cocoa.mm index 82c9c199..f54f120f 100644 --- a/components/remote_cocoa/app_shim/immersive_mode_tabbed_controller_cocoa.mm +++ b/components/remote_cocoa/app_shim/immersive_mode_tabbed_controller_cocoa.mm
@@ -15,11 +15,8 @@ namespace { void SetAlwaysShowTrafficLights(NSWindow* browser_window, bool always_show) { - if (base::FeatureList::IsEnabled( - remote_cocoa::features::kFullscreenAlwaysShowTrafficLights)) { - [base::apple::ObjCCast<BrowserNativeWidgetWindow>(browser_window) - setAlwaysShowTrafficLights:always_show ? YES : NO]; - } + [base::apple::ObjCCast<BrowserNativeWidgetWindow>(browser_window) + setAlwaysShowTrafficLights:YES]; } } // namespace
diff --git a/components/renderer_context_menu/render_view_context_menu_base.cc b/components/renderer_context_menu/render_view_context_menu_base.cc index 2c4065b..b08b752 100644 --- a/components/renderer_context_menu/render_view_context_menu_base.cc +++ b/components/renderer_context_menu/render_view_context_menu_base.cc
@@ -192,7 +192,7 @@ menu_model_(this), render_frame_id_(render_frame_host.GetRoutingID()), render_frame_token_(render_frame_host.GetFrameToken()), - render_process_id_(render_frame_host.GetProcess()->GetID()), + render_process_id_(render_frame_host.GetProcess()->GetDeprecatedID()), site_instance_(render_frame_host.GetSiteInstance()), command_executed_(false) {}
diff --git a/components/renderer_context_menu/render_view_context_menu_proxy.h b/components/renderer_context_menu/render_view_context_menu_proxy.h index 30320e9..b4b7e80 100644 --- a/components/renderer_context_menu/render_view_context_menu_proxy.h +++ b/components/renderer_context_menu/render_view_context_menu_proxy.h
@@ -53,7 +53,7 @@ // content::AssociateURLFetcherWithRenderView( // fetcher_.get(), // proxy_->GetRenderFrameHost()->GetSiteInstance()->GetSite(), -// proxy_->GetRenderFrameHost()->GetProcess()->GetID(), +// proxy_->GetRenderFrameHost()->GetProcess()->GetDeprecatedID(), // proxy_->GetRenderFrameHost()->GetRoutingID()); // fetcher_->Start(); // }
diff --git a/components/safe_browsing/content/browser/threat_details.cc b/components/safe_browsing/content/browser/threat_details.cc index 2213a51..60958dd 100644 --- a/components/safe_browsing/content/browser/threat_details.cc +++ b/components/safe_browsing/content/browser/threat_details.cc
@@ -599,7 +599,7 @@ } // Lookup the FrameTreeNode ID of any child frames in the list of DOM nodes. - const int sender_process_id = sender_rfh->GetProcess()->GetID(); + const int sender_process_id = sender_rfh->GetProcess()->GetDeprecatedID(); const content::FrameTreeNodeId sender_frame_tree_node_id = sender_rfh->GetFrameTreeNodeId(); KeyToFrameTreeIdMap child_frame_tree_map;
diff --git a/components/safe_search_api/safe_search/safe_search_url_checker_client_unittest.cc b/components/safe_search_api/safe_search/safe_search_url_checker_client_unittest.cc index d80bdb5..fd1878a2 100644 --- a/components/safe_search_api/safe_search/safe_search_url_checker_client_unittest.cc +++ b/components/safe_search_api/safe_search/safe_search_url_checker_client_unittest.cc
@@ -2,13 +2,9 @@ // 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/40285824): Remove this and convert code to safer constructs. -#pragma allow_unsafe_buffers -#endif - #include "components/safe_search_api/safe_search/safe_search_url_checker_client.h" +#include <array> #include <memory> #include <utility> @@ -47,13 +43,17 @@ return result; } -const char* kURLs[] = { - "http://www.randomsite1.com", "http://www.randomsite2.com", - "http://www.randomsite3.com", "http://www.randomsite4.com", - "http://www.randomsite5.com", "http://www.randomsite6.com", - "http://www.randomsite7.com", "http://www.randomsite8.com", +auto kURLs = std::to_array<const char*>({ + "http://www.randomsite1.com", + "http://www.randomsite2.com", + "http://www.randomsite3.com", + "http://www.randomsite4.com", + "http://www.randomsite5.com", + "http://www.randomsite6.com", + "http://www.randomsite7.com", + "http://www.randomsite8.com", "http://www.randomsite9.com", -}; +}); } // namespace
diff --git a/components/safe_search_api/url_checker_unittest.cc b/components/safe_search_api/url_checker_unittest.cc index 7e75163..3b2737d 100644 --- a/components/safe_search_api/url_checker_unittest.cc +++ b/components/safe_search_api/url_checker_unittest.cc
@@ -2,16 +2,12 @@ // 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/40285824): Remove this and convert code to safer constructs. -#pragma allow_unsafe_buffers -#endif - #include "components/safe_search_api/url_checker.h" #include <stddef.h> #include <algorithm> +#include <array> #include <iterator> #include <map> #include <memory> @@ -38,13 +34,17 @@ constexpr size_t kCacheSize = 2; -const char* kURLs[] = { - "http://www.randomsite1.com", "http://www.randomsite2.com", - "http://www.randomsite3.com", "http://www.randomsite4.com", - "http://www.randomsite5.com", "http://www.randomsite6.com", - "http://www.randomsite7.com", "http://www.randomsite8.com", +auto kURLs = std::to_array<const char*>({ + "http://www.randomsite1.com", + "http://www.randomsite2.com", + "http://www.randomsite3.com", + "http://www.randomsite4.com", + "http://www.randomsite5.com", + "http://www.randomsite6.com", + "http://www.randomsite7.com", + "http://www.randomsite8.com", "http://www.randomsite9.com", -}; +}); ClientClassification ToAPIClassification(Classification classification, bool uncertain) {
diff --git a/components/segmentation_platform/embedder/home_modules/home_modules_card_registry.cc b/components/segmentation_platform/embedder/home_modules/home_modules_card_registry.cc index 8477383..90690b5 100644 --- a/components/segmentation_platform/embedder/home_modules/home_modules_card_registry.cc +++ b/components/segmentation_platform/embedder/home_modules/home_modules_card_registry.cc
@@ -308,31 +308,39 @@ std::optional<CardSelectionInfo::ShowResult> forced_result = GetForcedEphemeralModuleShowResult(); - // If a card is forced to be shown, add it immediately. + // Determine the forced card identifier and label, if any. + TipIdentifier forced_identifier = TipIdentifier::kUnknown; + std::string_view forced_label; + if (forced_result.has_value() && forced_result.value().position == EphemeralHomeModuleRank::kTop) { - TipIdentifier identifier = TipIdentifierForOutputLabel( - forced_result.value().result_label.value()); + forced_label = forced_result.value().result_label.value(); + forced_identifier = TipIdentifierForOutputLabel(forced_label); - if (identifier != TipIdentifier::kUnknown) { - AddCardForTip(identifier, all_cards_by_priority_, profile_prefs_); + if (forced_identifier != TipIdentifier::kUnknown) { + AddCardForTip(forced_identifier, all_cards_by_priority_, + profile_prefs_); } } - std::string enabled_variations = features::TipsExperimentTrainEnabled(); - - // Iterates the variation labels without extra allocations. + // Iterate through variation labels and add unique cards. for (std::string_view variation_label : - base::SplitString(enabled_variations, ",", base::TRIM_WHITESPACE, - base::SPLIT_WANT_NONEMPTY)) { - // Skip forced card as it will be added by the forcing mechanism. - if (forced_result.has_value() && - forced_result.value().result_label.value() == variation_label) { + base::SplitString(features::TipsExperimentTrainEnabled(), ",", + base::TRIM_WHITESPACE, base::SPLIT_WANT_NONEMPTY)) { + TipIdentifier identifier = TipIdentifierForOutputLabel(variation_label); + + // Skip adding if: + // 1. The identifier is unknown. + // 2. It matches the forced identifier. + // 3. Both belong to the same "family" of Lens cards. + if (identifier == TipIdentifier::kUnknown || + identifier == forced_identifier || + (LensEphemeralModule::IsModuleLabel(variation_label) && + LensEphemeralModule::IsModuleLabel(forced_label))) { continue; } - AddCardForTip(TipIdentifierForOutputLabel(variation_label), - all_cards_by_priority_, profile_prefs_); + AddCardForTip(identifier, all_cards_by_priority_, profile_prefs_); } }
diff --git a/components/segmentation_platform/internal/android/java/src/org/chromium/components/segmentation_platform/SegmentationPlatformServiceImpl.java b/components/segmentation_platform/internal/android/java/src/org/chromium/components/segmentation_platform/SegmentationPlatformServiceImpl.java index bcf0e17..027e2bd 100644 --- a/components/segmentation_platform/internal/android/java/src/org/chromium/components/segmentation_platform/SegmentationPlatformServiceImpl.java +++ b/components/segmentation_platform/internal/android/java/src/org/chromium/components/segmentation_platform/SegmentationPlatformServiceImpl.java
@@ -10,9 +10,13 @@ import org.chromium.base.Callback; +import java.util.Arrays; +import java.util.HashSet; +import java.util.Set; + /** - * Java side of the JNI bridge between SegmentationPlatformServiceImpl in Java - * and C++. All method calls are delegated to the native C++ class. + * Java side of the JNI bridge between SegmentationPlatformServiceImpl in Java and C++. All method + * calls are delegated to the native C++ class. */ @JNINamespace("segmentation_platform") public class SegmentationPlatformServiceImpl implements SegmentationPlatformService { @@ -56,6 +60,17 @@ .getCachedSegmentResult(mNativePtr, this, segmentationKey); } + @Override + public void getInputKeysForModel(String segmentationKey, Callback<Set<String>> callback) { + SegmentationPlatformServiceImplJni.get() + .getInputKeysForModel( + mNativePtr, + segmentationKey, + (inputArray) -> { + callback.onResult(new HashSet<>(Arrays.asList(inputArray))); + }); + } + @CalledByNative private void clearNativePtr() { mNativePtr = 0; @@ -81,5 +96,10 @@ long nativeSegmentationPlatformServiceAndroid, SegmentationPlatformServiceImpl caller, String segmentationKey); + + void getInputKeysForModel( + long nativeSegmentationPlatformServiceAndroid, + String segmentationKey, + Callback<String[]> callback); } }
diff --git a/components/segmentation_platform/internal/android/segmentation_platform_service_android.cc b/components/segmentation_platform/internal/android/segmentation_platform_service_android.cc index e35779d..a3b9590 100644 --- a/components/segmentation_platform/internal/android/segmentation_platform_service_android.cc +++ b/components/segmentation_platform/internal/android/segmentation_platform_service_android.cc
@@ -7,6 +7,7 @@ #include <memory> #include "base/android/callback_android.h" +#include "base/android/jni_array.h" #include "base/android/jni_string.h" #include "base/android/scoped_java_ref.h" #include "base/functional/bind.h" @@ -51,6 +52,14 @@ env, result)); } +void RunInputKeysForModelCallback(const JavaRef<jobject>& j_callback, + std::set<std::string> input_keys) { + JNIEnv* env = AttachCurrentThread(); + std::vector<std::string> inputs_vector(input_keys.begin(), input_keys.end()); + base::android::RunObjectCallbackAndroid( + j_callback, base::android::ToJavaArrayOfStrings(env, inputs_vector)); +} + } // namespace // This function is declared in segmentation_platform_service.h and @@ -127,6 +136,16 @@ ConvertJavaStringToUTF8(env, j_segmentation_key))); } +void SegmentationPlatformServiceAndroid::GetInputKeysForModel( + JNIEnv* env, + const JavaParamRef<jstring>& j_segmentation_key, + const JavaParamRef<jobject>& j_callback) { + segmentation_platform_service_->GetInputKeysForModel( + ConvertJavaStringToUTF8(env, j_segmentation_key), + base::BindOnce(&RunInputKeysForModelCallback, + ScopedJavaGlobalRef<jobject>(j_callback))); +} + ScopedJavaLocalRef<jobject> SegmentationPlatformServiceAndroid::GetJavaObject() { return ScopedJavaLocalRef<jobject>(java_obj_);
diff --git a/components/segmentation_platform/internal/android/segmentation_platform_service_android.h b/components/segmentation_platform/internal/android/segmentation_platform_service_android.h index c8a7f75a..33c2a20 100644 --- a/components/segmentation_platform/internal/android/segmentation_platform_service_android.h +++ b/components/segmentation_platform/internal/android/segmentation_platform_service_android.h
@@ -44,6 +44,10 @@ const JavaParamRef<jobject>& jcaller, const JavaParamRef<jstring>& j_segmentation_key); + void GetInputKeysForModel(JNIEnv* env, + const JavaParamRef<jstring>& j_segmentation_key, + const JavaParamRef<jobject>& j_callback); + ScopedJavaLocalRef<jobject> GetJavaObject(); private:
diff --git a/components/segmentation_platform/internal/dummy_segmentation_platform_service.cc b/components/segmentation_platform/internal/dummy_segmentation_platform_service.cc index 75ce7a9..7a3eb92 100644 --- a/components/segmentation_platform/internal/dummy_segmentation_platform_service.cc +++ b/components/segmentation_platform/internal/dummy_segmentation_platform_service.cc
@@ -46,6 +46,13 @@ AnnotatedNumericResult(PredictionStatus::kFailed))); } +void DummySegmentationPlatformService::GetInputKeysForModel( + const std::string& segmentation_key, + InputContextKeysCallback callback) { + base::SequencedTaskRunner::GetCurrentDefault()->PostTask( + FROM_HERE, base::BindOnce(std::move(callback), std::set<std::string>())); +} + SegmentSelectionResult DummySegmentationPlatformService::GetCachedSegmentResult( const std::string& segmentation_key) { return SegmentSelectionResult();
diff --git a/components/segmentation_platform/internal/dummy_segmentation_platform_service.h b/components/segmentation_platform/internal/dummy_segmentation_platform_service.h index 20d83bb..e851e88 100644 --- a/components/segmentation_platform/internal/dummy_segmentation_platform_service.h +++ b/components/segmentation_platform/internal/dummy_segmentation_platform_service.h
@@ -36,6 +36,8 @@ const PredictionOptions& prediction_options, scoped_refptr<InputContext> input_context, AnnotatedNumericResultCallback callback) override; + void GetInputKeysForModel(const std::string& segmentation_key, + InputContextKeysCallback callback) override; SegmentSelectionResult GetCachedSegmentResult( const std::string& segmentation_key) override; void CollectTrainingData(proto::SegmentId segment_id,
diff --git a/components/segmentation_platform/internal/execution/processing/custom_input_processor.cc b/components/segmentation_platform/internal/execution/processing/custom_input_processor.cc index eefdfef0..985d9a5 100644 --- a/components/segmentation_platform/internal/execution/processing/custom_input_processor.cc +++ b/components/segmentation_platform/internal/execution/processing/custom_input_processor.cc
@@ -247,11 +247,8 @@ } scoped_refptr<InputContext> input_context = feature_processor_state.input_context(); - std::string input_name = custom_input.name(); - auto custom_input_iter = custom_input.additional_args().find("name"); - if (custom_input_iter != custom_input.additional_args().end()) { - input_name = custom_input_iter->second; - } + std::string input_name = + metadata_utils::GetInputKeyForInputContextCustomInput(custom_input); std::optional<processing::ProcessedValue> input_context_value; if (input_context) {
diff --git a/components/segmentation_platform/internal/metadata/metadata_utils.cc b/components/segmentation_platform/internal/metadata/metadata_utils.cc index cd0e559..61fdbbed 100644 --- a/components/segmentation_platform/internal/metadata/metadata_utils.cc +++ b/components/segmentation_platform/internal/metadata/metadata_utils.cc
@@ -588,6 +588,40 @@ return client_result; } +std::string GetInputKeyForInputContextCustomInput( + const proto::CustomInput& custom_input) { + std::string input_name = custom_input.name(); + DCHECK_EQ(custom_input.fill_policy(), + proto::CustomInput::FILL_FROM_INPUT_CONTEXT); + auto custom_input_iter = custom_input.additional_args().find("name"); + if (custom_input_iter != custom_input.additional_args().end()) { + input_name = custom_input_iter->second; + } + return input_name; +} + +std::set<std::string> GetInputKeysForMetadata( + const proto::SegmentationModelMetadata& metadata) { + std::set<std::string> input_keys; + for (const auto& feature : metadata.input_features()) { + if (feature.has_custom_input()) { + // This only gets keys needed for FILL_FROM_INPUT_CONTEXT, consider adding + // other data sources keys. + if (feature.custom_input().fill_policy() == + proto::CustomInput::FILL_FROM_INPUT_CONTEXT) { + input_keys.insert( + GetInputKeyForInputContextCustomInput(feature.custom_input())); + } + } else if (feature.has_sql_feature()) { + for (const auto& bind_value : feature.sql_feature().bind_values()) { + input_keys.insert( + GetInputKeyForInputContextCustomInput(bind_value.value())); + } + } + } + return input_keys; +} + bool ConfigUsesLegacyOutput(const Config* config) { return (config->segments.size() >= 1 && SegmentUsesLegacyOutput(config->segments.begin()->first));
diff --git a/components/segmentation_platform/internal/metadata/metadata_utils.h b/components/segmentation_platform/internal/metadata/metadata_utils.h index c503479b..5f9ee994 100644 --- a/components/segmentation_platform/internal/metadata/metadata_utils.h +++ b/components/segmentation_platform/internal/metadata/metadata_utils.h
@@ -5,6 +5,8 @@ #ifndef COMPONENTS_SEGMENTATION_PLATFORM_INTERNAL_METADATA_METADATA_UTILS_H_ #define COMPONENTS_SEGMENTATION_PLATFORM_INTERNAL_METADATA_METADATA_UTILS_H_ +#include <set> + #include "base/time/time.h" #include "components/segmentation_platform/internal/database/signal_key.h" #include "components/segmentation_platform/internal/execution/processing/query_processor.h" @@ -160,6 +162,14 @@ proto::PredictionResult pred_result, base::Time timestamp); +// Returns input key name for FILL_FROM_INPUT_CONTEXT feature. +std::string GetInputKeyForInputContextCustomInput( + const proto::CustomInput& custom_input); + +// Gets all input_context keys needed for the `metadata`. +std::set<std::string> GetInputKeysForMetadata( + const proto::SegmentationModelMetadata& metadata); + // Returns true if config has not migrated to multi output and uses legacy // output. bool ConfigUsesLegacyOutput(const Config* config);
diff --git a/components/segmentation_platform/internal/metadata/metadata_utils_unittest.cc b/components/segmentation_platform/internal/metadata/metadata_utils_unittest.cc index 5bf735c..c1e2d92 100644 --- a/components/segmentation_platform/internal/metadata/metadata_utils_unittest.cc +++ b/components/segmentation_platform/internal/metadata/metadata_utils_unittest.cc
@@ -12,10 +12,12 @@ #include "base/metrics/metrics_hashes.h" #include "components/segmentation_platform/internal/database/ukm_types.h" #include "components/segmentation_platform/internal/execution/processing/query_processor.h" +#include "components/segmentation_platform/internal/metadata/metadata_writer.h" #include "components/segmentation_platform/internal/post_processor/post_processing_test_utils.h" #include "components/segmentation_platform/public/proto/aggregation.pb.h" #include "components/segmentation_platform/public/proto/model_metadata.pb.h" #include "components/segmentation_platform/public/proto/segmentation_platform.pb.h" +#include "components/segmentation_platform/public/types/processed_value.h" #include "testing/gmock/include/gmock/gmock.h" #include "testing/gtest/include/gtest/gtest.h" @@ -920,6 +922,41 @@ EXPECT_EQ("output", expected[0].name()); } +TEST_F(MetadataUtilsTest, GetInputKeysForMetadata) { + constexpr char kSqlQuery[] = "some sql query with three bind value ? ? ?"; + std::array<MetadataWriter::CustomInput::Arg, 1> kBindValueArg1{ + std::make_pair("name", "sql_input_1")}; + std::array<MetadataWriter::CustomInput::Arg, 1> kBindValueArg2{ + std::make_pair("name", "sql_input_2")}; + MetadataWriter::BindValue custom_input1{ + proto::SqlFeature::BindValue::DOUBLE, + {.tensor_length = 1, + .fill_policy = proto::CustomInput::FILL_FROM_INPUT_CONTEXT, + .arg = kBindValueArg1.data(), + .arg_size = kBindValueArg1.size()}}; + MetadataWriter::BindValue custom_input2{ + proto::SqlFeature::BindValue::BOOL, + {.tensor_length = 2, + .fill_policy = proto::CustomInput::FILL_FROM_INPUT_CONTEXT, + .arg = kBindValueArg2.data(), + .arg_size = kBindValueArg2.size()}}; + + proto::SegmentationModelMetadata metadata; + MetadataWriter writer(&metadata); + MetadataWriter::SqlFeature feature{.sql = kSqlQuery}; + writer.AddSqlFeature(feature, {custom_input1, custom_input2}); + + writer.AddFromInputContext("input_id", "custom_input1"); + writer.AddFromInputContext("input_id", "custom_input2"); + + std::set<std::string> all_inputs = + metadata_utils::GetInputKeysForMetadata(metadata); + + EXPECT_THAT(all_inputs, + testing::UnorderedElementsAre("sql_input_1", "sql_input_2", + "custom_input1", "custom_input2")); +} + TEST_F(MetadataUtilsTest, ConfigUsesLegacyOutput) { auto config = test_utils::CreateTestConfig( "test_key", SegmentId::OPTIMIZATION_TARGET_SEGMENTATION_FEED_USER);
diff --git a/components/segmentation_platform/internal/segmentation_platform_service_impl.cc b/components/segmentation_platform/internal/segmentation_platform_service_impl.cc index b8e1238..cf532855 100644 --- a/components/segmentation_platform/internal/segmentation_platform_service_impl.cc +++ b/components/segmentation_platform/internal/segmentation_platform_service_impl.cc
@@ -180,6 +180,13 @@ segmentation_key, prediction_options, input_context, std::move(callback)); } +void SegmentationPlatformServiceImpl::GetInputKeysForModel( + const std::string& segmentation_key, + InputContextKeysCallback callback) { + request_dispatcher_->GetInputKeysForModel(segmentation_key, + std::move(callback)); +} + SegmentSelectionResult SegmentationPlatformServiceImpl::GetCachedSegmentResult( const std::string& segmentation_key) { CHECK(segment_selectors_.find(segmentation_key) != segment_selectors_.end());
diff --git a/components/segmentation_platform/internal/segmentation_platform_service_impl.h b/components/segmentation_platform/internal/segmentation_platform_service_impl.h index e6b1979..ed9c5a436 100644 --- a/components/segmentation_platform/internal/segmentation_platform_service_impl.h +++ b/components/segmentation_platform/internal/segmentation_platform_service_impl.h
@@ -116,6 +116,8 @@ const PredictionOptions& prediction_options, scoped_refptr<InputContext> input_context, AnnotatedNumericResultCallback callback) override; + void GetInputKeysForModel(const std::string& segmentation_key, + InputContextKeysCallback callback) override; SegmentSelectionResult GetCachedSegmentResult( const std::string& segmentation_key) override; void CollectTrainingData(SegmentId segment_id,
diff --git a/components/segmentation_platform/internal/selection/request_dispatcher.cc b/components/segmentation_platform/internal/selection/request_dispatcher.cc index fe6ce6c..025ac9c 100644 --- a/components/segmentation_platform/internal/selection/request_dispatcher.cc +++ b/components/segmentation_platform/internal/selection/request_dispatcher.cc
@@ -15,12 +15,14 @@ #include "base/task/single_thread_task_runner.h" #include "base/time/time.h" #include "components/segmentation_platform/internal/database/config_holder.h" +#include "components/segmentation_platform/internal/metadata/metadata_utils.h" #include "components/segmentation_platform/internal/post_processor/post_processor.h" #include "components/segmentation_platform/internal/selection/request_handler.h" #include "components/segmentation_platform/internal/selection/segment_result_provider.h" #include "components/segmentation_platform/internal/stats.h" #include "components/segmentation_platform/public/config.h" #include "components/segmentation_platform/public/prediction_options.h" +#include "components/segmentation_platform/public/proto/model_metadata.pb.h" #include "components/segmentation_platform/public/proto/segmentation_platform.pb.h" #include "components/segmentation_platform/public/result.h" @@ -324,6 +326,31 @@ std::move(wrapped_callback)); } +void RequestDispatcher::GetInputKeysForModel( + const std::string& segmentation_key, + InputContextKeysCallback callback) { + Config* config = + storage_service_->config_holder()->GetConfigForSegmentationKey( + segmentation_key); + CHECK(config); + CHECK_EQ(config->segments.size(), 1u); + + const SegmentInfo* default_info = + storage_service_->segment_info_database()->GetCachedSegmentInfo( + config->segments.begin()->first, ModelSource::DEFAULT_MODEL_SOURCE); + const SegmentInfo* server_info = + storage_service_->segment_info_database()->GetCachedSegmentInfo( + config->segments.begin()->first, ModelSource::SERVER_MODEL_SOURCE); + + std::set<std::string> inputs = + metadata_utils::GetInputKeysForMetadata(default_info->model_metadata()); + std::set<std::string> inputs_server = + metadata_utils::GetInputKeysForMetadata(server_info->model_metadata()); + + inputs.merge(std::move(inputs_server)); + std::move(callback).Run(std::move(inputs)); +} + int RequestDispatcher::GetPendingActionCountForTesting() { int total_actions = 0; for (auto& actions_for_key : pending_actions_) {
diff --git a/components/segmentation_platform/internal/selection/request_dispatcher.h b/components/segmentation_platform/internal/selection/request_dispatcher.h index e46e6249..73f7a81f 100644 --- a/components/segmentation_platform/internal/selection/request_dispatcher.h +++ b/components/segmentation_platform/internal/selection/request_dispatcher.h
@@ -60,6 +60,10 @@ scoped_refptr<InputContext> input_context, AnnotatedNumericResultCallback callback); + // Client API. See `SegmentationPlatformService::GetInputKeysForModel`. + void GetInputKeysForModel(const std::string& segmentation_key, + InputContextKeysCallback callback); + // For testing only. int GetPendingActionCountForTesting(); void set_request_handler_for_testing(
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 295a690e..efea363 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
@@ -183,6 +183,8 @@ /** Merge all inputs from another InputContext object. */ public void mergeFrom(InputContext other) { + if (other == null) return; + for (Entry<String, ProcessedValue> entry : other.mMetadata.entrySet()) { assert !mMetadata.containsKey(entry.getKey()); mMetadata.put(entry.getKey(), entry.getValue());
diff --git a/components/segmentation_platform/public/android/java/src/org/chromium/components/segmentation_platform/SegmentationPlatformService.java b/components/segmentation_platform/public/android/java/src/org/chromium/components/segmentation_platform/SegmentationPlatformService.java index 5671bed..f726463a 100644 --- a/components/segmentation_platform/public/android/java/src/org/chromium/components/segmentation_platform/SegmentationPlatformService.java +++ b/components/segmentation_platform/public/android/java/src/org/chromium/components/segmentation_platform/SegmentationPlatformService.java
@@ -6,15 +6,18 @@ import org.chromium.base.Callback; +import java.util.Set; + /** - * SegmentationPlatformService is the core class for segmentation platform. - * It represents a native SegmentationPlatformService object in Java. + * SegmentationPlatformService is the core class for segmentation platform. It represents a native + * SegmentationPlatformService object in Java. */ public interface SegmentationPlatformService { /** * Called to get the segment selection result asynchronously from the backend. + * * @param segmentationKey The key to be used to distinguish between different segmentation - * usages. + * usages. * @param callback The callback that contains the result of segmentation. */ void getSelectedSegment(String segmentationKey, Callback<SegmentSelectionResult> callback); @@ -37,11 +40,20 @@ /** * Called to get the segment selection result synchronously from the backend. + * * @deprecated in favor of {@link getSelectedSegment}. * @param segmentationKey The key to be used to distinguish between different segmentation - * usages. + * usages. * @return The result of segment selection */ @Deprecated SegmentSelectionResult getCachedSegmentResult(String segmentationKey); + + /** + * Gets the list of input keys needed for a segmentation key. + * + * @param segmentationKey The key to fetch keys for. + * @param callback Callback with the list of input keys. + */ + void getInputKeysForModel(String segmentationKey, Callback<Set<String>> callback); }
diff --git a/components/segmentation_platform/public/input_context.h b/components/segmentation_platform/public/input_context.h index 67b3e5e..83fb7a8a 100644 --- a/components/segmentation_platform/public/input_context.h +++ b/components/segmentation_platform/public/input_context.h
@@ -6,9 +6,11 @@ #define COMPONENTS_SEGMENTATION_PLATFORM_PUBLIC_INPUT_CONTEXT_H_ #include <optional> +#include <set> #include <string_view> #include "base/containers/flat_map.h" +#include "base/functional/callback_forward.h" #include "base/memory/ref_counted.h" #include "components/segmentation_platform/public/types/processed_value.h" @@ -47,6 +49,9 @@ // For logging and debug purposes. std::ostream& operator<<(std::ostream& out, const InputContext& value); +using InputContextKeysCallback = + base::OnceCallback<void(std::set<std::string>)>; + } // namespace segmentation_platform #endif // COMPONENTS_SEGMENTATION_PLATFORM_PUBLIC_INPUT_CONTEXT_H_
diff --git a/components/segmentation_platform/public/segmentation_platform_service.h b/components/segmentation_platform/public/segmentation_platform_service.h index f79e67e..f434848 100644 --- a/components/segmentation_platform/public/segmentation_platform_service.h +++ b/components/segmentation_platform/public/segmentation_platform_service.h
@@ -114,6 +114,11 @@ virtual SegmentSelectionResult GetCachedSegmentResult( const std::string& segmentation_key) = 0; + // Get the set of input keys required for the model execution for + // `segmentation_key`. + virtual void GetInputKeysForModel(const std::string& segmentation_key, + InputContextKeysCallback callback) = 0; + // Called to trigger training data collection for a given request ID. Request // IDs are given when |GetClassificationResult| is called. `param` is used to // pass one additional output feature to be uploaded as training data. It is
diff --git a/components/segmentation_platform/public/testing/mock_segmentation_platform_service.h b/components/segmentation_platform/public/testing/mock_segmentation_platform_service.h index b53e9d4..86aef10 100644 --- a/components/segmentation_platform/public/testing/mock_segmentation_platform_service.h +++ b/components/segmentation_platform/public/testing/mock_segmentation_platform_service.h
@@ -41,6 +41,10 @@ scoped_refptr<InputContext>, AnnotatedNumericResultCallback)); MOCK_METHOD(void, + GetInputKeysForModel, + (const std::string& segmentation_key, + InputContextKeysCallback callback)); + MOCK_METHOD(void, CollectTrainingData, (proto::SegmentId, TrainingRequestId,
diff --git a/components/sharing_message/ios_push/sharing_ios_push_sender.cc b/components/sharing_message/ios_push/sharing_ios_push_sender.cc index 941bb8d2..b401943 100644 --- a/components/sharing_message/ios_push/sharing_ios_push_sender.cc +++ b/components/sharing_message/ios_push/sharing_ios_push_sender.cc
@@ -103,6 +103,10 @@ SharingChannelType::kIosPush)); } +void SharingIOSPushSender::ClearPendingMessages() { + // There are no pending messages for iOS push notifications. +} + bool SharingIOSPushSender::CanSendSendTabPushMessage( const syncer::DeviceInfo& target_device_info) { bool custom_passphrase_enabled =
diff --git a/components/sharing_message/ios_push/sharing_ios_push_sender.h b/components/sharing_message/ios_push/sharing_ios_push_sender.h index f2d987a2..85742515d 100644 --- a/components/sharing_message/ios_push/sharing_ios_push_sender.h +++ b/components/sharing_message/ios_push/sharing_ios_push_sender.h
@@ -66,6 +66,7 @@ const SharingTargetDeviceInfo& device, sync_pb::UnencryptedSharingMessage message, SendMessageCallback callback) override; + void ClearPendingMessages() override; bool CanSendSendTabPushMessage(const syncer::DeviceInfo& target_device_info);
diff --git a/components/sharing_message/sharing_fcm_sender.cc b/components/sharing_message/sharing_fcm_sender.cc index 379f1f6..c54dcdff 100644 --- a/components/sharing_message/sharing_fcm_sender.cc +++ b/components/sharing_message/sharing_fcm_sender.cc
@@ -4,6 +4,8 @@ #include "components/sharing_message/sharing_fcm_sender.h" +#include "base/check_is_test.h" +#include "base/feature_list.h" #include "base/functional/callback.h" #include "base/functional/callback_helpers.h" #include "base/metrics/histogram_functions.h" @@ -23,6 +25,16 @@ #include "components/sync_device_info/device_info_tracker.h" #include "components/sync_device_info/local_device_info_provider.h" +namespace { + +// When enabled, sharing messages sent using sync may be postponed until sync +// is active. +BASE_FEATURE(kSharingPostponeFcmMessageSending, + "SharingPostponeFcmMessageSending", + base::FEATURE_ENABLED_BY_DEFAULT); + +} // namespace + SharingFCMSender::SharingFCMSender( std::unique_ptr<WebPushSender> web_push_sender, SharingMessageBridge* sharing_message_bridge, @@ -39,7 +51,14 @@ gcm_driver_(gcm_driver), device_info_tracker_(device_info_tracker), local_device_info_provider_(local_device_info_provider), - sync_service_(sync_service) {} + sync_service_(sync_service) { + // `sync_service_` can be null in tests. + if (sync_service_) { + sync_service_observation_.Observe(sync_service_); + } else { + CHECK_IS_TEST(); + } +} SharingFCMSender::~SharingFCMSender() = default; @@ -96,17 +115,32 @@ SendMessageCallback callback) { TRACE_EVENT0("sharing", "SharingFCMSender::SendMessageToFcmTarget"); - bool canSendViaSync = - sync_service_->GetActiveDataTypes().Has(syncer::SHARING_MESSAGE) && - !fcm_configuration.sender_id_fcm_token().empty() && - !fcm_configuration.sender_id_p256dh().empty() && - !fcm_configuration.sender_id_auth_secret().empty(); - bool canSendViaVapid = !fcm_configuration.vapid_fcm_token().empty() && - !fcm_configuration.vapid_p256dh().empty() && - !fcm_configuration.vapid_auth_secret().empty(); + bool can_send_via_sync = !fcm_configuration.sender_id_fcm_token().empty() && + !fcm_configuration.sender_id_p256dh().empty() && + !fcm_configuration.sender_id_auth_secret().empty(); + bool can_send_via_vapid = !fcm_configuration.vapid_fcm_token().empty() && + !fcm_configuration.vapid_p256dh().empty() && + !fcm_configuration.vapid_auth_secret().empty(); - base::UmaHistogramBoolean("Sharing.SendMessageUsingSync", canSendViaSync); - if (canSendViaSync) { + if (can_send_via_sync && + !sync_service_->GetActiveDataTypes().Has(syncer::SHARING_MESSAGE) && + base::FeatureList::IsEnabled(kSharingPostponeFcmMessageSending)) { + // If the message can be sent via sync, wait until SHARING_MESSAGE is + // syncing. This should be rare and mostly for the ACK messages. + // TODO(crbug.com/40253551): delete pending messages by TTL. + pending_messages_.emplace_back(fcm_configuration, time_to_live, + std::move(message), std::move(callback)); + return; + } + + base::UmaHistogramBoolean( + "Sharing.SendMessageUsingSync", + can_send_via_sync && + sync_service_->GetActiveDataTypes().Has(syncer::SHARING_MESSAGE)); + + // Fallback to sending via Vapid if SHARING_MESSAGE is not syncing. + if (can_send_via_sync && + sync_service_->GetActiveDataTypes().Has(syncer::SHARING_MESSAGE)) { message.set_message_id(base::Uuid::GenerateRandomV4().AsLowercaseString()); EncryptMessage( kSharingSenderID, fcm_configuration.sender_id_p256dh(), @@ -119,8 +153,7 @@ return; } - // TODO(crbug.com/40253551): This is used for the ACK messages only. - if (canSendViaVapid) { + if (can_send_via_vapid) { std::optional<SharingSyncPreference::FCMRegistration> fcm_registration = sync_preference_->GetFCMRegistration(); if (!fcm_registration || !fcm_registration->authorized_entity) { @@ -169,6 +202,32 @@ server_channel.configuration(), message.message_id())); } +void SharingFCMSender::ClearPendingMessages() { + pending_messages_.clear(); +} + +void SharingFCMSender::OnStateChanged(syncer::SyncService* sync_service) { + // Replay pending messages once SHARING_MESSAGE is active. + if (pending_messages_.empty() || + !sync_service->GetActiveDataTypes().Has(syncer::SHARING_MESSAGE)) { + return; + } + + std::vector<PendingMessage> pending_messages = std::move(pending_messages_); + pending_messages_.clear(); + + for (PendingMessage& pending_message : pending_messages) { + SendMessageToFcmTarget(pending_message.fcm_configuration, + pending_message.time_to_live, + std::move(pending_message.message), + std::move(pending_message.callback)); + } +} + +void SharingFCMSender::OnSyncShutdown(syncer::SyncService* sync_service) { + sync_service_observation_.Reset(); +} + void SharingFCMSender::EncryptMessage(const std::string& authorized_entity, const std::string& p256dh, const std::string& auth_secret, @@ -387,3 +446,21 @@ SharingMessageBridge* sharing_message_bridge) { sharing_message_bridge_ = sharing_message_bridge; } + +SharingFCMSender::PendingMessage::PendingMessage( + components_sharing_message::FCMChannelConfiguration fcm_configuration, + base::TimeDelta time_to_live, + SharingMessage message, + SendMessageCallback callback) + : fcm_configuration(std::move(fcm_configuration)), + time_to_live(time_to_live), + message(std::move(message)), + callback(std::move(callback)) {} + +SharingFCMSender::PendingMessage::~PendingMessage() = default; + +SharingFCMSender::PendingMessage::PendingMessage(PendingMessage&& other) = + default; + +SharingFCMSender::PendingMessage& SharingFCMSender::PendingMessage::operator=( + PendingMessage&& other) = default;
diff --git a/components/sharing_message/sharing_fcm_sender.h b/components/sharing_message/sharing_fcm_sender.h index 5768c2d47..9c5aa370 100644 --- a/components/sharing_message/sharing_fcm_sender.h +++ b/components/sharing_message/sharing_fcm_sender.h
@@ -13,12 +13,14 @@ #include "base/functional/callback_forward.h" #include "base/memory/raw_ptr.h" #include "base/memory/weak_ptr.h" +#include "base/scoped_observation.h" #include "base/time/time.h" #include "components/sharing_message/proto/sharing_message.pb.h" #include "components/sharing_message/sharing_message_sender.h" #include "components/sharing_message/sharing_send_message_result.h" #include "components/sharing_message/web_push/web_push_sender.h" #include "components/sync/protocol/unencrypted_sharing_message.pb.h" +#include "components/sync/service/sync_service_observer.h" #include "components/sync_device_info/device_info.h" namespace gcm { @@ -43,7 +45,8 @@ class VapidKeyManager; // Responsible for sending FCM messages within Sharing infrastructure. -class SharingFCMSender : public SharingMessageSender::SendMessageDelegate { +class SharingFCMSender : public SharingMessageSender::SendMessageDelegate, + public syncer::SyncServiceObserver { public: using SharingMessage = components_sharing_message::SharingMessage; using SendMessageCallback = @@ -84,6 +87,14 @@ SharingMessage message, SendMessageCallback callback); + // Removes any pending messages that are waiting for the sync service to + // initialize. This must be called if the device is unregistered. + void ClearPendingMessages() override; + + // syncer::SyncServiceObserver overrides. + void OnStateChanged(syncer::SyncService* sync_service) override; + void OnSyncShutdown(syncer::SyncService* sync_service) override; + // Used to inject fake WebPushSender in integration tests. void SetWebPushSenderForTesting( std::unique_ptr<WebPushSender> web_push_sender); @@ -157,6 +168,28 @@ const raw_ptr<const syncer::LocalDeviceInfoProvider> local_device_info_provider_; const raw_ptr<syncer::SyncService> sync_service_; + base::ScopedObservation<syncer::SyncService, SharingFCMSender> + sync_service_observation_{this}; + + // Pending messages that are waiting for the sync service to initialize. + struct PendingMessage { + PendingMessage( + components_sharing_message::FCMChannelConfiguration fcm_configuration, + base::TimeDelta time_to_live, + SharingMessage message, + SendMessageCallback callback); + PendingMessage(const PendingMessage& other) = delete; + PendingMessage& operator=(const PendingMessage& other) = delete; + PendingMessage(PendingMessage&& other); + PendingMessage& operator=(PendingMessage&& other); + ~PendingMessage(); + + components_sharing_message::FCMChannelConfiguration fcm_configuration; + base::TimeDelta time_to_live; + SharingMessage message; + SendMessageCallback callback; + }; + std::vector<PendingMessage> pending_messages_; base::WeakPtrFactory<SharingFCMSender> weak_ptr_factory_{this}; };
diff --git a/components/sharing_message/sharing_fcm_sender_unittest.cc b/components/sharing_message/sharing_fcm_sender_unittest.cc index 5bb04bf1..d0ace737 100644 --- a/components/sharing_message/sharing_fcm_sender_unittest.cc +++ b/components/sharing_message/sharing_fcm_sender_unittest.cc
@@ -10,6 +10,7 @@ #include "base/callback_list.h" #include "base/memory/ptr_util.h" #include "base/memory/raw_ptr.h" +#include "base/test/mock_callback.h" #include "components/gcm_driver/crypto/gcm_encryption_result.h" #include "components/gcm_driver/fake_gcm_driver.h" #include "components/sharing_message/features.h" @@ -32,6 +33,8 @@ namespace { +using testing::_; + const char kMessageId[] = "message_id"; const char kVapidFcmToken[] = "vapid_fcm_token"; const char kVapidP256dh[] = "vapid_p256dh"; @@ -146,7 +149,8 @@ private: std::optional<sync_pb::SharingMessageSpecifics> specifics_; - sync_pb::SharingMessageCommitError::ErrorCode error_code_; + sync_pb::SharingMessageCommitError::ErrorCode error_code_ = + sync_pb::SharingMessageCommitError::NONE; }; class MockVapidKeyManager : public VapidKeyManager { @@ -199,9 +203,7 @@ syncer::TestSyncService test_sync_service_; SharingFCMSender sharing_fcm_sender_; -}; // namespace - -} // namespace +}; TEST_F(SharingFCMSenderTest, NoFcmRegistration) { // Make sync unavailable to force using vapid. @@ -213,13 +215,11 @@ ON_CALL(vapid_key_manager_, GetOrCreateKey()) .WillByDefault(testing::Return(vapid_key.get())); + // Populate only vapid channel to force using it. components_sharing_message::FCMChannelConfiguration fcm_channel; fcm_channel.set_vapid_fcm_token(kVapidFcmToken); fcm_channel.set_vapid_p256dh(kVapidP256dh); fcm_channel.set_vapid_auth_secret(kVapidAuthSecret); - fcm_channel.set_sender_id_fcm_token(kSenderIdFcmToken); - fcm_channel.set_sender_id_p256dh(kSenderIdP256dh); - fcm_channel.set_sender_id_auth_secret(kSenderIdAuthSecret); SharingSendMessageResult result; std::optional<std::string> message_id; @@ -246,13 +246,11 @@ ON_CALL(vapid_key_manager_, GetOrCreateKey()) .WillByDefault(testing::Return(nullptr)); + // Populate only vapid channel to force using it. components_sharing_message::FCMChannelConfiguration fcm_channel; fcm_channel.set_vapid_fcm_token(kVapidFcmToken); fcm_channel.set_vapid_p256dh(kVapidP256dh); fcm_channel.set_vapid_auth_secret(kVapidAuthSecret); - fcm_channel.set_sender_id_fcm_token(kSenderIdFcmToken); - fcm_channel.set_sender_id_p256dh(kSenderIdP256dh); - fcm_channel.set_sender_id_auth_secret(kSenderIdAuthSecret); SharingSendMessageResult result; std::optional<std::string> message_id; @@ -540,3 +538,83 @@ EXPECT_TRUE(message_id); EXPECT_EQ(SharingChannelType::kServer, channel_type); } + +TEST_F(SharingFCMSenderTest, ShouldPostponeSendingMessageViaSync) { + // Make sync unavailable to simulate browser startup. + test_sync_service_.SetFailedDataTypes({syncer::SHARING_MESSAGE}); + sync_prefs_.SetFCMRegistration(SharingSyncPreference::FCMRegistration( + kAuthorizedEntity, base::Time::Now())); + + std::unique_ptr<crypto::ECPrivateKey> vapid_key = + crypto::ECPrivateKey::Create(); + ON_CALL(vapid_key_manager_, GetOrCreateKey()) + .WillByDefault(testing::Return(vapid_key.get())); + + components_sharing_message::FCMChannelConfiguration fcm_channel; + fcm_channel.set_vapid_fcm_token(kVapidFcmToken); + fcm_channel.set_vapid_p256dh(kVapidP256dh); + fcm_channel.set_vapid_auth_secret(kVapidAuthSecret); + fcm_channel.set_sender_id_fcm_token(kSenderIdFcmToken); + fcm_channel.set_sender_id_p256dh(kSenderIdP256dh); + fcm_channel.set_sender_id_auth_secret(kSenderIdAuthSecret); + + // Since sending via Sync is available in principle, the message should not be + // sent via Vapid, even if SHARING_MESSAGE isn't active yet. + base::MockCallback< + SharingMessageSender::SendMessageDelegate::SendMessageCallback> + callback; + EXPECT_CALL(callback, Run).Times(0); + components_sharing_message::SharingMessage sharing_message; + sharing_message.mutable_ack_message(); + sharing_fcm_sender_.SendMessageToFcmTarget( + fcm_channel, base::Seconds(kTtlSeconds), std::move(sharing_message), + callback.Get()); + testing::Mock::VerifyAndClearExpectations(&callback); + + // Once SHARING_MESSAGE becomes active, the message should be sent. + EXPECT_CALL(callback, Run(SharingSendMessageResult::kSuccessful, _, + SharingChannelType::kFcmSenderId)); + test_sync_service_.SetFailedDataTypes({}); + test_sync_service_.FireStateChanged(); +} + +TEST_F(SharingFCMSenderTest, ShouldClearPendingMessages) { + // Make sync unavailable to simulate browser startup. + test_sync_service_.SetFailedDataTypes({syncer::SHARING_MESSAGE}); + sync_prefs_.SetFCMRegistration(SharingSyncPreference::FCMRegistration( + kAuthorizedEntity, base::Time::Now())); + + std::unique_ptr<crypto::ECPrivateKey> vapid_key = + crypto::ECPrivateKey::Create(); + ON_CALL(vapid_key_manager_, GetOrCreateKey()) + .WillByDefault(testing::Return(vapid_key.get())); + + components_sharing_message::FCMChannelConfiguration fcm_channel; + fcm_channel.set_vapid_fcm_token(kVapidFcmToken); + fcm_channel.set_vapid_p256dh(kVapidP256dh); + fcm_channel.set_vapid_auth_secret(kVapidAuthSecret); + fcm_channel.set_sender_id_fcm_token(kSenderIdFcmToken); + fcm_channel.set_sender_id_p256dh(kSenderIdP256dh); + fcm_channel.set_sender_id_auth_secret(kSenderIdAuthSecret); + + // Since sending via Sync is available in principle, the message should not be + // sent via Vapid, even if SHARING_MESSAGE isn't active yet. + base::MockCallback< + SharingMessageSender::SendMessageDelegate::SendMessageCallback> + callback; + EXPECT_CALL(callback, Run).Times(0); + components_sharing_message::SharingMessage sharing_message; + sharing_message.mutable_ack_message(); + sharing_fcm_sender_.SendMessageToFcmTarget( + fcm_channel, base::Seconds(kTtlSeconds), std::move(sharing_message), + callback.Get()); + + // Clear any pending messages and verify that nothing is sent once + // SHARING_MESSAGE becomes active (the `callback` above should not be called). + sharing_fcm_sender_.ClearPendingMessages(); + + test_sync_service_.SetFailedDataTypes({}); + test_sync_service_.FireStateChanged(); +} + +} // namespace
diff --git a/components/sharing_message/sharing_message_sender.cc b/components/sharing_message/sharing_message_sender.cc index 11a7b26..f65a1de 100644 --- a/components/sharing_message/sharing_message_sender.cc +++ b/components/sharing_message/sharing_message_sender.cc
@@ -246,6 +246,12 @@ DCHECK(result.second) << "Delegate type already registered"; } +void SharingMessageSender::ClearPendingMessages() { + for (const auto& [_, delegate] : send_delegates_) { + delegate->ClearPendingMessages(); + } +} + SharingFCMSender* SharingMessageSender::GetFCMSenderForTesting() const { auto delegate_iter = send_delegates_.find(DelegateType::kFCM); DCHECK(delegate_iter != send_delegates_.end());
diff --git a/components/sharing_message/sharing_message_sender.h b/components/sharing_message/sharing_message_sender.h index e0bce21..e4cdae80 100644 --- a/components/sharing_message/sharing_message_sender.h +++ b/components/sharing_message/sharing_message_sender.h
@@ -64,6 +64,8 @@ const SharingTargetDeviceInfo& device, sync_pb::UnencryptedSharingMessage message, SendMessageCallback callback) = 0; + + virtual void ClearPendingMessages() = 0; }; // Delegate type used to send a message. @@ -98,6 +100,9 @@ void RegisterSendDelegate(DelegateType type, std::unique_ptr<SendMessageDelegate> delegate); + // Clears all pending messages for all delegates. + void ClearPendingMessages(); + // Returns SharingFCMSender for testing. SharingFCMSender* GetFCMSenderForTesting() const;
diff --git a/components/sharing_message/sharing_service.cc b/components/sharing_message/sharing_service.cc index 9c6ac25a..41aad7ea 100644 --- a/components/sharing_message/sharing_service.cc +++ b/components/sharing_message/sharing_service.cc
@@ -258,6 +258,7 @@ void SharingService::UnregisterDevice() { sharing_device_registration_->UnregisterDevice(base::BindOnce( &SharingService::OnDeviceUnregistered, weak_ptr_factory_.GetWeakPtr())); + message_sender_->ClearPendingMessages(); } void SharingService::OnDeviceRegistered(
diff --git a/components/subresource_filter/content/browser/content_subresource_filter_throttle_manager.cc b/components/subresource_filter/content/browser/content_subresource_filter_throttle_manager.cc index 6493c244..fb57dbd 100644 --- a/components/subresource_filter/content/browser/content_subresource_filter_throttle_manager.cc +++ b/components/subresource_filter/content/browser/content_subresource_filter_throttle_manager.cc
@@ -896,7 +896,7 @@ CHECK(owner_frame, base::NotFatalUntil::M129); auto* fenced_frame_root = content::RenderFrameHost::FromPlaceholderToken( - owner_frame->GetProcess()->GetID(), placeholder_token); + owner_frame->GetProcess()->GetDeprecatedID(), placeholder_token); if (!fenced_frame_root) return;
diff --git a/components/url_formatter/url_fixer_unittest.cc b/components/url_formatter/url_fixer_unittest.cc index 3a56b208..f4a944e 100644 --- a/components/url_formatter/url_fixer_unittest.cc +++ b/components/url_formatter/url_fixer_unittest.cc
@@ -12,6 +12,7 @@ #include <stddef.h> #include <stdlib.h> +#include <array> #include <string> #include "base/base_paths.h" @@ -39,7 +40,7 @@ const url::Component ref; }; -static const SegmentCase segment_cases[] = { +const auto segment_cases = std::to_array<SegmentCase>({ { "http://www.google.com/", "http", url::Component(0, 4), // scheme url::Component(), // username @@ -268,7 +269,7 @@ url::Component(43, 17), // query url::Component(), // ref }, -}; +}); typedef testing::Test URLFixerTest;
diff --git a/components/url_formatter/url_formatter_unittest.cc b/components/url_formatter/url_formatter_unittest.cc index a88fc75..9876db3 100644 --- a/components/url_formatter/url_formatter_unittest.cc +++ b/components/url_formatter/url_formatter_unittest.cc
@@ -12,6 +12,7 @@ #include <stddef.h> #include <string.h> +#include <array> #include <vector> #include "base/logging.h" @@ -82,7 +83,7 @@ TEST(UrlFormatterTest, FormatUrl) { FormatUrlTypes default_format_type = kFormatUrlOmitUsernamePassword; // clang-format off - const UrlTestData tests[] = { + const auto tests = std::to_array<UrlTestData>({ {"Empty URL", "", default_format_type, base::UnescapeRule::NORMAL, L"", 0}, {"Simple URL", "http://www.google.com/", default_format_type, @@ -424,7 +425,7 @@ kFormatUrlOmitDefaults | kFormatUrlTrimAfterHost, base::UnescapeRule::NORMAL, L"file:///Users/homedirname/folder/file.pdf/", 7}, - }; + }); // clang-format on for (size_t i = 0; i < std::size(tests); ++i) {
diff --git a/components/url_matcher/url_matcher_factory_unittest.cc b/components/url_matcher/url_matcher_factory_unittest.cc index fbed100..815fe9c 100644 --- a/components/url_matcher/url_matcher_factory_unittest.cc +++ b/components/url_matcher/url_matcher_factory_unittest.cc
@@ -2,15 +2,11 @@ // 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/40285824): Remove this and convert code to safer constructs. -#pragma allow_unsafe_buffers -#endif - #include "components/url_matcher/url_matcher_factory.h" #include <stddef.h> +#include <array> #include <memory> #include <utility> @@ -151,9 +147,13 @@ base::Value::Dict invalid_condition5; invalid_condition5.Set(keys::kSchemesKey, std::move(scheme_list)); - const base::Value::Dict* invalid_conditions[] = { - &invalid_condition1, &invalid_condition2, &invalid_condition3, - &invalid_condition4, &invalid_condition5}; + auto invalid_conditions = std::to_array<const base::Value::Dict*>({ + &invalid_condition1, + &invalid_condition2, + &invalid_condition3, + &invalid_condition4, + &invalid_condition5, + }); for (size_t i = 0; i < std::size(invalid_conditions); ++i) { error.clear(); @@ -296,45 +296,49 @@ kIsPathCaseSensitive || kIsQueryCaseSensitive; - const UrlConditionCaseTest case_tests[] = { - UrlConditionCaseTest(keys::kSchemesKey, true, kScheme, kSchemeUpper, - kIsSchemeCaseSensitive, kIsSchemeLowerCaseEnforced, - url), - UrlConditionCaseTest(keys::kHostContainsKey, false, kHost, kHostUpper, - kIsHostCaseSensitive, kIsHostLowerCaseEnforced, url), - UrlConditionCaseTest(keys::kHostEqualsKey, false, kHost, kHostUpper, - kIsHostCaseSensitive, kIsHostLowerCaseEnforced, url), - UrlConditionCaseTest(keys::kHostPrefixKey, false, kHost, kHostUpper, - kIsHostCaseSensitive, kIsHostLowerCaseEnforced, url), - UrlConditionCaseTest(keys::kHostSuffixKey, false, kHost, kHostUpper, - kIsHostCaseSensitive, kIsHostLowerCaseEnforced, url), - UrlConditionCaseTest(keys::kPathContainsKey, false, kPath, kPathUpper, - kIsPathCaseSensitive, kIsPathLowerCaseEnforced, url), - UrlConditionCaseTest(keys::kPathEqualsKey, false, kPath, kPathUpper, - kIsPathCaseSensitive, kIsPathLowerCaseEnforced, url), - UrlConditionCaseTest(keys::kPathPrefixKey, false, kPath, kPathUpper, - kIsPathCaseSensitive, kIsPathLowerCaseEnforced, url), - UrlConditionCaseTest(keys::kPathSuffixKey, false, kPath, kPathUpper, - kIsPathCaseSensitive, kIsPathLowerCaseEnforced, url), - UrlConditionCaseTest(keys::kQueryContainsKey, false, kQuery, kQueryUpper, - kIsQueryCaseSensitive, kIsQueryLowerCaseEnforced, url), - UrlConditionCaseTest(keys::kQueryEqualsKey, false, kQuery, kQueryUpper, - kIsQueryCaseSensitive, kIsQueryLowerCaseEnforced, url), - UrlConditionCaseTest(keys::kQueryPrefixKey, false, kQuery, kQueryUpper, - kIsQueryCaseSensitive, kIsQueryLowerCaseEnforced, url), - UrlConditionCaseTest(keys::kQuerySuffixKey, false, kQuery, kQueryUpper, - kIsQueryCaseSensitive, kIsQueryLowerCaseEnforced, url), - // Excluding kURLMatchesKey because case sensitivity can be specified in the - // RE2 expression. - UrlConditionCaseTest(keys::kURLContainsKey, false, kUrl, kUrlUpper, - kIsUrlCaseSensitive, kIsUrlLowerCaseEnforced, url), - UrlConditionCaseTest(keys::kURLEqualsKey, false, kUrl, kUrlUpper, - kIsUrlCaseSensitive, kIsUrlLowerCaseEnforced, url), - UrlConditionCaseTest(keys::kURLPrefixKey, false, kUrl, kUrlUpper, - kIsUrlCaseSensitive, kIsUrlLowerCaseEnforced, url), - UrlConditionCaseTest(keys::kURLSuffixKey, false, kUrl, kUrlUpper, - kIsUrlCaseSensitive, kIsUrlLowerCaseEnforced, url), - }; + const auto case_tests = std::to_array<UrlConditionCaseTest>({ + UrlConditionCaseTest(keys::kSchemesKey, true, kScheme, kSchemeUpper, + kIsSchemeCaseSensitive, kIsSchemeLowerCaseEnforced, + url), + UrlConditionCaseTest(keys::kHostContainsKey, false, kHost, kHostUpper, + kIsHostCaseSensitive, kIsHostLowerCaseEnforced, url), + UrlConditionCaseTest(keys::kHostEqualsKey, false, kHost, kHostUpper, + kIsHostCaseSensitive, kIsHostLowerCaseEnforced, url), + UrlConditionCaseTest(keys::kHostPrefixKey, false, kHost, kHostUpper, + kIsHostCaseSensitive, kIsHostLowerCaseEnforced, url), + UrlConditionCaseTest(keys::kHostSuffixKey, false, kHost, kHostUpper, + kIsHostCaseSensitive, kIsHostLowerCaseEnforced, url), + UrlConditionCaseTest(keys::kPathContainsKey, false, kPath, kPathUpper, + kIsPathCaseSensitive, kIsPathLowerCaseEnforced, url), + UrlConditionCaseTest(keys::kPathEqualsKey, false, kPath, kPathUpper, + kIsPathCaseSensitive, kIsPathLowerCaseEnforced, url), + UrlConditionCaseTest(keys::kPathPrefixKey, false, kPath, kPathUpper, + kIsPathCaseSensitive, kIsPathLowerCaseEnforced, url), + UrlConditionCaseTest(keys::kPathSuffixKey, false, kPath, kPathUpper, + kIsPathCaseSensitive, kIsPathLowerCaseEnforced, url), + UrlConditionCaseTest(keys::kQueryContainsKey, false, kQuery, kQueryUpper, + kIsQueryCaseSensitive, kIsQueryLowerCaseEnforced, + url), + UrlConditionCaseTest(keys::kQueryEqualsKey, false, kQuery, kQueryUpper, + kIsQueryCaseSensitive, kIsQueryLowerCaseEnforced, + url), + UrlConditionCaseTest(keys::kQueryPrefixKey, false, kQuery, kQueryUpper, + kIsQueryCaseSensitive, kIsQueryLowerCaseEnforced, + url), + UrlConditionCaseTest(keys::kQuerySuffixKey, false, kQuery, kQueryUpper, + kIsQueryCaseSensitive, kIsQueryLowerCaseEnforced, + url), + // Excluding kURLMatchesKey because case sensitivity can be specified in + // the RE2 expression. + UrlConditionCaseTest(keys::kURLContainsKey, false, kUrl, kUrlUpper, + kIsUrlCaseSensitive, kIsUrlLowerCaseEnforced, url), + UrlConditionCaseTest(keys::kURLEqualsKey, false, kUrl, kUrlUpper, + kIsUrlCaseSensitive, kIsUrlLowerCaseEnforced, url), + UrlConditionCaseTest(keys::kURLPrefixKey, false, kUrl, kUrlUpper, + kIsUrlCaseSensitive, kIsUrlLowerCaseEnforced, url), + UrlConditionCaseTest(keys::kURLSuffixKey, false, kUrl, kUrlUpper, + kIsUrlCaseSensitive, kIsUrlLowerCaseEnforced, url), + }); for (size_t i = 0; i < std::size(case_tests); ++i) { SCOPED_TRACE(base::StringPrintf("Iteration: %" PRIuS, i));
diff --git a/components/url_matcher/url_matcher_unittest.cc b/components/url_matcher/url_matcher_unittest.cc index 29ddcbc..50c39134 100644 --- a/components/url_matcher/url_matcher_unittest.cc +++ b/components/url_matcher/url_matcher_unittest.cc
@@ -2,15 +2,11 @@ // 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/40285824): Remove this and convert code to safer constructs. -#pragma allow_unsafe_buffers -#endif - #include "components/url_matcher/url_matcher.h" #include <stddef.h> +#include <array> #include <memory> #include <utility> @@ -186,7 +182,7 @@ MatcherStringPattern p1("foobar.com", 1); MatcherStringPattern p2("foobar.com", 2); // The first component of each test is expected to be < than the second. - URLMatcherCondition test_smaller[][2] = { + auto test_smaller = std::to_array<std::array<URLMatcherCondition, 2>>({ {URLMatcherCondition(URLMatcherCondition::HOST_PREFIX, &p1), URLMatcherCondition(URLMatcherCondition::HOST_SUFFIX, &p1)}, {URLMatcherCondition(URLMatcherCondition::HOST_PREFIX, &p1), @@ -195,19 +191,19 @@ URLMatcherCondition(URLMatcherCondition::HOST_PREFIX, &p2)}, {URLMatcherCondition(URLMatcherCondition::HOST_PREFIX, &p1), URLMatcherCondition(URLMatcherCondition::HOST_SUFFIX, nullptr)}, - }; + }); for (size_t i = 0; i < std::size(test_smaller); ++i) { EXPECT_TRUE(test_smaller[i][0] < test_smaller[i][1]) << "Test " << i << " of test_smaller failed"; EXPECT_FALSE(test_smaller[i][1] < test_smaller[i][0]) << "Test " << i << " of test_smaller failed"; } - URLMatcherCondition test_equal[][2] = { + auto test_equal = std::to_array<std::array<URLMatcherCondition, 2>>({ {URLMatcherCondition(URLMatcherCondition::HOST_PREFIX, &p1), URLMatcherCondition(URLMatcherCondition::HOST_PREFIX, &p1)}, {URLMatcherCondition(URLMatcherCondition::HOST_PREFIX, nullptr), URLMatcherCondition(URLMatcherCondition::HOST_PREFIX, nullptr)}, - }; + }); for (size_t i = 0; i < std::size(test_equal); ++i) { EXPECT_FALSE(test_equal[i][0] < test_equal[i][1]) << "Test " << i << " of test_equal failed";
diff --git a/components/visitedlink/browser/visitedlink_event_listener.cc b/components/visitedlink/browser/visitedlink_event_listener.cc index 8cc7f40..7dc0afc6 100644 --- a/components/visitedlink/browser/visitedlink_event_listener.cc +++ b/components/visitedlink/browser/visitedlink_event_listener.cc
@@ -291,8 +291,9 @@ } } - updaters_[rph->GetID()] = std::make_unique<VisitedLinkUpdater>(rph->GetID()); - updaters_[rph->GetID()]->SendVisitedLinkTable(&table_region_); + updaters_[rph->GetDeprecatedID()] = + std::make_unique<VisitedLinkUpdater>(rph->GetDeprecatedID()); + updaters_[rph->GetDeprecatedID()]->SendVisitedLinkTable(&table_region_); if (!host_observation_.IsObservingSource(rph)) { host_observation_.AddObservation(rph); @@ -302,7 +303,7 @@ void VisitedLinkEventListener::RenderProcessHostDestroyed( content::RenderProcessHost* host) { if (host_observation_.IsObservingSource(host)) { - updaters_.erase(host->GetID()); + updaters_.erase(host->GetDeprecatedID()); host_observation_.RemoveObservation(host); } } @@ -310,7 +311,7 @@ void VisitedLinkEventListener::RenderWidgetHostVisibilityChanged( content::RenderWidgetHost* rwh, bool became_visible) { - int child_id = rwh->GetProcess()->GetID(); + int child_id = rwh->GetProcess()->GetDeprecatedID(); if (updaters_.count(child_id)) { updaters_[child_id]->Update(); }
diff --git a/components/viz/service/display_embedder/buffer_queue.cc b/components/viz/service/display_embedder/buffer_queue.cc index b5ff200b..e33ec55 100644 --- a/components/viz/service/display_embedder/buffer_queue.cc +++ b/components/viz/service/display_embedder/buffer_queue.cc
@@ -91,6 +91,10 @@ if (in_flight_buffer) { available_buffers_.push_back(std::move(in_flight_buffer)); } + // Since skipped swap can sometimes be due to failure to draw to the primary + // plane, add full damage to ensure that primary plane buffers are fully + // redrawn. + UpdateBufferDamage(gfx::Rect(size_)); } if (buffers_can_be_purged_) {
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 f883b5ab..1bde219 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
@@ -489,6 +489,9 @@ bool draw_success = scoped_output_device_paint_->Draw( std::move(graphite_recording), std::move(on_finished)); RecordInsertRenderPassRecording(draw_success); + if (!draw_success) { + draw_render_pass_failed_ = true; + } return; } @@ -708,7 +711,11 @@ local_scoped_access->NeedGraphiteContextSubmit()) { graphite_context()->submit(); } - skia_representation->SetCleared(); + if (insert_success) { + skia_representation->SetCleared(); + } else { + draw_render_pass_failed_ = true; + } return; } @@ -2273,7 +2280,12 @@ return; } - if (frame) { + // If drawing to any render pass failed then skip presenting incorrect + // content. + bool skip_present = draw_render_pass_failed_; + draw_render_pass_failed_ = false; + + if (!skip_present && frame) { if (presenter_) { presenter_->SetChoreographerVsyncIdForNextFrame( frame->choreographer_vsync_id); @@ -2293,12 +2305,14 @@ gl::ScopedProgressReporter scoped_process_reporter( context_state_->progress_reporter()); output_device_->Submit( - sync_cpu, base::BindOnce(&SkiaOutputSurfaceImplOnGpu::PostSubmit, - base::Unretained(this), std::move(frame))); + sync_cpu, + base::BindOnce(&SkiaOutputSurfaceImplOnGpu::PostSubmit, + base::Unretained(this), std::move(frame), skip_present)); } void SkiaOutputSurfaceImplOnGpu::PostSubmit( - std::optional<OutputSurfaceFrame> frame) { + std::optional<OutputSurfaceFrame> frame, + bool skip_present) { promise_image_access_helper_.EndAccess(); scoped_output_device_paint_.reset(); overlay_pass_accesses_.clear(); @@ -2329,7 +2343,6 @@ #else DCHECK(pending_release_fence_cbs_.empty()); #endif - if (frame) { TRACE_EVENT( "viz,benchmark,graphics.pipeline", "Graphics.Pipeline", @@ -2344,57 +2357,10 @@ data->set_display_trace_id(swap_trace_id); }); - if (waiting_for_full_damage_) { - // If we're using partial swap, we need to check whether the sub-buffer - // rect is actually the entire screen, but otherwise, the damage is - // always the full surface. - if (frame->sub_buffer_rect && capabilities().supports_post_sub_buffer && - frame->sub_buffer_rect->size() != size_) { - output_device_->SwapBuffersSkipped(buffer_presented_callback_, - std::move(*frame)); - overlays_.clear(); - destroy_after_swap_.clear(); - return; - } - waiting_for_full_damage_ = false; + if (skip_present || !PresentFrame(std::move(*frame))) { + output_device_->SwapBuffersSkipped(buffer_presented_callback_, + std::move(*frame)); } - - if (frame->sub_buffer_rect) { - if (capabilities().supports_post_sub_buffer) { - if (capabilities().output_surface_origin == - gfx::SurfaceOrigin::kBottomLeft) { - frame->sub_buffer_rect->set_y(size_.height() - - frame->sub_buffer_rect->y() - - frame->sub_buffer_rect->height()); - } - } - } - - if (overlays_.size()) { - for (auto& each : overlays_) { - DBG_DRAW_RECT("output.overlay.rect", each.display_rect); - DBG_DRAW_RECT("output.overlay.damage", each.damage_rect); - } - TRACE_EVENT1("viz", "SkiaOutputDevice->ScheduleOverlays()", - "num_overlays", overlays_.size()); - constexpr base::TimeDelta kHistogramMinTime = base::Microseconds(5); - constexpr base::TimeDelta kHistogramMaxTime = base::Milliseconds(16); - constexpr int kHistogramTimeBuckets = 50; - base::TimeTicks start_time = base::TimeTicks::Now(); - - output_device_->ScheduleOverlays(std::move(overlays_)); - - UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES( - "Gpu.OutputSurface.ScheduleOverlaysUs", - base::TimeTicks::Now() - start_time, kHistogramMinTime, - kHistogramMaxTime, kHistogramTimeBuckets); - } - - output_device_->SetViewportSize(frame->size); - - DCHECK(!frame->sub_buffer_rect || capabilities().supports_post_sub_buffer); - output_device_->Present(frame->sub_buffer_rect, buffer_presented_callback_, - std::move(*frame)); } // Reset the overlay plane information even on skipped swap. @@ -2407,6 +2373,58 @@ 200); } +bool SkiaOutputSurfaceImplOnGpu::PresentFrame(OutputSurfaceFrame frame) { + if (waiting_for_full_damage_) { + // If we're using partial swap, we need to check whether the sub-buffer + // rect is actually the entire screen, but otherwise, the damage is + // always the full surface. + if (frame.sub_buffer_rect && capabilities().supports_post_sub_buffer && + frame.sub_buffer_rect->size() != size_) { + return false; + } + waiting_for_full_damage_ = false; + } + + if (frame.sub_buffer_rect) { + if (capabilities().supports_post_sub_buffer) { + if (capabilities().output_surface_origin == + gfx::SurfaceOrigin::kBottomLeft) { + frame.sub_buffer_rect->set_y(size_.height() - + frame.sub_buffer_rect->y() - + frame.sub_buffer_rect->height()); + } + } + } + + if (!overlays_.empty()) { + for (auto& each : overlays_) { + DBG_DRAW_RECT("output.overlay.rect", each.display_rect); + DBG_DRAW_RECT("output.overlay.damage", each.damage_rect); + } + TRACE_EVENT1("viz", "SkiaOutputDevice->ScheduleOverlays()", "num_overlays", + overlays_.size()); + constexpr base::TimeDelta kHistogramMinTime = base::Microseconds(5); + constexpr base::TimeDelta kHistogramMaxTime = base::Milliseconds(16); + constexpr int kHistogramTimeBuckets = 50; + base::TimeTicks start_time = base::TimeTicks::Now(); + + output_device_->ScheduleOverlays(std::move(overlays_)); + + UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES( + "Gpu.OutputSurface.ScheduleOverlaysUs", + base::TimeTicks::Now() - start_time, kHistogramMinTime, + kHistogramMaxTime, kHistogramTimeBuckets); + } + + output_device_->SetViewportSize(frame.size); + + DCHECK(!frame.sub_buffer_rect || capabilities().supports_post_sub_buffer); + output_device_->Present(frame.sub_buffer_rect, buffer_presented_callback_, + std::move(frame)); + + return true; +} + #if BUILDFLAG(IS_WIN) void SkiaOutputSurfaceImplOnGpu::AddChildWindowToBrowser( gpu::SurfaceHandle child_window) {
diff --git a/components/viz/service/display_embedder/skia_output_surface_impl_on_gpu.h b/components/viz/service/display_embedder/skia_output_surface_impl_on_gpu.h index c17d8fcf..0da46d9 100644 --- a/components/viz/service/display_embedder/skia_output_surface_impl_on_gpu.h +++ b/components/viz/service/display_embedder/skia_output_surface_impl_on_gpu.h
@@ -333,7 +333,11 @@ void DestroyCopyOutputResourcesOnGpuThread(const gpu::Mailbox& mailbox); void SwapBuffersInternal(std::optional<OutputSurfaceFrame> frame); - void PostSubmit(std::optional<OutputSurfaceFrame> frame); + void PostSubmit(std::optional<OutputSurfaceFrame> frame, bool skip_present); + + // Attempts presentation for `frame`. Returns false if presentation was + // skipped. + bool PresentFrame(OutputSurfaceFrame frame); GrDirectContext* gr_context() const { return context_state_->gr_context(); } @@ -574,6 +578,8 @@ // Micro-optimization to get to issuing GPU SwapBuffers as soon as possible. std::vector<sk_sp<GrDeferredDisplayList>> destroy_after_swap_; + bool draw_render_pass_failed_ = false; + bool waiting_for_full_damage_ = false; int num_readbacks_pending_ = 0; @@ -590,7 +596,7 @@ // external semaphore type has copy transference, which means importing // semaphores has to be delayed until submission. base::circular_deque<std::pair<GrBackendSemaphore, - base::OnceCallback<void(gfx::GpuFenceHandle)>>> + base::OnceCallback<void(gfx::GpuFenceHandle)>>> pending_release_fence_cbs_; // A cache of solid color image mailboxes so we can destroy them in the
diff --git a/components/web_cache/browser/web_cache_manager.cc b/components/web_cache/browser/web_cache_manager.cc index bca40c0f..d7e31f7 100644 --- a/components/web_cache/browser/web_cache_manager.cc +++ b/components/web_cache/browser/web_cache_manager.cc
@@ -19,7 +19,7 @@ // cannot observe the creation of the previous processes. for (auto iter(content::RenderProcessHost::AllHostsIterator()); !iter.IsAtEnd(); iter.Advance()) { - Add(iter.GetCurrentValue()->GetID()); + Add(iter.GetCurrentValue()->GetDeprecatedID()); } } WebCacheManager::~WebCacheManager() = default; @@ -53,7 +53,7 @@ void WebCacheManager::OnRenderProcessHostCreated( content::RenderProcessHost* process_host) { - Add(process_host->GetID()); + Add(process_host->GetDeprecatedID()); rph_observations_.AddObservation(process_host); } @@ -66,7 +66,7 @@ void WebCacheManager::RenderProcessHostDestroyed( content::RenderProcessHost* process_host) { rph_observations_.RemoveObservation(process_host); - Remove(process_host->GetID()); + Remove(process_host->GetDeprecatedID()); } void WebCacheManager::ClearCacheForProcess(int render_process_id) {
diff --git a/content/app/content_main.cc b/content/app/content_main.cc index c37f18d..bcd78e5 100644 --- a/content/app/content_main.cc +++ b/content/app/content_main.cc
@@ -307,7 +307,6 @@ #endif #if BUILDFLAG(IS_IOS) - base::ConditionVariable::InitializeFeatures(); base::CommandLine* command_line = base::CommandLine::ForCurrentProcess(); command_line->AppendSwitch(switches::kEnableViewport); command_line->AppendSwitch(switches::kUseMobileUserAgent);
diff --git a/content/browser/BUILD.gn b/content/browser/BUILD.gn index f2289398..763690d13 100644 --- a/content/browser/BUILD.gn +++ b/content/browser/BUILD.gn
@@ -2337,6 +2337,8 @@ "webid/identity_registry.h", "webid/idp_network_request_manager.cc", "webid/idp_network_request_manager.h", + "webid/sd_jwt.cc", + "webid/sd_jwt.h", "webid/webid_utils.cc", "webid/webid_utils.h", "webrtc/webrtc_connections_observer.cc",
diff --git a/content/browser/accessibility/dump_accessibility_node_browsertest.cc b/content/browser/accessibility/dump_accessibility_node_browsertest.cc index cfd74b34..3f5ccac 100644 --- a/content/browser/accessibility/dump_accessibility_node_browsertest.cc +++ b/content/browser/accessibility/dump_accessibility_node_browsertest.cc
@@ -633,6 +633,10 @@ RunAccNameTest(FILE_PATH_LITERAL("name-from-content.html")); } +IN_PROC_BROWSER_TEST_P(DumpAccessibilityAccNameTest, NameFromContentDfn) { + RunAccNameTest(FILE_PATH_LITERAL("name-from-content-dfn.html")); +} + IN_PROC_BROWSER_TEST_P(DumpAccessibilityAccNameTest, NameFromContentOfLabel) { RunAccNameTest(FILE_PATH_LITERAL("name-from-content-of-label.html")); } @@ -649,6 +653,10 @@ "name-from-content-of-labelledby-elements-one-of-which-is-hidden.html")); } +IN_PROC_BROWSER_TEST_P(DumpAccessibilityAccNameTest, NameFromContentTermRole) { + RunAccNameTest(FILE_PATH_LITERAL("name-from-content-term-role.html")); +} + IN_PROC_BROWSER_TEST_P(DumpAccessibilityAccNameTest, NameFromContentWhitespaceBlockChildren) { RunAccNameTest(
diff --git a/content/browser/android/content_view_statics.cc b/content/browser/android/content_view_statics.cc index d549b82b..c980590 100644 --- a/content/browser/android/content_view_statics.cc +++ b/content/browser/android/content_view_statics.cc
@@ -59,7 +59,7 @@ content::RenderProcessHost::AllHostsIterator()); !i.IsAtEnd(); i.Advance()) { content::RenderProcessHost* host = i.GetCurrentValue(); - if (suspended_processes_.insert(host->GetID()).second) { + if (suspended_processes_.insert(host->GetDeprecatedID()).second) { host->AddObserver(this); host->GetRendererInterface()->SetWebKitSharedTimersSuspended(true); } @@ -79,7 +79,7 @@ private: void StopWatching(content::RenderProcessHost* host) { - auto pos = suspended_processes_.find(host->GetID()); + auto pos = suspended_processes_.find(host->GetDeprecatedID()); CHECK(pos != suspended_processes_.end(), base::NotFatalUntil::M130); host->RemoveObserver(this); suspended_processes_.erase(pos);
diff --git a/content/browser/android/synchronous_compositor_host.cc b/content/browser/android/synchronous_compositor_host.cc index 84b3cf99..bd0c95b0 100644 --- a/content/browser/android/synchronous_compositor_host.cc +++ b/content/browser/android/synchronous_compositor_host.cc
@@ -192,7 +192,7 @@ SynchronousCompositorControlHost::Create( host_control.InitWithNewPipeAndPassReceiver(), bridge_, - rwhva_->GetRenderWidgetHost()->GetProcess()->GetID()); + rwhva_->GetRenderWidgetHost()->GetProcess()->GetDeprecatedID()); rwhva_->host()->GetWidgetInputHandler()->AttachSynchronousCompositor( std::move(host_control), host_receiver_.BindNewEndpointAndPassRemote(), sync_compositor_.BindNewEndpointAndPassReceiver()); @@ -286,7 +286,7 @@ if (compositor_frame) { if (!local_surface_id || !local_surface_id->is_valid()) { bad_message::ReceivedBadMessage( - rwhva_->GetRenderWidgetHost()->GetProcess()->GetID(), + rwhva_->GetRenderWidgetHost()->GetProcess()->GetDeprecatedID(), bad_message::SYNC_COMPOSITOR_NO_LOCAL_SURFACE_ID); return SynchronousCompositor::Frame(); }
diff --git a/content/browser/android/web_contents_observer_proxy.cc b/content/browser/android/web_contents_observer_proxy.cc index 43bdc31..7527b74 100644 --- a/content/browser/android/web_contents_observer_proxy.cc +++ b/content/browser/android/web_contents_observer_proxy.cc
@@ -77,7 +77,7 @@ RenderFrameHost* render_frame_host) { JNIEnv* env = AttachCurrentThread(); Java_WebContentsObserverProxy_renderFrameCreated( - env, java_observer_, render_frame_host->GetProcess()->GetID(), + env, java_observer_, render_frame_host->GetProcess()->GetDeprecatedID(), render_frame_host->GetRoutingID()); } @@ -85,7 +85,7 @@ RenderFrameHost* render_frame_host) { JNIEnv* env = AttachCurrentThread(); Java_WebContentsObserverProxy_renderFrameDeleted( - env, java_observer_, render_frame_host->GetProcess()->GetID(), + env, java_observer_, render_frame_host->GetProcess()->GetDeprecatedID(), render_frame_host->GetRoutingID()); } @@ -182,7 +182,7 @@ if (render_frame_host->IsInPrimaryMainFrame()) { Java_WebContentsObserverProxy_didFinishLoadInPrimaryMainFrame( - env, java_observer_, render_frame_host->GetProcess()->GetID(), + env, java_observer_, render_frame_host->GetProcess()->GetDeprecatedID(), render_frame_host->GetRoutingID(), url::GURLAndroid::FromNativeGURL(env, url), assume_valid, static_cast<jint>(render_frame_host->GetLifecycleState())); @@ -194,7 +194,7 @@ if (render_frame_host->IsInPrimaryMainFrame()) { Java_WebContentsObserverProxy_documentLoadedInPrimaryMainFrame( AttachCurrentThread(), java_observer_, - render_frame_host->GetProcess()->GetID(), + render_frame_host->GetProcess()->GetDeprecatedID(), render_frame_host->GetRoutingID(), static_cast<jint>(render_frame_host->GetLifecycleState())); }
diff --git a/content/browser/back_forward_cache_features_browsertest.cc b/content/browser/back_forward_cache_features_browsertest.cc index 5582b42..98d8d0e2 100644 --- a/content/browser/back_forward_cache_features_browsertest.cc +++ b/content/browser/back_forward_cache_features_browsertest.cc
@@ -3923,7 +3923,7 @@ auto reason = BackForwardCacheDisable::DisabledReason( BackForwardCacheDisable::DisabledReasonId::kWebBluetooth); EXPECT_TRUE(tester.IsDisabledForFrameWithReason( - current_frame_host()->GetProcess()->GetID(), + current_frame_host()->GetProcess()->GetDeprecatedID(), current_frame_host()->GetRoutingID(), reason)); ASSERT_TRUE(NavigateToURL(web_contents(), @@ -4048,7 +4048,7 @@ ? BackForwardCacheDisable::DisabledReasonId::kSerial : BackForwardCacheDisable::DisabledReasonId::kWebUSB; EXPECT_TRUE(tester.IsDisabledForFrameWithReason( - main_rfh->GetProcess()->GetID(), main_rfh->GetRoutingID(), + main_rfh->GetProcess()->GetDeprecatedID(), main_rfh->GetRoutingID(), BackForwardCacheDisable::DisabledReason(expected_reason))); } @@ -5150,7 +5150,7 @@ auto reason = BackForwardCacheDisable::DisabledReason( BackForwardCacheDisable::DisabledReasonId::kFileChooser); EXPECT_TRUE(tester.IsDisabledForFrameWithReason( - rfh_a->GetProcess()->GetID(), rfh_a->GetRoutingID(), reason)); + rfh_a->GetProcess()->GetDeprecatedID(), rfh_a->GetRoutingID(), reason)); // 5) Navigate to B having the file chooser open. EXPECT_TRUE(NavigateToURL(shell(), url_b));
diff --git a/content/browser/background_fetch/background_fetch_service_impl.cc b/content/browser/background_fetch/background_fetch_service_impl.cc index 08d61df..f2e3d9f 100644 --- a/content/browser/background_fetch/background_fetch_service_impl.cc +++ b/content/browser/background_fetch/background_fetch_service_impl.cc
@@ -117,7 +117,7 @@ : background_fetch_context_(std::move(background_fetch_context)), storage_key_(std::move(storage_key)), isolation_info_(std::move(isolation_info)), - rph_id_(rph->GetID()), + rph_id_(rph->GetDeprecatedID()), rfh_id_(rfh ? rfh->GetGlobalId() : GlobalRenderFrameHostId()) { DCHECK_CURRENTLY_ON(BrowserThread::UI); DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
diff --git a/content/browser/background_sync/background_sync_manager_unittest.cc b/content/browser/background_sync/background_sync_manager_unittest.cc index 8572c0d68..ee390c46 100644 --- a/content/browser/background_sync/background_sync_manager_unittest.cc +++ b/content/browser/background_sync/background_sync_manager_unittest.cc
@@ -378,14 +378,14 @@ if (GetBackgroundSyncType(options) == blink::mojom::BackgroundSyncType::ONE_SHOT) { test_background_sync_manager()->Register( - sw_registration_id, render_process_host_->GetID(), options, + sw_registration_id, render_process_host_->GetDeprecatedID(), options, base::BindOnce(&BackgroundSyncManagerTest:: StatusAndOneShotSyncRegistrationCallback, base::Unretained(this), &was_called)); callback_status = &one_shot_sync_callback_status_; } else { test_background_sync_manager()->Register( - sw_registration_id, render_process_host_->GetID(), options, + sw_registration_id, render_process_host_->GetDeprecatedID(), options, base::BindOnce(&BackgroundSyncManagerTest:: StatusAndPeriodicSyncRegistrationCallback, base::Unretained(this), &was_called)); @@ -851,7 +851,8 @@ InitSyncEventTest(); bool was_called = false; test_background_sync_manager()->Register( - sw_registration_id_1_, render_process_host_->GetID(), sync_options_1_, + sw_registration_id_1_, render_process_host_->GetDeprecatedID(), + sync_options_1_, base::BindOnce( &BackgroundSyncManagerTest::StatusAndOneShotSyncRegistrationCallback, base::Unretained(this), &was_called)); @@ -874,7 +875,8 @@ InitSyncEventTest(); bool was_called = false; test_background_sync_manager()->Register( - sw_registration_id_1_, render_process_host_->GetID(), sync_options_1_, + sw_registration_id_1_, render_process_host_->GetDeprecatedID(), + sync_options_1_, base::BindOnce( &BackgroundSyncManagerTest::StatusAndOneShotSyncRegistrationCallback, base::Unretained(this), &was_called)); @@ -1168,7 +1170,8 @@ bool register_called = false; bool get_registrations_called = false; test_background_sync_manager()->Register( - sw_registration_id_1_, render_process_host_->GetID(), sync_options_1_, + sw_registration_id_1_, render_process_host_->GetDeprecatedID(), + sync_options_1_, base::BindOnce( &BackgroundSyncManagerTest::StatusAndOneShotSyncRegistrationCallback, base::Unretained(this), ®ister_called)); @@ -1211,7 +1214,8 @@ test_background_sync_manager()->set_delay_backend(true); bool callback_called = false; test_background_sync_manager()->Register( - sw_registration_id_1_, render_process_host_->GetID(), sync_options_2_, + sw_registration_id_1_, render_process_host_->GetDeprecatedID(), + sync_options_2_, base::BindOnce( &BackgroundSyncManagerTest::StatusAndPeriodicSyncRegistrationCallback, base::Unretained(this), &callback_called));
diff --git a/content/browser/background_sync/background_sync_registration_helper.cc b/content/browser/background_sync/background_sync_registration_helper.cc index 5b78c784..fc86a0d75 100644 --- a/content/browser/background_sync/background_sync_registration_helper.cc +++ b/content/browser/background_sync/background_sync_registration_helper.cc
@@ -19,7 +19,7 @@ BackgroundSyncContextImpl* background_sync_context, RenderProcessHost* render_process_host) : background_sync_context_(background_sync_context), - render_process_host_id_(render_process_host->GetID()) { + render_process_host_id_(render_process_host->GetDeprecatedID()) { DCHECK(background_sync_context_); }
diff --git a/content/browser/bad_message.cc b/content/browser/bad_message.cc index b78d3d8..5f9b1ad 100644 --- a/content/browser/bad_message.cc +++ b/content/browser/bad_message.cc
@@ -32,7 +32,7 @@ base::NumberToString(reason)); } -void ReceivedBadMessageOnUIThread(int render_process_id, +void ReceivedBadMessageOnUIThread(ChildProcessId render_process_id, BadMessageReason reason) { DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); RenderProcessHost* host = RenderProcessHost::FromID(render_process_id); @@ -53,6 +53,11 @@ } void ReceivedBadMessage(int render_process_id, BadMessageReason reason) { + ReceivedBadMessage(ChildProcessId(render_process_id), reason); +} + +void ReceivedBadMessage(ChildProcessId render_process_id, + BadMessageReason reason) { // We generate a crash dump here since generating one after posting to the UI // thread is less useful. LogBadMessage(reason);
diff --git a/content/browser/bad_message.h b/content/browser/bad_message.h index 0186278..48a7d00 100644 --- a/content/browser/bad_message.h +++ b/content/browser/bad_message.h
@@ -7,6 +7,7 @@ #include "base/debug/crash_logging.h" #include "content/common/buildflags.h" +#include "content/public/browser/child_process_id.h" namespace content { class BrowserMessageFilter; @@ -361,6 +362,11 @@ void ReceivedBadMessage(RenderProcessHost* host, BadMessageReason reason); // Equivalent to the above, but callable from any thread. +void ReceivedBadMessage(ChildProcessId render_process_id, + BadMessageReason reason); + +// TODO(crbug.com/379869738): Deprecated, please use ReceivedBadMessage with +// ChildProcessId above. void ReceivedBadMessage(int render_process_id, BadMessageReason reason); #if BUILDFLAG(CONTENT_ENABLE_LEGACY_IPC)
diff --git a/content/browser/blob_storage/file_backed_blob_factory_frame_impl.cc b/content/browser/blob_storage/file_backed_blob_factory_frame_impl.cc index c2eedc2..0ab173d 100644 --- a/content/browser/blob_storage/file_backed_blob_factory_frame_impl.cc +++ b/content/browser/blob_storage/file_backed_blob_factory_frame_impl.cc
@@ -19,7 +19,7 @@ receiver) : DocumentUserData<FileBackedBlobFactoryFrameImpl>(rfh), content::FileBackedBlobFactoryBase( - render_frame_host().GetProcess()->GetID()), + render_frame_host().GetProcess()->GetDeprecatedID()), receiver_(this, std::move(receiver)) { blob_storage_context_ = base::WrapRefCounted(ChromeBlobStorageContext::GetFor( render_frame_host().GetBrowserContext()));
diff --git a/content/browser/blob_storage/file_backed_blob_factory_frame_impl_unittest.cc b/content/browser/blob_storage/file_backed_blob_factory_frame_impl_unittest.cc index a63869a..7e12fde 100644 --- a/content/browser/blob_storage/file_backed_blob_factory_frame_impl_unittest.cc +++ b/content/browser/blob_storage/file_backed_blob_factory_frame_impl_unittest.cc
@@ -41,7 +41,7 @@ void SetUp() override { RenderViewHostImplTestHarness::SetUp(); - process_id_ = main_test_rfh()->GetProcess()->GetID(); + process_id_ = main_test_rfh()->GetProcess()->GetDeprecatedID(); FileBackedBlobFactoryFrameImpl::CreateForCurrentDocument( main_test_rfh(), factory_.BindNewEndpointAndPassDedicatedReceiver());
diff --git a/content/browser/browser_child_process_observer_browsertest.cc b/content/browser/browser_child_process_observer_browsertest.cc index ad6ba2d..14df7bb8 100644 --- a/content/browser/browser_child_process_observer_browsertest.cc +++ b/content/browser/browser_child_process_observer_browsertest.cc
@@ -203,7 +203,7 @@ ~TestProcessHost() override = default; // Returns the ID of the child process. - int GetId() { return process_->GetData().id; } + int GetID() { return process_->GetData().id; } // Binds to the test service on the child process and returns the bound // remote. @@ -321,7 +321,7 @@ IN_PROC_BROWSER_TEST_F(BrowserChildProcessObserverBrowserTest, MAYBE_LaunchAndForceShutdown) { base::WeakPtr<TestProcessHost> host = TestProcessHost::Create(); - int child_id = host->GetId(); + int child_id = host->GetID(); TestBrowserChildProcessObserver observer(child_id); @@ -361,7 +361,7 @@ IN_PROC_BROWSER_TEST_F(BrowserChildProcessObserverBrowserTest, LaunchAndDelete) { base::WeakPtr<TestProcessHost> host = TestProcessHost::Create(); - int child_id = host->GetId(); + int child_id = host->GetID(); TestBrowserChildProcessObserver observer(child_id); @@ -400,7 +400,7 @@ IN_PROC_BROWSER_TEST_F(BrowserChildProcessObserverBrowserTest, MAYBE_LaunchAndDisconnect) { base::WeakPtr<TestProcessHost> host = TestProcessHost::Create(); - int child_id = host->GetId(); + int child_id = host->GetID(); TestBrowserChildProcessObserver observer(child_id); @@ -446,7 +446,7 @@ IN_PROC_BROWSER_TEST_F(BrowserChildProcessObserverBrowserTest, MAYBE_LaunchAndCrash) { base::WeakPtr<TestProcessHost> host = TestProcessHost::Create(); - int child_id = host->GetId(); + int child_id = host->GetID(); TestBrowserChildProcessObserver observer(child_id); @@ -492,7 +492,7 @@ #if !BUILDFLAG(IS_POSIX) || BUILDFLAG(IS_MAC) IN_PROC_BROWSER_TEST_F(BrowserChildProcessObserverBrowserTest, LaunchFailed) { base::WeakPtr<TestProcessHost> host = TestProcessHost::Create(); - int child_id = host->GetId(); + int child_id = host->GetID(); #if BUILDFLAG(IS_WIN) // The Windows sandbox does not like the child process being a different @@ -557,7 +557,7 @@ IN_PROC_BROWSER_TEST_F(BrowserChildProcessObserverBrowserTest, LaunchPreSpawnFailed) { base::WeakPtr<TestProcessHost> host = TestProcessHost::Create(); - int child_id = host->GetId(); + int child_id = host->GetID(); TestBrowserChildProcessObserver observer(child_id);
diff --git a/content/browser/browser_interface_binders.cc b/content/browser/browser_interface_binders.cc index 83c91ff..1cf2dc4 100644 --- a/content/browser/browser_interface_binders.cc +++ b/content/browser/browser_interface_binders.cc
@@ -807,7 +807,7 @@ if (BrowserMainLoop::GetInstance()) { map->Add<midi::mojom::MidiSessionProvider>( base::BindRepeating(&MidiHost::BindReceiver, - host->GetProcess()->GetID(), + host->GetProcess()->GetDeprecatedID(), BrowserMainLoop::GetInstance()->midi_service()), GetIOThreadTaskRunner({})); } @@ -851,7 +851,8 @@ map->Add<media::mojom::SpeechRecognizer>( base::BindRepeating(&SpeechRecognitionDispatcherHost::Create, - host->GetProcess()->GetID(), host->GetRoutingID()), + host->GetProcess()->GetDeprecatedID(), + host->GetRoutingID()), GetIOThreadTaskRunner({})); map->Add<blink::mojom::SpeechSynthesis>(base::BindRepeating( @@ -899,7 +900,7 @@ map->Add<blink::mojom::FileUtilitiesHost>( base::BindRepeating(FileUtilitiesHostImpl::Create, - host->GetProcess()->GetID()), + host->GetProcess()->GetDeprecatedID()), base::ThreadPool::CreateSequencedTaskRunner( {base::MayBlock(), base::TaskPriority::USER_VISIBLE})); @@ -1330,7 +1331,7 @@ map->Add<blink::mojom::FileUtilitiesHost>( base::BindRepeating(FileUtilitiesHostImpl::Create, - host->GetProcessHost()->GetID()), + host->GetProcessHost()->GetDeprecatedID()), base::ThreadPool::CreateSequencedTaskRunner( {base::MayBlock(), base::TaskPriority::USER_VISIBLE})); @@ -1479,7 +1480,7 @@ // |SharedWorkerHost::broker_|. map->Add<blink::mojom::FileUtilitiesHost>( base::BindRepeating(FileUtilitiesHostImpl::Create, - host->GetProcessHost()->GetID()), + host->GetProcessHost()->GetDeprecatedID()), base::ThreadPool::CreateSequencedTaskRunner( {base::MayBlock(), base::TaskPriority::USER_VISIBLE}));
diff --git a/content/browser/browser_main_loop.cc b/content/browser/browser_main_loop.cc index e1fe0497..2f5efe0 100644 --- a/content/browser/browser_main_loop.cc +++ b/content/browser/browser_main_loop.cc
@@ -16,6 +16,7 @@ #include "base/base_switches.h" #include "base/callback_list.h" #include "base/command_line.h" +#include "base/debug/leak_annotations.h" #include "base/feature_list.h" #include "base/functional/bind.h" #include "base/location.h"
diff --git a/content/browser/child_process_security_policy_impl.cc b/content/browser/child_process_security_policy_impl.cc index d4d1572..01dab09 100644 --- a/content/browser/child_process_security_policy_impl.cc +++ b/content/browser/child_process_security_policy_impl.cc
@@ -1571,8 +1571,8 @@ DCHECK_CURRENTLY_ON(BrowserThread::UI); return CanReadRequestBody( - process->GetID(), process->GetStoragePartition()->GetFileSystemContext(), - body); + process->GetDeprecatedID(), + process->GetStoragePartition()->GetFileSystemContext(), body); } bool ChildProcessSecurityPolicyImpl::CanCreateReadWriteFile(
diff --git a/content/browser/cross_site_transfer_browsertest.cc b/content/browser/cross_site_transfer_browsertest.cc index 42c1406..e324b5b 100644 --- a/content/browser/cross_site_transfer_browsertest.cc +++ b/content/browser/cross_site_transfer_browsertest.cc
@@ -296,8 +296,11 @@ run_loop.Run(); // Remember the old process id for a sanity check below. - int old_process_id = - shell()->web_contents()->GetPrimaryMainFrame()->GetProcess()->GetID(); + int old_process_id = shell() + ->web_contents() + ->GetPrimaryMainFrame() + ->GetProcess() + ->GetDeprecatedID(); // Submit the form. TestNavigationObserver form_post_observer(shell()->web_contents(), 1); @@ -310,8 +313,11 @@ shell()->web_contents()->GetLastCommittedURL()); // Verify that the test really verifies access of a *new* renderer process. - int new_process_id = - shell()->web_contents()->GetPrimaryMainFrame()->GetProcess()->GetID(); + int new_process_id = shell() + ->web_contents() + ->GetPrimaryMainFrame() + ->GetProcess() + ->GetDeprecatedID(); ASSERT_NE(new_process_id, old_process_id); // MAIN VERIFICATION: Check if the new renderer process is able to read the @@ -365,8 +371,9 @@ // and |form_contents|. EXPECT_EQ(initial_target_url, target_contents->GetLastCommittedURL()); EXPECT_EQ(form_url, form_contents->GetLastCommittedURL()); - EXPECT_NE(target_contents->GetPrimaryMainFrame()->GetProcess()->GetID(), - form_contents->GetPrimaryMainFrame()->GetProcess()->GetID()); + EXPECT_NE( + target_contents->GetPrimaryMainFrame()->GetProcess()->GetDeprecatedID(), + form_contents->GetPrimaryMainFrame()->GetProcess()->GetDeprecatedID()); // Prepare a file to upload. base::ScopedAllowBlockingForTesting allow_blocking; @@ -389,16 +396,19 @@ ChildProcessSecurityPolicyImpl* security_policy = ChildProcessSecurityPolicyImpl::GetInstance(); EXPECT_TRUE(security_policy->CanReadFile( - form_contents->GetPrimaryMainFrame()->GetProcess()->GetID(), file_path)); + form_contents->GetPrimaryMainFrame()->GetProcess()->GetDeprecatedID(), + file_path)); // Simulate a malicious situation, where the renderer doesn't really have // access to the file. security_policy->RevokeAllPermissionsForFile( - form_contents->GetPrimaryMainFrame()->GetProcess()->GetID(), file_path); + form_contents->GetPrimaryMainFrame()->GetProcess()->GetDeprecatedID(), + file_path); EXPECT_FALSE(security_policy->CanReadFile( - form_contents->GetPrimaryMainFrame()->GetProcess()->GetID(), file_path)); + form_contents->GetPrimaryMainFrame()->GetProcess()->GetDeprecatedID(), + file_path)); EXPECT_FALSE(security_policy->CanReadFile( - target_contents->GetPrimaryMainFrame()->GetProcess()->GetID(), + target_contents->GetPrimaryMainFrame()->GetProcess()->GetDeprecatedID(), file_path)); // Submit the form and wait until the malicious renderer gets killed. @@ -417,9 +427,10 @@ // Both processes still shouldn't have access. EXPECT_FALSE(security_policy->CanReadFile( - form_contents->GetPrimaryMainFrame()->GetProcess()->GetID(), file_path)); + form_contents->GetPrimaryMainFrame()->GetProcess()->GetDeprecatedID(), + file_path)); EXPECT_FALSE(security_policy->CanReadFile( - target_contents->GetPrimaryMainFrame()->GetProcess()->GetID(), + target_contents->GetPrimaryMainFrame()->GetProcess()->GetDeprecatedID(), file_path)); }
diff --git a/content/browser/devtools/devtools_instrumentation.cc b/content/browser/devtools/devtools_instrumentation.cc index fbb4bf5e..07dc4f4 100644 --- a/content/browser/devtools/devtools_instrumentation.cc +++ b/content/browser/devtools/devtools_instrumentation.cc
@@ -1454,7 +1454,8 @@ RenderFrameHostImpl* rfh) { return WillCreateURLLoaderFactoryParams( RenderFrameDevToolsAgentHost::GetFor(rfh), rfh->GetDevToolsFrameToken(), - rfh->GetProcess()->GetID(), rfh->GetProcess()->GetStoragePartition()); + rfh->GetProcess()->GetDeprecatedID(), + rfh->GetProcess()->GetStoragePartition()); } WillCreateURLLoaderFactoryParams @@ -1462,10 +1463,10 @@ int routing_id) { ServiceWorkerDevToolsAgentHost* agent_host = ServiceWorkerDevToolsManager::GetInstance() - ->GetDevToolsAgentHostForWorker(rph.GetID(), routing_id); + ->GetDevToolsAgentHostForWorker(rph.GetDeprecatedID(), routing_id); CHECK(agent_host); return WillCreateURLLoaderFactoryParams( - agent_host, agent_host->devtools_worker_token(), rph.GetID(), + agent_host, agent_host->devtools_worker_token(), rph.GetDeprecatedID(), rph.GetStoragePartition()); } @@ -1499,7 +1500,7 @@ RenderProcessHost* rph = agent_host->GetProcessHost(); CHECK(rph); return WillCreateURLLoaderFactoryParams( - agent_host, agent_host->devtools_worker_token(), rph->GetID(), + agent_host, agent_host->devtools_worker_token(), rph->GetDeprecatedID(), rph->GetStoragePartition()); }
diff --git a/content/browser/devtools/protocol/dom_handler.cc b/content/browser/devtools/protocol/dom_handler.cc index efed9a9..71f92ea 100644 --- a/content/browser/devtools/protocol/dom_handler.cc +++ b/content/browser/devtools/protocol/dom_handler.cc
@@ -42,7 +42,8 @@ if (host_) { for (const std::string& file : *files) { ChildProcessSecurityPolicyImpl::GetInstance()->GrantReadFile( - host_->GetProcess()->GetID(), base::FilePath::FromUTF8Unsafe(file)); + host_->GetProcess()->GetDeprecatedID(), + base::FilePath::FromUTF8Unsafe(file)); } } return Response::FallThrough();
diff --git a/content/browser/devtools/protocol/network_handler.cc b/content/browser/devtools/protocol/network_handler.cc index ff3d770b..d7b61a813 100644 --- a/content/browser/devtools/protocol/network_handler.cc +++ b/content/browser/devtools/protocol/network_handler.cc
@@ -3515,7 +3515,7 @@ GetContentClient() ->browser() ->RegisterNonNetworkSubresourceURLLoaderFactories( - host->GetID(), routing_id, origin, &factories); + host->GetDeprecatedID(), routing_id, origin, &factories); auto i = factories.find(std::string(scheme)); if (i == factories.end()) { return {};
diff --git a/content/browser/devtools/render_frame_devtools_agent_host.cc b/content/browser/devtools/render_frame_devtools_agent_host.cc index a4b6507..356ed4c 100644 --- a/content/browser/devtools/render_frame_devtools_agent_host.cc +++ b/content/browser/devtools/render_frame_devtools_agent_host.cc
@@ -263,7 +263,7 @@ process_origins.insert(frame_host->GetLastCommittedOrigin()); } GetNetworkService()->SetRawHeadersAccess( - rph->GetID(), + rph->GetDeprecatedID(), std::vector<url::Origin>(process_origins.begin(), process_origins.end())); } @@ -881,7 +881,7 @@ std::move(host_remote), agent_remote.InitWithNewEndpointAndPassReceiver()); } - int process_id = frame_host_ ? frame_host_->GetProcess()->GetID() + int process_id = frame_host_ ? frame_host_->GetProcess()->GetDeprecatedID() : ChildProcessHost::kInvalidUniqueID; GetRendererChannel()->SetRendererAssociated(std::move(agent_remote), std::move(host_receiver),
diff --git a/content/browser/devtools/service_worker_devtools_agent_host.cc b/content/browser/devtools/service_worker_devtools_agent_host.cc index cd139f0..e7d1717 100644 --- a/content/browser/devtools/service_worker_devtools_agent_host.cc +++ b/content/browser/devtools/service_worker_devtools_agent_host.cc
@@ -389,7 +389,7 @@ rph, origin, version->key().ToPartialNetIsolationInfo(), /*coep_reporter=*/mojo::NullRemote(), static_cast<StoragePartitionImpl*>(rph->GetStoragePartition()) - ->CreateAuthCertObserverForServiceWorker(rph->GetID()), + ->CreateAuthCertObserverForServiceWorker(rph->GetDeprecatedID()), NetworkServiceDevToolsObserver::MakeSelfOwned(GetId()), /*client_security_state=*/nullptr, /*debug_tag=*/"SWDTAH::CreateNetworkFactoryParamsForDevTools",
diff --git a/content/browser/devtools/shared_storage_worklet_devtools_agent_host.cc b/content/browser/devtools/shared_storage_worklet_devtools_agent_host.cc index c0609b26..2274175d 100644 --- a/content/browser/devtools/shared_storage_worklet_devtools_agent_host.cc +++ b/content/browser/devtools/shared_storage_worklet_devtools_agent_host.cc
@@ -100,9 +100,9 @@ return; } - GetRendererChannel()->SetRenderer(std::move(agent_remote), - std::move(agent_host_receiver), - worklet_host_->GetProcessHost()->GetID()); + GetRendererChannel()->SetRenderer( + std::move(agent_remote), std::move(agent_host_receiver), + worklet_host_->GetProcessHost()->GetDeprecatedID()); } void SharedStorageWorkletDevToolsAgentHost::WorkletDestroyed() {
diff --git a/content/browser/devtools/shared_worker_devtools_agent_host.cc b/content/browser/devtools/shared_worker_devtools_agent_host.cc index ee96c00..7794d0c7 100644 --- a/content/browser/devtools/shared_worker_devtools_agent_host.cc +++ b/content/browser/devtools/shared_worker_devtools_agent_host.cc
@@ -121,9 +121,9 @@ DCHECK_EQ(WORKER_NOT_READY, state_); DCHECK(worker_host_); state_ = WORKER_READY; - GetRendererChannel()->SetRenderer(std::move(agent_remote), - std::move(agent_host_receiver), - worker_host_->GetProcessHost()->GetID()); + GetRendererChannel()->SetRenderer( + std::move(agent_remote), std::move(agent_host_receiver), + worker_host_->GetProcessHost()->GetDeprecatedID()); for (auto* inspector : protocol::InspectorHandler::ForAgentHost(this)) inspector->TargetReloadedAfterCrash(); }
diff --git a/content/browser/download/download_browsertest.cc b/content/browser/download/download_browsertest.cc index 5afd5c88..66666825 100644 --- a/content/browser/download/download_browsertest.cc +++ b/content/browser/download/download_browsertest.cc
@@ -5278,7 +5278,7 @@ // prerendered page and mark it as rendered-initiated, otherwise the download // won't be checked. auto download_parameters = std::make_unique<download::DownloadUrlParameters>( - kDownloadUrl, render_frame_host->GetProcess()->GetID(), + kDownloadUrl, render_frame_host->GetProcess()->GetDeprecatedID(), render_frame_host->GetRoutingID(), TRAFFIC_ANNOTATION_FOR_TESTS); download_parameters->set_content_initiated(true); download_manager->DownloadUrl(std::move(download_parameters));
diff --git a/content/browser/download/download_manager_impl.cc b/content/browser/download/download_manager_impl.cc index d2a9451d..e634754 100644 --- a/content/browser/download/download_manager_impl.cc +++ b/content/browser/download/download_manager_impl.cc
@@ -238,7 +238,7 @@ // Also allow the Content embedder to inject itself if it wants to. GetContentClient()->browser()->WillCreateURLLoaderFactory( rfh->GetSiteInstance()->GetBrowserContext(), rfh, - rfh->GetProcess()->GetID(), + rfh->GetProcess()->GetDeprecatedID(), ContentBrowserClient::URLLoaderFactoryType::kDownload, url::Origin(), net::IsolationInfo(), /*navigation_id=*/std::nullopt, ukm::kInvalidSourceIdObj, factory_builder, /*header_client=*/nullptr, @@ -1358,7 +1358,7 @@ if (ftn) { render_frame_host = ftn->current_frame_host(); if (render_frame_host) { - render_process_id = render_frame_host->GetProcess()->GetID(); + render_process_id = render_frame_host->GetProcess()->GetDeprecatedID(); render_frame_id = render_frame_host->GetRoutingID(); storage_partition_config = render_frame_host->GetSiteInstance()->GetStoragePartitionConfig(); @@ -1447,7 +1447,7 @@ pending_url_loader_factory = std::make_unique<network::WrapperPendingSharedURLLoaderFactory>( CreateFileSystemURLLoaderFactory( - rfh->GetProcess()->GetID(), rfh->GetFrameTreeNodeId(), + rfh->GetProcess()->GetDeprecatedID(), rfh->GetFrameTreeNodeId(), storage_partition->GetFileSystemContext(), storage_partition->GetPartitionDomain(), static_cast<RenderFrameHostImpl*>(rfh)->GetStorageKey()));
diff --git a/content/browser/download/download_request_utils.cc b/content/browser/download/download_request_utils.cc index ac5320d..103273e 100644 --- a/content/browser/download/download_request_utils.cc +++ b/content/browser/download/download_request_utils.cc
@@ -23,7 +23,7 @@ const net::NetworkTrafficAnnotationTag& traffic_annotation) { RenderFrameHost* render_frame_host = web_contents->GetPrimaryMainFrame(); return std::make_unique<download::DownloadUrlParameters>( - url, render_frame_host->GetProcess()->GetID(), + url, render_frame_host->GetProcess()->GetDeprecatedID(), render_frame_host->GetRoutingID(), traffic_annotation); }
diff --git a/content/browser/download/drag_download_file.cc b/content/browser/download/drag_download_file.cc index a168f96..7f9143c 100644 --- a/content/browser/download/drag_download_file.cc +++ b/content/browser/download/drag_download_file.cc
@@ -198,7 +198,7 @@ RenderFrameHost* host = web_contents->GetPrimaryMainFrame(); drag_ui_ = new DragDownloadFileUI( url, referrer, referrer_encoding, initiator_origin, - host->GetProcess()->GetID(), host->GetRoutingID(), + host->GetProcess()->GetDeprecatedID(), host->GetRoutingID(), base::BindOnce(&DragDownloadFile::DownloadCompleted, weak_ptr_factory_.GetWeakPtr())); DCHECK(!file_path_.empty());
diff --git a/content/browser/download/save_file_manager.cc b/content/browser/download/save_file_manager.cc index 08f2105..7950145 100644 --- a/content/browser/download/save_file_manager.cc +++ b/content/browser/download/save_file_manager.cc
@@ -296,7 +296,7 @@ auto partition_domain = rfh->GetSiteInstance()->GetPartitionDomain(storage_partition_impl); factory_remote.Bind(CreateFileSystemURLLoaderFactory( - rfh->GetProcess()->GetID(), rfh->GetFrameTreeNodeId(), + rfh->GetProcess()->GetDeprecatedID(), rfh->GetFrameTreeNodeId(), storage_partition->GetFileSystemContext(), partition_domain, static_cast<RenderFrameHostImpl*>(rfh)->GetStorageKey())); factory = factory_remote.get();
diff --git a/content/browser/download/save_package.cc b/content/browser/download/save_package.cc index 5be08f2..3f602c3 100644 --- a/content/browser/download/save_package.cc +++ b/content/browser/download/save_package.cc
@@ -336,7 +336,7 @@ RenderFrameHost& frame_host = page_->GetMainDocument(); download_manager_->CreateSavePackageDownloadItem( saved_main_file_path_, page_url_, GetMimeTypeForSaveType(save_type_), - frame_host.GetProcess()->GetID(), frame_host.GetRoutingID(), + frame_host.GetProcess()->GetDeprecatedID(), frame_host.GetRoutingID(), base::BindOnce(&CancelSavePackage, weak_ptr_factory_.GetWeakPtr()), base::BindOnce(&SavePackage::InitWithDownloadItem, weak_ptr_factory_.GetWeakPtr(), @@ -772,10 +772,11 @@ final_names.insert(std::make_pair(it.first, it.second->full_path())); download::GetDownloadTaskRunner()->PostTask( - FROM_HERE, base::BindOnce(&SaveFileManager::RenameAllFiles, file_manager_, - final_names, dir, - page_->GetMainDocument().GetProcess()->GetID(), - page_->GetMainDocument().GetRoutingID(), id())); + FROM_HERE, + base::BindOnce(&SaveFileManager::RenameAllFiles, file_manager_, + final_names, dir, + page_->GetMainDocument().GetProcess()->GetDeprecatedID(), + page_->GetMainDocument().GetRoutingID(), id())); } // Successfully finished all items of this SavePackage. @@ -937,7 +938,7 @@ save_item_ptr->id(), save_item_ptr->url(), save_item_ptr->referrer(), save_item_ptr->isolation_info(), save_item_ptr->request_mode(), save_item_ptr->is_outermost_main_frame(), - requester_frame->GetProcess()->GetID(), + requester_frame->GetProcess()->GetDeprecatedID(), requester_frame->render_view_host()->GetRoutingID(), requester_frame->GetRoutingID(), save_item_ptr->save_source(), save_item_ptr->full_path(),
diff --git a/content/browser/fenced_frame/fenced_frame.cc b/content/browser/fenced_frame/fenced_frame.cc index 47ce77c..c6cdb479 100644 --- a/content/browser/fenced_frame/fenced_frame.cc +++ b/content/browser/fenced_frame/fenced_frame.cc
@@ -23,7 +23,8 @@ FrameTreeNode* CreateDelegateFrameTreeNode( RenderFrameHostImpl* owner_render_frame_host) { return owner_render_frame_host->frame_tree()->AddFrame( - &*owner_render_frame_host, owner_render_frame_host->GetProcess()->GetID(), + &*owner_render_frame_host, + owner_render_frame_host->GetProcess()->GetDeprecatedID(), owner_render_frame_host->GetProcess()->GetNextRoutingID(), // We're creating an dummy outer delegate node which will never have a // corresponding `RenderFrameImpl`, and therefore we pass null
diff --git a/content/browser/file_system/file_system_url_loader_factory_browsertest.cc b/content/browser/file_system/file_system_url_loader_factory_browsertest.cc index 5857aab..0ce158f 100644 --- a/content/browser/file_system/file_system_url_loader_factory_browsertest.cc +++ b/content/browser/file_system/file_system_url_loader_factory_browsertest.cc
@@ -512,7 +512,7 @@ const std::string storage_domain = url.DeprecatedGetOriginAsURL().host(); mojo::Remote<network::mojom::URLLoaderFactory> factory( CreateFileSystemURLLoaderFactory( - render_frame_host()->GetProcess()->GetID(), + render_frame_host()->GetProcess()->GetDeprecatedID(), render_frame_host()->GetFrameTreeNodeId(), file_system_context, storage_domain, blink::StorageKey::CreateFirstParty(url::Origin::Create(url))));
diff --git a/content/browser/file_system_access/file_system_chooser_browsertest.cc b/content/browser/file_system_access/file_system_chooser_browsertest.cc index ce396e26..46ee881a 100644 --- a/content/browser/file_system_access/file_system_chooser_browsertest.cc +++ b/content/browser/file_system_access/file_system_chooser_browsertest.cc
@@ -374,7 +374,11 @@ auto origin = url::Origin::Create(embedded_test_server()->GetURL("/title1.html")); auto frame_id = GlobalRenderFrameHostId( - shell()->web_contents()->GetPrimaryMainFrame()->GetProcess()->GetID(), + shell() + ->web_contents() + ->GetPrimaryMainFrame() + ->GetProcess() + ->GetDeprecatedID(), shell()->web_contents()->GetPrimaryMainFrame()->GetRoutingID()); EXPECT_CALL(permission_context, CanObtainReadPermission(origin)) @@ -617,7 +621,11 @@ auto origin = url::Origin::Create(embedded_test_server()->GetURL("/title1.html")); auto frame_id = GlobalRenderFrameHostId( - shell()->web_contents()->GetPrimaryMainFrame()->GetProcess()->GetID(), + shell() + ->web_contents() + ->GetPrimaryMainFrame() + ->GetProcess() + ->GetDeprecatedID(), shell()->web_contents()->GetPrimaryMainFrame()->GetRoutingID()); EXPECT_CALL(permission_context, @@ -710,7 +718,11 @@ auto origin = url::Origin::Create(embedded_test_server()->GetURL("/title1.html")); auto frame_id = GlobalRenderFrameHostId( - shell()->web_contents()->GetPrimaryMainFrame()->GetProcess()->GetID(), + shell() + ->web_contents() + ->GetPrimaryMainFrame() + ->GetProcess() + ->GetDeprecatedID(), shell()->web_contents()->GetPrimaryMainFrame()->GetRoutingID()); EXPECT_CALL(permission_context, @@ -807,7 +819,11 @@ auto origin = url::Origin::Create(embedded_test_server()->GetURL("/title1.html")); auto frame_id = GlobalRenderFrameHostId( - shell()->web_contents()->GetPrimaryMainFrame()->GetProcess()->GetID(), + shell() + ->web_contents() + ->GetPrimaryMainFrame() + ->GetProcess() + ->GetDeprecatedID(), shell()->web_contents()->GetPrimaryMainFrame()->GetRoutingID()); EXPECT_CALL(permission_context, @@ -916,7 +932,11 @@ auto origin = url::Origin::Create(embedded_test_server()->GetURL("/title1.html")); auto frame_id = GlobalRenderFrameHostId( - shell()->web_contents()->GetPrimaryMainFrame()->GetProcess()->GetID(), + shell() + ->web_contents() + ->GetPrimaryMainFrame() + ->GetProcess() + ->GetDeprecatedID(), shell()->web_contents()->GetPrimaryMainFrame()->GetRoutingID()); EXPECT_CALL(permission_context, CanObtainReadPermission(origin)) @@ -986,7 +1006,11 @@ auto origin = url::Origin::Create(embedded_test_server()->GetURL("/title1.html")); auto frame_id = GlobalRenderFrameHostId( - shell()->web_contents()->GetPrimaryMainFrame()->GetProcess()->GetID(), + shell() + ->web_contents() + ->GetPrimaryMainFrame() + ->GetProcess() + ->GetDeprecatedID(), shell()->web_contents()->GetPrimaryMainFrame()->GetRoutingID()); EXPECT_CALL(permission_context, CanObtainReadPermission(origin)) @@ -1105,7 +1129,11 @@ auto origin = url::Origin::Create(embedded_test_server()->GetURL("/title1.html")); auto frame_id = GlobalRenderFrameHostId( - shell()->web_contents()->GetPrimaryMainFrame()->GetProcess()->GetID(), + shell() + ->web_contents() + ->GetPrimaryMainFrame() + ->GetProcess() + ->GetDeprecatedID(), shell()->web_contents()->GetPrimaryMainFrame()->GetRoutingID()); EXPECT_CALL(permission_context, @@ -1204,7 +1232,11 @@ auto origin = url::Origin::Create(embedded_test_server()->GetURL("/title1.html")); auto frame_id = GlobalRenderFrameHostId( - shell()->web_contents()->GetPrimaryMainFrame()->GetProcess()->GetID(), + shell() + ->web_contents() + ->GetPrimaryMainFrame() + ->GetProcess() + ->GetDeprecatedID(), shell()->web_contents()->GetPrimaryMainFrame()->GetRoutingID()); EXPECT_CALL(permission_context, @@ -1309,7 +1341,11 @@ auto origin = url::Origin::Create(embedded_test_server()->GetURL("/title1.html")); auto frame_id = GlobalRenderFrameHostId( - shell()->web_contents()->GetPrimaryMainFrame()->GetProcess()->GetID(), + shell() + ->web_contents() + ->GetPrimaryMainFrame() + ->GetProcess() + ->GetDeprecatedID(), shell()->web_contents()->GetPrimaryMainFrame()->GetRoutingID()); EXPECT_CALL(permission_context, @@ -1411,7 +1447,11 @@ auto origin = url::Origin::Create(embedded_test_server()->GetURL("/title1.html")); auto frame_id = GlobalRenderFrameHostId( - shell()->web_contents()->GetPrimaryMainFrame()->GetProcess()->GetID(), + shell() + ->web_contents() + ->GetPrimaryMainFrame() + ->GetProcess() + ->GetDeprecatedID(), shell()->web_contents()->GetPrimaryMainFrame()->GetRoutingID()); EXPECT_CALL(permission_context, @@ -1518,7 +1558,11 @@ auto origin = url::Origin::Create(embedded_test_server()->GetURL("/title1.html")); auto frame_id = GlobalRenderFrameHostId( - shell()->web_contents()->GetPrimaryMainFrame()->GetProcess()->GetID(), + shell() + ->web_contents() + ->GetPrimaryMainFrame() + ->GetProcess() + ->GetDeprecatedID(), shell()->web_contents()->GetPrimaryMainFrame()->GetRoutingID()); EXPECT_CALL(permission_context, CanObtainReadPermission(origin)) .WillOnce(testing::Return(true));
diff --git a/content/browser/font_access/font_access_manager_unittest.cc b/content/browser/font_access/font_access_manager_unittest.cc index 3254beb..185e5d7 100644 --- a/content/browser/font_access/font_access_manager_unittest.cc +++ b/content/browser/font_access/font_access_manager_unittest.cc
@@ -81,7 +81,7 @@ RenderViewHostImplTestHarness::SetUp(); NavigateAndCommit(kTestUrl); - const int process_id = main_rfh()->GetProcess()->GetID(); + const int process_id = main_rfh()->GetProcess()->GetDeprecatedID(); const int routing_id = main_rfh()->GetRoutingID(); const GlobalRenderFrameHostId main_frame_id(process_id, routing_id);
diff --git a/content/browser/image_capture/image_capture_impl.cc b/content/browser/image_capture/image_capture_impl.cc index 2083b0a..2dfd789 100644 --- a/content/browser/image_capture/image_capture_impl.cc +++ b/content/browser/image_capture/image_capture_impl.cc
@@ -172,7 +172,7 @@ return MediaDevicesPermissionChecker:: HasPanTiltZoomPermissionGrantedOnUIThread( - render_frame_host().GetProcess()->GetID(), + render_frame_host().GetProcess()->GetDeprecatedID(), render_frame_host().GetRoutingID()); } } // namespace content
diff --git a/content/browser/interest_group/ad_auction_service_impl.cc b/content/browser/interest_group/ad_auction_service_impl.cc index 0173335..e8f05cd0 100644 --- a/content/browser/interest_group/ad_auction_service_impl.cc +++ b/content/browser/interest_group/ad_auction_service_impl.cc
@@ -717,8 +717,9 @@ .GetStoragePartition()), url_loader_factory::ContentClientParams( render_frame_host().GetSiteInstance()->GetBrowserContext(), - &render_frame_host(), render_frame_host().GetProcess()->GetID(), - url::Origin(), net::IsolationInfo(), + &render_frame_host(), + render_frame_host().GetProcess()->GetDeprecatedID(), url::Origin(), + net::IsolationInfo(), ukm::SourceIdObj::FromInt64( render_frame_host().GetPageUkmSourceId()))); }
diff --git a/content/browser/interest_group/auction_process_manager_unittest.cc b/content/browser/interest_group/auction_process_manager_unittest.cc index 34982c09..65ed859 100644 --- a/content/browser/interest_group/auction_process_manager_unittest.cc +++ b/content/browser/interest_group/auction_process_manager_unittest.cc
@@ -1877,22 +1877,22 @@ std::unique_ptr<AuctionProcessManager::ProcessHandle> handle_a1 = GetServiceOfTypeExpectSuccess(GetWorkletType(), kOriginA, site_instance1_); - int id_a1 = handle_a1->GetRenderProcessHostForTesting()->GetID(); + int id_a1 = handle_a1->GetRenderProcessHostForTesting()->GetDeprecatedID(); std::unique_ptr<AuctionProcessManager::ProcessHandle> handle_a2 = GetServiceOfTypeExpectSuccess(GetWorkletType(), kOriginA, site_instance2_); - int id_a2 = handle_a2->GetRenderProcessHostForTesting()->GetID(); + int id_a2 = handle_a2->GetRenderProcessHostForTesting()->GetDeprecatedID(); std::unique_ptr<AuctionProcessManager::ProcessHandle> handle_b1 = GetServiceOfTypeExpectSuccess(GetWorkletType(), kOriginB, site_instance1_); - int id_b1 = handle_b1->GetRenderProcessHostForTesting()->GetID(); + int id_b1 = handle_b1->GetRenderProcessHostForTesting()->GetDeprecatedID(); std::unique_ptr<AuctionProcessManager::ProcessHandle> handle_b2 = GetServiceOfTypeExpectSuccess(GetWorkletType(), kOriginB, site_instance2_); - int id_b2 = handle_b2->GetRenderProcessHostForTesting()->GetID(); + int id_b2 = handle_b2->GetRenderProcessHostForTesting()->GetDeprecatedID(); // Non-site-isolation requiring origins can share processes, but not across // different browsing instances. @@ -1911,12 +1911,12 @@ std::unique_ptr<AuctionProcessManager::ProcessHandle> handle_i1 = GetServiceOfTypeExpectSuccess(GetWorkletType(), kIsolatedOrigin, site_instance1_); - int id_i1 = handle_i1->GetRenderProcessHostForTesting()->GetID(); + int id_i1 = handle_i1->GetRenderProcessHostForTesting()->GetDeprecatedID(); std::unique_ptr<AuctionProcessManager::ProcessHandle> handle_i2 = GetServiceOfTypeExpectSuccess(GetWorkletType(), kIsolatedOrigin, site_instance2_); - int id_i2 = handle_i2->GetRenderProcessHostForTesting()->GetID(); + int id_i2 = handle_i2->GetRenderProcessHostForTesting()->GetDeprecatedID(); EXPECT_EQ(id_i1, id_i2); EXPECT_NE(id_i1, id_a1); @@ -1997,8 +1997,8 @@ // If using InRendererMode, they should also use different RenderProcessHosts. if (GetProcessMode() != ProcessMode::kDedicated) { - EXPECT_NE(handle_a1->GetRenderProcessHostForTesting()->GetID(), - handle_b1->GetRenderProcessHostForTesting()->GetID()); + EXPECT_NE(handle_a1->GetRenderProcessHostForTesting()->GetDeprecatedID(), + handle_b1->GetRenderProcessHostForTesting()->GetDeprecatedID()); } histogram_tester.ExpectBucketCount( @@ -2021,10 +2021,10 @@ // If using InRendererMode, they should also use different RenderProcessHosts. if (GetProcessMode() != ProcessMode::kDedicated) { - EXPECT_NE(handle_i1->GetRenderProcessHostForTesting()->GetID(), - handle_a1->GetRenderProcessHostForTesting()->GetID()); - EXPECT_NE(handle_i1->GetRenderProcessHostForTesting()->GetID(), - handle_b1->GetRenderProcessHostForTesting()->GetID()); + EXPECT_NE(handle_i1->GetRenderProcessHostForTesting()->GetDeprecatedID(), + handle_a1->GetRenderProcessHostForTesting()->GetDeprecatedID()); + EXPECT_NE(handle_i1->GetRenderProcessHostForTesting()->GetDeprecatedID(), + handle_b1->GetRenderProcessHostForTesting()->GetDeprecatedID()); } histogram_tester.ExpectBucketCount(
diff --git a/content/browser/interest_group/auction_worklet_manager.cc b/content/browser/interest_group/auction_worklet_manager.cc index a80c481d..4424059a 100644 --- a/content/browser/interest_group/auction_worklet_manager.cc +++ b/content/browser/interest_group/auction_worklet_manager.cc
@@ -576,7 +576,8 @@ worklet_manager_->top_window_origin(), worklet_manager_->frame_origin(), // NOTE: `rfh` can be null in tests. /*renderer_process_id=*/ - rfh ? std::optional<int>(rfh->GetProcess()->GetID()) : std::nullopt, + rfh ? std::optional<int>(rfh->GetProcess()->GetDeprecatedID()) + : std::nullopt, /*is_for_seller_=*/worklet_info_.type == WorkletType::kSeller, delegate->GetClientSecurityState(), worklet_info_.script_url, worklet_info_.wasm_url, worklet_info_.signals_url,
diff --git a/content/browser/isolated_origin_browsertest.cc b/content/browser/isolated_origin_browsertest.cc index daa34cef..6ec2370 100644 --- a/content/browser/isolated_origin_browsertest.cc +++ b/content/browser/isolated_origin_browsertest.cc
@@ -3317,16 +3317,16 @@ // Make sure we have three separate processes. FrameTreeNode* root = web_contents()->GetPrimaryFrameTree().root(); RenderFrameHost* main_frame = root->current_frame_host(); - int main_frame_id = main_frame->GetProcess()->GetID(); + int main_frame_id = main_frame->GetProcess()->GetDeprecatedID(); RenderFrameHost* child_frame0 = root->child_at(0)->current_frame_host(); RenderFrameHost* child_frame1 = root->child_at(1)->current_frame_host(); RenderFrameHost* child_frame2 = root->child_at(2)->current_frame_host(); RenderFrameHost* grandchild_frame0 = root->child_at(1)->child_at(0)->current_frame_host(); - EXPECT_NE(main_frame_id, child_frame0->GetProcess()->GetID()); - EXPECT_NE(main_frame_id, child_frame1->GetProcess()->GetID()); - EXPECT_EQ(main_frame_id, child_frame2->GetProcess()->GetID()); - EXPECT_EQ(main_frame_id, grandchild_frame0->GetProcess()->GetID()); + EXPECT_NE(main_frame_id, child_frame0->GetProcess()->GetDeprecatedID()); + EXPECT_NE(main_frame_id, child_frame1->GetProcess()->GetDeprecatedID()); + EXPECT_EQ(main_frame_id, child_frame2->GetProcess()->GetDeprecatedID()); + EXPECT_EQ(main_frame_id, grandchild_frame0->GetProcess()->GetDeprecatedID()); EXPECT_EQ(GetStrictProcessLockForHost("foo.com"), main_frame->GetProcess()->GetProcessLock()); @@ -3349,8 +3349,8 @@ // The old RenderFrameHost for subframe3 will no longer be valid, so get the // new one. child_frame2 = root->child_at(2)->current_frame_host(); - EXPECT_NE(main_frame->GetProcess()->GetID(), - child_frame2->GetProcess()->GetID()); + EXPECT_NE(main_frame->GetProcess()->GetDeprecatedID(), + child_frame2->GetProcess()->GetDeprecatedID()); EXPECT_EQ(expected_foo_lock, child_frame2->GetProcess()->GetProcessLock()); } @@ -3362,7 +3362,7 @@ auto* policy = ChildProcessSecurityPolicyImpl::GetInstance(); auto foo_process_id = - web_contents()->GetPrimaryMainFrame()->GetProcess()->GetID(); + web_contents()->GetPrimaryMainFrame()->GetProcess()->GetDeprecatedID(); SiteInstanceImpl* foo_site_instance = web_contents()->GetSiteInstance(); EXPECT_EQ(expected_foo_lock, ProcessLock::FromSiteInfo(foo_site_instance->GetSiteInfo())); @@ -3373,8 +3373,11 @@ embedded_test_server()->GetURL("sub.foo.com", "/title1.html"); const auto expected_sub_foo_lock = GetStrictProcessLock(sub_foo_url); EXPECT_TRUE(NavigateToURL(shell(), sub_foo_url)); - auto sub_foo_process_id = - shell()->web_contents()->GetPrimaryMainFrame()->GetProcess()->GetID(); + auto sub_foo_process_id = shell() + ->web_contents() + ->GetPrimaryMainFrame() + ->GetProcess() + ->GetDeprecatedID(); SiteInstanceImpl* sub_foo_site_instance = web_contents()->GetSiteInstance(); EXPECT_EQ(expected_sub_foo_lock, ProcessLock::FromSiteInfo(sub_foo_site_instance->GetSiteInfo())); @@ -3390,8 +3393,11 @@ embedded_test_server()->GetURL("another.foo.com", "/title2.html")); const auto expected_another_foo_lock = GetStrictProcessLock(another_foo_url); EXPECT_TRUE(NavigateToURLFromRenderer(shell(), another_foo_url)); - auto another_foo_process_id = - shell()->web_contents()->GetPrimaryMainFrame()->GetProcess()->GetID(); + auto another_foo_process_id = shell() + ->web_contents() + ->GetPrimaryMainFrame() + ->GetProcess() + ->GetDeprecatedID(); SiteInstanceImpl* another_foo_site_instance = web_contents()->GetSiteInstance(); EXPECT_NE(another_foo_process_id, sub_foo_process_id); @@ -4436,7 +4442,7 @@ mojo::PendingRemote<blink::mojom::DomStorageClient> unused_client; std::ignore = unused_client.InitWithNewPipeAndPassReceiver(); mojo::ReceiverId receiver_id = storage_partition->BindDomStorage( - rph->GetID(), std::move(receiver), std::move(unused_client)); + rph->GetDeprecatedID(), std::move(receiver), std::move(unused_client)); // Now replace it with this object and keep a pointer to the real // implementation. @@ -4935,8 +4941,8 @@ // should stay in the same process, unless --site-per-process has also been // specified. if (!AreAllSitesIsolatedForTesting()) { - EXPECT_EQ(main_frame->GetProcess()->GetID(), - subframe3->GetProcess()->GetID()); + EXPECT_EQ(main_frame->GetProcess()->GetDeprecatedID(), + subframe3->GetProcess()->GetDeprecatedID()); if (AreStrictSiteInstancesEnabled()) { EXPECT_NE(main_frame->GetSiteInstance(), subframe3->GetSiteInstance()); } else { @@ -4946,13 +4952,14 @@ // isolated.foo.com and foo999.com are on the list of origins to isolate - // they should be isolated from everything else. - EXPECT_NE(main_frame->GetProcess()->GetID(), - subframe1->GetProcess()->GetID()); + EXPECT_NE(main_frame->GetProcess()->GetDeprecatedID(), + subframe1->GetProcess()->GetDeprecatedID()); EXPECT_NE(main_frame->GetSiteInstance(), subframe1->GetSiteInstance()); - EXPECT_NE(main_frame->GetProcess()->GetID(), - subframe2->GetProcess()->GetID()); + EXPECT_NE(main_frame->GetProcess()->GetDeprecatedID(), + subframe2->GetProcess()->GetDeprecatedID()); EXPECT_NE(main_frame->GetSiteInstance(), subframe2->GetSiteInstance()); - EXPECT_NE(subframe1->GetProcess()->GetID(), subframe2->GetProcess()->GetID()); + EXPECT_NE(subframe1->GetProcess()->GetDeprecatedID(), + subframe2->GetProcess()->GetDeprecatedID()); EXPECT_NE(subframe1->GetSiteInstance(), subframe2->GetSiteInstance()); } @@ -5066,14 +5073,18 @@ EXPECT_EQ("www.foo.com", d->GetLastCommittedURL().host()); // Verify that the isolated site is indeed isolated. - EXPECT_NE(b->GetProcess()->GetID(), a->GetProcess()->GetID()); - EXPECT_NE(b->GetProcess()->GetID(), c->GetProcess()->GetID()); - EXPECT_NE(b->GetProcess()->GetID(), d->GetProcess()->GetID()); + EXPECT_NE(b->GetProcess()->GetDeprecatedID(), + a->GetProcess()->GetDeprecatedID()); + EXPECT_NE(b->GetProcess()->GetDeprecatedID(), + c->GetProcess()->GetDeprecatedID()); + EXPECT_NE(b->GetProcess()->GetDeprecatedID(), + d->GetProcess()->GetDeprecatedID()); // Verify that same-origin a and d frames share a process. This is // necessary for correctness - otherwise a and d wouldn't be able to // synchronously script each other. - EXPECT_EQ(a->GetProcess()->GetID(), d->GetProcess()->GetID()); + EXPECT_EQ(a->GetProcess()->GetDeprecatedID(), + d->GetProcess()->GetDeprecatedID()); // Verify that same-origin a and d frames can script each other. EXPECT_TRUE(ExecJs(a, "window.name = 'a';")); @@ -5089,9 +5100,12 @@ if (AreAllSitesIsolatedForTesting()) { // All sites are isolated so we expect foo.com, isolated.foo.com and c.com // to all be in their own processes. - EXPECT_NE(a->GetProcess()->GetID(), b->GetProcess()->GetID()); - EXPECT_NE(a->GetProcess()->GetID(), c->GetProcess()->GetID()); - EXPECT_NE(b->GetProcess()->GetID(), c->GetProcess()->GetID()); + EXPECT_NE(a->GetProcess()->GetDeprecatedID(), + b->GetProcess()->GetDeprecatedID()); + EXPECT_NE(a->GetProcess()->GetDeprecatedID(), + c->GetProcess()->GetDeprecatedID()); + EXPECT_NE(b->GetProcess()->GetDeprecatedID(), + c->GetProcess()->GetDeprecatedID()); EXPECT_NE(a->GetSiteInstance(), b->GetSiteInstance()); EXPECT_NE(a->GetSiteInstance(), c->GetSiteInstance()); @@ -5104,8 +5118,10 @@ } else if (AreDefaultSiteInstancesEnabled()) { // All sites that are not isolated should be in the same default // SiteInstance process. - EXPECT_NE(a->GetProcess()->GetID(), b->GetProcess()->GetID()); - EXPECT_EQ(a->GetProcess()->GetID(), c->GetProcess()->GetID()); + EXPECT_NE(a->GetProcess()->GetDeprecatedID(), + b->GetProcess()->GetDeprecatedID()); + EXPECT_EQ(a->GetProcess()->GetDeprecatedID(), + c->GetProcess()->GetDeprecatedID()); EXPECT_NE(a->GetSiteInstance(), b->GetSiteInstance()); EXPECT_EQ(a->GetSiteInstance(), c->GetSiteInstance()); @@ -5117,8 +5133,10 @@ } else if (AreStrictSiteInstancesEnabled()) { // All sites have their own SiteInstance and sites that are not isolated // are all placed in the same process. - EXPECT_NE(a->GetProcess()->GetID(), b->GetProcess()->GetID()); - EXPECT_EQ(a->GetProcess()->GetID(), c->GetProcess()->GetID()); + EXPECT_NE(a->GetProcess()->GetDeprecatedID(), + b->GetProcess()->GetDeprecatedID()); + EXPECT_EQ(a->GetProcess()->GetDeprecatedID(), + c->GetProcess()->GetDeprecatedID()); EXPECT_NE(a->GetSiteInstance(), b->GetSiteInstance()); EXPECT_NE(a->GetSiteInstance(), c->GetSiteInstance()); @@ -5329,15 +5347,20 @@ EXPECT_EQ("c.com", c2->GetLastCommittedURL().host()); // Verify that the isolated site is indeed isolated. - EXPECT_NE(a->GetProcess()->GetID(), c1->GetProcess()->GetID()); - EXPECT_NE(a->GetProcess()->GetID(), c2->GetProcess()->GetID()); - EXPECT_NE(a->GetProcess()->GetID(), b->GetProcess()->GetID()); - EXPECT_NE(a->GetProcess()->GetID(), d->GetProcess()->GetID()); + EXPECT_NE(a->GetProcess()->GetDeprecatedID(), + c1->GetProcess()->GetDeprecatedID()); + EXPECT_NE(a->GetProcess()->GetDeprecatedID(), + c2->GetProcess()->GetDeprecatedID()); + EXPECT_NE(a->GetProcess()->GetDeprecatedID(), + b->GetProcess()->GetDeprecatedID()); + EXPECT_NE(a->GetProcess()->GetDeprecatedID(), + d->GetProcess()->GetDeprecatedID()); // Verify that same-origin c1 and c2 frames share a process. This is // necessary for correctness - otherwise c1 and c2 wouldn't be able to // synchronously script each other. - EXPECT_EQ(c1->GetProcess()->GetID(), c2->GetProcess()->GetID()); + EXPECT_EQ(c1->GetProcess()->GetDeprecatedID(), + c2->GetProcess()->GetDeprecatedID()); // Verify that same-origin c1 and c2 frames can script each other. EXPECT_TRUE(ExecJs(c1, "window.name = 'c1';")); @@ -5353,14 +5376,21 @@ // number of renderer processes. OTOH, consolidation might be undesirable // if we desire smaller renderer processes (even if it means more processes). if (!AreAllSitesIsolatedForTesting()) { - EXPECT_EQ(b->GetProcess()->GetID(), c1->GetProcess()->GetID()); - EXPECT_EQ(b->GetProcess()->GetID(), c2->GetProcess()->GetID()); - EXPECT_EQ(b->GetProcess()->GetID(), d->GetProcess()->GetID()); + EXPECT_EQ(b->GetProcess()->GetDeprecatedID(), + c1->GetProcess()->GetDeprecatedID()); + EXPECT_EQ(b->GetProcess()->GetDeprecatedID(), + c2->GetProcess()->GetDeprecatedID()); + EXPECT_EQ(b->GetProcess()->GetDeprecatedID(), + d->GetProcess()->GetDeprecatedID()); } else { - EXPECT_NE(b->GetProcess()->GetID(), c1->GetProcess()->GetID()); - EXPECT_NE(b->GetProcess()->GetID(), c2->GetProcess()->GetID()); - EXPECT_NE(b->GetProcess()->GetID(), d->GetProcess()->GetID()); - EXPECT_EQ(c1->GetProcess()->GetID(), c2->GetProcess()->GetID()); + EXPECT_NE(b->GetProcess()->GetDeprecatedID(), + c1->GetProcess()->GetDeprecatedID()); + EXPECT_NE(b->GetProcess()->GetDeprecatedID(), + c2->GetProcess()->GetDeprecatedID()); + EXPECT_NE(b->GetProcess()->GetDeprecatedID(), + d->GetProcess()->GetDeprecatedID()); + EXPECT_EQ(c1->GetProcess()->GetDeprecatedID(), + c2->GetProcess()->GetDeprecatedID()); } } @@ -5545,58 +5575,72 @@ // None of them should swap to a new process, since bar.com shouldn't be // isolated in those older BrowsingInstances. int old_process_id = - web_contents()->GetPrimaryMainFrame()->GetProcess()->GetID(); + web_contents()->GetPrimaryMainFrame()->GetProcess()->GetDeprecatedID(); EXPECT_TRUE(NavigateToURLFromRenderer(shell(), bar_url)); - EXPECT_EQ(old_process_id, - web_contents()->GetPrimaryMainFrame()->GetProcess()->GetID()); + EXPECT_EQ( + old_process_id, + web_contents()->GetPrimaryMainFrame()->GetProcess()->GetDeprecatedID()); - old_process_id = - shell2->web_contents()->GetPrimaryMainFrame()->GetProcess()->GetID(); + old_process_id = shell2->web_contents() + ->GetPrimaryMainFrame() + ->GetProcess() + ->GetDeprecatedID(); EXPECT_TRUE(NavigateToURLFromRenderer(shell2, bar_url)); - EXPECT_EQ( - old_process_id, - shell2->web_contents()->GetPrimaryMainFrame()->GetProcess()->GetID()); + EXPECT_EQ(old_process_id, shell2->web_contents() + ->GetPrimaryMainFrame() + ->GetProcess() + ->GetDeprecatedID()); - old_process_id = - shell3->web_contents()->GetPrimaryMainFrame()->GetProcess()->GetID(); + old_process_id = shell3->web_contents() + ->GetPrimaryMainFrame() + ->GetProcess() + ->GetDeprecatedID(); EXPECT_TRUE(NavigateToURLFromRenderer(shell3, bar_url)); - EXPECT_EQ( - old_process_id, - shell3->web_contents()->GetPrimaryMainFrame()->GetProcess()->GetID()); + EXPECT_EQ(old_process_id, shell3->web_contents() + ->GetPrimaryMainFrame() + ->GetProcess() + ->GetDeprecatedID()); // Now try the same in a new window and BrowsingInstance, and ensure that the // navigation to bar.com swaps processes in that case. Shell* shell4 = CreateBrowser(); EXPECT_TRUE(NavigateToURL(shell4, foo_url)); - old_process_id = - shell4->web_contents()->GetPrimaryMainFrame()->GetProcess()->GetID(); + old_process_id = shell4->web_contents() + ->GetPrimaryMainFrame() + ->GetProcess() + ->GetDeprecatedID(); EXPECT_TRUE(NavigateToURLFromRenderer(shell4, bar_url)); - EXPECT_NE( - old_process_id, - shell4->web_contents()->GetPrimaryMainFrame()->GetProcess()->GetID()); + EXPECT_NE(old_process_id, shell4->web_contents() + ->GetPrimaryMainFrame() + ->GetProcess() + ->GetDeprecatedID()); // Go back to foo.com in window 1, ensuring this stays in the same process. { old_process_id = - web_contents()->GetPrimaryMainFrame()->GetProcess()->GetID(); + web_contents()->GetPrimaryMainFrame()->GetProcess()->GetDeprecatedID(); TestNavigationObserver back_observer(web_contents()); web_contents()->GetController().GoBack(); back_observer.Wait(); - EXPECT_EQ(old_process_id, - web_contents()->GetPrimaryMainFrame()->GetProcess()->GetID()); + EXPECT_EQ( + old_process_id, + web_contents()->GetPrimaryMainFrame()->GetProcess()->GetDeprecatedID()); } // Go back to foo.com in window 4, ensuring this swaps processes. { - old_process_id = - shell4->web_contents()->GetPrimaryMainFrame()->GetProcess()->GetID(); + old_process_id = shell4->web_contents() + ->GetPrimaryMainFrame() + ->GetProcess() + ->GetDeprecatedID(); TestNavigationObserver back_observer(shell4->web_contents()); shell4->web_contents()->GetController().GoBack(); back_observer.Wait(); - EXPECT_NE( - old_process_id, - shell4->web_contents()->GetPrimaryMainFrame()->GetProcess()->GetID()); + EXPECT_NE(old_process_id, shell4->web_contents() + ->GetPrimaryMainFrame() + ->GetProcess() + ->GetDeprecatedID()); } } @@ -5634,7 +5678,7 @@ // The new window's process should be locked to "foo.com". int isolated_foo_com_process_id = - second_root->current_frame_host()->GetProcess()->GetID(); + second_root->current_frame_host()->GetProcess()->GetDeprecatedID(); EXPECT_EQ(ProcessLockFromUrl("http://foo.com"), policy->GetProcessLock(isolated_foo_com_process_id)); @@ -5651,7 +5695,7 @@ embedded_test_server()->GetURL("sub.foo.com", "/title1.html")); EXPECT_TRUE(NavigateToURLInSameBrowsingInstance(second_shell, sub_foo_url)); EXPECT_EQ(isolated_foo_com_process_id, - second_root->current_frame_host()->GetProcess()->GetID()); + second_root->current_frame_host()->GetProcess()->GetDeprecatedID()); // Now, start isolating sub.foo.com. policy->AddFutureIsolatedOrigins({url::Origin::Create(sub_foo_url)}, @@ -5673,7 +5717,7 @@ second_shell, embedded_test_server()->GetURL("bar.com", "/title2.html"))); EXPECT_TRUE(NavigateToURL(second_shell, sub_foo_url)); EXPECT_NE(isolated_foo_com_process_id, - second_root->current_frame_host()->GetProcess()->GetID()); + second_root->current_frame_host()->GetProcess()->GetDeprecatedID()); EXPECT_EQ(ProcessLockFromUrl("http://sub.foo.com"), second_root->current_frame_host()->GetProcess()->GetProcessLock()); @@ -5706,12 +5750,15 @@ // purposes of process assignment, and we should swap processes. Shell* new_shell = CreateBrowser(); EXPECT_TRUE(NavigateToURL(new_shell, foo_url)); - int initial_process_id = - new_shell->web_contents()->GetPrimaryMainFrame()->GetProcess()->GetID(); + int initial_process_id = new_shell->web_contents() + ->GetPrimaryMainFrame() + ->GetProcess() + ->GetDeprecatedID(); EXPECT_TRUE(NavigateToURLFromRenderer(new_shell, sub_foo_url)); - EXPECT_NE( - initial_process_id, - new_shell->web_contents()->GetPrimaryMainFrame()->GetProcess()->GetID()); + EXPECT_NE(initial_process_id, new_shell->web_contents() + ->GetPrimaryMainFrame() + ->GetProcess() + ->GetDeprecatedID()); // Repeat this, but now navigate a subframe on foo.com to sub.foo.com and // ensure that it is rendered in an OOPIF. @@ -5810,7 +5857,8 @@ // The old foo.com process should still be able to access bar.com data, // since it isn't locked to a specific site. - int old_process_id = root->current_frame_host()->GetProcess()->GetID(); + int old_process_id = + root->current_frame_host()->GetProcess()->GetDeprecatedID(); EXPECT_TRUE(policy->CanAccessDataForOrigin(old_process_id, url::Origin::Create(bar_url))); @@ -6482,14 +6530,20 @@ // (*) SiteInstances will be the same unless ProactivelySwapBrowsingInstances // is enabled for same-site navigations. EXPECT_TRUE(NavigateToURL(shell(), a_foo_url)); - int a_foo_pid = - shell()->web_contents()->GetPrimaryMainFrame()->GetProcess()->GetID(); + int a_foo_pid = shell() + ->web_contents() + ->GetPrimaryMainFrame() + ->GetProcess() + ->GetDeprecatedID(); scoped_refptr<SiteInstance> a_foo_instance = shell()->web_contents()->GetPrimaryMainFrame()->GetSiteInstance(); EXPECT_TRUE(NavigateToURL(shell(), b_foo_url)); - int b_foo_pid = - shell()->web_contents()->GetPrimaryMainFrame()->GetProcess()->GetID(); + int b_foo_pid = shell() + ->web_contents() + ->GetPrimaryMainFrame() + ->GetProcess() + ->GetDeprecatedID(); scoped_refptr<SiteInstance> b_foo_instance = shell()->web_contents()->GetPrimaryMainFrame()->GetSiteInstance(); @@ -6503,14 +6557,20 @@ } EXPECT_TRUE(NavigateToURL(shell(), a_isolated_url)); - int a_isolated_pid = - shell()->web_contents()->GetPrimaryMainFrame()->GetProcess()->GetID(); + int a_isolated_pid = shell() + ->web_contents() + ->GetPrimaryMainFrame() + ->GetProcess() + ->GetDeprecatedID(); scoped_refptr<SiteInstance> a_isolated_instance = shell()->web_contents()->GetPrimaryMainFrame()->GetSiteInstance(); EXPECT_TRUE(NavigateToURL(shell(), b_isolated_url)); - int b_isolated_pid = - shell()->web_contents()->GetPrimaryMainFrame()->GetProcess()->GetID(); + int b_isolated_pid = shell() + ->web_contents() + ->GetPrimaryMainFrame() + ->GetProcess() + ->GetDeprecatedID(); scoped_refptr<SiteInstance> b_isolated_instance = shell()->web_contents()->GetPrimaryMainFrame()->GetSiteInstance(); @@ -6525,14 +6585,20 @@ EXPECT_NE(a_isolated_instance, b_isolated_instance); EXPECT_TRUE(NavigateToURL(shell(), a_foo_url)); - a_foo_pid = - shell()->web_contents()->GetPrimaryMainFrame()->GetProcess()->GetID(); + a_foo_pid = shell() + ->web_contents() + ->GetPrimaryMainFrame() + ->GetProcess() + ->GetDeprecatedID(); a_foo_instance = shell()->web_contents()->GetPrimaryMainFrame()->GetSiteInstance(); EXPECT_TRUE(NavigateToURL(shell(), b_foo_url)); - b_foo_pid = - shell()->web_contents()->GetPrimaryMainFrame()->GetProcess()->GetID(); + b_foo_pid = shell() + ->web_contents() + ->GetPrimaryMainFrame() + ->GetProcess() + ->GetDeprecatedID(); b_foo_instance = shell()->web_contents()->GetPrimaryMainFrame()->GetSiteInstance();
diff --git a/content/browser/loader/loader_browsertest.cc b/content/browser/loader/loader_browsertest.cc index 69810e3..d89b874c 100644 --- a/content/browser/loader/loader_browsertest.cc +++ b/content/browser/loader/loader_browsertest.cc
@@ -304,7 +304,11 @@ embedded_test_server()->RegisterRequestHandler(base::BindRepeating( &CancelOnRequest, "/hung", - shell()->web_contents()->GetPrimaryMainFrame()->GetProcess()->GetID(), + shell() + ->web_contents() + ->GetPrimaryMainFrame() + ->GetProcess() + ->GetDeprecatedID(), base::BindRepeating(&BrowserTestBase::SimulateNetworkServiceCrash, base::Unretained(this))));
diff --git a/content/browser/loader/navigation_url_loader_impl.cc b/content/browser/loader/navigation_url_loader_impl.cc index 4c616f3..151a464 100644 --- a/content/browser/loader/navigation_url_loader_impl.cc +++ b/content/browser/loader/navigation_url_loader_impl.cc
@@ -528,7 +528,9 @@ network::mojom::kBrowserProcessId), url_loader_factory::ContentClientParams( browser_context_, frame_tree_node->current_frame_host(), - frame_tree_node->current_frame_host()->GetProcess()->GetID(), + frame_tree_node->current_frame_host() + ->GetProcess() + ->GetDeprecatedID(), resource_request_->request_initiator.value_or(url::Origin()), net::IsolationInfo(), ukm::SourceIdObj::FromInt64(ukm_source_id_), @@ -839,7 +841,7 @@ std::move(terminal), network::mojom::kBrowserProcessId), url_loader_factory::ContentClientParams( frame->GetSiteInstance()->GetBrowserContext(), frame, - frame->GetProcess()->GetID(), url::Origin(), + frame->GetProcess()->GetDeprecatedID(), url::Origin(), net::IsolationInfo(), ukm_id, /*bypass_redirect_checks=*/nullptr, frame_tree_node->navigation_request()->GetNavigationId(), @@ -1637,7 +1639,7 @@ // navigations. GetContentClient()->browser()->WillCreateURLLoaderFactory( browser_context, frame_tree_node->current_frame_host(), - frame_tree_node->current_frame_host()->GetProcess()->GetID(), + frame_tree_node->current_frame_host()->GetProcess()->GetDeprecatedID(), ContentBrowserClient::URLLoaderFactoryType::kNavigation, url::Origin(), net::IsolationInfo(), frame_tree_node->navigation_request()->GetNavigationId(), ukm_id,
diff --git a/content/browser/media/android/media_resource_getter_impl.cc b/content/browser/media/android/media_resource_getter_impl.cc index b542304..b7e3a968 100644 --- a/content/browser/media/android/media_resource_getter_impl.cc +++ b/content/browser/media/android/media_resource_getter_impl.cc
@@ -70,7 +70,8 @@ network::mojom::RestrictedCookieManagerRole::NETWORK, request_origin, std::move(isolation_info), /* is_service_worker = */ false, - render_frame_host ? render_frame_host->GetProcess()->GetID() : -1, + render_frame_host ? render_frame_host->GetProcess()->GetDeprecatedID() + : -1, render_frame_host ? render_frame_host->GetRoutingID() : MSG_ROUTING_NONE, render_frame_host ? render_frame_host->GetCookieSettingOverrides()
diff --git a/content/browser/media/capture/web_contents_video_capture_device_browsertest.cc b/content/browser/media/capture/web_contents_video_capture_device_browsertest.cc index 2ed6f21..e9e09d1a 100644 --- a/content/browser/media/capture/web_contents_video_capture_device_browsertest.cc +++ b/content/browser/media/capture/web_contents_video_capture_device_browsertest.cc
@@ -250,8 +250,9 @@ std::unique_ptr<FrameSinkVideoCaptureDevice> CreateDevice() final { auto* const main_frame = shell()->web_contents()->GetPrimaryMainFrame(); - const GlobalRenderFrameHostId id(main_frame->GetProcess()->GetID(), - main_frame->GetRoutingID()); + const GlobalRenderFrameHostId id( + main_frame->GetProcess()->GetDeprecatedID(), + main_frame->GetRoutingID()); return std::make_unique<WebContentsVideoCaptureDevice>(id); } @@ -279,7 +280,7 @@ auto* const main_frame = shell()->web_contents()->GetPrimaryMainFrame(); const auto capture_params = SnapshotCaptureParams(); - const GlobalRenderFrameHostId id(main_frame->GetProcess()->GetID(), + const GlobalRenderFrameHostId id(main_frame->GetProcess()->GetDeprecatedID(), main_frame->GetRoutingID()); // Delete the WebContents instance and the Shell. This makes the // render_frame_id invalid.
diff --git a/content/browser/media/captured_surface_controller_unittest.cc b/content/browser/media/captured_surface_controller_unittest.cc index c6fb168..173fdce 100644 --- a/content/browser/media/captured_surface_controller_unittest.cc +++ b/content/browser/media/captured_surface_controller_unittest.cc
@@ -145,7 +145,7 @@ WebContentsMediaCaptureId GetWebContentsMediaCaptureId() const { RenderFrameHost* const rfh = web_contents_->GetPrimaryMainFrame(); - return WebContentsMediaCaptureId(rfh->GetProcess()->GetID(), + return WebContentsMediaCaptureId(rfh->GetProcess()->GetDeprecatedID(), rfh->GetRoutingID()); } @@ -461,8 +461,9 @@ TEST_F(CapturedSurfaceControllerZoomEventTest, ZoomEventUpdateTarget) { const RenderFrameHost* const new_main_rfh = new_capturee_->web_contents()->GetPrimaryMainFrame(); - const WebContentsMediaCaptureId new_wc_id(new_main_rfh->GetProcess()->GetID(), - new_main_rfh->GetRoutingID()); + const WebContentsMediaCaptureId new_wc_id( + new_main_rfh->GetProcess()->GetDeprecatedID(), + new_main_rfh->GetRoutingID()); controller_->UpdateCaptureTarget(new_wc_id); AwaitWebContentsResolution();
diff --git a/content/browser/media/flinging_renderer.cc b/content/browser/media/flinging_renderer.cc index 7cadc94..6125e00 100644 --- a/content/browser/media/flinging_renderer.cc +++ b/content/browser/media/flinging_renderer.cc
@@ -51,7 +51,7 @@ return nullptr; auto flinging_controller = presentation_delegate->GetFlingingController( - render_frame_host->GetProcess()->GetID(), + render_frame_host->GetProcess()->GetDeprecatedID(), render_frame_host->GetRoutingID(), presentation_id); if (!flinging_controller)
diff --git a/content/browser/media/forwarding_audio_stream_factory.cc b/content/browser/media/forwarding_audio_stream_factory.cc index 0f17fcd..a8b5e33 100644 --- a/content/browser/media/forwarding_audio_stream_factory.cc +++ b/content/browser/media/forwarding_audio_stream_factory.cc
@@ -287,10 +287,11 @@ // Unretained is safe since the destruction of |core_| will be posted to the // IO thread later. GetIOThreadTaskRunner({})->PostTask( - FROM_HERE, base::BindOnce(&Core::CleanupStreamsBelongingTo, - base::Unretained(core_.get()), - render_frame_host->GetProcess()->GetID(), - render_frame_host->GetRoutingID())); + FROM_HERE, + base::BindOnce(&Core::CleanupStreamsBelongingTo, + base::Unretained(core_.get()), + render_frame_host->GetProcess()->GetDeprecatedID(), + render_frame_host->GetRoutingID())); } void ForwardingAudioStreamFactory::OverrideAudioStreamFactoryBinderForTesting(
diff --git a/content/browser/media/forwarding_audio_stream_factory_unittest.cc b/content/browser/media/forwarding_audio_stream_factory_unittest.cc index b5b8b4ed..584d2d3b 100644 --- a/content/browser/media/forwarding_audio_stream_factory_unittest.cc +++ b/content/browser/media/forwarding_audio_stream_factory_unittest.cc
@@ -71,7 +71,8 @@ class MockBroker : public AudioStreamBroker { public: explicit MockBroker(RenderFrameHost* rfh) - : AudioStreamBroker(rfh->GetProcess()->GetID(), rfh->GetRoutingID()), + : AudioStreamBroker(rfh->GetProcess()->GetDeprecatedID(), + rfh->GetRoutingID()), main_frame_id_(rfh->GetMainFrame()->GetGlobalId()) {} MockBroker(const MockBroker&) = delete; @@ -296,7 +297,7 @@ EXPECT_CALL(*broker, CreateStream(NotNull())); std::ignore = client.InitWithNewPipeAndPassReceiver(); - factory.core()->CreateInputStream(main_rfh()->GetProcess()->GetID(), + factory.core()->CreateInputStream(main_rfh()->GetProcess()->GetDeprecatedID(), main_rfh()->GetRoutingID(), kInputDeviceId, kParams, kSharedMemoryCount, kEnableAgc, std::move(config_ptr), std::move(client)); @@ -321,7 +322,7 @@ EXPECT_CALL(*broker, CreateStream(NotNull())); std::ignore = client.InitWithNewPipeAndPassReceiver(); factory.core()->CreateLoopbackStream( - main_rfh()->GetProcess()->GetID(), main_rfh()->GetRoutingID(), + main_rfh()->GetProcess()->GetDeprecatedID(), main_rfh()->GetRoutingID(), source_factory.core(), kParams, kSharedMemoryCount, kMuteSource, std::move(client)); } @@ -337,7 +338,7 @@ EXPECT_CALL(*broker, CreateStream(NotNull())); std::ignore = client.InitWithNewPipeAndPassReceiver(); factory.core()->CreateOutputStream( - main_rfh()->GetProcess()->GetID(), main_rfh()->GetRoutingID(), + main_rfh()->GetProcess()->GetDeprecatedID(), main_rfh()->GetRoutingID(), main_rfh()->GetGlobalId(), kOutputDeviceId, kParams, std::move(client)); } @@ -357,7 +358,7 @@ client; std::ignore = client.InitWithNewPipeAndPassReceiver(); factory.core()->CreateInputStream( - main_rfh()->GetProcess()->GetID(), main_rfh()->GetRoutingID(), + main_rfh()->GetProcess()->GetDeprecatedID(), main_rfh()->GetRoutingID(), kInputDeviceId, kParams, kSharedMemoryCount, kEnableAgc, AudioProcessingConfigPtr(), std::move(client)); testing::Mock::VerifyAndClear(&*main_rfh_broker); @@ -368,9 +369,10 @@ client; std::ignore = client.InitWithNewPipeAndPassReceiver(); factory.core()->CreateInputStream( - other_rfh()->GetProcess()->GetID(), other_rfh()->GetRoutingID(), - kInputDeviceId, kParams, kSharedMemoryCount, kEnableAgc, - AudioProcessingConfigPtr(), std::move(client)); + other_rfh()->GetProcess()->GetDeprecatedID(), + other_rfh()->GetRoutingID(), kInputDeviceId, kParams, + kSharedMemoryCount, kEnableAgc, AudioProcessingConfigPtr(), + std::move(client)); testing::Mock::VerifyAndClear(&*other_rfh_broker); } @@ -400,7 +402,7 @@ client; std::ignore = client.InitWithNewPipeAndPassReceiver(); factory.core()->CreateLoopbackStream( - main_rfh()->GetProcess()->GetID(), main_rfh()->GetRoutingID(), + main_rfh()->GetProcess()->GetDeprecatedID(), main_rfh()->GetRoutingID(), source_factory.core(), kParams, kSharedMemoryCount, kMuteSource, std::move(client)); testing::Mock::VerifyAndClear(&*main_rfh_broker); @@ -411,9 +413,9 @@ client; std::ignore = client.InitWithNewPipeAndPassReceiver(); factory.core()->CreateLoopbackStream( - other_rfh()->GetProcess()->GetID(), other_rfh()->GetRoutingID(), - source_factory.core(), kParams, kSharedMemoryCount, kMuteSource, - std::move(client)); + other_rfh()->GetProcess()->GetDeprecatedID(), + other_rfh()->GetRoutingID(), source_factory.core(), kParams, + kSharedMemoryCount, kMuteSource, std::move(client)); testing::Mock::VerifyAndClear(&*other_rfh_broker); } @@ -438,7 +440,7 @@ mojo::PendingRemote<media::mojom::AudioOutputStreamProviderClient> client; std::ignore = client.InitWithNewPipeAndPassReceiver(); factory.core()->CreateOutputStream( - main_rfh()->GetProcess()->GetID(), main_rfh()->GetRoutingID(), + main_rfh()->GetProcess()->GetDeprecatedID(), main_rfh()->GetRoutingID(), main_rfh()->GetGlobalId(), kOutputDeviceId, kParams, std::move(client)); testing::Mock::VerifyAndClear(&*main_rfh_broker); } @@ -447,8 +449,9 @@ mojo::PendingRemote<media::mojom::AudioOutputStreamProviderClient> client; std::ignore = client.InitWithNewPipeAndPassReceiver(); factory.core()->CreateOutputStream( - other_rfh()->GetProcess()->GetID(), other_rfh()->GetRoutingID(), - main_rfh()->GetGlobalId(), kOutputDeviceId, kParams, std::move(client)); + other_rfh()->GetProcess()->GetDeprecatedID(), + other_rfh()->GetRoutingID(), main_rfh()->GetGlobalId(), kOutputDeviceId, + kParams, std::move(client)); testing::Mock::VerifyAndClear(&*other_rfh_broker); } @@ -488,7 +491,7 @@ input_client; std::ignore = input_client.InitWithNewPipeAndPassReceiver(); factory.core()->CreateInputStream( - main_rfh()->GetProcess()->GetID(), main_rfh()->GetRoutingID(), + main_rfh()->GetProcess()->GetDeprecatedID(), main_rfh()->GetRoutingID(), kInputDeviceId, kParams, kSharedMemoryCount, kEnableAgc, AudioProcessingConfigPtr(), std::move(input_client)); testing::Mock::VerifyAndClear(&*main_rfh_input_broker); @@ -499,9 +502,10 @@ input_client; std::ignore = input_client.InitWithNewPipeAndPassReceiver(); factory.core()->CreateInputStream( - other_rfh()->GetProcess()->GetID(), other_rfh()->GetRoutingID(), - kInputDeviceId, kParams, kSharedMemoryCount, kEnableAgc, - AudioProcessingConfigPtr(), std::move(input_client)); + other_rfh()->GetProcess()->GetDeprecatedID(), + other_rfh()->GetRoutingID(), kInputDeviceId, kParams, + kSharedMemoryCount, kEnableAgc, AudioProcessingConfigPtr(), + std::move(input_client)); testing::Mock::VerifyAndClear(&*other_rfh_input_broker); } @@ -511,7 +515,7 @@ input_client; std::ignore = input_client.InitWithNewPipeAndPassReceiver(); factory.core()->CreateLoopbackStream( - main_rfh()->GetProcess()->GetID(), main_rfh()->GetRoutingID(), + main_rfh()->GetProcess()->GetDeprecatedID(), main_rfh()->GetRoutingID(), source_factory.core(), kParams, kSharedMemoryCount, kMuteSource, std::move(input_client)); testing::Mock::VerifyAndClear(&*main_rfh_loopback_broker); @@ -522,9 +526,9 @@ input_client; std::ignore = input_client.InitWithNewPipeAndPassReceiver(); factory.core()->CreateLoopbackStream( - other_rfh()->GetProcess()->GetID(), other_rfh()->GetRoutingID(), - source_factory.core(), kParams, kSharedMemoryCount, kMuteSource, - std::move(input_client)); + other_rfh()->GetProcess()->GetDeprecatedID(), + other_rfh()->GetRoutingID(), source_factory.core(), kParams, + kSharedMemoryCount, kMuteSource, std::move(input_client)); testing::Mock::VerifyAndClear(&*other_rfh_loopback_broker); } @@ -534,7 +538,7 @@ output_client; std::ignore = output_client.InitWithNewPipeAndPassReceiver(); factory.core()->CreateOutputStream( - main_rfh()->GetProcess()->GetID(), main_rfh()->GetRoutingID(), + main_rfh()->GetProcess()->GetDeprecatedID(), main_rfh()->GetRoutingID(), main_rfh()->GetGlobalId(), kOutputDeviceId, kParams, std::move(output_client)); testing::Mock::VerifyAndClear(&*main_rfh_output_broker); @@ -545,9 +549,9 @@ output_client; std::ignore = output_client.InitWithNewPipeAndPassReceiver(); factory.core()->CreateOutputStream( - other_rfh()->GetProcess()->GetID(), other_rfh()->GetRoutingID(), - main_rfh()->GetGlobalId(), kOutputDeviceId, kParams, - std::move(output_client)); + other_rfh()->GetProcess()->GetDeprecatedID(), + other_rfh()->GetRoutingID(), main_rfh()->GetGlobalId(), kOutputDeviceId, + kParams, std::move(output_client)); testing::Mock::VerifyAndClear(&*other_rfh_output_broker); } @@ -582,16 +586,16 @@ EXPECT_CALL(*input_broker, CreateStream(NotNull())); std::ignore = input_client.InitWithNewPipeAndPassReceiver(); factory.core()->CreateInputStream( - main_rfh()->GetProcess()->GetID(), main_rfh()->GetRoutingID(), + main_rfh()->GetProcess()->GetDeprecatedID(), main_rfh()->GetRoutingID(), kInputDeviceId, kParams, kSharedMemoryCount, kEnableAgc, AudioProcessingConfigPtr(), std::move(input_client)); EXPECT_CALL(*output_broker, CreateStream(NotNull())); std::ignore = output_client.InitWithNewPipeAndPassReceiver(); - factory.core()->CreateOutputStream(main_rfh()->GetProcess()->GetID(), - main_rfh()->GetRoutingID(), - main_rfh()->GetGlobalId(), kOutputDeviceId, - kParams, std::move(output_client)); + factory.core()->CreateOutputStream( + main_rfh()->GetProcess()->GetDeprecatedID(), main_rfh()->GetRoutingID(), + main_rfh()->GetGlobalId(), kOutputDeviceId, kParams, + std::move(output_client)); // We're about to reset the |TestWebContents|. As such we need to remove the // reference to |other_rfh_| beforehand, otherwise it will become dangling. @@ -626,7 +630,7 @@ input_client; std::ignore = input_client.InitWithNewPipeAndPassReceiver(); factory.core()->CreateInputStream( - main_rfh()->GetProcess()->GetID(), main_rfh()->GetRoutingID(), + main_rfh()->GetProcess()->GetDeprecatedID(), main_rfh()->GetRoutingID(), kInputDeviceId, kParams, kSharedMemoryCount, kEnableAgc, AudioProcessingConfigPtr(), std::move(input_client)); testing::Mock::VerifyAndClear(&*main_rfh_input_broker); @@ -637,9 +641,10 @@ input_client; std::ignore = input_client.InitWithNewPipeAndPassReceiver(); factory.core()->CreateInputStream( - other_rfh()->GetProcess()->GetID(), other_rfh()->GetRoutingID(), - kInputDeviceId, kParams, kSharedMemoryCount, kEnableAgc, - AudioProcessingConfigPtr(), std::move(input_client)); + other_rfh()->GetProcess()->GetDeprecatedID(), + other_rfh()->GetRoutingID(), kInputDeviceId, kParams, + kSharedMemoryCount, kEnableAgc, AudioProcessingConfigPtr(), + std::move(input_client)); testing::Mock::VerifyAndClear(&*other_rfh_input_broker); } @@ -649,7 +654,7 @@ output_client; std::ignore = output_client.InitWithNewPipeAndPassReceiver(); factory.core()->CreateOutputStream( - main_rfh()->GetProcess()->GetID(), main_rfh()->GetRoutingID(), + main_rfh()->GetProcess()->GetDeprecatedID(), main_rfh()->GetRoutingID(), main_rfh()->GetGlobalId(), kOutputDeviceId, kParams, std::move(output_client)); testing::Mock::VerifyAndClear(&*main_rfh_output_broker); @@ -660,9 +665,9 @@ output_client; std::ignore = output_client.InitWithNewPipeAndPassReceiver(); factory.core()->CreateOutputStream( - other_rfh()->GetProcess()->GetID(), other_rfh()->GetRoutingID(), - main_rfh()->GetGlobalId(), kOutputDeviceId, kParams, - std::move(output_client)); + other_rfh()->GetProcess()->GetDeprecatedID(), + other_rfh()->GetRoutingID(), main_rfh()->GetGlobalId(), kOutputDeviceId, + kParams, std::move(output_client)); testing::Mock::VerifyAndClear(&*other_rfh_output_broker); } @@ -715,7 +720,7 @@ EXPECT_CALL(*broker, CreateStream(NotNull())); std::ignore = client.InitWithNewPipeAndPassReceiver(); factory.core()->CreateOutputStream( - main_rfh()->GetProcess()->GetID(), main_rfh()->GetRoutingID(), + main_rfh()->GetProcess()->GetDeprecatedID(), main_rfh()->GetRoutingID(), main_rfh()->GetGlobalId(), kOutputDeviceId, kParams, std::move(client)); base::RunLoop().RunUntilIdle(); testing::Mock::VerifyAndClear(&*broker); @@ -755,7 +760,7 @@ EXPECT_CALL(*broker, CreateStream(NotNull())); std::ignore = client.InitWithNewPipeAndPassReceiver(); factory.core()->CreateOutputStream( - main_rfh()->GetProcess()->GetID(), main_rfh()->GetRoutingID(), + main_rfh()->GetProcess()->GetDeprecatedID(), main_rfh()->GetRoutingID(), main_rfh()->GetGlobalId(), kOutputDeviceId, kParams, std::move(client)); base::RunLoop().RunUntilIdle(); EXPECT_TRUE(factory.IsMuted()); @@ -784,7 +789,7 @@ mojo::PendingRemote<media::mojom::AudioOutputStreamProviderClient> client; std::ignore = client.InitWithNewPipeAndPassReceiver(); factory.core()->CreateOutputStream( - main_rfh()->GetProcess()->GetID(), main_rfh()->GetRoutingID(), + main_rfh()->GetProcess()->GetDeprecatedID(), main_rfh()->GetRoutingID(), main_rfh()->GetGlobalId(), kOutputDeviceId, kParams, std::move(client)); base::RunLoop().RunUntilIdle(); testing::Mock::VerifyAndClear(&*broker); @@ -803,7 +808,7 @@ mojo::PendingRemote<media::mojom::AudioOutputStreamProviderClient> client; std::ignore = client.InitWithNewPipeAndPassReceiver(); factory.core()->CreateOutputStream( - main_rfh()->GetProcess()->GetID(), main_rfh()->GetRoutingID(), + main_rfh()->GetProcess()->GetDeprecatedID(), main_rfh()->GetRoutingID(), main_rfh()->GetGlobalId(), kOutputDeviceId, kParams, std::move(client)); base::RunLoop().RunUntilIdle(); testing::Mock::VerifyAndClear(&*another_broker);
diff --git a/content/browser/media/media_devices_permission_checker_unittest.cc b/content/browser/media/media_devices_permission_checker_unittest.cc index 0bbe91b3..c8790df6 100644 --- a/content/browser/media/media_devices_permission_checker_unittest.cc +++ b/content/browser/media/media_devices_permission_checker_unittest.cc
@@ -70,7 +70,7 @@ base::RunLoop run_loop; quit_closure_ = run_loop.QuitClosure(); checker_.CheckPermission( - device_type, main_rfh()->GetProcess()->GetID(), + device_type, main_rfh()->GetProcess()->GetDeprecatedID(), main_rfh()->GetRoutingID(), base::BindOnce( &MediaDevicesPermissionCheckerTest::CheckPermissionCallback,
diff --git a/content/browser/media/media_interface_proxy.cc b/content/browser/media/media_interface_proxy.cc index 1652fd5..fd482b2 100644 --- a/content/browser/media/media_interface_proxy.cc +++ b/content/browser/media/media_interface_proxy.cc
@@ -392,7 +392,7 @@ media::MojoRendererService::Create( nullptr, std::make_unique<MediaPlayerRenderer>( - render_frame_host().GetProcess()->GetID(), + render_frame_host().GetProcess()->GetDeprecatedID(), render_frame_host().GetRoutingID(), WebContents::FromRenderFrameHost(&render_frame_host()), std::move(renderer_extension_receiver),
diff --git a/content/browser/media/media_internals.cc b/content/browser/media/media_internals.cc index 0541f1c..3e2e692 100644 --- a/content/browser/media/media_internals.cc +++ b/content/browser/media/media_internals.cc
@@ -667,7 +667,7 @@ void MediaInternals::EraseSavedEvents(RenderProcessHost* host) { DCHECK_CURRENTLY_ON(BrowserThread::UI); // TODO(sandersd): Send a termination event before clearing the log. - saved_events_by_process_.erase(host->GetID()); + saved_events_by_process_.erase(host->GetDeprecatedID()); } void MediaInternals::UpdateAudioLog(AudioLogUpdateType type,
diff --git a/content/browser/media/midi_host_unittest.cc b/content/browser/media/midi_host_unittest.cc index 78a0dea..7b87724 100644 --- a/content/browser/media/midi_host_unittest.cc +++ b/content/browser/media/midi_host_unittest.cc
@@ -141,7 +141,8 @@ std::make_unique<FakeMidiManagerFactory>(); factory_ = factory->GetWeakPtr(); service_ = std::make_unique<midi::MidiService>(std::move(factory)); - host_ = std::make_unique<MidiHostForTesting>(rph_->GetID(), service_.get()); + host_ = std::make_unique<MidiHostForTesting>(rph_->GetDeprecatedID(), + service_.get()); mojo::PendingRemote<midi::mojom::MidiSessionClient> client_remote; mojo::MakeSelfOwnedReceiver(std::make_unique<MidiSessionClientForTesting>(), client_remote.InitWithNewPipeAndPassReceiver());
diff --git a/content/browser/navigation_browsertest.cc b/content/browser/navigation_browsertest.cc index ba391611..ba6133e4 100644 --- a/content/browser/navigation_browsertest.cc +++ b/content/browser/navigation_browsertest.cc
@@ -520,7 +520,7 @@ EXPECT_EQ(current_frame_host(), initial_rfh); EXPECT_EQ(current_frame_host()->GetFrameToken(), observer.last_initiator_frame_token().value()); - EXPECT_EQ(current_frame_host()->GetProcess()->GetID(), + EXPECT_EQ(current_frame_host()->GetProcess()->GetDeprecatedID(), observer.last_initiator_process_id()); } } @@ -784,7 +784,7 @@ // Ensure that the process is allowed to access to the chosen file and // does not have access to the other file name. EXPECT_TRUE(ChildProcessSecurityPolicyImpl::GetInstance()->CanReadFile( - current_frame_host()->GetProcess()->GetID(), file_path)); + current_frame_host()->GetProcess()->GetDeprecatedID(), file_path)); // Revoke the access to the file and submit the form. The renderer process // should be terminated. @@ -793,7 +793,7 @@ ChildProcessSecurityPolicyImpl* security_policy = ChildProcessSecurityPolicyImpl::GetInstance(); security_policy->RevokeAllPermissionsForFile( - current_frame_host()->GetProcess()->GetID(), file_path); + current_frame_host()->GetProcess()->GetDeprecatedID(), file_path); // Use EvalJs and respond back to the browser process before doing the actual // submission. This will ensure that the process termination is guaranteed to @@ -3660,7 +3660,7 @@ const GURL& site_url) override { if (!disallowed_process_id_) return true; - return process_host->GetID() != disallowed_process_id_; + return process_host->GetDeprecatedID() != disallowed_process_id_; } void set_effective_url(const GURL& url) { effective_url_ = url; } @@ -3699,7 +3699,7 @@ GURL modified_url0 = embedded_test_server()->GetURL("c.com", "/title1.html#ref1"); new_client.set_effective_url(modified_url0); - new_client.set_disallowed_process(main_frame_process_host->GetID()); + new_client.set_disallowed_process(main_frame_process_host->GetDeprecatedID()); NavigationHandleCommitObserver navigation_1(wc, url1); EXPECT_TRUE(NavigateToURL(shell(), url1)); @@ -3743,7 +3743,7 @@ GURL modified_url0 = embedded_test_server()->GetURL("c.com", "/title1.html#ref1"); new_client.set_effective_url(modified_url0); - new_client.set_disallowed_process(main_frame_process_host->GetID()); + new_client.set_disallowed_process(main_frame_process_host->GetDeprecatedID()); // Navigates to the same-document. Since the SiteInstance changed, we would // normally try isolate this navigation by using a different RenderProcessHost @@ -5799,7 +5799,8 @@ // frame. RenderFrameHost* main_frame = shell()->web_contents()->GetPrimaryMainFrame(); RenderFrameHost* subframe = ChildFrameAt(main_frame, 0); - EXPECT_EQ(main_frame->GetProcess()->GetID(), subframe->GetProcess()->GetID()); + EXPECT_EQ(main_frame->GetProcess()->GetDeprecatedID(), + subframe->GetProcess()->GetDeprecatedID()); // Ask the parent to script the same-origin subframe and trigger some HTTP // subresource loads within the subframe. @@ -5837,8 +5838,8 @@ RenderFrameHost* opener_frame = shell()->web_contents()->GetPrimaryMainFrame(); RenderFrameHost* popup_frame = popup->GetPrimaryMainFrame(); - EXPECT_EQ(opener_frame->GetProcess()->GetID(), - popup_frame->GetProcess()->GetID()); + EXPECT_EQ(opener_frame->GetProcess()->GetDeprecatedID(), + popup_frame->GetProcess()->GetDeprecatedID()); // Ask the opener to script the (same-origin) popup window and trigger some // HTTP subresource loads within the popup. @@ -5890,8 +5891,8 @@ RenderFrameHost* opener_frame = shell()->web_contents()->GetPrimaryMainFrame(); RenderFrameHost* popup_frame = popup->GetPrimaryMainFrame(); - EXPECT_EQ(opener_frame->GetProcess()->GetID(), - popup_frame->GetProcess()->GetID()); + EXPECT_EQ(opener_frame->GetProcess()->GetDeprecatedID(), + popup_frame->GetProcess()->GetDeprecatedID()); // Double-check that the popup didn't commit any navigation and that it has // an the same origin as the initial opener. @@ -5960,8 +5961,8 @@ RenderFrameHost* opener_frame = shell()->web_contents()->GetPrimaryMainFrame(); RenderFrameHost* popup_frame = popup->GetPrimaryMainFrame(); - EXPECT_NE(opener_frame->GetProcess()->GetID(), - popup_frame->GetProcess()->GetID()); + EXPECT_NE(opener_frame->GetProcess()->GetDeprecatedID(), + popup_frame->GetProcess()->GetDeprecatedID()); // Inject Javascript that triggers some subresource loads over HTTP. //
diff --git a/content/browser/network/reporting_service_proxy.cc b/content/browser/network/reporting_service_proxy.cc index a737c39..5d8ca81 100644 --- a/content/browser/network/reporting_service_proxy.cc +++ b/content/browser/network/reporting_service_proxy.cc
@@ -211,7 +211,7 @@ DCHECK_CURRENTLY_ON(content::BrowserThread::UI); mojo::MakeSelfOwnedReceiver( std::make_unique<ReportingServiceProxyImpl>( - render_frame_host->GetProcess()->GetID(), + render_frame_host->GetProcess()->GetDeprecatedID(), render_frame_host->GetReportingSource(), render_frame_host->GetIsolationInfoForSubresources() .network_anonymization_key()), @@ -236,7 +236,7 @@ DCHECK_CURRENTLY_ON(content::BrowserThread::UI); mojo::MakeSelfOwnedReceiver( std::make_unique<ReportingServiceProxyImpl>( - shared_worker_host->GetProcessHost()->GetID(), + shared_worker_host->GetProcessHost()->GetDeprecatedID(), shared_worker_host->GetReportingSource(), shared_worker_host->GetNetworkAnonymizationKey()), std::move(receiver)); @@ -248,7 +248,7 @@ DCHECK_CURRENTLY_ON(content::BrowserThread::UI); mojo::MakeSelfOwnedReceiver( std::make_unique<ReportingServiceProxyImpl>( - dedicated_worker_host->GetProcessHost()->GetID(), + dedicated_worker_host->GetProcessHost()->GetDeprecatedID(), dedicated_worker_host->GetReportingSource(), dedicated_worker_host->GetNetworkAnonymizationKey()), std::move(receiver));
diff --git a/content/browser/notifications/blink_notification_service_impl.cc b/content/browser/notifications/blink_notification_service_impl.cc index 027ba50..8bb81e7e 100644 --- a/content/browser/notifications/blink_notification_service_impl.cc +++ b/content/browser/notifications/blink_notification_service_impl.cc
@@ -95,7 +95,7 @@ : notification_context_(notification_context), browser_context_(browser_context), service_worker_context_(std::move(service_worker_context)), - render_process_host_id_(render_process_host->GetID()), + render_process_host_id_(render_process_host->GetDeprecatedID()), storage_key_(storage_key), storage_key_if_3psp_enabled( storage_key.CopyWithForceEnabledThirdPartyStoragePartitioning()),
diff --git a/content/browser/permissions/permission_controller_impl.cc b/content/browser/permissions/permission_controller_impl.cc index b9d7bdc07..e991887c 100644 --- a/content/browser/permissions/permission_controller_impl.cc +++ b/content/browser/permissions/permission_controller_impl.cc
@@ -746,12 +746,13 @@ PermissionUtil::GetLastCommittedOriginAsURL( render_frame_host->GetMainFrame()); subscription->render_frame_id = render_frame_host->GetRoutingID(); - subscription->render_process_id = render_frame_host->GetProcess()->GetID(); + subscription->render_process_id = + render_frame_host->GetProcess()->GetDeprecatedID(); } else { subscription->embedding_origin = requesting_origin; subscription->render_frame_id = -1; subscription->render_process_id = - render_process_host ? render_process_host->GetID() : -1; + render_process_host ? render_process_host->GetDeprecatedID() : -1; } subscriptions_.AddWithID(std::move(subscription), id);
diff --git a/content/browser/power_monitor_browsertest.cc b/content/browser/power_monitor_browsertest.cc index 0d14b44..1dfcef1 100644 --- a/content/browser/power_monitor_browsertest.cc +++ b/content/browser/power_monitor_browsertest.cc
@@ -115,7 +115,7 @@ base::NullCallback()); } - void BindForRenderer(int render_process_id, + void BindForRenderer(ChildProcessId render_process_id, mojo::GenericPendingReceiver* receiver) { auto r = receiver->As<device::mojom::PowerMonitor>(); if (!r) @@ -176,7 +176,7 @@ private: void BindForRendererOnMainThread( mojo::PendingReceiver<device::mojom::PowerMonitor> receiver, - int render_process_id) { + ChildProcessId render_process_id) { // We can receive binding requests for the spare RenderProcessHost -- this // might happen before the test has provided the |renderer_bound_closure_|. auto* render_process_host =
diff --git a/content/browser/preloading/prefetch/prefetch_network_context.cc b/content/browser/preloading/prefetch/prefetch_network_context.cc index ee4b7ea0..8939f21 100644 --- a/content/browser/preloading/prefetch/prefetch_network_context.cc +++ b/content/browser/preloading/prefetch/prefetch_network_context.cc
@@ -188,7 +188,7 @@ RenderFrameHost::LifecycleState::kPrerendering)); referring_render_process_id = - referring_render_frame_host->GetProcess()->GetID(); + referring_render_frame_host->GetProcess()->GetDeprecatedID(); ukm_source_id = ukm::SourceIdObj::FromInt64( referring_render_frame_host->GetPageUkmSourceId()); } else {
diff --git a/content/browser/preloading/prefetch/prefetch_network_context_unittest.cc b/content/browser/preloading/prefetch/prefetch_network_context_unittest.cc index 4ecb0e5..a22816b 100644 --- a/content/browser/preloading/prefetch/prefetch_network_context_unittest.cc +++ b/content/browser/preloading/prefetch/prefetch_network_context_unittest.cc
@@ -102,16 +102,16 @@ NavigationSimulator::NavigateAndCommitFromBrowser(web_contents(), kReferringUrl); - EXPECT_CALL( - *test_content_browser_client(), - WillCreateURLLoaderFactory( - testing::NotNull(), main_rfh(), main_rfh()->GetProcess()->GetID(), - ContentBrowserClient::URLLoaderFactoryType::kPrefetch, - IsSameOriginWith(kReferringUrl), IsEmptyIsolationInfo(), - testing::Eq(std::nullopt), - ukm::SourceIdObj::FromInt64(main_rfh()->GetPageUkmSourceId()), - testing::_, testing::NotNull(), testing::NotNull(), testing::IsNull(), - testing::IsNull(), testing::IsNull())); + EXPECT_CALL(*test_content_browser_client(), + WillCreateURLLoaderFactory( + testing::NotNull(), main_rfh(), + main_rfh()->GetProcess()->GetDeprecatedID(), + ContentBrowserClient::URLLoaderFactoryType::kPrefetch, + IsSameOriginWith(kReferringUrl), IsEmptyIsolationInfo(), + testing::Eq(std::nullopt), + ukm::SourceIdObj::FromInt64(main_rfh()->GetPageUkmSourceId()), + testing::_, testing::NotNull(), testing::NotNull(), + testing::IsNull(), testing::IsNull(), testing::IsNull())); std::unique_ptr<PrefetchNetworkContext> prefetch_network_context = std::make_unique<PrefetchNetworkContext>( @@ -130,16 +130,16 @@ NavigationSimulator::NavigateAndCommitFromBrowser(web_contents(), kReferringUrl); - EXPECT_CALL( - *test_content_browser_client(), - WillCreateURLLoaderFactory( - testing::NotNull(), main_rfh(), main_rfh()->GetProcess()->GetID(), - ContentBrowserClient::URLLoaderFactoryType::kPrefetch, - IsSameOriginWith(kReferringUrl), IsEmptyIsolationInfo(), - testing::Eq(std::nullopt), - ukm::SourceIdObj::FromInt64(main_rfh()->GetPageUkmSourceId()), - testing::_, testing::NotNull(), testing::NotNull(), testing::IsNull(), - testing::IsNull(), testing::IsNull())); + EXPECT_CALL(*test_content_browser_client(), + WillCreateURLLoaderFactory( + testing::NotNull(), main_rfh(), + main_rfh()->GetProcess()->GetDeprecatedID(), + ContentBrowserClient::URLLoaderFactoryType::kPrefetch, + IsSameOriginWith(kReferringUrl), IsEmptyIsolationInfo(), + testing::Eq(std::nullopt), + ukm::SourceIdObj::FromInt64(main_rfh()->GetPageUkmSourceId()), + testing::_, testing::NotNull(), testing::NotNull(), + testing::IsNull(), testing::IsNull(), testing::IsNull())); std::unique_ptr<PrefetchNetworkContext> prefetch_network_context = std::make_unique<PrefetchNetworkContext>(
diff --git a/content/browser/preloading/prefetch/prefetch_service_unittest.cc b/content/browser/preloading/prefetch/prefetch_service_unittest.cc index df4a879a..32fda648 100644 --- a/content/browser/preloading/prefetch/prefetch_service_unittest.cc +++ b/content/browser/preloading/prefetch/prefetch_service_unittest.cc
@@ -640,7 +640,7 @@ } void NavigateInitiatedByRenderer(const GURL& url) { - Navigate(url, main_rfh()->GetProcess()->GetID(), + Navigate(url, main_rfh()->GetProcess()->GetDeprecatedID(), main_rfh()->GetFrameToken(), MainDocumentToken()); } @@ -755,7 +755,8 @@ bool is_nav_prerender) { return is_renderer_initiated ? SimulatePartOfNavigation( - url, is_nav_prerender, main_rfh()->GetProcess()->GetID(), + url, is_nav_prerender, + main_rfh()->GetProcess()->GetDeprecatedID(), main_rfh()->GetFrameToken(), MainDocumentToken()) : SimulatePartOfNavigation(url, is_nav_prerender, ChildProcessHost::kInvalidUniqueID, @@ -2686,8 +2687,9 @@ ASSERT_NE(other_token, main_rfh()->GetFrameToken()); blink::DocumentToken different_document_token; ASSERT_NE(different_document_token, MainDocumentToken()); - Navigate(GURL("https://example.com"), main_rfh()->GetProcess()->GetID(), - other_token, different_document_token); + Navigate(GURL("https://example.com"), + main_rfh()->GetProcess()->GetDeprecatedID(), other_token, + different_document_token); ExpectPrefetchSuccess(histogram_tester, std::size(kHTMLBody)); EXPECT_FALSE(GetPrefetchToServe(GURL("https://example.com"),
diff --git a/content/browser/preloading/prefetch/prefetch_url_loader_interceptor.cc b/content/browser/preloading/prefetch/prefetch_url_loader_interceptor.cc index 8d016240..4ee87db 100644 --- a/content/browser/preloading/prefetch/prefetch_url_loader_interceptor.cc +++ b/content/browser/preloading/prefetch/prefetch_url_loader_interceptor.cc
@@ -255,7 +255,8 @@ network::mojom::kBrowserProcessId), url_loader_factory::ContentClientParams( BrowserContextFromFrameTreeNodeId(frame_tree_node_id_), - render_frame_host, render_frame_host->GetProcess()->GetID(), + render_frame_host, + render_frame_host->GetProcess()->GetDeprecatedID(), url::Origin(), net::IsolationInfo(), ukm::SourceIdObj::FromInt64( navigation_request->GetNextPageUkmSourceId()),
diff --git a/content/browser/preloading/prefetch/prefetch_url_loader_interceptor_unittest.cc b/content/browser/preloading/prefetch/prefetch_url_loader_interceptor_unittest.cc index 49d8e8a..3c7e1dd 100644 --- a/content/browser/preloading/prefetch/prefetch_url_loader_interceptor_unittest.cc +++ b/content/browser/preloading/prefetch/prefetch_url_loader_interceptor_unittest.cc
@@ -576,17 +576,17 @@ DISABLE_ASAN(InterceptNavigationCookieCopyCompleted)) { const GURL kTestUrl("https://foo.com"); - EXPECT_CALL( - *test_content_browser_client(), - WillCreateURLLoaderFactory( - testing::NotNull(), main_rfh(), main_rfh()->GetProcess()->GetID(), - ContentBrowserClient::URLLoaderFactoryType::kNavigation, - HasOpaqueFrameOrigin(), IsEmptyIsolationInfo(), - testing::Optional(navigation_request()->GetNavigationId()), - ukm::SourceIdObj::FromInt64( - navigation_request()->GetNextPageUkmSourceId()), - testing::_, testing::IsNull(), testing::NotNull(), testing::IsNull(), - testing::IsNull(), testing::IsNull())); + EXPECT_CALL(*test_content_browser_client(), + WillCreateURLLoaderFactory( + testing::NotNull(), main_rfh(), + main_rfh()->GetProcess()->GetDeprecatedID(), + ContentBrowserClient::URLLoaderFactoryType::kNavigation, + HasOpaqueFrameOrigin(), IsEmptyIsolationInfo(), + testing::Optional(navigation_request()->GetNavigationId()), + ukm::SourceIdObj::FromInt64( + navigation_request()->GetNextPageUkmSourceId()), + testing::_, testing::IsNull(), testing::NotNull(), + testing::IsNull(), testing::IsNull(), testing::IsNull())); std::unique_ptr<PrefetchContainer> prefetch_container = CreateSpeculationRulesPrefetchContainer( @@ -633,17 +633,17 @@ DISABLE_ASAN(InterceptNavigationCookieCopyInProgress)) { const GURL kTestUrl("https://example.com"); - EXPECT_CALL( - *test_content_browser_client(), - WillCreateURLLoaderFactory( - testing::NotNull(), main_rfh(), main_rfh()->GetProcess()->GetID(), - ContentBrowserClient::URLLoaderFactoryType::kNavigation, - HasOpaqueFrameOrigin(), IsEmptyIsolationInfo(), - testing::Optional(navigation_request()->GetNavigationId()), - ukm::SourceIdObj::FromInt64( - navigation_request()->GetNextPageUkmSourceId()), - testing::_, testing::IsNull(), testing::NotNull(), testing::IsNull(), - testing::IsNull(), testing::IsNull())); + EXPECT_CALL(*test_content_browser_client(), + WillCreateURLLoaderFactory( + testing::NotNull(), main_rfh(), + main_rfh()->GetProcess()->GetDeprecatedID(), + ContentBrowserClient::URLLoaderFactoryType::kNavigation, + HasOpaqueFrameOrigin(), IsEmptyIsolationInfo(), + testing::Optional(navigation_request()->GetNavigationId()), + ukm::SourceIdObj::FromInt64( + navigation_request()->GetNextPageUkmSourceId()), + testing::_, testing::IsNull(), testing::NotNull(), + testing::IsNull(), testing::IsNull(), testing::IsNull())); std::unique_ptr<PrefetchContainer> prefetch_container = CreateSpeculationRulesPrefetchContainer( @@ -697,17 +697,17 @@ DISABLE_ASAN(InterceptNavigationNoCookieCopyNeeded)) { const GURL kTestUrl("https://example.com"); - EXPECT_CALL( - *test_content_browser_client(), - WillCreateURLLoaderFactory( - testing::NotNull(), main_rfh(), main_rfh()->GetProcess()->GetID(), - ContentBrowserClient::URLLoaderFactoryType::kNavigation, - HasOpaqueFrameOrigin(), IsEmptyIsolationInfo(), - testing::Optional(navigation_request()->GetNavigationId()), - ukm::SourceIdObj::FromInt64( - navigation_request()->GetNextPageUkmSourceId()), - testing::_, testing::IsNull(), testing::NotNull(), testing::IsNull(), - testing::IsNull(), testing::IsNull())); + EXPECT_CALL(*test_content_browser_client(), + WillCreateURLLoaderFactory( + testing::NotNull(), main_rfh(), + main_rfh()->GetProcess()->GetDeprecatedID(), + ContentBrowserClient::URLLoaderFactoryType::kNavigation, + HasOpaqueFrameOrigin(), IsEmptyIsolationInfo(), + testing::Optional(navigation_request()->GetNavigationId()), + ukm::SourceIdObj::FromInt64( + navigation_request()->GetNextPageUkmSourceId()), + testing::_, testing::IsNull(), testing::NotNull(), + testing::IsNull(), testing::IsNull(), testing::IsNull())); // No cookies are copied for prefetches where |use_isolated_network_context| // is false (i.e. same origin prefetches). @@ -751,17 +751,17 @@ const GURL kTestUrl("https://example.com"); - EXPECT_CALL( - *test_content_browser_client(), - WillCreateURLLoaderFactory( - testing::NotNull(), main_rfh(), main_rfh()->GetProcess()->GetID(), - ContentBrowserClient::URLLoaderFactoryType::kNavigation, - HasOpaqueFrameOrigin(), IsEmptyIsolationInfo(), - testing::Optional(navigation_request()->GetNavigationId()), - ukm::SourceIdObj::FromInt64( - navigation_request()->GetNextPageUkmSourceId()), - testing::_, testing::IsNull(), testing::NotNull(), testing::IsNull(), - testing::IsNull(), testing::IsNull())); + EXPECT_CALL(*test_content_browser_client(), + WillCreateURLLoaderFactory( + testing::NotNull(), main_rfh(), + main_rfh()->GetProcess()->GetDeprecatedID(), + ContentBrowserClient::URLLoaderFactoryType::kNavigation, + HasOpaqueFrameOrigin(), IsEmptyIsolationInfo(), + testing::Optional(navigation_request()->GetNavigationId()), + ukm::SourceIdObj::FromInt64( + navigation_request()->GetNextPageUkmSourceId()), + testing::_, testing::IsNull(), testing::NotNull(), + testing::IsNull(), testing::IsNull(), testing::IsNull())); // Creates a same-origin embedder prefetch, which means cookie copy is not // needed. @@ -1060,17 +1060,17 @@ TEST_P(PrefetchURLLoaderInterceptorTest, DISABLE_ASAN(ProbeSuccess)) { const GURL kTestUrl("https://cross-site.example"); - EXPECT_CALL( - *test_content_browser_client(), - WillCreateURLLoaderFactory( - testing::NotNull(), main_rfh(), main_rfh()->GetProcess()->GetID(), - ContentBrowserClient::URLLoaderFactoryType::kNavigation, - HasOpaqueFrameOrigin(), IsEmptyIsolationInfo(), - testing::Optional(navigation_request()->GetNavigationId()), - ukm::SourceIdObj::FromInt64( - navigation_request()->GetNextPageUkmSourceId()), - testing::_, testing::IsNull(), testing::NotNull(), testing::IsNull(), - testing::IsNull(), testing::IsNull())); + EXPECT_CALL(*test_content_browser_client(), + WillCreateURLLoaderFactory( + testing::NotNull(), main_rfh(), + main_rfh()->GetProcess()->GetDeprecatedID(), + ContentBrowserClient::URLLoaderFactoryType::kNavigation, + HasOpaqueFrameOrigin(), IsEmptyIsolationInfo(), + testing::Optional(navigation_request()->GetNavigationId()), + ukm::SourceIdObj::FromInt64( + navigation_request()->GetNextPageUkmSourceId()), + testing::_, testing::IsNull(), testing::NotNull(), + testing::IsNull(), testing::IsNull(), testing::IsNull())); std::unique_ptr<PrefetchContainer> prefetch_container = CreateSpeculationRulesPrefetchContainer( @@ -1352,17 +1352,17 @@ const GURL kTestUrl("https://example.com"); const GURL kRedirectUrl("https://redirect.com"); - EXPECT_CALL( - *test_content_browser_client(), - WillCreateURLLoaderFactory( - testing::NotNull(), main_rfh(), main_rfh()->GetProcess()->GetID(), - ContentBrowserClient::URLLoaderFactoryType::kNavigation, - HasOpaqueFrameOrigin(), IsEmptyIsolationInfo(), - testing::Optional(navigation_request()->GetNavigationId()), - ukm::SourceIdObj::FromInt64( - navigation_request()->GetNextPageUkmSourceId()), - testing::_, testing::IsNull(), testing::NotNull(), testing::IsNull(), - testing::IsNull(), testing::IsNull())) + EXPECT_CALL(*test_content_browser_client(), + WillCreateURLLoaderFactory( + testing::NotNull(), main_rfh(), + main_rfh()->GetProcess()->GetDeprecatedID(), + ContentBrowserClient::URLLoaderFactoryType::kNavigation, + HasOpaqueFrameOrigin(), IsEmptyIsolationInfo(), + testing::Optional(navigation_request()->GetNavigationId()), + ukm::SourceIdObj::FromInt64( + navigation_request()->GetNextPageUkmSourceId()), + testing::_, testing::IsNull(), testing::NotNull(), + testing::IsNull(), testing::IsNull(), testing::IsNull())) .Times(2); std::unique_ptr<PrefetchContainer> prefetch_container = @@ -1429,17 +1429,17 @@ const GURL kTestUrl("https://example.com"); const GURL kRedirectUrl("https://redirect.com"); - EXPECT_CALL( - *test_content_browser_client(), - WillCreateURLLoaderFactory( - testing::NotNull(), main_rfh(), main_rfh()->GetProcess()->GetID(), - ContentBrowserClient::URLLoaderFactoryType::kNavigation, - HasOpaqueFrameOrigin(), IsEmptyIsolationInfo(), - testing::Optional(navigation_request()->GetNavigationId()), - ukm::SourceIdObj::FromInt64( - navigation_request()->GetNextPageUkmSourceId()), - testing::_, testing::IsNull(), testing::NotNull(), testing::IsNull(), - testing::IsNull(), testing::IsNull())) + EXPECT_CALL(*test_content_browser_client(), + WillCreateURLLoaderFactory( + testing::NotNull(), main_rfh(), + main_rfh()->GetProcess()->GetDeprecatedID(), + ContentBrowserClient::URLLoaderFactoryType::kNavigation, + HasOpaqueFrameOrigin(), IsEmptyIsolationInfo(), + testing::Optional(navigation_request()->GetNavigationId()), + ukm::SourceIdObj::FromInt64( + navigation_request()->GetNextPageUkmSourceId()), + testing::_, testing::IsNull(), testing::NotNull(), + testing::IsNull(), testing::IsNull(), testing::IsNull())) .Times(2); std::unique_ptr<PrefetchContainer> prefetch_container =
diff --git a/content/browser/preloading/prerender/prerender_attributes.cc b/content/browser/preloading/prerender/prerender_attributes.cc index f6ff5aa..8c68438 100644 --- a/content/browser/preloading/prerender/prerender_attributes.cc +++ b/content/browser/preloading/prerender/prerender_attributes.cc
@@ -55,7 +55,8 @@ preload_pipeline_info(std::move(preload_pipeline_info)) { if (initiator_render_frame_host) { initiator_origin = initiator_render_frame_host->GetLastCommittedOrigin(); - initiator_process_id = initiator_render_frame_host->GetProcess()->GetID(); + initiator_process_id = + initiator_render_frame_host->GetProcess()->GetDeprecatedID(); initiator_frame_token = initiator_render_frame_host->GetFrameToken(); initiator_frame_tree_node_id = initiator_render_frame_host->GetFrameTreeNodeId();
diff --git a/content/browser/preloading/prerender/prerender_browsertest.cc b/content/browser/preloading/prerender/prerender_browsertest.cc index ef575c8..9ed20ad 100644 --- a/content/browser/preloading/prerender/prerender_browsertest.cc +++ b/content/browser/preloading/prerender/prerender_browsertest.cc
@@ -5419,7 +5419,7 @@ params.initiator_origin = prerendered_render_frame_host->GetLastCommittedOrigin(); params.source_render_process_id = - prerendered_render_frame_host->GetProcess()->GetID(); + prerendered_render_frame_host->GetProcess()->GetDeprecatedID(); params.source_render_frame_id = prerendered_render_frame_host->GetRoutingID(); auto* new_web_contents = prerender_web_contents->OpenURL( params, /*navigation_handle_callback=*/{});
diff --git a/content/browser/preloading/prerender/prerender_new_tab_handle.cc b/content/browser/preloading/prerender/prerender_new_tab_handle.cc index 57785db..adde333 100644 --- a/content/browser/preloading/prerender/prerender_new_tab_handle.cc +++ b/content/browser/preloading/prerender/prerender_new_tab_handle.cc
@@ -31,7 +31,7 @@ // TODO(crbug.com/40234240): Pass the same creation parameters as // WebContentsImpl::CreateNewWindow(). web_contents_create_params_.opener_render_process_id = - initiator_render_frame_host->GetProcess()->GetID(); + initiator_render_frame_host->GetProcess()->GetDeprecatedID(); web_contents_create_params_.opener_render_frame_id = initiator_render_frame_host->GetRoutingID(); web_contents_create_params_.opener_suppressed = true;
diff --git a/content/browser/presentation/presentation_service_impl.cc b/content/browser/presentation/presentation_service_impl.cc index 8eed131..6433898 100644 --- a/content/browser/presentation/presentation_service_impl.cc +++ b/content/browser/presentation/presentation_service_impl.cc
@@ -67,7 +67,7 @@ receiver_delegate_(receiver_delegate), start_presentation_request_id_(kInvalidRequestId), // TODO(imcheng): Consider using RenderFrameHost* directly instead of IDs. - render_process_id_(render_frame_host->GetProcess()->GetID()), + render_process_id_(render_frame_host->GetProcess()->GetDeprecatedID()), render_frame_id_(render_frame_host->GetRoutingID()), is_outermost_document_(!render_frame_host->GetParentOrOuterDocument()) { DCHECK(render_frame_host_); @@ -96,8 +96,9 @@ // static std::unique_ptr<PresentationServiceImpl> PresentationServiceImpl::Create( RenderFrameHost* render_frame_host) { - DVLOG(2) << __func__ << ": " << render_frame_host->GetProcess()->GetID() - << ", " << render_frame_host->GetRoutingID(); + DVLOG(2) << __func__ << ": " + << render_frame_host->GetProcess()->GetDeprecatedID() << ", " + << render_frame_host->GetRoutingID(); WebContents* web_contents = WebContents::FromRenderFrameHost(render_frame_host); DCHECK(web_contents); @@ -431,7 +432,8 @@ if (!render_frame_host) return false; - return render_frame_host->GetProcess()->GetID() == render_process_id_ && + return render_frame_host->GetProcess()->GetDeprecatedID() == + render_process_id_ && render_frame_host->GetRoutingID() == render_frame_id_; }
diff --git a/content/browser/process_internals/process_internals_browsertest.cc b/content/browser/process_internals/process_internals_browsertest.cc index 172da12..cc6d3915 100644 --- a/content/browser/process_internals/process_internals_browsertest.cc +++ b/content/browser/process_internals/process_internals_browsertest.cc
@@ -32,7 +32,11 @@ EXPECT_TRUE(NavigateToURL(shell(), url)); EXPECT_FALSE(ChildProcessSecurityPolicyImpl::GetInstance()->HasWebUIBindings( - shell()->web_contents()->GetPrimaryMainFrame()->GetProcess()->GetID())); + shell() + ->web_contents() + ->GetPrimaryMainFrame() + ->GetProcess() + ->GetDeprecatedID())); // Execute script to ensure the page has loaded correctly and was successful // at retrieving data from the browser process.
diff --git a/content/browser/process_internals/process_internals_handler_impl.cc b/content/browser/process_internals/process_internals_handler_impl.cc index 6467350..9f458ce 100644 --- a/content/browser/process_internals/process_internals_handler_impl.cc +++ b/content/browser/process_internals/process_internals_handler_impl.cc
@@ -41,7 +41,7 @@ frame_info->routing_id = frame->GetRoutingID(); frame_info->agent_scheduling_group_id = frame->GetAgentSchedulingGroup().id_for_debugging(); - frame_info->process_id = frame->GetProcess()->GetID(); + frame_info->process_id = frame->GetProcess()->GetDeprecatedID(); frame_info->last_committed_url = frame->GetLastCommittedURL().is_valid() ? std::make_optional(frame->GetLastCommittedURL())
diff --git a/content/browser/push_messaging/push_messaging_manager.cc b/content/browser/push_messaging/push_messaging_manager.cc index 63332b76..f19bfa7 100644 --- a/content/browser/push_messaging/push_messaging_manager.cc +++ b/content/browser/push_messaging/push_messaging_manager.cc
@@ -196,7 +196,7 @@ // if the renderer if the renderer side check didn't happen for some reason. if (service_worker_registration->ancestor_frame_type() == blink::mojom::AncestorFrameType::kFencedFrame) { - bad_message::ReceivedBadMessage(render_process_host_->GetID(), + bad_message::ReceivedBadMessage(render_process_host_->GetDeprecatedID(), bad_message::PMM_SUBSCRIBE_IN_FENCED_FRAME); return; } @@ -204,7 +204,7 @@ const blink::StorageKey& storage_key = service_worker_registration->key(); if (!ChildProcessSecurityPolicyImpl::GetInstance()->CanAccessDataForOrigin( - render_process_host_->GetID(), storage_key.origin())) { + render_process_host_->GetDeprecatedID(), storage_key.origin())) { bad_message::ReceivedBadMessage(&*render_process_host_, bad_message::PMM_SUBSCRIBE_INVALID_ORIGIN); return; @@ -326,7 +326,7 @@ blink::mojom::PushRegistrationStatus::INCOGNITO_PERMISSION_DENIED); } else { RenderFrameHostImpl* render_frame_host_impl = - RenderFrameHostImpl::FromID(render_process_host_->GetID(), + RenderFrameHostImpl::FromID(render_process_host_->GetDeprecatedID(), render_frame_id_); if (render_frame_host_impl) { render_frame_host_impl->AddMessageToConsole( @@ -364,14 +364,14 @@ if (IsRequestFromDocument(render_frame_id_)) { push_service->SubscribeFromDocument( requesting_origin.GetURL(), registration_id, - render_process_host_->GetID(), render_frame_id_, std::move(options), - user_gesture, + render_process_host_->GetDeprecatedID(), render_frame_id_, + std::move(options), user_gesture, base::BindOnce(&PushMessagingManager::DidRegister, AsWeakPtr(), std::move(data))); } else { push_service->SubscribeFromWorker( requesting_origin.GetURL(), registration_id, - render_process_host_->GetID(), std::move(options), + render_process_host_->GetDeprecatedID(), std::move(options), base::BindOnce(&PushMessagingManager::DidRegister, AsWeakPtr(), std::move(data))); } @@ -519,7 +519,7 @@ const url::Origin& origin = service_worker_registration->key().origin(); if (!ChildProcessSecurityPolicyImpl::GetInstance()->CanAccessDataForOrigin( - render_process_host_->GetID(), origin)) { + render_process_host_->GetDeprecatedID(), origin)) { bad_message::ReceivedBadMessage( &*render_process_host_, bad_message::PMM_UNSUBSCRIBE_INVALID_ORIGIN); return; @@ -608,7 +608,8 @@ service_worker_registration_id); if (registration) { if (!ChildProcessSecurityPolicyImpl::GetInstance()->CanAccessDataForOrigin( - render_process_host_->GetID(), registration->key().origin())) { + render_process_host_->GetDeprecatedID(), + registration->key().origin())) { bad_message::ReceivedBadMessage( &*render_process_host_, bad_message::PMM_GET_SUBSCRIPTION_INVALID_ORIGIN);
diff --git a/content/browser/renderer_host/agent_scheduling_group_host.cc b/content/browser/renderer_host/agent_scheduling_group_host.cc index c2d3384..78f47aa6 100644 --- a/content/browser/renderer_host/agent_scheduling_group_host.cc +++ b/content/browser/renderer_host/agent_scheduling_group_host.cc
@@ -376,8 +376,8 @@ const blink::LocalFrameToken& frame_token) { // |frame_host| could be null if we decided to remove the RenderFrameHostImpl // because the Unload request took too long. - if (auto* frame_host = - RenderFrameHostImpl::FromFrameToken(process_->GetID(), frame_token)) { + if (auto* frame_host = RenderFrameHostImpl::FromFrameToken( + process_->GetDeprecatedID(), frame_token)) { frame_host->OnUnloadACK(); } }
diff --git a/content/browser/renderer_host/clipboard_host_impl.cc b/content/browser/renderer_host/clipboard_host_impl.cc index 8d3bcf6..94bd75f 100644 --- a/content/browser/renderer_host/clipboard_host_impl.cc +++ b/content/browser/renderer_host/clipboard_host_impl.cc
@@ -467,7 +467,8 @@ RenderProcessHost* process = render_frame_host().GetProcess(); result->file_system_id = PrepareDataTransferFilenamesForChildProcess( filenames, ChildProcessSecurityPolicyImpl::GetInstance(), - process->GetID(), process->GetStoragePartition()->GetFileSystemContext()); + process->GetDeprecatedID(), + process->GetStoragePartition()->GetFileSystemContext()); // Convert to DataTransferFiles which creates the access token for each file. StoragePartitionImpl* storage_partition = static_cast<StoragePartitionImpl*>( @@ -475,7 +476,7 @@ std::vector<blink::mojom::DataTransferFilePtr> files = FileInfosToDataTransferFiles( filenames, storage_partition->GetFileSystemAccessManager(), - process->GetID()); + process->GetDeprecatedID()); std::move(files.begin(), files.end(), std::back_inserter(result->files)); PasteIfPolicyAllowed(
diff --git a/content/browser/renderer_host/cookie_utils.cc b/content/browser/renderer_host/cookie_utils.cc index df92d7b..d0b9d44 100644 --- a/content/browser/renderer_host/cookie_utils.cc +++ b/content/browser/renderer_host/cookie_utils.cc
@@ -119,6 +119,15 @@ } } +void RecordCookiesExemptedByTopLevelStorage(ukm::SourceId source_id, + int affected_cookies_in_request) { + ukm::builders::RequestStorageAccessFor_TopLevelStorageIsExemptionReason( + source_id) + .SetNumberOfCookies(ukm::GetExponentialBucketMin( + affected_cookies_in_request, /*bucket_spacing=*/2.0)) + .Record(ukm::UkmRecorder::Get()); +} + // Relies on checks in RecordPartitionedCookiesUKMs to confirm that that the // cookie name is not "receive-cookie-deprecation", that cookie is first party // partitioned and the RenderFrameHost is not prerendering. @@ -306,6 +315,8 @@ bool cookie_has_domain_non_ascii = false; + int cookies_exempted_by_top_level_storage_access = 0; + for (const network::mojom::CookieOrLineWithAccessResultPtr& cookie : cookie_details->cookie_list) { const net::CookieInclusionStatus& status = cookie->access_result.status; @@ -374,6 +385,11 @@ RecordPartitionedCookiesUKMs(rfh, cookie->cookie_or_line->get_cookie()); } + if (cookie->access_result.status.exemption_reason() == + net::CookieInclusionStatus::ExemptionReason::kTopLevelStorageAccess) { + cookies_exempted_by_top_level_storage_access++; + } + breaking_context_downgrade = breaking_context_downgrade || cookie->access_result.status.HasSchemefulDowngradeWarning(); @@ -479,6 +495,12 @@ GetContentClient()->browser()->LogWebFeatureForCurrentPage( rfh, blink::mojom::WebFeature::kCookieDomainNonASCII); } + + if (cookies_exempted_by_top_level_storage_access) { + RecordCookiesExemptedByTopLevelStorage( + rfh->GetPageUkmSourceId(), + cookies_exempted_by_top_level_storage_access); + } } // Logs cookie issues to Legacy Technology Report.
diff --git a/content/browser/renderer_host/cross_process_frame_connector.cc b/content/browser/renderer_host/cross_process_frame_connector.cc index c28ffc2c..adf0e25 100644 --- a/content/browser/renderer_host/cross_process_frame_connector.cc +++ b/content/browser/renderer_host/cross_process_frame_connector.cc
@@ -123,13 +123,13 @@ has_crashed_ = true; RenderFrameHostImpl* current_child_rfh = current_child_frame_host(); - int process_id = current_child_rfh->GetProcess()->GetID(); + int process_id = current_child_rfh->GetProcess()->GetDeprecatedID(); // If a parent, outer document or embedder of `current_child_rfh` has crashed // and has the same RPH, we only want to record the crash once. for (auto* rfh = current_child_rfh->GetParentOrOuterDocumentOrEmbedder(); rfh; rfh = rfh->GetParentOrOuterDocumentOrEmbedder()) { - if (rfh->GetProcess()->GetID() == process_id) { + if (rfh->GetProcess()->GetDeprecatedID() == process_id) { // The crash will be already logged by the ancestor - ignore this crash in // the current instance of the CrossProcessFrameConnector. is_crash_already_logged_ = true;
diff --git a/content/browser/renderer_host/document_token_browsertest.cc b/content/browser/renderer_host/document_token_browsertest.cc index fe4445bf..beb0055 100644 --- a/content/browser/renderer_host/document_token_browsertest.cc +++ b/content/browser/renderer_host/document_token_browsertest.cc
@@ -101,7 +101,8 @@ static_cast<RenderFrameHostImpl*>(adapter.render_frame_host()); FrameTreeNode* const frame_tree_node = old_render_frame_host->frame_tree_node(); - const int old_process_id = old_render_frame_host->GetProcess()->GetID(); + const int old_process_id = + old_render_frame_host->GetProcess()->GetDeprecatedID(); const blink::LocalFrameToken old_frame_token = old_render_frame_host->GetFrameToken(); const blink::DocumentToken old_document_token = @@ -164,10 +165,10 @@ EXPECT_EQ(old_render_frame_host, RenderFrameHostImpl::FromDocumentToken( old_process_id, old_document_token)); } - EXPECT_EQ( - new_render_frame_host, - RenderFrameHostImpl::FromDocumentToken( - new_render_frame_host->GetProcess()->GetID(), new_document_token)); + EXPECT_EQ(new_render_frame_host, + RenderFrameHostImpl::FromDocumentToken( + new_render_frame_host->GetProcess()->GetDeprecatedID(), + new_document_token)); return new_document_token; } }; @@ -256,7 +257,8 @@ static_cast<RenderFrameHostImpl*>(new_contents->GetPrimaryMainFrame()); FrameTreeNode* const frame_tree_node = old_render_frame_host->frame_tree_node(); - const int old_process_id = old_render_frame_host->GetProcess()->GetID(); + const int old_process_id = + old_render_frame_host->GetProcess()->GetDeprecatedID(); const blink::LocalFrameToken old_frame_token = old_render_frame_host->GetFrameToken(); const blink::DocumentToken old_document_token = @@ -318,10 +320,10 @@ EXPECT_EQ(old_render_frame_host, RenderFrameHostImpl::FromDocumentToken( old_process_id, old_document_token)); } - EXPECT_EQ( - new_render_frame_host, - RenderFrameHostImpl::FromDocumentToken( - new_render_frame_host->GetProcess()->GetID(), new_document_token)); + EXPECT_EQ(new_render_frame_host, + RenderFrameHostImpl::FromDocumentToken( + new_render_frame_host->GetProcess()->GetDeprecatedID(), + new_document_token)); seen_tokens.push_back(new_document_token); // The original `WebContents` should still have the same `DocumentToken`. EXPECT_EQ(seen_tokens[0], GetBrowserSideToken(web_contents())); @@ -456,7 +458,7 @@ web_contents(), embedded_test_server()->GetURL("a.com", "/title1.html"))); EXPECT_TRUE(VerifyMatchingTokens(web_contents())); const int old_process_id = - web_contents()->GetPrimaryMainFrame()->GetProcess()->GetID(); + web_contents()->GetPrimaryMainFrame()->GetProcess()->GetDeprecatedID(); const blink::DocumentToken old_document_token = GetBrowserSideToken(web_contents()); @@ -481,7 +483,7 @@ shell()->LoadURL(embedded_test_server()->GetURL("a.com", "/title1.html")); EXPECT_TRUE(VerifyMatchingTokens(web_contents())); const int new_process_id = - web_contents()->GetPrimaryMainFrame()->GetProcess()->GetID(); + web_contents()->GetPrimaryMainFrame()->GetProcess()->GetDeprecatedID(); const blink::DocumentToken token_after_navigation_started = GetBrowserSideToken(web_contents()); EXPECT_NE(token_after_navigation_started, old_document_token); @@ -551,13 +553,17 @@ // Even though the RenderFrameHost did not change, only a lookup using the new // DocumentToken should succeed. EXPECT_EQ(web_contents()->GetPrimaryMainFrame(), - RenderFrameHostImpl::FromDocumentToken( - web_contents()->GetPrimaryMainFrame()->GetProcess()->GetID(), - new_document_token)); + RenderFrameHostImpl::FromDocumentToken(web_contents() + ->GetPrimaryMainFrame() + ->GetProcess() + ->GetDeprecatedID(), + new_document_token)); EXPECT_EQ(nullptr, - RenderFrameHostImpl::FromDocumentToken( - web_contents()->GetPrimaryMainFrame()->GetProcess()->GetID(), - old_document_token)); + RenderFrameHostImpl::FromDocumentToken(web_contents() + ->GetPrimaryMainFrame() + ->GetProcess() + ->GetDeprecatedID(), + old_document_token)); } // TODO(crbug.com/40238502): Add tests for bfcache navigations and @@ -572,7 +578,7 @@ EXPECT_EQ("process ID does not match requested DocumentToken", reason); }); EXPECT_EQ(nullptr, RenderFrameHostImpl::FromDocumentToken( - main_frame->GetProcess()->GetID() + 1, + main_frame->GetProcess()->GetDeprecatedID() + 1, main_frame->GetDocumentToken(), &callback)); EXPECT_TRUE(called); }
diff --git a/content/browser/renderer_host/frame_tree.cc b/content/browser/renderer_host/frame_tree.cc index 5764d8d..6b4ae3f5 100644 --- a/content/browser/renderer_host/frame_tree.cc +++ b/content/browser/renderer_host/frame_tree.cc
@@ -409,7 +409,7 @@ // it is in the same SiteInstance as the parent frame. Ensure that the process // which requested a child frame to be added is the same as the process of the // parent node. - CHECK_EQ(parent->GetProcess()->GetID(), process_id); + CHECK_EQ(parent->GetProcess()->GetDeprecatedID(), process_id); std::unique_ptr<FrameTreeNode> new_node = base::WrapUnique( new FrameTreeNode(*this, parent, scope, is_created_by_script,
diff --git a/content/browser/renderer_host/frame_tree_unittest.cc b/content/browser/renderer_host/frame_tree_unittest.cc index 3d928c8..23c8683 100644 --- a/content/browser/renderer_host/frame_tree_unittest.cc +++ b/content/browser/renderer_host/frame_tree_unittest.cc
@@ -174,7 +174,7 @@ FrameTreeNode* root = frame_tree.root(); constexpr auto kOwnerType = blink::FrameOwnerElementType::kIframe; - int process_id = root->current_frame_host()->GetProcess()->GetID(); + int process_id = root->current_frame_host()->GetProcess()->GetDeprecatedID(); frame_tree.AddFrame( root->current_frame_host(), process_id, 14, CreateStubFrameRemote(), CreateStubBrowserInterfaceBrokerReceiver(), @@ -231,7 +231,7 @@ std::string no_children_node("no children node"); std::string deep_subtree("node with deep subtree"); - int process_id = root->current_frame_host()->GetProcess()->GetID(); + int process_id = root->current_frame_host()->GetProcess()->GetDeprecatedID(); // Do not navigate each frame separately, since that will clutter the test // itself. Instead, leave them in "not live" state, which is indicated by the @@ -506,7 +506,7 @@ EXPECT_EQ(nullptr, frame_tree.FindByID(FrameTreeNodeId())); // Ensure they can be found by routing id. - int process_id = main_test_rfh()->GetProcess()->GetID(); + int process_id = main_test_rfh()->GetProcess()->GetDeprecatedID(); EXPECT_EQ(root, frame_tree.FindByRoutingID(process_id, main_test_rfh()->GetRoutingID())); EXPECT_EQ(child0, frame_tree.FindByRoutingID(process_id, 22)); @@ -676,7 +676,7 @@ contents()->NavigateAndCommit(GURL("http://www.google.com")); FrameTree& frame_tree = contents()->GetPrimaryFrameTree(); FrameTreeNode* root = frame_tree.root(); - int process_id = root->current_frame_host()->GetProcess()->GetID(); + int process_id = root->current_frame_host()->GetProcess()->GetDeprecatedID(); ASSERT_EQ("1: []", GetTreeState(frame_tree));
diff --git a/content/browser/renderer_host/ipc_utils.cc b/content/browser/renderer_host/ipc_utils.cc index 9c729b96..1b7a5b4 100644 --- a/content/browser/renderer_host/ipc_utils.cc +++ b/content/browser/renderer_host/ipc_utils.cc
@@ -182,7 +182,7 @@ const blink::mojom::DownloadURLParams& params) { DCHECK_CURRENTLY_ON(BrowserThread::UI); CHECK(process); - int process_id = process->GetID(); + int process_id = process->GetDeprecatedID(); // Verifies |params.blob_url_token| is appropriately set. if (!VerifyBlobToken(process_id, params.blob_url_token, params.url)) @@ -213,7 +213,7 @@ DCHECK(process); DCHECK(out_validated_url); DCHECK(out_blob_url_loader_factory); - int process_id = process->GetID(); + int process_id = process->GetDeprecatedID(); // Verify |params.url| and populate |out_validated_url|. *out_validated_url = params->url; @@ -281,7 +281,7 @@ DCHECK_CURRENTLY_ON(BrowserThread::UI); DCHECK(common_params); RenderProcessHost* process = current_rfh.GetProcess(); - int process_id = process->GetID(); + int process_id = process->GetDeprecatedID(); // Verify (and possibly rewrite) |url|. process->FilterURL(false, &common_params->url);
diff --git a/content/browser/renderer_host/keep_alive_handle_factory.cc b/content/browser/renderer_host/keep_alive_handle_factory.cc index 336f412..a10d121 100644 --- a/content/browser/renderer_host/keep_alive_handle_factory.cc +++ b/content/browser/renderer_host/keep_alive_handle_factory.cc
@@ -96,7 +96,7 @@ KeepAliveHandleFactory::KeepAliveHandleFactory(RenderProcessHost* process_host, base::TimeDelta timeout) - : context_(std::make_unique<Context>(process_host->GetID())), + : context_(std::make_unique<Context>(process_host->GetDeprecatedID())), timeout_(timeout) {} KeepAliveHandleFactory::~KeepAliveHandleFactory() {
diff --git a/content/browser/renderer_host/media/audio_output_authorization_handler_unittest.cc b/content/browser/renderer_host/media/audio_output_authorization_handler_unittest.cc index 29c59e5..57c74811 100644 --- a/content/browser/renderer_host/media/audio_output_authorization_handler_unittest.cc +++ b/content/browser/renderer_host/media/audio_output_authorization_handler_unittest.cc
@@ -194,7 +194,8 @@ .Times(1); std::unique_ptr<AudioOutputAuthorizationHandler> handler = std::make_unique<AudioOutputAuthorizationHandler>( - GetAudioSystem(), GetMediaStreamManager(), process()->GetID()); + GetAudioSystem(), GetMediaStreamManager(), + process()->GetDeprecatedID()); GetIOThreadTaskRunner({})->PostTask( FROM_HERE, @@ -216,7 +217,8 @@ .Times(1); std::unique_ptr<AudioOutputAuthorizationHandler> handler = std::make_unique<AudioOutputAuthorizationHandler>( - GetAudioSystem(), GetMediaStreamManager(), process()->GetID()); + GetAudioSystem(), GetMediaStreamManager(), + process()->GetDeprecatedID()); GetIOThreadTaskRunner({})->PostTask( FROM_HERE, @@ -242,7 +244,8 @@ MockAuthorizationCallback listener; std::unique_ptr<AudioOutputAuthorizationHandler> handler = std::make_unique<AudioOutputAuthorizationHandler>( - GetAudioSystem(), GetMediaStreamManager(), process()->GetID()); + GetAudioSystem(), GetMediaStreamManager(), + process()->GetDeprecatedID()); GetIOThreadTaskRunner({})->PostTask( FROM_HERE, base::BindOnce( @@ -277,7 +280,8 @@ MockAuthorizationCallback listener; std::unique_ptr<AudioOutputAuthorizationHandler> handler = std::make_unique<AudioOutputAuthorizationHandler>( - GetAudioSystem(), GetMediaStreamManager(), process()->GetID()); + GetAudioSystem(), GetMediaStreamManager(), + process()->GetDeprecatedID()); GetIOThreadTaskRunner({})->PostTask( FROM_HERE, base::BindOnce( @@ -304,7 +308,8 @@ MockAuthorizationCallback listener; std::unique_ptr<AudioOutputAuthorizationHandler> handler = std::make_unique<AudioOutputAuthorizationHandler>( - GetAudioSystem(), GetMediaStreamManager(), process()->GetID()); + GetAudioSystem(), GetMediaStreamManager(), + process()->GetDeprecatedID()); EXPECT_CALL(listener, Run(media::OUTPUT_DEVICE_STATUS_ERROR_NOT_FOUND, _, std::string(), std::string())) @@ -339,7 +344,8 @@ MockAuthorizationCallback listener; std::unique_ptr<AudioOutputAuthorizationHandler> handler = std::make_unique<AudioOutputAuthorizationHandler>( - GetAudioSystem(), GetMediaStreamManager(), process()->GetID()); + GetAudioSystem(), GetMediaStreamManager(), + process()->GetDeprecatedID()); NavigateAndCommit(url); EXPECT_CALL(listener, Run(media::OUTPUT_DEVICE_STATUS_ERROR_NOT_AUTHORIZED, _, @@ -364,7 +370,8 @@ MockAuthorizationCallback listener; std::unique_ptr<AudioOutputAuthorizationHandler> handler = std::make_unique<AudioOutputAuthorizationHandler>( - GetAudioSystem(), GetMediaStreamManager(), process()->GetID()); + GetAudioSystem(), GetMediaStreamManager(), + process()->GetDeprecatedID()); EXPECT_CALL(listener, Run(media::OUTPUT_DEVICE_STATUS_OK, _, kDefaultDeviceId, std::string())) @@ -393,7 +400,8 @@ MockAuthorizationCallback listener; std::unique_ptr<AudioOutputAuthorizationHandler> handler = std::make_unique<AudioOutputAuthorizationHandler>( - GetAudioSystem(), GetMediaStreamManager(), process()->GetID()); + GetAudioSystem(), GetMediaStreamManager(), + process()->GetDeprecatedID()); GetIOThreadTaskRunner({})->PostTask( FROM_HERE, base::BindOnce(
diff --git a/content/browser/renderer_host/media/capture_handle_manager_unittest.cc b/content/browser/renderer_host/media/capture_handle_manager_unittest.cc index a9ab7d7..6b7ef10 100644 --- a/content/browser/renderer_host/media/capture_handle_manager_unittest.cc +++ b/content/browser/renderer_host/media/capture_handle_manager_unittest.cc
@@ -113,7 +113,7 @@ CHECK_LT(device_count_, kMaxDevices); auto& device = devices_[++device_count_]; - const WebContentsMediaCaptureId id(frame->GetProcess()->GetID(), + const WebContentsMediaCaptureId id(frame->GetProcess()->GetDeprecatedID(), frame->GetRoutingID()); device.id = id.ToString(); device.display_media_info = media::mojom::DisplayMediaInformation::New();
diff --git a/content/browser/renderer_host/media/media_stream_ui_proxy_unittest.cc b/content/browser/renderer_host/media/media_stream_ui_proxy_unittest.cc index c1fd4b91..52a077b 100644 --- a/content/browser/renderer_host/media/media_stream_ui_proxy_unittest.cc +++ b/content/browser/renderer_host/media/media_stream_ui_proxy_unittest.cc
@@ -618,7 +618,7 @@ blink::mojom::MediaStreamType mic_type, blink::mojom::MediaStreamType cam_type) { return std::make_unique<MediaStreamRequest>( - rfh->GetProcess()->GetID(), rfh->GetRoutingID(), 0, + rfh->GetProcess()->GetDeprecatedID(), rfh->GetRoutingID(), 0, url::Origin::Create(rfh->GetLastCommittedURL()), false, blink::MEDIA_GENERATE_STREAM, /*requested_audio_device_ids=*/std::vector<std::string>{},
diff --git a/content/browser/renderer_host/media/render_frame_audio_input_stream_factory.cc b/content/browser/renderer_host/media/render_frame_audio_input_stream_factory.cc index 506de74e..ce10de9 100644 --- a/content/browser/renderer_host/media/render_frame_audio_input_stream_factory.cc +++ b/content/browser/renderer_host/media/render_frame_audio_input_stream_factory.cc
@@ -198,7 +198,7 @@ MediaStreamManager* media_stream_manager, RenderFrameHost* render_frame_host) : media_stream_manager_(media_stream_manager), - process_id_(render_frame_host->GetProcess()->GetID()), + process_id_(render_frame_host->GetProcess()->GetDeprecatedID()), frame_id_(render_frame_host->GetRoutingID()), main_frame_id_(render_frame_host->GetMainFrame()->GetGlobalId()) { DCHECK_CURRENTLY_ON(BrowserThread::UI);
diff --git a/content/browser/renderer_host/media/render_frame_audio_input_stream_factory_unittest.cc b/content/browser/renderer_host/media/render_frame_audio_input_stream_factory_unittest.cc index 1fb1a910..0fad2fd 100644 --- a/content/browser/renderer_host/media/render_frame_audio_input_stream_factory_unittest.cc +++ b/content/browser/renderer_host/media/render_frame_audio_input_stream_factory_unittest.cc
@@ -235,8 +235,8 @@ main_rfh()); RenderFrameHost* main_frame = source_contents->GetPrimaryMainFrame(); - WebContentsMediaCaptureId capture_id(main_frame->GetProcess()->GetID(), - main_frame->GetRoutingID()); + WebContentsMediaCaptureId capture_id( + main_frame->GetProcess()->GetDeprecatedID(), main_frame->GetRoutingID()); base::UnguessableToken session_id = audio_input_device_manager()->Open(blink::MediaStreamDevice( blink::mojom::MediaStreamType::GUM_TAB_AUDIO_CAPTURE, @@ -263,8 +263,8 @@ main_rfh()); RenderFrameHost* main_frame = source_contents->GetPrimaryMainFrame(); - WebContentsMediaCaptureId capture_id(main_frame->GetProcess()->GetID(), - main_frame->GetRoutingID()); + WebContentsMediaCaptureId capture_id( + main_frame->GetProcess()->GetDeprecatedID(), main_frame->GetRoutingID()); base::UnguessableToken session_id = audio_input_device_manager()->Open(blink::MediaStreamDevice( blink::mojom::MediaStreamType::GUM_TAB_AUDIO_CAPTURE,
diff --git a/content/browser/renderer_host/media/render_frame_audio_output_stream_factory.cc b/content/browser/renderer_host/media/render_frame_audio_output_stream_factory.cc index bf48b21..dd7f4f7 100644 --- a/content/browser/renderer_host/media/render_frame_audio_output_stream_factory.cc +++ b/content/browser/renderer_host/media/render_frame_audio_output_stream_factory.cc
@@ -230,7 +230,7 @@ MediaStreamManager* media_stream_manager, mojo::PendingReceiver<blink::mojom::RendererAudioOutputStreamFactory> receiver) - : process_id_(frame->GetProcess()->GetID()), + : process_id_(frame->GetProcess()->GetDeprecatedID()), global_render_frame_host_id_(frame->GetGlobalId()), main_frame_id_(frame->GetMainFrame()->GetGlobalId()), authorization_handler_(audio_system, media_stream_manager, process_id_) {
diff --git a/content/browser/renderer_host/navigation_controller_impl.cc b/content/browser/renderer_host/navigation_controller_impl.cc index fdc7ae0..4018872 100644 --- a/content/browser/renderer_host/navigation_controller_impl.cc +++ b/content/browser/renderer_host/navigation_controller_impl.cc
@@ -3170,7 +3170,7 @@ int initiator_process_id = ChildProcessHost::kInvalidUniqueID; if (initiator_rfh) { initiator_frame_token = initiator_rfh->GetFrameToken(); - initiator_process_id = initiator_rfh->GetProcess()->GetID(); + initiator_process_id = initiator_rfh->GetProcess()->GetDeprecatedID(); DCHECK(initiator_frame_token); }
diff --git a/content/browser/renderer_host/navigation_controller_impl_browsertest.cc b/content/browser/renderer_host/navigation_controller_impl_browsertest.cc index 3e2fc8b..9c116dc 100644 --- a/content/browser/renderer_host/navigation_controller_impl_browsertest.cc +++ b/content/browser/renderer_host/navigation_controller_impl_browsertest.cc
@@ -16373,7 +16373,7 @@ EXPECT_TRUE(NavigateToURL(shell(), first_url)); curr_spare_ids = spare_manager.GetSpareIds(); curr_host = shell()->web_contents()->GetPrimaryMainFrame()->GetProcess(); - EXPECT_FALSE(base::Contains(curr_spare_ids, curr_host->GetID())); + EXPECT_FALSE(base::Contains(curr_spare_ids, curr_host->GetDeprecatedID())); // No process swap when navigating away from the initial blank page. EXPECT_EQ(prev_host, curr_host); // We should always keep a spare RenderProcessHost around in site-per-process @@ -16407,7 +16407,7 @@ EXPECT_NE(prev_host, curr_host); // If present, the spare RenderProcessHost should have been be used. if (!prev_spare_ids.empty()) { - EXPECT_TRUE(base::Contains(prev_spare_ids, curr_host->GetID())); + EXPECT_TRUE(base::Contains(prev_spare_ids, curr_host->GetDeprecatedID())); } // A new spare should be warmed-up in site-per-process mode. if (AreAllSitesIsolatedForTesting()) { @@ -16429,7 +16429,7 @@ EXPECT_NE(prev_host, curr_host); // If present, the spare RenderProcessHost should have been used. if (!prev_spare_ids.empty()) { - EXPECT_TRUE(base::Contains(prev_spare_ids, curr_host->GetID())); + EXPECT_TRUE(base::Contains(prev_spare_ids, curr_host->GetDeprecatedID())); } // A new spare should be warmed-up in site-per-process mode. if (AreAllSitesIsolatedForTesting()) { @@ -17701,8 +17701,8 @@ EXPECT_NE(success_site_instance, error_site_instance); EXPECT_TRUE( success_site_instance->IsRelatedSiteInstance(error_site_instance.get())); - EXPECT_NE(success_site_instance->GetProcess()->GetID(), - error_site_instance->GetProcess()->GetID()); + EXPECT_NE(success_site_instance->GetProcess()->GetDeprecatedID(), + error_site_instance->GetProcess()->GetDeprecatedID()); EXPECT_EQ(GURL(kUnreachableWebDataURL), error_site_instance->GetSiteURL()); EXPECT_TRUE(
diff --git a/content/browser/renderer_host/navigation_policy_container_builder_browsertest.cc b/content/browser/renderer_host/navigation_policy_container_builder_browsertest.cc index dfc2ccb0..913903ae 100644 --- a/content/browser/renderer_host/navigation_policy_container_builder_browsertest.cc +++ b/content/browser/renderer_host/navigation_policy_container_builder_browsertest.cc
@@ -463,9 +463,9 @@ // Force implicit conversion from LocalFrameToken to UnguessableToken. const blink::LocalFrameToken& token = initiator->GetFrameToken(); - NavigationPolicyContainerBuilder builder(nullptr, &token, - initiator->GetProcess()->GetID(), - root_storage_partition(), nullptr); + NavigationPolicyContainerBuilder builder( + nullptr, &token, initiator->GetProcess()->GetDeprecatedID(), + root_storage_partition(), nullptr); EXPECT_THAT(builder.InitiatorPolicies(), Pointee(Eq(ByRef(initiator_policies)))); @@ -481,9 +481,9 @@ // Force implicit conversion from LocalFrameToken to UnguessableToken. const blink::LocalFrameToken& token = initiator->GetFrameToken(); - NavigationPolicyContainerBuilder builder(nullptr, &token, - initiator->GetProcess()->GetID(), - root_storage_partition(), nullptr); + NavigationPolicyContainerBuilder builder( + nullptr, &token, initiator->GetProcess()->GetDeprecatedID(), + root_storage_partition(), nullptr); builder.ComputePolicies(AboutBlankUrl(), false, network::mojom::WebSandboxFlags::kNone, /*is_credentialless=*/false); @@ -501,9 +501,9 @@ // Force implicit conversion from LocalFrameToken to UnguessableToken. const blink::LocalFrameToken& token = initiator->GetFrameToken(); - NavigationPolicyContainerBuilder builder(nullptr, &token, - initiator->GetProcess()->GetID(), - root_storage_partition(), nullptr); + NavigationPolicyContainerBuilder builder( + nullptr, &token, initiator->GetProcess()->GetDeprecatedID(), + root_storage_partition(), nullptr); builder.ComputePolicies( GURL("blob:https://example.com/016ece86-b7f9-4b07-88c2-a0e36b7f1dd6"), @@ -524,9 +524,9 @@ // Force implicit conversion from LocalFrameToken to UnguessableToken. const blink::LocalFrameToken& token = initiator->GetFrameToken(); - NavigationPolicyContainerBuilder builder(nullptr, &token, - initiator->GetProcess()->GetID(), - root_storage_partition(), nullptr); + NavigationPolicyContainerBuilder builder( + nullptr, &token, initiator->GetProcess()->GetDeprecatedID(), + root_storage_partition(), nullptr); // Add some CSP. network::mojom::ContentSecurityPolicyPtr test_csp = MakeTestCSP(); @@ -549,9 +549,9 @@ // Force implicit conversion from LocalFrameToken to UnguessableToken. const blink::LocalFrameToken& token = initiator->GetFrameToken(); - NavigationPolicyContainerBuilder builder(nullptr, &token, - initiator->GetProcess()->GetID(), - root_storage_partition(), nullptr); + NavigationPolicyContainerBuilder builder( + nullptr, &token, initiator->GetProcess()->GetDeprecatedID(), + root_storage_partition(), nullptr); EXPECT_THAT(builder.InitiatorPolicies(), Pointee(Eq(ByRef(initiator_policies)))); @@ -575,9 +575,9 @@ // Force implicit conversion from LocalFrameToken to UnguessableToken. const blink::LocalFrameToken& token = initiator->GetFrameToken(); - NavigationPolicyContainerBuilder builder(nullptr, &token, - initiator->GetProcess()->GetID(), - root_storage_partition(), nullptr); + NavigationPolicyContainerBuilder builder( + nullptr, &token, initiator->GetProcess()->GetDeprecatedID(), + root_storage_partition(), nullptr); builder.ComputePolicies(GURL("https://foo.test"), false, network::mojom::WebSandboxFlags::kNone,
diff --git a/content/browser/renderer_host/navigation_request.cc b/content/browser/renderer_host/navigation_request.cc index 8153ca43..bc26c94 100644 --- a/content/browser/renderer_host/navigation_request.cc +++ b/content/browser/renderer_host/navigation_request.cc
@@ -564,8 +564,8 @@ origin_agent_cluster_end_result, bool did_receive_early_hints_before_cross_origin_redirect) { bool is_main_frame = !new_rfh->GetParent(); - bool is_same_process = - old_rfh->GetProcess()->GetID() == new_rfh->GetProcess()->GetID(); + bool is_same_process = old_rfh->GetProcess()->GetDeprecatedID() == + new_rfh->GetProcess()->GetDeprecatedID(); // Navigation.IsSameBrowsingInstance if (is_main_frame) { @@ -1442,7 +1442,7 @@ // TODO(crbug.com/40686861): Find a way to DCHECK that the routing ID // is from the current RFH. int initiator_process_id = - frame_tree_node->current_frame_host()->GetProcess()->GetID(); + frame_tree_node->current_frame_host()->GetProcess()->GetDeprecatedID(); // `was_opener_suppressed` can be true for renderer initiated navigations, but // only in cases which get routed through `CreateBrowserInitiated()` instead. @@ -3358,7 +3358,7 @@ // |CanRedirectToURL| test above. if (!commit_params_->is_browser_initiated && GetSourceSiteInstance() && !ChildProcessSecurityPolicyImpl::GetInstance()->CanRequestURL( - GetSourceSiteInstance()->GetProcess()->GetID(), + GetSourceSiteInstance()->GetProcess()->GetDeprecatedID(), redirect_info.new_url)) { DVLOG(1) << "Denied unauthorized redirect for " << redirect_info.new_url.possibly_invalid_spec(); @@ -6550,7 +6550,7 @@ void NavigationRequest::SetExpectedProcess( RenderProcessHost* expected_process) { if (expected_process && - expected_process->GetID() == expected_render_process_host_id_) { + expected_process->GetDeprecatedID() == expected_render_process_host_id_) { // This |expected_process| has already been informed of the navigation, // no need to update it again. return; @@ -6563,7 +6563,7 @@ // Keep track of the speculative RenderProcessHost and tell it to expect a // navigation to |site_info_|. - expected_render_process_host_id_ = expected_process->GetID(); + expected_render_process_host_id_ = expected_process->GetDeprecatedID(); expected_process->AddObserver(this); RenderProcessHostImpl::AddExpectedNavigationToSite( frame_tree_node()->navigator().controller().GetBrowserContext(), @@ -6597,7 +6597,7 @@ } void NavigationRequest::RenderProcessHostDestroyed(RenderProcessHost* host) { - DCHECK_EQ(host->GetID(), expected_render_process_host_id_); + DCHECK_EQ(host->GetDeprecatedID(), expected_render_process_host_id_); ResetExpectedProcess(); } @@ -6679,7 +6679,7 @@ void NavigationRequest::UpdateSiteInfo( RenderProcessHost* post_redirect_process) { int post_redirect_process_id = post_redirect_process - ? post_redirect_process->GetID() + ? post_redirect_process->GetDeprecatedID() : ChildProcessHost::kInvalidUniqueID; SiteInfo new_site_info = GetSiteInfoForCommonParamsURL(); @@ -8080,8 +8080,9 @@ // Record metrics for the time it takes to get to this state from the // beginning of the navigation. if (!IsSameDocument() && !is_error) { - is_same_process_ = GetRenderFrameHost()->GetProcess()->GetID() == - previous_render_frame_host->GetProcess()->GetID(); + is_same_process_ = + GetRenderFrameHost()->GetProcess()->GetDeprecatedID() == + previous_render_frame_host->GetProcess()->GetDeprecatedID(); RecordReadyToCommitMetrics( previous_render_frame_host, GetRenderFrameHost(), *common_params_.get(), @@ -8376,7 +8377,7 @@ if (HasRenderFrameHost() && !GetRenderFrameHost()->ShouldBypassSecurityChecksForErrorPage(this) && !IsForMhtmlSubframe()) { - int process_id = GetRenderFrameHost()->GetProcess()->GetID(); + int process_id = GetRenderFrameHost()->GetProcess()->GetDeprecatedID(); auto* policy = ChildProcessSecurityPolicyImpl::GetInstance(); CHECK(policy->CanAccessOrigin( process_id, origin_with_debug_info.first, @@ -10817,7 +10818,7 @@ // URL -> origin mapping for it saved in the BlobURLRegistry. std::optional<int> target_rph_id; if (HasRenderFrameHost() && GetRenderFrameHost()->GetProcess()) { - target_rph_id = GetRenderFrameHost()->GetProcess()->GetID(); + target_rph_id = GetRenderFrameHost()->GetProcess()->GetDeprecatedID(); } return std::make_pair( static_cast<StoragePartitionImpl*>(
diff --git a/content/browser/renderer_host/navigation_request_browsertest.cc b/content/browser/renderer_host/navigation_request_browsertest.cc index 07d50c51..e287b93 100644 --- a/content/browser/renderer_host/navigation_request_browsertest.cc +++ b/content/browser/renderer_host/navigation_request_browsertest.cc
@@ -2357,8 +2357,11 @@ { // Reloading the blocked document from the browser process still ends up // in the error page process. - int process_id = - shell()->web_contents()->GetPrimaryMainFrame()->GetProcess()->GetID(); + int process_id = shell() + ->web_contents() + ->GetPrimaryMainFrame() + ->GetProcess() + ->GetDeprecatedID(); NavigationHandleObserver observer(shell()->web_contents(), blocked_url); TestNavigationObserver navigation_observer(shell()->web_contents(), 1); @@ -2376,7 +2379,7 @@ ->web_contents() ->GetPrimaryMainFrame() ->GetProcess() - ->GetID()); + ->GetDeprecatedID()); } else if (AreAllSitesIsolatedForTesting()) { EXPECT_NE( site_instance, @@ -3001,12 +3004,17 @@ } { base::HistogramTester histograms; - int previous_process_id = - shell()->web_contents()->GetPrimaryMainFrame()->GetProcess()->GetID(); + int previous_process_id = shell() + ->web_contents() + ->GetPrimaryMainFrame() + ->GetProcess() + ->GetDeprecatedID(); EXPECT_TRUE(NavigateToURL(shell(), GURL(url::kAboutBlankURL))); - bool process_changed = - (previous_process_id != - shell()->web_contents()->GetPrimaryMainFrame()->GetProcess()->GetID()); + bool process_changed = (previous_process_id != shell() + ->web_contents() + ->GetPrimaryMainFrame() + ->GetProcess() + ->GetDeprecatedID()); check_navigation(histograms, process_changed ? ProcessType::kCross : ProcessType::kSame, FrameType::kMain, TransitionType::kNew);
diff --git a/content/browser/renderer_host/navigator.cc b/content/browser/renderer_host/navigator.cc index 1dc14ea..bc6d0bae 100644 --- a/content/browser/renderer_host/navigator.cc +++ b/content/browser/renderer_host/navigator.cc
@@ -402,7 +402,7 @@ // TODO(nasko): Convert to CHECK() once it is confirmed this is not // violated in reality. if (!ChildProcessSecurityPolicyImpl::GetInstance()->HasWebUIBindings( - render_frame_host->GetProcess()->GetID())) { + render_frame_host->GetProcess()->GetDeprecatedID())) { base::debug::DumpWithoutCrashing(); } @@ -1022,7 +1022,8 @@ params.source_site_instance = current_site_instance; params.source_render_frame_id = render_frame_host->GetRoutingID(); - params.source_render_process_id = render_frame_host->GetProcess()->GetID(); + params.source_render_process_id = + render_frame_host->GetProcess()->GetDeprecatedID(); if (render_frame_host->web_ui()) { // Note that we hide the referrer for Web UI pages. We don't really want
diff --git a/content/browser/renderer_host/p2p/socket_dispatcher_host.cc b/content/browser/renderer_host/p2p/socket_dispatcher_host.cc index 12a1ecb..93e7c4c 100644 --- a/content/browser/renderer_host/p2p/socket_dispatcher_host.cc +++ b/content/browser/renderer_host/p2p/socket_dispatcher_host.cc
@@ -75,7 +75,7 @@ mojo::PendingReceiver<network::mojom::P2PSocketManager> receiver, net::NetworkAnonymizationKey anonymization_key, const GlobalRenderFrameHostId& render_frame_host_id) { - DCHECK_EQ(process.GetID(), render_process_id_); + DCHECK_EQ(process.GetDeprecatedID(), render_process_id_); mojo::PendingRemote<network::mojom::P2PTrustedSocketManagerClient> trusted_socket_manager_client;
diff --git a/content/browser/renderer_host/render_document_host_browsertest.cc b/content/browser/renderer_host/render_document_host_browsertest.cc index 73e727e..b9d3c19 100644 --- a/content/browser/renderer_host/render_document_host_browsertest.cc +++ b/content/browser/renderer_host/render_document_host_browsertest.cc
@@ -142,10 +142,12 @@ EXPECT_EQ(url_1, EvalJs(new_contents, "window.location.href;")); // 3) Navigate the new window same-process. - int process_id = new_contents->GetPrimaryMainFrame()->GetProcess()->GetID(); + int process_id = + new_contents->GetPrimaryMainFrame()->GetProcess()->GetDeprecatedID(); EXPECT_TRUE(NavigateToURL(new_contents, url_2)); - EXPECT_EQ(process_id, - new_contents->GetPrimaryMainFrame()->GetProcess()->GetID()); + EXPECT_EQ( + process_id, + new_contents->GetPrimaryMainFrame()->GetProcess()->GetDeprecatedID()); // The URL is accessible from each side and correctly reflects the current // value.
diff --git a/content/browser/renderer_host/render_frame_host_impl.cc b/content/browser/renderer_host/render_frame_host_impl.cc index 62105d81..7ffc6164 100644 --- a/content/browser/renderer_host/render_frame_host_impl.cc +++ b/content/browser/renderer_host/render_frame_host_impl.cc
@@ -561,7 +561,7 @@ // an extra level of protection against a renderer trying to force a frame // token. if (it == g_token_frame_map.Get().end() || - process_id != it->second->GetProcess()->GetID()) { + process_id != it->second->GetProcess()->GetDeprecatedID()) { return RenderFrameHostOrProxy(nullptr, nullptr); } return RenderFrameHostOrProxy(it->second, nullptr); @@ -1787,7 +1787,7 @@ if (it == g_token_frame_map.Get().end()) return nullptr; - if (it->second->GetProcess()->GetID() != process_id) { + if (it->second->GetProcess()->GetDeprecatedID() != process_id) { if (process_mismatch_callback) { SYSLOG(WARNING) << "Denying illegal RenderFrameHost::FromFrameToken request."; @@ -1813,7 +1813,7 @@ return nullptr; } - if (rfh->GetProcess()->GetID() != process_id) { + if (rfh->GetProcess()->GetDeprecatedID() != process_id) { if (process_mismatch_callback) { SYSLOG(WARNING) << "Denying illegal RenderFrameHost::FromDocumentToken request."; @@ -2056,7 +2056,8 @@ GetAgentSchedulingGroup().AddRoute(routing_id_, this); g_routing_id_frame_map.Get().emplace( - GlobalRenderFrameHostId(GetProcess()->GetID(), routing_id_), this); + GlobalRenderFrameHostId(GetProcess()->GetDeprecatedID(), routing_id_), + this); g_token_frame_map.Get().insert(std::make_pair(frame_token_, this)); site_instance_->group()->AddObserver(this); auto* process = GetProcess(); @@ -2230,7 +2231,7 @@ // calling any delegates/observers, so that any calls to |FromID| no longer // return |this|. g_routing_id_frame_map.Get().erase( - GlobalRenderFrameHostId(GetProcess()->GetID(), routing_id_)); + GlobalRenderFrameHostId(GetProcess()->GetDeprecatedID(), routing_id_)); // Remove this object from the isolatable sandboxed iframe set as well, if // necessary. @@ -3671,8 +3672,8 @@ void RenderFrameHostImpl::SetPolicyContainerHost( scoped_refptr<PolicyContainerHost> policy_container_host) { policy_container_host_ = std::move(policy_container_host); - policy_container_host_->AssociateWithFrameToken(GetFrameToken(), - GetProcess()->GetID()); + policy_container_host_->AssociateWithFrameToken( + GetFrameToken(), GetProcess()->GetDeprecatedID()); // Top-level document are never credentialless. // Note: It is never inherited from the opener, because they are forced to // open windows using noopener. @@ -3960,7 +3961,7 @@ if (previous_frame_token && previous_frame_token->Is<blink::RemoteFrameToken>()) { RenderFrameProxyHost* proxy = RenderFrameProxyHost::FromFrameToken( - GetProcess()->GetID(), + GetProcess()->GetDeprecatedID(), previous_frame_token->GetAs<blink::RemoteFrameToken>()); // We have also created a `blink::RemoteFrame` in CreateFrame above, so // remember that. @@ -4166,7 +4167,7 @@ // `pending_navigate_` is set only by BeginNavigation(), and // BeginNavigation() should only be triggered when the navigation is // initiated by a document in the same process. - const int initiator_process_id = GetProcess()->GetID(); + const int initiator_process_id = GetProcess()->GetDeprecatedID(); // Transfer `pending_navigate_` to a local variable, to avoid resetting it // after OnBeginNavigation since `this` might already be destroyed (see @@ -4440,8 +4441,8 @@ // `document_token` were generated on the browser's IO thread and not taken // from the renderer process. FrameTreeNode* new_frame_tree_node = frame_tree_->AddFrame( - this, GetProcess()->GetID(), new_routing_id, std::move(frame_remote), - std::move(browser_interface_broker_receiver), + this, GetProcess()->GetDeprecatedID(), new_routing_id, + std::move(frame_remote), std::move(browser_interface_broker_receiver), std::move(policy_container_bind_params), std::move(associated_interface_provider_receiver), scope, frame_name, frame_unique_name, is_created_by_script, frame_token, @@ -5774,11 +5775,13 @@ } GlobalRenderFrameHostId RenderFrameHostImpl::GetGlobalId() const { - return GlobalRenderFrameHostId(GetProcess()->GetID(), GetRoutingID()); + return GlobalRenderFrameHostId(GetProcess()->GetDeprecatedID(), + GetRoutingID()); } GlobalRenderFrameHostToken RenderFrameHostImpl::GetGlobalFrameToken() const { - return GlobalRenderFrameHostToken(GetProcess()->GetID(), GetFrameToken()); + return GlobalRenderFrameHostToken(GetProcess()->GetDeprecatedID(), + GetFrameToken()); } bool RenderFrameHostImpl::HasPendingCommitNavigation() const { @@ -6788,7 +6791,7 @@ // This needs to be sent to the opener frame's delegate since it stores // the handle to this class's associated RenderWidgetHostView. RenderFrameHostImpl* opener_frame_host = - FromFrameToken(GetProcess()->GetID(), opener_frame_token); + FromFrameToken(GetProcess()->GetDeprecatedID(), opener_frame_token); // If |opener_frame_host| has been destroyed just return. // TODO(crbug.com/40158114): Get rid of having to look up the opener frame @@ -6870,8 +6873,8 @@ })"); std::unique_ptr<download::DownloadUrlParameters> parameters( new download::DownloadUrlParameters(blink_parameters->url, - GetProcess()->GetID(), GetRoutingID(), - traffic_annotation)); + GetProcess()->GetDeprecatedID(), + GetRoutingID(), traffic_annotation)); parameters->set_content_initiated(!blink_parameters->is_context_menu_save); parameters->set_has_user_gesture(blink_parameters->has_user_gesture); parameters->set_suggested_name( @@ -7087,7 +7090,7 @@ // used to host other content. if (!webui_bindings.empty() && GetProcess()->IsInitializedAndNotDead() && !ChildProcessSecurityPolicyImpl::GetInstance()->HasWebUIBindings( - GetProcess()->GetID())) { + GetProcess()->GetDeprecatedID())) { // This process has no bindings yet. Make sure it does not have any frames // that have committed a navigation, since bindings should always be granted // prior to committing the first WebUI navigation in a process. This is a @@ -7111,7 +7114,7 @@ if (!webui_bindings.empty()) { ChildProcessSecurityPolicyImpl::GetInstance()->GrantWebUIBindings( - GetProcess()->GetID(), webui_bindings); + GetProcess()->GetDeprecatedID(), webui_bindings); } enabled_bindings_.PutAll(bindings); @@ -7358,15 +7361,15 @@ int32_t child_frame_routing_id, bad_message::BadMessageReason reason) { auto child_frame_or_proxy = LookupRenderFrameHostOrProxy( - GetProcess()->GetID(), child_frame_routing_id); + GetProcess()->GetDeprecatedID(), child_frame_routing_id); return FindAndVerifyChildInternal(child_frame_or_proxy, reason); } FrameTreeNode* RenderFrameHostImpl::FindAndVerifyChild( const blink::FrameToken& child_frame_token, bad_message::BadMessageReason reason) { - auto child_frame_or_proxy = - LookupRenderFrameHostOrProxy(GetProcess()->GetID(), child_frame_token); + auto child_frame_or_proxy = LookupRenderFrameHostOrProxy( + GetProcess()->GetDeprecatedID(), child_frame_token); return FindAndVerifyChildInternal(child_frame_or_proxy, reason); } @@ -8835,9 +8838,9 @@ // TODO(crbug.com/40221940): When this handling is refactored into a // separate IPC, make sure that the checks from VerifyOpenURLParams above // are not unintentionally weakened. - if (!ValidateUnfencedTopNavigation(this, validated_params_url, - GetProcess()->GetID(), params->post_body, - params->user_gesture)) { + if (!ValidateUnfencedTopNavigation( + this, validated_params_url, GetProcess()->GetDeprecatedID(), + params->post_body, params->user_gesture)) { return; } @@ -8879,7 +8882,7 @@ target_frame->frame_tree_node()->navigator().NavigateFromFrameProxy( target_frame, validated_params_url, base::OptionalToPtr(params->initiator_frame_token), - GetProcess()->GetID(), params->initiator_origin, + GetProcess()->GetDeprecatedID(), params->initiator_origin, params->initiator_base_url, GetSiteInstance(), content::Referrer(), ui::PAGE_TRANSITION_LINK, should_replace_current_entry, download_policy, "GET", @@ -8900,7 +8903,7 @@ if (params->initiator_frame_token) { RenderFrameHostImpl* initiator_frame = RenderFrameHostImpl::FromFrameToken( - GetProcess()->GetID(), params->initiator_frame_token.value()); + GetProcess()->GetDeprecatedID(), params->initiator_frame_token.value()); // Try recording the AdClickMainFrameNavigation use counter for navigation // targeting this page's main frame, or targeting a new tab. @@ -8920,7 +8923,7 @@ } owner->GetCurrentNavigator().RequestOpenURL( this, validated_url, base::OptionalToPtr(params->initiator_frame_token), - GetProcess()->GetID(), params->initiator_origin, + GetProcess()->GetDeprecatedID(), params->initiator_origin, params->initiator_base_url, params->post_body, params->extra_headers, params->referrer.To<content::Referrer>(), params->disposition, params->should_replace_current_entry, params->user_gesture, @@ -10204,7 +10207,8 @@ return; } RenderFrameHostImpl* target_frame = - LookupRenderFrameHostOrProxy(GetProcess()->GetID(), target_frame_token) + LookupRenderFrameHostOrProxy(GetProcess()->GetDeprecatedID(), + target_frame_token) .GetCurrentFrameHost(); if (!target_frame) { return; @@ -10348,7 +10352,7 @@ // BeginNavigation() should only be triggered when the navigation is // initiated by a document in the same process. - int initiator_process_id = GetProcess()->GetID(); + int initiator_process_id = GetProcess()->GetDeprecatedID(); if (!VerifyNavigationInitiator(this, begin_params->initiator_frame_token, initiator_process_id)) { return; @@ -10357,8 +10361,8 @@ // Container-initiated navigations must come from the same process as the // parent. if (begin_params->is_container_initiated) { - if (!GetParent() || - (initiator_process_id != GetParent()->GetProcess()->GetID())) { + if (!GetParent() || (initiator_process_id != + GetParent()->GetProcess()->GetDeprecatedID())) { mojo::ReportBadMessage( "container initiated navigation from non-parent process"); return; @@ -10451,7 +10455,8 @@ if (begin_params->initiator_frame_token) { RenderFrameHostImpl* initiator_frame = RenderFrameHostImpl::FromFrameToken( - GetProcess()->GetID(), begin_params->initiator_frame_token.value()); + GetProcess()->GetDeprecatedID(), + begin_params->initiator_frame_token.value()); if (IsOutermostMainFrame()) { MaybeRecordAdClickMainFrameNavigationMetrics( initiator_frame, begin_params->initiator_activation_and_ad_status); @@ -10783,7 +10788,7 @@ // Check with ChildProcessSecurityPolicy, which enforces Site Isolation, etc. auto* policy = ChildProcessSecurityPolicyImpl::GetInstance(); const CanCommitStatus can_commit_status = policy->CanCommitOriginAndUrl( - GetProcess()->GetID(), GetSiteInstance()->GetIsolationContext(), + GetProcess()->GetDeprecatedID(), GetSiteInstance()->GetIsolationContext(), UrlInfo( UrlInfoInit(url) .WithOrigin(origin) @@ -11313,8 +11318,8 @@ void RenderFrameHostImpl::AdvanceFocus(blink::mojom::FocusType type, RenderFrameProxyHost* source_proxy) { - DCHECK(!source_proxy || - (source_proxy->GetProcess()->GetID() == GetProcess()->GetID())); + DCHECK(!source_proxy || (source_proxy->GetProcess()->GetDeprecatedID() == + GetProcess()->GetDeprecatedID())); std::optional<blink::RemoteFrameToken> frame_token; if (source_proxy) @@ -11506,7 +11511,8 @@ navigation_request->GetOriginToCommitWithDebugInfo(); if (!process_lock.is_error_page() && !is_mhtml_subframe && !policy->CanAccessOrigin( - GetProcess()->GetID(), browser_calc_origin_to_commit.first.value(), + GetProcess()->GetDeprecatedID(), + browser_calc_origin_to_commit.first.value(), ChildProcessSecurityPolicyImpl::AccessType::kCanCommitNewOrigin)) { SCOPED_CRASH_KEY_STRING64("CommitNavigation", "lock_url", process_lock.ToString()); @@ -11587,9 +11593,9 @@ ContentBrowserClient::URLLoaderFactoryType::kDocumentSubResource, url_loader_factory::TerminalParams::ForNonNetwork( CreateWebUIURLLoaderFactory(this, effective_scheme, {}), - GetProcess()->GetID()), + GetProcess()->GetDeprecatedID()), url_loader_factory::ContentClientParams( - browser_context, this, GetProcess()->GetID(), + browser_context, this, GetProcess()->GetDeprecatedID(), subresource_loader_factories_config.origin(), net::IsolationInfo(), subresource_loader_factories_config.ukm_source_id())); @@ -11673,7 +11679,7 @@ non_network_factories.emplace( url::kFileSystemScheme, CreateFileSystemURLLoaderFactory( - GetProcess()->GetID(), GetFrameTreeNodeId(), + GetProcess()->GetDeprecatedID(), GetFrameTreeNodeId(), partition->GetFileSystemContext(), partition->GetPartitionDomain(), commit_params->storage_key)); @@ -11683,7 +11689,7 @@ GetContentClient() ->browser() ->RegisterNonNetworkSubresourceURLLoaderFactories( - GetProcess()->GetID(), routing_id_, + GetProcess()->GetDeprecatedID(), routing_id_, subresource_loader_factories_config.origin(), &non_network_factories); @@ -11702,9 +11708,10 @@ pending_factory_proxy.InitWithNewPipeAndPassReceiver(), ContentBrowserClient::URLLoaderFactoryType::kDocumentSubResource, url_loader_factory::TerminalParams::ForNonNetwork( - std::move(original_pending_factory), GetProcess()->GetID()), + std::move(original_pending_factory), + GetProcess()->GetDeprecatedID()), url_loader_factory::ContentClientParams( - GetBrowserContext(), this, GetProcess()->GetID(), + GetBrowserContext(), this, GetProcess()->GetDeprecatedID(), subresource_loader_factories_config.origin(), net::IsolationInfo(), subresource_loader_factories_config.ukm_source_id()), @@ -12093,8 +12100,8 @@ auto* storage_partition_impl = static_cast<StoragePartitionImpl*>(GetStoragePartition()); storage_partition_impl->GetBlobUrlRegistry()->AddReceiver( - GetStorageKey(), GetLastCommittedOrigin(), GetProcess()->GetID(), - std::move(receiver), + GetStorageKey(), GetLastCommittedOrigin(), + GetProcess()->GetDeprecatedID(), std::move(receiver), CreateLogWebFeatureClosure( blink::mojom::WebFeature::kCrossPartitionBlobURLFetch)); } @@ -12106,8 +12113,8 @@ static_cast<StoragePartitionImpl*>(GetStoragePartition()); storage_partition_impl->GetBlobUrlRegistry()->AddReceiver( - GetStorageKey(), GetLastCommittedOrigin(), GetProcess()->GetID(), - std::move(receiver)); + GetStorageKey(), GetLastCommittedOrigin(), + GetProcess()->GetDeprecatedID(), std::move(receiver)); } bool RenderFrameHostImpl::IsFocused() { @@ -12165,7 +12172,7 @@ // WebUIs need the ability to request certain schemes. for (const auto& scheme : web_ui_->GetRequestableSchemes()) { ChildProcessSecurityPolicyImpl::GetInstance()->GrantRequestScheme( - GetProcess()->GetID(), scheme); + GetProcess()->GetDeprecatedID(), scheme); } // Since this is new WebUI instance, this RenderFrameHostImpl should not @@ -12568,12 +12575,12 @@ bool RenderFrameHostImpl::CanAccessFilesOfPageState( const blink::PageState& state) { return ChildProcessSecurityPolicyImpl::GetInstance()->CanReadAllFiles( - GetProcess()->GetID(), state.GetReferencedFiles()); + GetProcess()->GetDeprecatedID(), state.GetReferencedFiles()); } void RenderFrameHostImpl::GrantFileAccessFromPageState( const blink::PageState& state) { - GrantFileAccess(GetProcess()->GetID(), state.GetReferencedFiles()); + GrantFileAccess(GetProcess()->GetDeprecatedID(), state.GetReferencedFiles()); } void RenderFrameHostImpl::SetHasPendingLifecycleStateUpdate( @@ -12596,20 +12603,21 @@ void RenderFrameHostImpl::GrantFileAccessFromResourceRequestBody( const network::ResourceRequestBody& body) { - GrantFileAccess(GetProcess()->GetID(), body.GetReferencedFiles()); + GrantFileAccess(GetProcess()->GetDeprecatedID(), body.GetReferencedFiles()); } void RenderFrameHostImpl::UpdatePermissionsForNavigation( NavigationRequest* request) { ChildProcessSecurityPolicyImpl::GetInstance()->GrantCommitURL( - GetProcess()->GetID(), request->common_params().url); + GetProcess()->GetDeprecatedID(), request->common_params().url); if (request->IsLoadDataWithBaseURL()) { // When there's a base URL specified for the data URL, we also need to // grant access to the base URL. This allows file: and other unexpected // schemes to be accepted at commit time and during CORS checks (e.g., for // font requests). ChildProcessSecurityPolicyImpl::GetInstance()->GrantCommitURL( - GetProcess()->GetID(), request->common_params().base_url_for_data_url); + GetProcess()->GetDeprecatedID(), + request->common_params().base_url_for_data_url); } if (request->DidEncounterError()) { @@ -12623,7 +12631,7 @@ // process to use kUnreachableWebDataURL, rather than having the renderer // process make the change independently. ChildProcessSecurityPolicyImpl::GetInstance()->GrantCommitURL( - GetProcess()->GetID(), GURL(kUnreachableWebDataURL)); + GetProcess()->GetDeprecatedID(), GURL(kUnreachableWebDataURL)); } // We may be returning to an existing NavigationEntry that had been granted @@ -12655,7 +12663,7 @@ // is valid for this process, using CanAccessOrigin() to perform jail and // citadel process lock checks, so this origin should to be safe to add. ChildProcessSecurityPolicyImpl::GetInstance()->AddCommittedOrigin( - GetProcess()->GetID(), request->GetOriginToCommit().value()); + GetProcess()->GetDeprecatedID(), request->GetOriginToCommit().value()); } mojo::AssociatedRemote<mojom::NavigationClient> @@ -12730,7 +12738,7 @@ StoragePartition* storage_partition = GetStoragePartition(); network::mojom::URLLoaderFactoryParamsPtr monitoring_factory_params = network::mojom::URLLoaderFactoryParams::New(); - monitoring_factory_params->process_id = GetProcess()->GetID(); + monitoring_factory_params->process_id = GetProcess()->GetDeprecatedID(); monitoring_factory_params->debug_tag = "RFHI - monitoring_factory_params"; // This factory should never be used to issue actual requests (i.e. it @@ -12770,8 +12778,9 @@ url_loader_factory::FactoryOverrideOption::kAllow, url_loader_factory::DisableSecureDnsOption::kAllow), url_loader_factory::ContentClientParams( - GetBrowserContext(), this, GetProcess()->GetID(), request_initiator, - isolation_info, ukm_source_id, &bypass_redirect_checks), + GetBrowserContext(), this, GetProcess()->GetDeprecatedID(), + request_initiator, isolation_info, ukm_source_id, + &bypass_redirect_checks), devtools_instrumentation::WillCreateURLLoaderFactoryParams::ForFrame( this)); return bypass_redirect_checks; @@ -12784,7 +12793,7 @@ return !GetLastCommittedURL().is_valid() || GetLastCommittedURL().SchemeIs(kChromeDevToolsScheme) || ChildProcessSecurityPolicyImpl::GetInstance()->HasWebUIBindings( - GetProcess()->GetID()) || + GetProcess()->GetDeprecatedID()) || // It's possible to load about:blank in a Web UI renderer. // See http://crbug.com/42547 (GetLastCommittedURL().spec() == url::kAboutBlankURL); @@ -12882,7 +12891,7 @@ } RenderFrameHostOrProxy frame_or_proxy = LookupRenderFrameHostOrProxy( - GetProcess()->GetID(), hit_test_response->hit_frame_token); + GetProcess()->GetDeprecatedID(), hit_test_response->hit_frame_token); RenderFrameHostImpl* hit_frame = frame_or_proxy.GetCurrentFrameHost(); if (!hit_frame || hit_frame->IsInactiveAndDisallowActivation( @@ -13097,7 +13106,8 @@ if (!client) return; feature_observer_ = std::make_unique<FeatureObserver>( - client, GlobalRenderFrameHostId(GetProcess()->GetID(), routing_id_)); + client, + GlobalRenderFrameHostId(GetProcess()->GetDeprecatedID(), routing_id_)); } feature_observer_->GetFeatureObserver(std::move(receiver)); } @@ -13277,16 +13287,16 @@ #if BUILDFLAG(ENABLE_MEDIA_REMOTING) void RenderFrameHostImpl::BindMediaRemoterFactoryReceiver( mojo::PendingReceiver<media::mojom::RemoterFactory> receiver) { - mojo::MakeSelfOwnedReceiver( - std::make_unique<RemoterFactoryImpl>(GetProcess()->GetID(), routing_id_), - std::move(receiver)); + mojo::MakeSelfOwnedReceiver(std::make_unique<RemoterFactoryImpl>( + GetProcess()->GetDeprecatedID(), routing_id_), + std::move(receiver)); } #endif void RenderFrameHostImpl::CreateWebSocketConnector( mojo::PendingReceiver<blink::mojom::WebSocketConnector> receiver) { mojo::MakeSelfOwnedReceiver(std::make_unique<WebSocketConnectorImpl>( - GetProcess()->GetID(), routing_id_, + GetProcess()->GetDeprecatedID(), routing_id_, last_committed_origin_, isolation_info_), std::move(receiver)); } @@ -13295,7 +13305,7 @@ mojo::PendingReceiver<blink::mojom::WebTransportConnector> receiver) { mojo::MakeSelfOwnedReceiver( std::make_unique<WebTransportConnectorImpl>( - GetProcess()->GetID(), weak_ptr_factory_.GetWeakPtr(), + GetProcess()->GetDeprecatedID(), weak_ptr_factory_.GetWeakPtr(), last_committed_origin_, isolation_info_.network_anonymization_key()), std::move(receiver)); } @@ -13318,8 +13328,8 @@ const net::NetworkIsolationKey& nik, const blink::StorageKey& storage_key) { // Create a new CodeCacheHostImpl and bind it to the given receiver. - code_cache_host_receivers_.Add(GetProcess()->GetID(), nik, storage_key, - std::move(receiver), + code_cache_host_receivers_.Add(GetProcess()->GetDeprecatedID(), nik, + storage_key, std::move(receiver), GetCodeCacheHostReceiverHandler()); } @@ -13332,7 +13342,7 @@ void RenderFrameHostImpl::CreateDedicatedWorkerHostFactory( mojo::PendingReceiver<blink::mojom::DedicatedWorkerHostFactory> receiver) { // Allocate the worker in the same process as the creator. - int worker_process_id = GetProcess()->GetID(); + int worker_process_id = GetProcess()->GetDeprecatedID(); base::WeakPtr<CrossOriginEmbedderPolicyReporter> coep_reporter; if (coep_reporter_) { @@ -13510,8 +13520,8 @@ GetStoragePartition()->CreateRestrictedCookieManager( network::mojom::RestrictedCookieManagerRole::SCRIPT, origin, isolation_info, - /*is_service_worker=*/false, GetProcess()->GetID(), GetRoutingID(), - cookie_setting_overrides, std::move(receiver), + /*is_service_worker=*/false, GetProcess()->GetDeprecatedID(), + GetRoutingID(), cookie_setting_overrides, std::move(receiver), CreateCookieAccessObserver()); } @@ -14169,9 +14179,9 @@ if ((navigation_request && navigation_request->IsLoadDataWithBaseURL()) || (is_same_document_navigation && renderer_url_info_.was_loaded_from_load_data_with_base_url) || - (origin.opaque() && - ChildProcessSecurityPolicyImpl::GetInstance() - ->HasOriginCheckExemptionForWebView(process->GetID(), origin))) { + (origin.opaque() && ChildProcessSecurityPolicyImpl::GetInstance() + ->HasOriginCheckExemptionForWebView( + process->GetDeprecatedID(), origin))) { // Allow bypass if the process isn't locked. Otherwise run normal checks. if (!process->GetProcessLock().is_locked_to_site()) return true; @@ -14436,7 +14446,7 @@ params->origin.opaque() && !GetProcess()->GetProcessLock().is_locked_to_site()) { ChildProcessSecurityPolicyImpl::GetInstance() - ->GrantOriginCheckExemptionForWebView(GetProcess()->GetID(), + ->GrantOriginCheckExemptionForWebView(GetProcess()->GetDeprecatedID(), params->origin); // Log a crash key when LoadDataWithBaseURL is given an exemption, to help // diagnose any renderer kills that result from it. @@ -14448,7 +14458,7 @@ if (GetOrCreateWebPreferences().allow_universal_access_from_file_urls && params->origin.scheme() == url::kFileScheme) { ChildProcessSecurityPolicyImpl::GetInstance() - ->GrantOriginCheckExemptionForWebView(GetProcess()->GetID(), + ->GrantOriginCheckExemptionForWebView(GetProcess()->GetDeprecatedID(), params->origin); // Log a crash key when universal access is given an exemption, to help // diagnose any renderer kills that result from it. @@ -14583,7 +14593,7 @@ // validated in ValidateDidCommitParams() above prior to getting here. if (is_synchronous_about_blank_commit) { ChildProcessSecurityPolicyImpl::GetInstance()->AddCommittedOrigin( - GetProcess()->GetID(), params->origin); + GetProcess()->GetDeprecatedID(), params->origin); } } @@ -15277,7 +15287,7 @@ storage_info = mojom::StorageInfo::New(); // Bind local storage and session storage areas. auto* partition = GetStoragePartition(); - int process_id = GetProcess()->GetID(); + int process_id = GetProcess()->GetDeprecatedID(); partition->OpenLocalStorageForProcess( process_id, commit_params->storage_key, storage_info->local_storage_area.InitWithNewPipeAndPassReceiver()); @@ -17227,7 +17237,7 @@ mojo::PendingRemote<network::mojom::URLLoaderNetworkServiceObserver> RenderFrameHostImpl::CreateURLLoaderNetworkObserver() { return GetStoragePartition()->CreateURLLoaderNetworkObserverForFrame( - GetProcess()->GetID(), GetRoutingID()); + GetProcess()->GetDeprecatedID(), GetRoutingID()); } PeerConnectionTrackerHost& RenderFrameHostImpl::GetPeerConnectionTrackerHost() { @@ -17385,7 +17395,8 @@ SetAXTreeID(ax_tree_id); needs_ax_root_id_ = true; ui::AXActionHandlerRegistry::GetInstance()->SetFrameIDForAXTreeID( - ui::AXActionHandlerRegistry::FrameID(GetProcess()->GetID(), routing_id_), + ui::AXActionHandlerRegistry::FrameID(GetProcess()->GetDeprecatedID(), + routing_id_), ax_tree_id); // Also important to notify the delegate so that the relevant observers can @@ -17592,8 +17603,8 @@ } storage::BucketClientInfo RenderFrameHostImpl::GetBucketClientInfo() const { - return storage::BucketClientInfo{GetProcess()->GetID(), GetFrameToken(), - GetDocumentToken()}; + return storage::BucketClientInfo{GetProcess()->GetDeprecatedID(), + GetFrameToken(), GetDocumentToken()}; } std::ostream& operator<<(std::ostream& o,
diff --git a/content/browser/renderer_host/render_frame_host_impl_browsertest.cc b/content/browser/renderer_host/render_frame_host_impl_browsertest.cc index 5ee8505..3bae69b 100644 --- a/content/browser/renderer_host/render_frame_host_impl_browsertest.cc +++ b/content/browser/renderer_host/render_frame_host_impl_browsertest.cc
@@ -6039,7 +6039,7 @@ EXPECT_TRUE(NavigateToURL(shell(), url_1)); RenderFrameHostImpl* rfh_b = root_frame_host()->child_at(0)->current_frame_host(); - int subframe_process_id = rfh_b->GetProcess()->GetID(); + int subframe_process_id = rfh_b->GetProcess()->GetDeprecatedID(); RenderFrameDeletedObserver delete_rfh_b(rfh_b); TestFrameNavigationObserver commit_observer( web_contents()->GetPrimaryFrameTree().root()); @@ -6074,7 +6074,7 @@ RenderFrameHostImpl* new_rfh_b = root_frame_host()->child_at(0)->current_frame_host(); ASSERT_EQ(RenderProcessHostImpl::ShouldDelayProcessShutdown(), - subframe_process_id == new_rfh_b->GetProcess()->GetID()); + subframe_process_id == new_rfh_b->GetProcess()->GetDeprecatedID()); // The process should no longer be in the pending-delete tracker, as it has // been reused.
diff --git a/content/browser/renderer_host/render_frame_host_impl_interface_binders.cc b/content/browser/renderer_host/render_frame_host_impl_interface_binders.cc index ec8bd7a2..c7e82c7 100644 --- a/content/browser/renderer_host/render_frame_host_impl_interface_binders.cc +++ b/content/browser/renderer_host/render_frame_host_impl_interface_binders.cc
@@ -277,7 +277,7 @@ base::Unretained(this))); file_system_manager_.reset(new FileSystemManagerImpl( - GetProcess()->GetID(), + GetProcess()->GetDeprecatedID(), GetProcess()->GetStoragePartition()->GetFileSystemContext(), ChromeBlobStorageContext::GetFor(GetProcess()->GetBrowserContext())));
diff --git a/content/browser/renderer_host/render_frame_host_manager.cc b/content/browser/renderer_host/render_frame_host_manager.cc index 87f6718..0b06dad1 100644 --- a/content/browser/renderer_host/render_frame_host_manager.cc +++ b/content/browser/renderer_host/render_frame_host_manager.cc
@@ -978,7 +978,8 @@ FrameTreeNode* opener = nullptr; if (opener_frame_token) { RenderFrameHostImpl* opener_rfhi = RenderFrameHostImpl::FromFrameToken( - source_site_instance_group->process()->GetID(), *opener_frame_token); + source_site_instance_group->process()->GetDeprecatedID(), + *opener_frame_token); // If |opener_rfhi| is null, the opener RFH has already disappeared. In // this case, clear the opener rather than keeping the old opener around. if (opener_rfhi) @@ -2045,7 +2046,7 @@ ? request->GetOriginToCommit().value() : request->GetTentativeOriginAtRequestTime(); if (!policy->CanAccessOrigin( - navigation_rfh->GetProcess()->GetID(), origin_to_commit, + navigation_rfh->GetProcess()->GetDeprecatedID(), origin_to_commit, ChildProcessSecurityPolicyImpl::AccessType::kCanCommitNewOrigin)) { SCOPED_CRASH_KEY_STRING256("GetFrameHostForNav", "lock_url", process_lock.ToString()); @@ -2546,7 +2547,7 @@ // For security, we should transition between processes when one is a Web UI // page and one isn't, or if the WebUI types differ. if (ChildProcessSecurityPolicyImpl::GetInstance()->HasWebUIBindings( - render_frame_host_->GetProcess()->GetID()) || + render_frame_host_->GetProcess()->GetDeprecatedID()) || WebUIControllerFactoryRegistry::GetInstance()->UseWebUIForURL( browser_context, current_effective_url)) { // If so, force a swap if destination is not an acceptable URL for Web UI. @@ -5747,8 +5748,9 @@ void RenderFrameHostManager::NotifyPrepareForInnerDelegateAttachComplete( bool success) { DCHECK(is_attaching_inner_delegate()); - int32_t process_id = success ? render_frame_host_->GetProcess()->GetID() - : ChildProcessHost::kInvalidUniqueID; + int32_t process_id = success + ? render_frame_host_->GetProcess()->GetDeprecatedID() + : ChildProcessHost::kInvalidUniqueID; int32_t routing_id = success ? render_frame_host_->GetRoutingID() : MSG_ROUTING_NONE; // Invoking the callback asynchronously to meet the APIs promise.
diff --git a/content/browser/renderer_host/render_frame_host_manager_browsertest.cc b/content/browser/renderer_host/render_frame_host_manager_browsertest.cc index cc07d0f..763e46d8 100644 --- a/content/browser/renderer_host/render_frame_host_manager_browsertest.cc +++ b/content/browser/renderer_host/render_frame_host_manager_browsertest.cc
@@ -2296,7 +2296,11 @@ std::string(kChromeUIGpuHost)); EXPECT_TRUE(NavigateToURL(shell(), webui_url)); EXPECT_TRUE(ChildProcessSecurityPolicyImpl::GetInstance()->HasWebUIBindings( - shell()->web_contents()->GetPrimaryMainFrame()->GetProcess()->GetID())); + shell() + ->web_contents() + ->GetPrimaryMainFrame() + ->GetProcess() + ->GetDeprecatedID())); // Crash the renderer of the WebUI page. RenderProcessHostWatcher crash_observer( @@ -2351,7 +2355,11 @@ std::string(kChromeUIGpuHost))); EXPECT_TRUE(NavigateToURL(shell(), webui_url)); EXPECT_TRUE(ChildProcessSecurityPolicyImpl::GetInstance()->HasWebUIBindings( - shell()->web_contents()->GetPrimaryMainFrame()->GetProcess()->GetID())); + shell() + ->web_contents() + ->GetPrimaryMainFrame() + ->GetProcess() + ->GetDeprecatedID())); // Go back and ensure we have no WebUI bindings. TestNavigationObserver back_nav_load_observer(shell()->web_contents()); @@ -2359,7 +2367,11 @@ back_nav_load_observer.Wait(); EXPECT_EQ(original_url, shell()->web_contents()->GetLastCommittedURL()); EXPECT_FALSE(ChildProcessSecurityPolicyImpl::GetInstance()->HasWebUIBindings( - shell()->web_contents()->GetPrimaryMainFrame()->GetProcess()->GetID())); + shell() + ->web_contents() + ->GetPrimaryMainFrame() + ->GetProcess() + ->GetDeprecatedID())); } // crbug.com/424526 @@ -2376,7 +2388,11 @@ std::string(kChromeUIGpuHost)); EXPECT_TRUE(NavigateToURL(shell(), web_ui_url)); EXPECT_TRUE(ChildProcessSecurityPolicyImpl::GetInstance()->HasWebUIBindings( - shell()->web_contents()->GetPrimaryMainFrame()->GetProcess()->GetID())); + shell() + ->web_contents() + ->GetPrimaryMainFrame() + ->GetProcess() + ->GetDeprecatedID())); // Capture the SiteInstance before navigating to about:blank to ensure // it doesn't change. @@ -2389,7 +2405,11 @@ GURL regular_page_url(embedded_test_server()->GetURL("/title2.html")); EXPECT_TRUE(NavigateToURL(shell(), regular_page_url)); EXPECT_FALSE(ChildProcessSecurityPolicyImpl::GetInstance()->HasWebUIBindings( - shell()->web_contents()->GetPrimaryMainFrame()->GetProcess()->GetID())); + shell() + ->web_contents() + ->GetPrimaryMainFrame() + ->GetProcess() + ->GetDeprecatedID())); } // crbug.com/615274 @@ -2469,8 +2489,11 @@ // Navigate and try to get page to reference this file in its PageState. GURL url1(embedded_test_server()->GetURL("/file_input.html")); EXPECT_TRUE(NavigateToURL(shell(), url1)); - int process_id = - shell()->web_contents()->GetPrimaryMainFrame()->GetProcess()->GetID(); + int process_id = shell() + ->web_contents() + ->GetPrimaryMainFrame() + ->GetProcess() + ->GetDeprecatedID(); std::unique_ptr<FileChooserDelegate> delegate( new FileChooserDelegate(file, run_loop.QuitClosure())); shell()->web_contents()->SetDelegate(delegate.get()); @@ -2501,7 +2524,11 @@ EXPECT_TRUE(NavigateToURL(shell(), GetCrossSiteURL("/title1.html"))); exit_observer.Wait(); EXPECT_FALSE(ChildProcessSecurityPolicyImpl::GetInstance()->CanReadFile( - shell()->web_contents()->GetPrimaryMainFrame()->GetProcess()->GetID(), + shell() + ->web_contents() + ->GetPrimaryMainFrame() + ->GetProcess() + ->GetDeprecatedID(), file)); // The renderer process should not have been killed. This is the important @@ -2537,7 +2564,7 @@ // Navigate to url and get it to reference a file in its PageState. GURL url1(embedded_test_server()->GetURL("/file_input.html")); EXPECT_TRUE(NavigateToURL(shell(), url1)); - int process_id = wc->GetPrimaryMainFrame()->GetProcess()->GetID(); + int process_id = wc->GetPrimaryMainFrame()->GetProcess()->GetDeprecatedID(); std::unique_ptr<FileChooserDelegate> delegate( new FileChooserDelegate(file, run_loop.QuitClosure())); wc->SetDelegate(delegate.get()); @@ -2563,7 +2590,7 @@ EXPECT_TRUE(NavigateToURL(shell(), GetCrossSiteURL("/title1.html"))); exit_observer.Wait(); EXPECT_FALSE(ChildProcessSecurityPolicyImpl::GetInstance()->CanReadFile( - wc->GetPrimaryMainFrame()->GetProcess()->GetID(), file)); + wc->GetPrimaryMainFrame()->GetProcess()->GetDeprecatedID(), file)); // Ensure that the file ended up in the PageState of the previous entry. NavigationEntry* prev_entry = wc->GetController().GetEntryAtIndex(0); @@ -2577,11 +2604,12 @@ TestNavigationObserver back_nav_load_observer(wc); wc->GetController().GoBack(); back_nav_load_observer.Wait(); - EXPECT_NE(process_id, wc->GetPrimaryMainFrame()->GetProcess()->GetID()); + EXPECT_NE(process_id, + wc->GetPrimaryMainFrame()->GetProcess()->GetDeprecatedID()); // Ensure that the file access still exists in the new process ID. EXPECT_TRUE(ChildProcessSecurityPolicyImpl::GetInstance()->CanReadFile( - wc->GetPrimaryMainFrame()->GetProcess()->GetID(), file)); + wc->GetPrimaryMainFrame()->GetProcess()->GetDeprecatedID(), file)); // Navigate to a same site page to trigger a PageState update and ensure the // renderer is not killed. @@ -2604,7 +2632,7 @@ // Navigate to url and get it to reference a file in its PageState. GURL url1(embedded_test_server()->GetURL("/file_input.html")); EXPECT_TRUE(NavigateToURL(shell(), url1)); - int process_id = wc->GetPrimaryMainFrame()->GetProcess()->GetID(); + int process_id = wc->GetPrimaryMainFrame()->GetProcess()->GetDeprecatedID(); std::unique_ptr<FileChooserDelegate> delegate( new FileChooserDelegate(file, run_loop.QuitClosure())); wc->SetDelegate(delegate.get()); @@ -2649,7 +2677,7 @@ // The renderer process is still allowed to read the file, even if it is // crashed. EXPECT_TRUE(ChildProcessSecurityPolicyImpl::GetInstance()->CanReadFile( - wc->GetPrimaryMainFrame()->GetProcess()->GetID(), file)); + wc->GetPrimaryMainFrame()->GetProcess()->GetDeprecatedID(), file)); // Reload wc->GetController().Reload(ReloadType::NORMAL, false); @@ -2658,7 +2686,7 @@ // After recovering from the crash, the renderer process is allowed to read // the file. EXPECT_TRUE(ChildProcessSecurityPolicyImpl::GetInstance()->CanReadFile( - wc->GetPrimaryMainFrame()->GetProcess()->GetID(), file)); + wc->GetPrimaryMainFrame()->GetProcess()->GetDeprecatedID(), file)); // Same-document history back navigation. { @@ -2669,7 +2697,7 @@ // Ensure that the file access still exists in the new process ID. EXPECT_TRUE(ChildProcessSecurityPolicyImpl::GetInstance()->CanReadFile( - wc->GetPrimaryMainFrame()->GetProcess()->GetID(), file)); + wc->GetPrimaryMainFrame()->GetProcess()->GetDeprecatedID(), file)); // Navigate to a same site page to trigger a PageState update and ensure the // renderer is not killed. @@ -2691,8 +2719,11 @@ EXPECT_TRUE(NavigateToURL(shell(), url1)); WebContentsImpl* wc = static_cast<WebContentsImpl*>(shell()->web_contents()); FrameTreeNode* root = wc->GetPrimaryFrameTree().root(); - int process_id = - shell()->web_contents()->GetPrimaryMainFrame()->GetProcess()->GetID(); + int process_id = shell() + ->web_contents() + ->GetPrimaryMainFrame() + ->GetProcess() + ->GetDeprecatedID(); std::unique_ptr<FileChooserDelegate> delegate( new FileChooserDelegate(file, run_loop.QuitClosure())); shell()->web_contents()->SetDelegate(delegate.get()); @@ -2731,7 +2762,11 @@ EXPECT_TRUE(NavigateToURL(shell(), GetCrossSiteURL("/title1.html"))); exit_observer.Wait(); EXPECT_FALSE(ChildProcessSecurityPolicyImpl::GetInstance()->CanReadFile( - shell()->web_contents()->GetPrimaryMainFrame()->GetProcess()->GetID(), + shell() + ->web_contents() + ->GetPrimaryMainFrame() + ->GetProcess() + ->GetDeprecatedID(), file)); // Ensure that the file ended up in the PageState of the previous entry. @@ -2747,13 +2782,19 @@ TestNavigationObserver back_nav_load_observer(shell()->web_contents()); shell()->web_contents()->GetController().GoToIndex(0); back_nav_load_observer.Wait(); - EXPECT_NE( - process_id, - shell()->web_contents()->GetPrimaryMainFrame()->GetProcess()->GetID()); + EXPECT_NE(process_id, shell() + ->web_contents() + ->GetPrimaryMainFrame() + ->GetProcess() + ->GetDeprecatedID()); // Ensure that the file access still exists in the new process ID. EXPECT_TRUE(ChildProcessSecurityPolicyImpl::GetInstance()->CanReadFile( - shell()->web_contents()->GetPrimaryMainFrame()->GetProcess()->GetID(), + shell() + ->web_contents() + ->GetPrimaryMainFrame() + ->GetProcess() + ->GetDeprecatedID(), file)); // Do another in-page navigation in the child to make sure we hear a PageState @@ -2813,7 +2854,7 @@ // Ensure that the file access exists in the new process ID. EXPECT_TRUE(ChildProcessSecurityPolicyImpl::GetInstance()->CanReadFile( - new_root->current_frame_host()->GetProcess()->GetID(), file)); + new_root->current_frame_host()->GetProcess()->GetDeprecatedID(), file)); // Also, extract the file from the renderer process to ensure that the // response made it over successfully and the proper filename is set. @@ -2843,8 +2884,10 @@ .root(); auto orig_site_instance_id = root->current_frame_host()->GetSiteInstance()->GetId(); - int initial_process_id = - root->current_frame_host()->GetSiteInstance()->GetProcess()->GetID(); + int initial_process_id = root->current_frame_host() + ->GetSiteInstance() + ->GetProcess() + ->GetDeprecatedID(); int initial_rfh_id = root->current_frame_host()->GetRoutingID(); int initial_rvh_id = root->current_frame_host()->render_view_host()->GetRoutingID(); @@ -4361,8 +4404,8 @@ EXPECT_TRUE(success_site_instance->IsRelatedSiteInstance( error_site_instance.get())); } - EXPECT_NE(success_site_instance->GetProcess()->GetID(), - error_site_instance->GetProcess()->GetID()); + EXPECT_NE(success_site_instance->GetProcess()->GetDeprecatedID(), + error_site_instance->GetProcess()->GetDeprecatedID()); EXPECT_TRUE(HasErrorPageSiteInfo(error_site_instance.get())); // Verify that the error page process is locked to origin @@ -4400,8 +4443,8 @@ EXPECT_TRUE(success_site_instance->IsRelatedSiteInstance( error_site_instance.get())); } - EXPECT_NE(success_site_instance->GetProcess()->GetID(), - error_site_instance->GetProcess()->GetID()); + EXPECT_NE(success_site_instance->GetProcess()->GetDeprecatedID(), + error_site_instance->GetProcess()->GetDeprecatedID()); EXPECT_TRUE(HasErrorPageSiteInfo(error_site_instance.get())); // Verify that the error page process is locked to origin @@ -4597,8 +4640,11 @@ } EXPECT_EQ(3, nav_controller.GetEntryCount()); EXPECT_EQ(1, nav_controller.GetLastCommittedEntryIndex()); - int process_id = - shell()->web_contents()->GetPrimaryMainFrame()->GetProcess()->GetID(); + int process_id = shell() + ->web_contents() + ->GetPrimaryMainFrame() + ->GetProcess() + ->GetDeprecatedID(); EXPECT_TRUE(HasErrorPageProcessLock( shell()->web_contents()->GetPrimaryMainFrame()->GetSiteInstance())); EXPECT_TRUE(IsMainFrameOriginOpaqueAndCompatibleWithURL(shell(), error_url)); @@ -4612,9 +4658,11 @@ EXPECT_EQ(NavigationType::NAVIGATION_TYPE_MAIN_FRAME_EXISTING_ENTRY, reload_observer.last_navigation_type()); } - EXPECT_EQ( - process_id, - shell()->web_contents()->GetPrimaryMainFrame()->GetProcess()->GetID()); + EXPECT_EQ(process_id, shell() + ->web_contents() + ->GetPrimaryMainFrame() + ->GetProcess() + ->GetDeprecatedID()); EXPECT_TRUE(IsMainFrameOriginOpaqueAndCompatibleWithURL(shell(), error_url)); // Reload the error page after clearing the error condition, such that the @@ -5248,7 +5296,7 @@ EXPECT_TRUE(HasErrorPageSiteInfo(error_site_instance.get())); EXPECT_TRUE(HasErrorPageProcessLock(error_site_instance.get())); EXPECT_FALSE(ChildProcessSecurityPolicy::GetInstance()->HasWebUIBindings( - error_site_instance->GetProcess()->GetID())); + error_site_instance->GetProcess()->GetDeprecatedID())); EXPECT_TRUE(IsMainFrameOriginOpaqueAndCompatibleWithURL(shell(), error_url)); } @@ -5279,7 +5327,7 @@ shell()->web_contents()->GetPrimaryMainFrame()->GetSiteInstance(); EXPECT_TRUE(HasErrorPageSiteInfo(error_site_instance.get())); EXPECT_FALSE(ChildProcessSecurityPolicy::GetInstance()->HasWebUIBindings( - error_site_instance->GetProcess()->GetID())); + error_site_instance->GetProcess()->GetDeprecatedID())); } // Once the throttles are no longer inserted into each navigation, reloading @@ -5294,7 +5342,7 @@ shell()->web_contents()->GetPrimaryMainFrame()->GetSiteInstance(); EXPECT_EQ(webui_url, webui_site_instance->GetSiteURL()); EXPECT_TRUE(ChildProcessSecurityPolicy::GetInstance()->HasWebUIBindings( - webui_site_instance->GetProcess()->GetID())); + webui_site_instance->GetProcess()->GetDeprecatedID())); // A second reload should work without crashing the browser process. { @@ -6120,7 +6168,8 @@ // In this test case, a spare RenderProcessHost will be used, so verify it // and ensure it is ready. - EXPECT_THAT(spare_rph_ids, testing::Contains(speculative_rph->GetID())); + EXPECT_THAT(spare_rph_ids, + testing::Contains(speculative_rph->GetDeprecatedID())); // If LoadUrl finished before the task to call // RenderProcessHostImpl::OnChannelConnected is run, wait for the task to be
diff --git a/content/browser/renderer_host/render_frame_host_manager_unittest.cc b/content/browser/renderer_host/render_frame_host_manager_unittest.cc index 4f7eec6b..67eb551 100644 --- a/content/browser/renderer_host/render_frame_host_manager_unittest.cc +++ b/content/browser/renderer_host/render_frame_host_manager_unittest.cc
@@ -177,7 +177,7 @@ public: explicit RenderViewHostDeletedObserver(RenderViewHost* rvh) : WebContentsObserver(WebContents::FromRenderViewHost(rvh)), - process_id_(rvh->GetProcess()->GetID()), + process_id_(rvh->GetProcess()->GetDeprecatedID()), routing_id_(rvh->GetRoutingID()), deleted_(false) {} @@ -186,7 +186,7 @@ const RenderViewHostDeletedObserver&) = delete; void RenderViewDeleted(RenderViewHost* render_view_host) override { - if (render_view_host->GetProcess()->GetID() == process_id_ && + if (render_view_host->GetProcess()->GetDeprecatedID() == process_id_ && render_view_host->GetRoutingID() == routing_id_) { deleted_ = true; } @@ -2658,7 +2658,7 @@ contents()->NavigateAndCommit(GURL("http://tab1.com")); FrameTree* tree1 = &contents()->GetPrimaryFrameTree(); FrameTreeNode* root1 = tree1->root(); - int process_id = root1->current_frame_host()->GetProcess()->GetID(); + int process_id = root1->current_frame_host()->GetProcess()->GetDeprecatedID(); constexpr auto kOwnerType = blink::FrameOwnerElementType::kIframe; const bool is_dummy_frame_for_inner_tree = false; tree1->AddFrame( @@ -2689,7 +2689,7 @@ tab2->NavigateAndCommit(GURL("http://tab2.com")); FrameTree* tree2 = &tab2->GetPrimaryFrameTree(); FrameTreeNode* root2 = tree2->root(); - process_id = root2->current_frame_host()->GetProcess()->GetID(); + process_id = root2->current_frame_host()->GetProcess()->GetDeprecatedID(); tree2->AddFrame( root2->current_frame_host(), process_id, 22, TestRenderFrameHost::CreateStubFrameRemote(), @@ -2723,7 +2723,7 @@ tab4->NavigateAndCommit(GURL("http://tab4.com")); FrameTree* tree4 = &tab4->GetPrimaryFrameTree(); FrameTreeNode* root4 = tree4->root(); - process_id = root4->current_frame_host()->GetProcess()->GetID(); + process_id = root4->current_frame_host()->GetProcess()->GetDeprecatedID(); tree4->AddFrame( root4->current_frame_host(), process_id, 42, TestRenderFrameHost::CreateStubFrameRemote(),
diff --git a/content/browser/renderer_host/render_frame_proxy_host.cc b/content/browser/renderer_host/render_frame_proxy_host.cc index c05f2ea4..b9c1a18 100644 --- a/content/browser/renderer_host/render_frame_proxy_host.cc +++ b/content/browser/renderer_host/render_frame_proxy_host.cc
@@ -108,7 +108,8 @@ // The check against |process_id| isn't strictly necessary, but represents // an extra level of protection against a renderer trying to force a frame // token. - return it != frames->end() && it->second->GetProcess()->GetID() == process_id + return it != frames->end() && + it->second->GetProcess()->GetDeprecatedID() == process_id ? it->second : nullptr; } @@ -137,11 +138,12 @@ perfetto::Track::FromPointer(this), "render_frame_proxy_host_when_created", *this); GetAgentSchedulingGroup().AddRoute(routing_id_, this); - CHECK( - g_routing_id_frame_proxy_map.Get() - .insert(std::make_pair( - RenderFrameProxyHostID(GetProcess()->GetID(), routing_id_), this)) - .second); + CHECK(g_routing_id_frame_proxy_map.Get() + .insert(std::make_pair( + RenderFrameProxyHostID(GetProcess()->GetDeprecatedID(), + routing_id_), + this)) + .second); CHECK(g_token_frame_proxy_map.Get() .insert(std::make_pair(frame_token_, this)) .second); @@ -194,7 +196,7 @@ GetAgentSchedulingGroup().RemoveRoute(routing_id_); g_routing_id_frame_proxy_map.Get().erase( - RenderFrameProxyHostID(GetProcess()->GetID(), routing_id_)); + RenderFrameProxyHostID(GetProcess()->GetDeprecatedID(), routing_id_)); g_token_frame_proxy_map.Get().erase(frame_token_); TRACE_EVENT_END("navigation", perfetto::Track::FromPointer(this)); } @@ -598,7 +600,7 @@ source_origin_string != u"null"; if (should_verify_source_origin) { auto* policy = ChildProcessSecurityPolicyImpl::GetInstance(); - if (!policy->HostsOrigin(GetProcess()->GetID(), source_origin)) { + if (!policy->HostsOrigin(GetProcess()->GetDeprecatedID(), source_origin)) { bad_message::ReceivedBadMessage( GetProcess(), bad_message::RFPH_POST_MESSAGE_INVALID_SOURCE_ORIGIN); return; @@ -626,7 +628,7 @@ bool is_guest_to_embedder_communication = false; if (source_frame_token) { RenderFrameHostImpl* source_rfh = RenderFrameHostImpl::FromFrameToken( - GetProcess()->GetID(), source_frame_token.value()); + GetProcess()->GetDeprecatedID(), source_frame_token.value()); if (source_rfh) { RenderFrameHostImpl* source_outermost_rfh = source_rfh->GetOutermostMainFrame(); @@ -665,7 +667,7 @@ std::optional<blink::RemoteFrameToken> translated_source_token; if (source_frame_token) { RenderFrameHostImpl* source_rfh = RenderFrameHostImpl::FromFrameToken( - GetProcess()->GetID(), source_frame_token.value()); + GetProcess()->GetDeprecatedID(), source_frame_token.value()); if (source_rfh) { // https://crbug.com/822958: If the postMessage is going to a descendant // frame, ensure that any pending visual properties such as size are sent @@ -878,7 +880,7 @@ if (params->initiator_frame_token) { RenderFrameHostImpl* initiator_frame = RenderFrameHostImpl::FromFrameToken( - GetProcess()->GetID(), params->initiator_frame_token.value()); + GetProcess()->GetDeprecatedID(), params->initiator_frame_token.value()); if (current_rfh->IsOutermostMainFrame()) { MaybeRecordAdClickMainFrameNavigationMetrics( initiator_frame, params->initiator_activation_and_ad_status); @@ -917,10 +919,11 @@ // TODO(clamy): The transition should probably be changed for POST navigations // to PAGE_TRANSITION_FORM_SUBMIT. See https://crbug.com/829827. frame_tree_node_->navigator().NavigateFromFrameProxy( - current_rfh, validated_url, initiator_frame_token, GetProcess()->GetID(), - params->initiator_origin, params->initiator_base_url, + current_rfh, validated_url, initiator_frame_token, + GetProcess()->GetDeprecatedID(), params->initiator_origin, + params->initiator_base_url, RenderFrameHostImpl::GetSourceSiteInstanceFromFrameToken( - initiator_frame_token, GetProcess()->GetID(), + initiator_frame_token, GetProcess()->GetDeprecatedID(), current_rfh->GetStoragePartition()), params->referrer.To<content::Referrer>(), ui::PAGE_TRANSITION_LINK, params->should_replace_current_entry, download_policy, @@ -956,7 +959,7 @@ // continuing the focus traversal from correct place in a parent frame after // one of its child frames finishes its traversal. RenderFrameHostImpl* source_rfh = RenderFrameHostImpl::FromFrameToken( - GetProcess()->GetID(), source_frame_token); + GetProcess()->GetDeprecatedID(), source_frame_token); RenderFrameHostImpl* target_rfh = frame_tree_node_->current_frame_host(); RenderFrameProxyHost* source_proxy = source_rfh @@ -1048,7 +1051,7 @@ void RenderFrameProxyHost::WriteIntoTrace( perfetto::TracedProto<TraceProto> proto) const { proto->set_routing_id(GetRoutingID()); - proto->set_process_id(GetProcess()->GetID()); + proto->set_process_id(GetProcess()->GetDeprecatedID()); proto->set_is_render_frame_proxy_live(is_render_frame_proxy_live()); if (site_instance_group()) { proto->set_rvh_map_id(frame_tree_node_->frame_tree()
diff --git a/content/browser/renderer_host/render_frame_proxy_host.h b/content/browser/renderer_host/render_frame_proxy_host.h index 658c9a3..6da6d08c 100644 --- a/content/browser/renderer_host/render_frame_proxy_host.h +++ b/content/browser/renderer_host/render_frame_proxy_host.h
@@ -131,7 +131,7 @@ int GetRoutingID() const { return routing_id_; } GlobalRoutingID GetGlobalID() const { - return GlobalRoutingID(GetProcess()->GetID(), routing_id_); + return GlobalRoutingID(GetProcess()->GetDeprecatedID(), routing_id_); } // Each RenderFrameProxyHost belongs to a SiteInstanceGroup, where it is a
diff --git a/content/browser/renderer_host/render_process_host_browsertest.cc b/content/browser/renderer_host/render_process_host_browsertest.cc index 7286a77..ce3d5a25 100644 --- a/content/browser/renderer_host/render_process_host_browsertest.cc +++ b/content/browser/renderer_host/render_process_host_browsertest.cc
@@ -1472,7 +1472,7 @@ .root(); RenderFrameHostImpl* original_rfh = root->current_frame_host(); RenderProcessHost* original_process = original_rfh->GetProcess(); - int original_process_id = original_process->GetID(); + int original_process_id = original_process->GetDeprecatedID(); EXPECT_FALSE(original_process->IsInitializedAndNotDead()); EXPECT_FALSE(original_rfh->IsRenderFrameLive()); @@ -1543,7 +1543,7 @@ EXPECT_TRUE(NavigateToURL(shell(), url_a)); RenderFrameHostImpl* replaced_rfh = root->current_frame_host(); ASSERT_EQ(original_process, replaced_rfh->GetProcess()); - EXPECT_EQ(original_process_id, replaced_rfh->GetProcess()->GetID()); + EXPECT_EQ(original_process_id, replaced_rfh->GetProcess()->GetDeprecatedID()); EXPECT_TRUE(replaced_rfh->GetProcess()->IsInitializedAndNotDead()); EXPECT_TRUE(replaced_rfh->IsRenderFrameLive()); EXPECT_FALSE(original_process->FastShutdownStarted()); @@ -1561,7 +1561,7 @@ EXPECT_TRUE(NavigateToURL(shell(), url_b)); cleanup_observer.Wait(); RenderFrameHostImpl* rfh_b = root->current_frame_host(); - EXPECT_NE(original_process_id, rfh_b->GetProcess()->GetID()); + EXPECT_NE(original_process_id, rfh_b->GetProcess()->GetDeprecatedID()); EXPECT_EQ(1, process_exits_); EXPECT_EQ(1, host_destructions_); @@ -1590,7 +1590,7 @@ RenderFrameHostImpl* child_rfh0 = root->child_at(0)->current_frame_host(); RenderFrameHostImpl* child_rfh1 = root->child_at(1)->current_frame_host(); RenderViewHostImpl* rvh_b = child_rfh0->render_view_host(); - int process_b_id = child_rfh0->GetProcess()->GetID(); + int process_b_id = child_rfh0->GetProcess()->GetDeprecatedID(); EXPECT_EQ(child_rfh0->GetProcess(), child_rfh1->GetProcess()); EXPECT_TRUE(child_rfh0->GetProcess()->IsInitializedAndNotDead()); EXPECT_TRUE(child_rfh0->IsRenderFrameLive()); @@ -1680,7 +1680,7 @@ reload_observer.Wait(); } RenderFrameHostImpl* new_child_rfh1 = root->child_at(1)->current_frame_host(); - EXPECT_EQ(process_b_id, new_child_rfh1->GetProcess()->GetID()); + EXPECT_EQ(process_b_id, new_child_rfh1->GetProcess()->GetDeprecatedID()); EXPECT_TRUE(new_child_rfh1->GetProcess()->IsInitializedAndNotDead()); EXPECT_TRUE(new_child_rfh1->IsRenderFrameLive()); EXPECT_EQ(0, process_exits_); @@ -1706,7 +1706,7 @@ .root(); RenderFrameHostImpl* rfh_a = root->current_frame_host(); RenderProcessHost* process_a = rfh_a->GetProcess(); - int process_a_id = process_a->GetID(); + int process_a_id = process_a->GetDeprecatedID(); Observe(process_a); // Navigate cross-process and evict process A from the back-forward cache. @@ -1718,7 +1718,7 @@ shell()->web_contents()->GetController().GetBackForwardCache().Flush(); cleanup_observer.Wait(); RenderFrameHostImpl* rfh_b = root->current_frame_host(); - EXPECT_NE(process_a_id, rfh_b->GetProcess()->GetID()); + EXPECT_NE(process_a_id, rfh_b->GetProcess()->GetDeprecatedID()); EXPECT_EQ(1, process_exits_); EXPECT_EQ(1, host_destructions_); } @@ -1788,7 +1788,7 @@ .root(); RenderFrameHostImpl* rfh_a = root->current_frame_host(); RenderProcessHost* process_a = rfh_a->GetProcess(); - int process_a_id = process_a->GetID(); + int process_a_id = process_a->GetDeprecatedID(); // Listen for RenderFrameDeleted and count the other RenderFrameHosts in the // process at the time. @@ -1803,7 +1803,7 @@ shell()->web_contents()->GetController().GetBackForwardCache().Flush(); cleanup_observer.Wait(); RenderFrameHostImpl* rfh_b = root->current_frame_host(); - EXPECT_NE(process_a_id, rfh_b->GetProcess()->GetID()); + EXPECT_NE(process_a_id, rfh_b->GetProcess()->GetDeprecatedID()); // RenderFrameDeleted should have been called for both the main frame and // subframe in process A.
diff --git a/content/browser/renderer_host/render_process_host_impl.cc b/content/browser/renderer_host/render_process_host_impl.cc index 44b857c..e50dc798 100644 --- a/content/browser/renderer_host/render_process_host_impl.cc +++ b/content/browser/renderer_host/render_process_host_impl.cc
@@ -768,7 +768,7 @@ // "about:" in that case. This looks like a bug that needs to be fixed! if (!SiteInstance::ShouldAssignSiteForURL(iter.first.site_url()) && !iter.first.site_url().IsAboutBlank() && - base::Contains(iter.second, host->GetID())) { + base::Contains(iter.second, host->GetDeprecatedID())) { return true; } } @@ -847,7 +847,7 @@ rph_to_sites_map.reserve(RenderProcessHostImpl::GetProcessCount()); for (auto iter(RenderProcessHost::AllHostsIterator()); !iter.IsAtEnd(); iter.Advance()) { - rph_to_sites_map[iter.GetCurrentValue()->GetID()]; + rph_to_sites_map[iter.GetCurrentValue()->GetDeprecatedID()]; } for (auto iter : map_) { @@ -879,8 +879,9 @@ for (auto iter : map_) { std::map<ProcessID, Count>& counts_per_process = iter.second; for (auto iter_process : counts_per_process) { - if (iter_process.first == process->GetID()) + if (iter_process.first == process->GetDeprecatedID()) { return true; + } } } return false; @@ -975,7 +976,7 @@ // Implementation of RenderProcessHostObserver. void RenderProcessHostDestroyed(RenderProcessHost* host) override { DCHECK(HasProcess(host)); - int process_id = host->GetID(); + int process_id = host->GetDeprecatedID(); for (auto it = site_process_set_.begin(); it != site_process_set_.end();) { if (it->second == process_id) { it = site_process_set_.erase(it); @@ -995,8 +996,8 @@ SiteInstanceImpl* site_instance) { if (!HasProcess(host)) host->AddObserver(this); - site_process_set_.insert( - SiteProcessIDPair(site_instance->GetSiteInfo(), host->GetID())); + site_process_set_.insert(SiteProcessIDPair(site_instance->GetSiteInfo(), + host->GetDeprecatedID())); } RenderProcessHost* TakeFreshestProcessForSite( @@ -1047,9 +1048,10 @@ return std::nullopt; } - // Returns true if this tracker contains the process ID |host->GetID()|. + // Returns true if this tracker contains the process ID + // |host->GetDeprecatedID()|. bool HasProcess(RenderProcessHost* host) const { - int process_id = host->GetID(); + int process_id = host->GetDeprecatedID(); for (const auto& site_process_id : site_process_set_) { if (site_process_id.second == process_id) return true; @@ -1107,8 +1109,9 @@ return *s_callback; } -void InvokeBadMojoMessageCallbackForTesting(int render_process_id, - const std::string& error) { +void InvokeBadMojoMessageCallbackForTesting( // IN-TEST + ChildProcessId render_process_id, + const std::string& error) { if (!BrowserThread::CurrentlyOn(BrowserThread::UI)) { GetUIThreadTaskRunner({})->PostTask( FROM_HERE, base::BindOnce(&InvokeBadMojoMessageCallbackForTesting, @@ -1247,7 +1250,7 @@ } // namespace RenderProcessHostImpl::IOThreadHostImpl::IOThreadHostImpl( - int render_process_id, + ChildProcessId render_process_id, base::WeakPtr<RenderProcessHostImpl> weak_host, std::unique_ptr<service_manager::BinderRegistry> binders, mojo::PendingReceiver<mojom::ChildProcessHost> host_receiver) @@ -1493,10 +1496,11 @@ widget_helper_ = new RenderWidgetHelper(); - ChildProcessSecurityPolicyImpl::GetInstance()->Add(GetID(), browser_context); + ChildProcessSecurityPolicyImpl::GetInstance()->Add(GetDeprecatedID(), + browser_context); CHECK(!BrowserMainRunner::ExitedMainMessageLoop()); - RegisterHost(GetID(), this); + RegisterHost(GetDeprecatedID(), this); GetAllHosts().set_check_on_null_data(true); // Initialize |child_process_activity_time_| to a reasonable value. mark_child_process_activity_time(); @@ -1512,7 +1516,7 @@ InitializeChannelProxy(); - const int id = GetID(); + const int id = GetDeprecatedID(); const uint64_t tracing_id = ChildProcessHostImpl::ChildProcessUniqueIdToTracingProcessId(id); gpu_client_.reset( @@ -1596,11 +1600,11 @@ in_process_renderer_.reset(); g_in_process_thread = nullptr; - ChildProcessSecurityPolicyImpl::GetInstance()->Remove(GetID()); + ChildProcessSecurityPolicyImpl::GetInstance()->Remove(GetDeprecatedID()); is_dead_ = true; - UnregisterHost(GetID()); + UnregisterHost(GetDeprecatedID()); // Remove the cache handles for the client at teardown if relevant. if (!base::CommandLine::ForCurrentProcess()->HasSwitch( @@ -1727,7 +1731,7 @@ in_process_renderer_.reset(g_renderer_main_thread_factory( InProcessChildThreadParams(GetIOThreadTaskRunner({}), &mojo_invitation_), - base::checked_cast<int32_t>(id_))); + base::checked_cast<int32_t>(id_.GetUnsafeValue()))); base::Thread::Options options; #if BUILDFLAG(IS_WIN) && !BUILDFLAG(IS_MAC) @@ -1781,8 +1785,8 @@ // As long as there's no renderer prefix, we can use the zygote process // at this stage. child_process_launcher_ = std::make_unique<ChildProcessLauncher>( - std::move(sandbox_delegate), std::move(cmd_line), GetID(), this, - std::move(mojo_invitation_), + std::move(sandbox_delegate), std::move(cmd_line), GetDeprecatedID(), + this, std::move(mojo_invitation_), base::BindRepeating(&RenderProcessHostImpl::OnMojoError, id_), std::move(file_data), metrics_memory_region_.Duplicate(), std::move(tracing_config_memory_region)); @@ -1790,7 +1794,7 @@ // In single process mode, browser-side tracing and memory will cover the // whole process including renderers. - BackgroundTracingManagerImpl::ActivateForProcess(GetID(), + BackgroundTracingManagerImpl::ActivateForProcess(GetDeprecatedID(), child_process_.get()); fast_shutdown_started_ = false; @@ -1899,7 +1903,7 @@ DCHECK_CURRENTLY_ON(BrowserThread::UI); #if BUILDFLAG(ENABLE_PPAPI) pepper_renderer_connection_ = base::MakeRefCounted<PepperRendererConnection>( - GetID(), PluginServiceImpl::GetInstance(), GetBrowserContext(), + GetDeprecatedID(), PluginServiceImpl::GetInstance(), GetBrowserContext(), GetStoragePartition()); AddFilter(pepper_renderer_connection_.get()); #endif @@ -1907,7 +1911,7 @@ // TODO(crbug.com/40169214): Move this initialization out of // CreateMessageFilters(). p2p_socket_dispatcher_host_ = - std::make_unique<P2PSocketDispatcherHost>(GetID()); + std::make_unique<P2PSocketDispatcherHost>(GetDeprecatedID()); } void RenderProcessHostImpl::BindCacheStorage( @@ -1991,7 +1995,7 @@ // URL for workers instead of the origin as source // url. This URL will be used for SafeBrowsing // checks and for the Quarantine Service. - storage_key.origin().GetURL(), GetID()), + storage_key.origin().GetURL(), GetDeprecatedID()), std::move(receiver)); } @@ -2001,7 +2005,7 @@ if (!file_backed_blob_factory_) { file_backed_blob_factory_ = std::make_unique<FileBackedBlobFactoryWorkerImpl>(browser_context_, - GetID()); + GetDeprecatedID()); } file_backed_blob_factory_->BindReceiver(std::move(receiver), origin.GetURL()); } @@ -2019,7 +2023,7 @@ // URL for workers instead of the origin as source url. // This URL will be used for SafeBrowsing checks and for // the Quarantine Service. - bucket.storage_key.origin().GetURL(), GetID()), + bucket.storage_key.origin().GetURL(), GetDeprecatedID()), bucket, directory_path_components, std::move(callback)); } @@ -2033,7 +2037,7 @@ storage_partition_impl_->CreateRestrictedCookieManager( network::mojom::RestrictedCookieManagerRole::SCRIPT, storage_key.origin(), storage_key.ToPartialNetIsolationInfo(), - /*is_service_worker=*/true, GetID(), MSG_ROUTING_NONE, + /*is_service_worker=*/true, GetDeprecatedID(), MSG_ROUTING_NONE, net::CookieSettingOverrides(), std::move(receiver), storage_partition_impl_->CreateCookieAccessObserverForServiceWorker()); } @@ -2138,7 +2142,7 @@ // shared and service workers? mojo::MakeSelfOwnedReceiver( std::make_unique<WebSocketConnectorImpl>( - GetID(), MSG_ROUTING_NONE, storage_key.origin(), + GetDeprecatedID(), MSG_ROUTING_NONE, storage_key.origin(), storage_key.ToPartialNetIsolationInfo()), std::move(receiver)); } @@ -2278,7 +2282,8 @@ SiteProcessCountTracker::GetInstance( GetBrowserContext(), content::kDelayedShutdownSiteProcessCountTrackerKey); - delayed_shutdown_tracker->IncrementSiteProcessCount(site_info, GetID()); + delayed_shutdown_tracker->IncrementSiteProcessCount(site_info, + GetDeprecatedID()); } // Don't delay shutdown longer than the maximum delay for renderer process, @@ -2298,7 +2303,7 @@ SiteProcessCountTracker::GetInstance( GetBrowserContext(), content::kDelayedShutdownSiteProcessCountTrackerKey); - return delayed_shutdown_tracker->ContainsHost(GetID()); + return delayed_shutdown_tracker->ContainsHost(GetDeprecatedID()); } std::string @@ -2354,7 +2359,7 @@ void RenderProcessHostImpl::WriteIntoTrace( perfetto::TracedProto<perfetto::protos::pbzero::RenderProcessHost> proto) const { - proto->set_id(GetID()); + proto->set_id(GetDeprecatedID()); proto->set_process_lock(GetProcessLock().ToString()); proto.Set(TraceProto::kBrowserContext, browser_context_); @@ -2379,7 +2384,8 @@ DCHECK_CURRENTLY_ON(BrowserThread::UI); if (!embedded_frame_sink_provider_) { // The client id gets converted to a uint32_t in FrameSinkId. - uint32_t renderer_client_id = base::checked_cast<uint32_t>(id_); + uint32_t renderer_client_id = + base::checked_cast<uint32_t>(id_.GetUnsafeValue()); embedded_frame_sink_provider_ = std::make_unique<EmbeddedFrameSinkProviderImpl>( GetHostFrameSinkManager(), renderer_client_id); @@ -2422,7 +2428,7 @@ DCHECK(db_tracker); db_tracker->task_runner()->PostTask( FROM_HERE, - base::BindOnce(&WebDatabaseHostImpl::Create, GetID(), + base::BindOnce(&WebDatabaseHostImpl::Create, GetDeprecatedID(), base::WrapRefCounted(db_tracker), std::move(receiver))); } #endif // BULDFLAG(IS_ANDROID) @@ -2466,7 +2472,8 @@ void RenderProcessHostImpl::CreateMediaLogRecordHost( mojo::PendingReceiver<content::mojom::MediaInternalLogRecords> receiver) { - content::MediaInternals::CreateMediaLogRecords(GetID(), std::move(receiver)); + content::MediaInternals::CreateMediaLogRecords(GetDeprecatedID(), + std::move(receiver)); } #if BUILDFLAG(ENABLE_PLUGINS) @@ -2496,7 +2503,7 @@ } dom_storage_receiver_ids_.insert(storage_partition_impl_->BindDomStorage( - id_, std::move(receiver), std::move(client))); + id_.GetUnsafeValue(), std::move(receiver), std::move(client))); // Renderers only use this interface to send a single BindDomStorage message, // so we can tear down the receiver now. @@ -2758,7 +2765,8 @@ } ProcessLock RenderProcessHostImpl::GetProcessLock() const { - return ChildProcessSecurityPolicyImpl::GetInstance()->GetProcessLock(GetID()); + return ChildProcessSecurityPolicyImpl::GetInstance()->GetProcessLock( + GetDeprecatedID()); } bool RenderProcessHostImpl::MayReuseHost() { @@ -2851,7 +2859,7 @@ if (crash_report_mode == CrashReportMode::GENERATE_CRASH_DUMP) { // Set crash keys to understand renderer kills related to site isolation. ChildProcessSecurityPolicyImpl::GetInstance()->LogKilledProcessOriginLock( - GetID()); + GetDeprecatedID()); std::string site_isolation_mode; if (SiteIsolationPolicy::UseDedicatedProcessesForAllSites()) @@ -2867,7 +2875,7 @@ site_isolation_mode); ChildProcessSecurityPolicyImpl::GetInstance()->LogKilledProcessOriginLock( - GetID()); + GetDeprecatedID()); // Report a crash, since none will be generated by the killed renderer. base::debug::DumpWithoutCrashing(); @@ -2988,11 +2996,12 @@ SiteProcessCountTracker* tracker = SiteProcessCountTracker::GetInstance( browser_context, kCommittedSiteProcessCountTrackerKey); - tracker->IncrementSiteProcessCount(site_info, render_process_host->GetID()); + tracker->IncrementSiteProcessCount(site_info, + render_process_host->GetDeprecatedID()); MAYBEVLOG(2) << __func__ << "(" << site_info << "): Site added to process host " - << render_process_host->GetID() << "." << std::endl + << render_process_host->GetDeprecatedID() << "." << std::endl << GetCurrentHostMapDebugString(tracker); } @@ -3006,7 +3015,8 @@ SiteProcessCountTracker* tracker = SiteProcessCountTracker::GetInstance( browser_context, kCommittedSiteProcessCountTrackerKey); - tracker->DecrementSiteProcessCount(site_info, render_process_host->GetID()); + tracker->DecrementSiteProcessCount(site_info, + render_process_host->GetDeprecatedID()); } // static @@ -3019,7 +3029,8 @@ SiteProcessCountTracker* tracker = SiteProcessCountTracker::GetInstance( browser_context, kPendingSiteProcessCountTrackerKey); - tracker->IncrementSiteProcessCount(site_info, render_process_host->GetID()); + tracker->IncrementSiteProcessCount(site_info, + render_process_host->GetDeprecatedID()); } // static @@ -3032,7 +3043,8 @@ SiteProcessCountTracker* tracker = SiteProcessCountTracker::GetInstance( browser_context, kPendingSiteProcessCountTrackerKey); - tracker->DecrementSiteProcessCount(site_info, render_process_host->GetID()); + tracker->DecrementSiteProcessCount(site_info, + render_process_host->GetDeprecatedID()); } // static @@ -3096,7 +3108,7 @@ const IsolationContext& isolation_context, const ProcessLock& process_lock) { ChildProcessSecurityPolicyImpl::GetInstance()->LockProcess( - isolation_context, GetID(), !IsUnused(), process_lock); + isolation_context, GetDeprecatedID(), !IsUnused(), process_lock); // Note that SetProcessLock is only called on ProcessLock state transitions. // (e.g. invalid -> allows_any_site and allows_any_site -> locked_to_site). @@ -3201,8 +3213,8 @@ // Call this as early as possible so that --extension-process will show early // in process listings. See https://crbug.com/1211558 for details. - GetContentClient()->browser()->AppendExtraCommandLineSwitches(command_line, - GetID()); + GetContentClient()->browser()->AppendExtraCommandLineSwitches( + command_line, GetDeprecatedID()); if (IsPdf()) command_line->AppendSwitch(switches::kPdfRenderer); @@ -3261,7 +3273,7 @@ AppendCompositorCommandLineFlags(command_line); command_line->AppendSwitchASCII(switches::kRendererClientId, - base::NumberToString(GetID())); + base::NumberToString(GetDeprecatedID())); // Synchronize unix/monotonic clocks across consistent processes. if (base::TimeTicks::IsConsistentAcrossProcesses()) { @@ -3804,7 +3816,11 @@ return GetStoragePartition() == partition; } -int RenderProcessHostImpl::GetID() const { +int RenderProcessHostImpl::GetDeprecatedID() const { + return id_.GetUnsafeValue(); +} + +ChildProcessId RenderProcessHostImpl::GetID() const { return id_; } @@ -4048,7 +4064,7 @@ if (is_initialized_) { GetIOThreadTaskRunner({})->PostTask( FROM_HERE, - base::BindOnce(&WebRtcLog::ClearLogMessageCallback, GetID())); + base::BindOnce(&WebRtcLog::ClearLogMessageCallback, GetDeprecatedID())); } DCHECK_EQ(0, pending_views_); @@ -4090,7 +4106,7 @@ // Remove ourself from the list of renderer processes so that we can't be // reused in between now and when the Delete task runs. - UnregisterHost(GetID()); + UnregisterHost(GetDeprecatedID()); browser_context_ = nullptr; storage_partition_impl_ = nullptr; } @@ -4283,7 +4299,7 @@ // navigation to the home page. This is often a privileged page // (chrome://newtab/) which is exactly what we don't want. TRACE_EVENT1("navigation", "RenderProcessHost::FilterURL - invalid URL", - "process_id", rph->GetID()); + "process_id", rph->GetDeprecatedID()); VLOG(1) << "Blocked invalid URL"; base::UmaHistogramEnumeration("BrowserRenderProcessHost.BlockedByFilterURL", BlockedURLReason::kInvalidURL); @@ -4294,13 +4310,13 @@ ChildProcessSecurityPolicyImpl* policy = ChildProcessSecurityPolicyImpl::GetInstance(); - if (!policy->CanRequestURL(rph->GetID(), *url)) { + if (!policy->CanRequestURL(rph->GetDeprecatedID(), *url)) { // If this renderer is not permitted to request this URL, we invalidate // the URL. This prevents us from storing the blocked URL and becoming // confused later. TRACE_EVENT2("navigation", "RenderProcessHost::FilterURL - failed CanRequestURL", - "process_id", rph->GetID(), "url", url->spec()); + "process_id", rph->GetDeprecatedID(), "url", url->spec()); VLOG(1) << "Blocked URL " << url->spec(); base::UmaHistogramEnumeration("BrowserRenderProcessHost.BlockedByFilterURL", BlockedURLReason::kFailedCanRequestURLCheck); @@ -4362,7 +4378,7 @@ // from |site_url| if an effective URL is used. bool host_has_web_ui_bindings = ChildProcessSecurityPolicyImpl::GetInstance()->HasWebUIBindings( - host->GetID()); + host->GetDeprecatedID()); ProcessLock process_lock = host->GetProcessLock(); if (host->HostHasNotBeenUsed()) { // If the host hasn't been used, it won't have the expected WebUI bindings @@ -4530,6 +4546,11 @@ return GetAllHosts().Lookup(render_process_id); } +RenderProcessHost* RenderProcessHost::FromID(ChildProcessId render_process_id) { + CHECK_CURRENTLY_ON(BrowserThread::UI); + return RenderProcessHost::FromID(render_process_id.GetUnsafeValue()); +} + // static size_t RenderProcessHostImpl::GetProcessCount() { return GetAllHosts().size(); @@ -4793,7 +4814,7 @@ base::debug::SetCrashKeyString(bad_message::GetRequestedSiteInfoKey(), site_info.GetDebugString()); ChildProcessSecurityPolicyImpl::GetInstance()->LogKilledProcessOriginLock( - render_process_host->GetID()); + render_process_host->GetDeprecatedID()); NOTREACHED() << "Unsuitable process reused for site " << site_info; } @@ -4838,7 +4859,8 @@ false /* can_create */))); MAYBEVLOG(2) << __func__ << "(" << site_info << ") selected process host " - << render_process_host->GetID() << " using assignment \"" + << render_process_host->GetDeprecatedID() + << " using assignment \"" << site_instance->GetLastProcessAssignmentOutcome() << "\"" << std::endl << GetCurrentHostMapDebugString( @@ -4863,7 +4885,7 @@ // Create the shared memory region and allocator. auto shared_memory = base::HistogramSharedMemory::Create( - GetID(), shared_memory_config.value()); + GetDeprecatedID(), shared_memory_config.value()); if (shared_memory.has_value()) { metrics_memory_region_ = std::move(shared_memory->region); metrics_allocator_ = std::move(shared_memory->allocator); @@ -5028,8 +5050,9 @@ RenderWidgetHost::GetRenderWidgetHosts()); while (RenderWidgetHost* widget = widgets->GetNextHost()) { // Count only RenderWidgetHosts in this process. - if (widget->GetProcess()->GetID() == GetID()) + if (widget->GetProcess()->GetDeprecatedID() == GetDeprecatedID()) { num_active_views++; + } } return num_active_views; } @@ -5287,7 +5310,7 @@ // TODO(crbug.com/40805534): It appears that some times `version` is // nullptr here, but we don't know why. Once that is solved revert this // runtime check back to a DCHECK. - if (version && version->IsControlleeProcessID(GetID())) { + if (version && version->IsControlleeProcessID(GetDeprecatedID())) { version->UpdateForegroundPriority(); break; } @@ -5510,7 +5533,7 @@ } // static -void RenderProcessHostImpl::OnMojoError(int render_process_id, +void RenderProcessHostImpl::OnMojoError(ChildProcessId render_process_id, const std::string& error) { LOG(ERROR) << "Terminating render process for bad Mojo message: " << error; @@ -5559,8 +5582,10 @@ SiteProcessCountTracker::GetInstance( GetBrowserContext(), content::kDelayedShutdownSiteProcessCountTrackerKey); - if (delayed_shutdown_tracker->Contains(site_info, GetID())) - delayed_shutdown_tracker->DecrementSiteProcessCount(site_info, GetID()); + if (delayed_shutdown_tracker->Contains(site_info, GetDeprecatedID())) { + delayed_shutdown_tracker->DecrementSiteProcessCount(site_info, + GetDeprecatedID()); + } } // Decrement shutdown delay ref count. @@ -5579,7 +5604,7 @@ SiteProcessCountTracker::GetInstance( GetBrowserContext(), content::kDelayedShutdownSiteProcessCountTrackerKey); - delayed_shutdown_tracker->ClearProcessForAllSites(GetID()); + delayed_shutdown_tracker->ClearProcessForAllSites(GetDeprecatedID()); } void RenderProcessHostImpl::BindTracedProcess(
diff --git a/content/browser/renderer_host/render_process_host_impl.h b/content/browser/renderer_host/render_process_host_impl.h index 69b4d25..df17aa0 100644 --- a/content/browser/renderer_host/render_process_host_impl.h +++ b/content/browser/renderer_host/render_process_host_impl.h
@@ -253,7 +253,10 @@ bool IsReady() override; BrowserContext* GetBrowserContext() override; bool InSameStoragePartition(StoragePartition* partition) override; - int GetID() const override; + ChildProcessId GetID() const override; + // TODO(crbug.com/379869738): Deprecated, please use the ChildProcessId + // version above. + int GetDeprecatedID() const override; base::SafeRef<RenderProcessHost> GetSafeRef() const override; bool IsInitializedAndNotDead() override; bool IsDeletingSoon() override; @@ -412,6 +415,11 @@ // Register/unregister the host identified by the host id in the global host // list. + static void RegisterHost(ChildProcessId host_id, RenderProcessHost* host); + static void UnregisterHost(ChildProcessId host_id); + + // TODO(crbug.com/379869738): Deprecated, please use the ChildProcessId + // version above. static void RegisterHost(int host_id, RenderProcessHost* host); static void UnregisterHost(int host_id); @@ -608,7 +616,7 @@ static bool HasDomStorageBinderForTesting(); using BadMojoMessageCallbackForTesting = - base::RepeatingCallback<void(int render_process_host_id, + base::RepeatingCallback<void(ChildProcessId render_process_host_id, const std::string& error)>; static void SetBadMojoMessageCallbackForTesting( BadMojoMessageCallbackForTesting callback); @@ -943,10 +951,11 @@ class IOThreadHostImpl : public mojom::ChildProcessHost { public: IOThreadHostImpl( - int render_process_id, + ChildProcessId render_process_id, base::WeakPtr<RenderProcessHostImpl> weak_host, std::unique_ptr<service_manager::BinderRegistry> binders, mojo::PendingReceiver<mojom::ChildProcessHost> host_receiver); + ~IOThreadHostImpl() override; IOThreadHostImpl(const IOThreadHostImpl& other) = delete; @@ -967,7 +976,7 @@ base::WeakPtr<RenderProcessHostImpl> weak_host, mojo::GenericPendingReceiver receiver); - const int render_process_id_; + const ChildProcessId render_process_id_; const base::WeakPtr<RenderProcessHostImpl> weak_host_; std::unique_ptr<service_manager::BinderRegistry> binders_; mojo::Receiver<mojom::ChildProcessHost> receiver_{this}; @@ -1169,7 +1178,8 @@ void PopulateTerminationInfoRendererFields(ChildProcessTerminationInfo* info); #endif // BUILDFLAG(IS_ANDROID) - static void OnMojoError(int render_process_id, const std::string& error); + static void OnMojoError(ChildProcessId render_process_id, + const std::string& error); template <typename InterfaceType> using AddReceiverCallback = @@ -1331,7 +1341,7 @@ std::unique_ptr<ChildProcessLauncher> child_process_launcher_; // The globally-unique identifier for this RenderProcessHost. - const int id_; + const ChildProcessId id_; // This field is not a raw_ptr<> because problems related to passing to a // templated && parameter, which is later forwarded to something that doesn't
diff --git a/content/browser/renderer_host/render_process_host_impl_receiver_bindings.cc b/content/browser/renderer_host/render_process_host_impl_receiver_bindings.cc index d2b7b15..e8e03ab 100644 --- a/content/browser/renderer_host/render_process_host_impl_receiver_bindings.cc +++ b/content/browser/renderer_host/render_process_host_impl_receiver_bindings.cc
@@ -121,7 +121,7 @@ std::make_unique<RenderMessageFilter>(rph_id, helper.get()), std::move(receiver)); }, - GetID(), widget_helper_)); + GetDeprecatedID(), widget_helper_)); AddUIThreadInterface( registry.get(), @@ -220,7 +220,7 @@ #endif file_system_manager_impl_.reset(new FileSystemManagerImpl( - GetID(), storage_partition_impl_->GetFileSystemContext(), + GetDeprecatedID(), storage_partition_impl_->GetFileSystemContext(), ChromeBlobStorageContext::GetFor(GetBrowserContext()))); AddUIThreadInterface( @@ -260,15 +260,15 @@ associated_registry->AddInterface<mojom::RendererHost>(base::BindRepeating( &RenderProcessHostImpl::CreateRendererHost, base::Unretained(this))); - registry->AddInterface( - base::BindRepeating(&BlobRegistryWrapper::Bind, - storage_partition_impl_->GetBlobRegistry(), GetID())); + registry->AddInterface(base::BindRepeating( + &BlobRegistryWrapper::Bind, storage_partition_impl_->GetBlobRegistry(), + GetDeprecatedID())); #if BUILDFLAG(ENABLE_PLUGINS) // Initialization can happen more than once (in the case of a child process // crash), but we don't want to lose the plugin registry in this case. if (!plugin_registry_) { - plugin_registry_ = std::make_unique<PluginRegistryImpl>(GetID()); + plugin_registry_ = std::make_unique<PluginRegistryImpl>(GetDeprecatedID()); } AddUIThreadInterface( registry.get(),
diff --git a/content/browser/renderer_host/render_process_host_unittest.cc b/content/browser/renderer_host/render_process_host_unittest.cc index e0cff2c..72d5b77 100644 --- a/content/browser/renderer_host/render_process_host_unittest.cc +++ b/content/browser/renderer_host/render_process_host_unittest.cc
@@ -781,12 +781,15 @@ // Remember the process id and cancel the navigation. Getting // RenderProcessHost with the REUSE_PENDING_OR_COMMITTED_SITE policy should // no longer return the process of the speculative RenderFrameHost. - int speculative_process_host_id = - contents()->GetSpeculativePrimaryMainFrame()->GetProcess()->GetID(); + int speculative_process_host_id = contents() + ->GetSpeculativePrimaryMainFrame() + ->GetProcess() + ->GetDeprecatedID(); navigation->Fail(net::ERR_ABORTED); site_instance = SiteInstanceImpl::CreateReusableInstanceForTesting( browser_context(), kUrl2); - EXPECT_NE(speculative_process_host_id, site_instance->GetProcess()->GetID()); + EXPECT_NE(speculative_process_host_id, + site_instance->GetProcess()->GetDeprecatedID()); } // Tests that RenderProcessHost reuse considers navigations correctly during @@ -890,8 +893,10 @@ contents()->GetController().LoadURL(kUrl, Referrer(), ui::PAGE_TRANSITION_TYPED, std::string()); main_test_rfh()->SimulateBeforeUnloadCompleted(true); - int speculative_process_host_id = - contents()->GetSpeculativePrimaryMainFrame()->GetProcess()->GetID(); + int speculative_process_host_id = contents() + ->GetSpeculativePrimaryMainFrame() + ->GetProcess() + ->GetDeprecatedID(); bool speculative_is_default_site_instance = contents() ->GetSpeculativePrimaryMainFrame() @@ -899,7 +904,8 @@ ->IsDefaultSiteInstance(); site_instance = SiteInstanceImpl::CreateReusableInstanceForTesting( browser_context(), kUrl); - EXPECT_EQ(speculative_process_host_id, site_instance->GetProcess()->GetID()); + EXPECT_EQ(speculative_process_host_id, + site_instance->GetProcess()->GetDeprecatedID()); // Simulate a same-site redirect. Getting RenderProcessHost with the // REUSE_PENDING_OR_COMMITTED_SITE policy should return the speculative @@ -907,7 +913,8 @@ main_test_rfh()->SimulateRedirect(kRedirectUrl1); site_instance = SiteInstanceImpl::CreateReusableInstanceForTesting( browser_context(), kUrl); - EXPECT_EQ(speculative_process_host_id, site_instance->GetProcess()->GetID()); + EXPECT_EQ(speculative_process_host_id, + site_instance->GetProcess()->GetDeprecatedID()); // Simulate a cross-site redirect. Getting a RenderProcessHost with the // REUSE_PENDING_OR_COMMITTED_SITE policy should no longer return the @@ -917,7 +924,8 @@ site_instance = SiteInstanceImpl::CreateReusableInstanceForTesting( browser_context(), kUrl); EXPECT_NE(main_test_rfh()->GetProcess(), site_instance->GetProcess()); - EXPECT_NE(speculative_process_host_id, site_instance->GetProcess()->GetID()); + EXPECT_NE(speculative_process_host_id, + site_instance->GetProcess()->GetDeprecatedID()); site_instance = SiteInstanceImpl::CreateReusableInstanceForTesting( browser_context(), kRedirectUrl2); EXPECT_NE(main_test_rfh()->GetProcess(), site_instance->GetProcess()); @@ -926,10 +934,10 @@ // The process ID should be the same as the default SiteInstance because // kRedirectUrl1 and kRedirectUrl2 do not require a dedicated process. EXPECT_EQ(speculative_process_host_id, - site_instance->GetProcess()->GetID()); + site_instance->GetProcess()->GetDeprecatedID()); } else { EXPECT_NE(speculative_process_host_id, - site_instance->GetProcess()->GetID()); + site_instance->GetProcess()->GetDeprecatedID()); } // Once the navigation is ready to commit, Getting RenderProcessHost with the @@ -937,15 +945,19 @@ // process for the final site, but not the initial one. The current process // shouldn't be returned either. main_test_rfh()->PrepareForCommit(); - speculative_process_host_id = - contents()->GetSpeculativePrimaryMainFrame()->GetProcess()->GetID(); + speculative_process_host_id = contents() + ->GetSpeculativePrimaryMainFrame() + ->GetProcess() + ->GetDeprecatedID(); site_instance = SiteInstanceImpl::CreateReusableInstanceForTesting( browser_context(), kUrl); EXPECT_NE(main_test_rfh()->GetProcess(), site_instance->GetProcess()); - EXPECT_NE(speculative_process_host_id, site_instance->GetProcess()->GetID()); + EXPECT_NE(speculative_process_host_id, + site_instance->GetProcess()->GetDeprecatedID()); site_instance = SiteInstanceImpl::CreateReusableInstanceForTesting( browser_context(), kRedirectUrl2); - EXPECT_EQ(speculative_process_host_id, site_instance->GetProcess()->GetID()); + EXPECT_EQ(speculative_process_host_id, + site_instance->GetProcess()->GetDeprecatedID()); } // Tests that RenderProcessHost reuse works correctly even if the site URL of a @@ -1290,13 +1302,13 @@ EXPECT_EQ(old_spare, rph_factory_.GetProcesses()->at(0).get()); // Remember the ID of the spare, so as to not compare a pointer of a deleted // RenderProcessHost at the end of the test. - int old_spare_id = old_spare->GetID(); + int old_spare_id = old_spare->GetDeprecatedID(); const GURL kUrl1("http://foo.com"); base::HistogramTester histograms; SetContents(CreateTestWebContents()); NavigateAndCommit(kUrl1); - EXPECT_NE(old_spare_id, main_test_rfh()->GetProcess()->GetID()); + EXPECT_NE(old_spare_id, main_test_rfh()->GetProcess()->GetDeprecatedID()); ExpectSpareProcessMaybeTakeActionBucket( histograms, SpareProcessMaybeTakeAction::kMismatchedBrowserContext); @@ -1311,7 +1323,7 @@ EXPECT_EQ(2U, rph_factory_.GetProcesses()->size()); ASSERT_EQ(1U, spare_manager.GetSpares().size()); RenderProcessHost* new_spare = spare_manager.GetSpares()[0]; - ASSERT_NE(old_spare_id, new_spare->GetID()); + ASSERT_NE(old_spare_id, new_spare->GetDeprecatedID()); EXPECT_EQ(GetBrowserContext(), new_spare->GetBrowserContext()); } else { EXPECT_EQ(1U, rph_factory_.GetProcesses()->size());
diff --git a/content/browser/renderer_host/render_view_host_impl.cc b/content/browser/renderer_host/render_view_host_impl.cc index 4675bec..2889577 100644 --- a/content/browser/renderer_host/render_view_host_impl.cc +++ b/content/browser/renderer_host/render_view_host_impl.cc
@@ -342,7 +342,7 @@ std::pair<RoutingIDViewMap::iterator, bool> result = g_routing_id_view_map.Get().emplace( - RenderViewHostID(GetProcess()->GetID(), routing_id_), this); + RenderViewHostID(GetProcess()->GetDeprecatedID(), routing_id_), this); CHECK(result.second) << "Inserting a duplicate item!"; GetAgentSchedulingGroup().AddRoute(routing_id_, this); @@ -381,7 +381,7 @@ // Detach the routing ID as the object is going away. GetAgentSchedulingGroup().RemoveRoute(GetRoutingID()); g_routing_id_view_map.Get().erase( - RenderViewHostID(GetProcess()->GetID(), GetRoutingID())); + RenderViewHostID(GetProcess()->GetDeprecatedID(), GetRoutingID())); delegate_->RenderViewDeleted(this); GetProcess()->RemoveObserver(this); @@ -436,12 +436,12 @@ RenderFrameHostImpl* main_rfh = nullptr; RenderFrameProxyHost* main_rfph = nullptr; if (main_frame_routing_id_ != MSG_ROUTING_NONE) { - main_rfh = RenderFrameHostImpl::FromID(GetProcess()->GetID(), + main_rfh = RenderFrameHostImpl::FromID(GetProcess()->GetDeprecatedID(), main_frame_routing_id_); DCHECK(main_rfh); } else { - main_rfph = - RenderFrameProxyHost::FromID(GetProcess()->GetID(), proxy_route_id); + main_rfph = RenderFrameProxyHost::FromID(GetProcess()->GetDeprecatedID(), + proxy_route_id); DCHECK(main_rfph); } FrameTreeNode* const frame_tree_node = @@ -788,7 +788,7 @@ return nullptr; } - return RenderFrameHostImpl::FromID(GetProcess()->GetID(), + return RenderFrameHostImpl::FromID(GetProcess()->GetDeprecatedID(), main_frame_routing_id_); }
diff --git a/content/browser/renderer_host/render_view_host_unittest.cc b/content/browser/renderer_host/render_view_host_unittest.cc index d2c2eb3..cc0cd97 100644 --- a/content/browser/renderer_host/render_view_host_unittest.cc +++ b/content/browser/renderer_host/render_view_host_unittest.cc
@@ -172,7 +172,7 @@ dropped_data, client_point, screen_point, blink::kDragOperationNone, 0, base::DoNothing()); - int id = process()->GetID(); + int id = process()->GetDeprecatedID(); ChildProcessSecurityPolicyImpl* policy = ChildProcessSecurityPolicyImpl::GetInstance(); @@ -194,7 +194,7 @@ EXPECT_EQ(1, process()->bad_msg_count()); ChildProcessSecurityPolicyImpl::GetInstance()->GrantReadFile( - process()->GetID(), file_path); + process()->GetDeprecatedID(), file_path); test_rvh()->TestOnUpdateStateWithFile(file_path); EXPECT_EQ(1, process()->bad_msg_count()); } @@ -214,7 +214,7 @@ EXPECT_EQ(1, process()->bad_msg_count()); ChildProcessSecurityPolicyImpl::GetInstance()->GrantReadFile( - process()->GetID(), file_path); + process()->GetDeprecatedID(), file_path); auto navigation2 = NavigationSimulatorImpl::CreateRendererInitiated(url, main_test_rfh()); navigation2->set_page_state(
diff --git a/content/browser/renderer_host/render_widget_host_browsertest.cc b/content/browser/renderer_host/render_widget_host_browsertest.cc index e76ed0b..c147ddf 100644 --- a/content/browser/renderer_host/render_widget_host_browsertest.cc +++ b/content/browser/renderer_host/render_widget_host_browsertest.cc
@@ -626,7 +626,7 @@ EXPECT_TRUE(popup_routing_id); // Grab a pointer to the popup RenderWidget. RenderWidgetHost* popup_widget_host = - RenderWidgetHost::FromID(process->GetID(), popup_routing_id); + RenderWidgetHost::FromID(process->GetDeprecatedID(), popup_routing_id); ASSERT_TRUE(popup_widget_host); ASSERT_NE(popup_widget_host, root_frame_host->GetRenderWidgetHost()); @@ -707,7 +707,7 @@ } void DidCreatePopupWidget(RenderWidgetHostImpl* render_widget_host) { - process_id_ = render_widget_host->GetProcess()->GetID(); + process_id_ = render_widget_host->GetProcess()->GetDeprecatedID(); routing_id_ = render_widget_host->GetRoutingID(); std::ignore = render_widget_host->popup_widget_host_receiver_for_testing() .SwapImplForTesting(this); @@ -826,7 +826,7 @@ #else show_popup_interceptor.Wait(); ASSERT_FALSE( - RenderWidgetHost::FromID(root_frame_host->GetProcess()->GetID(), + RenderWidgetHost::FromID(root_frame_host->GetProcess()->GetDeprecatedID(), show_popup_interceptor.last_routing_id())); #endif // BUILDFLAG(IS_MAC) }
diff --git a/content/browser/renderer_host/render_widget_host_impl.cc b/content/browser/renderer_host/render_widget_host_impl.cc index 74f2e51..b39d978 100644 --- a/content/browser/renderer_host/render_widget_host_impl.cc +++ b/content/browser/renderer_host/render_widget_host_impl.cc
@@ -197,7 +197,8 @@ ~RenderWidgetHostIteratorImpl() override = default; void Add(RenderWidgetHost* host) { - hosts_.emplace_back(host->GetProcess()->GetID(), host->GetRoutingID()); + hosts_.emplace_back(host->GetProcess()->GetDeprecatedID(), + host->GetRoutingID()); } // RenderWidgetHostIterator: @@ -435,8 +436,9 @@ std::pair<RoutingIDWidgetMap::iterator, bool> result = g_routing_id_widget_map.Get().insert(std::make_pair( - RenderWidgetHostID(agent_scheduling_group_->GetProcess()->GetID(), - routing_id_), + RenderWidgetHostID( + agent_scheduling_group_->GetProcess()->GetDeprecatedID(), + routing_id_), this)); CHECK(result.second) << "Inserting a duplicate item!"; @@ -541,7 +543,7 @@ const SiteInstanceGroup& group, int routing_id) { return viz::FrameSinkId( - base::checked_cast<uint32_t>(group.process()->GetID()), + base::checked_cast<uint32_t>(group.process()->GetDeprecatedID()), base::checked_cast<uint32_t>(routing_id)); } @@ -1934,7 +1936,7 @@ blink_frame_widget_->DragTargetDrop( DropDataToDragData(drop_data_with_permissions, storage_partition->GetFileSystemAccessManager(), - GetProcess()->GetID(), + GetProcess()->GetDeprecatedID(), ChromeBlobStorageContext::GetFor( GetProcess()->GetBrowserContext())), ConvertWindowPointToViewport(client_point), screen_point, key_modifiers, @@ -2342,7 +2344,7 @@ GetProcess()->RemovePriorityClient(this); GetProcess()->RemoveObserver(this); g_routing_id_widget_map.Get().erase( - RenderWidgetHostID(GetProcess()->GetID(), routing_id_)); + RenderWidgetHostID(GetProcess()->GetDeprecatedID(), routing_id_)); // The |delegate_| may have been destroyed (or is in the process of being // destroyed) and detached first. @@ -2583,8 +2585,9 @@ // `delegate_` may be null since this message may be received from when // the delegate shutdown but this widget is not yet destroyed. if (delegate_) { - delegate_->ShowCreatedWidget(GetProcess()->GetID(), GetRoutingID(), - initial_screen_rect, anchor_screen_rect); + delegate_->ShowCreatedWidget(GetProcess()->GetDeprecatedID(), + GetRoutingID(), initial_screen_rect, + anchor_screen_rect); } std::move(callback).Run(); } @@ -2719,7 +2722,7 @@ // renderer for any file paths in the drop. filtered_data.filenames.clear(); for (const auto& file_info : drop_data.filenames) { - if (policy->CanReadFile(GetProcess()->GetID(), file_info.path)) { + if (policy->CanReadFile(GetProcess()->GetDeprecatedID(), file_info.path)) { filtered_data.filenames.push_back(file_info); } } @@ -2742,7 +2745,8 @@ continue; } - if (policy->CanReadFileSystemFile(GetProcess()->GetID(), file_system_url)) { + if (policy->CanReadFileSystemFile(GetProcess()->GetDeprecatedID(), + file_system_url)) { filtered_data.file_system_files.push_back(file_system_file); } } @@ -3547,7 +3551,8 @@ RenderProcessHost* process = GetProcess(); PrepareDropDataForChildProcess( drop_data, ChildProcessSecurityPolicyImpl::GetInstance(), - process->GetID(), process->GetStoragePartition()->GetFileSystemContext()); + process->GetDeprecatedID(), + process->GetStoragePartition()->GetFileSystemContext()); } void RenderWidgetHostImpl::RequestCompositionUpdates(bool immediate_request,
diff --git a/content/browser/renderer_host/render_widget_host_unittest.cc b/content/browser/renderer_host/render_widget_host_unittest.cc index a49df43..2d4ca3a3 100644 --- a/content/browser/renderer_host/render_widget_host_unittest.cc +++ b/content/browser/renderer_host/render_widget_host_unittest.cc
@@ -2170,7 +2170,7 @@ blink::DragOperationsMask drag_operation = blink::kDragOperationEvery; host_->StartDragging( DropDataToDragData( - drop_data, file_system_manager, process_->GetID(), + drop_data, file_system_manager, process_->GetDeprecatedID(), ChromeBlobStorageContext::GetFor(process_->GetBrowserContext())), url::Origin(), drag_operation, SkBitmap(), gfx::Vector2d(), gfx::Rect(), blink::mojom::DragEventSourceInfo::New()); @@ -2181,7 +2181,7 @@ EXPECT_FALSE(host_->GetView()); host_->StartDragging( DropDataToDragData( - drop_data, file_system_manager, process_->GetID(), + drop_data, file_system_manager, process_->GetDeprecatedID(), ChromeBlobStorageContext::GetFor(process_->GetBrowserContext())), url::Origin(), drag_operation, SkBitmap(), gfx::Vector2d(), gfx::Rect(), blink::mojom::DragEventSourceInfo::New());
diff --git a/content/browser/renderer_host/render_widget_host_view_child_frame_browsertest.cc b/content/browser/renderer_host/render_widget_host_view_child_frame_browsertest.cc index 6fede22..57d3c25 100644 --- a/content/browser/renderer_host/render_widget_host_view_child_frame_browsertest.cc +++ b/content/browser/renderer_host/render_widget_host_view_child_frame_browsertest.cc
@@ -77,9 +77,10 @@ // The viz::FrameSinkID will be replaced while the test blocks for // navigation. It should differ from the information stored in the child's // RenderWidgetHost. - EXPECT_NE(base::checked_cast<uint32_t>( - child_view->GetRenderWidgetHost()->GetProcess()->GetID()), - actual_frame_sink_id_.client_id()); + EXPECT_NE( + base::checked_cast<uint32_t>( + child_view->GetRenderWidgetHost()->GetProcess()->GetDeprecatedID()), + actual_frame_sink_id_.client_id()); EXPECT_NE(base::checked_cast<uint32_t>( child_view->GetRenderWidgetHost()->GetRoutingID()), actual_frame_sink_id_.sink_id());
diff --git a/content/browser/renderer_host/render_widget_host_view_mac.mm b/content/browser/renderer_host/render_widget_host_view_mac.mm index 34fb2986..8f1cdd2 100644 --- a/content/browser/renderer_host/render_widget_host_view_mac.mm +++ b/content/browser/renderer_host/render_widget_host_view_mac.mm
@@ -1787,7 +1787,8 @@ widget_host->delegate()->GetFocusedRenderWidgetHost(widget_host); } if (widget_host) { - keyboard_event_widget_process_id_ = widget_host->GetProcess()->GetID(); + keyboard_event_widget_process_id_ = + widget_host->GetProcess()->GetDeprecatedID(); keyboard_event_widget_routing_id_ = widget_host->GetRoutingID(); } } @@ -1990,7 +1991,8 @@ if (!widget_host) return; - int32_t target_widget_process_id = widget_host->GetProcess()->GetID(); + int32_t target_widget_process_id = + widget_host->GetProcess()->GetDeprecatedID(); int32_t target_widget_routing_id = widget_host->GetRoutingID(); TextInputClientMac::GetInstance()->GetStringFromRange( widget_host, range, @@ -2029,7 +2031,8 @@ if (popup_parent_host_view_) return; - int32_t target_widget_process_id = widget_host->GetProcess()->GetID(); + int32_t target_widget_process_id = + widget_host->GetProcess()->GetDeprecatedID(); int32_t target_widget_routing_id = widget_host->GetRoutingID(); TextInputClientMac::GetInstance()->GetStringAtPoint( widget_host, gfx::ToFlooredPoint(transformed_point),
diff --git a/content/browser/renderer_host/spare_render_process_host_manager_browsertest.cc b/content/browser/renderer_host/spare_render_process_host_manager_browsertest.cc index 90f0268f..5e3e247 100644 --- a/content/browser/renderer_host/spare_render_process_host_manager_browsertest.cc +++ b/content/browser/renderer_host/spare_render_process_host_manager_browsertest.cc
@@ -239,7 +239,7 @@ EXPECT_THAT(spares_before_navigation, Contains(window->web_contents() ->GetPrimaryMainFrame() ->GetProcess() - ->GetID())); + ->GetDeprecatedID())); histogram_tester.ExpectUniqueSample( "BrowserRenderProcessHost.SpareRendererDispatchResult", SpareRendererDispatchResult::kUsed, 1); @@ -255,7 +255,7 @@ Not(Contains(window->web_contents() ->GetPrimaryMainFrame() ->GetProcess() - ->GetID()))); + ->GetDeprecatedID()))); // Check if a fresh spare is available (depending on the operating mode). if (RenderProcessHostImpl::IsSpareProcessKeptAtAllTimes()) { @@ -422,7 +422,7 @@ EXPECT_THAT(spares_before_navigation, Not(Contains(window->web_contents() ->GetPrimaryMainFrame() ->GetProcess() - ->GetID()))); + ->GetDeprecatedID()))); // Check if a fresh spare is available (depending on the operating mode). // Note this behavior is identical to what would have happened if the @@ -440,7 +440,7 @@ spare_manager.WarmupSpare(browser_context()); ASSERT_EQ(spare_manager.GetSpares().size(), 1u); RenderProcessHost* spare_renderer = spare_manager.GetSpares().back(); - int spare_rph_id = spare_renderer->GetID(); + int spare_rph_id = spare_renderer->GetDeprecatedID(); mojo::Remote<mojom::TestService> service; ASSERT_NE(nullptr, spare_renderer); spare_renderer->BindReceiver(service.BindNewPipeAndPassReceiver()); @@ -457,7 +457,8 @@ // The initial spare is gone from the list of spares. EXPECT_THAT(spare_manager.GetSpares(), - Not(Contains(Property(&RenderProcessHost::GetID, spare_rph_id)))); + Not(Contains(Property(&RenderProcessHost::GetDeprecatedID, + spare_rph_id)))); } // A mock ContentBrowserClient that only considers a spare renderer to be a
diff --git a/content/browser/renderer_host/spare_render_process_host_manager_impl.cc b/content/browser/renderer_host/spare_render_process_host_manager_impl.cc index 51c45516..2b3e5b6 100644 --- a/content/browser/renderer_host/spare_render_process_host_manager_impl.cc +++ b/content/browser/renderer_host/spare_render_process_host_manager_impl.cc
@@ -204,7 +204,7 @@ std::vector<int> spare_ids; spare_ids.reserve(spare_rphs_.size()); for (RenderProcessHost* spare_rph : spare_rphs_) { - spare_ids.push_back(spare_rph->GetID()); + spare_ids.push_back(spare_rph->GetDeprecatedID()); } return spare_ids; }
diff --git a/content/browser/renderer_host/unassigned_site_instance_browsertest.cc b/content/browser/renderer_host/unassigned_site_instance_browsertest.cc index cb3279e..dcff1d5 100644 --- a/content/browser/renderer_host/unassigned_site_instance_browsertest.cc +++ b/content/browser/renderer_host/unassigned_site_instance_browsertest.cc
@@ -772,11 +772,11 @@ RenderProcessHost* new_process = new_instance->GetProcess(); auto* policy = ChildProcessSecurityPolicyImpl::GetInstance(); EXPECT_TRUE(policy->CanAccessOrigin( - new_process->GetID(), + new_process->GetDeprecatedID(), url::Origin::Create(embedder_defined_unassigned_url()), ChildProcessSecurityPolicyImpl::AccessType::kCanCommitNewOrigin)); EXPECT_TRUE(policy->CanAccessOrigin( - new_process->GetID(), url::Origin::Create(regular_url()), + new_process->GetDeprecatedID(), url::Origin::Create(regular_url()), ChildProcessSecurityPolicyImpl::AccessType::kCanCommitNewOrigin)); } @@ -904,7 +904,7 @@ web_contents->GetPrimaryMainFrame()->GetSiteInstance()->GetSiteURL()); EXPECT_EQ(ProcessLock::FromSiteInfo(SiteInfo::CreateForTesting( IsolationContext(browser_context), regular_url())), - policy->GetProcessLock(process2->GetID())); + policy->GetProcessLock(process2->GetDeprecatedID())); // Ensure also that the regular url process didn't change midway through the // navigation.
diff --git a/content/browser/security/coop/cross_origin_opener_policy_browsertest.cc b/content/browser/security/coop/cross_origin_opener_policy_browsertest.cc index eff6128..7f996bc 100644 --- a/content/browser/security/coop/cross_origin_opener_policy_browsertest.cc +++ b/content/browser/security/coop/cross_origin_opener_policy_browsertest.cc
@@ -4403,11 +4403,11 @@ GURL url_3(https_server()->GetURL("a.test", "/empty.html?3")); EXPECT_TRUE(NavigateToURL(shell(), url_1)); - int rph_id_1 = current_frame_host()->GetProcess()->GetID(); + int rph_id_1 = current_frame_host()->GetProcess()->GetDeprecatedID(); EXPECT_TRUE(NavigateToURL(shell(), url_2)); - int rph_id_2 = current_frame_host()->GetProcess()->GetID(); + int rph_id_2 = current_frame_host()->GetProcess()->GetDeprecatedID(); EXPECT_TRUE(NavigateToURL(shell(), url_3)); - int rph_id_3 = current_frame_host()->GetProcess()->GetID(); + int rph_id_3 = current_frame_host()->GetProcess()->GetDeprecatedID(); EXPECT_EQ(rph_id_1, rph_id_2); EXPECT_EQ(rph_id_2, rph_id_3); @@ -4426,11 +4426,11 @@ "a.test", "/set-header?Cross-Origin-Opener-Policy: same-origin&3")); EXPECT_TRUE(NavigateToURL(shell(), url_1)); - int rph_id_1 = current_frame_host()->GetProcess()->GetID(); + int rph_id_1 = current_frame_host()->GetProcess()->GetDeprecatedID(); EXPECT_TRUE(NavigateToURL(shell(), url_2)); - int rph_id_2 = current_frame_host()->GetProcess()->GetID(); + int rph_id_2 = current_frame_host()->GetProcess()->GetDeprecatedID(); EXPECT_TRUE(NavigateToURL(shell(), url_3)); - int rph_id_3 = current_frame_host()->GetProcess()->GetID(); + int rph_id_3 = current_frame_host()->GetProcess()->GetDeprecatedID(); EXPECT_EQ(rph_id_1, rph_id_2); EXPECT_EQ(rph_id_2, rph_id_3); @@ -4448,11 +4448,11 @@ GURL url_3(https_server()->GetURL("a.test", "/empty.html")); EXPECT_TRUE(NavigateToURL(shell(), url_1)); - int rph_id_1 = current_frame_host()->GetProcess()->GetID(); + int rph_id_1 = current_frame_host()->GetProcess()->GetDeprecatedID(); EXPECT_TRUE(NavigateToURL(shell(), url_2)); - int rph_id_2 = current_frame_host()->GetProcess()->GetID(); + int rph_id_2 = current_frame_host()->GetProcess()->GetDeprecatedID(); EXPECT_TRUE(NavigateToURL(shell(), url_3)); - int rph_id_3 = current_frame_host()->GetProcess()->GetID(); + int rph_id_3 = current_frame_host()->GetProcess()->GetDeprecatedID(); // If we're using the COOP site isolation heuristic (e.g., on Android), we // have to swap processes since we're going from an unlocked process to a @@ -4481,11 +4481,11 @@ GURL url_3(https_server()->GetURL("c.a.test", "/empty.html")); EXPECT_TRUE(NavigateToURL(shell(), url_1)); - int rph_id_1 = current_frame_host()->GetProcess()->GetID(); + int rph_id_1 = current_frame_host()->GetProcess()->GetDeprecatedID(); EXPECT_TRUE(NavigateToURL(shell(), url_2)); - int rph_id_2 = current_frame_host()->GetProcess()->GetID(); + int rph_id_2 = current_frame_host()->GetProcess()->GetDeprecatedID(); EXPECT_TRUE(NavigateToURL(shell(), url_3)); - int rph_id_3 = current_frame_host()->GetProcess()->GetID(); + int rph_id_3 = current_frame_host()->GetProcess()->GetDeprecatedID(); // If we're using the COOP site isolation heuristic (e.g., on Android), we // have to swap processes since we're going from an unlocked process to a @@ -4520,11 +4520,11 @@ GURL url_3(https_server()->GetURL("c.test", "/empty.html")); EXPECT_TRUE(NavigateToURL(shell(), url_1)); - int rph_id_1 = current_frame_host()->GetProcess()->GetID(); + int rph_id_1 = current_frame_host()->GetProcess()->GetDeprecatedID(); EXPECT_TRUE(NavigateToURL(shell(), url_2)); - int rph_id_2 = current_frame_host()->GetProcess()->GetID(); + int rph_id_2 = current_frame_host()->GetProcess()->GetDeprecatedID(); EXPECT_TRUE(NavigateToURL(shell(), url_3)); - int rph_id_3 = current_frame_host()->GetProcess()->GetID(); + int rph_id_3 = current_frame_host()->GetProcess()->GetDeprecatedID(); EXPECT_NE(rph_id_1, rph_id_2); EXPECT_NE(rph_id_2, rph_id_3); @@ -4593,7 +4593,7 @@ // site, and on desktop it'll be in a process that's locked to a.test. We're // interested in covering both cases. EXPECT_TRUE(NavigateToURL(shell(), url_1)); - int rph_id_1 = current_frame_host()->GetProcess()->GetID(); + int rph_id_1 = current_frame_host()->GetProcess()->GetDeprecatedID(); // Start a navigation to b.test, which will have COOP headers, but this isn't // known until response time. This creates a speculative RFH and process @@ -4607,7 +4607,7 @@ ->render_manager() ->speculative_frame_host()); ASSERT_TRUE(speculative_rfh.get()); - int rph_id_2 = speculative_rfh->GetProcess()->GetID(); + int rph_id_2 = speculative_rfh->GetProcess()->GetDeprecatedID(); EXPECT_NE(rph_id_1, rph_id_2); // Allow the navigation to receive the response and commit. @@ -4622,7 +4622,7 @@ // process locked to b.test, which is exactly the process that we created for // the original speculative RFH. Ensure that this process gets reused and not // wasted. - int rph_id_3 = current_frame_host()->GetProcess()->GetID(); + int rph_id_3 = current_frame_host()->GetProcess()->GetDeprecatedID(); EXPECT_EQ(rph_id_2, rph_id_3); // The original speculative RFH should always be destroyed. @@ -4650,7 +4650,7 @@ // Navigate to a non-COOP URL. EXPECT_TRUE(NavigateToURL(shell(), url_1)); - int rph_id_1 = current_frame_host()->GetProcess()->GetID(); + int rph_id_1 = current_frame_host()->GetProcess()->GetDeprecatedID(); bool rph_1_is_locked = current_frame_host()->GetProcess()->GetProcessLock().is_locked_to_site(); @@ -4672,7 +4672,7 @@ ->render_manager() ->speculative_frame_host(); ASSERT_TRUE(speculative_rfh); - rph_id_2 = speculative_rfh->GetProcess()->GetID(); + rph_id_2 = speculative_rfh->GetProcess()->GetDeprecatedID(); EXPECT_EQ(rph_id_1, rph_id_2); } else { ASSERT_FALSE(web_contents() @@ -4696,7 +4696,7 @@ // and the old process wasn't already locked to a.test. In that case, a // process swap is required, since we are going from an unlocked process to a // locked process. - int rph_id_3 = current_frame_host()->GetProcess()->GetID(); + int rph_id_3 = current_frame_host()->GetProcess()->GetDeprecatedID(); if (SiteIsolationPolicy::IsSiteIsolationForCOOPEnabled()) { EXPECT_NE(rph_id_2, rph_id_3); EXPECT_FALSE(rph_1_is_locked); @@ -4720,7 +4720,7 @@ // Navigate to a COOP URL. EXPECT_TRUE(NavigateToURL(shell(), url_1)); - int rph_id_1 = current_frame_host()->GetProcess()->GetID(); + int rph_id_1 = current_frame_host()->GetProcess()->GetDeprecatedID(); // Start a navigation to another same-site COOP URL. TestNavigationManager navigation(web_contents(), url_2); @@ -4745,7 +4745,7 @@ int rph_id_2; if (IsBackForwardCacheEnabled() || ShouldCreateNewHostForAllFrames()) { ASSERT_TRUE(speculative_rfh); - rph_id_2 = speculative_rfh->GetProcess()->GetID(); + rph_id_2 = speculative_rfh->GetProcess()->GetDeprecatedID(); EXPECT_EQ(rph_id_1, rph_id_2); } else { ASSERT_FALSE(speculative_rfh); @@ -4760,7 +4760,7 @@ // When the response for `url_2` was received, we should verify that COOP // status hasn't changed, so no BrowsingInstance swap is needed, and we // should stay in the same process. - int rph_id_3 = current_frame_host()->GetProcess()->GetID(); + int rph_id_3 = current_frame_host()->GetProcess()->GetDeprecatedID(); EXPECT_EQ(rph_id_2, rph_id_3); } @@ -4778,7 +4778,7 @@ // Navigate to a non-COOP URL. EXPECT_TRUE(NavigateToURL(shell(), url_1)); - int rph_id_1 = current_frame_host()->GetProcess()->GetID(); + int rph_id_1 = current_frame_host()->GetProcess()->GetDeprecatedID(); // Open a same-site popup with COOP. Shell* new_shell = OpenPopup(web_contents(), url_2, ""); @@ -4791,7 +4791,8 @@ // new speculative RFH in a new SiteInstance/BrowsingInstance, and it should // create a fresh process rather than reuse the old a.com process, since // there was more than one active window in the old BrowsingInstance. - int rph_id_2 = popup_contents->GetPrimaryMainFrame()->GetProcess()->GetID(); + int rph_id_2 = + popup_contents->GetPrimaryMainFrame()->GetProcess()->GetDeprecatedID(); EXPECT_NE(rph_id_1, rph_id_2); } @@ -4810,7 +4811,7 @@ scoped_refptr<SiteInstanceImpl> si_1 = rfh_1->GetSiteInstance(); base::UnguessableToken bi_token_1 = rfh_1->GetSiteInstance()->browsing_instance_token(); - int rph_id_1 = rfh_1->GetProcess()->GetID(); + int rph_id_1 = rfh_1->GetProcess()->GetDeprecatedID(); // Start prerendering a COOP page. TestNavigationManager navigation_manager(web_contents(), prerender_page); @@ -4829,7 +4830,7 @@ scoped_refptr<SiteInstanceImpl> si_2 = rfh_2->GetSiteInstance(); base::UnguessableToken bi_token_2 = rfh_2->GetSiteInstance()->browsing_instance_token(); - int rph_id_2 = rfh_2->GetProcess()->GetID(); + int rph_id_2 = rfh_2->GetProcess()->GetDeprecatedID(); ASSERT_NE(rfh_1, rfh_2); ASSERT_NE(si_1, si_2); ASSERT_NE(bi_token_1, bi_token_2); @@ -4849,7 +4850,7 @@ scoped_refptr<SiteInstanceImpl> si_3 = rfh_3->GetSiteInstance(); base::UnguessableToken bi_token_3 = rfh_3->GetSiteInstance()->browsing_instance_token(); - int rph_id_3 = rfh_3->GetProcess()->GetID(); + int rph_id_3 = rfh_3->GetProcess()->GetDeprecatedID(); EXPECT_NE(rfh_2, rfh_3); EXPECT_NE(si_2, si_3); EXPECT_NE(bi_token_2, bi_token_3);
diff --git a/content/browser/security_exploit_browsertest.cc b/content/browser/security_exploit_browsertest.cc index 2c063cc..fb0e8a8 100644 --- a/content/browser/security_exploit_browsertest.cc +++ b/content/browser/security_exploit_browsertest.cc
@@ -148,9 +148,14 @@ Shell* shell2 = shell2_observer.GetShell(); // The new window must be in the same process, but have a new routing id. - EXPECT_EQ( - shell->web_contents()->GetPrimaryMainFrame()->GetProcess()->GetID(), - shell2->web_contents()->GetPrimaryMainFrame()->GetProcess()->GetID()); + EXPECT_EQ(shell->web_contents() + ->GetPrimaryMainFrame() + ->GetProcess() + ->GetDeprecatedID(), + shell2->web_contents() + ->GetPrimaryMainFrame() + ->GetProcess() + ->GetDeprecatedID()); *target_routing_id = shell2->web_contents() ->GetPrimaryMainFrame() ->GetRenderViewHost() @@ -185,8 +190,11 @@ ->speculative_frame_host(); EXPECT_TRUE(next_rfh); - EXPECT_NE(shell->web_contents()->GetPrimaryMainFrame()->GetProcess()->GetID(), - next_rfh->GetProcess()->GetID()); + EXPECT_NE(shell->web_contents() + ->GetPrimaryMainFrame() + ->GetProcess() + ->GetDeprecatedID(), + next_rfh->GetProcess()->GetDeprecatedID()); return next_rfh; } @@ -1140,7 +1148,8 @@ RenderFrameHost* subframe = ChildFrameAt(main_frame, 0); ASSERT_TRUE(subframe); RenderProcessHost* subframe_process = subframe->GetProcess(); - EXPECT_NE(main_process->GetID(), subframe_process->GetID()); + EXPECT_NE(main_process->GetDeprecatedID(), + subframe_process->GetDeprecatedID()); // Prepare to intercept OpenURL Mojo message that will come from // the main frame. @@ -1714,7 +1723,7 @@ process_kill_waiter.Wait()); EXPECT_FALSE(ChildProcessSecurityPolicyImpl::GetInstance()->CanReadFile( - rfh->GetProcess()->GetID(), file_path)); + rfh->GetProcess()->GetDeprecatedID(), file_path)); // Reload the page to create another renderer process. TestNavigationObserver tab_observer(shell()->web_contents(), 1);
diff --git a/content/browser/service_worker/embedded_worker_instance.cc b/content/browser/service_worker/embedded_worker_instance.cc index 2a139f0..8a976c6 100644 --- a/content/browser/service_worker/embedded_worker_instance.cc +++ b/content/browser/service_worker/embedded_worker_instance.cc
@@ -855,7 +855,7 @@ URLLoaderFactoryParamsHelper::CreateForWorker( rph, origin, isolation_info, std::move(coep_reporter), static_cast<StoragePartitionImpl*>(rph->GetStoragePartition()) - ->CreateAuthCertObserverForServiceWorker(rph->GetID()), + ->CreateAuthCertObserverForServiceWorker(rph->GetDeprecatedID()), NetworkServiceDevToolsObserver::MakeSelfOwned(devtools_worker_token), std::move(client_security_state), "EmbeddedWorkerInstance::CreateFactoryBundle", @@ -876,9 +876,9 @@ url_loader_factory::HeaderClientOption::kAllow, url_loader_factory::FactoryOverrideOption::kAllow), url_loader_factory::ContentClientParams( - rph->GetBrowserContext(), nullptr /* frame_host */, rph->GetID(), - origin, isolation_info, ukm::kInvalidSourceIdObj, - &bypass_redirect_checks), + rph->GetBrowserContext(), nullptr /* frame_host */, + rph->GetDeprecatedID(), origin, isolation_info, + ukm::kInvalidSourceIdObj, &bypass_redirect_checks), devtools_instrumentation::WillCreateURLLoaderFactoryParams:: ForServiceWorker(*rph, routing_id)); @@ -908,7 +908,8 @@ GetContentClient() ->browser() ->RegisterNonNetworkSubresourceURLLoaderFactories( - rph->GetID(), MSG_ROUTING_NONE, origin, &non_network_factories); + rph->GetDeprecatedID(), MSG_ROUTING_NONE, origin, + &non_network_factories); for (auto& pair : non_network_factories) { const std::string& scheme = pair.first;
diff --git a/content/browser/service_worker/embedded_worker_test_helper.cc b/content/browser/service_worker/embedded_worker_test_helper.cc index 6f2bdd89..c248d4d 100644 --- a/content/browser/service_worker/embedded_worker_test_helper.cc +++ b/content/browser/service_worker/embedded_worker_test_helper.cc
@@ -101,8 +101,8 @@ user_data_directory_(user_data_directory), database_task_runner_(base::SingleThreadTaskRunner::GetCurrentDefault()), next_thread_id_(0), - mock_render_process_id_(render_process_host_->GetID()), - new_mock_render_process_id_(new_render_process_host_->GetID()), + mock_render_process_id_(render_process_host_->GetDeprecatedID()), + new_mock_render_process_id_(new_render_process_host_->GetDeprecatedID()), url_loader_factory_(base::MakeRefCounted<ReconnectableURLLoaderFactory>( base::BindRepeating(&CreateURLLoaderFactory))) { wrapper_->SetStorageControlBinderForTest(base::BindRepeating(
diff --git a/content/browser/service_worker/service_worker_browsertest.cc b/content/browser/service_worker/service_worker_browsertest.cc index bcccd844..7184b158 100644 --- a/content/browser/service_worker/service_worker_browsertest.cc +++ b/content/browser/service_worker/service_worker_browsertest.cc
@@ -1016,9 +1016,12 @@ kActivating == running_info.version_status || content::ServiceWorkerRunningInfo::ServiceWorkerVersionStatus:: kActivated == running_info.version_status); - EXPECT_EQ( - shell()->web_contents()->GetPrimaryMainFrame()->GetProcess()->GetID(), - running_info.render_process_id); + EXPECT_EQ(shell() + ->web_contents() + ->GetPrimaryMainFrame() + ->GetProcess() + ->GetDeprecatedID(), + running_info.render_process_id); } IN_PROC_BROWSER_TEST_F(ServiceWorkerBrowserTest, StartWorkerWhileInstalling) { @@ -3534,8 +3537,11 @@ running_info.script_url); bool is_in_process = - shell()->web_contents()->GetPrimaryMainFrame()->GetProcess()->GetID() == - running_info.render_process_id; + shell() + ->web_contents() + ->GetPrimaryMainFrame() + ->GetProcess() + ->GetDeprecatedID() == running_info.render_process_id; if (!IsPageCrossOriginIsolated() && !IsServiceWorkerCrossOriginIsolated()) { EXPECT_TRUE(is_in_process); } @@ -3603,8 +3609,11 @@ running_info.script_url); bool is_in_process = - shell()->web_contents()->GetPrimaryMainFrame()->GetProcess()->GetID() == - running_info.render_process_id; + shell() + ->web_contents() + ->GetPrimaryMainFrame() + ->GetProcess() + ->GetDeprecatedID() == running_info.render_process_id; bool should_be_in_process = IsPageCrossOriginIsolated() == IsServiceWorkerCrossOriginIsolated(); EXPECT_EQ(is_in_process, should_be_in_process); @@ -3651,8 +3660,11 @@ running_info.script_url); bool is_in_process = - shell()->web_contents()->GetPrimaryMainFrame()->GetProcess()->GetID() == - running_info.render_process_id; + shell() + ->web_contents() + ->GetPrimaryMainFrame() + ->GetProcess() + ->GetDeprecatedID() == running_info.render_process_id; EXPECT_TRUE(is_in_process); } @@ -3696,8 +3708,11 @@ running_info.script_url); bool is_in_process = - shell()->web_contents()->GetPrimaryMainFrame()->GetProcess()->GetID() == - running_info.render_process_id; + shell() + ->web_contents() + ->GetPrimaryMainFrame() + ->GetProcess() + ->GetDeprecatedID() == running_info.render_process_id; EXPECT_TRUE(is_in_process); } @@ -3783,7 +3798,8 @@ // The service worker shares the process with the page that requested it. const ServiceWorkerRunningInfo& running_info = infos.begin()->second; EXPECT_EQ(service_worker_url, running_info.script_url); - EXPECT_EQ(rfh_1->GetProcess()->GetID(), running_info.render_process_id); + EXPECT_EQ(rfh_1->GetProcess()->GetDeprecatedID(), + running_info.render_process_id); } // Reload the page so that it would use the service worker. @@ -3821,7 +3837,8 @@ // The service worker also shares the same process as |rfh_2|. const ServiceWorkerRunningInfo& running_info = infos.begin()->second; EXPECT_EQ(service_worker_url, running_info.script_url); - EXPECT_EQ(rfh_2->GetProcess()->GetID(), running_info.render_process_id); + EXPECT_EQ(rfh_2->GetProcess()->GetDeprecatedID(), + running_info.render_process_id); } // Fetch something from the service worker. @@ -3878,7 +3895,8 @@ // The service worker shares the process with the page that requested it. const ServiceWorkerRunningInfo& running_info = infos.begin()->second; EXPECT_EQ(service_worker_url, running_info.script_url); - EXPECT_EQ(rfh_1->GetProcess()->GetID(), running_info.render_process_id); + EXPECT_EQ(rfh_1->GetProcess()->GetDeprecatedID(), + running_info.render_process_id); } // Reload the page so that it would use the service worker. @@ -3929,8 +3947,10 @@ // in |rfh_1|'s process). const ServiceWorkerRunningInfo& running_info = infos.begin()->second; EXPECT_EQ(service_worker_url, running_info.script_url); - EXPECT_NE(rfh_2->GetProcess()->GetID(), running_info.render_process_id); - EXPECT_EQ(rfh_1->GetProcess()->GetID(), running_info.render_process_id); + EXPECT_NE(rfh_2->GetProcess()->GetDeprecatedID(), + running_info.render_process_id); + EXPECT_EQ(rfh_1->GetProcess()->GetDeprecatedID(), + running_info.render_process_id); } // Fetch something from the service worker. @@ -4172,7 +4192,7 @@ // The service worker shares the process with the page that requested it. const ServiceWorkerRunningInfo& running_info = infos.begin()->second; - EXPECT_EQ(fenced_frame->GetProcess()->GetID(), + EXPECT_EQ(fenced_frame->GetProcess()->GetDeprecatedID(), running_info.render_process_id); }
diff --git a/content/browser/service_worker/service_worker_fetch_dispatcher.cc b/content/browser/service_worker/service_worker_fetch_dispatcher.cc index 0c48567..5ee5ef9 100644 --- a/content/browser/service_worker/service_worker_fetch_dispatcher.cc +++ b/content/browser/service_worker/service_worker_fetch_dispatcher.cc
@@ -336,7 +336,7 @@ // for navigations. GetContentClient()->browser()->WillCreateURLLoaderFactory( partition.browser_context(), frame_tree_node.current_frame_host(), - frame_tree_node.current_frame_host()->GetProcess()->GetID(), + frame_tree_node.current_frame_host()->GetProcess()->GetDeprecatedID(), ContentBrowserClient::URLLoaderFactoryType::kNavigation, url::Origin(), net::IsolationInfo(), frame_tree_node.navigation_request()->GetNavigationId(),
diff --git a/content/browser/service_worker/service_worker_file_upload_browsertest.cc b/content/browser/service_worker/service_worker_file_upload_browsertest.cc index 7ad9b74e..3c29db5 100644 --- a/content/browser/service_worker/service_worker_file_upload_browsertest.cc +++ b/content/browser/service_worker/service_worker_file_upload_browsertest.cc
@@ -261,7 +261,8 @@ EXPECT_TRUE(NavigateToURL(shell(), page_url)); if (IsDifferentProcessForced()) { - int page_process_id = current_frame_host()->GetProcess()->GetID(); + int page_process_id = + current_frame_host()->GetProcess()->GetDeprecatedID(); int worker_process_id = GetServiceWorkerProcessId(); ASSERT_NE(page_process_id, worker_process_id); }
diff --git a/content/browser/service_worker/service_worker_host.cc b/content/browser/service_worker/service_worker_host.cc index 88829108..ac6ef609 100644 --- a/content/browser/service_worker/service_worker_host.cc +++ b/content/browser/service_worker/service_worker_host.cc
@@ -228,8 +228,8 @@ } storage_partition_impl->GetBlobUrlRegistry()->AddReceiver( - version()->key(), version()->key().origin(), GetProcessHost()->GetID(), - std::move(receiver)); + version()->key(), version()->key().origin(), + GetProcessHost()->GetDeprecatedID(), std::move(receiver)); } void ServiceWorkerHost::CreateBucketManagerHost(
diff --git a/content/browser/service_worker/service_worker_process_browsertest.cc b/content/browser/service_worker/service_worker_process_browsertest.cc index dbb4a6b..1fc3ac04 100644 --- a/content/browser/service_worker/service_worker_process_browsertest.cc +++ b/content/browser/service_worker/service_worker_process_browsertest.cc
@@ -185,7 +185,7 @@ observer.WaitUntilRunning(); // The page and service worker should be in the same process. - int page_process_id = current_frame_host()->GetProcess()->GetID(); + int page_process_id = current_frame_host()->GetProcess()->GetDeprecatedID(); EXPECT_NE(page_process_id, ChildProcessHost::kInvalidUniqueID); ASSERT_EQ(GetRunningServiceWorkerCount(), 1u); int worker_process_id = GetServiceWorkerProcessId(); @@ -218,7 +218,7 @@ scoped_refptr<SiteInstanceImpl> site_instance = web_contents()->GetPrimaryMainFrame()->GetSiteInstance(); EXPECT_EQ(GURL(), site_instance->GetSiteURL()); - int page_process_id = current_frame_host()->GetProcess()->GetID(); + int page_process_id = current_frame_host()->GetProcess()->GetDeprecatedID(); EXPECT_NE(page_process_id, ChildProcessHost::kInvalidUniqueID); // Start the service worker. @@ -248,7 +248,8 @@ // same process as the original page. ASSERT_TRUE(NavigateToURL( shell(), embedded_test_server()->GetURL("/service_worker/empty.html"))); - EXPECT_EQ(page_process_id, current_frame_host()->GetProcess()->GetID()); + EXPECT_EQ(page_process_id, + current_frame_host()->GetProcess()->GetDeprecatedID()); } // Toggle Site Isolation.
diff --git a/content/browser/service_worker/service_worker_process_manager.cc b/content/browser/service_worker/service_worker_process_manager.cc index 860ce6a..55d7660 100644 --- a/content/browser/service_worker/service_worker_process_manager.cc +++ b/content/browser/service_worker/service_worker_process_manager.cc
@@ -138,8 +138,8 @@ if (rph->GetProcessLock().MatchesOrigin(url::Origin::Create(script_url))) { GetContentClient() ->browser() - ->GrantAdditionalRequestPrivilegesToWorkerProcess(rph->GetID(), - script_url); + ->GrantAdditionalRequestPrivilegesToWorkerProcess( + rph->GetDeprecatedID(), script_url); } ServiceWorkerMetrics::StartSituation start_situation; @@ -163,7 +163,7 @@ worker_process_map_.emplace(embedded_worker_id, std::move(site_instance)); if (!rph->AreRefCountsDisabled()) rph->IncrementWorkerRefCount(); - out_info->process_id = rph->GetID(); + out_info->process_id = rph->GetDeprecatedID(); out_info->start_situation = start_situation; return blink::ServiceWorkerStatusCode::kOk; }
diff --git a/content/browser/service_worker/service_worker_process_manager.h b/content/browser/service_worker/service_worker_process_manager.h index b8cb2f0..f507f472 100644 --- a/content/browser/service_worker/service_worker_process_manager.h +++ b/content/browser/service_worker/service_worker_process_manager.h
@@ -35,7 +35,7 @@ public: // The return value for AllocateWorkerProcess(). struct AllocatedProcessInfo { - // Same as RenderProcessHost::GetID(). + // Same as RenderProcessHost::GetDeprecatedID(). int process_id; // This must be one of NEW_PROCESS, EXISTING_UNREADY_PROCESS or
diff --git a/content/browser/service_worker/service_worker_process_manager_unittest.cc b/content/browser/service_worker/service_worker_process_manager_unittest.cc index 6648b40..a9891f92 100644 --- a/content/browser/service_worker/service_worker_process_manager_unittest.cc +++ b/content/browser/service_worker/service_worker_process_manager_unittest.cc
@@ -143,7 +143,7 @@ // An existing process should be allocated to the worker. EXPECT_EQ(blink::ServiceWorkerStatusCode::kOk, status); - EXPECT_EQ(host->GetID(), process_info.process_id); + EXPECT_EQ(host->GetDeprecatedID(), process_info.process_id); EXPECT_EQ(ServiceWorkerMetrics::StartSituation::EXISTING_UNREADY_PROCESS, process_info.start_situation); EXPECT_EQ(1u, host->GetWorkerRefCount()); @@ -188,7 +188,7 @@ // A new process should be allocated to the worker. EXPECT_EQ(blink::ServiceWorkerStatusCode::kOk, status); - EXPECT_NE(host->GetID(), process_info.process_id); + EXPECT_NE(host->GetDeprecatedID(), process_info.process_id); EXPECT_EQ(ServiceWorkerMetrics::StartSituation::NEW_PROCESS, process_info.start_situation); EXPECT_EQ(0u, host->GetWorkerRefCount());
diff --git a/content/browser/service_worker/service_worker_version_unittest.cc b/content/browser/service_worker/service_worker_version_unittest.cc index 0fbfff2..8999347 100644 --- a/content/browser/service_worker/service_worker_version_unittest.cc +++ b/content/browser/service_worker/service_worker_version_unittest.cc
@@ -202,7 +202,7 @@ if (in_different_process) { auto client_render_process_host = std::make_unique<MockRenderProcessHost>(helper_->browser_context()); - controllee_process_id = client_render_process_host->GetID(); + controllee_process_id = client_render_process_host->GetDeprecatedID(); client_render_process_hosts_.push_back( std::move(client_render_process_host)); } else {
diff --git a/content/browser/shared_storage/shared_storage_worklet_host.cc b/content/browser/shared_storage/shared_storage_worklet_host.cc index 38eb8a5..8b6597b 100644 --- a/content/browser/shared_storage/shared_storage_worklet_host.cc +++ b/content/browser/shared_storage/shared_storage_worklet_host.cc
@@ -1568,7 +1568,7 @@ mojo::PendingRemote<blink::mojom::CodeCacheHost> actual_code_cache_host; code_cache_host_receivers_->Add( - rfh.GetProcess()->GetID(), rfh.GetNetworkIsolationKey(), + rfh.GetProcess()->GetDeprecatedID(), rfh.GetNetworkIsolationKey(), rfh.GetStorageKey(), actual_code_cache_host.InitWithNewPipeAndPassReceiver());
diff --git a/content/browser/site_instance_group.cc b/content/browser/site_instance_group.cc index 6794d4f8..b02a2ee 100644 --- a/content/browser/site_instance_group.cc +++ b/content/browser/site_instance_group.cc
@@ -111,7 +111,7 @@ } void SiteInstanceGroup::RenderProcessHostDestroyed(RenderProcessHost* host) { - DCHECK_EQ(process_->GetID(), host->GetID()); + DCHECK_EQ(process_->GetDeprecatedID(), host->GetDeprecatedID()); process_->RemoveObserver(this); // Remove references to `this` from all SiteInstances in this group. That will
diff --git a/content/browser/site_instance_impl.cc b/content/browser/site_instance_impl.cc index 245f5f6..2f87352 100644 --- a/content/browser/site_instance_impl.cc +++ b/content/browser/site_instance_impl.cc
@@ -495,7 +495,7 @@ TRACE_EVENT2("navigation", "SiteInstanceImpl::SetProcessInternal", "site id", id_.value(), "process id", - site_instance_group_->process()->GetID()); + site_instance_group_->process()->GetDeprecatedID()); // Inform the embedder if the SiteInstance now has both the process and the // site assigned. Note that this can be called either here or when setting @@ -1434,7 +1434,8 @@ } else { CHECK(process_lock.allows_any_site()) << "Unexpected process lock " << process_lock.ToString(); - policy->IncludeIsolationContext(process->GetID(), GetIsolationContext()); + policy->IncludeIsolationContext(process->GetDeprecatedID(), + GetIsolationContext()); } return; } @@ -1460,7 +1461,7 @@ // process. base::debug::SetCrashKeyString(bad_message::GetRequestedSiteInfoKey(), site_info_.GetDebugString()); - policy->LogKilledProcessOriginLock(process->GetID()); + policy->LogKilledProcessOriginLock(process->GetDeprecatedID()); NOTREACHED() << "Trying to lock a process to " << lock_to_set.ToString() << " but the process is already locked to " << process_lock.ToString(); @@ -1474,7 +1475,7 @@ // process, but it has been put in a process for a site that does. base::debug::SetCrashKeyString(bad_message::GetRequestedSiteInfoKey(), site_info_.GetDebugString()); - policy->LogKilledProcessOriginLock(process->GetID()); + policy->LogKilledProcessOriginLock(process->GetDeprecatedID()); NOTREACHED() << "Trying to commit non-isolated site " << site_info_ << " in process locked to " << process_lock.ToString(); } else if (process_lock.is_invalid()) { @@ -1505,7 +1506,8 @@ // ChildProcessSecurityPolicyImpl (e.g. CanAccessDataForOrigin) determine // whether a given URL should require a lock or not (a dynamically isolated // origin may require a lock in some isolation contexts but not in others). - policy->IncludeIsolationContext(process->GetID(), GetIsolationContext()); + policy->IncludeIsolationContext(process->GetDeprecatedID(), + GetIsolationContext()); } const WebExposedIsolationInfo& SiteInstanceImpl::GetWebExposedIsolationInfo()
diff --git a/content/browser/site_instance_impl_unittest.cc b/content/browser/site_instance_impl_unittest.cc index 3e0ddfc0..ff64d3c 100644 --- a/content/browser/site_instance_impl_unittest.cc +++ b/content/browser/site_instance_impl_unittest.cc
@@ -92,8 +92,8 @@ public: bool IsSuitableHost(RenderProcessHost* process_host, const GURL& site_url) override { - return (privileged_process_id_ == process_host->GetID()) == - site_url.SchemeIs(kPrivilegedScheme); + return (privileged_process_id_ == process_host->GetDeprecatedID()) == + site_url.SchemeIs(kPrivilegedScheme); } void set_privileged_process_id(int process_id) { @@ -1224,7 +1224,8 @@ // Simulate granting WebUI bindings for the process. ChildProcessSecurityPolicyImpl::GetInstance()->GrantWebUIBindings( - webui_host->GetID(), BindingsPolicySet({BindingsPolicyValue::kWebUi})); + webui_host->GetDeprecatedID(), + BindingsPolicySet({BindingsPolicyValue::kWebUi})); EXPECT_TRUE(webui_instance->HasProcess()); EXPECT_TRUE(webui_instance->IsSuitableForUrlInfo(
diff --git a/content/browser/site_per_process_browsertest.cc b/content/browser/site_per_process_browsertest.cc index 41f2149..442d005 100644 --- a/content/browser/site_per_process_browsertest.cc +++ b/content/browser/site_per_process_browsertest.cc
@@ -1104,7 +1104,7 @@ ->current_frame_host() ->GetSiteInstance() ->GetProcess() - ->GetID(); + ->GetDeprecatedID(); int subframe_rvh_id = root->child_at(0) ->current_frame_host() ->render_view_host() @@ -4124,7 +4124,7 @@ RenderFrameHostImpl* rfh = root->current_frame_host(); RenderViewHostImpl* rvh = rfh->render_view_host(); int rvh_routing_id = rvh->GetRoutingID(); - int rvh_process_id = rvh->GetProcess()->GetID(); + int rvh_process_id = rvh->GetProcess()->GetDeprecatedID(); SiteInstanceImpl* site_instance = rfh->GetSiteInstance(); RenderFrameDeletedObserver deleted_observer(rfh); @@ -4186,7 +4186,7 @@ EXPECT_EQ(site_instance, pending_rfh->GetSiteInstance()); EXPECT_FALSE(rvh_routing_id == pending_rvh->GetRoutingID() && - rvh_process_id == pending_rvh->GetProcess()->GetID()); + rvh_process_id == pending_rvh->GetProcess()->GetDeprecatedID()); // Make sure the last navigation finishes without crashing. ASSERT_TRUE(navigation_manager.WaitForNavigationFinished()); @@ -6330,10 +6330,12 @@ run_loop2.Run(); // At this point, we should have two pending WebContents. - EXPECT_TRUE(base::Contains(web_contents()->pending_contents_, - GlobalRoutingID(process1->GetID(), routing_id1))); - EXPECT_TRUE(base::Contains(web_contents()->pending_contents_, - GlobalRoutingID(process2->GetID(), routing_id2))); + EXPECT_TRUE(base::Contains( + web_contents()->pending_contents_, + GlobalRoutingID(process1->GetDeprecatedID(), routing_id1))); + EXPECT_TRUE(base::Contains( + web_contents()->pending_contents_, + GlobalRoutingID(process2->GetDeprecatedID(), routing_id2))); // Both subframes were set up in the same way, so the next routing ID for the // new popup windows should match up (this led to the collision in the @@ -6508,7 +6510,8 @@ event); run_loop1.Run(); - auto first_popup_global_id = GlobalRoutingID(process1->GetID(), routing_id1); + auto first_popup_global_id = + GlobalRoutingID(process1->GetDeprecatedID(), routing_id1); // Add an interceptor for first popup widget so it doesn't get closed // immediately while the other one is being opened. EXPECT_TRUE( @@ -6534,8 +6537,9 @@ // At this point, we should have two pending widgets. EXPECT_TRUE( base::Contains(web_contents()->pending_widgets_, first_popup_global_id)); - EXPECT_TRUE(base::Contains(web_contents()->pending_widgets_, - GlobalRoutingID(process2->GetID(), routing_id2))); + EXPECT_TRUE(base::Contains( + web_contents()->pending_widgets_, + GlobalRoutingID(process2->GetDeprecatedID(), routing_id2))); // Both subframes were set up in the same way, so the next routing ID for the // new popup widgets should match up (this led to the collision in the @@ -6545,10 +6549,12 @@ // Now simulate both widgets being shown. interceptor1.ResumeShowPopupWidget(); interceptor2.ResumeShowPopupWidget(); - EXPECT_FALSE(base::Contains(web_contents()->pending_widgets_, - GlobalRoutingID(process1->GetID(), routing_id1))); - EXPECT_FALSE(base::Contains(web_contents()->pending_widgets_, - GlobalRoutingID(process2->GetID(), routing_id2))); + EXPECT_FALSE(base::Contains( + web_contents()->pending_widgets_, + GlobalRoutingID(process1->GetDeprecatedID(), routing_id1))); + EXPECT_FALSE(base::Contains( + web_contents()->pending_widgets_, + GlobalRoutingID(process2->GetDeprecatedID(), routing_id2))); // There are posted tasks that must be run before the test shuts down, lest // they access deleted state. @@ -9473,10 +9479,12 @@ child->current_frame_host()->GetProcess()->GetEffectiveImportance()); // Check importance is maintained if child navigates to new domain. - int old_child_process_id = child->current_frame_host()->GetProcess()->GetID(); + int old_child_process_id = + child->current_frame_host()->GetProcess()->GetDeprecatedID(); GURL url = embedded_test_server()->GetURL("foo.com", "/title2.html"); EXPECT_TRUE(NavigateToURLFromRenderer(root->child_at(0), url)); - int new_child_process_id = child->current_frame_host()->GetProcess()->GetID(); + int new_child_process_id = + child->current_frame_host()->GetProcess()->GetDeprecatedID(); EXPECT_NE(old_child_process_id, new_child_process_id); EXPECT_EQ( ChildProcessImportance::NORMAL, @@ -9485,11 +9493,13 @@ root->current_frame_host()->GetProcess()->GetEffectiveImportance()); // Check importance is maintained if root navigates to new domain. - int old_root_process_id = root->current_frame_host()->GetProcess()->GetID(); + int old_root_process_id = + root->current_frame_host()->GetProcess()->GetDeprecatedID(); child = nullptr; // Going to navigate root to page without any child. EXPECT_TRUE(NavigateToURLFromRenderer(root, url)); EXPECT_EQ(0u, root->child_count()); - int new_root_process_id = root->current_frame_host()->GetProcess()->GetID(); + int new_root_process_id = + root->current_frame_host()->GetProcess()->GetDeprecatedID(); EXPECT_NE(old_root_process_id, new_root_process_id); EXPECT_EQ(ChildProcessImportance::IMPORTANT, root->current_frame_host()->GetProcess()->GetEffectiveImportance());
diff --git a/content/browser/site_per_process_hit_test_browsertest.cc b/content/browser/site_per_process_hit_test_browsertest.cc index bf84b8fb..c5cc4d41 100644 --- a/content/browser/site_per_process_hit_test_browsertest.cc +++ b/content/browser/site_per_process_hit_test_browsertest.cc
@@ -5962,7 +5962,8 @@ // Android use native widgets. Windows does not support this as UI // convention (it requires separate clicks to open the menu and select an // option). See https://crbug.com/703191. - int process_id = child_node->current_frame_host()->GetProcess()->GetID(); + int process_id = + child_node->current_frame_host()->GetProcess()->GetDeprecatedID(); popup_waiter.emplace(web_contents(), child_node->current_frame_host()); input::RenderWidgetHostInputEventRouter* router = static_cast<WebContentsImpl*>(shell()->web_contents())
diff --git a/content/browser/speech/speech_recognition_dispatcher_host.cc b/content/browser/speech/speech_recognition_dispatcher_host.cc index d364ae2c..8846fae 100644 --- a/content/browser/speech/speech_recognition_dispatcher_host.cc +++ b/content/browser/speech/speech_recognition_dispatcher_host.cc
@@ -151,7 +151,8 @@ embedder_frame = outer_web_contents->GetPrimaryMainFrame(); } - embedder_render_process_id = embedder_frame->GetProcess()->GetID(); + embedder_render_process_id = + embedder_frame->GetProcess()->GetDeprecatedID(); DCHECK_NE(embedder_render_process_id, 0); embedder_render_frame_id = embedder_frame->GetRoutingID(); DCHECK_NE(embedder_render_frame_id, MSG_ROUTING_NONE);
diff --git a/content/browser/ssl/ssl_manager.cc b/content/browser/ssl/ssl_manager.cc index b7df0df..e1b7e30 100644 --- a/content/browser/ssl/ssl_manager.cc +++ b/content/browser/ssl/ssl_manager.cc
@@ -264,7 +264,7 @@ if (ssl_host_state_delegate_) { ssl_host_state_delegate_->HostRanInsecureContent( - security_origin.host(), site_instance->GetProcess()->GetID(), + security_origin.host(), site_instance->GetProcess()->GetDeprecatedID(), SSLHostStateDelegate::MIXED_CONTENT); } // TODO(crbug.com/40223471): Ensure proper notify_changes is passed to @@ -284,7 +284,7 @@ if (ssl_host_state_delegate_) { ssl_host_state_delegate_->HostRanInsecureContent( - security_origin.host(), site_instance->GetProcess()->GetID(), + security_origin.host(), site_instance->GetProcess()->GetDeprecatedID(), SSLHostStateDelegate::CERT_ERRORS_CONTENT); } // TODO(crbug.com/40223471): Ensure proper notify_changes is passed to @@ -409,7 +409,7 @@ // those cases. if (entry_origin.has_value()) { const std::string& host = entry_origin->host(); - int process_id = site_instance->GetProcess()->GetID(); + int process_id = site_instance->GetProcess()->GetDeprecatedID(); if (ssl_host_state_delegate_->DidHostRunInsecureContent( host, process_id, SSLHostStateDelegate::MIXED_CONTENT)) { entry->GetSSL().content_status |= SSLStatus::RAN_INSECURE_CONTENT;
diff --git a/content/browser/storage_access/storage_access_browsertest.cc b/content/browser/storage_access/storage_access_browsertest.cc index 95be6218..e995cfd0 100644 --- a/content/browser/storage_access/storage_access_browsertest.cc +++ b/content/browser/storage_access/storage_access_browsertest.cc
@@ -112,7 +112,7 @@ child->current_frame_host()->GetFrameToken(), third_party_remote.BindNewPipeAndPassReceiver(), ChildProcessSecurityPolicyImpl::GetInstance()->CreateHandle( - child->current_frame_host()->GetProcess()->GetID()), + child->current_frame_host()->GetProcess()->GetDeprecatedID()), base::DoNothing()); third_party_remote.FlushForTesting(); EXPECT_TRUE(third_party_remote.is_connected()); @@ -128,7 +128,7 @@ child->current_frame_host()->GetFrameToken(), first_party_remote.BindNewPipeAndPassReceiver(), ChildProcessSecurityPolicyImpl::GetInstance()->CreateHandle( - child->current_frame_host()->GetProcess()->GetID()), + child->current_frame_host()->GetProcess()->GetDeprecatedID()), base::DoNothing()); first_party_remote.FlushForTesting(); EXPECT_EQ(first_party_remote.is_connected(), is_connected);
diff --git a/content/browser/storage_access/storage_access_handle.cc b/content/browser/storage_access/storage_access_handle.cc index aef081d..d6c1d634 100644 --- a/content/browser/storage_access/storage_access_handle.cc +++ b/content/browser/storage_access/storage_access_handle.cc
@@ -170,7 +170,7 @@ ->AddReceiver(blink::StorageKey::CreateFirstParty( render_frame_host().GetStorageKey().origin()), render_frame_host().GetLastCommittedOrigin(), - render_frame_host().GetProcess()->GetID(), + render_frame_host().GetProcess()->GetDeprecatedID(), std::move(receiver), base::DoNothing()); }
diff --git a/content/browser/storage_partition_impl.cc b/content/browser/storage_partition_impl.cc index 5a3104a..4653d5b 100644 --- a/content/browser/storage_partition_impl.cc +++ b/content/browser/storage_partition_impl.cc
@@ -2275,7 +2275,7 @@ if (context.navigation_or_document()) { auto* render_frame_host = context.navigation_or_document()->GetDocument(); if (render_frame_host) { - process_id = render_frame_host->GetProcess()->GetID(); + process_id = render_frame_host->GetProcess()->GetDeprecatedID(); } } }
diff --git a/content/browser/synthetic_trial_syncer.cc b/content/browser/synthetic_trial_syncer.cc index a8c02f6..8b7aa457 100644 --- a/content/browser/synthetic_trial_syncer.cc +++ b/content/browser/synthetic_trial_syncer.cc
@@ -139,7 +139,7 @@ return; } - const int unique_id = host->GetID(); + const int unique_id = host->GetDeprecatedID(); mojo::Remote<mojom::SyntheticTrialConfiguration> synthetic_trial_configuration; host->BindReceiver( @@ -162,7 +162,7 @@ void SyntheticTrialSyncer::RenderProcessExited( RenderProcessHost* host, const ChildProcessTerminationInfo& info) { - child_process_unique_id_to_mojo_connections_.erase(host->GetID()); + child_process_unique_id_to_mojo_connections_.erase(host->GetDeprecatedID()); // To ensure this is removed from the observer list, call RemoveObserver() // again. @@ -170,7 +170,7 @@ } void SyntheticTrialSyncer::RenderProcessHostDestroyed(RenderProcessHost* host) { - child_process_unique_id_to_mojo_connections_.erase(host->GetID()); + child_process_unique_id_to_mojo_connections_.erase(host->GetDeprecatedID()); // To ensure this is removed from the observer list, call RemoveObserver() // again.
diff --git a/content/browser/url_loader_factory_params_helper.cc b/content/browser/url_loader_factory_params_helper.cc index 2b092b3..8ac4d341 100644 --- a/content/browser/url_loader_factory_params_helper.cc +++ b/content/browser/url_loader_factory_params_helper.cc
@@ -93,7 +93,7 @@ network::mojom::URLLoaderFactoryParamsPtr params = network::mojom::URLLoaderFactoryParams::New(); - params->process_id = process->GetID(); + params->process_id = process->GetDeprecatedID(); params->request_initiator_origin_lock = request_initiator_origin_lock; params->is_trusted = is_trusted;
diff --git a/content/browser/web_contents/file_chooser_impl.cc b/content/browser/web_contents/file_chooser_impl.cc index 7e2391bd..a85b27a 100644 --- a/content/browser/web_contents/file_chooser_impl.cc +++ b/content/browser/web_contents/file_chooser_impl.cc
@@ -192,7 +192,7 @@ auto listener = base::MakeRefCounted<FileSelectListenerImpl>(this); listener_impl_ = listener.get(); auto* policy = ChildProcessSecurityPolicyImpl::GetInstance(); - if (policy->CanReadFile(render_frame_host()->GetProcess()->GetID(), + if (policy->CanReadFile(render_frame_host()->GetProcess()->GetDeprecatedID(), directory_path)) { WebContentsImpl::FromRenderFrameHostImpl(render_frame_host()) ->EnumerateDirectory(GetWeakPtr(), render_frame_host(), @@ -212,7 +212,7 @@ return; } storage::FileSystemContext* file_system_context = nullptr; - const int pid = render_frame_host()->GetProcess()->GetID(); + const int pid = render_frame_host()->GetProcess()->GetDeprecatedID(); auto* policy = ChildProcessSecurityPolicyImpl::GetInstance(); // Grant the security access requested to the given files. for (const auto& file : files) {
diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser/web_contents/web_contents_impl.cc index 11063ec..7d9d93c 100644 --- a/content/browser/web_contents/web_contents_impl.cc +++ b/content/browser/web_contents/web_contents_impl.cc
@@ -3428,7 +3428,7 @@ prefs.inverted_colors = inverted_colors_; if (ChildProcessSecurityPolicyImpl::GetInstance()->HasWebUIBindings( - GetRenderViewHost()->GetProcess()->GetID())) { + GetRenderViewHost()->GetProcess()->GetDeprecatedID())) { prefs.loads_images_automatically = true; prefs.javascript_enabled = true; } @@ -4802,7 +4802,7 @@ return nullptr; } - int render_process_id = opener->GetProcess()->GetID(); + int render_process_id = opener->GetProcess()->GetDeprecatedID(); SiteInstanceImpl* source_site_instance = opener->GetSiteInstance(); const auto& partition_config = source_site_instance->GetStoragePartitionConfig(); @@ -5019,7 +5019,7 @@ std::make_unique<NavigationController::LoadURLParams>( params.target_url); load_params->initiator_origin = opener->GetLastCommittedOrigin(); - load_params->initiator_process_id = opener->GetProcess()->GetID(); + load_params->initiator_process_id = opener->GetProcess()->GetDeprecatedID(); load_params->initiator_frame_token = opener->GetFrameToken(); // Avoiding setting |load_params->source_site_instance| when // |opener_suppressed| is true, because in that case we do not want to use @@ -5095,7 +5095,8 @@ // Save the created widget associated with the route so we can show it later. pending_widgets_.insert( - {GlobalRoutingID(site_instance_group->process()->GetID(), route_id), + {GlobalRoutingID(site_instance_group->process()->GetDeprecatedID(), + route_id), widget_host}); AddRenderWidgetHostDestructionObserver(widget_host); @@ -5146,7 +5147,7 @@ // when it will always do so. What needs to happen in the renderer before we // reach here? std::optional<CreatedWindow> owned_created = GetCreatedWindow( - opener->GetProcess()->GetID(), main_frame_widget_route_id); + opener->GetProcess()->GetDeprecatedID(), main_frame_widget_route_id); // The browser may have rejected the request to make a new window, or the // renderer could be requesting to show a previously shown window (occurs when @@ -6252,7 +6253,8 @@ policy_exception_justification: "Not implemented." })"); auto params = std::make_unique<download::DownloadUrlParameters>( - url, rfh->GetProcess()->GetID(), rfh->GetRoutingID(), traffic_annotation); + url, rfh->GetProcess()->GetDeprecatedID(), rfh->GetRoutingID(), + traffic_annotation); params->set_referrer(referrer.url); params->set_referrer_policy( Referrer::ReferrerPolicyForUrlRequest(referrer.policy)); @@ -8294,7 +8296,7 @@ auto callback = base::BindOnce( &WebContentsImpl::OnDialogClosed, weak_factory_.GetWeakPtr(), - render_frame_host->GetProcess()->GetID(), + render_frame_host->GetProcess()->GetDeprecatedID(), render_frame_host->GetRoutingID(), std::move(response_callback), std::move(fullscreen_block)); @@ -8415,7 +8417,7 @@ auto callback = base::BindOnce( &WebContentsImpl::OnDialogClosed, weak_factory_.GetWeakPtr(), - render_frame_host->GetProcess()->GetID(), + render_frame_host->GetProcess()->GetDeprecatedID(), render_frame_host->GetRoutingID(), std::move(response_callback), std::move(fullscreen_block)); @@ -8764,7 +8766,8 @@ // Cancel any visible dialogs so they are not left dangling over the sad tab. CancelActiveAndPendingDialogs(); - audio_stream_monitor_.RenderProcessGone(rvh_impl->GetProcess()->GetID()); + audio_stream_monitor_.RenderProcessGone( + rvh_impl->GetProcess()->GetDeprecatedID()); // Reset the loading progress. TODO(avi): What does it mean to have a // "renderer crash" when there is more than one renderer process serving a
diff --git a/content/browser/web_contents/web_contents_impl_browsertest.cc b/content/browser/web_contents/web_contents_impl_browsertest.cc index 3ab5e4a..4197d93 100644 --- a/content/browser/web_contents/web_contents_impl_browsertest.cc +++ b/content/browser/web_contents/web_contents_impl_browsertest.cc
@@ -2056,7 +2056,7 @@ EXPECT_TRUE(web_contents->GetController().IsInitialBlankNavigation()); RenderProcessHost* process = web_contents->GetPrimaryMainFrame()->GetProcess(); - int renderer_id = process->GetID(); + int renderer_id = process->GetDeprecatedID(); ASSERT_TRUE(process); EXPECT_TRUE(process->IsInitializedAndNotDead()); @@ -2072,8 +2072,9 @@ // Check that pre-warmed process is used. EXPECT_EQ(process, web_contents->GetPrimaryMainFrame()->GetProcess()); - EXPECT_EQ(renderer_id, - web_contents->GetPrimaryMainFrame()->GetProcess()->GetID()); + EXPECT_EQ( + renderer_id, + web_contents->GetPrimaryMainFrame()->GetProcess()->GetDeprecatedID()); EXPECT_EQ(1, web_contents->GetController().GetEntryCount()); NavigationEntry* entry = web_contents->GetController().GetLastCommittedEntry(); @@ -2110,7 +2111,7 @@ EXPECT_TRUE(web_contents->GetController().IsInitialBlankNavigation()); RenderProcessHost* process = web_contents->GetPrimaryMainFrame()->GetProcess(); - int renderer_id = process->GetID(); + int renderer_id = process->GetDeprecatedID(); ASSERT_TRUE(process); EXPECT_FALSE(process->IsInitializedAndNotDead()); EXPECT_EQ(base::kNullProcessHandle, process->GetProcess().Handle()); @@ -2131,8 +2132,9 @@ // Check that the RenderProcessHost and its ID didn't change. EXPECT_EQ(process, web_contents->GetPrimaryMainFrame()->GetProcess()); - EXPECT_EQ(renderer_id, - web_contents->GetPrimaryMainFrame()->GetProcess()->GetID()); + EXPECT_EQ( + renderer_id, + web_contents->GetPrimaryMainFrame()->GetProcess()->GetDeprecatedID()); // Verify that the navigation succeeded. EXPECT_EQ(1, web_contents->GetController().GetEntryCount()); @@ -2164,7 +2166,8 @@ ASSERT_TRUE(web_contents->GetPrimaryMainFrame()); EXPECT_TRUE(web_contents->GetPrimaryMainFrame()->IsRenderFrameLive()); EXPECT_TRUE(web_contents->GetController().IsInitialBlankNavigation()); - int renderer_id = web_contents->GetPrimaryMainFrame()->GetProcess()->GetID(); + int renderer_id = + web_contents->GetPrimaryMainFrame()->GetProcess()->GetDeprecatedID(); TestNavigationObserver same_tab_observer(web_contents.get(), 1); NavigationController::LoadURLParams params(web_ui_url); @@ -2177,8 +2180,9 @@ // initial RenderFrameHost is allowed to be reused for WebUI, even if it has a // live RenderFrame, as long as its SiteInstance is unassigned and its process // is unused. - EXPECT_EQ(renderer_id, - web_contents->GetPrimaryMainFrame()->GetProcess()->GetID()); + EXPECT_EQ( + renderer_id, + web_contents->GetPrimaryMainFrame()->GetProcess()->GetDeprecatedID()); EXPECT_EQ(1, web_contents->GetController().GetEntryCount()); NavigationEntry* entry = web_contents->GetController().GetLastCommittedEntry();
diff --git a/content/browser/web_contents/web_contents_impl_unittest.cc b/content/browser/web_contents/web_contents_impl_unittest.cc index 3554022f3..afbd2d7 100644 --- a/content/browser/web_contents/web_contents_impl_unittest.cc +++ b/content/browser/web_contents/web_contents_impl_unittest.cc
@@ -1321,9 +1321,9 @@ RenderProcessHost* new_process = contents()->GetPrimaryMainFrame()->GetProcess(); auto* policy = content::ChildProcessSecurityPolicy::GetInstance(); - EXPECT_TRUE(policy->CanAccessDataForOrigin(new_process->GetID(), + EXPECT_TRUE(policy->CanAccessDataForOrigin(new_process->GetDeprecatedID(), url::Origin::Create(url1))); - EXPECT_FALSE(policy->CanAccessDataForOrigin(new_process->GetID(), + EXPECT_FALSE(policy->CanAccessDataForOrigin(new_process->GetDeprecatedID(), url::Origin::Create(url2))); } @@ -1680,7 +1680,7 @@ contents()->AddPendingContents(std::move(other_contents), GURL()); RenderWidgetHost* widget = test_web_contents->GetPrimaryMainFrame()->GetRenderWidgetHost(); - int process_id = widget->GetProcess()->GetID(); + int process_id = widget->GetProcess()->GetDeprecatedID(); int widget_id = widget->GetRoutingID(); // TODO(erikchen): Fix ownership semantics of WebContents. Nothing should be @@ -1698,7 +1698,7 @@ RenderWidgetHost* widget = test_web_contents->GetPrimaryMainFrame()->GetRenderWidgetHost(); - int process_id = widget->GetProcess()->GetID(); + int process_id = widget->GetProcess()->GetDeprecatedID(); int widget_id = widget->GetRoutingID(); // The first call to GetCreatedWindow pops it off the pending list.
diff --git a/content/browser/web_contents/web_contents_observer_browsertest.cc b/content/browser/web_contents/web_contents_observer_browsertest.cc index e3fd798..3e22abd 100644 --- a/content/browser/web_contents/web_contents_observer_browsertest.cc +++ b/content/browser/web_contents/web_contents_observer_browsertest.cc
@@ -304,7 +304,7 @@ cookie_accesses_.push_back({ details.type, ContextType::kFrame, - {rfh->GetProcess()->GetID(), rfh->GetRoutingID()}, + {rfh->GetProcess()->GetDeprecatedID(), rfh->GetRoutingID()}, -1, details.url, details.first_party_url, @@ -353,7 +353,8 @@ } void RenderFrameCreated(RenderFrameHost* rfh) override { - frame_ids_.emplace_back(rfh->GetProcess()->GetID(), rfh->GetRoutingID()); + frame_ids_.emplace_back(rfh->GetProcess()->GetDeprecatedID(), + rfh->GetRoutingID()); } private:
diff --git a/content/browser/web_contents/web_contents_view_aura.cc b/content/browser/web_contents/web_contents_view_aura.cc index dbd9d46e..e6e75281 100644 --- a/content/browser/web_contents/web_contents_view_aura.cc +++ b/content/browser/web_contents/web_contents_view_aura.cc
@@ -350,7 +350,8 @@ } GlobalRoutingID GetRenderViewHostID(RenderViewHost* rvh) { - return GlobalRoutingID(rvh->GetProcess()->GetID(), rvh->GetRoutingID()); + return GlobalRoutingID(rvh->GetProcess()->GetDeprecatedID(), + rvh->GetRoutingID()); } // Returns the host window for |window|, or nullpr if it has no host window.
diff --git a/content/browser/web_database/web_database_host_impl_unittest.cc b/content/browser/web_database/web_database_host_impl_unittest.cc index fdd4e96..32c7ff1 100644 --- a/content/browser/web_database/web_database_host_impl_unittest.cc +++ b/content/browser/web_database/web_database_host_impl_unittest.cc
@@ -133,7 +133,7 @@ void RunUntilIdle() { task_environment_.RunUntilIdle(); } WebDatabaseHostImpl* host() { return host_.get(); } - int process_id() const { return render_process_host_->GetID(); } + int process_id() const { return render_process_host_->GetDeprecatedID(); } BrowserContext* browser_context() { return &browser_context_; } base::SequencedTaskRunner* task_runner() { return task_runner_.get(); }
diff --git a/content/browser/web_package/prefetched_signed_exchange_cache.cc b/content/browser/web_package/prefetched_signed_exchange_cache.cc index fac67ab4..33dd49a 100644 --- a/content/browser/web_package/prefetched_signed_exchange_cache.cc +++ b/content/browser/web_package/prefetched_signed_exchange_cache.cc
@@ -449,7 +449,9 @@ network::mojom::RestrictedCookieManagerRole::NETWORK, inner_url_origin, inner_url_isolation_info, /* is_service_worker = */ false, - render_frame_host ? render_frame_host->GetProcess()->GetID() : -1, + render_frame_host + ? render_frame_host->GetProcess()->GetDeprecatedID() + : -1, render_frame_host ? render_frame_host->GetRoutingID() : MSG_ROUTING_NONE, render_frame_host ? render_frame_host->GetCookieSettingOverrides()
diff --git a/content/browser/web_package/signed_exchange_handler.cc b/content/browser/web_package/signed_exchange_handler.cc index b399ff27..8d194f5 100644 --- a/content/browser/web_package/signed_exchange_handler.cc +++ b/content/browser/web_package/signed_exchange_handler.cc
@@ -718,7 +718,8 @@ network::mojom::RestrictedCookieManagerRole::NETWORK, inner_url_origin, isolation_info, /* is_service_worker = */ false, - render_frame_host ? render_frame_host->GetProcess()->GetID() : -1, + render_frame_host ? render_frame_host->GetProcess()->GetDeprecatedID() + : -1, render_frame_host ? render_frame_host->GetRoutingID() : MSG_ROUTING_NONE, render_frame_host ? render_frame_host->GetCookieSettingOverrides()
diff --git a/content/browser/webauth/webauth_browsertest.cc b/content/browser/webauth/webauth_browsertest.cc index 5ee0ccf..6e257106 100644 --- a/content/browser/webauth/webauth_browsertest.cc +++ b/content/browser/webauth/webauth_browsertest.cc
@@ -1868,7 +1868,11 @@ WebAuthDisablesBackForwardCache) { // Initialisation of the test should disable bfcache. EXPECT_TRUE(tester_.IsDisabledForFrameWithReason( - shell()->web_contents()->GetPrimaryMainFrame()->GetProcess()->GetID(), + shell() + ->web_contents() + ->GetPrimaryMainFrame() + ->GetProcess() + ->GetDeprecatedID(), shell()->web_contents()->GetPrimaryMainFrame()->GetRoutingID(), BackForwardCacheDisable::DisabledReason( BackForwardCacheDisable::DisabledReasonId::kWebAuthenticationAPI)));
diff --git a/content/browser/webid/sd_jwt.cc b/content/browser/webid/sd_jwt.cc new file mode 100644 index 0000000..c0d02d1 --- /dev/null +++ b/content/browser/webid/sd_jwt.cc
@@ -0,0 +1,658 @@ +// 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. + +#include "sd_jwt.h" + +#include <map> + +#include "base/base64.h" +#include "base/base64url.h" +#include "base/containers/span.h" +#include "base/json/json_reader.h" +#include "base/json/json_writer.h" +#include "base/logging.h" +#include "base/strings/string_split.h" +#include "base/values.h" +#include "crypto/random.h" +#include "url/gurl.h" +#include "url/origin.h" + +namespace content::sdjwt { + +namespace { + +std::optional<std::string> Base64UrlDecode(const std::string_view& base64) { + std::string str; + if (!base::Base64UrlDecode( + base64, base::Base64UrlDecodePolicy::IGNORE_PADDING, &str)) { + return std::nullopt; + } + + return str; +} + +base64_t Base64UrlEncode(const std::string_view& str) { + base64_t base64; + base::Base64UrlEncode(str, base::Base64UrlEncodePolicy::OMIT_PADDING, + &base64); + return base64; +} + +} // namespace + +Jwk::Jwk() = default; +Jwk::~Jwk() = default; +Jwk::Jwk(const Jwk& other) = default; + +// static +std::optional<Jwk> Jwk::From(const base::Value::Dict& dict) { + Jwk result; + + auto* kty = dict.FindString("kty"); + if (!kty) { + return std::nullopt; + } + result.kty = *kty; + + auto* crv = dict.FindString("crv"); + if (!crv) { + return std::nullopt; + } + result.crv = *crv; + + auto* x = dict.FindString("x"); + if (!x) { + return std::nullopt; + } + result.x = *x; + + auto* y = dict.FindString("y"); + if (!y) { + return std::nullopt; + } + result.y = *y; + + // The "d" parameters is an optional parameter and unavailable in public keys. + auto* d = dict.FindString("d"); + if (d) { + result.d = *d; + } + + return result; +} + +std::optional<json_t> Jwk::Serialize() const { + base::Value::Dict result; + + result.Set("kty", kty); + result.Set("crv", crv); + result.Set("x", x); + result.Set("y", y); + + // Private parameter d is optional. + if (!d.empty()) { + result.Set("d", d); + } + + return base::WriteJson(result); +} + +Disclosure::Disclosure() = default; +Disclosure::~Disclosure() = default; +Disclosure::Disclosure(const Disclosure& other) = default; + +// static +std::optional<Disclosure> Disclosure::From(const base::Value::List& list) { + // https://www.ietf.org/archive/id/draft-ietf-oauth-selective-disclosure-jwt-13.html#name-disclosures + if (list.size() != 3) { + return std::nullopt; + } + + if (!list[0].is_string()) { + return std::nullopt; + } + + if (!list[1].is_string()) { + return std::nullopt; + } + + if (!list[2].is_string()) { + return std::nullopt; + } + + Disclosure result; + result.salt = list[0].GetString(); + result.name = list[1].GetString(); + result.value = list[2].GetString(); + return result; +} + +std::optional<json_t> Disclosure::ToJson() const { + base::Value::List list; + + list.Append(salt); + list.Append(name); + list.Append(value); + + return base::WriteJson(list); +} + +base64_t Disclosure::Serialize() const { + return Base64UrlEncode(*ToJson()); +} + +std::optional<base64_t> Disclosure::Digest(Hasher hasher) const { + auto disclosure_base64 = Serialize(); + std::string result; + base::Base64UrlEncode(hasher.Run(disclosure_base64), + base::Base64UrlEncodePolicy::OMIT_PADDING, &result); + return result; +} + +// static +base64_t Disclosure::CreateSalt() { + const size_t salt_size = 32; + std::array<uint8_t, salt_size> salt_bytes; + crypto::RandBytes(salt_bytes); + base64_t salt_base64; + base::Base64UrlEncode(salt_bytes, base::Base64UrlEncodePolicy::OMIT_PADDING, + &salt_base64); + return salt_base64; +} + +std::optional<SdJwt> SdJwt::From(const base::Value::List& list) { + if (list.size() != 2) { + return std::nullopt; + } + + if (!list[0].is_list() || !list[1].is_list()) { + return std::nullopt; + } + + auto jwt = Jwt::From(list[0].GetList()); + if (!jwt) { + return std::nullopt; + } + + std::vector<json_t> disclosures; + + for (auto& disclosure : list[1].GetList()) { + if (!disclosure.is_string()) { + return std::nullopt; + } + disclosures.push_back(disclosure.GetString()); + } + + SdJwt result; + result.jwt = *jwt; + result.disclosures = disclosures; + + return result; +} + +// static +std::optional<base::Value::List> SdJwt::Parse(const std::string_view& sdjwt) { + // First, split the token into the issued JWT and the disclosures. + auto pair = base::SplitStringOnce(sdjwt, "~"); + if (!pair) { + return std::nullopt; + } + + auto jwt = Jwt::Parse(pair->first); + if (!jwt) { + return std::nullopt; + } + + base::Value::List disclosures; + + if (!pair->second.empty()) { + if (pair->second.back() != '~') { + return std::nullopt; + } + + auto list = pair->second.substr(0, pair->second.length() - 1); + + auto parts = base::SplitString(list, "~", base::KEEP_WHITESPACE, + base::SPLIT_WANT_ALL); + if (parts.empty()) { + return std::nullopt; + } + + for (auto disclosure : parts) { + if (disclosure.empty()) { + return std::nullopt; + } + + auto json = Base64UrlDecode(disclosure); + if (!json) { + // Failed to decode base64url. + return std::nullopt; + } + disclosures.Append(*json); + } + } + + base::Value::List result; + result.Append(std::move(*jwt)); + result.Append(std::move(disclosures)); + + return result; +} + +Header::Header() = default; +Header::~Header() = default; +Header::Header(const Header& other) = default; + +// static +std::optional<Header> Header::From(const base::Value::Dict& json) { + Header result; + + auto* typ = json.FindString("typ"); + if (!typ) { + return std::nullopt; + } + result.typ = *typ; + + auto* alg = json.FindString("alg"); + if (!alg) { + return std::nullopt; + } + result.alg = *alg; + + return result; +} + +std::optional<json_t> Header::ToJson() const { + base::Value::Dict header_dict; + + header_dict.Set("typ", typ); + header_dict.Set("alg", alg); + + return base::WriteJson(header_dict); +} + +std::optional<base64_t> Header::Serialize() const { + auto header_json = ToJson(); + if (!header_json) { + return std::nullopt; + } + return Base64UrlEncode(*header_json); +} + +ConfirmationKey::ConfirmationKey() = default; +ConfirmationKey::~ConfirmationKey() = default; +ConfirmationKey::ConfirmationKey(const ConfirmationKey& other) = default; + +Payload::Payload() = default; +Payload::~Payload() = default; +Payload::Payload(const Payload& other) = default; + +// static +std::optional<Payload> Payload::From(const base::Value::Dict& json) { + Payload result; + + auto* aud = json.FindString("aud"); + if (aud) { + result.aud = *aud; + } + + // We use doubles and cast for longs for "iat", so that this + // can still work past 2038. + auto iat = json.FindDouble("iat"); + if (iat) { + result.iat = base::Time::FromSecondsSinceUnixEpoch(*iat); + } + + auto exp = json.FindInt("exp"); + if (exp) { + result.exp = base::Time::FromTimeT(*exp); + } + + auto* iss = json.FindString("iss"); + if (iss) { + result.iss = *iss; + } + + auto* sub = json.FindString("sub"); + if (sub) { + result.sub = *sub; + } + + auto* nonce = json.FindString("nonce"); + if (nonce) { + result.nonce = *nonce; + } + + auto* vct = json.FindString("vct"); + if (vct) { + result.vct = *vct; + } + + auto* cnf = json.FindDictByDottedPath("cnf.jwk"); + if (cnf) { + auto jwk = Jwk::From(*cnf); + if (jwk) { + ConfirmationKey key; + key.jwk = *jwk; + result.cnf = key; + } + } + + auto* sd_hash = json.FindString("sd_hash"); + if (sd_hash) { + result.sd_hash = *sd_hash; + } + + auto* _sd_alg = json.FindString("_sd_alg"); + if (_sd_alg) { + result._sd_alg = *_sd_alg; + } + + if (json.FindList("_sd")) { + for (const base::Value& el : *json.FindList("_sd")) { + if (!el.is_string()) { + return std::nullopt; + } + result._sd.push_back(el.GetString()); + } + } + + return result; +} + +std::optional<json_t> Payload::ToJson() const { + base::Value::Dict payload_dict; + + if (!iss.empty()) { + payload_dict.Set("iss", iss); + } + + if (!aud.empty()) { + payload_dict.Set("aud", aud); + } + + if (!sub.empty()) { + payload_dict.Set("sub", sub); + } + + if (cnf) { + base::Value::Dict jwk; + + jwk.Set("kty", cnf->jwk.kty); + jwk.Set("crv", cnf->jwk.crv); + jwk.Set("x", cnf->jwk.x); + jwk.Set("y", cnf->jwk.y); + + base::Value::Dict cnf_dict; + cnf_dict.Set("jwk", std::move(jwk)); + + payload_dict.Set("cnf", std::move(cnf_dict)); + } + + if (!nonce.empty()) { + payload_dict.Set("nonce", nonce); + } + + if (!vct.empty()) { + payload_dict.Set("vct", vct); + } + + if (iat) { + payload_dict.Set("iat", (int)iat->ToTimeT()); + } + + if (exp) { + payload_dict.Set("exp", (int)exp->ToTimeT()); + } + + if (!sd_hash.empty()) { + payload_dict.Set("sd_hash", sd_hash); + } + + if (_sd.size() > 0) { + base::Value::List list; + for (auto disclosure : _sd) { + list.Append(disclosure); + } + payload_dict.Set("_sd", std::move(list)); + } + + if (!_sd_alg.empty()) { + payload_dict.Set("_sd_alg", _sd_alg); + } + + return base::WriteJson(payload_dict); +} + +std::optional<base64_t> Payload::Serialize() const { + auto payload_json = ToJson(); + if (!payload_json) { + return std::nullopt; + } + return Base64UrlEncode(*payload_json); +} + +Jwt::Jwt() = default; +Jwt::~Jwt() = default; +Jwt::Jwt(const Jwt& other) = default; + +std::string Jwt::Serialize() const { + std::string result; + result += Base64UrlEncode(header); + result += "."; + result += Base64UrlEncode(payload); + result += "."; + result += signature; + return result; +} + +// static +std::optional<Jwt> Jwt::From(const base::Value::List& list) { + if (list.size() != 3) { + return std::nullopt; + } + + if (!list[0].is_string() || !list[1].is_string() || !list[2].is_string()) { + return std::nullopt; + } + + Jwt result; + result.header = list[0].GetString(); + result.payload = list[1].GetString(); + result.signature = list[2].GetString(); + + return result; +} + +// static +std::optional<base::Value::List> Jwt::Parse(const std::string_view& jwt) { + // TODO: implement the validations described here: + // https://www.rfc-editor.org/rfc/rfc7519.html#section-7.2 + + auto parts = base::SplitStringPiece(jwt, ".", base::KEEP_WHITESPACE, + base::SPLIT_WANT_ALL); + + if (parts.size() != 3 || parts[0].empty() || parts[1].empty() || + parts[2].empty()) { + return std::nullopt; + } + + auto header = Base64UrlDecode(parts[0]); + if (!header) { + return std::nullopt; + } + + base::Value::List result; + result.Append(*header); + + auto payload = Base64UrlDecode(parts[1]); + if (!payload) { + return std::nullopt; + } + + result.Append(*payload); + result.Append(parts[2]); + + return result; +} + +bool Jwt::Sign(Signer signer) { + std::string message = + Base64UrlEncode(header) + "." + Base64UrlEncode(payload); + + auto sig = std::move(signer).Run(message); + if (!sig) { + return false; + } + + base::Base64UrlEncode(*sig, base::Base64UrlEncodePolicy::OMIT_PADDING, + &signature); + + return true; +} + +SdJwt::SdJwt() = default; +SdJwt::~SdJwt() = default; +SdJwt::SdJwt(const SdJwt& other) = default; + +std::string SdJwt::Serialize() const { + std::string result; + result += jwt.Serialize(); + + result += "~"; + + for (const json_t& disclosure : disclosures) { + result += Base64UrlEncode(disclosure); + result += "~"; + } + + return result; +} + +std::string SdJwtKb::Serialize() const { + std::string result; + result += sd_jwt.Serialize(); + result += kb_jwt.Serialize(); + + return result; +} + +SdJwtKb::SdJwtKb() = default; +SdJwtKb::~SdJwtKb() = default; +SdJwtKb::SdJwtKb(const SdJwtKb& other) = default; + +// static +std::optional<std::vector<json_t>> SdJwt::Disclose( + const std::vector<std::pair<std::string, json_t>>& disclosures, + const std::vector<std::string>& selector) { + // Implements the selective disclosure: + // https://www.ietf.org/archive/id/draft-ietf-oauth-selective-disclosure-jwt-13.html#name-disclosing-to-a-verifier + + std::map<std::string, json_t> disclosures_by_name; + for (const std::pair<std::string, json_t>& disclosure : disclosures) { + disclosures_by_name[disclosure.first] = disclosure.second; + } + + std::vector<json_t> result; + for (const std::string& name : selector) { + if (disclosures_by_name.count(name)) { + result.push_back(disclosures_by_name[name]); + } else { + return std::nullopt; + } + } + + return result; +} + +// static +std::optional<SdJwtKb> SdJwtKb::Create(const SdJwt& presentation, + const std::string& aud, + const std::string& nonce, + const base::Time& iat, + Hasher hasher, + Signer signer) { + std::string serialization = presentation.Serialize(); + + std::string hash; + base::Base64UrlEncode(hasher.Run(serialization), + base::Base64UrlEncodePolicy::OMIT_PADDING, &hash); + + Header header; + header.typ = "kb+jwt"; + header.alg = "ES256"; + + Payload payload; + payload.aud = aud; + payload.nonce = nonce; + payload.iat = iat; + payload.sd_hash = hash; + + Jwt kb_jwt; + auto header_json = header.ToJson(); + if (!header_json) { + return std::nullopt; + } + + kb_jwt.header = *header_json; + + auto payload_json = payload.ToJson(); + if (!payload_json) { + return std::nullopt; + } + + kb_jwt.payload = *payload_json; + bool success = kb_jwt.Sign(std::move(signer)); + + if (!success) { + return std::nullopt; + } + + SdJwtKb sd_jwt_kb; + sd_jwt_kb.sd_jwt = presentation; + sd_jwt_kb.kb_jwt = kb_jwt; + + return sd_jwt_kb; +} + +std::optional<SdJwtKb> SdJwtKb::Parse(const std::string_view& sdjwtkb) { + SdJwtKb result; + + auto pair = base::RSplitStringOnce(sdjwtkb, "~"); + if (!pair) { + return std::nullopt; + } + + // The first part of the string is separate by "~", but then separator + // is also part of the SD-JWT, so we concatenate it back. + auto list = SdJwt::Parse(std::string(pair->first) + "~"); + + if (!list) { + // Poorly formed string. + return std::nullopt; + } + + auto sd_jwt = SdJwt::From(*list); + if (!sd_jwt) { + return std::nullopt; + } + + result.sd_jwt = *sd_jwt; + + auto jwt = Jwt::Parse(pair->second); + if (!jwt) { + return std::nullopt; + } + + auto kb = Jwt::From(*jwt); + if (!kb) { + return std::nullopt; + } + + result.kb_jwt = *kb; + + return result; +} + +} // namespace content::sdjwt
diff --git a/content/browser/webid/sd_jwt.h b/content/browser/webid/sd_jwt.h new file mode 100644 index 0000000..47ee34c --- /dev/null +++ b/content/browser/webid/sd_jwt.h
@@ -0,0 +1,297 @@ +// 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. + +#ifndef CONTENT_BROWSER_WEBID_SD_JWT_H_ +#define CONTENT_BROWSER_WEBID_SD_JWT_H_ + +#include <optional> +#include <vector> + +#include "base/base64url.h" +#include "base/functional/callback.h" +#include "base/memory/raw_ref.h" +#include "base/time/time.h" +#include "base/values.h" +#include "content/common/content_export.h" + +/** + This a SD-JWT library for holders. + + It has the necessary data structures and algorithms for: + + - Key material preparation + - Parsing + - Selective disclosure + - Key binding + + Jwks represent a public or private key as described in RFC7517. + This specific implementation focus on elliptic curves at the + moment, but could be extended to support other key types. + + A public/private key generator can use a Jwk as an output and + later serialize it to JSON: + + Jwk key = GenerateKeyPair(); + auto json = key.Serialize(); + + The serialized json can be passed to a issuer to bind it to + a JWT. + + Jwts represent a JSON Web Token as described in RFC7519. + This specific implementation focus on specific fields that are + useful for SD-JWT presentation, such as cnf, _sd, _sd_alg and + sd_hash. + + Because JSON parsing isn't reversible with serialization + (i.e. JSON.serialize(JSON.parse("{foo: true}")) == "{foo:true}"), + when Jwts are parsed from their encoding, the original JSON + encoding of the header and the payload are kept, so that they + can (a) be interpreted but also (b) be reverted back to the Jwt's + original value. Reverting back to the original value is + important because they are signed and need to be verified. + + So, a Jwt gets parsed into a json_t header and json_t payload, + which represent a string containing JSON, and a base64_t + signature, which represents a string containing a base64url + encoded blob. + + Jwt jwt = Jwt::From(Jwt::Parse(encoding)) + + You can get the encoded Jwt back by calling Jwt.Serialize(). + + To interpret the contents of the Jwt header and payload, + you can use a JSON parser to open them. + + Header header = Header::From( + *base::JSONReader::ReadDict(jwt.header)) + Payload payload = Payload::From( + *base::JSONReader::ReadDict(jwt.payload)) + + Accordingly, an SdJwt represents an SD-JWT in a similar way. + + An SdJwt gets parsed into the issued Jwt as well as into the list + of selective disclosures. Like a Jwt, the selective disclosures + are represented as json_t so that they can be serialized back to + their original values. + + SdJwt sd_jwt = SdJwt::From(SdJwt::Parse(encoding)) + + An SdJwt can be used to select which disclosures to disclose: + + auto selection = SdJwt::Disclose(disclosures, {"name", "email"}) + + From the disclosures, the SdJwt, a desired audience and a nonce, + we can finally create a SD-JWT+KB: + + auto sd_jwt_kb = SdJwtKb::Create(...); + + Finally, the holder can use sd_jwt_kb.Serialize() as a SD-JWT+KB + presentation. + +*/ +namespace content::sdjwt { + +// An Elliptic Curve Jwk representation. +// https://datatracker.ietf.org/doc/html/rfc7517#section-3 +// Could be extended in the future to cover other Jwk key types. +struct CONTENT_EXPORT Jwk { + std::string kty; + std::string crv; + std::string x; + std::string y; + std::string d; + + Jwk(); + ~Jwk(); + Jwk(const Jwk& other); + + static std::optional<Jwk> From(const base::Value::Dict& json); + + std::optional<std::string> Serialize() const; +}; + +// A string that can be parsed as application/json. +typedef std::string json_t; +// A string that is base64url encoded. +typedef std::string base64_t; + +// https://datatracker.ietf.org/doc/html/rfc7519#section-5 +struct CONTENT_EXPORT Header { + // https://datatracker.ietf.org/doc/html/rfc7519#section-5.1 + std::string typ; + std::string alg; + + Header(); + ~Header(); + Header(const Header& other); + + static std::optional<Header> From(const base::Value::Dict& json); + + std::optional<json_t> ToJson() const; + std::optional<base64_t> Serialize() const; +}; + +// This struct holds the JWK in the "cnf" [1] parameter in the +// JWT that the issuer signs that bindings it to the Holder's +// public key [2, 3]. +// +// [1] https://datatracker.ietf.org/doc/html/rfc7800#section-3.1 +// [2] +// https://www.ietf.org/archive/id/draft-ietf-oauth-selective-disclosure-jwt-13.html#name-optional-key-binding +// [3] +// https://www.ietf.org/archive/id/draft-ietf-oauth-selective-disclosure-jwt-13.html#key_binding +struct CONTENT_EXPORT ConfirmationKey { + Jwk jwk; + + ConfirmationKey(); + ~ConfirmationKey(); + ConfirmationKey(const ConfirmationKey& other); +}; + +// https://datatracker.ietf.org/doc/html/rfc7519#section-4 +struct CONTENT_EXPORT Payload { + // https://datatracker.ietf.org/doc/html/rfc7519#section-4.1.1 + std::string iss; + // https://datatracker.ietf.org/doc/html/rfc7519#section-4.1.3 + std::string aud; + // https://datatracker.ietf.org/doc/html/rfc7519#section-4.1.2 + std::string sub; + // // https://datatracker.ietf.org/doc/html/rfc7800#section-3.1 + std::optional<ConfirmationKey> cnf; + // https://datatracker.ietf.org/doc/html/rfc7519#section-4.1.6 + std::optional<base::Time> iat; + // https://datatracker.ietf.org/doc/html/rfc7519#section-4.1.4 + std::optional<base::Time> exp; + + std::string nonce; + + // https://datatracker.ietf.org/doc/html/draft-ietf-oauth-sd-jwt-vc-04#section-3.2.2.1.1 + std::string vct; + + // Used in the Issued JWT + std::vector<base64_t> _sd; + std::string _sd_alg; + + // Used in the Key Binding JWT + base64_t sd_hash; + + Payload(); + ~Payload(); + Payload(const Payload& other); + + static std::optional<Payload> From(const base::Value::Dict& json); + + std::optional<json_t> ToJson() const; + std::optional<base64_t> Serialize() const; +}; + +/** + * A Signer takes a string and returns a binary signature. + * It is introduced so that tests can be written without an actual + * implementation of the crytographic signing algorithm. + */ +typedef base::OnceCallback<std::optional<std::vector<uint8_t>>( + const std::string_view&)> + Signer; + +// https://datatracker.ietf.org/doc/html/rfc7519 +struct CONTENT_EXPORT Jwt { + json_t header; + json_t payload; + base64_t signature; + + Jwt(); + ~Jwt(); + Jwt(const Jwt& other); + + bool Sign(Signer signer); + + static std::optional<Jwt> From(const base::Value::List& json); + static std::optional<base::Value::List> Parse(const std::string_view& jwt); + json_t Serialize() const; +}; + +/** + * A Hasher takes a string and computes a SHA256 hash of the string. + * It is introduced so that this library can be tested without an + * actual implementation of hashing. + */ +typedef base::RepeatingCallback<std::vector<std::uint8_t>(std::string_view)> + Hasher; + +/** + * Disclosure represents an SD-JWT disclosure. + * https://www.ietf.org/archive/id/draft-ietf-oauth-selective-disclosure-jwt-13.html#name-disclosures + * + * You can parse from JSON to interpret it with: + * + * auto disclosure = Disclosure::From( + * base::JSONReader::Read(json)->GetList()); + * + * CreateSalt() and Digest() are exposed so that tests + * can create disclosures as issuers. + */ +struct CONTENT_EXPORT Disclosure { + base64_t salt; + std::string name; + std::string value; + + Disclosure(); + ~Disclosure(); + Disclosure(const Disclosure& other); + + static std::optional<Disclosure> From(const base::Value::List& list); + + // Creates a random value with the following requirements: + // https://www.ietf.org/archive/id/draft-ietf-oauth-selective-disclosure-jwt-13.html#name-entropy-of-the-salt + static base64_t CreateSalt(); + + base64_t Serialize() const; + std::optional<json_t> ToJson() const; + std::optional<base64_t> Digest(Hasher hasher) const; +}; + +// https://www.ietf.org/archive/id/draft-ietf-oauth-selective-disclosure-jwt-13.html +struct CONTENT_EXPORT SdJwt { + Jwt jwt; + std::vector<json_t> disclosures; + + SdJwt(); + ~SdJwt(); + SdJwt(const SdJwt& other); + + static std::optional<SdJwt> From(const base::Value::List& json); + static std::optional<base::Value::List> Parse(const std::string_view& sdjwt); + + static std::optional<std::vector<json_t>> Disclose( + const std::vector<std::pair<std::string, json_t>>& disclosures, + const std::vector<std::string>& selector); + + std::string Serialize() const; +}; + +// https://www.ietf.org/archive/id/draft-ietf-oauth-selective-disclosure-jwt-13.html#name-sd-jwt-and-sd-jwtkb-data-fo +struct CONTENT_EXPORT SdJwtKb { + SdJwt sd_jwt; + Jwt kb_jwt; + + SdJwtKb(); + ~SdJwtKb(); + SdJwtKb(const SdJwtKb& other); + + static std::optional<SdJwtKb> Parse(const std::string_view& sdjwtkb); + + static std::optional<SdJwtKb> Create(const SdJwt& presentation, + const std::string& aud, + const std::string& nonce, + const base::Time& iat, + Hasher hasher, + Signer signer); + + std::string Serialize() const; +}; + +} // namespace content::sdjwt + +#endif // CONTENT_BROWSER_WEBID_SD_JWT_H_
diff --git a/content/browser/webid/sd_jwt_unittest.cc b/content/browser/webid/sd_jwt_unittest.cc new file mode 100644 index 0000000..d34f4c51 --- /dev/null +++ b/content/browser/webid/sd_jwt_unittest.cc
@@ -0,0 +1,518 @@ +// 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. + +#include "content/browser/webid/sd_jwt.h" + +#include "base/base64.h" +#include "base/base64url.h" +#include "base/containers/span.h" +#include "base/functional/callback.h" +#include "base/json/json_reader.h" +#include "base/json/json_writer.h" +#include "base/logging.h" +#include "base/values.h" +#include "crypto/random.h" +#include "testing/gmock/include/gmock/gmock.h" +#include "testing/gtest/include/gtest/gtest.h" +#include "url/gurl.h" +#include "url/origin.h" + +using ::testing::NiceMock; + +namespace content::sdjwt { + +class SdJwtTest : public testing::Test { + protected: + SdJwtTest() = default; + ~SdJwtTest() override = default; + + void SetUp() override {} + + void TearDown() override {} +}; + +TEST_F(SdJwtTest, JwkParsing) { + // Example from + // https://www.ietf.org/archive/id/draft-ietf-oauth-selective-disclosure-jwt-13.html#appendix-A.5 + std::string json = + R"({ + "kty": "EC", + "crv": "P-256", + "x": "b28d4MwZMjw8-00CG4xfnn9SLMVMM19SlqZpVb_uNtQ", + "y": "Xv5zWwuoaTgdS6hV43yI6gBwTnjukmFQQnJ_kCxzqk8" + })"; + + auto jwk = Jwk::From(*base::JSONReader::ReadDict(json)); + EXPECT_TRUE(jwk); + + EXPECT_EQ(jwk->kty, "EC"); + EXPECT_EQ(jwk->crv, "P-256"); + EXPECT_EQ(jwk->x, "b28d4MwZMjw8-00CG4xfnn9SLMVMM19SlqZpVb_uNtQ"); + EXPECT_EQ(jwk->y, "Xv5zWwuoaTgdS6hV43yI6gBwTnjukmFQQnJ_kCxzqk8"); +} + +TEST_F(SdJwtTest, JWkSerializing) { + // Example from + // https://www.ietf.org/archive/id/draft-ietf-oauth-selective-disclosure-jwt-13.html#appendix-A.5 + + Jwk jwk; + + jwk.kty = "EC"; + jwk.crv = "P-256"; + jwk.x = "b28d4MwZMjw8-00CG4xfnn9SLMVMM19SlqZpVb_uNtQ"; + jwk.y = "Xv5zWwuoaTgdS6hV43yI6gBwTnjukmFQQnJ_kCxzqk8"; + + std::string json = + "{" + "\"crv\":\"P-256\"," + "\"kty\":\"EC\"," + "\"x\":\"b28d4MwZMjw8-00CG4xfnn9SLMVMM19SlqZpVb_uNtQ\"," + "\"y\":\"Xv5zWwuoaTgdS6hV43yI6gBwTnjukmFQQnJ_kCxzqk8\"" + "}"; + EXPECT_STREQ(jwk.Serialize()->c_str(), json.c_str()); +} + +TEST_F(SdJwtTest, DisclosureParsing) { + // Example from + // https://www.ietf.org/archive/id/draft-ietf-oauth-selective-disclosure-jwt-13.html#section-4.2.1 + std::string json = R"(["_26bc4LT-ac6q2KI6cBW5es", "family_name", "Möbius"])"; + + auto disclosure = Disclosure::From(base::JSONReader::Read(json)->GetList()); + EXPECT_TRUE(disclosure); + + EXPECT_EQ(disclosure->salt, "_26bc4LT-ac6q2KI6cBW5es"); + EXPECT_EQ(disclosure->name, "family_name"); + EXPECT_EQ(disclosure->value, "Möbius"); +} + +TEST_F(SdJwtTest, DisclosureSerialization) { + // Example from + // https://www.ietf.org/archive/id/draft-ietf-oauth-selective-disclosure-jwt-13.html#section-4.2.1 + + Disclosure disclosure; + disclosure.salt = "_26bc4LT-ac6q2KI6cBW5es"; + disclosure.name = "family_name"; + disclosure.value = "Möbius"; + + auto base64 = disclosure.Serialize(); + + // This value is different from what's in the spec, but that's because + // our JSON serialization strips whitespaces between array elements + // which causes the base64 encoding to not match. + // https://github.com/openid/OpenID4VP/issues/325 + // + // This base64 value decodes to: + // + // (["_26bc4LT-ac6q2KI6cBW5es","family_name","Möbius"]) + std::string expected = + "WyJfMjZiYzRMVC1hYzZxMktJNmNCVzVlcyIsImZhbWlseV9uYW1lIiwiTcO2Yml1cyJd"; + + EXPECT_STREQ(base64.c_str(), expected.c_str()); +} + +TEST_F(SdJwtTest, JwtParsing) { + // Jwt's top level structure is a header/payload/signature tuple + // separate by ".". + std::string jwt = "aGVhZGVy.cGF5bG9hZA.signature"; + + auto token = Jwt::From(*Jwt::Parse(jwt)); + EXPECT_TRUE(token); + + EXPECT_EQ(token->header, "header"); + EXPECT_EQ(token->payload, "payload"); + EXPECT_EQ(token->signature, "signature"); +} + +TEST_F(SdJwtTest, JwtParsingInvalid) { + EXPECT_FALSE(Jwt::Parse("")); + EXPECT_FALSE(Jwt::Parse("YQ")); + EXPECT_FALSE(Jwt::Parse(".")); + EXPECT_FALSE(Jwt::Parse("YQ.")); + EXPECT_FALSE(Jwt::Parse(".YQ")); + EXPECT_FALSE(Jwt::Parse("YWE.")); + EXPECT_FALSE(Jwt::Parse(".YWE")); + + EXPECT_FALSE(Jwt::Parse("..")); + EXPECT_FALSE(Jwt::Parse("YQ.YWE.")); + EXPECT_FALSE(Jwt::Parse("YQ..YWE")); + EXPECT_FALSE(Jwt::Parse(".YQ.YWE")); +} + +TEST_F(SdJwtTest, JwtSerializing) { + Jwt token; + token.header = "header"; + token.payload = "payload"; + token.signature = "signature"; + + // Jwt's top level structure: + // Base64UrlEncode(header) . Base64UrlEncode(payload) . signature + EXPECT_EQ(token.Serialize(), "aGVhZGVy.cGF5bG9hZA.signature"); +} + +TEST_F(SdJwtTest, HeaderParsingAndSerializing) { + Header header; + header.alg = "foo"; + header.typ = "bar"; + + EXPECT_EQ(header.ToJson(), R"({"alg":"foo","typ":"bar"})"); + // The serializion of the header is a base64 encoding of the JSON. + EXPECT_EQ(header.Serialize(), "eyJhbGciOiJmb28iLCJ0eXAiOiJiYXIifQ"); + + // Test that we can go back from base64 to value. + auto parsed = + Header::From(*base::JSONReader::ReadDict(R"({"alg":"foo","typ":"bar"})")); + EXPECT_TRUE(parsed); + EXPECT_EQ(parsed->alg, "foo"); + EXPECT_EQ(parsed->typ, "bar"); +} + +TEST_F(SdJwtTest, PayloadParsingAndSerializing) { + Payload payload; + payload.sub = "foo"; + + EXPECT_EQ(payload.ToJson(), R"({"sub":"foo"})"); + // The serializion of the header is a base64 encoding of the JSON. + EXPECT_EQ(payload.Serialize(), "eyJzdWIiOiJmb28ifQ"); + + // Test that we can go back from base64 to value. + auto parsed = Payload::From(*base::JSONReader::ReadDict(R"({"sub":"foo"})")); + EXPECT_TRUE(parsed); + EXPECT_EQ(parsed->sub, "foo"); +} + +TEST_F(SdJwtTest, JwtParsingRFC) { + // Example from: + // https://www.ietf.org/archive/id/draft-ietf-oauth-selective-disclosure-jwt-13.html#section-5.1 + std::string jwt = + "eyJhbGciOiAiRVMyNTYiLCAidHlwIjogImV4YW1wbGUrc2Qtand0In0.eyJfc2QiOiBb" + "IkNyUWU3UzVrcUJBSHQtbk1ZWGdjNmJkdDJTSDVhVFkxc1VfTS1QZ2tqUEkiLCAiSnpZ" + "akg0c3ZsaUgwUjNQeUVNZmVadTZKdDY5dTVxZWhabzdGN0VQWWxTRSIsICJQb3JGYnBL" + "dVZ1Nnh5bUphZ3ZrRnNGWEFiUm9jMkpHbEFVQTJCQTRvN2NJIiwgIlRHZjRvTGJnd2Q1" + "SlFhSHlLVlFaVTlVZEdFMHc1cnREc3JaemZVYW9tTG8iLCAiWFFfM2tQS3QxWHlYN0tB" + "TmtxVlI2eVoyVmE1TnJQSXZQWWJ5TXZSS0JNTSIsICJYekZyendzY002R242Q0pEYzZ2" + "Vks4QmtNbmZHOHZPU0tmcFBJWmRBZmRFIiwgImdiT3NJNEVkcTJ4Mkt3LXc1d1BFemFr" + "b2I5aFYxY1JEMEFUTjNvUUw5Sk0iLCAianN1OXlWdWx3UVFsaEZsTV8zSmx6TWFTRnpn" + "bGhRRzBEcGZheVF3TFVLNCJdLCAiaXNzIjogImh0dHBzOi8vaXNzdWVyLmV4YW1wbGUu" + "Y29tIiwgImlhdCI6IDE2ODMwMDAwMDAsICJleHAiOiAxODgzMDAwMDAwLCAic3ViIjog" + "InVzZXJfNDIiLCAibmF0aW9uYWxpdGllcyI6IFt7Ii4uLiI6ICJwRm5kamtaX1ZDem15" + "VGE2VWpsWm8zZGgta284YUlLUWM5RGxHemhhVllvIn0sIHsiLi4uIjogIjdDZjZKa1B1" + "ZHJ5M2xjYndIZ2VaOGtoQXYxVTFPU2xlclAwVmtCSnJXWjAifV0sICJfc2RfYWxnIjog" + "InNoYS0yNTYiLCAiY25mIjogeyJqd2siOiB7Imt0eSI6ICJFQyIsICJjcnYiOiAiUC0y" + "NTYiLCAieCI6ICJUQ0FFUjE5WnZ1M09IRjRqNFc0dmZTVm9ISVAxSUxpbERsczd2Q2VH" + "ZW1jIiwgInkiOiAiWnhqaVdXYlpNUUdIVldLVlE0aGJTSWlyc1ZmdWVjQ0U2dDRqVDlG" + "MkhaUSJ9fX0.oQ0UNJB1E1agYouB1yfGXfYLyWueHhfMFuicSV-n_GLXHtX0XK99sfDD" + "ERiWKukCUzadGTT4QbCwXe6JvVmZWw"; + + auto token = Jwt::From(*Jwt::Parse(jwt)); + EXPECT_TRUE(token); + + EXPECT_EQ(token->header, R"({"alg": "ES256", "typ": "example+sd-jwt"})"); + EXPECT_EQ(token->signature, + "oQ0UNJB1E1agYouB1yfGXfYLyWueHhfMFuicSV-n_" + "GLXHtX0XK99sfDDERiWKukCUzadGTT4QbCwXe6JvVmZWw"); + + std::string expected = + R"({)" + R"("_sd": [)" + R"("CrQe7S5kqBAHt-nMYXgc6bdt2SH5aTY1sU_M-PgkjPI", )" + R"("JzYjH4svliH0R3PyEMfeZu6Jt69u5qehZo7F7EPYlSE", )" + R"("PorFbpKuVu6xymJagvkFsFXAbRoc2JGlAUA2BA4o7cI", )" + R"("TGf4oLbgwd5JQaHyKVQZU9UdGE0w5rtDsrZzfUaomLo", )" + R"("XQ_3kPKt1XyX7KANkqVR6yZ2Va5NrPIvPYbyMvRKBMM", )" + R"("XzFrzwscM6Gn6CJDc6vVK8BkMnfG8vOSKfpPIZdAfdE", )" + R"("gbOsI4Edq2x2Kw-w5wPEzakob9hV1cRD0ATN3oQL9JM", )" + R"("jsu9yVulwQQlhFlM_3JlzMaSFzglhQG0DpfayQwLUK4")" + R"(], )" + R"("iss": "https://issuer.example.com", )" + R"("iat": 1683000000, )" + R"("exp": 1883000000, )" + R"("sub": "user_42", )" + R"("nationalities": [)" + R"({"...": "pFndjkZ_VCzmyTa6UjlZo3dh-ko8aIKQc9DlGzhaVYo"}, )" + R"({"...": "7Cf6JkPudry3lcbwHgeZ8khAv1U1OSlerP0VkBJrWZ0"}], )" + R"("_sd_alg": "sha-256", )" + R"("cnf": {"jwk": {"kty": "EC", "crv": "P-256", )" + R"("x": "TCAER19Zvu3OHF4j4W4vfSVoHIP1ILilDls7vCeGemc", )" + R"("y": "ZxjiWWbZMQGHVWKVQ4hbSIirsVfuecCE6t4jT9F2HZQ"}})" + R"(})"; + + EXPECT_STREQ(token->payload.c_str(), expected.c_str()); + + auto header = Header::From(*base::JSONReader::ReadDict(token->header)); + EXPECT_TRUE(header); + + EXPECT_EQ(header->typ, "example+sd-jwt"); + EXPECT_EQ(header->alg, "ES256"); + + auto payload = Payload::From(*base::JSONReader::ReadDict(token->payload)); + EXPECT_TRUE(payload); + + EXPECT_EQ(payload->iss, "https://issuer.example.com"); + EXPECT_EQ(payload->sub, "user_42"); + EXPECT_EQ(payload->iat, base::Time::FromTimeT(1683000000)); + EXPECT_EQ(payload->_sd_alg, "sha-256"); + + EXPECT_TRUE(payload->cnf); + EXPECT_EQ(payload->cnf->jwk.kty, "EC"); + EXPECT_EQ(payload->cnf->jwk.crv, "P-256"); + EXPECT_EQ(payload->cnf->jwk.x, "TCAER19Zvu3OHF4j4W4vfSVoHIP1ILilDls7vCeGemc"); + EXPECT_EQ(payload->cnf->jwk.y, "ZxjiWWbZMQGHVWKVQ4hbSIirsVfuecCE6t4jT9F2HZQ"); +} + +TEST_F(SdJwtTest, SdJwtParsingAndSerializing) { + // SdJwt's top level structure is a jwt followed by ~ disclosures. + // https://www.ietf.org/archive/id/draft-ietf-oauth-selective-disclosure-jwt-13.html#section-4 + std::string jwt = + "aGVhZGVy.cGF5bG9hZA.signature~ZGlzY2xvc3VyZTE~ZGlzY2xvc3VyZTI~"; + + auto token = SdJwt::From(*SdJwt::Parse(jwt)); + EXPECT_TRUE(token); + + EXPECT_EQ(token->jwt.header, "header"); + EXPECT_EQ(token->jwt.payload, "payload"); + EXPECT_EQ(token->jwt.signature, "signature"); + EXPECT_EQ(token->disclosures.size(), 2ul); + EXPECT_EQ(token->disclosures[0], "disclosure1"); + EXPECT_EQ(token->disclosures[1], "disclosure2"); + + // Asserts that we can serialize the token again. + token->jwt.header = "new-header"; + EXPECT_EQ( + token->Serialize(), + "bmV3LWhlYWRlcg.cGF5bG9hZA.signature~ZGlzY2xvc3VyZTE~ZGlzY2xvc3VyZTI~"); +} + +TEST_F(SdJwtTest, SdJwtParsingCornerCases) { + // Valid: no disclosures + EXPECT_TRUE(SdJwt::Parse("aGVhZGVy.cGF5bG9hZA.signature~")); + + // Invalid JWT + EXPECT_FALSE(SdJwt::Parse("~")); + EXPECT_FALSE(SdJwt::Parse(".~")); + EXPECT_FALSE(SdJwt::Parse("..~")); + EXPECT_FALSE(SdJwt::Parse(".cGF5bG9hZA.signature~")); + EXPECT_FALSE(SdJwt::Parse("aGVhZGVy..signature~")); + EXPECT_FALSE(SdJwt::Parse("aGVhZGVy.cGF5bG9hZA.~")); + EXPECT_FALSE(SdJwt::Parse("aGVhZGVy..signature~")); + EXPECT_FALSE(SdJwt::Parse(".cGF5bG9hZA.signature~")); + + // Invalid: needs trailing ~ + EXPECT_FALSE(SdJwt::Parse("aGVhZGVy.cGF5bG9hZA.signature")); + EXPECT_FALSE(SdJwt::Parse("aGVhZGVy.cGF5bG9hZA.signature~ZGlzY2xvc3VyZTE")); + EXPECT_FALSE(SdJwt::Parse( + "aGVhZGVy.cGF5bG9hZA.signature~ZGlzY2xvc3VyZTE~ZGlzY2xvc3VyZTI")); + EXPECT_FALSE( + SdJwt::Parse("aGVhZGVy.cGF5bG9hZA.signature~ZGlzY2xvc3VyZTE~" + "ZGlzY2xvc3VyZTI~ZGlzY2xvc3VyZTM")); + + // Invalid: disclosure can't be empty + EXPECT_FALSE(SdJwt::Parse("aGVhZGVy.cGF5bG9hZA.signature~~")); + EXPECT_FALSE(SdJwt::Parse("aGVhZGVy.cGF5bG9hZA.signature~ZGlzY2xvc3VyZTE~~")); + EXPECT_FALSE(SdJwt::Parse( + "aGVhZGVy.cGF5bG9hZA.signature~ZGlzY2xvc3VyZTE~ZGlzY2xvc3VyZTI~~")); + EXPECT_FALSE(SdJwt::Parse("aGVhZGVy.cGF5bG9hZA.signature~~~")); +} + +TEST_F(SdJwtTest, SelectiveDisclosure) { + Disclosure name; + name.salt = "fake-salt1"; + name.name = "name"; + name.value = "Sam"; + + Disclosure email; + email.salt = "fake-salt2"; + email.name = "email"; + email.value = "goto@email.com"; + + // Only present "name", keep "email" private. + auto presentation = SdJwt::Disclose( + { + {email.name, *email.ToJson()}, + {name.name, *name.ToJson()}, + }, + {"name"}); + + EXPECT_TRUE(presentation); + + // Asserts that we got only 1 disclosure ... + EXPECT_EQ(presentation->size(), 1ul); + + // ... and that it was selected correctly: + EXPECT_EQ((*presentation)[0], "[\"fake-salt1\",\"name\",\"Sam\"]"); +} + +TEST_F(SdJwtTest, SdJwtKbParsingAndSerializing) { + // SdJwtKb's top level structure is a jwt followed by ~ disclosures + // followed by a key binding JWT. + // https://www.ietf.org/archive/id/draft-ietf-oauth-selective-disclosure-jwt-13.html#name-sd-jwt-and-sd-jwtkb-data-fo + std::string bin = + "aGVhZGVy.cGF5bG9hZA.iss_signature" + "~ZGlzY2xvc3VyZTE" + "~ZGlzY2xvc3VyZTI" + "~" + "aGVhZGVy.cGF5bG9hZA.kb_signature"; + + auto token = SdJwtKb::Parse(bin); + EXPECT_TRUE(token); + + EXPECT_EQ(token->sd_jwt.jwt.header, "header"); + EXPECT_EQ(token->sd_jwt.jwt.payload, "payload"); + EXPECT_EQ(token->sd_jwt.jwt.signature, "iss_signature"); + EXPECT_EQ(token->sd_jwt.disclosures.size(), 2ul); + EXPECT_EQ(token->sd_jwt.disclosures[0], "disclosure1"); + EXPECT_EQ(token->sd_jwt.disclosures[1], "disclosure2"); + EXPECT_EQ(token->kb_jwt.header, "header"); + EXPECT_EQ(token->kb_jwt.payload, "payload"); + EXPECT_EQ(token->kb_jwt.signature, "kb_signature"); + + // Asserts that we can serialize the token again. + token->sd_jwt.jwt.header = "new-header"; + EXPECT_EQ( + token->Serialize(), + "bmV3LWhlYWRlcg.cGF5bG9hZA.iss_signature~ZGlzY2xvc3VyZTE~ZGlzY2xvc3VyZTI~" + "aGVhZGVy.cGF5bG9hZA.kb_signature"); +} + +TEST_F(SdJwtTest, SdJwtKbParsingCornerCases) { + EXPECT_TRUE( + SdJwtKb::Parse("aGVhZGVy.cGF5bG9hZA.is~ZGlzY2xvc3VyZTE~ZGlzY2xvc3VyZTI~" + "aGVhZGVy.cGF5bG9hZA.kbs")); + + // No KB JWT. + EXPECT_FALSE(SdJwtKb::Parse( + "aGVhZGVy.cGF5bG9hZA.is~ZGlzY2xvc3VyZTE~ZGlzY2xvc3VyZTI~")); + + // Ends in ~ + EXPECT_FALSE( + SdJwtKb::Parse("aGVhZGVy.cGF5bG9hZA.is~ZGlzY2xvc3VyZTE~ZGlzY2xvc3VyZTI~" + "aGVhZGVy.cGF5bG9hZA.kbs~")); + + // KB JWT missing payload and signature + EXPECT_FALSE( + SdJwtKb::Parse("aGVhZGVy.cGF5bG9hZA.is~ZGlzY2xvc3VyZTE~ZGlzY2xvc3VyZTI~." + "cGF5bG9hZA.kbs")); + // KB JWT with empty header and payload + EXPECT_FALSE(SdJwtKb::Parse( + "aGVhZGVy.cGF5bG9hZA.is~ZGlzY2xvc3VyZTE~ZGlzY2xvc3VyZTI~aGVhZGVy..kbs")); + // KB JWT with empty signature + EXPECT_FALSE( + SdJwtKb::Parse("aGVhZGVy.cGF5bG9hZA.is~ZGlzY2xvc3VyZTE~ZGlzY2xvc3VyZTI~" + "aGVhZGVy.cGF5bG9hZA.")); + // KB JWT with empty header, payload and signature + EXPECT_FALSE(SdJwtKb::Parse( + "aGVhZGVy.cGF5bG9hZA.is~ZGlzY2xvc3VyZTE~ZGlzY2xvc3VyZTI~..")); +} + +std::optional<std::vector<std::uint8_t>> TestSigner( + const std::string_view& message) { + std::string str = "Signed(" + std::string(message) + ")"; + std::vector<uint8_t> result(str.begin(), str.end()); + return result; +} + +std::vector<std::uint8_t> TestSha256(std::string_view data) { + std::string str = "Sha256(" + std::string(data) + ")"; + std::vector<uint8_t> result(str.begin(), str.end()); + return result; +} + +TEST_F(SdJwtTest, SdJwtKb_Bind) { + Disclosure name; + name.salt = "fake-salt1"; + name.name = "name"; + name.value = "Sam"; + + Disclosure email; + email.salt = "fake-salt2"; + email.name = "email"; + email.value = "goto@email.com"; + + Jwk key; + + auto disclosures = SdJwt::Disclose( + { + {name.name, *name.ToJson()}, + {email.name, *email.ToJson()}, + }, + {"name"}); + + EXPECT_TRUE(disclosures); + + Jwt issued; + issued.header = "header"; + issued.payload = "payload"; + issued.signature = "signature"; + + SdJwt presentation; + presentation.jwt = issued; + presentation.disclosures = *disclosures; + + auto sdjwtkb = SdJwtKb::Create(presentation, "https://verifier.example", + "__fake_nonce__", base::Time::FromTimeT(1234), + base::BindRepeating(TestSha256), + base::BindRepeating(TestSigner)); + + EXPECT_TRUE(sdjwtkb); + + auto kb = sdjwtkb->kb_jwt; + + // Checks KB headers: + // https://www.ietf.org/archive/id/draft-ietf-oauth-selective-disclosure-jwt-13.html#section-4.3 + auto header = Header::From(*base::JSONReader::ReadDict(kb.header)); + EXPECT_TRUE(header); + // typ MUST be "kb+jwt". + EXPECT_EQ(header->typ, "kb+jwt"); + EXPECT_EQ(header->alg, "ES256"); + + auto payload = Payload::From(*base::JSONReader::ReadDict(kb.payload)); + EXPECT_TRUE(payload); + // aud is required. + EXPECT_EQ(payload->aud, "https://verifier.example"); + // nonce is required. + EXPECT_EQ(payload->nonce, "__fake_nonce__"); + // iat is required. + EXPECT_EQ(payload->iat, base::Time::FromTimeT(1234)); + + // sd_hash is required. + + // Checks for how the hash was constructed: + // https://www.ietf.org/archive/id/draft-ietf-oauth-selective-disclosure-jwt-13.html#section-4.3.1 + EXPECT_EQ(payload->sd_hash, + "U2hhMjU2KGFHVmhaR1Z5LmNHRjViRzloWkEuc2lnbmF0dXJlfld5Sm1ZV3RsTFh" + "OaGJIUXhJaXdpYm1GdFpTSXNJbE5oYlNKZH4p"); + + // Checks that the signature was constructed correctly too: + // https://www.ietf.org/archive/id/draft-ietf-oauth-selective-disclosure-jwt-13.html#section-4.3.1 + // + // This value is a base64 encode string of the following header: + // + // { + // "alg": "ES256", + // "typ": "kb+jwt" + // } + // + // and payload: + // + // { + // "aud": "https://verifier.example", + // "iat": 1234, + // "nonce": "__fake_nonce__", + // "sd_hash": + // "Sha256(Base64(header).Base64(payload).signature~ + // Base64(["fake-salt1","name","Sam"])~)" + // } + // + base64_t base64; + base::Base64UrlEncode( + "Signed(eyJhbGciOiJFUzI1NiIsInR5cCI6ImtiK2p3dCJ9." + "eyJhdWQiOiJodHRwczovL3ZlcmlmaWVyLmV4YW1wbGUiLCJpYXQiOjEyMzQsIm5" + "vbmNlIjoiX19mYWtlX25vbmNlX18iLCJzZF9oYXNoIjoiVTJoaE1qVTJLR0ZIVm" + "1oYVIxWjVMbU5IUmpWaVJ6bG9Xa0V1YzJsbmJtRjBkWEpsZmxkNVNtMVpWM1JzV" + "EZoT2FHSklVWGhKYVhkcFltMUdkRnBUU1hOSmJFNW9ZbE5LWkg0cCJ9)", + base::Base64UrlEncodePolicy::OMIT_PADDING, &base64); + + EXPECT_STREQ(kb.signature.c_str(), base64.c_str()); +} + +} // namespace content::sdjwt
diff --git a/content/browser/webrtc/webrtc_audio_browsertest.cc b/content/browser/webrtc/webrtc_audio_browsertest.cc index 3505872..7a6fcbc9 100644 --- a/content/browser/webrtc/webrtc_audio_browsertest.cc +++ b/content/browser/webrtc/webrtc_audio_browsertest.cc
@@ -112,6 +112,24 @@ } IN_PROC_BROWSER_TEST_F(WebRtcAudioBrowserTest, + EnsureRemoteAudioTrackStopCloneNotStopOriginalTrack) { + std::string constraints = + BuildConstraints(kAudioConstraints, kVideoConstraints); + MakeAudioDetectingPeerConnectionCall( + "callAndEnsureRemoteClonedAudioTrackStopNotStopOriginalTrack(" + + constraints + ");"); +} + +IN_PROC_BROWSER_TEST_F(WebRtcAudioBrowserTest, + EnsureRemoteAudioTrackDisableNotDisableClonedTrack) { + std::string constraints = + BuildConstraints(kAudioConstraints, kVideoConstraints); + MakeAudioDetectingPeerConnectionCall( + "callAndEnsureRemoteAudioTrackDisableNotDisableClonedTrack(" + + constraints + ");"); +} + +IN_PROC_BROWSER_TEST_F(WebRtcAudioBrowserTest, EstablishAudioVideoCallAndVerifyLocalMutingWorks) { std::string constraints = BuildConstraints(kAudioConstraints, kVideoConstraints);
diff --git a/content/browser/webrtc/webrtc_internals.cc b/content/browser/webrtc/webrtc_internals.cc index 1c943e3a..ad236fc 100644 --- a/content/browser/webrtc/webrtc_internals.cc +++ b/content/browser/webrtc/webrtc_internals.cc
@@ -642,8 +642,8 @@ RenderProcessHost* host, const ChildProcessTerminationInfo& info) { DCHECK_CURRENTLY_ON(BrowserThread::UI); - OnRendererExit(host->GetID()); - render_process_id_set_.erase(host->GetID()); + OnRendererExit(host->GetDeprecatedID()); + render_process_id_set_.erase(host->GetDeprecatedID()); host->RemoveObserver(this); }
diff --git a/content/browser/webui/network_error_url_loader.cc b/content/browser/webui/network_error_url_loader.cc index cb721ac..cdf8bc96 100644 --- a/content/browser/webui/network_error_url_loader.cc +++ b/content/browser/webui/network_error_url_loader.cc
@@ -21,10 +21,7 @@ int net_error = net::ERR_INVALID_URL; if (request.url.host() == kChromeUIDinoHost) { net_error = net::Error::ERR_INTERNET_DISCONNECTED; - GetContentClient()->browser()->LogWebUICreated(request.url); - // TODO(crbug.com/375209495): this currently assumes the Dino page - // is always shown after loaded, which could be wrong. - GetContentClient()->browser()->LogWebUIShown(request.url); + GetContentClient()->browser()->LogWebUIUrl(request.url); } else { std::string error_code_string = request.url.path().substr(1);
diff --git a/content/browser/webui/web_ui_browsertest.cc b/content/browser/webui/web_ui_browsertest.cc index 9323e1f..cd997d0e 100644 --- a/content/browser/webui/web_ui_browsertest.cc +++ b/content/browser/webui/web_ui_browsertest.cc
@@ -207,7 +207,7 @@ web_contents->GetBrowserContext(), web_ui_url)); ASSERT_TRUE(NavigateToURL(web_contents, web_ui_url)); EXPECT_TRUE(ChildProcessSecurityPolicy::GetInstance()->HasWebUIBindings( - web_contents->GetPrimaryMainFrame()->GetProcess()->GetID())); + web_contents->GetPrimaryMainFrame()->GetProcess()->GetDeprecatedID())); // Capture the SiteInstance before navigating for later comparison. scoped_refptr<SiteInstance> orig_site_instance( @@ -225,7 +225,7 @@ EXPECT_NE(orig_browsing_instance_id, new_site_instance->GetBrowsingInstanceId()); EXPECT_TRUE(ChildProcessSecurityPolicy::GetInstance()->HasWebUIBindings( - web_contents->GetPrimaryMainFrame()->GetProcess()->GetID())); + web_contents->GetPrimaryMainFrame()->GetProcess()->GetDeprecatedID())); } // Tests that a WebUI page will stay in the initial RenderFrameHost and its @@ -254,7 +254,7 @@ ASSERT_TRUE(NavigateToURL(web_contents, web_ui_url)); EXPECT_TRUE(ChildProcessSecurityPolicy::GetInstance()->HasWebUIBindings( - web_contents->GetPrimaryMainFrame()->GetProcess()->GetID())); + web_contents->GetPrimaryMainFrame()->GetProcess()->GetDeprecatedID())); auto* new_site_instance = web_contents->GetSiteInstance(); EXPECT_EQ(orig_site_instance, new_site_instance); EXPECT_TRUE( @@ -355,7 +355,7 @@ // Check that the resulting WebUI page has bindings, and its process is // marked as used. EXPECT_TRUE(ChildProcessSecurityPolicy::GetInstance()->HasWebUIBindings( - web_contents->GetPrimaryMainFrame()->GetProcess()->GetID())); + web_contents->GetPrimaryMainFrame()->GetProcess()->GetDeprecatedID())); EXPECT_FALSE(web_contents->GetPrimaryMainFrame()->GetProcess()->IsUnused()); } @@ -446,7 +446,11 @@ EXPECT_EQ(shell()->web_contents()->GetPrimaryMainFrame()->GetProcess(), new_shell->web_contents()->GetPrimaryMainFrame()->GetProcess()); EXPECT_FALSE(ChildProcessSecurityPolicy::GetInstance()->HasWebUIBindings( - shell()->web_contents()->GetPrimaryMainFrame()->GetProcess()->GetID())); + shell() + ->web_contents() + ->GetPrimaryMainFrame() + ->GetProcess() + ->GetDeprecatedID())); // Navigate the second tab to a WebUI URL. This should not reuse the // initial RFH's process and should end up in a new process. @@ -455,7 +459,10 @@ EXPECT_NE(shell()->web_contents()->GetPrimaryMainFrame()->GetProcess(), new_shell->web_contents()->GetPrimaryMainFrame()->GetProcess()); EXPECT_TRUE(ChildProcessSecurityPolicy::GetInstance()->HasWebUIBindings( - new_shell->web_contents()->GetPrimaryMainFrame()->GetProcess()->GetID())); + new_shell->web_contents() + ->GetPrimaryMainFrame() + ->GetProcess() + ->GetDeprecatedID())); } // Check that if two initial RenderFrameHosts in different tabs share a @@ -501,7 +508,11 @@ EXPECT_FALSE( shell()->web_contents()->GetPrimaryMainFrame()->GetProcess()->IsUnused()); EXPECT_TRUE(ChildProcessSecurityPolicy::GetInstance()->HasWebUIBindings( - shell()->web_contents()->GetPrimaryMainFrame()->GetProcess()->GetID())); + shell() + ->web_contents() + ->GetPrimaryMainFrame() + ->GetProcess() + ->GetDeprecatedID())); // Navigate the first tab to a normal web URL. This should not stay in the // the initial process, which is now used by WebUI. @@ -511,9 +522,16 @@ EXPECT_NE(shell()->web_contents()->GetPrimaryMainFrame()->GetProcess(), new_shell->web_contents()->GetPrimaryMainFrame()->GetProcess()); EXPECT_FALSE(ChildProcessSecurityPolicy::GetInstance()->HasWebUIBindings( - shell()->web_contents()->GetPrimaryMainFrame()->GetProcess()->GetID())); + shell() + ->web_contents() + ->GetPrimaryMainFrame() + ->GetProcess() + ->GetDeprecatedID())); EXPECT_TRUE(ChildProcessSecurityPolicy::GetInstance()->HasWebUIBindings( - new_shell->web_contents()->GetPrimaryMainFrame()->GetProcess()->GetID())); + new_shell->web_contents() + ->GetPrimaryMainFrame() + ->GetProcess() + ->GetDeprecatedID())); // Navigate the third tab to the same WebUI URL. This should stay in the // third tab's initial process which is shared with the second tab, since the @@ -608,7 +626,7 @@ EXPECT_FALSE( static_cast<SiteInstanceImpl*>(restore_site_instance.get())->HasSite()); EXPECT_FALSE(ChildProcessSecurityPolicy::GetInstance()->HasWebUIBindings( - restore_rfh->GetProcess()->GetID())); + restore_rfh->GetProcess()->GetDeprecatedID())); EXPECT_NE(shell()->web_contents()->GetPrimaryMainFrame()->GetSiteInstance(), restore_site_instance); @@ -640,7 +658,7 @@ ASSERT_TRUE(restore_rfh.get()); EXPECT_FALSE(restore_rfh->GetProcess()->IsUnused()); EXPECT_TRUE(ChildProcessSecurityPolicy::GetInstance()->HasWebUIBindings( - restore_rfh->GetProcess()->GetID())); + restore_rfh->GetProcess()->GetDeprecatedID())); } // Tests that navigating from chrome:// to chrome-untrusted:// results in @@ -656,7 +674,7 @@ ASSERT_TRUE(NavigateToURL(web_contents, web_ui_url)); EXPECT_TRUE(ChildProcessSecurityPolicy::GetInstance()->HasWebUIBindings( - web_contents->GetPrimaryMainFrame()->GetProcess()->GetID())); + web_contents->GetPrimaryMainFrame()->GetProcess()->GetDeprecatedID())); // Capture the SiteInstance before navigating for later comparison. scoped_refptr<SiteInstance> orig_site_instance( @@ -672,7 +690,7 @@ EXPECT_NE(orig_browsing_instance_id, new_site_instance->GetBrowsingInstanceId()); EXPECT_FALSE(ChildProcessSecurityPolicy::GetInstance()->HasWebUIBindings( - web_contents->GetPrimaryMainFrame()->GetProcess()->GetID())); + web_contents->GetPrimaryMainFrame()->GetProcess()->GetDeprecatedID())); } // Tests that navigating from chrome-untrusted:// to chrome:// results in @@ -685,7 +703,7 @@ ASSERT_TRUE(NavigateToURL(web_contents, GetChromeUntrustedUIURL("test-host/title1.html"))); EXPECT_FALSE(ChildProcessSecurityPolicy::GetInstance()->HasWebUIBindings( - web_contents->GetPrimaryMainFrame()->GetProcess()->GetID())); + web_contents->GetPrimaryMainFrame()->GetProcess()->GetDeprecatedID())); // Capture the SiteInstance before navigating for later comparison. scoped_refptr<SiteInstance> orig_site_instance( @@ -704,7 +722,7 @@ EXPECT_NE(orig_browsing_instance_id, new_site_instance->GetBrowsingInstanceId()); EXPECT_TRUE(ChildProcessSecurityPolicy::GetInstance()->HasWebUIBindings( - web_contents->GetPrimaryMainFrame()->GetProcess()->GetID())); + web_contents->GetPrimaryMainFrame()->GetProcess()->GetDeprecatedID())); } IN_PROC_BROWSER_TEST_F(WebUIImplBrowserTest, SameDocumentNavigationsAndReload) { @@ -969,14 +987,16 @@ url = GURL(base::StrCat( {requestable_scheme, url::kStandardSchemeSeparator, host_and_path})); EXPECT_TRUE(ChildProcessSecurityPolicy::GetInstance()->CanRequestURL( - web_contents->GetPrimaryMainFrame()->GetProcess()->GetID(), url)); + web_contents->GetPrimaryMainFrame()->GetProcess()->GetDeprecatedID(), + url)); } for (const auto& unrequestable_scheme : unrequestable_schemes) { url = GURL(base::StrCat( {unrequestable_scheme, url::kStandardSchemeSeparator, host_and_path})); EXPECT_FALSE(ChildProcessSecurityPolicy::GetInstance()->CanRequestURL( - web_contents->GetPrimaryMainFrame()->GetProcess()->GetID(), url)); + web_contents->GetPrimaryMainFrame()->GetProcess()->GetDeprecatedID(), + url)); } } @@ -1020,14 +1040,16 @@ url = GURL(base::StrCat( {requestable_scheme, url::kStandardSchemeSeparator, host_and_path})); EXPECT_TRUE(ChildProcessSecurityPolicy::GetInstance()->CanRequestURL( - web_contents->GetPrimaryMainFrame()->GetProcess()->GetID(), url)); + web_contents->GetPrimaryMainFrame()->GetProcess()->GetDeprecatedID(), + url)); } for (const auto& unrequestable_scheme : unrequestable_schemes) { url = GURL(base::StrCat( {unrequestable_scheme, url::kStandardSchemeSeparator, host_and_path})); EXPECT_FALSE(ChildProcessSecurityPolicy::GetInstance()->CanRequestURL( - web_contents->GetPrimaryMainFrame()->GetProcess()->GetID(), url)); + web_contents->GetPrimaryMainFrame()->GetProcess()->GetDeprecatedID(), + url)); } }
diff --git a/content/browser/webui/web_ui_impl.cc b/content/browser/webui/web_ui_impl.cc index ed958cf..dbbe49e 100644 --- a/content/browser/webui/web_ui_impl.cc +++ b/content/browser/webui/web_ui_impl.cc
@@ -154,7 +154,7 @@ void WebUIImpl::Send(const std::string& message, base::Value::List args) { const GURL& source_url = frame_host_->GetLastCommittedURL(); if (!ChildProcessSecurityPolicyImpl::GetInstance()->HasWebUIBindings( - frame_host_->GetProcess()->GetID()) || + frame_host_->GetProcess()->GetDeprecatedID()) || !WebUIControllerFactoryRegistry::GetInstance()->IsURLAcceptableForWebUI( web_contents_->GetBrowserContext(), source_url)) { bad_message::ReceivedBadMessage( @@ -267,7 +267,7 @@ bool WebUIImpl::CanCallJavascript() { return (ChildProcessSecurityPolicyImpl::GetInstance()->HasWebUIBindings( - frame_host_->GetProcess()->GetID()) || + frame_host_->GetProcess()->GetDeprecatedID()) || // It's possible to load about:blank in a Web UI renderer. // See http://crbug.com/42547 frame_host_->GetLastCommittedURL().spec() == url::kAboutBlankURL);
diff --git a/content/browser/webui/web_ui_main_frame_observer.cc b/content/browser/webui/web_ui_main_frame_observer.cc index 9d5c40a..4a78c6d 100644 --- a/content/browser/webui/web_ui_main_frame_observer.cc +++ b/content/browser/webui/web_ui_main_frame_observer.cc
@@ -17,7 +17,6 @@ #include "components/crash/content/browser/error_reporting/js_error_report_processor.h" #include "content/browser/renderer_host/render_frame_host_impl.h" #include "content/browser/webui/web_ui_impl.h" -#include "content/public/browser/content_browser_client.h" #include "content/public/browser/navigation_handle.h" #include "content/public/browser/web_contents.h" #include "content/public/browser/web_ui_controller.h" @@ -176,9 +175,9 @@ web_ui_->GetController()->WebUIReadyToCommitNavigation( web_ui_->GetRenderFrameHost()); - GetContentClient()->browser()->LogWebUICreated(GetUrlForLogging()); - pending_non_empty_paint_ = true; - + GURL site_url = + web_ui_->GetRenderFrameHost()->GetSiteInstance()->GetSiteURL(); + GetContentClient()->browser()->LogWebUIUrl(site_url); MaybeEnableWebUIJavaScriptErrorReporting(navigation_handle); } @@ -187,22 +186,4 @@ web_ui_->GetController()->WebUIPrimaryPageChanged(page); } -void WebUIMainFrameObserver::DidFirstVisuallyNonEmptyPaint() { - // Ignore paint events if we are not expecting one. They could come - // from frames that are not associated with this WebUI. - if (!pending_non_empty_paint_) { - return; - } - pending_non_empty_paint_ = false; - - GetContentClient()->browser()->LogWebUIShown(GetUrlForLogging()); -} - -const GURL& WebUIMainFrameObserver::GetUrlForLogging() const { - // This returns the actual WebUI url which can differ from the visible - // URL (e.g. chrome://newtab can be rewrote to chrome://new-tab-page or - // chrome://new-tab-page-third-party) - return web_ui_->GetRenderFrameHost()->GetSiteInstance()->GetSiteURL(); -} - } // namespace content
diff --git a/content/browser/webui/web_ui_main_frame_observer.h b/content/browser/webui/web_ui_main_frame_observer.h index 25fde30..9fae724 100644 --- a/content/browser/webui/web_ui_main_frame_observer.h +++ b/content/browser/webui/web_ui_main_frame_observer.h
@@ -55,19 +55,13 @@ void ReadyToCommitNavigation(NavigationHandle* navigation_handle) override; - void DidFirstVisuallyNonEmptyPaint() override; - private: - const GURL& GetUrlForLogging() const; - void MaybeEnableWebUIJavaScriptErrorReporting( NavigationHandle* navigation_handle); // Do we report JavaScript errors ? bool error_reporting_enabled_ = false; - bool pending_non_empty_paint_ = false; - raw_ptr<WebUIImpl> web_ui_; };
diff --git a/content/browser/webui/web_ui_navigation_browsertest.cc b/content/browser/webui/web_ui_navigation_browsertest.cc index 24bf1de..3f7caf6 100644 --- a/content/browser/webui/web_ui_navigation_browsertest.cc +++ b/content/browser/webui/web_ui_navigation_browsertest.cc
@@ -94,16 +94,16 @@ EXPECT_EQ(foo_url, root->current_frame_host()->GetLastCommittedURL()); EXPECT_FALSE( ChildProcessSecurityPolicyImpl::GetInstance()->HasWebUIBindings( - root->current_frame_host()->GetProcess()->GetID())); + root->current_frame_host()->GetProcess()->GetDeprecatedID())); // Grant WebUI bindings to the process. This will ensure that if there is // a mistake in the navigation logic and a process gets somehow WebUI // bindings, the web content is correctly isolated regardless of the scheme // of the parent document. ChildProcessSecurityPolicyImpl::GetInstance()->GrantWebUIBindings( - root->current_frame_host()->GetProcess()->GetID(), bindings); + root->current_frame_host()->GetProcess()->GetDeprecatedID(), bindings); EXPECT_TRUE(ChildProcessSecurityPolicyImpl::GetInstance()->HasWebUIBindings( - root->current_frame_host()->GetProcess()->GetID())); + root->current_frame_host()->GetProcess()->GetDeprecatedID())); { GURL web_url(embedded_test_server()->GetURL("/title2.html")); std::string script = base::StringPrintf( @@ -123,7 +123,10 @@ root->child_at(0)->current_frame_host()->GetSiteInstance()); EXPECT_FALSE( ChildProcessSecurityPolicyImpl::GetInstance()->HasWebUIBindings( - root->child_at(0)->current_frame_host()->GetProcess()->GetID())); + root->child_at(0) + ->current_frame_host() + ->GetProcess() + ->GetDeprecatedID())); } } @@ -146,7 +149,7 @@ child->current_frame_host()->GetSiteInstance()); RenderFrameHost* webui_rfh = root->current_frame_host(); EXPECT_TRUE(ChildProcessSecurityPolicyImpl::GetInstance()->HasWebUIBindings( - webui_rfh->GetProcess()->GetID())); + webui_rfh->GetProcess()->GetDeprecatedID())); // Navigate the subframe to the same WebUI. { @@ -676,7 +679,7 @@ EXPECT_EQ(main_frame_url, webui_rfh->GetLastCommittedURL()); EXPECT_TRUE(ChildProcessSecurityPolicyImpl::GetInstance()->HasWebUIBindings( - webui_rfh->GetProcess()->GetID())); + webui_rfh->GetProcess()->GetDeprecatedID())); EXPECT_FALSE( webui_site_instance->GetSiteInfo().process_lock_url().is_empty()); EXPECT_EQ(root->current_frame_host()->GetProcess()->GetProcessLock(), @@ -763,18 +766,26 @@ // Visit a WebUI page with bindings. EXPECT_TRUE(NavigateToURL(shell(), url1)); EXPECT_TRUE(ChildProcessSecurityPolicyImpl::GetInstance()->HasWebUIBindings( - shell()->web_contents()->GetPrimaryMainFrame()->GetProcess()->GetID())); + shell() + ->web_contents() + ->GetPrimaryMainFrame() + ->GetProcess() + ->GetDeprecatedID())); SiteInstance* site_instance1 = shell()->web_contents()->GetSiteInstance(); - int process1_id = site_instance1->GetProcess()->GetID(); + int process1_id = site_instance1->GetProcess()->GetDeprecatedID(); // Visit the second WebUI page with bindings. Even though the navigation // itself doesn't intend to swap BrowsingInstances, we still swap them due to // a change in WebUI type. EXPECT_TRUE(NavigateToURLInSameBrowsingInstance(shell(), url2)); EXPECT_TRUE(ChildProcessSecurityPolicyImpl::GetInstance()->HasWebUIBindings( - shell()->web_contents()->GetPrimaryMainFrame()->GetProcess()->GetID())); + shell() + ->web_contents() + ->GetPrimaryMainFrame() + ->GetProcess() + ->GetDeprecatedID())); SiteInstance* site_instance2 = shell()->web_contents()->GetSiteInstance(); - int process2_id = site_instance2->GetProcess()->GetID(); + int process2_id = site_instance2->GetProcess()->GetDeprecatedID(); // The 2nd WebUI page should swap to a different process, SiteInstance, // and BrowsingInstance. @@ -803,9 +814,13 @@ // Visit a WebUI page with bindings. EXPECT_TRUE(NavigateToURL(shell(), url1)); EXPECT_TRUE(ChildProcessSecurityPolicyImpl::GetInstance()->HasWebUIBindings( - shell()->web_contents()->GetPrimaryMainFrame()->GetProcess()->GetID())); + shell() + ->web_contents() + ->GetPrimaryMainFrame() + ->GetProcess() + ->GetDeprecatedID())); SiteInstance* site_instance1 = shell()->web_contents()->GetSiteInstance(); - int process1_id = site_instance1->GetProcess()->GetID(); + int process1_id = site_instance1->GetProcess()->GetDeprecatedID(); // Open a new tab. TestNavigationObserver nav_observer(nullptr); @@ -817,7 +832,7 @@ WebContentsImpl* new_web_contents = static_cast<WebContentsImpl*>(new_shell->web_contents()); SiteInstance* site_instance2 = new_web_contents->GetSiteInstance(); - int process2_id = site_instance2->GetProcess()->GetID(); + int process2_id = site_instance2->GetProcess()->GetDeprecatedID(); // The 2nd WebUI page should swap to a different process, SiteInstance, // and BrowsingInstance. @@ -986,7 +1001,7 @@ EXPECT_EQ(chrome_url, webui_rfh->GetLastCommittedURL()); EXPECT_TRUE(ChildProcessSecurityPolicyImpl::GetInstance()->HasWebUIBindings( - webui_rfh->GetProcess()->GetID())); + webui_rfh->GetProcess()->GetDeprecatedID())); EXPECT_EQ(root->current_frame_host()->GetProcess()->GetProcessLock(), ProcessLock::FromSiteInfo(webui_site_instance->GetSiteInfo())); @@ -1004,7 +1019,7 @@ EXPECT_FALSE(webui_site_instance->IsRelatedSiteInstance( root->current_frame_host()->GetSiteInstance())); EXPECT_FALSE(ChildProcessSecurityPolicyImpl::GetInstance()->HasWebUIBindings( - root->current_frame_host()->GetProcess()->GetID())); + root->current_frame_host()->GetProcess()->GetDeprecatedID())); EXPECT_NE(root->current_frame_host()->GetProcess()->GetProcessLock(), ProcessLock::FromSiteInfo(webui_site_instance->GetSiteInfo())); }
diff --git a/content/browser/webui/web_ui_security_browsertest.cc b/content/browser/webui/web_ui_security_browsertest.cc index 839fe97..b337bda8 100644 --- a/content/browser/webui/web_ui_security_browsertest.cc +++ b/content/browser/webui/web_ui_security_browsertest.cc
@@ -68,7 +68,11 @@ EXPECT_TRUE(NavigateToURL(web_contents, untrusted_url)); EXPECT_FALSE(ChildProcessSecurityPolicyImpl::GetInstance()->HasWebUIBindings( - shell()->web_contents()->GetPrimaryMainFrame()->GetProcess()->GetID())); + shell() + ->web_contents() + ->GetPrimaryMainFrame() + ->GetProcess() + ->GetDeprecatedID())); EXPECT_TRUE(shell() ->web_contents() ->GetPrimaryMainFrame() @@ -82,7 +86,11 @@ EXPECT_TRUE(NavigateToURL(shell(), test_url)); EXPECT_FALSE(ChildProcessSecurityPolicyImpl::GetInstance()->HasWebUIBindings( - shell()->web_contents()->GetPrimaryMainFrame()->GetProcess()->GetID())); + shell() + ->web_contents() + ->GetPrimaryMainFrame() + ->GetProcess() + ->GetDeprecatedID())); EXPECT_TRUE(shell() ->web_contents() ->GetPrimaryMainFrame() @@ -99,7 +107,11 @@ EXPECT_TRUE(NavigateToURL(shell(), test_url)); EXPECT_TRUE(ChildProcessSecurityPolicyImpl::GetInstance()->HasWebUIBindings( - shell()->web_contents()->GetPrimaryMainFrame()->GetProcess()->GetID())); + shell() + ->web_contents() + ->GetPrimaryMainFrame() + ->GetProcess() + ->GetDeprecatedID())); EXPECT_EQ( BindingsPolicySet({BindingsPolicyValue::kWebUi}), shell()->web_contents()->GetPrimaryMainFrame()->GetEnabledBindings()); @@ -114,7 +126,11 @@ EXPECT_TRUE(NavigateToURL(shell(), test_url)); EXPECT_TRUE(ChildProcessSecurityPolicyImpl::GetInstance()->HasWebUIBindings( - shell()->web_contents()->GetPrimaryMainFrame()->GetProcess()->GetID())); + shell() + ->web_contents() + ->GetPrimaryMainFrame() + ->GetProcess() + ->GetDeprecatedID())); EXPECT_EQ( BindingsPolicySet({BindingsPolicyValue::kMojoWebUi}), shell()->web_contents()->GetPrimaryMainFrame()->GetEnabledBindings()); @@ -130,7 +146,11 @@ EXPECT_TRUE(NavigateToURL(shell(), test_url)); EXPECT_TRUE(ChildProcessSecurityPolicyImpl::GetInstance()->HasWebUIBindings( - shell()->web_contents()->GetPrimaryMainFrame()->GetProcess()->GetID())); + shell() + ->web_contents() + ->GetPrimaryMainFrame() + ->GetProcess() + ->GetDeprecatedID())); EXPECT_EQ( BindingsPolicySet( {BindingsPolicyValue::kWebUi, BindingsPolicyValue::kMojoWebUi}),
diff --git a/content/browser/worker_host/dedicated_worker_host.cc b/content/browser/worker_host/dedicated_worker_host.cc index 7a73fe1..2b2b598 100644 --- a/content/browser/worker_host/dedicated_worker_host.cc +++ b/content/browser/worker_host/dedicated_worker_host.cc
@@ -340,7 +340,7 @@ TRACE_EVENT_NESTABLE_ASYNC_BEGIN0( "loading", "WorkerScriptFetcher CreateAndStart", TRACE_ID_LOCAL(this)); WorkerScriptFetcher::CreateAndStart( - worker_process_host_->GetID(), token_, script_url, + worker_process_host_->GetDeprecatedID(), token_, script_url, *nearest_ancestor_render_frame_host, creator_render_frame_host, nearest_ancestor_render_frame_host->ComputeSiteForCookies(), creator_origin_, storage_key_, @@ -576,7 +576,7 @@ url_loader_factory::FactoryOverrideOption::kAllow), url_loader_factory::ContentClientParams( worker_process_host_->GetBrowserContext(), frame, - worker_process_host_->GetID(), GetStorageKey().origin(), + worker_process_host_->GetDeprecatedID(), GetStorageKey().origin(), isolation_info_, ukm::SourceIdObj::FromInt64( ancestor_render_frame_host->GetPageUkmSourceId()), @@ -711,7 +711,7 @@ } mojo::MakeSelfOwnedReceiver( std::make_unique<WebTransportConnectorImpl>( - worker_process_host_->GetID(), + worker_process_host_->GetDeprecatedID(), ancestor_render_frame_host->GetWeakPtr(), GetStorageKey().origin(), isolation_info_.network_anonymization_key()), std::move(receiver)); @@ -746,7 +746,7 @@ mojo::MakeSelfOwnedReceiver( std::make_unique<DedicatedWorkerHostFactoryImpl>( - worker_process_host_->GetID(), /*creator=*/token_, + worker_process_host_->GetDeprecatedID(), /*creator=*/token_, ancestor_render_frame_host_id_, GetStorageKey(), isolation_info_, worker_client_security_state_->Clone(), creator_coep_reporter, ancestor_coep_reporter_), @@ -789,7 +789,7 @@ GetProcessHost()->GetStoragePartition()); storage_partition_impl->GetBlobUrlRegistry()->AddReceiver( - GetStorageKey(), renderer_origin_, GetProcessHost()->GetID(), + GetStorageKey(), renderer_origin_, GetProcessHost()->GetDeprecatedID(), std::move(receiver), storage::BlobURLValidityCheckBehavior:: ALLOW_OPAQUE_ORIGIN_STORAGE_KEY_MISMATCH); @@ -799,7 +799,7 @@ mojo::PendingReceiver<blink::mojom::CodeCacheHost> receiver) { // Create a new CodeCacheHostImpl and bind it to the given receiver. RenderProcessHost* rph = GetProcessHost(); - code_cache_host_receivers_.Add(rph->GetID(), + code_cache_host_receivers_.Add(rph->GetDeprecatedID(), isolation_info_.network_isolation_key(), GetStorageKey(), std::move(receiver)); } @@ -898,7 +898,7 @@ DCHECK(base::FeatureList::IsEnabled(blink::features::kPlzDedicatedWorker)); auto params = network::mojom::URLLoaderFactoryParams::New(); - params->process_id = worker_process_host_->GetID(); + params->process_id = worker_process_host_->GetDeprecatedID(); params->debug_tag = "DedicatedWorkerHost::ObserveNetworkServiceCrash"; network_service_connection_error_handler_holder_.reset(); storage_partition_impl->GetNetworkContext()->CreateURLLoaderFactory( @@ -958,7 +958,7 @@ std::unique_ptr<blink::PendingURLLoaderFactoryBundle> subresource_loader_factories = WorkerScriptFetcher::CreateFactoryBundle( WorkerScriptFetcher::LoaderType::kSubResource, - worker_process_host_->GetID(), storage_partition_impl, + worker_process_host_->GetDeprecatedID(), storage_partition_impl, partition_domain, file_url_support_, /*filesystem_url_support=*/true, creator_render_frame_host, storage_key_); @@ -1155,7 +1155,7 @@ const auto* ancestor_rfh = RenderFrameHostImpl::FromID(ancestor_render_frame_host_id_); return storage::BucketClientInfo{ - worker_process_host_->GetID(), GetToken(), + worker_process_host_->GetDeprecatedID(), GetToken(), ancestor_rfh ? std::optional(ancestor_rfh->GetDocumentToken()) : std::nullopt}; }
diff --git a/content/browser/worker_host/dedicated_worker_host_factory_impl.cc b/content/browser/worker_host/dedicated_worker_host_factory_impl.cc index 56a0fdb..918b147 100644 --- a/content/browser/worker_host/dedicated_worker_host_factory_impl.cc +++ b/content/browser/worker_host/dedicated_worker_host_factory_impl.cc
@@ -242,8 +242,8 @@ // devtools to be able to instrument the URLLoaderFactory. This call will // create a DevtoolsAgentHost. WorkerDevToolsManager::GetInstance().WorkerCreated( - host, worker_process_host->GetID(), ancestor_render_frame_host_id_, - std::move(devtools_throttle_handle)); + host, worker_process_host->GetDeprecatedID(), + ancestor_render_frame_host_id_, std::move(devtools_throttle_handle)); base::UmaHistogramTimes("Worker.BrowserProcess.StartScriptLoadTime", base::TimeTicks::Now() - start_time); base::UmaHistogramTimes("Worker.BrowserProcess.DevToolsCreateTime",
diff --git a/content/browser/worker_host/dedicated_worker_service_impl.cc b/content/browser/worker_host/dedicated_worker_service_impl.cc index 494bd3e..4501b47 100644 --- a/content/browser/worker_host/dedicated_worker_service_impl.cc +++ b/content/browser/worker_host/dedicated_worker_service_impl.cc
@@ -31,7 +31,7 @@ DedicatedWorkerHost* host = kv.second; observer->OnWorkerCreated( - dedicated_worker_token, host->GetProcessHost()->GetID(), + dedicated_worker_token, host->GetProcessHost()->GetDeprecatedID(), host->GetStorageKey().origin(), host->GetCreator()); auto& maybe_url = host->GetFinalResponseURL(); if (maybe_url) { @@ -48,9 +48,9 @@ DCHECK(inserted); for (Observer& observer : observers_) { - observer.OnWorkerCreated(host->GetToken(), host->GetProcessHost()->GetID(), - host->GetStorageKey().origin(), - host->GetCreator()); + observer.OnWorkerCreated( + host->GetToken(), host->GetProcessHost()->GetDeprecatedID(), + host->GetStorageKey().origin(), host->GetCreator()); } }
diff --git a/content/browser/worker_host/dedicated_worker_service_impl_unittest.cc b/content/browser/worker_host/dedicated_worker_service_impl_unittest.cc index 3544c98..b6b0309 100644 --- a/content/browser/worker_host/dedicated_worker_service_impl_unittest.cc +++ b/content/browser/worker_host/dedicated_worker_service_impl_unittest.cc
@@ -246,7 +246,8 @@ // Create the dedicated worker. const DedicatedWorkerCreator creator(render_frame_host->GetGlobalId()); - const int render_process_host_id = render_frame_host->GetProcess()->GetID(); + const int render_process_host_id = + render_frame_host->GetProcess()->GetDeprecatedID(); const auto origin = url::Origin::Create(kUrl); auto mock_dedicated_worker = std::make_unique<MockDedicatedWorker>( render_process_host_id, render_frame_host->GetGlobalId(), origin);
diff --git a/content/browser/worker_host/shared_worker_host.cc b/content/browser/worker_host/shared_worker_host.cc index b905061a..cac7d107 100644 --- a/content/browser/worker_host/shared_worker_host.cc +++ b/content/browser/worker_host/shared_worker_host.cc
@@ -158,7 +158,7 @@ // when two clients call new SharedWorker() at around the same time. worker_receiver_ = worker_.BindNewPipeAndPassReceiver(); - service_->NotifyWorkerCreated(token_, GetProcessHost()->GetID(), + service_->NotifyWorkerCreated(token_, GetProcessHost()->GetDeprecatedID(), instance_.storage_key().origin(), devtools_handle_->dev_tools_token()); } @@ -404,7 +404,7 @@ url_loader_factory::FactoryOverrideOption::kAllow), url_loader_factory::ContentClientParams( GetProcessHost()->GetBrowserContext(), - /*frame=*/nullptr, GetProcessHost()->GetID(), origin, + /*frame=*/nullptr, GetProcessHost()->GetDeprecatedID(), origin, GetStorageKey().ToPartialNetIsolationInfo(), ukm::SourceIdObj::FromInt64(ukm_source_id_), bypass_redirect_checks), devtools_instrumentation::WillCreateURLLoaderFactoryParams:: @@ -476,7 +476,8 @@ } storage::BucketClientInfo SharedWorkerHost::GetBucketClientInfo() const { - return storage::BucketClientInfo{GetProcessHost()->GetID(), token()}; + return storage::BucketClientInfo{GetProcessHost()->GetDeprecatedID(), + token()}; } void SharedWorkerHost::AllowFileSystem( @@ -514,10 +515,11 @@ mojo::PendingReceiver<blink::mojom::WebTransportConnector> receiver) { DCHECK_CURRENTLY_ON(BrowserThread::UI); const url::Origin origin = url::Origin::Create(instance().url()); - mojo::MakeSelfOwnedReceiver(std::make_unique<WebTransportConnectorImpl>( - GetProcessHost()->GetID(), /*frame=*/nullptr, - origin, GetNetworkAnonymizationKey()), - std::move(receiver)); + mojo::MakeSelfOwnedReceiver( + std::make_unique<WebTransportConnectorImpl>( + GetProcessHost()->GetDeprecatedID(), /*frame=*/nullptr, origin, + GetNetworkAnonymizationKey()), + std::move(receiver)); } void SharedWorkerHost::BindCacheStorage( @@ -551,8 +553,8 @@ GetProcessHost()->GetStoragePartition()); storage_partition_impl->GetBlobUrlRegistry()->AddReceiver( - GetStorageKey(), instance().renderer_origin(), GetProcessHost()->GetID(), - std::move(receiver), + GetStorageKey(), instance().renderer_origin(), + GetProcessHost()->GetDeprecatedID(), std::move(receiver), storage::BlobURLValidityCheckBehavior:: ALLOW_OPAQUE_ORIGIN_STORAGE_KEY_MISMATCH); } @@ -616,7 +618,7 @@ void SharedWorkerHost::CreateCodeCacheHost( mojo::PendingReceiver<blink::mojom::CodeCacheHost> receiver) { // Create a new CodeCacheHostImpl and bind it to the given receiver. - code_cache_host_receivers_.Add(GetProcessHost()->GetID(), + code_cache_host_receivers_.Add(GetProcessHost()->GetDeprecatedID(), GetNetworkIsolationKey(), GetStorageKey(), std::move(receiver)); }
diff --git a/content/browser/worker_host/shared_worker_host_unittest.cc b/content/browser/worker_host/shared_worker_host_unittest.cc index 1d2f814..299d073 100644 --- a/content/browser/worker_host/shared_worker_host_unittest.cc +++ b/content/browser/worker_host/shared_worker_host_unittest.cc
@@ -133,7 +133,7 @@ helper_->context() ->service_worker_client_owner() .CreateServiceWorkerClientForWorker( - mock_render_process_host_->GetID(), + mock_render_process_host_->GetDeprecatedID(), ServiceWorkerClientInfo(host->token()))); host->SetServiceWorkerHandle(std::move(service_worker_handle)); @@ -154,7 +154,7 @@ SharedWorkerHost* host, mojo::PendingRemote<blink::mojom::SharedWorkerClient> client) { GlobalRenderFrameHostId dummy_render_frame_host_id( - mock_render_process_host_->GetID(), 22); + mock_render_process_host_->GetDeprecatedID(), 22); blink::MessagePortDescriptorPair port_pair; MessagePortChannel local_port(port_pair.TakePort0());
diff --git a/content/browser/worker_host/shared_worker_service_impl.cc b/content/browser/worker_host/shared_worker_service_impl.cc index 06c73da..ff68602 100644 --- a/content/browser/worker_host/shared_worker_service_impl.cc +++ b/content/browser/worker_host/shared_worker_service_impl.cc
@@ -79,9 +79,9 @@ void SharedWorkerServiceImpl::EnumerateSharedWorkers(Observer* observer) { for (const auto& host : worker_hosts_) { - observer->OnWorkerCreated(host->token(), host->GetProcessHost()->GetID(), - host->instance().storage_key().origin(), - host->GetDevToolsToken()); + observer->OnWorkerCreated( + host->token(), host->GetProcessHost()->GetDeprecatedID(), + host->instance().storage_key().origin(), host->GetDevToolsToken()); if (host->started()) { observer->OnFinalResponseURLDetermined(host->token(), host->final_response_url()); @@ -409,8 +409,8 @@ << worker_origin << " and " << host->instance().storage_key().origin() << " should be the same."; WorkerScriptFetcher::CreateAndStart( - worker_process_host->GetID(), host->token(), host->instance().url(), - creator, &creator, + worker_process_host->GetDeprecatedID(), host->token(), + host->instance().url(), creator, &creator, host->instance().DoesRequireCrossSiteRequestForCookies() ? net::SiteForCookies() : host->instance().storage_key().ToNetSiteForCookies(),
diff --git a/content/browser/worker_host/shared_worker_service_impl_unittest.cc b/content/browser/worker_host/shared_worker_service_impl_unittest.cc index de6fdb83..731f25d 100644 --- a/content/browser/worker_host/shared_worker_service_impl_unittest.cc +++ b/content/browser/worker_host/shared_worker_service_impl_unittest.cc
@@ -96,7 +96,7 @@ if (*receiver.interface_name() != blink::mojom::SharedWorkerFactory::Name_) return; - test_->BindSharedWorkerFactory(GetID(), receiver.PassPipe()); + test_->BindSharedWorkerFactory(GetDeprecatedID(), receiver.PassPipe()); } const raw_ptr<SharedWorkerServiceImplTest> test_; @@ -233,7 +233,7 @@ CreateWebContents(GURL("http://example.com/")); TestRenderFrameHost* render_frame_host = web_contents->GetPrimaryMainFrame(); MockRenderProcessHost* renderer_host = render_frame_host->GetProcess(); - const int process_id = renderer_host->GetID(); + const int process_id = renderer_host->GetDeprecatedID(); renderer_host->OverrideBinderForTesting( blink::mojom::SharedWorkerFactory::Name_, base::BindRepeating(&SharedWorkerServiceImplTest::BindSharedWorkerFactory, @@ -326,7 +326,7 @@ CreateWebContents(GURL("http://example.com/")); TestRenderFrameHost* render_frame_host = web_contents->GetPrimaryMainFrame(); MockRenderProcessHost* renderer_host = render_frame_host->GetProcess(); - const int process_id = renderer_host->GetID(); + const int process_id = renderer_host->GetDeprecatedID(); renderer_host->OverrideBinderForTesting( blink::mojom::SharedWorkerFactory::Name_, base::BindRepeating(&SharedWorkerServiceImplTest::BindSharedWorkerFactory, @@ -373,7 +373,7 @@ auto [factory_receiver, process_id] = WaitForFactoryReceiver(); // Currently shared worker is created in the same process with the creator's // process by default. - EXPECT_EQ(renderer_host0->GetID(), process_id); + EXPECT_EQ(renderer_host0->GetDeprecatedID(), process_id); MockSharedWorkerFactory factory(std::move(factory_receiver)); base::RunLoop().RunUntilIdle(); @@ -504,7 +504,7 @@ TestRenderFrameHost* render_frame_host0 = web_contents0->GetPrimaryMainFrame(); MockRenderProcessHost* renderer_host0 = render_frame_host0->GetProcess(); - const int process_id0 = renderer_host0->GetID(); + const int process_id0 = renderer_host0->GetDeprecatedID(); renderer_host0->OverrideBinderForTesting( blink::mojom::SharedWorkerFactory::Name_, base::BindRepeating(&SharedWorkerServiceImplTest::BindSharedWorkerFactory, @@ -652,7 +652,7 @@ TestRenderFrameHost* render_frame_host0 = web_contents0->GetPrimaryMainFrame(); MockRenderProcessHost* renderer_host0 = render_frame_host0->GetProcess(); - const int process_id0 = renderer_host0->GetID(); + const int process_id0 = renderer_host0->GetDeprecatedID(); renderer_host0->OverrideBinderForTesting( blink::mojom::SharedWorkerFactory::Name_, base::BindRepeating(&SharedWorkerServiceImplTest::BindSharedWorkerFactory, @@ -664,7 +664,7 @@ TestRenderFrameHost* render_frame_host1 = web_contents1->GetPrimaryMainFrame(); MockRenderProcessHost* renderer_host1 = render_frame_host1->GetProcess(); - const int process_id1 = renderer_host1->GetID(); + const int process_id1 = renderer_host1->GetDeprecatedID(); renderer_host1->OverrideBinderForTesting( blink::mojom::SharedWorkerFactory::Name_, base::BindRepeating(&SharedWorkerServiceImplTest::BindSharedWorkerFactory, @@ -740,7 +740,7 @@ TestRenderFrameHost* render_frame_host0 = web_contents0->GetPrimaryMainFrame(); MockRenderProcessHost* renderer_host0 = render_frame_host0->GetProcess(); - const int process_id0 = renderer_host0->GetID(); + const int process_id0 = renderer_host0->GetDeprecatedID(); renderer_host0->OverrideBinderForTesting( blink::mojom::SharedWorkerFactory::Name_, base::BindRepeating(&SharedWorkerServiceImplTest::BindSharedWorkerFactory, @@ -752,7 +752,7 @@ TestRenderFrameHost* render_frame_host1 = web_contents1->GetPrimaryMainFrame(); MockRenderProcessHost* renderer_host1 = render_frame_host1->GetProcess(); - const int process_id1 = renderer_host1->GetID(); + const int process_id1 = renderer_host1->GetDeprecatedID(); renderer_host1->OverrideBinderForTesting( blink::mojom::SharedWorkerFactory::Name_, base::BindRepeating(&SharedWorkerServiceImplTest::BindSharedWorkerFactory, @@ -901,7 +901,7 @@ TestRenderFrameHost* render_frame_host0 = web_contents0->GetPrimaryMainFrame(); MockRenderProcessHost* renderer_host0 = render_frame_host0->GetProcess(); - const int process_id0 = renderer_host0->GetID(); + const int process_id0 = renderer_host0->GetDeprecatedID(); renderer_host0->OverrideBinderForTesting( blink::mojom::SharedWorkerFactory::Name_, base::BindRepeating(&SharedWorkerServiceImplTest::BindSharedWorkerFactory, @@ -1172,7 +1172,7 @@ TestRenderFrameHost* render_frame_host0 = web_contents0->GetPrimaryMainFrame(); MockRenderProcessHost* renderer_host0 = render_frame_host0->GetProcess(); - const int process_id0 = renderer_host0->GetID(); + const int process_id0 = renderer_host0->GetDeprecatedID(); renderer_host0->OverrideBinderForTesting( blink::mojom::SharedWorkerFactory::Name_, base::BindRepeating(&SharedWorkerServiceImplTest::BindSharedWorkerFactory, @@ -1308,7 +1308,7 @@ CreateWebContents(GURL("http://example.com/")); TestRenderFrameHost* render_frame_host = web_contents->GetPrimaryMainFrame(); MockRenderProcessHost* renderer_host = render_frame_host->GetProcess(); - const int process_id = renderer_host->GetID(); + const int process_id = renderer_host->GetDeprecatedID(); renderer_host->OverrideBinderForTesting( blink::mojom::SharedWorkerFactory::Name_, base::BindRepeating(&SharedWorkerServiceImplTest::BindSharedWorkerFactory,
diff --git a/content/browser/worker_host/worker_script_fetcher.cc b/content/browser/worker_host/worker_script_fetcher.cc index 4bd8ae6..23fc316 100644 --- a/content/browser/worker_host/worker_script_fetcher.cc +++ b/content/browser/worker_host/worker_script_fetcher.cc
@@ -426,7 +426,7 @@ url_loader_network_observer = factory_process->GetStoragePartition() ->CreateURLLoaderNetworkObserverForFrame( - creator_render_frame_host->GetProcess()->GetID(), + creator_render_frame_host->GetProcess()->GetDeprecatedID(), creator_render_frame_host->GetRoutingID()); devtools_observer = NetworkServiceDevToolsObserver::MakeSelfOwned( creator_render_frame_host->GetDevToolsFrameToken().ToString()); @@ -462,8 +462,8 @@ url_loader_factory::FactoryOverrideOption::kAllow), url_loader_factory::ContentClientParams( browser_context, creator_render_frame_host, - factory_process->GetID(), request_initiator, net::IsolationInfo(), - source_id, &bypass_redirect_checks), + factory_process->GetDeprecatedID(), request_initiator, + net::IsolationInfo(), source_id, &bypass_redirect_checks), devtools_instrumentation::WillCreateURLLoaderFactoryParams:: ForWorkerMainScript(devtools_agent_host, devtools_worker_token, ancestor_render_frame_host));
diff --git a/content/browser/xr/service/vr_service_impl.cc b/content/browser/xr/service/vr_service_impl.cc index 7a29abb..6ad848d 100644 --- a/content/browser/xr/service/vr_service_impl.cc +++ b/content/browser/xr/service/vr_service_impl.cc
@@ -728,7 +728,7 @@ } runtime->EnsureInstalled( - render_frame_host_->GetProcess()->GetID(), + render_frame_host_->GetProcess()->GetDeprecatedID(), render_frame_host_->GetRoutingID(), base::BindOnce(&VRServiceImpl::OnInstallResult, weak_ptr_factory_.GetWeakPtr(), std::move(request))); @@ -804,7 +804,7 @@ #endif if (send_renderer_information) { runtime_options->render_process_id = - render_frame_host_->GetProcess()->GetID(); + render_frame_host_->GetProcess()->GetDeprecatedID(); runtime_options->render_frame_id = render_frame_host_->GetRoutingID(); } }
diff --git a/content/child/image_decoder_utils.cc b/content/child/image_decoder_utils.cc index 36d75f9f..6f6110f 100644 --- a/content/child/image_decoder_utils.cc +++ b/content/child/image_decoder_utils.cc
@@ -13,11 +13,9 @@ namespace content { -SkBitmap DecodeImage(const unsigned char* data, - const gfx::Size& desired_image_size, - size_t size) { - WebData buffer(reinterpret_cast<const char*>(data), size); - return WebImage::FromData(buffer, desired_image_size); +SkBitmap DecodeImage(base::span<const unsigned char> data, + const gfx::Size& desired_image_size) { + return WebImage::FromData(WebData(data), desired_image_size); } } // namespace content
diff --git a/content/public/browser/child_process_host.h b/content/public/browser/child_process_host.h index 826c427..029d2b9 100644 --- a/content/public/browser/child_process_host.h +++ b/content/public/browser/child_process_host.h
@@ -50,7 +50,8 @@ ~ChildProcessHost() override; // This is a value never returned as the unique id of any child processes of - // any kind, including the values returned by RenderProcessHost::GetID(). + // any kind, including the values returned by + // RenderProcessHost::GetDeprecatedID(). enum : int { kInvalidUniqueID = kInvalidChildProcessUniqueId }; // Every ChildProcessHost provides a single primordial Mojo message pipe to
diff --git a/content/public/browser/content_browser_client.cc b/content/public/browser/content_browser_client.cc index 2ca4544..66a4ab8 100644 --- a/content/public/browser/content_browser_client.cc +++ b/content/public/browser/content_browser_client.cc
@@ -249,11 +249,7 @@ return network::mojom::IPAddressSpace::kUnknown; } -bool ContentBrowserClient::LogWebUICreated(const GURL& web_ui_url) { - return false; -} - -bool ContentBrowserClient::LogWebUIShown(const GURL& web_ui_url) { +bool ContentBrowserClient::LogWebUIUrl(const GURL& web_ui_url) { return false; }
diff --git a/content/public/browser/content_browser_client.h b/content/public/browser/content_browser_client.h index 800f3314..3345c7a 100644 --- a/content/public/browser/content_browser_client.h +++ b/content/public/browser/content_browser_client.h
@@ -576,16 +576,10 @@ virtual network::mojom::IPAddressSpace DetermineAddressSpaceFromURL( const GURL& url); - // Called when WebUI objects are created. Only internal (e.g. chrome://) URLs - // are logged. Note that a WebUI can be created but never shown, which will - // also be logged by this function. Returns whether the URL was actually - // logged. This is used to collect WebUI usage data. - virtual bool LogWebUICreated(const GURL& web_ui_url); - - // Called when a WebUI completes the first non-empty paint. Only internal - // (e.g. chrome://) URLs are logged. Returns whether the URL was actually - // logged. This is used to collect WebUI usage data. - virtual bool LogWebUIShown(const GURL& web_ui_url); + // Called when WebUI objects are created to get aggregate usage data (i.e. is + // chrome://downloads used more than chrome://bookmarks?). Only internal (e.g. + // chrome://) URLs are logged. Returns whether the URL was actually logged. + virtual bool LogWebUIUrl(const GURL& web_ui_url); // http://crbug.com/829412 // Renderers with WebUI bindings shouldn't make http(s) requests for security
diff --git a/content/public/browser/global_routing_id.h b/content/public/browser/global_routing_id.h index 9f87120..b321fcb 100644 --- a/content/public/browser/global_routing_id.h +++ b/content/public/browser/global_routing_id.h
@@ -34,7 +34,7 @@ : child_id(child_id), route_id(route_id) {} // The unique ID of the child process (this is different from OS's PID / this - // should come from RenderProcessHost::GetID()). + // should come from RenderProcessHost::GetDeprecatedID()). int child_id = kInvalidChildProcessUniqueId; // The route ID. @@ -68,7 +68,7 @@ GlobalRenderFrameHostId& operator=(const GlobalRenderFrameHostId&) = default; // The unique ID of the child process (this is different from OS's PID / this - // should come from RenderProcessHost::GetID()). + // should come from RenderProcessHost::GetDeprecatedID()). int child_id = 0; // The route ID of a RenderFrame - should come from @@ -112,7 +112,7 @@ const base::Pickle& pickle); // The unique ID of the child process (this is different from OS's PID / this - // should come from RenderProcessHost::GetID()). + // should come from RenderProcessHost::GetDeprecatedID()). int child_id = kInvalidChildProcessUniqueId; // The `LocalFrameToken` of blink::WebLocalFrame - should come from
diff --git a/content/public/browser/render_process_host.h b/content/public/browser/render_process_host.h index db1d6a59..ba48933 100644 --- a/content/public/browser/render_process_host.h +++ b/content/public/browser/render_process_host.h
@@ -24,6 +24,7 @@ #include "build/build_config.h" #include "content/common/buildflags.h" #include "content/common/content_export.h" +#include "content/public/browser/child_process_id.h" #include "content/public/browser/web_exposed_isolation_level.h" #include "ipc/ipc_listener.h" #include "ipc/ipc_sender.h" @@ -307,7 +308,11 @@ // plugins, etc. // // This will never return ChildProcessHost::kInvalidUniqueID. - virtual int GetID() const = 0; + virtual ChildProcessId GetID() const = 0; + + // TODO(crbug.com/379869738): Deprecated, please use the ChildProcessId + // version above. + virtual int GetDeprecatedID() const = 0; // Returns a SafeRef to `this`. It should only be used in non-owning cases, // where the caller is not expected to outlive `this`. @@ -783,6 +788,10 @@ // Returns the RenderProcessHost given its ID. Returns nullptr if the ID does // not correspond to a live RenderProcessHost. + static RenderProcessHost* FromID(ChildProcessId render_process_id); + + // TODO(crbug.com/379869738): Deprecated, please use the ChildProcessId + // version above. static RenderProcessHost* FromID(int render_process_id); // Returns the RenderProcessHost given its renderer's service instance ID, @@ -820,7 +829,7 @@ // IOThreadHostImpl::BindHostReceiver() will pass through |callback| first if // non-null. |callback| is only called from the IO thread. using BindHostReceiverInterceptor = - base::RepeatingCallback<void(int render_process_id, + base::RepeatingCallback<void(ChildProcessId render_process_id, mojo::GenericPendingReceiver* receiver)>; static void InterceptBindHostReceiverForTesting( BindHostReceiverInterceptor callback);
diff --git a/content/public/child/image_decoder_utils.h b/content/public/child/image_decoder_utils.h index 739e813..39b81ac 100644 --- a/content/public/child/image_decoder_utils.h +++ b/content/public/child/image_decoder_utils.h
@@ -7,6 +7,7 @@ #include <stddef.h> +#include "base/containers/span.h" #include "content/common/content_export.h" class SkBitmap; @@ -20,9 +21,9 @@ // Helper function to decode the image using the data passed in. // On success returns the decoded image. // On failure returns an empty bitmap. -CONTENT_EXPORT SkBitmap DecodeImage(const unsigned char* data, - const gfx::Size& desired_image_size, - size_t size); +CONTENT_EXPORT SkBitmap DecodeImage(base::span<const uint8_t> data, + const gfx::Size& desired_image_size); + } // namespace content #endif // CONTENT_PUBLIC_CHILD_IMAGE_DECODER_UTILS_H_
diff --git a/content/public/common/content_constants.h b/content/public/common/content_constants.h index a3d2e7fa..905c2da 100644 --- a/content/public/common/content_constants.h +++ b/content/public/common/content_constants.h
@@ -56,7 +56,8 @@ CONTENT_EXPORT std::string GetCorsExemptRequestedWithHeaderName(); // This is a value never returned as the unique id of any child processes of -// any kind, including the values returned by RenderProcessHost::GetID(). +// any kind, including the values returned by +// RenderProcessHost::GetDeprecatedID(). static constexpr int kInvalidChildProcessUniqueId = -1; #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
diff --git a/content/public/test/browser_test_utils.cc b/content/public/test/browser_test_utils.cc index c3ea0caf..5a2ba4f 100644 --- a/content/public/test/browser_test_utils.cc +++ b/content/public/test/browser_test_utils.cc
@@ -2603,7 +2603,7 @@ } void RenderProcessHostBadMojoMessageWaiter::OnBadMojoMessage( - int render_process_id, + ChildProcessId render_process_id, const std::string& error) { if (render_process_id == monitored_render_process_id_) observed_mojo_error_ = error;
diff --git a/content/public/test/browser_test_utils.h b/content/public/test/browser_test_utils.h index 59b83d5..9176822 100644 --- a/content/public/test/browser_test_utils.h +++ b/content/public/test/browser_test_utils.h
@@ -1326,9 +1326,10 @@ [[nodiscard]] std::optional<std::string> Wait(); private: - void OnBadMojoMessage(int render_process_id, const std::string& error); + void OnBadMojoMessage(ChildProcessId render_process_id, + const std::string& error); - int monitored_render_process_id_; + ChildProcessId monitored_render_process_id_; std::optional<std::string> observed_mojo_error_; RenderProcessHostKillWaiter kill_waiter_; };
diff --git a/content/public/test/mock_render_process_host.cc b/content/public/test/mock_render_process_host.cc index bcdfdff..2e1882f 100644 --- a/content/public/test/mock_render_process_host.cc +++ b/content/public/test/mock_render_process_host.cc
@@ -84,18 +84,19 @@ foreground_service_worker_count_(0) { // Child process security operations can't be unit tested unless we add // ourselves as an existing child process. - ChildProcessSecurityPolicyImpl::GetInstance()->Add(GetID(), browser_context); + ChildProcessSecurityPolicyImpl::GetInstance()->Add(GetDeprecatedID(), + browser_context); - RenderProcessHostImpl::RegisterHost(GetID(), this); + RenderProcessHostImpl::RegisterHost(GetDeprecatedID(), this); } MockRenderProcessHost::~MockRenderProcessHost() { - ChildProcessSecurityPolicyImpl::GetInstance()->Remove(GetID()); + ChildProcessSecurityPolicyImpl::GetInstance()->Remove(GetDeprecatedID()); // In unit tests, Cleanup() might not have been called. if (!deletion_callback_called_) { for (auto& observer : observers_) observer.RenderProcessHostDestroyed(this); - RenderProcessHostImpl::UnregisterHost(GetID()); + RenderProcessHostImpl::UnregisterHost(GetDeprecatedID()); } } @@ -276,10 +277,14 @@ return true; } -int MockRenderProcessHost::GetID() const { +ChildProcessId MockRenderProcessHost::GetID() const { return id_; } +int MockRenderProcessHost::GetDeprecatedID() const { + return id_.GetUnsafeValue(); +} + base::SafeRef<RenderProcessHost> MockRenderProcessHost::GetSafeRef() const { return weak_ptr_factory_.GetSafeRef(); } @@ -325,7 +330,7 @@ for (auto& observer : observers_) observer.RenderProcessHostDestroyed(this); - RenderProcessHostImpl::UnregisterHost(GetID()); + RenderProcessHostImpl::UnregisterHost(GetDeprecatedID()); has_connection_ = false; deletion_callback_called_ = true; } @@ -543,13 +548,14 @@ const IsolationContext& isolation_context, const ProcessLock& process_lock) { ChildProcessSecurityPolicyImpl::GetInstance()->LockProcess( - isolation_context, GetID(), !IsUnused(), process_lock); + isolation_context, GetDeprecatedID(), !IsUnused(), process_lock); if (process_lock.IsASiteOrOrigin()) is_renderer_locked_to_site_ = true; } ProcessLock MockRenderProcessHost::GetProcessLock() const { - return ChildProcessSecurityPolicyImpl::GetInstance()->GetProcessLock(GetID()); + return ChildProcessSecurityPolicyImpl::GetInstance()->GetProcessLock( + GetDeprecatedID()); } bool MockRenderProcessHost::IsProcessLockedToSiteForTesting() { @@ -587,7 +593,7 @@ void MockRenderProcessHost::WriteIntoTrace( perfetto::TracedProto<TraceProto> proto) const { - proto->set_id(GetID()); + proto->set_id(GetDeprecatedID()); } #if BUILDFLAG(IS_CHROMEOS_ASH)
diff --git a/content/public/test/mock_render_process_host.h b/content/public/test/mock_render_process_host.h index 0eba819..384f3c1 100644 --- a/content/public/test/mock_render_process_host.h +++ b/content/public/test/mock_render_process_host.h
@@ -117,7 +117,8 @@ bool FastShutdownStarted() override; const base::Process& GetProcess() override; bool IsReady() override; - int GetID() const override; + ChildProcessId GetID() const override; + int GetDeprecatedID() const override; base::SafeRef<RenderProcessHost> GetSafeRef() const override; bool IsInitializedAndNotDead() override; bool IsDeletingSoon() override; @@ -323,7 +324,7 @@ // Stores IPC messages that would have been sent to the renderer. IPC::TestSink sink_; int bad_msg_count_; - int id_; + ChildProcessId id_; bool has_connection_; raw_ptr<BrowserContext, DanglingUntriaged> browser_context_; base::ObserverList<RenderProcessHostObserver> observers_;
diff --git a/content/public/test/no_renderer_crashes_assertion.cc b/content/public/test/no_renderer_crashes_assertion.cc index f29b9a8..989d478 100644 --- a/content/public/test/no_renderer_crashes_assertion.cc +++ b/content/public/test/no_renderer_crashes_assertion.cc
@@ -76,7 +76,7 @@ RenderProcessHost* host, const ChildProcessTerminationInfo& info) { if (NoRendererCrashesAssertion::Suspensions::GetInstance().IsSuspended( - host->GetID())) { + host->GetDeprecatedID())) { return; } @@ -115,7 +115,7 @@ ScopedAllowRendererCrashes::ScopedAllowRendererCrashes( RenderProcessHost* process) - : process_id_(process ? process->GetID() + : process_id_(process ? process->GetDeprecatedID() : ChildProcessHost::kInvalidUniqueID) { NoRendererCrashesAssertion::Suspensions::GetInstance().AddSuspension( process_id_);
diff --git a/content/renderer/pepper/url_request_info_util.cc b/content/renderer/pepper/url_request_info_util.cc index 4c657451..f4df4d0 100644 --- a/content/renderer/pepper/url_request_info_util.cc +++ b/content/renderer/pepper/url_request_info_util.cc
@@ -8,6 +8,7 @@ #include <stdint.h> #include "base/check.h" +#include "base/containers/span.h" #include "base/notreached.h" #include "base/strings/string_util.h" #include "base/time/time.h" @@ -233,7 +234,7 @@ return false; } else { DCHECK(!item.data.empty()); - http_body.AppendData(WebData(item.data)); + http_body.AppendData(WebData(base::as_byte_span(item.data))); } } dest->SetHttpBody(http_body);
diff --git a/content/renderer/render_frame_impl.cc b/content/renderer/render_frame_impl.cc index 5c4be62..71b4b93 100644 --- a/content/renderer/render_frame_impl.cc +++ b/content/renderer/render_frame_impl.cc
@@ -1434,7 +1434,7 @@ // blink::WebNavigationBodyLoader::Client overrides: void BodyDataReceived(base::span<const char> data) override { - data_.Append(data.data(), data.size()); + data_.Append(base::as_bytes(data)); } void BodyLoadingFinished(base::TimeTicks completion_time,
diff --git a/content/renderer/render_view_browsertest.cc b/content/renderer/render_view_browsertest.cc index 365a358..3e3a0bf 100644 --- a/content/renderer/render_view_browsertest.cc +++ b/content/renderer/render_view_browsertest.cc
@@ -13,6 +13,7 @@ #include "base/command_line.h" #include "base/containers/heap_array.h" +#include "base/containers/span.h" #include "base/functional/bind.h" #include "base/functional/callback.h" #include "base/functional/callback_helpers.h" @@ -818,7 +819,7 @@ blink::mojom::RequestContextType::INTERNAL); blink::WebHTTPBody post_body; post_body.Initialize(); - post_body.AppendData("blah"); + post_body.AppendData(blink::WebData(base::byte_span_from_cstring("blah"))); form_navigation_info->url_request.SetHttpBody(post_body); form_navigation_info->url_request.SetRequestorOrigin(requestor_origin); form_navigation_info->frame_type = @@ -938,7 +939,7 @@ data_navigation_info->url_request.SetHttpMethod("POST"); blink::WebHTTPBody post_body; post_body.Initialize(); - post_body.AppendData("blah"); + post_body.AppendData(blink::WebData(base::byte_span_from_cstring("blah"))); data_navigation_info->url_request.SetHttpBody(post_body); data_navigation_info->frame_type = blink::mojom::RequestContextFrameType::kTopLevel;
diff --git a/content/test/BUILD.gn b/content/test/BUILD.gn index 817e8ec..e170421 100644 --- a/content/test/BUILD.gn +++ b/content/test/BUILD.gn
@@ -2877,6 +2877,7 @@ "../browser/webid/federated_provider_fetcher_unittest.cc", "../browser/webid/identity_registry_unittest.cc", "../browser/webid/idp_network_request_manager_unittest.cc", + "../browser/webid/sd_jwt_unittest.cc", "../browser/webid/test/delegated_idp_network_request_manager.cc", "../browser/webid/test/delegated_idp_network_request_manager.h", "../browser/webid/test/federated_auth_request_request_token_callback_helper.cc",
diff --git a/content/test/content_browser_test_utils_internal.cc b/content/test/content_browser_test_utils_internal.cc index 64c7768..96e253c4 100644 --- a/content/test/content_browser_test_utils_internal.cc +++ b/content/test/content_browser_test_utils_internal.cc
@@ -778,7 +778,7 @@ void ShowPopupWidgetWaiter::DidCreatePopupWidget( RenderWidgetHostImpl* render_widget_host) { - process_id_ = render_widget_host->GetProcess()->GetID(); + process_id_ = render_widget_host->GetProcess()->GetDeprecatedID(); routing_id_ = render_widget_host->GetRoutingID(); // Swapped back in destructor from process_id_ and routing_id_ lookup. std::ignore = render_widget_host->popup_widget_host_receiver_for_testing()
diff --git a/content/test/content_test_bundle_data.filelist b/content/test/content_test_bundle_data.filelist index 155a7c4..4d52521 100644 --- a/content/test/content_test_bundle_data.filelist +++ b/content/test/content_test_bundle_data.filelist
@@ -174,6 +174,8 @@ data/accessibility/accname/name-file-spinbutton-valuenow-in-label.html data/accessibility/accname/name-file-title-expected-blink.txt data/accessibility/accname/name-file-title.html +data/accessibility/accname/name-from-content-dfn-expected-blink.txt +data/accessibility/accname/name-from-content-dfn.html data/accessibility/accname/name-from-content-expected-blink.txt data/accessibility/accname/name-from-content-of-label-expected-blink.txt data/accessibility/accname/name-from-content-of-label.html @@ -181,6 +183,8 @@ data/accessibility/accname/name-from-content-of-labelledby-element.html data/accessibility/accname/name-from-content-of-labelledby-elements-one-of-which-is-hidden-expected-blink.txt data/accessibility/accname/name-from-content-of-labelledby-elements-one-of-which-is-hidden.html +data/accessibility/accname/name-from-content-term-role-expected-blink.txt +data/accessibility/accname/name-from-content-term-role.html data/accessibility/accname/name-from-content-whitespace-block-children-collapses-extra-whitespace-expected-blink.txt data/accessibility/accname/name-from-content-whitespace-block-children-collapses-extra-whitespace.html data/accessibility/accname/name-from-content-whitespace-block-children-expected-blink.txt
diff --git a/content/test/data/accessibility/accname/name-from-content-dfn-expected-blink.txt b/content/test/data/accessibility/accname/name-from-content-dfn-expected-blink.txt new file mode 100644 index 0000000..c8cd58f7 --- /dev/null +++ b/content/test/data/accessibility/accname/name-from-content-dfn-expected-blink.txt
@@ -0,0 +1 @@ +checkBox name='This is an example' nameFrom=relatedElement \ No newline at end of file
diff --git a/content/test/data/accessibility/accname/name-from-content-dfn.html b/content/test/data/accessibility/accname/name-from-content-dfn.html new file mode 100644 index 0000000..b28751a --- /dev/null +++ b/content/test/data/accessibility/accname/name-from-content-dfn.html
@@ -0,0 +1,16 @@ +<!doctype html> +<html> +<body> +<h2>Checkbox and implicit term role</h2> +<!-- + The input type=checkbox will get its name from the associated label and the + label will get its name from the name from contents computation. Since the + name of labelText is not shown in the expectation files, we test the name of + the input instead. +--> +<label> + <input id="test" type="checkbox"> + <span>This is an <dfn>example</dfn></span> +</label> +</body> +</html>
diff --git a/content/test/data/accessibility/accname/name-from-content-term-role-expected-blink.txt b/content/test/data/accessibility/accname/name-from-content-term-role-expected-blink.txt new file mode 100644 index 0000000..108783b9 --- /dev/null +++ b/content/test/data/accessibility/accname/name-from-content-term-role-expected-blink.txt
@@ -0,0 +1 @@ +heading name='This is an example' nameFrom=contents
diff --git a/content/test/data/accessibility/accname/name-from-content-term-role.html b/content/test/data/accessibility/accname/name-from-content-term-role.html new file mode 100644 index 0000000..1293475 --- /dev/null +++ b/content/test/data/accessibility/accname/name-from-content-term-role.html
@@ -0,0 +1,7 @@ +<!doctype html> +<html> +<body> +<h2>Heading containing explicit term role</h2> +<h3 id="test">This is an <span role="term">example</span></h3> +</body> +</html>
diff --git a/content/test/data/accessibility/aria/aria-term-expected-auralinux.txt b/content/test/data/accessibility/aria/aria-term-expected-auralinux.txt index 80af6fd22..3c243ec 100644 --- a/content/test/data/accessibility/aria/aria-term-expected-auralinux.txt +++ b/content/test/data/accessibility/aria/aria-term-expected-auralinux.txt
@@ -1,10 +1,10 @@ [document web] ++[list] xml-roles:list -++++[description term] xml-roles:term +++++[description term] name='Term1' xml-roles:term ++++++[static] name='Term1' ++++[description value] xml-roles:definition ++++++[static] name='Definition1' -++++[description term] xml-roles:term +++++[description term] name='Term2' xml-roles:term ++++++[static] name='Term2' ++++[description value] xml-roles:definition ++++++[static] name='Definition2'
diff --git a/content/test/data/accessibility/aria/aria-term-expected-blink.txt b/content/test/data/accessibility/aria/aria-term-expected-blink.txt index fe42249..77795363 100644 --- a/content/test/data/accessibility/aria/aria-term-expected-blink.txt +++ b/content/test/data/accessibility/aria/aria-term-expected-blink.txt
@@ -2,13 +2,13 @@ ++genericContainer ignored ++++genericContainer ignored ++++++list -++++++++term +++++++++term name='Term1' ++++++++++staticText name='Term1' ++++++++++++inlineTextBox name='Term1' ++++++++definition ++++++++++staticText name='Definition1' ++++++++++++inlineTextBox name='Definition1' -++++++++term +++++++++term name='Term2' ++++++++++staticText name='Term2' ++++++++++++inlineTextBox name='Term2' ++++++++definition
diff --git a/content/test/data/accessibility/aria/aria-term-expected-win.txt b/content/test/data/accessibility/aria/aria-term-expected-win.txt index 2adbb28..c05b0f6 100644 --- a/content/test/data/accessibility/aria/aria-term-expected-win.txt +++ b/content/test/data/accessibility/aria/aria-term-expected-win.txt
@@ -1,10 +1,10 @@ ROLE_SYSTEM_DOCUMENT READONLY FOCUSABLE ++ROLE_SYSTEM_LIST READONLY xml-roles:list -++++IA2_ROLE_TEXT_FRAME READONLY xml-roles:term +++++IA2_ROLE_TEXT_FRAME name='Term1' READONLY xml-roles:term ++++++ROLE_SYSTEM_STATICTEXT name='Term1' ++++ROLE_SYSTEM_GROUPING READONLY xml-roles:definition ++++++ROLE_SYSTEM_STATICTEXT name='Definition1' -++++IA2_ROLE_TEXT_FRAME READONLY xml-roles:term +++++IA2_ROLE_TEXT_FRAME name='Term2' READONLY xml-roles:term ++++++ROLE_SYSTEM_STATICTEXT name='Term2' ++++ROLE_SYSTEM_GROUPING READONLY xml-roles:definition ++++++ROLE_SYSTEM_STATICTEXT name='Definition2'
diff --git a/content/test/data/accessibility/html/dd-expected-auralinux.txt b/content/test/data/accessibility/html/dd-expected-auralinux.txt index 46e222c..85930b6 100644 --- a/content/test/data/accessibility/html/dd-expected-auralinux.txt +++ b/content/test/data/accessibility/html/dd-expected-auralinux.txt
@@ -1,6 +1,6 @@ [document web] ++[description list] -++++[description term] +++++[description term] name='Coffee' ++++++[static] name='Coffee' ++++[description value] ++++++[static] name='Black hot drink'
diff --git a/content/test/data/accessibility/html/dd-expected-blink.txt b/content/test/data/accessibility/html/dd-expected-blink.txt index 1d47cf3..1ea8722f 100644 --- a/content/test/data/accessibility/html/dd-expected-blink.txt +++ b/content/test/data/accessibility/html/dd-expected-blink.txt
@@ -2,9 +2,9 @@ ++genericContainer ignored ++++genericContainer ignored ++++++descriptionList -++++++++term +++++++++term name='Coffee' ++++++++++staticText name='Coffee' ++++++++++++inlineTextBox name='Coffee' ++++++++definition ++++++++++staticText name='Black hot drink' -++++++++++++inlineTextBox name='Black hot drink' \ No newline at end of file +++++++++++++inlineTextBox name='Black hot drink'
diff --git a/content/test/data/accessibility/html/dd-expected-fuchsia.txt b/content/test/data/accessibility/html/dd-expected-fuchsia.txt index e757d45..05c4d4f 100644 --- a/content/test/data/accessibility/html/dd-expected-fuchsia.txt +++ b/content/test/data/accessibility/html/dd-expected-fuchsia.txt
@@ -2,7 +2,7 @@ ++UNKNOWN hidden ++++UNKNOWN hidden ++++++UNKNOWN -++++++++UNKNOWN +++++++++UNKNOWN label='Coffee' ++++++++++STATIC_TEXT label='Coffee' ++++++++++++UNKNOWN label='Coffee' ++++++++UNKNOWN
diff --git a/content/test/data/accessibility/html/dd-expected-mac.txt b/content/test/data/accessibility/html/dd-expected-mac.txt index 0bd1b5676..f5a370f 100644 --- a/content/test/data/accessibility/html/dd-expected-mac.txt +++ b/content/test/data/accessibility/html/dd-expected-mac.txt
@@ -1,6 +1,6 @@ AXWebArea AXRoleDescription='HTML content' ++AXList AXSubrole=AXDefinitionList AXRoleDescription='definition list' -++++AXGroup AXSubrole=AXTerm AXRoleDescription='term' +++++AXGroup AXSubrole=AXTerm AXRoleDescription='term' AXTitle='Coffee' ++++++AXStaticText AXRoleDescription='text' AXValue='Coffee' ++++AXGroup AXSubrole=AXDefinition AXRoleDescription='definition' ++++++AXStaticText AXRoleDescription='text' AXValue='Black hot drink'
diff --git a/content/test/data/accessibility/html/dd-expected-uia-win.txt b/content/test/data/accessibility/html/dd-expected-uia-win.txt index 43fbd1c..a46bc6af 100644 --- a/content/test/data/accessibility/html/dd-expected-uia-win.txt +++ b/content/test/data/accessibility/html/dd-expected-uia-win.txt
@@ -1,6 +1,6 @@ Document ++List -++++ListItem IsControlElement=false +++++ListItem Name='Coffee' ++++++Text Name='Coffee' ++++Group IsControlElement=false ++++++Text Name='Black hot drink'
diff --git a/content/test/data/accessibility/html/dd-expected-win.txt b/content/test/data/accessibility/html/dd-expected-win.txt index d8e5f89..db1b879d 100644 --- a/content/test/data/accessibility/html/dd-expected-win.txt +++ b/content/test/data/accessibility/html/dd-expected-win.txt
@@ -1,6 +1,6 @@ ROLE_SYSTEM_DOCUMENT READONLY FOCUSABLE ++ROLE_SYSTEM_LIST READONLY -++++IA2_ROLE_TEXT_FRAME READONLY +++++IA2_ROLE_TEXT_FRAME name='Coffee' READONLY ++++++ROLE_SYSTEM_STATICTEXT name='Coffee' ++++ROLE_SYSTEM_GROUPING READONLY ++++++ROLE_SYSTEM_STATICTEXT name='Black hot drink'
diff --git a/content/test/data/accessibility/html/dfn-expected-auralinux.txt b/content/test/data/accessibility/html/dfn-expected-auralinux.txt index 056e9c8..adffd1a 100644 --- a/content/test/data/accessibility/html/dfn-expected-auralinux.txt +++ b/content/test/data/accessibility/html/dfn-expected-auralinux.txt
@@ -1,5 +1,5 @@ [document web] tag:#document ++[section] tag:body -++++[description term] tag:dfn +++++[description term] name='Web Browser' tag:dfn ++++++[static] name='Web Browser' ++++[static] name=' A computer program with a graphical user interface for displaying HTML files, used to navigate the World Wide Web.'
diff --git a/content/test/data/accessibility/html/dfn-expected-blink.txt b/content/test/data/accessibility/html/dfn-expected-blink.txt index eb24fb3..75fca7bb 100644 --- a/content/test/data/accessibility/html/dfn-expected-blink.txt +++ b/content/test/data/accessibility/html/dfn-expected-blink.txt
@@ -1,6 +1,6 @@ rootWebArea ++genericContainer ignored ++++genericContainer -++++++term +++++++term name='Web Browser' ++++++++staticText name='Web Browser' ++++++staticText name=' A computer program with a graphical user interface for displaying HTML files, used to navigate the World Wide Web.'
diff --git a/content/test/data/accessibility/html/dfn-expected-fuchsia.txt b/content/test/data/accessibility/html/dfn-expected-fuchsia.txt index 8bca9c5..c59357e 100644 --- a/content/test/data/accessibility/html/dfn-expected-fuchsia.txt +++ b/content/test/data/accessibility/html/dfn-expected-fuchsia.txt
@@ -1,7 +1,7 @@ UNKNOWN focusable has_input_focus ++UNKNOWN hidden ++++UNKNOWN -++++++UNKNOWN +++++++UNKNOWN label='Web Browser' ++++++++STATIC_TEXT label='Web Browser' ++++++++++UNKNOWN label='Web Browser' ++++++STATIC_TEXT label=' A computer program with a graphical user interface for displaying HTML files, used to navigate the World Wide Web.'
diff --git a/content/test/data/accessibility/html/dfn-expected-mac.txt b/content/test/data/accessibility/html/dfn-expected-mac.txt index bfbd70ef..7cc25ab0 100644 --- a/content/test/data/accessibility/html/dfn-expected-mac.txt +++ b/content/test/data/accessibility/html/dfn-expected-mac.txt
@@ -1,5 +1,5 @@ AXWebArea ++AXGroup -++++AXGroup AXSubrole=AXTerm +++++AXGroup AXSubrole=AXTerm AXTitle='Web Browser' ++++++AXStaticText AXValue='Web Browser' ++++AXStaticText AXValue=' A computer program with a graphical user interface for displaying HTML files, used to navigate the World Wide Web.'
diff --git a/content/test/data/accessibility/html/dfn-expected-uia-win.txt b/content/test/data/accessibility/html/dfn-expected-uia-win.txt index f4cc46b..9a58b262 100644 --- a/content/test/data/accessibility/html/dfn-expected-uia-win.txt +++ b/content/test/data/accessibility/html/dfn-expected-uia-win.txt
@@ -1,5 +1,5 @@ Document ++Group IsControlElement=false -++++ListItem IsControlElement=false +++++ListItem Name='Web Browser' ++++++Text Name='Web Browser' ++++Text Name=' A computer program with a graphical user interface for displaying HTML files, used to navigate the World Wide Web.'
diff --git a/content/test/data/accessibility/html/dfn-expected-win.txt b/content/test/data/accessibility/html/dfn-expected-win.txt index 33048a2..aee7407 100644 --- a/content/test/data/accessibility/html/dfn-expected-win.txt +++ b/content/test/data/accessibility/html/dfn-expected-win.txt
@@ -1,5 +1,5 @@ ROLE_SYSTEM_DOCUMENT READONLY FOCUSABLE ++IA2_ROLE_SECTION -++++IA2_ROLE_TEXT_FRAME READONLY +++++IA2_ROLE_TEXT_FRAME name='Web Browser' READONLY ++++++ROLE_SYSTEM_STATICTEXT name='Web Browser' ++++ROLE_SYSTEM_STATICTEXT name=' A computer program with a graphical user interface for displaying HTML files, used to navigate the World Wide Web.'
diff --git a/content/test/data/accessibility/html/dl-expected-auralinux.txt b/content/test/data/accessibility/html/dl-expected-auralinux.txt index a0f70e4..86b6509 100644 --- a/content/test/data/accessibility/html/dl-expected-auralinux.txt +++ b/content/test/data/accessibility/html/dl-expected-auralinux.txt
@@ -1,6 +1,6 @@ [document web] ++[description list] -++++[description term] +++++[description term] name='Term' ++++++[static] name='Term' ++++[description value] ++++++[static] name='Description'
diff --git a/content/test/data/accessibility/html/dl-expected-blink.txt b/content/test/data/accessibility/html/dl-expected-blink.txt index b1c7152..7a484e3 100644 --- a/content/test/data/accessibility/html/dl-expected-blink.txt +++ b/content/test/data/accessibility/html/dl-expected-blink.txt
@@ -2,7 +2,7 @@ ++genericContainer ignored ++++genericContainer ignored ++++++descriptionList -++++++++term +++++++++term name='Term' ++++++++++staticText name='Term' ++++++++++++inlineTextBox name='Term' ++++++++definition @@ -10,4 +10,4 @@ ++++++++++++inlineTextBox name='Description' ++++++definition ++++++++staticText name='Definition' -++++++++++inlineTextBox name='Definition' \ No newline at end of file +++++++++++inlineTextBox name='Definition'
diff --git a/content/test/data/accessibility/html/dl-expected-fuchsia.txt b/content/test/data/accessibility/html/dl-expected-fuchsia.txt index bb3aa777..4e6b000 100644 --- a/content/test/data/accessibility/html/dl-expected-fuchsia.txt +++ b/content/test/data/accessibility/html/dl-expected-fuchsia.txt
@@ -2,7 +2,7 @@ ++UNKNOWN hidden ++++UNKNOWN hidden ++++++UNKNOWN -++++++++UNKNOWN +++++++++UNKNOWN label='Term' ++++++++++STATIC_TEXT label='Term' ++++++++++++UNKNOWN label='Term' ++++++++UNKNOWN
diff --git a/content/test/data/accessibility/html/dl-expected-mac.txt b/content/test/data/accessibility/html/dl-expected-mac.txt index b394885..33d3862e 100644 --- a/content/test/data/accessibility/html/dl-expected-mac.txt +++ b/content/test/data/accessibility/html/dl-expected-mac.txt
@@ -1,6 +1,6 @@ AXWebArea AXRoleDescription='HTML content' ++AXList AXSubrole=AXDefinitionList AXRoleDescription='definition list' -++++AXGroup AXSubrole=AXTerm AXRoleDescription='term' +++++AXGroup AXSubrole=AXTerm AXRoleDescription='term' AXTitle='Term' ++++++AXStaticText AXRoleDescription='text' AXValue='Term' ++++AXGroup AXSubrole=AXDefinition AXRoleDescription='definition' ++++++AXStaticText AXRoleDescription='text' AXValue='Description'
diff --git a/content/test/data/accessibility/html/dl-expected-uia-win.txt b/content/test/data/accessibility/html/dl-expected-uia-win.txt index f2909a01..d70cb831 100644 --- a/content/test/data/accessibility/html/dl-expected-uia-win.txt +++ b/content/test/data/accessibility/html/dl-expected-uia-win.txt
@@ -1,6 +1,6 @@ Document ++List -++++ListItem IsControlElement=false +++++ListItem Name='Term' ++++++Text Name='Term' ++++Group IsControlElement=false ++++++Text Name='Description'
diff --git a/content/test/data/accessibility/html/dl-expected-win.txt b/content/test/data/accessibility/html/dl-expected-win.txt index 1d4908d..6a2a5f4 100644 --- a/content/test/data/accessibility/html/dl-expected-win.txt +++ b/content/test/data/accessibility/html/dl-expected-win.txt
@@ -1,6 +1,6 @@ ROLE_SYSTEM_DOCUMENT READONLY FOCUSABLE ++ROLE_SYSTEM_LIST READONLY -++++IA2_ROLE_TEXT_FRAME READONLY +++++IA2_ROLE_TEXT_FRAME name='Term' READONLY ++++++ROLE_SYSTEM_STATICTEXT name='Term' ++++ROLE_SYSTEM_GROUPING READONLY ++++++ROLE_SYSTEM_STATICTEXT name='Description'
diff --git a/content/test/data/accessibility/html/dt-expected-auralinux.txt b/content/test/data/accessibility/html/dt-expected-auralinux.txt index 46e222c..85930b6 100644 --- a/content/test/data/accessibility/html/dt-expected-auralinux.txt +++ b/content/test/data/accessibility/html/dt-expected-auralinux.txt
@@ -1,6 +1,6 @@ [document web] ++[description list] -++++[description term] +++++[description term] name='Coffee' ++++++[static] name='Coffee' ++++[description value] ++++++[static] name='Black hot drink'
diff --git a/content/test/data/accessibility/html/dt-expected-blink.txt b/content/test/data/accessibility/html/dt-expected-blink.txt index 1d47cf3..1ea8722f 100644 --- a/content/test/data/accessibility/html/dt-expected-blink.txt +++ b/content/test/data/accessibility/html/dt-expected-blink.txt
@@ -2,9 +2,9 @@ ++genericContainer ignored ++++genericContainer ignored ++++++descriptionList -++++++++term +++++++++term name='Coffee' ++++++++++staticText name='Coffee' ++++++++++++inlineTextBox name='Coffee' ++++++++definition ++++++++++staticText name='Black hot drink' -++++++++++++inlineTextBox name='Black hot drink' \ No newline at end of file +++++++++++++inlineTextBox name='Black hot drink'
diff --git a/content/test/data/accessibility/html/dt-expected-fuchsia.txt b/content/test/data/accessibility/html/dt-expected-fuchsia.txt index e757d45..05c4d4f 100644 --- a/content/test/data/accessibility/html/dt-expected-fuchsia.txt +++ b/content/test/data/accessibility/html/dt-expected-fuchsia.txt
@@ -2,7 +2,7 @@ ++UNKNOWN hidden ++++UNKNOWN hidden ++++++UNKNOWN -++++++++UNKNOWN +++++++++UNKNOWN label='Coffee' ++++++++++STATIC_TEXT label='Coffee' ++++++++++++UNKNOWN label='Coffee' ++++++++UNKNOWN
diff --git a/content/test/data/accessibility/html/dt-expected-mac.txt b/content/test/data/accessibility/html/dt-expected-mac.txt index 0bd1b5676..f5a370f 100644 --- a/content/test/data/accessibility/html/dt-expected-mac.txt +++ b/content/test/data/accessibility/html/dt-expected-mac.txt
@@ -1,6 +1,6 @@ AXWebArea AXRoleDescription='HTML content' ++AXList AXSubrole=AXDefinitionList AXRoleDescription='definition list' -++++AXGroup AXSubrole=AXTerm AXRoleDescription='term' +++++AXGroup AXSubrole=AXTerm AXRoleDescription='term' AXTitle='Coffee' ++++++AXStaticText AXRoleDescription='text' AXValue='Coffee' ++++AXGroup AXSubrole=AXDefinition AXRoleDescription='definition' ++++++AXStaticText AXRoleDescription='text' AXValue='Black hot drink'
diff --git a/content/test/data/accessibility/html/dt-expected-uia-win.txt b/content/test/data/accessibility/html/dt-expected-uia-win.txt index 43fbd1c..a46bc6af 100644 --- a/content/test/data/accessibility/html/dt-expected-uia-win.txt +++ b/content/test/data/accessibility/html/dt-expected-uia-win.txt
@@ -1,6 +1,6 @@ Document ++List -++++ListItem IsControlElement=false +++++ListItem Name='Coffee' ++++++Text Name='Coffee' ++++Group IsControlElement=false ++++++Text Name='Black hot drink'
diff --git a/content/test/data/accessibility/html/dt-expected-win.txt b/content/test/data/accessibility/html/dt-expected-win.txt index d8e5f89..db1b879d 100644 --- a/content/test/data/accessibility/html/dt-expected-win.txt +++ b/content/test/data/accessibility/html/dt-expected-win.txt
@@ -1,6 +1,6 @@ ROLE_SYSTEM_DOCUMENT READONLY FOCUSABLE ++ROLE_SYSTEM_LIST READONLY -++++IA2_ROLE_TEXT_FRAME READONLY +++++IA2_ROLE_TEXT_FRAME name='Coffee' READONLY ++++++ROLE_SYSTEM_STATICTEXT name='Coffee' ++++ROLE_SYSTEM_GROUPING READONLY ++++++ROLE_SYSTEM_STATICTEXT name='Black hot drink'
diff --git a/content/test/data/media/peerconnection-call-audio.html b/content/test/data/media/peerconnection-call-audio.html index b566951f..96dc4dff 100644 --- a/content/test/data/media/peerconnection-call-audio.html +++ b/content/test/data/media/peerconnection-call-audio.html
@@ -45,69 +45,87 @@ } function callAndEnsureRemoteAudioTrackMutingWorks(constraints) { - return setupCallAndPromiseAudioPlaying(constraints).then(() => { + return setupCallAndPromiseAudioPlaying(constraints).then(async () => { // Call is up, now mute the remote track and check we stop playing out // audio (after a small delay, we don't expect it to happen instantly). enableRemoteAudio(false); - return new Promise(resolve => { - setTimeout(resolve, 250); - }).then(() => { - // Ensure that ensureSilence result is returned. - return ensureSilence(remoteAudioTrack); - }); - }).then(logSuccess()); + // Ensure that ensureAudioSilence result is returned. + await ensureAudioSilence(remoteAudioTrack); + }).then(logSuccess); } function callAndEnsureLocalAudioTrackMutingWorks(constraints) { - return setupCallAndPromiseAudioPlaying(constraints).then(() => { + return setupCallAndPromiseAudioPlaying(constraints).then(async () => { // Call is up, now mute the local track of the sending side and ensure // the receiving side stops receiving audio. enableLocalAudio(false); - return new Promise(resolve => { - setTimeout(resolve, 250); - }) - .then(() => { - return ensureSilence(remoteAudioTrack) - }); - }) - .then(logSuccess); + await ensureAudioSilence(remoteAudioTrack); + }).then(logSuccess); } function callAndEnsureAudioTrackUnmutingWorks(constraints) { - return setupCallAndPromiseAudioPlaying(constraints).then(() => { + return setupCallAndPromiseAudioPlaying(constraints).then(async () => { // Mute, wait a while, unmute, verify audio gets back up. // (Also, ensure video muting doesn't affect audio). enableRemoteAudio(false); enableRemoteVideo(false); - setTimeout(function() { + await new Promise(resolve => setTimeout(function() { enableRemoteAudio(true); - }, 500); + resolve(); + }, 500)); - return new Promise(resolve => { - setTimeout(resolve, 1500); - }) - .then(() => ensureAudioPlaying(remoteAudioTrack)); - }) - .then(logSuccess); + await ensureAudioPlaying(remoteAudioTrack); + }).then(logSuccess); } function callAndEnsureLocalVideoMutingDoesntMuteAudio(constraints) { - return setupCallAndPromiseAudioPlaying(constraints).then(() => { + return setupCallAndPromiseAudioPlaying(constraints).then(async () => { enableLocalVideo(false); - return ensureAudioPlaying(remoteAudioTrack) - .then(logSuccess); - }); + await ensureAudioPlaying(remoteAudioTrack); + }).then(logSuccess); } function callAndEnsureRemoteVideoMutingDoesntMuteAudio(constraints) { - return setupCallAndPromiseAudioPlaying(constraints).then(() => { + return setupCallAndPromiseAudioPlaying(constraints).then(async () => { enableRemoteVideo(false); - return ensureAudioPlaying(remoteAudioTrack) - .then(logSuccess); - }); + await ensureAudioPlaying(remoteAudioTrack); + }).then(logSuccess); + } + + function callAndEnsureRemoteClonedAudioTrackStopNotStopOriginalTrack(constraints) { + return setupCallAndPromiseAudioPlaying(constraints).then(async () => { + // Call is up, it clone the media audio track and stop the cloned track, + // which should not affect the the original track. + const clonedAudioTrack = remoteAudioTrack.clone(); + + // Stop the cloned audio track. + clonedAudioTrack.stop(); + console.log('Cloned audio track should be silence'); + await ensureAudioSilence(clonedAudioTrack); + + console.log('Remote audio track should be playing'); + await ensureAudioPlaying(remoteAudioTrack); + }).then(logSuccess); + } + + function callAndEnsureRemoteAudioTrackDisableNotDisableClonedTrack(constraints) { + return setupCallAndPromiseAudioPlaying(constraints).then(async () => { + // Call is up, it clone the media audio track and stop the original,, + // which should not affect the cloned track. + const clonedAudioTrack = remoteAudioTrack.clone(); + + // Disable the original audio track. + enableRemoteAudio(false) + + console.log('Remote audio track should be silence'); + await ensureAudioSilence(remoteAudioTrack); + + console.log('Cloned audio track should be playing'); + await ensureAudioPlaying(clonedAudioTrack); + }).then(logSuccess); } // TODO(crbug.com/40637961): This test is a temporary replacement for:
diff --git a/content/test/data/media/webrtc_test_audio.js b/content/test/data/media/webrtc_test_audio.js index b7801dfd..d8e2d569 100644 --- a/content/test/data/media/webrtc_test_audio.js +++ b/content/test/data/media/webrtc_test_audio.js
@@ -16,7 +16,7 @@ // Uses WebAudio's analyser of the on peerConnection's media stream to find // out whether audio is muted on the connection. -async function ensureSilence(audioTrack) { +async function ensureAudioSilence(audioTrack) { const result = await ensureSilenceOrPlayingForAudioTrack( audioTrack, /*checkPlaying*/ false); assertTrue(result); @@ -45,8 +45,6 @@ console.log('checkPlaying: ' + checkPlaying); - assertEquals(audioTrack.readyState, 'live'); - // Configure the analyser analyser.fftSize = 512; const dataArray = new Uint8Array(analyser.frequencyBinCount); @@ -55,9 +53,8 @@ mediaStreamSource.connect(analyser); return new Promise((resolve) => { + let detectionCount = 0; let attempts = 0; - let silentCount = 0; - const checkSilence = () => { analyser.getByteFrequencyData(dataArray); @@ -66,22 +63,28 @@ const average = sum / dataArray.length; const decibels = 20 * Math.log10(average / 255); - if (decibels < threshold) { - silentCount++; + if (checkPlaying && decibels > threshold) { + detectionCount++; + } else if (!checkPlaying && decibels < threshold) { + detectionCount++; } + if (detectionCount == 1) { + attempts = 0; + } attempts++; console.log( - 'decibels: ' + decibels + ' silentCount: ' + silentCount, - 'attempts: ' + attempts); + 'decibels: ' + decibels + ' detectionCount: ' + detectionCount); - if (silentCount === maxAttempts) { - console.log('Silence detected consistently.'); - close(!checkPlaying); - } else if (attempts >= maxAttempts) { - console.log('Playing detected consistently.'); - close(checkPlaying); + if (detectionCount === maxAttempts) { + // Once silence or playing is detected, it keeps the state. + assertEquals(attempts, maxAttempts); + + console.log( + checkPlaying ? 'Playing detected consistently.' : + 'Silence detected consistently.'); + close(); } }; @@ -95,11 +98,11 @@ resolve(false); }; - function close(result) { + function close() { audioContext.close().then(() => { console.log('AudioContext closed.'); clearInterval(intervalId); - resolve(result); + resolve(true); }); } });
diff --git a/content/test/gpu/gpu_tests/test_expectations/trace_test_expectations.txt b/content/test/gpu/gpu_tests/test_expectations/trace_test_expectations.txt index da7a097..39568b5 100644 --- a/content/test/gpu/gpu_tests/test_expectations/trace_test_expectations.txt +++ b/content/test/gpu/gpu_tests/test_expectations/trace_test_expectations.txt
@@ -206,12 +206,12 @@ crbug.com/329138770 [ win graphite-enabled ] SwapChainTraceTest_CanvasLowLatencyWebGLAlphaFalse [ Failure ] crbug.com/329138770 [ win graphite-enabled ] SwapChainTraceTest_CanvasLowLatencyWebGLDrawImage [ Failure ] crbug.com/329138770 [ win graphite-enabled ] SwapChainTraceTest_CanvasLowLatencyWebGLRoundedCorners [ Failure ] -crbug.com/329138770 [ graphite-enabled release-x64 win10 ] WebGPUCachingTraceTest_ComputePipelineCrossOriginsCacheMisses [ Failure ] -crbug.com/329138770 [ graphite-enabled release-x64 win10 ] WebGPUCachingTraceTest_ComputePipelineDifferentOrigins [ Failure ] -crbug.com/329138770 [ graphite-enabled release-x64 win10 ] WebGPUCachingTraceTest_ComputePipelineIncognito [ Failure ] -crbug.com/329138770 [ graphite-enabled release-x64 win10 ] WebGPUCachingTraceTest_RenderPipelineCrossOriginsCacheMisses [ Failure ] -crbug.com/329138770 [ graphite-enabled release-x64 win10 ] WebGPUCachingTraceTest_RenderPipelineDifferentOrigins [ Failure ] -crbug.com/329138770 [ graphite-enabled release-x64 win10 ] WebGPUCachingTraceTest_RenderPipelineIncognito [ Failure ] +crbug.com/329138770 [ win graphite-enabled ] WebGPUCachingTraceTest_ComputePipelineCrossOriginsCacheMisses [ Failure ] +crbug.com/329138770 [ win graphite-enabled ] WebGPUCachingTraceTest_ComputePipelineDifferentOrigins [ Failure ] +crbug.com/329138770 [ win graphite-enabled ] WebGPUCachingTraceTest_ComputePipelineIncognito [ Failure ] +crbug.com/329138770 [ win graphite-enabled ] WebGPUCachingTraceTest_RenderPipelineCrossOriginsCacheMisses [ Failure ] +crbug.com/329138770 [ win graphite-enabled ] WebGPUCachingTraceTest_RenderPipelineDifferentOrigins [ Failure ] +crbug.com/329138770 [ win graphite-enabled ] WebGPUCachingTraceTest_RenderPipelineIncognito [ Failure ] # Fail or flaky on Windows and Linux. Flaky timeout on Mac. crbug.com/371949935 [ graphite-disabled win10 ] TraceTest_ViewTransitionsCapture [ Failure ]
diff --git a/content/test/test_render_view_host.cc b/content/test/test_render_view_host.cc index 6035b42..a231310c 100644 --- a/content/test/test_render_view_host.cc +++ b/content/test/test_render_view_host.cc
@@ -419,11 +419,11 @@ RenderFrameHostImpl* main_frame = nullptr; RenderFrameProxyHost* proxy_host = nullptr; if (main_frame_routing_id_ != MSG_ROUTING_NONE) { - main_frame = RenderFrameHostImpl::FromID(GetProcess()->GetID(), + main_frame = RenderFrameHostImpl::FromID(GetProcess()->GetDeprecatedID(), main_frame_routing_id_); } else { - proxy_host = - RenderFrameProxyHost::FromID(GetProcess()->GetID(), proxy_route_id); + proxy_host = RenderFrameProxyHost::FromID(GetProcess()->GetDeprecatedID(), + proxy_route_id); } if (!GetWidget()->view_is_frame_sink_id_owner()) { @@ -508,7 +508,7 @@ GetMainRenderFrameHost()->StartDragging( DropDataToDragData( drop_data, storage_partition->GetFileSystemAccessManager(), - GetProcess()->GetID(), + GetProcess()->GetDeprecatedID(), ChromeBlobStorageContext::GetFor(GetProcess()->GetBrowserContext())), blink::kDragOperationEvery, std::move(bitmap), gfx::Vector2d(), gfx::Rect(), blink::mojom::DragEventSourceInfo::New());
diff --git a/content/test/test_web_contents.cc b/content/test/test_web_contents.cc index 634ab07..cb11737 100644 --- a/content/test/test_web_contents.cc +++ b/content/test/test_web_contents.cc
@@ -351,7 +351,7 @@ const GURL& target_url) { // This is normally only done in WebContentsImpl::CreateNewWindow. GlobalRoutingID key( - contents->GetRenderViewHost()->GetProcess()->GetID(), + contents->GetRenderViewHost()->GetProcess()->GetDeprecatedID(), contents->GetRenderViewHost()->GetWidget()->GetRoutingID()); AddWebContentsDestructionObserver(contents.get()); pending_contents_[key] = CreatedWindow(std::move(contents), target_url);
diff --git a/content/test/web_contents_observer_consistency_checker.cc b/content/test/web_contents_observer_consistency_checker.cc index 0f63065..9f7962f 100644 --- a/content/test/web_contents_observer_consistency_checker.cc +++ b/content/test/web_contents_observer_consistency_checker.cc
@@ -40,7 +40,8 @@ GlobalRoutingID GetRoutingPair(RenderFrameHost* host) { if (!host) return GlobalRoutingID(0, 0); - return GlobalRoutingID(host->GetProcess()->GetID(), host->GetRoutingID()); + return GlobalRoutingID(host->GetProcess()->GetDeprecatedID(), + host->GetRoutingID()); } } // namespace @@ -423,7 +424,7 @@ std::string WebContentsObserverConsistencyChecker::Format( RenderFrameHost* render_frame_host) { return base::StringPrintf( - "(%d, %d -> %s)", render_frame_host->GetProcess()->GetID(), + "(%d, %d -> %s)", render_frame_host->GetProcess()->GetDeprecatedID(), render_frame_host->GetRoutingID(), render_frame_host->GetSiteInstance()->GetSiteURL().spec().c_str()); }
diff --git a/content/web_test/browser/web_test_content_browser_client.cc b/content/web_test/browser/web_test_content_browser_client.cc index ec17903..e1d0a39cd 100644 --- a/content/web_test/browser/web_test_content_browser_client.cc +++ b/content/web_test/browser/web_test_content_browser_client.cc
@@ -385,7 +385,7 @@ associated_registry.AddInterface<mojom::WebTestControlHost>( base::BindRepeating(&WebTestContentBrowserClient::BindWebTestControlHost, base::Unretained(this), - render_frame_host.GetProcess()->GetID())); + render_frame_host.GetProcess()->GetDeprecatedID())); } void WebTestContentBrowserClient::BindPermissionAutomation(
diff --git a/content/web_test/browser/web_test_control_host.cc b/content/web_test/browser/web_test_control_host.cc index 9e80277..541ef401 100644 --- a/content/web_test/browser/web_test_control_host.cc +++ b/content/web_test/browser/web_test_control_host.cc
@@ -2190,7 +2190,7 @@ mojo::AssociatedRemote<mojom::WebTestRenderFrame>& WebTestControlHost::GetWebTestRenderFrameRemote(RenderFrameHost* frame) { - GlobalRenderFrameHostId key(frame->GetProcess()->GetID(), + GlobalRenderFrameHostId key(frame->GetProcess()->GetDeprecatedID(), frame->GetRoutingID()); if (!base::Contains(web_test_render_frame_map_, key)) { mojo::AssociatedRemote<mojom::WebTestRenderFrame>& new_ptr = @@ -2211,7 +2211,8 @@ WebTestControlHost::Node::Node(RenderFrameHost* host) : render_frame_host(host), - render_frame_host_id(host->GetProcess()->GetID(), host->GetRoutingID()) {} + render_frame_host_id(host->GetProcess()->GetDeprecatedID(), + host->GetRoutingID()) {} WebTestControlHost::Node::Node(Node&& other) = default; WebTestControlHost::Node& WebTestControlHost::Node::operator=(Node&& other) =
diff --git a/crypto/subtle_passkey.h b/crypto/subtle_passkey.h index 1ea961b8..cb067e1 100644 --- a/crypto/subtle_passkey.h +++ b/crypto/subtle_passkey.h
@@ -19,6 +19,8 @@ crypto::SubtlePassKey MakeCryptoPassKey(); } +class OSCryptImpl; + namespace crypto { // A crypto::SubtlePassKey allows you to call subtle, difficult-to-get-right, or @@ -46,6 +48,10 @@ // ONC EncryptedConfiguration objects can contain and require us to use // arbitrary (possibly attacker-supplied) PBKDF2 parameters. friend SubtlePassKey chromeos::onc::MakeCryptoPassKey(); + + // This class uses custom PBKDF2 parameters and has to keep doing so for + // compatibility with existing persisted data. + friend class ::OSCryptImpl; }; } // namespace crypto
diff --git a/docs/webui_explainer.md b/docs/webui_explainer.md index ea71fa8..d86605102 100644 --- a/docs/webui_explainer.md +++ b/docs/webui_explainer.md
@@ -135,7 +135,7 @@ // RenderFrameHostImpl::AllowBindings(): if (bindings_flags.Has(BindingsPolicyValue::kWebUi)) { ChildProcessSecurityPolicyImpl::GetInstance()->GrantWebUIBindings( - GetProcess()->GetID()); + GetProcess()->GetDeprecatedID()); } ```
diff --git a/extensions/browser/api/app_window/app_window_api.cc b/extensions/browser/api/app_window/app_window_api.cc index 5a3d9f4e..b3d9f2b 100644 --- a/extensions/browser/api/app_window/app_window_api.cc +++ b/extensions/browser/api/app_window/app_window_api.cc
@@ -188,7 +188,8 @@ content::RenderFrameHost* existing_frame = existing_window->web_contents()->GetPrimaryMainFrame(); std::string frame_token; - if (source_process_id() == existing_frame->GetProcess()->GetID()) { + if (source_process_id() == + existing_frame->GetProcess()->GetDeprecatedID()) { frame_token = existing_frame->GetFrameToken().ToString(); } @@ -418,7 +419,7 @@ content::RenderFrameHost* app_frame = app_window->web_contents()->GetPrimaryMainFrame(); std::string frame_token; - if (source_process_id() == app_frame->GetProcess()->GetID()) { + if (source_process_id() == app_frame->GetProcess()->GetDeprecatedID()) { frame_token = app_frame->GetFrameToken().ToString(); } base::Value::Dict result;
diff --git a/extensions/browser/api/automation_internal/automation_event_router.cc b/extensions/browser/api/automation_internal/automation_event_router.cc index fe292a6..6067777a 100644 --- a/extensions/browser/api/automation_internal/automation_event_router.cc +++ b/extensions/browser/api/automation_internal/automation_event_router.cc
@@ -290,7 +290,7 @@ void AutomationEventRouter::RemoveAutomationListener( content::RenderProcessHost* host) { - RenderProcessHostId rph_id = host->GetID(); + RenderProcessHostId rph_id = host->GetDeprecatedID(); ExtensionId extension_id; for (auto listener = listeners_.begin(); listener != listeners_.end();) { if ((*listener)->render_process_host_id == rph_id) {
diff --git a/extensions/browser/api/guest_view/guest_view_internal_api.cc b/extensions/browser/api/guest_view/guest_view_internal_api.cc index db4b5e6..27a0a853 100644 --- a/extensions/browser/api/guest_view/guest_view_internal_api.cc +++ b/extensions/browser/api/guest_view/guest_view_internal_api.cc
@@ -55,7 +55,8 @@ // consider this the most likely owner for the guest view. It is possible, // however, for the guest to be embedded in another same-process frame upon // attachment. - const int sender_process_id = render_frame_host()->GetProcess()->GetID(); + const int sender_process_id = + render_frame_host()->GetProcess()->GetDeprecatedID(); content::RenderFrameHost* owner_rfh = nullptr; auto token = base::Token::FromString(params->owner_frame_token);
diff --git a/extensions/browser/api/messaging/extension_message_port.cc b/extensions/browser/api/messaging/extension_message_port.cc index 1822622..d24de86 100644 --- a/extensions/browser/api/messaging/extension_message_port.cc +++ b/extensions/browser/api/messaging/extension_message_port.cc
@@ -503,7 +503,7 @@ &ExtensionMessagePort::Prune, base::Unretained(this), port_context, open_channel_dispatch_for_frame_tracking_id)); AddReceiver(message_port_host.InitWithNewEndpointAndPassReceiver(), - frame->GetProcess()->GetID(), port_context); + frame->GetProcess()->GetDeprecatedID(), port_context); pending_contexts_to_respond_.insert(port_context);
diff --git a/extensions/browser/api/messaging/message_service.cc b/extensions/browser/api/messaging/message_service.cc index af8e8da7..b335098 100644 --- a/extensions/browser/api/messaging/message_service.cc +++ b/extensions/browser/api/messaging/message_service.cc
@@ -357,7 +357,7 @@ }, [&](const content::RenderFrameHost* render_frame_host) { return ChannelEndpoint( - context, render_frame_host->GetProcess()->GetID(), + context, render_frame_host->GetProcess()->GetDeprecatedID(), PortContext::ForFrame(render_frame_host->GetRoutingID())); }}, source); @@ -412,15 +412,27 @@ source_endpoint.type == MessagingEndpoint::Type::kNativeApp); content::RenderFrameHost* source_render_frame_host = source.is_for_render_frame() ? source.GetRenderFrameHost() : nullptr; - if (!source.IsValid()) + if (!source.IsValid()) { + for (const auto& tracking_id : open_channel_tracking_ids) { + message_tracker->StopTrackingMessagingStage( + tracking_id, MessageTracker::OpenChannelMessagePipelineResult:: + kOpenChannelSourceEndpointInvalid); + } return; + } DCHECK(ExtensionsBrowserClient::Get()->IsSameContext(context, context_)); MaybeDisableBackForwardCacheForMessaging(source_render_frame_host); CHECK(opener_port); - if (!opener_port->IsValidPort()) + if (!opener_port->IsValidPort()) { + for (const auto& tracking_id : open_channel_tracking_ids) { + message_tracker->StopTrackingMessagingStage( + tracking_id, MessageTracker::OpenChannelMessagePipelineResult:: + kOpenChannelOpenerPortInvalid); + } return; + } const Extension* target_extension = registry->enabled_extensions().GetByID(target_extension_id); @@ -1184,18 +1196,31 @@ pending_messages.swap(pending_for_incognito->second); pending_incognito_channels_.erase(pending_for_incognito); + auto* message_tracker = MessageTracker::Get(context_); + // Check whether the source got closed while in flight. const ChannelEndpoint& source = params->source; // Re-lookup the source process since it may no longer be valid. - if (!source.IsValid()) + if (!source.IsValid()) { + for (const auto& tracking_id : params->open_channel_tracking_ids) { + message_tracker->StopTrackingMessagingStage( + tracking_id, MessageTracker::OpenChannelMessagePipelineResult:: + kOnOpenChannelSourceInvalid); + } return; + } - if (!params->opener_port->IsValidPort()) + if (!params->opener_port->IsValidPort()) { + for (const auto& tracking_id : params->open_channel_tracking_ids) { + message_tracker->StopTrackingMessagingStage( + tracking_id, MessageTracker::OpenChannelMessagePipelineResult:: + kOnOpenChannelOpenerPortInvalid); + } return; + } if (!allowed) { params->opener_port->DispatchOnDisconnect(kReceivingEndDoesntExistError); - auto* message_tracker = MessageTracker::Get(context_); for (const auto& tracking_id : params->open_channel_tracking_ids) { message_tracker->StopTrackingMessagingStage( tracking_id, @@ -1212,6 +1237,11 @@ registry->enabled_extensions().GetByID(params->target_extension_id); if (!target_extension) { params->opener_port->DispatchOnDisconnect(kReceivingEndDoesntExistError); + for (const auto& tracking_id : params->open_channel_tracking_ids) { + message_tracker->StopTrackingMessagingStage( + tracking_id, MessageTracker::OpenChannelMessagePipelineResult:: + kOnOpenChannelExtensionNotEnabled); + } return; }
diff --git a/extensions/browser/api/messaging/message_service_bindings.cc b/extensions/browser/api/messaging/message_service_bindings.cc index 76ca966..1e1b547 100644 --- a/extensions/browser/api/messaging/message_service_bindings.cc +++ b/extensions/browser/api/messaging/message_service_bindings.cc
@@ -43,7 +43,7 @@ } content::RenderFrameHost* frame = content::RenderFrameHost::FromID( - process.GetID(), context.frame->routing_id); + process.GetDeprecatedID(), context.frame->routing_id); if (!frame) { // TODO(https://crbug.com/325410297): It should not be possible to reach @@ -100,7 +100,7 @@ return false; } if (!util::CanRendererHostExtensionOrigin( - process.GetID(), source_endpoint.extension_id.value(), + process.GetDeprecatedID(), source_endpoint.extension_id.value(), IsPortContextSandboxed(process, source_context))) { bad_message::ReceivedBadMessage( &process, @@ -201,7 +201,7 @@ // false=invalid-IPC for IPCs from workers that were recently torn down / // made inactive. if (!util::CanRendererHostExtensionOrigin( - process.GetID(), worker_context.extension_id, + process.GetDeprecatedID(), worker_context.extension_id, IsPortContextSandboxed(process, source_context))) { bad_message::ReceivedBadMessage( &process, bad_message::EMF_INVALID_EXTENSION_ID_FOR_WORKER_CONTEXT); @@ -254,7 +254,7 @@ url::Origin base_origin; if (source_context.is_for_render_frame()) { content::RenderFrameHost* frame = content::RenderFrameHost::FromID( - process.GetID(), source_context.frame->routing_id); + process.GetDeprecatedID(), source_context.frame->routing_id); if (!frame) { // Not calling ReceivedBadMessage because it is possible that the frame // got deleted before the IPC arrived. @@ -316,7 +316,7 @@ source_url_origin = source_url_origin.DeriveNewOpaqueOrigin(); } auto* policy = content::ChildProcessSecurityPolicy::GetInstance(); - if (!policy->HostsOrigin(process.GetID(), source_url_origin)) { + if (!policy->HostsOrigin(process.GetDeprecatedID(), source_url_origin)) { SCOPED_CRASH_KEY_STRING256( "EMF_INVALID_SOURCE_URL", "base_origin", base_origin.GetDebugString(false /* include_nonce */)); @@ -389,7 +389,7 @@ if (source_context.is_for_render_frame()) { content::RenderFrameHost* frame = content::RenderFrameHost::FromID( - process.GetID(), source_context.frame->routing_id); + process.GetDeprecatedID(), source_context.frame->routing_id); if (!frame) { // Not calling ReceivedBadMessage because it is possible that the frame // got deleted before the IPC arrived. @@ -531,7 +531,7 @@ if (!IsValidSourceContext(*process, source)) { return; } - OpenPortImpl(port_id, process->GetID(), source); + OpenPortImpl(port_id, process->GetDeprecatedID(), source); } void MessageService::ClosePort(RenderProcessHost* process, @@ -553,8 +553,8 @@ port_context.frame ? port_context.frame->routing_id : MSG_ROUTING_NONE; int worker_thread_id = port_context.worker ? port_context.worker->thread_id : kMainThreadId; - ClosePortImpl(port_id, process->GetID(), routing_id, worker_thread_id, - force_close, std::string()); + ClosePortImpl(port_id, process->GetDeprecatedID(), routing_id, + worker_thread_id, force_close, std::string()); } void MessageService::NotifyResponsePending(RenderProcessHost* process,
diff --git a/extensions/browser/api/storage/storage_utils.cc b/extensions/browser/api/storage/storage_utils.cc index a53d65de..a378165d 100644 --- a/extensions/browser/api/storage/storage_utils.cc +++ b/extensions/browser/api/storage/storage_utils.cc
@@ -91,7 +91,7 @@ if (access_level == api::storage::AccessLevel::kTrustedContexts) { ProcessMap* process_map = ProcessMap::Get(&browser_context); return process_map->IsPrivilegedExtensionProcess( - extension, render_process_host.GetID()); + extension, render_process_host.GetDeprecatedID()); } }
diff --git a/extensions/browser/api/web_request/web_request_api.cc b/extensions/browser/api/web_request/web_request_api.cc index 0b6d9288..f08eff1 100644 --- a/extensions/browser/api/web_request/web_request_api.cc +++ b/extensions/browser/api/web_request/web_request_api.cc
@@ -540,7 +540,7 @@ WebRequestProxyingWebSocket::StartProxying( std::move(factory), url, site_for_cookies, user_agent, std::move(handshake_client), has_extra_headers, - frame->GetProcess()->GetID(), frame->GetRoutingID(), + frame->GetProcess()->GetDeprecatedID(), frame->GetRoutingID(), &request_id_generator_, frame->GetLastCommittedOrigin(), frame->GetProcess()->GetBrowserContext(), proxies_.get()); } @@ -556,7 +556,7 @@ DCHECK_CURRENTLY_ON(BrowserThread::UI); if (!MayHaveProxies()) { auto* render_frame_host = content::RenderFrameHost::FromID( - render_process_host.GetID(), frame_routing_id); + render_process_host.GetDeprecatedID(), frame_routing_id); if (!IsAvailableToWebViewEmbedderFrame(render_frame_host)) { std::move(callback).Run(std::move(handshake_client), std::nullopt); return;
diff --git a/extensions/browser/api/web_request/web_request_proxying_webtransport.cc b/extensions/browser/api/web_request/web_request_proxying_webtransport.cc index 2846154..008d85c 100644 --- a/extensions/browser/api/web_request/web_request_proxying_webtransport.cc +++ b/extensions/browser/api/web_request/web_request_proxying_webtransport.cc
@@ -293,7 +293,7 @@ request.url = url; request.request_initiator = initiator_origin; - const int process_id = render_process_host.GetID(); + const int process_id = render_process_host.GetDeprecatedID(); WebRequestInfoInitParams params = WebRequestInfoInitParams(request_id, process_id, frame_routing_id,
diff --git a/extensions/browser/app_window/app_window_contents.cc b/extensions/browser/app_window/app_window_contents.cc index 6b6ee35..c0dfab5 100644 --- a/extensions/browser/app_window/app_window_contents.cc +++ b/extensions/browser/app_window/app_window_contents.cc
@@ -34,7 +34,8 @@ content::WebContents::CreateParams create_params( context, creator_frame->GetSiteInstance()); - create_params.opener_render_process_id = creator_frame->GetProcess()->GetID(); + create_params.opener_render_process_id = + creator_frame->GetProcess()->GetDeprecatedID(); create_params.opener_render_frame_id = creator_frame->GetRoutingID(); web_contents_ = content::WebContents::Create(create_params); @@ -47,11 +48,12 @@ void AppWindowContentsImpl::LoadContents(int32_t creator_process_id) { // Sandboxed page that are not in the Chrome App package are loaded in a // different process. - if (web_contents_->GetPrimaryMainFrame()->GetProcess()->GetID() != + if (web_contents_->GetPrimaryMainFrame()->GetProcess()->GetDeprecatedID() != creator_process_id) { - VLOG(1) << "AppWindow created in new process (" - << web_contents_->GetPrimaryMainFrame()->GetProcess()->GetID() - << ") != creator (" << creator_process_id << "). Routing disabled."; + VLOG(1) + << "AppWindow created in new process (" + << web_contents_->GetPrimaryMainFrame()->GetProcess()->GetDeprecatedID() + << ") != creator (" << creator_process_id << "). Routing disabled."; } web_contents_->GetController().LoadURL( url_, content::Referrer(), ui::PAGE_TRANSITION_LINK,
diff --git a/extensions/browser/event_router.cc b/extensions/browser/event_router.cc index b1bc85b..25b0471 100644 --- a/extensions/browser/event_router.cc +++ b/extensions/browser/event_router.cc
@@ -290,7 +290,7 @@ callback = base::BindOnce( &EventRouter::DecrementInFlightEventsForServiceWorker, weak_factory_.GetWeakPtr(), - WorkerId{GenerateExtensionIdFromHostId(host_id), rph->GetID(), + WorkerId{GenerateExtensionIdFromHostId(host_id), rph->GetDeprecatedID(), service_worker_version_id, worker_thread_id}, event_id); } else if (BackgroundInfo::HasBackgroundPage(extension)) { @@ -299,9 +299,10 @@ // background pages. // Although it's unnecessary to decrement in-flight events for non-lazy // background pages, we use the logic for event tracking/metrics purposes. - callback = base::BindOnce( - &EventRouter::DecrementInFlightEventsForRenderFrameHost, - weak_factory_.GetWeakPtr(), rph->GetID(), host_id.id, event_id); + callback = + base::BindOnce(&EventRouter::DecrementInFlightEventsForRenderFrameHost, + weak_factory_.GetWeakPtr(), rph->GetDeprecatedID(), + host_id.id, event_id); } else { callback = base::DoNothing(); } @@ -724,7 +725,7 @@ RenderProcessHost* host, const content::ChildProcessTerminationInfo& info) { listeners_.RemoveListenersForProcess(host); - event_ack_data_.ClearUnackedEventsForRenderProcess(host->GetID()); + event_ack_data_.ClearUnackedEventsForRenderProcess(host->GetDeprecatedID()); observed_process_set_.erase(host); rph_dispatcher_map_.erase(host); host->RemoveObserver(this); @@ -732,7 +733,7 @@ void EventRouter::RenderProcessHostDestroyed(RenderProcessHost* host) { listeners_.RemoveListenersForProcess(host); - event_ack_data_.ClearUnackedEventsForRenderProcess(host->GetID()); + event_ack_data_.ClearUnackedEventsForRenderProcess(host->GetDeprecatedID()); observed_process_set_.erase(host); rph_dispatcher_map_.erase(host); host->RemoveObserver(this); @@ -1127,8 +1128,8 @@ service_worker_version_id == blink::mojom::kInvalidServiceWorkerVersionId ? &listener_url : nullptr; - mojom::ContextType target_context = - process_map->GetMostLikelyContextType(extension, process->GetID(), url); + mojom::ContextType target_context = process_map->GetMostLikelyContextType( + extension, process->GetDeprecatedID(), url); // Don't dispach an event when target context doesn't match the restricted // context type. @@ -1199,15 +1200,16 @@ callback = base::BindOnce(&EventRouter::DecrementInFlightEventsForServiceWorker, weak_factory_.GetWeakPtr(), - WorkerId{extension_id, process->GetID(), + WorkerId{extension_id, process->GetDeprecatedID(), service_worker_version_id, worker_thread_id}, event_id); } else if (BackgroundInfo::HasBackgroundPage(extension)) { // Although it's unnecessary to decrement in-flight events for non-lazy // background pages, we use the logic for event tracking/metrics purposes. - callback = base::BindOnce( - &EventRouter::DecrementInFlightEventsForRenderFrameHost, - weak_factory_.GetWeakPtr(), process->GetID(), extension_id, event_id); + callback = + base::BindOnce(&EventRouter::DecrementInFlightEventsForRenderFrameHost, + weak_factory_.GetWeakPtr(), process->GetDeprecatedID(), + extension_id, event_id); } else { callback = base::DoNothing(); } @@ -1219,13 +1221,13 @@ std::move(filter_info), std::move(callback)); if (!event.did_dispatch_callback.is_null()) { - event.did_dispatch_callback.Run(EventTarget{extension_id, process->GetID(), - service_worker_version_id, - worker_thread_id}); + event.did_dispatch_callback.Run( + EventTarget{extension_id, process->GetDeprecatedID(), + service_worker_version_id, worker_thread_id}); } for (TestObserver& observer : test_observers_) { - observer.OnDidDispatchEventToProcess(event, process->GetID()); + observer.OnDidDispatchEventToProcess(event, process->GetDeprecatedID()); } // TODO(lazyboy): This is wrong for extensions SW events. We need to: @@ -1265,8 +1267,8 @@ content::ServiceWorkerContext* service_worker_context = process->GetStoragePartition()->GetServiceWorkerContext(); event_ack_data_.DecrementInflightEvent( - service_worker_context, process->GetID(), worker_id.version_id, event_id, - worker_stopped, + service_worker_context, process->GetDeprecatedID(), worker_id.version_id, + event_id, worker_stopped, base::BindOnce( [](RenderProcessHost* process) { bad_message::ReceivedBadMessage(process, @@ -1329,9 +1331,9 @@ content::ServiceWorkerContext* service_worker_context = process->GetStoragePartition()->GetServiceWorkerContext(); event_ack_data_.IncrementInflightEvent( - service_worker_context, process->GetID(), service_worker_version_id, - event_id, dispatch_start_time, dispatch_source, - lazy_background_active_on_dispatch, histogram_value); + service_worker_context, process->GetDeprecatedID(), + service_worker_version_id, event_id, dispatch_start_time, + dispatch_source, lazy_background_active_on_dispatch, histogram_value); } } }
diff --git a/extensions/browser/event_router_unittest.cc b/extensions/browser/event_router_unittest.cc index 82350ff..de65f22b 100644 --- a/extensions/browser/event_router_unittest.cc +++ b/extensions/browser/event_router_unittest.cc
@@ -488,9 +488,9 @@ router.AddEventListenerForURL(event_name, &otr_rph, dummy_url); // Hook up some test observers - EventRouterObserver regular_counter(regular_rph.GetID()); + EventRouterObserver regular_counter(regular_rph.GetDeprecatedID()); router.AddObserverForTesting(®ular_counter); - EventRouterObserver otr_counter(otr_rph.GetID()); + EventRouterObserver otr_counter(otr_rph.GetDeprecatedID()); router.AddObserverForTesting(&otr_counter); EXPECT_EQ(0, regular_counter.dispatch_count); @@ -840,7 +840,8 @@ /*event_filter=*/std::nullopt), process4.get()); event_router()->BindServiceWorkerEventDispatcher( - process4->GetID(), sw_thread_id, sw_event_dispatcher.BindAndPassRemote()); + process4->GetDeprecatedID(), sw_thread_id, + sw_event_dispatcher.BindAndPassRemote()); // Dispatch without callback set. event_router()->DispatchEventToExtension(ext1, create_event(event_name)); @@ -861,10 +862,10 @@ const int sw_invalid_version_id = blink::mojom::kInvalidServiceWorkerVersionId; std::vector<EventTarget> expected{ - {ext1, process1->GetID(), sw_invalid_version_id, kMainThreadId}, - {ext2, process2->GetID(), sw_invalid_version_id, kMainThreadId}, - {ext2, process3->GetID(), sw_invalid_version_id, kMainThreadId}, - {ext3, process4->GetID(), sw_version_id, sw_thread_id}, + {ext1, process1->GetDeprecatedID(), sw_invalid_version_id, kMainThreadId}, + {ext2, process2->GetDeprecatedID(), sw_invalid_version_id, kMainThreadId}, + {ext2, process3->GetDeprecatedID(), sw_invalid_version_id, kMainThreadId}, + {ext3, process4->GetDeprecatedID(), sw_version_id, sw_thread_id}, }; std::sort(std::begin(dispatched), std::end(dispatched)); EXPECT_EQ(dispatched, expected);
diff --git a/extensions/browser/extension_function_dispatcher.cc b/extensions/browser/extension_function_dispatcher.cc index 81a95a0..778ddc63 100644 --- a/extensions/browser/extension_function_dispatcher.cc +++ b/extensions/browser/extension_function_dispatcher.cc
@@ -281,12 +281,13 @@ return; } - const int render_process_id = render_process_host.GetID(); + const int render_process_id = render_process_host.GetDeprecatedID(); const GURL* render_frame_host_url = nullptr; if (render_frame_host) { render_frame_host_url = &render_frame_host->GetLastCommittedURL(); - DCHECK_EQ(render_process_id, render_frame_host->GetProcess()->GetID()); + DCHECK_EQ(render_process_id, + render_frame_host->GetProcess()->GetDeprecatedID()); } ExtensionRegistry* registry = ExtensionRegistry::Get(browser_context_);
diff --git a/extensions/browser/extension_util.cc b/extensions/browser/extension_util.cc index 2e70ed79..8b7d2e5 100644 --- a/extensions/browser/extension_util.cc +++ b/extensions/browser/extension_util.cc
@@ -409,14 +409,14 @@ // Can `render_process_id` host a chrome-extension:// origin (frame, worker, // etc.)? - if (CanRendererHostExtensionOrigin(render_process_host.GetID(), extension_id, - is_sandboxed)) { + if (CanRendererHostExtensionOrigin(render_process_host.GetDeprecatedID(), + extension_id, is_sandboxed)) { return true; } if (render_frame_host) { - DCHECK_EQ(render_process_host.GetID(), - render_frame_host->GetProcess()->GetID()); + DCHECK_EQ(render_process_host.GetDeprecatedID(), + render_frame_host->GetProcess()->GetDeprecatedID()); content::SiteInstance& site_instance = *render_frame_host->GetSiteInstance();
diff --git a/extensions/browser/extension_web_contents_observer.cc b/extensions/browser/extension_web_contents_observer.cc index c3bcb31..5587068 100644 --- a/extensions/browser/extension_web_contents_observer.cc +++ b/extensions/browser/extension_web_contents_observer.cc
@@ -144,7 +144,7 @@ // to request pages from the extension's origin. content::ChildProcessSecurityPolicy* security_policy = content::ChildProcessSecurityPolicy::GetInstance(); - int process_id = render_frame_host->GetProcess()->GetID(); + int process_id = render_frame_host->GetProcess()->GetDeprecatedID(); security_policy->GrantRequestOrigin(process_id, frame_extension->origin()); // Notify the render frame of the view type. @@ -179,7 +179,7 @@ if (type == Manifest::TYPE_EXTENSION || type == Manifest::TYPE_LEGACY_PACKAGED_APP) { util::InitializeFileSchemeAccessForExtension( - render_frame_host->GetProcess()->GetID(), extension->id(), + render_frame_host->GetProcess()->GetDeprecatedID(), extension->id(), browser_context_); }
diff --git a/extensions/browser/guest_view/extensions_guest_view_manager_delegate.cc b/extensions/browser/guest_view/extensions_guest_view_manager_delegate.cc index 9425dbe..c82499b6 100644 --- a/extensions/browser/guest_view/extensions_guest_view_manager_delegate.cc +++ b/extensions/browser/guest_view/extensions_guest_view_manager_delegate.cc
@@ -84,7 +84,7 @@ Feature::Availability availability = feature->IsAvailableToContext( owner_extension, process_map->GetMostLikelyContextType( - owner_extension, guest->owner_rfh()->GetProcess()->GetID(), + owner_extension, guest->owner_rfh()->GetProcess()->GetDeprecatedID(), &owner_site_url), owner_site_url, util::GetBrowserContextId(context), BrowserFrameContextData(guest->owner_rfh()));
diff --git a/extensions/browser/guest_view/mime_handler_view/mime_handler_view_attach_helper.cc b/extensions/browser/guest_view/mime_handler_view/mime_handler_view_attach_helper.cc index b308316..249aabd 100644 --- a/extensions/browser/guest_view/mime_handler_view/mime_handler_view_attach_helper.cc +++ b/extensions/browser/guest_view/mime_handler_view/mime_handler_view_attach_helper.cc
@@ -149,7 +149,7 @@ return; } render_process_host->RemoveObserver(this); - GetProcessIdToHelperMap()->erase(render_process_host_->GetID()); + GetProcessIdToHelperMap()->erase(render_process_host_->GetDeprecatedID()); } void MimeHandlerViewAttachHelper::AttachToOuterWebContents(
diff --git a/extensions/browser/guest_view/mime_handler_view/mime_handler_view_embedder.cc b/extensions/browser/guest_view/mime_handler_view/mime_handler_view_embedder.cc index f372d3ced7..102b7462 100644 --- a/extensions/browser/guest_view/mime_handler_view/mime_handler_view_embedder.cc +++ b/extensions/browser/guest_view/mime_handler_view/mime_handler_view_embedder.cc
@@ -219,7 +219,7 @@ render_frame_host_); const int embedder_frame_process_id = - render_frame_host_->GetProcess()->GetID(); + render_frame_host_->GetProcess()->GetDeprecatedID(); const int element_instance_id = placeholder_render_frame_host_for_inner_contents_->GetRoutingID(); const int guest_instance_id = guest_view->guest_instance_id();
diff --git a/extensions/browser/guest_view/web_view/web_view_guest.cc b/extensions/browser/guest_view/web_view/web_view_guest.cc index 513ddaf..ce33fee9 100644 --- a/extensions/browser/guest_view/web_view/web_view_guest.cc +++ b/extensions/browser/guest_view/web_view/web_view_guest.cc
@@ -298,7 +298,7 @@ std::string WebViewGuest::GetPartitionID( RenderProcessHost* render_process_host) { WebViewRendererState* renderer_state = WebViewRendererState::GetInstance(); - int process_id = render_process_host->GetID(); + int process_id = render_process_host->GetDeprecatedID(); std::string partition_id; if (renderer_state->IsGuest(process_id)) renderer_state->GetPartitionID(process_id, &partition_id); @@ -394,7 +394,7 @@ // TODO(dcheng): Is granting commit origin really the right thing to do // here? content::ChildProcessSecurityPolicy::GetInstance()->GrantCommitOrigin( - guest_main_frame->GetProcess()->GetID(), + guest_main_frame->GetProcess()->GetDeprecatedID(), url::Origin::Create(GetOwnerSiteURL())); }; @@ -439,7 +439,7 @@ web_view_permission_helper_ = std::make_unique<WebViewPermissionHelper>(this); rules_registry_id_ = GetOrGenerateRulesRegistryID( - owner_rfh()->GetProcess()->GetID(), view_instance_id()); + owner_rfh()->GetProcess()->GetDeprecatedID(), view_instance_id()); // We must install the mapping from guests to WebViews prior to resuming // suspended resource loads so that the WebRequest API will catch resource @@ -588,7 +588,7 @@ // had a RenderFrame created. // TODO(crbug.com/40202416): Implement an MPArch equivalent of this. WebViewRendererState::GetInstance()->RemoveGuest( - GetGuestMainFrame()->GetProcess()->GetID(), + GetGuestMainFrame()->GetProcess()->GetDeprecatedID(), GetGuestMainFrame()->GetRoutingID()); // The following call may destroy `this`. GuestViewBase::WebContentsDestroyed(); @@ -740,7 +740,8 @@ CHECK(!base::FeatureList::IsEnabled(features::kGuestViewMPArch)); base::Value::Dict args; - args.Set(webview::kProcessId, render_widget_host->GetProcess()->GetID()); + args.Set(webview::kProcessId, + render_widget_host->GetProcess()->GetDeprecatedID()); DispatchEventToView(std::make_unique<GuestViewEvent>( webview::kEventResponsive, std::move(args))); } @@ -752,7 +753,8 @@ CHECK(!base::FeatureList::IsEnabled(features::kGuestViewMPArch)); base::Value::Dict args; - args.Set(webview::kProcessId, render_widget_host->GetProcess()->GetID()); + args.Set(webview::kProcessId, + render_widget_host->GetProcess()->GetDeprecatedID()); DispatchEventToView(std::make_unique<GuestViewEvent>( webview::kEventUnresponsive, std::move(args))); } @@ -919,7 +921,7 @@ if (removal_mask & webview::WEB_VIEW_REMOVE_DATA_MASK_CACHE) { // First clear http cache data and then clear the code cache in // |ClearCodeCache| and the rest is cleared in |ClearDataInternal|. - int render_process_id = guest_main_frame->GetProcess()->GetID(); + int render_process_id = guest_main_frame->GetProcess()->GetDeprecatedID(); // We need to clear renderer cache separately for our process because // StoragePartitionHttpCacheDataRemover::ClearData() does not clear that. web_cache::WebCacheManager::GetInstance()->ClearCacheForProcess( @@ -1015,7 +1017,8 @@ GetController().GetLastCommittedEntry()->GetBaseURLForDataURL().spec()); args.Set(kInternalCurrentEntryIndex, GetController().GetCurrentEntryIndex()); args.Set(kInternalEntryCount, GetController().GetEntryCount()); - args.Set(kInternalProcessId, GetGuestMainFrame()->GetProcess()->GetID()); + args.Set(kInternalProcessId, + GetGuestMainFrame()->GetProcess()->GetDeprecatedID()); DispatchEventToView(std::make_unique<GuestViewEvent>( webview::kEventLoadCommit, std::move(args))); @@ -1087,7 +1090,8 @@ find_helper_.CancelAllFindSessions(); base::Value::Dict args; - args.Set(webview::kProcessId, GetGuestMainFrame()->GetProcess()->GetID()); + args.Set(webview::kProcessId, + GetGuestMainFrame()->GetProcess()->GetDeprecatedID()); args.Set(webview::kReason, TerminationStatusToString(status)); DispatchEventToView( std::make_unique<GuestViewEvent>(webview::kEventExit, std::move(args))); @@ -1205,7 +1209,7 @@ } WebViewRendererState::GetInstance()->RemoveGuest( - render_frame_host->GetProcess()->GetID(), + render_frame_host->GetProcess()->GetDeprecatedID(), render_frame_host->GetRoutingID()); } @@ -1229,7 +1233,7 @@ // cases, we rely on calling RemoveGuest() from RenderFrameDeleted(). if (!old_host->IsRenderFrameLive()) { WebViewRendererState::GetInstance()->RemoveGuest( - old_host->GetProcess()->GetID(), old_host->GetRoutingID()); + old_host->GetProcess()->GetDeprecatedID(), old_host->GetRoutingID()); } } @@ -1250,7 +1254,8 @@ guest_host->GetSiteInstance()->GetStoragePartitionConfig(); WebViewRendererState::WebViewInfo web_view_info; - web_view_info.embedder_process_id = owner_rfh()->GetProcess()->GetID(); + web_view_info.embedder_process_id = + owner_rfh()->GetProcess()->GetDeprecatedID(); web_view_info.instance_id = view_instance_id(); web_view_info.partition_id = storage_partition_config.partition_name(); web_view_info.owner_host = owner_host(); @@ -1264,7 +1269,7 @@ web_view_info.embedder_process_id, web_view_info.instance_id); WebViewRendererState::GetInstance()->AddGuest( - guest_host->GetProcess()->GetID(), guest_host->GetRoutingID(), + guest_host->GetProcess()->GetDeprecatedID(), guest_host->GetRoutingID(), web_view_info); } @@ -1329,7 +1334,7 @@ void WebViewGuest::WillAttachToEmbedder() { rules_registry_id_ = GetOrGenerateRulesRegistryID( - owner_rfh()->GetProcess()->GetID(), view_instance_id()); + owner_rfh()->GetProcess()->GetDeprecatedID(), view_instance_id()); // We must install the mapping from guests to WebViews prior to resuming // suspended resource loads so that the WebRequest API will catch resource @@ -1940,8 +1945,8 @@ void WebViewGuest::OnWebViewNewWindowResponse(int new_window_instance_id, bool allow, const std::string& user_input) { - auto* guest = WebViewGuest::FromInstanceID(owner_rfh()->GetProcess()->GetID(), - new_window_instance_id); + auto* guest = WebViewGuest::FromInstanceID( + owner_rfh()->GetProcess()->GetDeprecatedID(), new_window_instance_id); if (!guest) return;
diff --git a/extensions/browser/message_tracker.h b/extensions/browser/message_tracker.h index f4abdce..cddc407c 100644 --- a/extensions/browser/message_tracker.h +++ b/extensions/browser/message_tracker.h
@@ -39,7 +39,7 @@ kHung = 2, // The channel was not opened due to one of theses issues. See enums.xml for - // more details. + // more details (part 1). kNoReceivers = 3, kOpenChannelToNonEnabledExtension = 4, kNotExternallyConnectable = 5, @@ -56,7 +56,15 @@ // The DispatchConnect IPC was not acknowledged because the channel closed. kOpenChannelClosedBeforeResponse = 12, - kMaxValue = kOpenChannelClosedBeforeResponse, + // The channel was not opened due to one of theses issues. See enums.xml for + // more details (part 2). + kOpenChannelSourceEndpointInvalid = 13, + kOpenChannelOpenerPortInvalid = 14, + kOnOpenChannelSourceInvalid = 15, + kOnOpenChannelOpenerPortInvalid = 16, + kOnOpenChannelExtensionNotEnabled = 17, + + kMaxValue = kOnOpenChannelExtensionNotEnabled, }; class TestObserver {
diff --git a/extensions/browser/process_manager.cc b/extensions/browser/process_manager.cc index f2289dd..2fba510 100644 --- a/extensions/browser/process_manager.cc +++ b/extensions/browser/process_manager.cc
@@ -989,7 +989,7 @@ const content::ChildProcessTerminationInfo& info) { DCHECK(process_observations_.IsObservingSource(host)); process_observations_.RemoveObservation(host); - const int render_process_id = host->GetID(); + const int render_process_id = host->GetDeprecatedID(); // Look up and then clean up the entries that are affected by // |render_process_id| destruction. //
diff --git a/extensions/browser/process_map.cc b/extensions/browser/process_map.cc index ff9bbdbd..8e95cc6c 100644 --- a/extensions/browser/process_map.cc +++ b/extensions/browser/process_map.cc
@@ -136,7 +136,7 @@ const Extension* extension, const content::RenderProcessHost& process, mojom::ContextType context_type) { - const int process_id = process.GetID(); + const int process_id = process.GetDeprecatedID(); switch (context_type) { case mojom::ContextType::kUnspecified: // We never consider unspecified contexts valid. Even though they would be
diff --git a/extensions/browser/renderer_startup_helper.cc b/extensions/browser/renderer_startup_helper.cc index 9d0351f6..6e5eae58 100644 --- a/extensions/browser/renderer_startup_helper.cc +++ b/extensions/browser/renderer_startup_helper.cc
@@ -209,7 +209,8 @@ #if BUILDFLAG(ENABLE_GUEST_VIEW) // If the new render process is a WebView guest process, propagate the WebView // partition ID to it. - if (WebViewRendererState::GetInstance()->IsGuest(process->GetID())) { + if (WebViewRendererState::GetInstance()->IsGuest( + process->GetDeprecatedID())) { std::string webview_partition_id = WebViewGuest::GetPartitionID(process); renderer->SetWebViewPartitionID(webview_partition_id); }
diff --git a/extensions/browser/script_executor.cc b/extensions/browser/script_executor.cc index 63a2cbf..9260b51 100644 --- a/extensions/browser/script_executor.cc +++ b/extensions/browser/script_executor.cc
@@ -271,7 +271,7 @@ .ExecuteCode(std::move(params), base::BindOnce(&Handler::OnExecuteCodeFinished, weak_ptr_factory_.GetWeakPtr(), - frame->GetProcess()->GetID(), + frame->GetProcess()->GetDeprecatedID(), frame->GetRoutingID())); }
diff --git a/extensions/browser/script_injection_tracker.cc b/extensions/browser/script_injection_tracker.cc index 64c8c5c1..029db45 100644 --- a/extensions/browser/script_injection_tracker.cc +++ b/extensions/browser/script_injection_tracker.cc
@@ -324,7 +324,8 @@ owner_site_url.host_piece() == extension.id()) { WebViewContentScriptManager* script_manager = WebViewContentScriptManager::Get(frame.GetBrowserContext()); - int embedder_process_id = guest->owner_rfh()->GetProcess()->GetID(); + int embedder_process_id = + guest->owner_rfh()->GetProcess()->GetDeprecatedID(); std::set<std::string> script_ids = script_manager->GetContentScriptIDSet( embedder_process_id, guest->view_instance_id());
diff --git a/extensions/browser/service_worker/service_worker_host.cc b/extensions/browser/service_worker/service_worker_host.cc index a933002..f0c973b 100644 --- a/extensions/browser/service_worker/service_worker_host.cc +++ b/extensions/browser/service_worker/service_worker_host.cc
@@ -152,7 +152,7 @@ return; } - int render_process_id = render_process_host_->GetID(); + int render_process_id = render_process_host_->GetDeprecatedID(); auto* process_map = ProcessMap::Get(browser_context); if (!process_map || !process_map->Contains(extension_id, render_process_id)) { // We check the process in addition to the registry to guard against @@ -188,7 +188,7 @@ } DCHECK_NE(kMainThreadId, worker_thread_id); - int render_process_id = render_process_host_->GetID(); + int render_process_id = render_process_host_->GetDeprecatedID(); auto* process_map = ProcessMap::Get(browser_context); if (!process_map || !process_map->Contains(extension_id, render_process_id)) { // We can legitimately get here if the extension was already unloaded. @@ -216,7 +216,7 @@ } DCHECK_NE(kMainThreadId, worker_thread_id); - int render_process_id = render_process_host_->GetID(); + int render_process_id = render_process_host_->GetDeprecatedID(); auto* process_map = ProcessMap::Get(browser_context); if (!process_map || !process_map->Contains(extension_id, render_process_id)) { // We can legitimately get here if the extension was already unloaded. @@ -242,8 +242,9 @@ return; } - dispatcher_->DispatchForServiceWorker( - std::move(params), render_process_host_->GetID(), std::move(callback)); + dispatcher_->DispatchForServiceWorker(std::move(params), + render_process_host_->GetDeprecatedID(), + std::move(callback)); } void ServiceWorkerHost::WorkerResponseAck(const base::Uuid& request_uuid) {
diff --git a/extensions/browser/user_script_loader.cc b/extensions/browser/user_script_loader.cc index bdab5d8..9b1da3cc 100644 --- a/extensions/browser/user_script_loader.cc +++ b/extensions/browser/user_script_loader.cc
@@ -452,7 +452,7 @@ content::RenderProcessHost* process = i.GetCurrentValue(); SendUpdateResult update_result = SendUpdate(process, shared_memory_); if (update_result == SendUpdateResult::kRendererHasBeenNotified) { - ids_of_newly_notified_processes.push_back(process->GetID()); + ids_of_newly_notified_processes.push_back(process->GetDeprecatedID()); } } @@ -512,11 +512,12 @@ // other extensions are injected into webviews. if (process->IsForGuestsOnly() && !CanExecuteScriptEverywhere(browser_context_, host_id())) { - DCHECK(WebViewRendererState::GetInstance()->IsGuest(process->GetID())); + DCHECK(WebViewRendererState::GetInstance()->IsGuest( + process->GetDeprecatedID())); std::string owner_host; bool found_owner = WebViewRendererState::GetInstance()->GetOwnerInfo( - process->GetID(), /*owner_process_id=*/nullptr, &owner_host); + process->GetDeprecatedID(), /*owner_process_id=*/nullptr, &owner_host); DCHECK(found_owner); // Keep this check in sync with the approach and formatting in:
diff --git a/extensions/shell/browser/shell_content_browser_client.cc b/extensions/shell/browser/shell_content_browser_client.cc index 2dcfaad..4bfbd66b 100644 --- a/extensions/shell/browser/shell_content_browser_client.cc +++ b/extensions/shell/browser/shell_content_browser_client.cc
@@ -113,7 +113,7 @@ void ShellContentBrowserClient::RenderProcessWillLaunch( content::RenderProcessHost* host) { #if BUILDFLAG(ENABLE_NACL) - int render_process_id = host->GetID(); + int render_process_id = host->GetDeprecatedID(); BrowserContext* browser_context = browser_main_parts_->browser_context(); // PluginInfoMessageFilter is not required because app_shell does not have @@ -168,7 +168,7 @@ } ProcessMap::Get(browser_main_parts_->browser_context()) - ->Insert(extension->id(), site_instance->GetProcess()->GetID()); + ->Insert(extension->id(), site_instance->GetProcess()->GetDeprecatedID()); } void ShellContentBrowserClient::AppendExtraCommandLineSwitches( @@ -220,15 +220,16 @@ service_manager::BinderRegistry* registry, blink::AssociatedInterfaceRegistry* associated_registry, content::RenderProcessHost* render_process_host) { - associated_registry->AddInterface<mojom::RendererHost>(base::BindRepeating( - &RendererStartupHelper::BindForRenderer, render_process_host->GetID())); + associated_registry->AddInterface<mojom::RendererHost>( + base::BindRepeating(&RendererStartupHelper::BindForRenderer, + render_process_host->GetDeprecatedID())); } void ShellContentBrowserClient:: RegisterAssociatedInterfaceBindersForRenderFrameHost( content::RenderFrameHost& render_frame_host, blink::AssociatedInterfaceRegistry& associated_registry) { - int render_process_id = render_frame_host.GetProcess()->GetID(); + int render_process_id = render_frame_host.GetProcess()->GetDeprecatedID(); associated_registry.AddInterface<mojom::EventRouter>( base::BindRepeating(&EventRouter::BindForRenderer, render_process_id)); associated_registry.AddInterface<mojom::RendererHost>(base::BindRepeating(
diff --git a/gpu/ipc/client/command_buffer_proxy_impl.h b/gpu/ipc/client/command_buffer_proxy_impl.h index f02fdc4..d3a0807 100644 --- a/gpu/ipc/client/command_buffer_proxy_impl.h +++ b/gpu/ipc/client/command_buffer_proxy_impl.h
@@ -257,7 +257,7 @@ // threads, or we guarantee it is used by a single thread by using a thread // checker if no lock_ is set. raw_ptr<base::Lock> lock_ = nullptr; - base::SequenceChecker lockless_sequence_checker_; + SEQUENCE_CHECKER(lockless_sequence_checker_); // Client that wants to listen for important events on the GpuControl. raw_ptr<gpu::GpuControlClient> gpu_control_client_ = nullptr;
diff --git a/infra/config/generated/builders/ci/Dawn Win10 x64 ASAN Builder/targets/chromium.dawn.json b/infra/config/generated/builders/ci/Dawn Win10 x64 ASAN Builder/targets/chromium.dawn.json index d963c41..419d175 100644 --- a/infra/config/generated/builders/ci/Dawn Win10 x64 ASAN Builder/targets/chromium.dawn.json +++ b/infra/config/generated/builders/ci/Dawn Win10 x64 ASAN Builder/targets/chromium.dawn.json
@@ -455,8 +455,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -482,8 +482,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -509,8 +509,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -535,8 +535,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -562,8 +562,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -587,8 +587,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -616,8 +616,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -645,8 +645,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -667,8 +667,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -697,8 +697,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -727,8 +727,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -763,8 +763,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -800,8 +800,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -838,8 +838,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -875,8 +875,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -911,8 +911,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -942,8 +942,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -972,8 +972,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800,
diff --git "a/infra/config/generated/builders/ci/Dawn Win10 x64 ASAN Release \050NVIDIA\051/targets/chromium.dawn.json" "b/infra/config/generated/builders/ci/Dawn Win10 x64 ASAN Release \050NVIDIA\051/targets/chromium.dawn.json" index be50b5c..df23a49 100644 --- "a/infra/config/generated/builders/ci/Dawn Win10 x64 ASAN Release \050NVIDIA\051/targets/chromium.dawn.json" +++ "b/infra/config/generated/builders/ci/Dawn Win10 x64 ASAN Release \050NVIDIA\051/targets/chromium.dawn.json"
@@ -17,8 +17,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -44,8 +44,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -71,8 +71,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -97,8 +97,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -124,8 +124,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -149,8 +149,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -178,8 +178,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -207,8 +207,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -229,8 +229,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -259,8 +259,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -289,8 +289,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -325,8 +325,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -362,8 +362,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -400,8 +400,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -437,8 +437,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -473,8 +473,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -504,8 +504,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -534,8 +534,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800,
diff --git a/infra/config/generated/builders/ci/Dawn Win10 x64 Builder/targets/chromium.dawn.json b/infra/config/generated/builders/ci/Dawn Win10 x64 Builder/targets/chromium.dawn.json index 57fcb1da..f0b1c5be 100644 --- a/infra/config/generated/builders/ci/Dawn Win10 x64 Builder/targets/chromium.dawn.json +++ b/infra/config/generated/builders/ci/Dawn Win10 x64 Builder/targets/chromium.dawn.json
@@ -2304,8 +2304,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -2331,8 +2331,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -2359,8 +2359,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -2386,8 +2386,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -2413,8 +2413,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -2439,8 +2439,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -2466,8 +2466,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -2492,8 +2492,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -2519,8 +2519,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -2544,8 +2544,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -2573,8 +2573,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -2602,8 +2602,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -2624,8 +2624,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -2654,8 +2654,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -2684,8 +2684,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -2720,8 +2720,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -2758,8 +2758,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -2798,8 +2798,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -2836,8 +2836,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -2873,8 +2873,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -2909,8 +2909,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -2947,8 +2947,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -2978,8 +2978,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -3008,8 +3008,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -3045,8 +3045,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -3085,8 +3085,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800,
diff --git a/infra/config/generated/builders/ci/Dawn Win10 x64 DEPS Builder/targets/chromium.dawn.json b/infra/config/generated/builders/ci/Dawn Win10 x64 DEPS Builder/targets/chromium.dawn.json index 975ff45..56bd9198 100644 --- a/infra/config/generated/builders/ci/Dawn Win10 x64 DEPS Builder/targets/chromium.dawn.json +++ b/infra/config/generated/builders/ci/Dawn Win10 x64 DEPS Builder/targets/chromium.dawn.json
@@ -613,8 +613,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -640,8 +640,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -668,8 +668,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -695,8 +695,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -722,8 +722,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -748,8 +748,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -775,8 +775,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -801,8 +801,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -828,8 +828,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -853,8 +853,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -882,8 +882,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -911,8 +911,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -933,8 +933,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -963,8 +963,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -993,8 +993,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -1029,8 +1029,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -1067,8 +1067,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -1107,8 +1107,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -1145,8 +1145,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -1182,8 +1182,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -1218,8 +1218,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -1256,8 +1256,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -1287,8 +1287,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -1317,8 +1317,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -1354,8 +1354,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -1394,8 +1394,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800,
diff --git "a/infra/config/generated/builders/ci/Dawn Win10 x64 DEPS Release \050NVIDIA\051/targets/chromium.dawn.json" "b/infra/config/generated/builders/ci/Dawn Win10 x64 DEPS Release \050NVIDIA\051/targets/chromium.dawn.json" index 1c772ee8..c944983 100644 --- "a/infra/config/generated/builders/ci/Dawn Win10 x64 DEPS Release \050NVIDIA\051/targets/chromium.dawn.json" +++ "b/infra/config/generated/builders/ci/Dawn Win10 x64 DEPS Release \050NVIDIA\051/targets/chromium.dawn.json"
@@ -17,8 +17,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -44,8 +44,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -72,8 +72,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -99,8 +99,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -126,8 +126,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -152,8 +152,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -179,8 +179,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -205,8 +205,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -232,8 +232,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -257,8 +257,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -286,8 +286,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -315,8 +315,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -337,8 +337,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -367,8 +367,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -397,8 +397,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -433,8 +433,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -471,8 +471,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -511,8 +511,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -549,8 +549,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -586,8 +586,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -622,8 +622,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -660,8 +660,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -691,8 +691,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -721,8 +721,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -758,8 +758,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -798,8 +798,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800,
diff --git "a/infra/config/generated/builders/ci/Dawn Win10 x64 Release \050NVIDIA\051/targets/chromium.dawn.json" "b/infra/config/generated/builders/ci/Dawn Win10 x64 Release \050NVIDIA\051/targets/chromium.dawn.json" index 76945344..cb22ce9 100644 --- "a/infra/config/generated/builders/ci/Dawn Win10 x64 Release \050NVIDIA\051/targets/chromium.dawn.json" +++ "b/infra/config/generated/builders/ci/Dawn Win10 x64 Release \050NVIDIA\051/targets/chromium.dawn.json"
@@ -17,8 +17,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -44,8 +44,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -72,8 +72,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -99,8 +99,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -126,8 +126,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -152,8 +152,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -179,8 +179,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -205,8 +205,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -232,8 +232,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -257,8 +257,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -286,8 +286,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -315,8 +315,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -337,8 +337,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -367,8 +367,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -397,8 +397,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -433,8 +433,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -471,8 +471,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -511,8 +511,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -549,8 +549,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -586,8 +586,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -622,8 +622,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -660,8 +660,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -691,8 +691,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -721,8 +721,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -758,8 +758,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -798,8 +798,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800,
diff --git a/infra/config/generated/builders/ci/Dawn Win10 x86 Builder/targets/chromium.dawn.json b/infra/config/generated/builders/ci/Dawn Win10 x86 Builder/targets/chromium.dawn.json index afa1823..3c7903c 100644 --- a/infra/config/generated/builders/ci/Dawn Win10 x86 Builder/targets/chromium.dawn.json +++ b/infra/config/generated/builders/ci/Dawn Win10 x86 Builder/targets/chromium.dawn.json
@@ -1031,8 +1031,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -1058,8 +1058,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -1084,8 +1084,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -1111,8 +1111,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -1138,8 +1138,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -1163,8 +1163,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -1192,8 +1192,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -1221,8 +1221,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -1243,8 +1243,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -1273,8 +1273,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -1303,8 +1303,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -1340,8 +1340,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -1371,8 +1371,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -1401,8 +1401,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -1438,8 +1438,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -1478,8 +1478,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800,
diff --git a/infra/config/generated/builders/ci/Dawn Win10 x86 DEPS Builder/targets/chromium.dawn.json b/infra/config/generated/builders/ci/Dawn Win10 x86 DEPS Builder/targets/chromium.dawn.json index ae3d6dc..debe376 100644 --- a/infra/config/generated/builders/ci/Dawn Win10 x86 DEPS Builder/targets/chromium.dawn.json +++ b/infra/config/generated/builders/ci/Dawn Win10 x86 DEPS Builder/targets/chromium.dawn.json
@@ -458,8 +458,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -485,8 +485,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -511,8 +511,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -538,8 +538,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -565,8 +565,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -590,8 +590,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -619,8 +619,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -648,8 +648,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -670,8 +670,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -700,8 +700,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -730,8 +730,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -767,8 +767,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -798,8 +798,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -828,8 +828,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -865,8 +865,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -905,8 +905,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800,
diff --git "a/infra/config/generated/builders/ci/Dawn Win10 x86 DEPS Release \050NVIDIA\051/targets/chromium.dawn.json" "b/infra/config/generated/builders/ci/Dawn Win10 x86 DEPS Release \050NVIDIA\051/targets/chromium.dawn.json" index 7065438..26456843 100644 --- "a/infra/config/generated/builders/ci/Dawn Win10 x86 DEPS Release \050NVIDIA\051/targets/chromium.dawn.json" +++ "b/infra/config/generated/builders/ci/Dawn Win10 x86 DEPS Release \050NVIDIA\051/targets/chromium.dawn.json"
@@ -17,8 +17,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -44,8 +44,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -70,8 +70,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -97,8 +97,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -124,8 +124,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -149,8 +149,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -178,8 +178,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -207,8 +207,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -229,8 +229,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -259,8 +259,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -289,8 +289,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -326,8 +326,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -357,8 +357,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -387,8 +387,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -424,8 +424,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -464,8 +464,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800,
diff --git "a/infra/config/generated/builders/ci/Dawn Win10 x86 Release \050NVIDIA\051/targets/chromium.dawn.json" "b/infra/config/generated/builders/ci/Dawn Win10 x86 Release \050NVIDIA\051/targets/chromium.dawn.json" index 301b7ca..4bc1d3b32 100644 --- "a/infra/config/generated/builders/ci/Dawn Win10 x86 Release \050NVIDIA\051/targets/chromium.dawn.json" +++ "b/infra/config/generated/builders/ci/Dawn Win10 x86 Release \050NVIDIA\051/targets/chromium.dawn.json"
@@ -17,8 +17,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -44,8 +44,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -70,8 +70,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -97,8 +97,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -124,8 +124,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -149,8 +149,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -178,8 +178,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -207,8 +207,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -229,8 +229,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -259,8 +259,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -289,8 +289,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -326,8 +326,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -357,8 +357,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -387,8 +387,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -424,8 +424,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -464,8 +464,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800,
diff --git a/infra/config/generated/builders/ci/GPU FYI Win Builder/targets/chromium.gpu.fyi.json b/infra/config/generated/builders/ci/GPU FYI Win Builder/targets/chromium.gpu.fyi.json index 5a4bbb9..4333590 100644 --- a/infra/config/generated/builders/ci/GPU FYI Win Builder/targets/chromium.gpu.fyi.json +++ b/infra/config/generated/builders/ci/GPU FYI Win Builder/targets/chromium.gpu.fyi.json
@@ -11,8 +11,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -37,8 +37,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -67,8 +67,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -87,8 +87,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -111,8 +111,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -137,8 +137,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -160,8 +160,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -197,8 +197,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -242,8 +242,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -278,8 +278,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -314,8 +314,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -354,8 +354,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -385,8 +385,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -410,7 +410,7 @@ "--dont-restore-color-profile-after-test", "--test-machine-name", "${buildername}", - "--jobs=4" + "--jobs=1" ], "merge": { "script": "//testing/merge_scripts/standard_isolated_script_merge.py" @@ -429,8 +429,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -466,8 +466,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -502,8 +502,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -538,8 +538,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -576,8 +576,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -614,8 +614,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -652,45 +652,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", - "pool": "chromium.tests.gpu" - }, - "hard_timeout": 1800, - "idempotent": false, - "io_timeout": 1800, - "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com", - "shards": 2 - }, - "test": "telemetry_gpu_integration_test", - "test_id_prefix": "ninja://chrome/test:telemetry_gpu_integration_test/" - }, - { - "args": [ - "webgl1_conformance", - "--show-stdout", - "--browser=release", - "--passthrough", - "-v", - "--stable-jobs", - "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --use-angle=vulkan --use-cmd-decoder=passthrough --force_high_performance_gpu", - "--enforce-browser-version", - "--jobs=4" - ], - "merge": { - "script": "//testing/merge_scripts/standard_isolated_script_merge.py" - }, - "name": "webgl_conformance_vulkan_passthrough_tests", - "resultdb": { - "enable": true, - "has_native_resultdb_integration": true - }, - "swarming": { - "containment_type": "AUTO", - "dimensions": { - "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800,
diff --git "a/infra/config/generated/builders/ci/GPU FYI Win x64 Builder \050dbg\051/targets/chromium.gpu.fyi.json" "b/infra/config/generated/builders/ci/GPU FYI Win x64 Builder \050dbg\051/targets/chromium.gpu.fyi.json" index 046fd58..080a00a7 100644 --- "a/infra/config/generated/builders/ci/GPU FYI Win x64 Builder \050dbg\051/targets/chromium.gpu.fyi.json" +++ "b/infra/config/generated/builders/ci/GPU FYI Win x64 Builder \050dbg\051/targets/chromium.gpu.fyi.json"
@@ -11,8 +11,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -37,8 +37,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -67,8 +67,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -87,8 +87,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -111,8 +111,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -134,8 +134,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -171,8 +171,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -216,8 +216,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -252,8 +252,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -288,8 +288,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -328,8 +328,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -354,7 +354,7 @@ "--dont-restore-color-profile-after-test", "--test-machine-name", "${buildername}", - "--jobs=4" + "--jobs=1" ], "merge": { "script": "//testing/merge_scripts/standard_isolated_script_merge.py" @@ -373,8 +373,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -410,8 +410,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -446,8 +446,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -483,8 +483,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -521,45 +521,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", - "pool": "chromium.tests.gpu" - }, - "hard_timeout": 1800, - "idempotent": false, - "io_timeout": 1800, - "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com", - "shards": 2 - }, - "test": "telemetry_gpu_integration_test", - "test_id_prefix": "ninja://chrome/test:telemetry_gpu_integration_test/" - }, - { - "args": [ - "webgl1_conformance", - "--show-stdout", - "--browser=debug_x64", - "--passthrough", - "-v", - "--stable-jobs", - "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --use-angle=vulkan --use-cmd-decoder=passthrough --force_high_performance_gpu", - "--enforce-browser-version", - "--jobs=4" - ], - "merge": { - "script": "//testing/merge_scripts/standard_isolated_script_merge.py" - }, - "name": "webgl_conformance_vulkan_passthrough_tests", - "resultdb": { - "enable": true, - "has_native_resultdb_integration": true - }, - "swarming": { - "containment_type": "AUTO", - "dimensions": { - "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800,
diff --git a/infra/config/generated/builders/ci/GPU FYI Win x64 Builder/targets/chromium.gpu.fyi.json b/infra/config/generated/builders/ci/GPU FYI Win x64 Builder/targets/chromium.gpu.fyi.json index 12ccc65..44125e8 100644 --- a/infra/config/generated/builders/ci/GPU FYI Win x64 Builder/targets/chromium.gpu.fyi.json +++ b/infra/config/generated/builders/ci/GPU FYI Win x64 Builder/targets/chromium.gpu.fyi.json
@@ -3881,8 +3881,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -3907,8 +3907,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -3937,8 +3937,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -3957,8 +3957,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -3981,8 +3981,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -4007,8 +4007,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -4030,8 +4030,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -4067,8 +4067,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -4112,8 +4112,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -4148,8 +4148,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -4184,8 +4184,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -4224,8 +4224,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -4255,8 +4255,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -4280,7 +4280,7 @@ "--dont-restore-color-profile-after-test", "--test-machine-name", "${buildername}", - "--jobs=4" + "--jobs=1" ], "merge": { "script": "//testing/merge_scripts/standard_isolated_script_merge.py" @@ -4299,8 +4299,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -4336,8 +4336,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -4372,8 +4372,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -4408,8 +4408,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -4446,8 +4446,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -4484,8 +4484,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -4522,45 +4522,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", - "pool": "chromium.tests.gpu" - }, - "hard_timeout": 1800, - "idempotent": false, - "io_timeout": 1800, - "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com", - "shards": 2 - }, - "test": "telemetry_gpu_integration_test", - "test_id_prefix": "ninja://chrome/test:telemetry_gpu_integration_test/" - }, - { - "args": [ - "webgl1_conformance", - "--show-stdout", - "--browser=release_x64", - "--passthrough", - "-v", - "--stable-jobs", - "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --use-angle=vulkan --use-cmd-decoder=passthrough --force_high_performance_gpu", - "--enforce-browser-version", - "--jobs=4" - ], - "merge": { - "script": "//testing/merge_scripts/standard_isolated_script_merge.py" - }, - "name": "webgl_conformance_vulkan_passthrough_tests", - "resultdb": { - "enable": true, - "has_native_resultdb_integration": true - }, - "swarming": { - "containment_type": "AUTO", - "dimensions": { - "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800,
diff --git "a/infra/config/generated/builders/ci/GPU FYI Win x64 DX12 Vulkan Builder \050dbg\051/targets/chromium.gpu.fyi.json" "b/infra/config/generated/builders/ci/GPU FYI Win x64 DX12 Vulkan Builder \050dbg\051/targets/chromium.gpu.fyi.json" index f707b63..36ca4a5 100644 --- "a/infra/config/generated/builders/ci/GPU FYI Win x64 DX12 Vulkan Builder \050dbg\051/targets/chromium.gpu.fyi.json" +++ "b/infra/config/generated/builders/ci/GPU FYI Win x64 DX12 Vulkan Builder \050dbg\051/targets/chromium.gpu.fyi.json"
@@ -22,8 +22,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800,
diff --git a/infra/config/generated/builders/ci/GPU FYI Win x64 DX12 Vulkan Builder/targets/chromium.gpu.fyi.json b/infra/config/generated/builders/ci/GPU FYI Win x64 DX12 Vulkan Builder/targets/chromium.gpu.fyi.json index 8e7e192..0a2342b2 100644 --- a/infra/config/generated/builders/ci/GPU FYI Win x64 DX12 Vulkan Builder/targets/chromium.gpu.fyi.json +++ b/infra/config/generated/builders/ci/GPU FYI Win x64 DX12 Vulkan Builder/targets/chromium.gpu.fyi.json
@@ -22,8 +22,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800,
diff --git a/infra/config/generated/builders/ci/GPU FYI XR Win x64 Builder/targets/chromium.gpu.fyi.json b/infra/config/generated/builders/ci/GPU FYI XR Win x64 Builder/targets/chromium.gpu.fyi.json index 865d6ef..7629b72 100644 --- a/infra/config/generated/builders/ci/GPU FYI XR Win x64 Builder/targets/chromium.gpu.fyi.json +++ b/infra/config/generated/builders/ci/GPU FYI XR Win x64 Builder/targets/chromium.gpu.fyi.json
@@ -18,8 +18,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800,
diff --git "a/infra/config/generated/builders/ci/GPU Win x64 Builder \050dbg\051/targets/chromium.gpu.json" "b/infra/config/generated/builders/ci/GPU Win x64 Builder \050dbg\051/targets/chromium.gpu.json" index cd1c318..016367f 100644 --- "a/infra/config/generated/builders/ci/GPU Win x64 Builder \050dbg\051/targets/chromium.gpu.json" +++ "b/infra/config/generated/builders/ci/GPU Win x64 Builder \050dbg\051/targets/chromium.gpu.json"
@@ -10,8 +10,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu", "puppet_env": "production" }, @@ -37,8 +37,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu", "puppet_env": "production" }, @@ -68,8 +68,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu", "puppet_env": "production" }, @@ -95,8 +95,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu", "puppet_env": "production" }, @@ -119,8 +119,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu", "puppet_env": "production" }, @@ -157,8 +157,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu", "puppet_env": "production" }, @@ -203,8 +203,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu", "puppet_env": "production" }, @@ -240,8 +240,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu", "puppet_env": "production" }, @@ -277,8 +277,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu", "puppet_env": "production" }, @@ -318,8 +318,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu", "puppet_env": "production" }, @@ -345,7 +345,7 @@ "--dont-restore-color-profile-after-test", "--test-machine-name", "${buildername}", - "--jobs=4" + "--jobs=1" ], "merge": { "script": "//testing/merge_scripts/standard_isolated_script_merge.py" @@ -364,8 +364,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu", "puppet_env": "production" }, @@ -402,8 +402,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu", "puppet_env": "production" }, @@ -439,8 +439,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu", "puppet_env": "production" }, @@ -477,8 +477,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu", "puppet_env": "production" },
diff --git a/infra/config/generated/builders/ci/GPU Win x64 Builder/targets/chromium.gpu.json b/infra/config/generated/builders/ci/GPU Win x64 Builder/targets/chromium.gpu.json index 4234536..1aacb085 100644 --- a/infra/config/generated/builders/ci/GPU Win x64 Builder/targets/chromium.gpu.json +++ b/infra/config/generated/builders/ci/GPU Win x64 Builder/targets/chromium.gpu.json
@@ -10,8 +10,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu", "puppet_env": "production" }, @@ -37,8 +37,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu", "puppet_env": "production" }, @@ -68,8 +68,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu", "puppet_env": "production" }, @@ -95,8 +95,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu", "puppet_env": "production" }, @@ -119,8 +119,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu", "puppet_env": "production" }, @@ -157,8 +157,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu", "puppet_env": "production" }, @@ -203,8 +203,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu", "puppet_env": "production" }, @@ -240,8 +240,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu", "puppet_env": "production" }, @@ -277,8 +277,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu", "puppet_env": "production" }, @@ -318,8 +318,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu", "puppet_env": "production" }, @@ -345,7 +345,7 @@ "--dont-restore-color-profile-after-test", "--test-machine-name", "${buildername}", - "--jobs=4" + "--jobs=1" ], "merge": { "script": "//testing/merge_scripts/standard_isolated_script_merge.py" @@ -364,8 +364,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu", "puppet_env": "production" }, @@ -402,8 +402,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu", "puppet_env": "production" }, @@ -439,8 +439,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu", "puppet_env": "production" }, @@ -477,8 +477,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu", "puppet_env": "production" },
diff --git "a/infra/config/generated/builders/ci/Win10 FYI x64 DX12 Vulkan Debug \050NVIDIA\051/targets/chromium.gpu.fyi.json" "b/infra/config/generated/builders/ci/Win10 FYI x64 DX12 Vulkan Debug \050NVIDIA\051/targets/chromium.gpu.fyi.json" index 6f6c0c1..2c38695 100644 --- "a/infra/config/generated/builders/ci/Win10 FYI x64 DX12 Vulkan Debug \050NVIDIA\051/targets/chromium.gpu.fyi.json" +++ "b/infra/config/generated/builders/ci/Win10 FYI x64 DX12 Vulkan Debug \050NVIDIA\051/targets/chromium.gpu.fyi.json"
@@ -21,8 +21,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800,
diff --git "a/infra/config/generated/builders/ci/Win10 FYI x64 DX12 Vulkan Release \050NVIDIA\051/targets/chromium.gpu.fyi.json" "b/infra/config/generated/builders/ci/Win10 FYI x64 DX12 Vulkan Release \050NVIDIA\051/targets/chromium.gpu.fyi.json" index 686b461..150560f 100644 --- "a/infra/config/generated/builders/ci/Win10 FYI x64 DX12 Vulkan Release \050NVIDIA\051/targets/chromium.gpu.fyi.json" +++ "b/infra/config/generated/builders/ci/Win10 FYI x64 DX12 Vulkan Release \050NVIDIA\051/targets/chromium.gpu.fyi.json"
@@ -21,8 +21,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800,
diff --git "a/infra/config/generated/builders/ci/Win10 FYI x64 Debug \050NVIDIA\051/targets/chromium.gpu.fyi.json" "b/infra/config/generated/builders/ci/Win10 FYI x64 Debug \050NVIDIA\051/targets/chromium.gpu.fyi.json" index 2002889..cea7309 100644 --- "a/infra/config/generated/builders/ci/Win10 FYI x64 Debug \050NVIDIA\051/targets/chromium.gpu.fyi.json" +++ "b/infra/config/generated/builders/ci/Win10 FYI x64 Debug \050NVIDIA\051/targets/chromium.gpu.fyi.json"
@@ -10,8 +10,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -36,8 +36,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -66,8 +66,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -86,8 +86,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -110,8 +110,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -133,8 +133,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -170,8 +170,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -215,8 +215,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -251,8 +251,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -287,8 +287,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -327,8 +327,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -353,7 +353,7 @@ "--dont-restore-color-profile-after-test", "--test-machine-name", "${buildername}", - "--jobs=4" + "--jobs=1" ], "merge": { "script": "//testing/merge_scripts/standard_isolated_script_merge.py" @@ -372,8 +372,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -409,8 +409,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -445,8 +445,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -482,8 +482,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -520,45 +520,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", - "pool": "chromium.tests.gpu" - }, - "hard_timeout": 1800, - "idempotent": false, - "io_timeout": 1800, - "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com", - "shards": 2 - }, - "test": "telemetry_gpu_integration_test", - "test_id_prefix": "ninja://chrome/test:telemetry_gpu_integration_test/" - }, - { - "args": [ - "webgl1_conformance", - "--show-stdout", - "--browser=debug_x64", - "--passthrough", - "-v", - "--stable-jobs", - "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --use-angle=vulkan --use-cmd-decoder=passthrough --force_high_performance_gpu", - "--enforce-browser-version", - "--jobs=4" - ], - "merge": { - "script": "//testing/merge_scripts/standard_isolated_script_merge.py" - }, - "name": "webgl_conformance_vulkan_passthrough_tests", - "resultdb": { - "enable": true, - "has_native_resultdb_integration": true - }, - "swarming": { - "containment_type": "AUTO", - "dimensions": { - "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800,
diff --git "a/infra/config/generated/builders/ci/Win10 FYI x64 Release \050NVIDIA\051/targets/chromium.gpu.fyi.json" "b/infra/config/generated/builders/ci/Win10 FYI x64 Release \050NVIDIA\051/targets/chromium.gpu.fyi.json" index 2cbac41..7fa229b 100644 --- "a/infra/config/generated/builders/ci/Win10 FYI x64 Release \050NVIDIA\051/targets/chromium.gpu.fyi.json" +++ "b/infra/config/generated/builders/ci/Win10 FYI x64 Release \050NVIDIA\051/targets/chromium.gpu.fyi.json"
@@ -10,8 +10,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -36,8 +36,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -66,8 +66,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -86,8 +86,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -110,8 +110,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -136,8 +136,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -159,8 +159,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -196,8 +196,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -241,8 +241,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -277,8 +277,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -313,8 +313,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -353,8 +353,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -384,8 +384,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -409,7 +409,7 @@ "--dont-restore-color-profile-after-test", "--test-machine-name", "${buildername}", - "--jobs=4" + "--jobs=1" ], "merge": { "script": "//testing/merge_scripts/standard_isolated_script_merge.py" @@ -428,8 +428,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -465,8 +465,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -501,8 +501,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -537,8 +537,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -575,8 +575,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -613,8 +613,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -651,45 +651,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", - "pool": "chromium.tests.gpu" - }, - "hard_timeout": 1800, - "idempotent": false, - "io_timeout": 1800, - "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com", - "shards": 2 - }, - "test": "telemetry_gpu_integration_test", - "test_id_prefix": "ninja://chrome/test:telemetry_gpu_integration_test/" - }, - { - "args": [ - "webgl1_conformance", - "--show-stdout", - "--browser=release_x64", - "--passthrough", - "-v", - "--stable-jobs", - "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --use-angle=vulkan --use-cmd-decoder=passthrough --force_high_performance_gpu", - "--enforce-browser-version", - "--jobs=4" - ], - "merge": { - "script": "//testing/merge_scripts/standard_isolated_script_merge.py" - }, - "name": "webgl_conformance_vulkan_passthrough_tests", - "resultdb": { - "enable": true, - "has_native_resultdb_integration": true - }, - "swarming": { - "containment_type": "AUTO", - "dimensions": { - "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800,
diff --git "a/infra/config/generated/builders/ci/Win10 FYI x64 Release XR Perf \050NVIDIA\051/targets/chromium.gpu.fyi.json" "b/infra/config/generated/builders/ci/Win10 FYI x64 Release XR Perf \050NVIDIA\051/targets/chromium.gpu.fyi.json" index 865d6ef..7629b72 100644 --- "a/infra/config/generated/builders/ci/Win10 FYI x64 Release XR Perf \050NVIDIA\051/targets/chromium.gpu.fyi.json" +++ "b/infra/config/generated/builders/ci/Win10 FYI x64 Release XR Perf \050NVIDIA\051/targets/chromium.gpu.fyi.json"
@@ -18,8 +18,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800,
diff --git "a/infra/config/generated/builders/ci/Win10 FYI x86 Release \050NVIDIA\051/targets/chromium.gpu.fyi.json" "b/infra/config/generated/builders/ci/Win10 FYI x86 Release \050NVIDIA\051/targets/chromium.gpu.fyi.json" index fb8c44e..551b618 100644 --- "a/infra/config/generated/builders/ci/Win10 FYI x86 Release \050NVIDIA\051/targets/chromium.gpu.fyi.json" +++ "b/infra/config/generated/builders/ci/Win10 FYI x86 Release \050NVIDIA\051/targets/chromium.gpu.fyi.json"
@@ -10,8 +10,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -36,8 +36,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -66,8 +66,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -86,8 +86,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -110,8 +110,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -136,8 +136,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -159,8 +159,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -196,8 +196,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -241,8 +241,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -277,8 +277,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -313,8 +313,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -353,8 +353,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -384,8 +384,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -409,7 +409,7 @@ "--dont-restore-color-profile-after-test", "--test-machine-name", "${buildername}", - "--jobs=4" + "--jobs=1" ], "merge": { "script": "//testing/merge_scripts/standard_isolated_script_merge.py" @@ -428,8 +428,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -465,8 +465,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -501,8 +501,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -537,8 +537,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -575,8 +575,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -613,8 +613,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -651,45 +651,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", - "pool": "chromium.tests.gpu" - }, - "hard_timeout": 1800, - "idempotent": false, - "io_timeout": 1800, - "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com", - "shards": 2 - }, - "test": "telemetry_gpu_integration_test", - "test_id_prefix": "ninja://chrome/test:telemetry_gpu_integration_test/" - }, - { - "args": [ - "webgl1_conformance", - "--show-stdout", - "--browser=release", - "--passthrough", - "-v", - "--stable-jobs", - "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --use-angle=vulkan --use-cmd-decoder=passthrough --force_high_performance_gpu", - "--enforce-browser-version", - "--jobs=4" - ], - "merge": { - "script": "//testing/merge_scripts/standard_isolated_script_merge.py" - }, - "name": "webgl_conformance_vulkan_passthrough_tests", - "resultdb": { - "enable": true, - "has_native_resultdb_integration": true - }, - "swarming": { - "containment_type": "AUTO", - "dimensions": { - "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800,
diff --git "a/infra/config/generated/builders/ci/Win10 x64 Debug \050NVIDIA\051/targets/chromium.gpu.json" "b/infra/config/generated/builders/ci/Win10 x64 Debug \050NVIDIA\051/targets/chromium.gpu.json" index cd1c318..016367f 100644 --- "a/infra/config/generated/builders/ci/Win10 x64 Debug \050NVIDIA\051/targets/chromium.gpu.json" +++ "b/infra/config/generated/builders/ci/Win10 x64 Debug \050NVIDIA\051/targets/chromium.gpu.json"
@@ -10,8 +10,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu", "puppet_env": "production" }, @@ -37,8 +37,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu", "puppet_env": "production" }, @@ -68,8 +68,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu", "puppet_env": "production" }, @@ -95,8 +95,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu", "puppet_env": "production" }, @@ -119,8 +119,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu", "puppet_env": "production" }, @@ -157,8 +157,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu", "puppet_env": "production" }, @@ -203,8 +203,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu", "puppet_env": "production" }, @@ -240,8 +240,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu", "puppet_env": "production" }, @@ -277,8 +277,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu", "puppet_env": "production" }, @@ -318,8 +318,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu", "puppet_env": "production" }, @@ -345,7 +345,7 @@ "--dont-restore-color-profile-after-test", "--test-machine-name", "${buildername}", - "--jobs=4" + "--jobs=1" ], "merge": { "script": "//testing/merge_scripts/standard_isolated_script_merge.py" @@ -364,8 +364,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu", "puppet_env": "production" }, @@ -402,8 +402,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu", "puppet_env": "production" }, @@ -439,8 +439,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu", "puppet_env": "production" }, @@ -477,8 +477,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu", "puppet_env": "production" },
diff --git "a/infra/config/generated/builders/ci/Win10 x64 Release \050NVIDIA\051/targets/chromium.gpu.json" "b/infra/config/generated/builders/ci/Win10 x64 Release \050NVIDIA\051/targets/chromium.gpu.json" index 4234536..1aacb085 100644 --- "a/infra/config/generated/builders/ci/Win10 x64 Release \050NVIDIA\051/targets/chromium.gpu.json" +++ "b/infra/config/generated/builders/ci/Win10 x64 Release \050NVIDIA\051/targets/chromium.gpu.json"
@@ -10,8 +10,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu", "puppet_env": "production" }, @@ -37,8 +37,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu", "puppet_env": "production" }, @@ -68,8 +68,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu", "puppet_env": "production" }, @@ -95,8 +95,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu", "puppet_env": "production" }, @@ -119,8 +119,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu", "puppet_env": "production" }, @@ -157,8 +157,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu", "puppet_env": "production" }, @@ -203,8 +203,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu", "puppet_env": "production" }, @@ -240,8 +240,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu", "puppet_env": "production" }, @@ -277,8 +277,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu", "puppet_env": "production" }, @@ -318,8 +318,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu", "puppet_env": "production" }, @@ -345,7 +345,7 @@ "--dont-restore-color-profile-after-test", "--test-machine-name", "${buildername}", - "--jobs=4" + "--jobs=1" ], "merge": { "script": "//testing/merge_scripts/standard_isolated_script_merge.py" @@ -364,8 +364,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu", "puppet_env": "production" }, @@ -402,8 +402,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu", "puppet_env": "production" }, @@ -439,8 +439,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu", "puppet_env": "production" }, @@ -477,8 +477,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu", "puppet_env": "production" },
diff --git a/infra/config/generated/builders/ci/android-desktop-x64-compile-rel/targets/chromium.android.desktop.json b/infra/config/generated/builders/ci/android-desktop-x64-compile-rel/targets/chromium.android.desktop.json index 82fa14d..a47c3e621 100644 --- a/infra/config/generated/builders/ci/android-desktop-x64-compile-rel/targets/chromium.android.desktop.json +++ b/infra/config/generated/builders/ci/android-desktop-x64-compile-rel/targets/chromium.android.desktop.json
@@ -112,7 +112,6 @@ "--recover-devices" ], "description": "Run with android_34_desktop_x64", - "experiment_percentage": 100, "merge": { "args": [ "--bucket",
diff --git a/infra/config/generated/builders/ci/android-desktop-x64-rel-14-tests/targets/chromium.android.desktop.json b/infra/config/generated/builders/ci/android-desktop-x64-rel-14-tests/targets/chromium.android.desktop.json index a7095ce..0361960 100644 --- a/infra/config/generated/builders/ci/android-desktop-x64-rel-14-tests/targets/chromium.android.desktop.json +++ b/infra/config/generated/builders/ci/android-desktop-x64-rel-14-tests/targets/chromium.android.desktop.json
@@ -111,7 +111,6 @@ "--recover-devices" ], "description": "Run with android_34_desktop_x64", - "experiment_percentage": 100, "merge": { "args": [ "--bucket",
diff --git a/infra/config/generated/builders/ci/ios17-beta-simulator/targets/chromium.fyi.json b/infra/config/generated/builders/ci/ios17-beta-simulator/targets/chromium.fyi.json index 85db59c..b9708706 100644 --- a/infra/config/generated/builders/ci/ios17-beta-simulator/targets/chromium.fyi.json +++ b/infra/config/generated/builders/ci/ios17-beta-simulator/targets/chromium.fyi.json
@@ -13,7 +13,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -42,7 +42,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -61,7 +61,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -90,7 +90,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -109,7 +109,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -138,7 +138,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -157,7 +157,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -186,7 +186,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -205,7 +205,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -234,7 +234,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -253,7 +253,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -282,7 +282,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -301,7 +301,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -330,7 +330,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -349,7 +349,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -378,7 +378,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -397,7 +397,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -426,7 +426,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -445,7 +445,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -474,7 +474,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -493,7 +493,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -522,7 +522,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -541,7 +541,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -570,7 +570,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -589,7 +589,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -618,7 +618,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -637,7 +637,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -666,7 +666,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -685,7 +685,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -714,7 +714,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -733,7 +733,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -762,7 +762,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -781,7 +781,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -810,7 +810,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -829,7 +829,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -858,7 +858,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -877,7 +877,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -906,7 +906,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -925,7 +925,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -954,7 +954,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -973,7 +973,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -1002,7 +1002,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -1024,7 +1024,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -1053,7 +1053,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -1076,7 +1076,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -1105,7 +1105,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -1130,7 +1130,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -1159,7 +1159,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -1184,7 +1184,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -1213,7 +1213,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -1238,7 +1238,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -1267,7 +1267,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -1292,7 +1292,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -1321,7 +1321,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -1344,7 +1344,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -1373,7 +1373,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -1396,7 +1396,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -1425,7 +1425,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -1448,7 +1448,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -1477,7 +1477,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -1499,7 +1499,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -1528,7 +1528,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -1552,7 +1552,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -1581,7 +1581,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -1606,7 +1606,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -1635,7 +1635,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -1655,7 +1655,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -1684,7 +1684,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -1703,7 +1703,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -1732,7 +1732,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -1751,7 +1751,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -1780,7 +1780,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -1802,7 +1802,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -1831,7 +1831,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -1854,7 +1854,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -1883,7 +1883,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -1903,7 +1903,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -1932,7 +1932,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -1951,7 +1951,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -1980,7 +1980,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -2000,7 +2000,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -2029,7 +2029,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -2049,7 +2049,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -2078,7 +2078,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -2097,7 +2097,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -2126,7 +2126,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -2146,7 +2146,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -2175,7 +2175,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -2195,7 +2195,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -2224,7 +2224,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -2243,7 +2243,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -2272,7 +2272,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -2291,7 +2291,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -2320,7 +2320,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -2339,7 +2339,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -2368,7 +2368,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -2387,7 +2387,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -2416,7 +2416,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -2438,7 +2438,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -2467,7 +2467,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -2489,7 +2489,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -2518,7 +2518,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -2537,7 +2537,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -2566,7 +2566,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -2585,7 +2585,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -2614,7 +2614,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -2633,7 +2633,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -2662,7 +2662,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -2681,7 +2681,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -2710,7 +2710,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -2729,7 +2729,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -2758,7 +2758,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -2777,7 +2777,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -2806,7 +2806,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -2825,7 +2825,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -2854,7 +2854,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -2873,7 +2873,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -2902,7 +2902,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -2921,7 +2921,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -2950,7 +2950,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -2969,7 +2969,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -2998,7 +2998,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -3017,7 +3017,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -3046,7 +3046,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -3065,7 +3065,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -3094,7 +3094,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -3113,7 +3113,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -3142,7 +3142,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -3161,7 +3161,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -3190,7 +3190,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -3209,7 +3209,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -3238,7 +3238,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -3257,7 +3257,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -3286,7 +3286,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -3305,7 +3305,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -3334,7 +3334,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -3353,7 +3353,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -3382,7 +3382,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -3401,7 +3401,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -3430,7 +3430,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -3449,7 +3449,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -3478,7 +3478,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -3497,7 +3497,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -3526,7 +3526,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -3545,7 +3545,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -3574,7 +3574,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -3593,7 +3593,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -3622,7 +3622,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ],
diff --git a/infra/config/generated/builders/ci/ios17-sdk-device/properties.json b/infra/config/generated/builders/ci/ios17-sdk-device/properties.json index 09f33f4..164204e 100644 --- a/infra/config/generated/builders/ci/ios17-sdk-device/properties.json +++ b/infra/config/generated/builders/ci/ios17-sdk-device/properties.json
@@ -67,5 +67,5 @@ }, "builder_group": "chromium.fyi", "recipe": "chromium", - "xcode_build_version": "16c5023f" + "xcode_build_version": "16c5031c" } \ No newline at end of file
diff --git a/infra/config/generated/builders/ci/ios17-sdk-simulator/properties.json b/infra/config/generated/builders/ci/ios17-sdk-simulator/properties.json index db275c3..114f198 100644 --- a/infra/config/generated/builders/ci/ios17-sdk-simulator/properties.json +++ b/infra/config/generated/builders/ci/ios17-sdk-simulator/properties.json
@@ -73,5 +73,5 @@ }, "builder_group": "chromium.fyi", "recipe": "chromium", - "xcode_build_version": "16c5023f" + "xcode_build_version": "16c5031c" } \ No newline at end of file
diff --git a/infra/config/generated/builders/ci/ios17-sdk-simulator/targets/chromium.fyi.json b/infra/config/generated/builders/ci/ios17-sdk-simulator/targets/chromium.fyi.json index 516bcd7d..17611bd 100644 --- a/infra/config/generated/builders/ci/ios17-sdk-simulator/targets/chromium.fyi.json +++ b/infra/config/generated/builders/ci/ios17-sdk-simulator/targets/chromium.fyi.json
@@ -13,7 +13,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -42,7 +42,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -61,7 +61,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -90,7 +90,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -109,7 +109,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -138,7 +138,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -157,7 +157,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -186,7 +186,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -205,7 +205,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -234,7 +234,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -253,7 +253,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -282,7 +282,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -301,7 +301,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -330,7 +330,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -349,7 +349,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -378,7 +378,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -397,7 +397,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -426,7 +426,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -445,7 +445,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -474,7 +474,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -493,7 +493,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -522,7 +522,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -541,7 +541,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -570,7 +570,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -589,7 +589,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -618,7 +618,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -637,7 +637,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -666,7 +666,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -685,7 +685,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -714,7 +714,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -733,7 +733,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -762,7 +762,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -781,7 +781,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -810,7 +810,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -829,7 +829,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -858,7 +858,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -877,7 +877,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -906,7 +906,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -925,7 +925,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -954,7 +954,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -973,7 +973,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -1002,7 +1002,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -1022,7 +1022,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -1051,7 +1051,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -1072,7 +1072,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -1101,7 +1101,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -1124,7 +1124,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -1153,7 +1153,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -1176,7 +1176,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -1205,7 +1205,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -1228,7 +1228,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -1257,7 +1257,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -1280,7 +1280,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -1309,7 +1309,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -1330,7 +1330,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -1359,7 +1359,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -1380,7 +1380,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -1409,7 +1409,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -1430,7 +1430,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -1459,7 +1459,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -1479,7 +1479,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -1508,7 +1508,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -1530,7 +1530,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -1559,7 +1559,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -1582,7 +1582,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -1611,7 +1611,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -1631,7 +1631,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -1660,7 +1660,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -1679,7 +1679,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -1708,7 +1708,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -1727,7 +1727,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -1756,7 +1756,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -1776,7 +1776,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -1805,7 +1805,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -1826,7 +1826,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -1855,7 +1855,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -1875,7 +1875,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -1904,7 +1904,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -1923,7 +1923,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -1952,7 +1952,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -1971,7 +1971,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -2000,7 +2000,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -2020,7 +2020,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -2049,7 +2049,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -2069,7 +2069,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -2098,7 +2098,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -2117,7 +2117,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -2146,7 +2146,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -2165,7 +2165,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -2194,7 +2194,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -2213,7 +2213,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -2242,7 +2242,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -2261,7 +2261,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -2290,7 +2290,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -2310,7 +2310,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -2339,7 +2339,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -2359,7 +2359,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -2388,7 +2388,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -2407,7 +2407,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -2436,7 +2436,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -2455,7 +2455,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -2484,7 +2484,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -2503,7 +2503,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -2532,7 +2532,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -2551,7 +2551,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -2580,7 +2580,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -2599,7 +2599,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -2628,7 +2628,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -2647,7 +2647,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -2676,7 +2676,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -2695,7 +2695,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -2724,7 +2724,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -2743,7 +2743,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -2772,7 +2772,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -2791,7 +2791,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -2820,7 +2820,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -2839,7 +2839,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -2868,7 +2868,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -2887,7 +2887,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -2916,7 +2916,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -2935,7 +2935,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -2964,7 +2964,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -2983,7 +2983,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -3012,7 +3012,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -3031,7 +3031,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -3060,7 +3060,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -3079,7 +3079,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -3108,7 +3108,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -3127,7 +3127,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -3156,7 +3156,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -3175,7 +3175,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -3204,7 +3204,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -3223,7 +3223,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -3252,7 +3252,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -3271,7 +3271,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -3300,7 +3300,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -3319,7 +3319,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -3348,7 +3348,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -3367,7 +3367,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -3396,7 +3396,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -3415,7 +3415,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -3444,7 +3444,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -3463,7 +3463,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -3492,7 +3492,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ],
diff --git a/infra/config/generated/builders/ci/ios18-beta-simulator/targets/chromium.fyi.json b/infra/config/generated/builders/ci/ios18-beta-simulator/targets/chromium.fyi.json index 2cdb1a8..7a23365 100644 --- a/infra/config/generated/builders/ci/ios18-beta-simulator/targets/chromium.fyi.json +++ b/infra/config/generated/builders/ci/ios18-beta-simulator/targets/chromium.fyi.json
@@ -13,7 +13,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -42,7 +42,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -61,7 +61,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -90,7 +90,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -109,7 +109,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -138,7 +138,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -157,7 +157,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -186,7 +186,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -205,7 +205,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -234,7 +234,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -253,7 +253,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -282,7 +282,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -301,7 +301,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -330,7 +330,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -349,7 +349,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -378,7 +378,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -397,7 +397,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -426,7 +426,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -445,7 +445,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -474,7 +474,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -493,7 +493,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -522,7 +522,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -541,7 +541,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -570,7 +570,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -589,7 +589,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -618,7 +618,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -637,7 +637,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -666,7 +666,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -685,7 +685,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -714,7 +714,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -733,7 +733,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -762,7 +762,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -781,7 +781,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -810,7 +810,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -829,7 +829,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -858,7 +858,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -880,7 +880,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -909,7 +909,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -932,7 +932,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -961,7 +961,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -984,7 +984,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -1013,7 +1013,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -1036,7 +1036,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -1065,7 +1065,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -1090,7 +1090,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -1119,7 +1119,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -1144,7 +1144,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -1173,7 +1173,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -1198,7 +1198,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -1227,7 +1227,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -1252,7 +1252,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -1281,7 +1281,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -1306,7 +1306,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -1335,7 +1335,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -1360,7 +1360,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -1389,7 +1389,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -1414,7 +1414,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -1443,7 +1443,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -1466,7 +1466,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -1495,7 +1495,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -1518,7 +1518,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -1547,7 +1547,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -1570,7 +1570,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -1599,7 +1599,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -1622,7 +1622,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -1651,7 +1651,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -1674,7 +1674,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -1703,7 +1703,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -1725,7 +1725,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -1754,7 +1754,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -1776,7 +1776,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -1805,7 +1805,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -1827,7 +1827,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -1856,7 +1856,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -1880,7 +1880,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -1909,7 +1909,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -1934,7 +1934,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -1963,7 +1963,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -1988,7 +1988,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -2017,7 +2017,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -2042,7 +2042,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -2071,7 +2071,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -2091,7 +2091,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -2120,7 +2120,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -2139,7 +2139,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -2168,7 +2168,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -2187,7 +2187,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -2216,7 +2216,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -2235,7 +2235,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -2264,7 +2264,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -2286,7 +2286,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -2315,7 +2315,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -2338,7 +2338,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -2367,7 +2367,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -2390,7 +2390,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -2419,7 +2419,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -2442,7 +2442,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -2471,7 +2471,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -2491,7 +2491,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -2520,7 +2520,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -2540,7 +2540,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -2569,7 +2569,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -2588,7 +2588,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -2617,7 +2617,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -2637,7 +2637,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -2666,7 +2666,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -2685,7 +2685,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -2714,7 +2714,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -2733,7 +2733,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -2762,7 +2762,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -2781,7 +2781,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -2810,7 +2810,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -2829,7 +2829,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -2858,7 +2858,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -2880,7 +2880,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -2909,7 +2909,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -2931,7 +2931,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -2960,7 +2960,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -2982,7 +2982,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -3011,7 +3011,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -3030,7 +3030,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -3059,7 +3059,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -3078,7 +3078,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -3107,7 +3107,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -3126,7 +3126,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -3155,7 +3155,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -3174,7 +3174,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -3203,7 +3203,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -3222,7 +3222,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -3251,7 +3251,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -3270,7 +3270,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -3299,7 +3299,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -3318,7 +3318,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -3347,7 +3347,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -3366,7 +3366,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -3395,7 +3395,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -3414,7 +3414,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -3443,7 +3443,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -3462,7 +3462,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -3491,7 +3491,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -3510,7 +3510,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -3539,7 +3539,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -3558,7 +3558,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -3587,7 +3587,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -3606,7 +3606,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -3635,7 +3635,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -3654,7 +3654,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -3683,7 +3683,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -3702,7 +3702,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -3731,7 +3731,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -3750,7 +3750,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -3779,7 +3779,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -3798,7 +3798,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -3827,7 +3827,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -3846,7 +3846,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -3875,7 +3875,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -3894,7 +3894,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -3923,7 +3923,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -3942,7 +3942,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -3971,7 +3971,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -3990,7 +3990,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -4019,7 +4019,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -4038,7 +4038,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -4067,7 +4067,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -4086,7 +4086,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -4115,7 +4115,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -4134,7 +4134,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -4163,7 +4163,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ],
diff --git a/infra/config/generated/builders/ci/ios18-sdk-simulator/properties.json b/infra/config/generated/builders/ci/ios18-sdk-simulator/properties.json index 9b9ed62..923c95f 100644 --- a/infra/config/generated/builders/ci/ios18-sdk-simulator/properties.json +++ b/infra/config/generated/builders/ci/ios18-sdk-simulator/properties.json
@@ -73,5 +73,5 @@ }, "builder_group": "chromium.fyi", "recipe": "chromium", - "xcode_build_version": "16c5023f" + "xcode_build_version": "16c5031c" } \ No newline at end of file
diff --git a/infra/config/generated/builders/ci/ios18-sdk-simulator/targets/chromium.fyi.json b/infra/config/generated/builders/ci/ios18-sdk-simulator/targets/chromium.fyi.json index 57ff1e9..5eca029c 100644 --- a/infra/config/generated/builders/ci/ios18-sdk-simulator/targets/chromium.fyi.json +++ b/infra/config/generated/builders/ci/ios18-sdk-simulator/targets/chromium.fyi.json
@@ -13,7 +13,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -42,7 +42,7 @@ "path": "Runtime-ios-17.5" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -61,7 +61,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -90,7 +90,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -109,7 +109,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -138,7 +138,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -157,7 +157,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -186,7 +186,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -205,7 +205,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -234,7 +234,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -253,7 +253,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -282,7 +282,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -301,7 +301,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -330,7 +330,7 @@ "path": "Runtime-ios-17.5" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -349,7 +349,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -378,7 +378,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -397,7 +397,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -426,7 +426,7 @@ "path": "Runtime-ios-17.5" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -445,7 +445,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -474,7 +474,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -493,7 +493,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -522,7 +522,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -541,7 +541,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -570,7 +570,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -589,7 +589,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -618,7 +618,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -637,7 +637,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -666,7 +666,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -685,7 +685,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -714,7 +714,7 @@ "path": "Runtime-ios-17.5" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -733,7 +733,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -762,7 +762,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -781,7 +781,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -810,7 +810,7 @@ "path": "Runtime-ios-17.5" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -829,7 +829,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -858,7 +858,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -877,7 +877,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -906,7 +906,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -925,7 +925,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -954,7 +954,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -973,7 +973,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -1002,7 +1002,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -1021,7 +1021,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -1050,7 +1050,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -1069,7 +1069,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -1098,7 +1098,7 @@ "path": "Runtime-ios-17.5" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -1117,7 +1117,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -1146,7 +1146,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -1168,7 +1168,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -1197,7 +1197,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -1220,7 +1220,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -1249,7 +1249,7 @@ "path": "Runtime-ios-17.5" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -1272,7 +1272,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -1301,7 +1301,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -1326,7 +1326,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -1355,7 +1355,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -1380,7 +1380,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -1409,7 +1409,7 @@ "path": "Runtime-ios-17.5" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -1434,7 +1434,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -1463,7 +1463,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -1488,7 +1488,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -1517,7 +1517,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -1542,7 +1542,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -1571,7 +1571,7 @@ "path": "Runtime-ios-17.5" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -1596,7 +1596,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -1625,7 +1625,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -1648,7 +1648,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -1677,7 +1677,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -1700,7 +1700,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -1729,7 +1729,7 @@ "path": "Runtime-ios-17.5" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -1752,7 +1752,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -1781,7 +1781,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -1804,7 +1804,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -1833,7 +1833,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -1855,7 +1855,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -1884,7 +1884,7 @@ "path": "Runtime-ios-17.5" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -1906,7 +1906,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -1935,7 +1935,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -1959,7 +1959,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -1988,7 +1988,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -2013,7 +2013,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -2042,7 +2042,7 @@ "path": "Runtime-ios-17.5" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -2067,7 +2067,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -2096,7 +2096,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -2116,7 +2116,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -2145,7 +2145,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -2164,7 +2164,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -2193,7 +2193,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -2212,7 +2212,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -2241,7 +2241,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -2260,7 +2260,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -2289,7 +2289,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -2311,7 +2311,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -2340,7 +2340,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -2363,7 +2363,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -2392,7 +2392,7 @@ "path": "Runtime-ios-17.5" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -2415,7 +2415,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -2444,7 +2444,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -2464,7 +2464,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -2493,7 +2493,7 @@ "path": "Runtime-ios-17.5" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -2512,7 +2512,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -2541,7 +2541,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -2561,7 +2561,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -2590,7 +2590,7 @@ "path": "Runtime-ios-17.5" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -2610,7 +2610,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -2639,7 +2639,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -2658,7 +2658,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -2687,7 +2687,7 @@ "path": "Runtime-ios-17.5" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -2707,7 +2707,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -2736,7 +2736,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -2756,7 +2756,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -2785,7 +2785,7 @@ "path": "Runtime-ios-17.5" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -2804,7 +2804,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -2833,7 +2833,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -2852,7 +2852,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -2881,7 +2881,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -2900,7 +2900,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -2929,7 +2929,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -2948,7 +2948,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -2977,7 +2977,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -2996,7 +2996,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -3025,7 +3025,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -3047,7 +3047,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -3076,7 +3076,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -3098,7 +3098,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -3127,7 +3127,7 @@ "path": "Runtime-ios-17.5" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -3149,7 +3149,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -3178,7 +3178,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -3197,7 +3197,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -3226,7 +3226,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -3245,7 +3245,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -3274,7 +3274,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -3293,7 +3293,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -3322,7 +3322,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -3341,7 +3341,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -3370,7 +3370,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -3389,7 +3389,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -3418,7 +3418,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -3437,7 +3437,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -3466,7 +3466,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -3485,7 +3485,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -3514,7 +3514,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -3533,7 +3533,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -3562,7 +3562,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -3581,7 +3581,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -3610,7 +3610,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -3629,7 +3629,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -3658,7 +3658,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -3677,7 +3677,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -3706,7 +3706,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -3725,7 +3725,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -3754,7 +3754,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -3773,7 +3773,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -3802,7 +3802,7 @@ "path": "Runtime-ios-17.5" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -3821,7 +3821,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -3850,7 +3850,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -3869,7 +3869,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -3898,7 +3898,7 @@ "path": "Runtime-ios-17.5" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -3917,7 +3917,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -3946,7 +3946,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -3965,7 +3965,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -3994,7 +3994,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -4013,7 +4013,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -4042,7 +4042,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -4061,7 +4061,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -4090,7 +4090,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -4109,7 +4109,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -4138,7 +4138,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -4157,7 +4157,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -4186,7 +4186,7 @@ "path": "Runtime-ios-17.5" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -4205,7 +4205,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -4234,7 +4234,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -4253,7 +4253,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -4282,7 +4282,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -4301,7 +4301,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -4330,7 +4330,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -4349,7 +4349,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -4378,7 +4378,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -4397,7 +4397,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -4426,7 +4426,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -4445,7 +4445,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -4474,7 +4474,7 @@ "path": "Runtime-ios-17.5" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -4493,7 +4493,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -4522,7 +4522,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ],
diff --git a/infra/config/generated/builders/ci/win-angle-chromium-x64-builder/targets/chromium.angle.json b/infra/config/generated/builders/ci/win-angle-chromium-x64-builder/targets/chromium.angle.json index 773a7f22..530c308b 100644 --- a/infra/config/generated/builders/ci/win-angle-chromium-x64-builder/targets/chromium.angle.json +++ b/infra/config/generated/builders/ci/win-angle-chromium-x64-builder/targets/chromium.angle.json
@@ -216,8 +216,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "idempotent": false, @@ -252,8 +252,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "idempotent": false, @@ -288,8 +288,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "idempotent": false, @@ -324,43 +324,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", - "pool": "chromium.tests.gpu" - }, - "idempotent": false, - "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com", - "shards": 2 - }, - "test": "telemetry_gpu_integration_test", - "test_id_prefix": "ninja://chrome/test:telemetry_gpu_integration_test/" - }, - { - "args": [ - "webgl1_conformance", - "--show-stdout", - "--browser=release_x64", - "--passthrough", - "-v", - "--stable-jobs", - "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --use-angle=vulkan --use-cmd-decoder=passthrough --force_high_performance_gpu", - "--enforce-browser-version", - "--jobs=4" - ], - "merge": { - "script": "//testing/merge_scripts/standard_isolated_script_merge.py" - }, - "name": "webgl_conformance_vulkan_passthrough_tests", - "resultdb": { - "enable": true, - "has_native_resultdb_integration": true - }, - "swarming": { - "containment_type": "AUTO", - "dimensions": { - "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "idempotent": false,
diff --git a/infra/config/generated/builders/ci/win10-angle-chromium-x64-nvidia/targets/chromium.angle.json b/infra/config/generated/builders/ci/win10-angle-chromium-x64-nvidia/targets/chromium.angle.json index d4d62d7..b6a31a33 100644 --- a/infra/config/generated/builders/ci/win10-angle-chromium-x64-nvidia/targets/chromium.angle.json +++ b/infra/config/generated/builders/ci/win10-angle-chromium-x64-nvidia/targets/chromium.angle.json
@@ -29,8 +29,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "idempotent": false, @@ -65,8 +65,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "idempotent": false, @@ -101,8 +101,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "idempotent": false, @@ -137,43 +137,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", - "pool": "chromium.tests.gpu" - }, - "idempotent": false, - "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com", - "shards": 2 - }, - "test": "telemetry_gpu_integration_test", - "test_id_prefix": "ninja://chrome/test:telemetry_gpu_integration_test/" - }, - { - "args": [ - "webgl1_conformance", - "--show-stdout", - "--browser=release_x64", - "--passthrough", - "-v", - "--stable-jobs", - "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --use-angle=vulkan --use-cmd-decoder=passthrough --force_high_performance_gpu", - "--enforce-browser-version", - "--jobs=4" - ], - "merge": { - "script": "//testing/merge_scripts/standard_isolated_script_merge.py" - }, - "name": "webgl_conformance_vulkan_passthrough_tests", - "resultdb": { - "enable": true, - "has_native_resultdb_integration": true - }, - "swarming": { - "containment_type": "AUTO", - "dimensions": { - "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "idempotent": false,
diff --git a/infra/config/generated/builders/ci/win10-code-coverage/targets/chromium.coverage.json b/infra/config/generated/builders/ci/win10-code-coverage/targets/chromium.coverage.json index 008fbc7..c8f72a1 100644 --- a/infra/config/generated/builders/ci/win10-code-coverage/targets/chromium.coverage.json +++ b/infra/config/generated/builders/ci/win10-code-coverage/targets/chromium.coverage.json
@@ -1471,8 +1471,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com" @@ -1604,8 +1604,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "idempotent": false,
diff --git a/infra/config/generated/builders/try/android-desktop-14-x64-rel/targets/chromium.android.desktop.json b/infra/config/generated/builders/try/android-desktop-14-x64-rel/targets/chromium.android.desktop.json index 82fa14d..a47c3e621 100644 --- a/infra/config/generated/builders/try/android-desktop-14-x64-rel/targets/chromium.android.desktop.json +++ b/infra/config/generated/builders/try/android-desktop-14-x64-rel/targets/chromium.android.desktop.json
@@ -112,7 +112,6 @@ "--recover-devices" ], "description": "Run with android_34_desktop_x64", - "experiment_percentage": 100, "merge": { "args": [ "--bucket",
diff --git a/infra/config/generated/builders/try/android-desktop-x64-compile-rel/targets/chromium.android.desktop.json b/infra/config/generated/builders/try/android-desktop-x64-compile-rel/targets/chromium.android.desktop.json index 82fa14d..a47c3e621 100644 --- a/infra/config/generated/builders/try/android-desktop-x64-compile-rel/targets/chromium.android.desktop.json +++ b/infra/config/generated/builders/try/android-desktop-x64-compile-rel/targets/chromium.android.desktop.json
@@ -112,7 +112,6 @@ "--recover-devices" ], "description": "Run with android_34_desktop_x64", - "experiment_percentage": 100, "merge": { "args": [ "--bucket",
diff --git a/infra/config/generated/builders/try/dawn-try-win10-x64-nvidia-asan/targets/chromium.dawn.json b/infra/config/generated/builders/try/dawn-try-win10-x64-nvidia-asan/targets/chromium.dawn.json index 55e204e6..20ee95bf 100644 --- a/infra/config/generated/builders/try/dawn-try-win10-x64-nvidia-asan/targets/chromium.dawn.json +++ b/infra/config/generated/builders/try/dawn-try-win10-x64-nvidia-asan/targets/chromium.dawn.json
@@ -18,8 +18,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -45,8 +45,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -72,8 +72,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -98,8 +98,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -125,8 +125,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -150,8 +150,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -179,8 +179,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -208,8 +208,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -230,8 +230,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -260,8 +260,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -290,8 +290,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -326,8 +326,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -363,8 +363,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -401,8 +401,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -438,8 +438,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -474,8 +474,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -505,8 +505,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -535,8 +535,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800,
diff --git a/infra/config/generated/builders/try/dawn-try-win10-x86-rel/targets/chromium.dawn.json b/infra/config/generated/builders/try/dawn-try-win10-x86-rel/targets/chromium.dawn.json index 7c8b6d7e..9fbaa54 100644 --- a/infra/config/generated/builders/try/dawn-try-win10-x86-rel/targets/chromium.dawn.json +++ b/infra/config/generated/builders/try/dawn-try-win10-x86-rel/targets/chromium.dawn.json
@@ -458,8 +458,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -485,8 +485,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -511,8 +511,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -538,8 +538,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -565,8 +565,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -590,8 +590,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -619,8 +619,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -648,8 +648,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -670,8 +670,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -700,8 +700,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -730,8 +730,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -767,8 +767,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -798,8 +798,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -828,8 +828,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -865,8 +865,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -905,8 +905,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800,
diff --git a/infra/config/generated/builders/try/dawn-win10-x64-deps-rel/targets/chromium.dawn.json b/infra/config/generated/builders/try/dawn-win10-x64-deps-rel/targets/chromium.dawn.json index 975ff45..56bd9198 100644 --- a/infra/config/generated/builders/try/dawn-win10-x64-deps-rel/targets/chromium.dawn.json +++ b/infra/config/generated/builders/try/dawn-win10-x64-deps-rel/targets/chromium.dawn.json
@@ -613,8 +613,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -640,8 +640,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -668,8 +668,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -695,8 +695,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -722,8 +722,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -748,8 +748,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -775,8 +775,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -801,8 +801,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -828,8 +828,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -853,8 +853,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -882,8 +882,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -911,8 +911,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -933,8 +933,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -963,8 +963,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -993,8 +993,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -1029,8 +1029,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -1067,8 +1067,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -1107,8 +1107,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -1145,8 +1145,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -1182,8 +1182,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -1218,8 +1218,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -1256,8 +1256,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -1287,8 +1287,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -1317,8 +1317,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -1354,8 +1354,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -1394,8 +1394,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800,
diff --git a/infra/config/generated/builders/try/dawn-win10-x86-deps-rel/targets/chromium.dawn.json b/infra/config/generated/builders/try/dawn-win10-x86-deps-rel/targets/chromium.dawn.json index ae3d6dc..debe376 100644 --- a/infra/config/generated/builders/try/dawn-win10-x86-deps-rel/targets/chromium.dawn.json +++ b/infra/config/generated/builders/try/dawn-win10-x86-deps-rel/targets/chromium.dawn.json
@@ -458,8 +458,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -485,8 +485,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -511,8 +511,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -538,8 +538,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -565,8 +565,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -590,8 +590,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -619,8 +619,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -648,8 +648,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -670,8 +670,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -700,8 +700,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -730,8 +730,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -767,8 +767,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -798,8 +798,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -828,8 +828,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -865,8 +865,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -905,8 +905,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800,
diff --git a/infra/config/generated/builders/try/gpu-fyi-try-win10-nvidia-dbg-64/targets/chromium.gpu.fyi.json b/infra/config/generated/builders/try/gpu-fyi-try-win10-nvidia-dbg-64/targets/chromium.gpu.fyi.json index 046fd58..080a00a7 100644 --- a/infra/config/generated/builders/try/gpu-fyi-try-win10-nvidia-dbg-64/targets/chromium.gpu.fyi.json +++ b/infra/config/generated/builders/try/gpu-fyi-try-win10-nvidia-dbg-64/targets/chromium.gpu.fyi.json
@@ -11,8 +11,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -37,8 +37,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -67,8 +67,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -87,8 +87,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -111,8 +111,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -134,8 +134,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -171,8 +171,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -216,8 +216,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -252,8 +252,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -288,8 +288,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -328,8 +328,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -354,7 +354,7 @@ "--dont-restore-color-profile-after-test", "--test-machine-name", "${buildername}", - "--jobs=4" + "--jobs=1" ], "merge": { "script": "//testing/merge_scripts/standard_isolated_script_merge.py" @@ -373,8 +373,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -410,8 +410,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -446,8 +446,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -483,8 +483,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -521,45 +521,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", - "pool": "chromium.tests.gpu" - }, - "hard_timeout": 1800, - "idempotent": false, - "io_timeout": 1800, - "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com", - "shards": 2 - }, - "test": "telemetry_gpu_integration_test", - "test_id_prefix": "ninja://chrome/test:telemetry_gpu_integration_test/" - }, - { - "args": [ - "webgl1_conformance", - "--show-stdout", - "--browser=debug_x64", - "--passthrough", - "-v", - "--stable-jobs", - "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --use-angle=vulkan --use-cmd-decoder=passthrough --force_high_performance_gpu", - "--enforce-browser-version", - "--jobs=4" - ], - "merge": { - "script": "//testing/merge_scripts/standard_isolated_script_merge.py" - }, - "name": "webgl_conformance_vulkan_passthrough_tests", - "resultdb": { - "enable": true, - "has_native_resultdb_integration": true - }, - "swarming": { - "containment_type": "AUTO", - "dimensions": { - "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800,
diff --git a/infra/config/generated/builders/try/gpu-fyi-try-win10-nvidia-dx12vk-dbg-64/targets/chromium.gpu.fyi.json b/infra/config/generated/builders/try/gpu-fyi-try-win10-nvidia-dx12vk-dbg-64/targets/chromium.gpu.fyi.json index f707b63..36ca4a5 100644 --- a/infra/config/generated/builders/try/gpu-fyi-try-win10-nvidia-dx12vk-dbg-64/targets/chromium.gpu.fyi.json +++ b/infra/config/generated/builders/try/gpu-fyi-try-win10-nvidia-dx12vk-dbg-64/targets/chromium.gpu.fyi.json
@@ -22,8 +22,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800,
diff --git a/infra/config/generated/builders/try/gpu-fyi-try-win10-nvidia-dx12vk-rel-64/targets/chromium.gpu.fyi.json b/infra/config/generated/builders/try/gpu-fyi-try-win10-nvidia-dx12vk-rel-64/targets/chromium.gpu.fyi.json index 8e7e192..0a2342b2 100644 --- a/infra/config/generated/builders/try/gpu-fyi-try-win10-nvidia-dx12vk-rel-64/targets/chromium.gpu.fyi.json +++ b/infra/config/generated/builders/try/gpu-fyi-try-win10-nvidia-dx12vk-rel-64/targets/chromium.gpu.fyi.json
@@ -22,8 +22,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800,
diff --git a/infra/config/generated/builders/try/gpu-fyi-try-win10-nvidia-rel-32/targets/chromium.gpu.fyi.json b/infra/config/generated/builders/try/gpu-fyi-try-win10-nvidia-rel-32/targets/chromium.gpu.fyi.json index 5a4bbb9..4333590 100644 --- a/infra/config/generated/builders/try/gpu-fyi-try-win10-nvidia-rel-32/targets/chromium.gpu.fyi.json +++ b/infra/config/generated/builders/try/gpu-fyi-try-win10-nvidia-rel-32/targets/chromium.gpu.fyi.json
@@ -11,8 +11,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -37,8 +37,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -67,8 +67,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -87,8 +87,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -111,8 +111,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -137,8 +137,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -160,8 +160,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -197,8 +197,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -242,8 +242,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -278,8 +278,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -314,8 +314,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -354,8 +354,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -385,8 +385,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -410,7 +410,7 @@ "--dont-restore-color-profile-after-test", "--test-machine-name", "${buildername}", - "--jobs=4" + "--jobs=1" ], "merge": { "script": "//testing/merge_scripts/standard_isolated_script_merge.py" @@ -429,8 +429,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -466,8 +466,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -502,8 +502,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -538,8 +538,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -576,8 +576,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -614,8 +614,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -652,45 +652,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", - "pool": "chromium.tests.gpu" - }, - "hard_timeout": 1800, - "idempotent": false, - "io_timeout": 1800, - "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com", - "shards": 2 - }, - "test": "telemetry_gpu_integration_test", - "test_id_prefix": "ninja://chrome/test:telemetry_gpu_integration_test/" - }, - { - "args": [ - "webgl1_conformance", - "--show-stdout", - "--browser=release", - "--passthrough", - "-v", - "--stable-jobs", - "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --use-angle=vulkan --use-cmd-decoder=passthrough --force_high_performance_gpu", - "--enforce-browser-version", - "--jobs=4" - ], - "merge": { - "script": "//testing/merge_scripts/standard_isolated_script_merge.py" - }, - "name": "webgl_conformance_vulkan_passthrough_tests", - "resultdb": { - "enable": true, - "has_native_resultdb_integration": true - }, - "swarming": { - "containment_type": "AUTO", - "dimensions": { - "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800,
diff --git a/infra/config/generated/builders/try/gpu-fyi-try-win10-nvidia-rel-64/targets/chromium.gpu.fyi.json b/infra/config/generated/builders/try/gpu-fyi-try-win10-nvidia-rel-64/targets/chromium.gpu.fyi.json index b8de15b..346843c 100644 --- a/infra/config/generated/builders/try/gpu-fyi-try-win10-nvidia-rel-64/targets/chromium.gpu.fyi.json +++ b/infra/config/generated/builders/try/gpu-fyi-try-win10-nvidia-rel-64/targets/chromium.gpu.fyi.json
@@ -11,8 +11,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -37,8 +37,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -67,8 +67,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -87,8 +87,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -111,8 +111,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -137,8 +137,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -160,8 +160,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -197,8 +197,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -242,8 +242,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -278,8 +278,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -314,8 +314,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -354,8 +354,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -385,8 +385,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -410,7 +410,7 @@ "--dont-restore-color-profile-after-test", "--test-machine-name", "${buildername}", - "--jobs=4" + "--jobs=1" ], "merge": { "script": "//testing/merge_scripts/standard_isolated_script_merge.py" @@ -429,8 +429,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -466,8 +466,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -502,8 +502,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -538,8 +538,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -576,8 +576,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -614,8 +614,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -652,45 +652,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", - "pool": "chromium.tests.gpu" - }, - "hard_timeout": 1800, - "idempotent": false, - "io_timeout": 1800, - "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com", - "shards": 2 - }, - "test": "telemetry_gpu_integration_test", - "test_id_prefix": "ninja://chrome/test:telemetry_gpu_integration_test/" - }, - { - "args": [ - "webgl1_conformance", - "--show-stdout", - "--browser=release_x64", - "--passthrough", - "-v", - "--stable-jobs", - "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --use-angle=vulkan --use-cmd-decoder=passthrough --force_high_performance_gpu", - "--enforce-browser-version", - "--jobs=4" - ], - "merge": { - "script": "//testing/merge_scripts/standard_isolated_script_merge.py" - }, - "name": "webgl_conformance_vulkan_passthrough_tests", - "resultdb": { - "enable": true, - "has_native_resultdb_integration": true - }, - "swarming": { - "containment_type": "AUTO", - "dimensions": { - "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800,
diff --git a/infra/config/generated/builders/try/gpu-try-win-nvidia-dbg/targets/chromium.gpu.json b/infra/config/generated/builders/try/gpu-try-win-nvidia-dbg/targets/chromium.gpu.json index cd1c318..016367f 100644 --- a/infra/config/generated/builders/try/gpu-try-win-nvidia-dbg/targets/chromium.gpu.json +++ b/infra/config/generated/builders/try/gpu-try-win-nvidia-dbg/targets/chromium.gpu.json
@@ -10,8 +10,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu", "puppet_env": "production" }, @@ -37,8 +37,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu", "puppet_env": "production" }, @@ -68,8 +68,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu", "puppet_env": "production" }, @@ -95,8 +95,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu", "puppet_env": "production" }, @@ -119,8 +119,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu", "puppet_env": "production" }, @@ -157,8 +157,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu", "puppet_env": "production" }, @@ -203,8 +203,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu", "puppet_env": "production" }, @@ -240,8 +240,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu", "puppet_env": "production" }, @@ -277,8 +277,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu", "puppet_env": "production" }, @@ -318,8 +318,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu", "puppet_env": "production" }, @@ -345,7 +345,7 @@ "--dont-restore-color-profile-after-test", "--test-machine-name", "${buildername}", - "--jobs=4" + "--jobs=1" ], "merge": { "script": "//testing/merge_scripts/standard_isolated_script_merge.py" @@ -364,8 +364,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu", "puppet_env": "production" }, @@ -402,8 +402,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu", "puppet_env": "production" }, @@ -439,8 +439,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu", "puppet_env": "production" }, @@ -477,8 +477,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu", "puppet_env": "production" },
diff --git a/infra/config/generated/builders/try/ios17-beta-simulator/targets/chromium.fyi.json b/infra/config/generated/builders/try/ios17-beta-simulator/targets/chromium.fyi.json index 85db59c..b9708706 100644 --- a/infra/config/generated/builders/try/ios17-beta-simulator/targets/chromium.fyi.json +++ b/infra/config/generated/builders/try/ios17-beta-simulator/targets/chromium.fyi.json
@@ -13,7 +13,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -42,7 +42,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -61,7 +61,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -90,7 +90,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -109,7 +109,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -138,7 +138,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -157,7 +157,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -186,7 +186,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -205,7 +205,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -234,7 +234,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -253,7 +253,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -282,7 +282,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -301,7 +301,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -330,7 +330,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -349,7 +349,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -378,7 +378,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -397,7 +397,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -426,7 +426,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -445,7 +445,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -474,7 +474,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -493,7 +493,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -522,7 +522,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -541,7 +541,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -570,7 +570,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -589,7 +589,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -618,7 +618,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -637,7 +637,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -666,7 +666,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -685,7 +685,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -714,7 +714,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -733,7 +733,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -762,7 +762,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -781,7 +781,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -810,7 +810,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -829,7 +829,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -858,7 +858,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -877,7 +877,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -906,7 +906,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -925,7 +925,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -954,7 +954,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -973,7 +973,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -1002,7 +1002,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -1024,7 +1024,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -1053,7 +1053,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -1076,7 +1076,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -1105,7 +1105,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -1130,7 +1130,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -1159,7 +1159,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -1184,7 +1184,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -1213,7 +1213,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -1238,7 +1238,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -1267,7 +1267,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -1292,7 +1292,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -1321,7 +1321,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -1344,7 +1344,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -1373,7 +1373,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -1396,7 +1396,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -1425,7 +1425,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -1448,7 +1448,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -1477,7 +1477,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -1499,7 +1499,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -1528,7 +1528,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -1552,7 +1552,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -1581,7 +1581,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -1606,7 +1606,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -1635,7 +1635,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -1655,7 +1655,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -1684,7 +1684,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -1703,7 +1703,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -1732,7 +1732,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -1751,7 +1751,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -1780,7 +1780,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -1802,7 +1802,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -1831,7 +1831,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -1854,7 +1854,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -1883,7 +1883,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -1903,7 +1903,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -1932,7 +1932,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -1951,7 +1951,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -1980,7 +1980,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -2000,7 +2000,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -2029,7 +2029,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -2049,7 +2049,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -2078,7 +2078,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -2097,7 +2097,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -2126,7 +2126,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -2146,7 +2146,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -2175,7 +2175,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -2195,7 +2195,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -2224,7 +2224,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -2243,7 +2243,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -2272,7 +2272,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -2291,7 +2291,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -2320,7 +2320,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -2339,7 +2339,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -2368,7 +2368,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -2387,7 +2387,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -2416,7 +2416,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -2438,7 +2438,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -2467,7 +2467,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -2489,7 +2489,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -2518,7 +2518,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -2537,7 +2537,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -2566,7 +2566,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -2585,7 +2585,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -2614,7 +2614,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -2633,7 +2633,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -2662,7 +2662,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -2681,7 +2681,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -2710,7 +2710,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -2729,7 +2729,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -2758,7 +2758,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -2777,7 +2777,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -2806,7 +2806,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -2825,7 +2825,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -2854,7 +2854,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -2873,7 +2873,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -2902,7 +2902,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -2921,7 +2921,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -2950,7 +2950,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -2969,7 +2969,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -2998,7 +2998,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -3017,7 +3017,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -3046,7 +3046,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -3065,7 +3065,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -3094,7 +3094,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -3113,7 +3113,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -3142,7 +3142,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -3161,7 +3161,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -3190,7 +3190,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -3209,7 +3209,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -3238,7 +3238,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -3257,7 +3257,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -3286,7 +3286,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -3305,7 +3305,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -3334,7 +3334,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -3353,7 +3353,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -3382,7 +3382,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -3401,7 +3401,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -3430,7 +3430,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -3449,7 +3449,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -3478,7 +3478,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -3497,7 +3497,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -3526,7 +3526,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -3545,7 +3545,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -3574,7 +3574,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -3593,7 +3593,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -3622,7 +3622,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ],
diff --git a/infra/config/generated/builders/try/ios17-sdk-simulator/properties.json b/infra/config/generated/builders/try/ios17-sdk-simulator/properties.json index e6838ed..acf98ea 100644 --- a/infra/config/generated/builders/try/ios17-sdk-simulator/properties.json +++ b/infra/config/generated/builders/try/ios17-sdk-simulator/properties.json
@@ -66,5 +66,5 @@ }, "builder_group": "tryserver.chromium.mac", "recipe": "chromium_trybot", - "xcode_build_version": "16c5023f" + "xcode_build_version": "16c5031c" } \ No newline at end of file
diff --git a/infra/config/generated/builders/try/ios17-sdk-simulator/targets/chromium.fyi.json b/infra/config/generated/builders/try/ios17-sdk-simulator/targets/chromium.fyi.json index 516bcd7d..17611bd 100644 --- a/infra/config/generated/builders/try/ios17-sdk-simulator/targets/chromium.fyi.json +++ b/infra/config/generated/builders/try/ios17-sdk-simulator/targets/chromium.fyi.json
@@ -13,7 +13,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -42,7 +42,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -61,7 +61,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -90,7 +90,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -109,7 +109,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -138,7 +138,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -157,7 +157,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -186,7 +186,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -205,7 +205,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -234,7 +234,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -253,7 +253,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -282,7 +282,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -301,7 +301,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -330,7 +330,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -349,7 +349,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -378,7 +378,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -397,7 +397,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -426,7 +426,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -445,7 +445,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -474,7 +474,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -493,7 +493,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -522,7 +522,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -541,7 +541,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -570,7 +570,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -589,7 +589,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -618,7 +618,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -637,7 +637,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -666,7 +666,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -685,7 +685,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -714,7 +714,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -733,7 +733,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -762,7 +762,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -781,7 +781,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -810,7 +810,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -829,7 +829,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -858,7 +858,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -877,7 +877,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -906,7 +906,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -925,7 +925,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -954,7 +954,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -973,7 +973,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -1002,7 +1002,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -1022,7 +1022,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -1051,7 +1051,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -1072,7 +1072,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -1101,7 +1101,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -1124,7 +1124,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -1153,7 +1153,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -1176,7 +1176,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -1205,7 +1205,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -1228,7 +1228,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -1257,7 +1257,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -1280,7 +1280,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -1309,7 +1309,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -1330,7 +1330,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -1359,7 +1359,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -1380,7 +1380,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -1409,7 +1409,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -1430,7 +1430,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -1459,7 +1459,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -1479,7 +1479,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -1508,7 +1508,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -1530,7 +1530,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -1559,7 +1559,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -1582,7 +1582,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -1611,7 +1611,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -1631,7 +1631,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -1660,7 +1660,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -1679,7 +1679,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -1708,7 +1708,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -1727,7 +1727,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -1756,7 +1756,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -1776,7 +1776,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -1805,7 +1805,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -1826,7 +1826,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -1855,7 +1855,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -1875,7 +1875,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -1904,7 +1904,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -1923,7 +1923,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -1952,7 +1952,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -1971,7 +1971,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -2000,7 +2000,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -2020,7 +2020,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -2049,7 +2049,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -2069,7 +2069,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -2098,7 +2098,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -2117,7 +2117,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -2146,7 +2146,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -2165,7 +2165,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -2194,7 +2194,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -2213,7 +2213,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -2242,7 +2242,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -2261,7 +2261,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -2290,7 +2290,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -2310,7 +2310,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -2339,7 +2339,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -2359,7 +2359,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -2388,7 +2388,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -2407,7 +2407,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -2436,7 +2436,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -2455,7 +2455,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -2484,7 +2484,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -2503,7 +2503,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -2532,7 +2532,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -2551,7 +2551,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -2580,7 +2580,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -2599,7 +2599,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -2628,7 +2628,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -2647,7 +2647,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -2676,7 +2676,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -2695,7 +2695,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -2724,7 +2724,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -2743,7 +2743,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -2772,7 +2772,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -2791,7 +2791,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -2820,7 +2820,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -2839,7 +2839,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -2868,7 +2868,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -2887,7 +2887,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -2916,7 +2916,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -2935,7 +2935,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -2964,7 +2964,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -2983,7 +2983,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -3012,7 +3012,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -3031,7 +3031,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -3060,7 +3060,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -3079,7 +3079,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -3108,7 +3108,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -3127,7 +3127,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -3156,7 +3156,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -3175,7 +3175,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -3204,7 +3204,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -3223,7 +3223,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -3252,7 +3252,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -3271,7 +3271,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -3300,7 +3300,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -3319,7 +3319,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -3348,7 +3348,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -3367,7 +3367,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -3396,7 +3396,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -3415,7 +3415,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -3444,7 +3444,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -3463,7 +3463,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -3492,7 +3492,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ],
diff --git a/infra/config/generated/builders/try/ios18-beta-simulator/targets/chromium.fyi.json b/infra/config/generated/builders/try/ios18-beta-simulator/targets/chromium.fyi.json index 2cdb1a8..7a23365 100644 --- a/infra/config/generated/builders/try/ios18-beta-simulator/targets/chromium.fyi.json +++ b/infra/config/generated/builders/try/ios18-beta-simulator/targets/chromium.fyi.json
@@ -13,7 +13,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -42,7 +42,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -61,7 +61,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -90,7 +90,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -109,7 +109,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -138,7 +138,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -157,7 +157,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -186,7 +186,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -205,7 +205,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -234,7 +234,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -253,7 +253,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -282,7 +282,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -301,7 +301,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -330,7 +330,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -349,7 +349,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -378,7 +378,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -397,7 +397,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -426,7 +426,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -445,7 +445,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -474,7 +474,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -493,7 +493,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -522,7 +522,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -541,7 +541,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -570,7 +570,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -589,7 +589,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -618,7 +618,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -637,7 +637,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -666,7 +666,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -685,7 +685,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -714,7 +714,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -733,7 +733,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -762,7 +762,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -781,7 +781,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -810,7 +810,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -829,7 +829,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -858,7 +858,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -880,7 +880,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -909,7 +909,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -932,7 +932,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -961,7 +961,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -984,7 +984,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -1013,7 +1013,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -1036,7 +1036,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -1065,7 +1065,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -1090,7 +1090,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -1119,7 +1119,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -1144,7 +1144,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -1173,7 +1173,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -1198,7 +1198,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -1227,7 +1227,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -1252,7 +1252,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -1281,7 +1281,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -1306,7 +1306,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -1335,7 +1335,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -1360,7 +1360,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -1389,7 +1389,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -1414,7 +1414,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -1443,7 +1443,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -1466,7 +1466,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -1495,7 +1495,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -1518,7 +1518,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -1547,7 +1547,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -1570,7 +1570,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -1599,7 +1599,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -1622,7 +1622,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -1651,7 +1651,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -1674,7 +1674,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -1703,7 +1703,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -1725,7 +1725,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -1754,7 +1754,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -1776,7 +1776,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -1805,7 +1805,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -1827,7 +1827,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -1856,7 +1856,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -1880,7 +1880,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -1909,7 +1909,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -1934,7 +1934,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -1963,7 +1963,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -1988,7 +1988,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -2017,7 +2017,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -2042,7 +2042,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -2071,7 +2071,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -2091,7 +2091,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -2120,7 +2120,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -2139,7 +2139,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -2168,7 +2168,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -2187,7 +2187,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -2216,7 +2216,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -2235,7 +2235,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -2264,7 +2264,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -2286,7 +2286,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -2315,7 +2315,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -2338,7 +2338,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -2367,7 +2367,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -2390,7 +2390,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -2419,7 +2419,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -2442,7 +2442,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -2471,7 +2471,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -2491,7 +2491,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -2520,7 +2520,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -2540,7 +2540,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -2569,7 +2569,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -2588,7 +2588,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -2617,7 +2617,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -2637,7 +2637,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -2666,7 +2666,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -2685,7 +2685,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -2714,7 +2714,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -2733,7 +2733,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -2762,7 +2762,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -2781,7 +2781,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -2810,7 +2810,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -2829,7 +2829,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -2858,7 +2858,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -2880,7 +2880,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -2909,7 +2909,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -2931,7 +2931,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -2960,7 +2960,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -2982,7 +2982,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -3011,7 +3011,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -3030,7 +3030,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -3059,7 +3059,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -3078,7 +3078,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -3107,7 +3107,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -3126,7 +3126,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -3155,7 +3155,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -3174,7 +3174,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -3203,7 +3203,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -3222,7 +3222,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -3251,7 +3251,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -3270,7 +3270,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -3299,7 +3299,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -3318,7 +3318,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -3347,7 +3347,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -3366,7 +3366,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -3395,7 +3395,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -3414,7 +3414,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -3443,7 +3443,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -3462,7 +3462,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -3491,7 +3491,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -3510,7 +3510,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -3539,7 +3539,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -3558,7 +3558,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -3587,7 +3587,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -3606,7 +3606,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -3635,7 +3635,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -3654,7 +3654,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -3683,7 +3683,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -3702,7 +3702,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -3731,7 +3731,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -3750,7 +3750,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -3779,7 +3779,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -3798,7 +3798,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -3827,7 +3827,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -3846,7 +3846,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -3875,7 +3875,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -3894,7 +3894,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -3923,7 +3923,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -3942,7 +3942,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -3971,7 +3971,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -3990,7 +3990,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -4019,7 +4019,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -4038,7 +4038,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -4067,7 +4067,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -4086,7 +4086,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -4115,7 +4115,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -4134,7 +4134,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -4163,7 +4163,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ],
diff --git a/infra/config/generated/builders/try/ios18-sdk-simulator/properties.json b/infra/config/generated/builders/try/ios18-sdk-simulator/properties.json index 527734c..acd82ee 100644 --- a/infra/config/generated/builders/try/ios18-sdk-simulator/properties.json +++ b/infra/config/generated/builders/try/ios18-sdk-simulator/properties.json
@@ -66,5 +66,5 @@ }, "builder_group": "tryserver.chromium.mac", "recipe": "chromium_trybot", - "xcode_build_version": "16c5023f" + "xcode_build_version": "16c5031c" } \ No newline at end of file
diff --git a/infra/config/generated/builders/try/ios18-sdk-simulator/targets/chromium.fyi.json b/infra/config/generated/builders/try/ios18-sdk-simulator/targets/chromium.fyi.json index 57ff1e9..5eca029c 100644 --- a/infra/config/generated/builders/try/ios18-sdk-simulator/targets/chromium.fyi.json +++ b/infra/config/generated/builders/try/ios18-sdk-simulator/targets/chromium.fyi.json
@@ -13,7 +13,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -42,7 +42,7 @@ "path": "Runtime-ios-17.5" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -61,7 +61,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -90,7 +90,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -109,7 +109,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -138,7 +138,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -157,7 +157,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -186,7 +186,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -205,7 +205,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -234,7 +234,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -253,7 +253,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -282,7 +282,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -301,7 +301,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -330,7 +330,7 @@ "path": "Runtime-ios-17.5" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -349,7 +349,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -378,7 +378,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -397,7 +397,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -426,7 +426,7 @@ "path": "Runtime-ios-17.5" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -445,7 +445,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -474,7 +474,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -493,7 +493,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -522,7 +522,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -541,7 +541,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -570,7 +570,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -589,7 +589,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -618,7 +618,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -637,7 +637,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -666,7 +666,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -685,7 +685,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -714,7 +714,7 @@ "path": "Runtime-ios-17.5" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -733,7 +733,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -762,7 +762,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -781,7 +781,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -810,7 +810,7 @@ "path": "Runtime-ios-17.5" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -829,7 +829,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -858,7 +858,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -877,7 +877,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -906,7 +906,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -925,7 +925,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -954,7 +954,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -973,7 +973,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -1002,7 +1002,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -1021,7 +1021,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -1050,7 +1050,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -1069,7 +1069,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -1098,7 +1098,7 @@ "path": "Runtime-ios-17.5" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -1117,7 +1117,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -1146,7 +1146,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -1168,7 +1168,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -1197,7 +1197,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -1220,7 +1220,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -1249,7 +1249,7 @@ "path": "Runtime-ios-17.5" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -1272,7 +1272,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -1301,7 +1301,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -1326,7 +1326,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -1355,7 +1355,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -1380,7 +1380,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -1409,7 +1409,7 @@ "path": "Runtime-ios-17.5" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -1434,7 +1434,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -1463,7 +1463,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -1488,7 +1488,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -1517,7 +1517,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -1542,7 +1542,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -1571,7 +1571,7 @@ "path": "Runtime-ios-17.5" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -1596,7 +1596,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -1625,7 +1625,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -1648,7 +1648,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -1677,7 +1677,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -1700,7 +1700,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -1729,7 +1729,7 @@ "path": "Runtime-ios-17.5" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -1752,7 +1752,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -1781,7 +1781,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -1804,7 +1804,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -1833,7 +1833,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -1855,7 +1855,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -1884,7 +1884,7 @@ "path": "Runtime-ios-17.5" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -1906,7 +1906,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -1935,7 +1935,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -1959,7 +1959,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -1988,7 +1988,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -2013,7 +2013,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -2042,7 +2042,7 @@ "path": "Runtime-ios-17.5" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -2067,7 +2067,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -2096,7 +2096,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -2116,7 +2116,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -2145,7 +2145,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -2164,7 +2164,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -2193,7 +2193,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -2212,7 +2212,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -2241,7 +2241,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -2260,7 +2260,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -2289,7 +2289,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -2311,7 +2311,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -2340,7 +2340,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -2363,7 +2363,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -2392,7 +2392,7 @@ "path": "Runtime-ios-17.5" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -2415,7 +2415,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -2444,7 +2444,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -2464,7 +2464,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -2493,7 +2493,7 @@ "path": "Runtime-ios-17.5" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -2512,7 +2512,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -2541,7 +2541,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -2561,7 +2561,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -2590,7 +2590,7 @@ "path": "Runtime-ios-17.5" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -2610,7 +2610,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -2639,7 +2639,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -2658,7 +2658,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -2687,7 +2687,7 @@ "path": "Runtime-ios-17.5" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -2707,7 +2707,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -2736,7 +2736,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -2756,7 +2756,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -2785,7 +2785,7 @@ "path": "Runtime-ios-17.5" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -2804,7 +2804,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -2833,7 +2833,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -2852,7 +2852,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -2881,7 +2881,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -2900,7 +2900,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -2929,7 +2929,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -2948,7 +2948,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -2977,7 +2977,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -2996,7 +2996,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -3025,7 +3025,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -3047,7 +3047,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -3076,7 +3076,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -3098,7 +3098,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -3127,7 +3127,7 @@ "path": "Runtime-ios-17.5" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -3149,7 +3149,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -3178,7 +3178,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -3197,7 +3197,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -3226,7 +3226,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -3245,7 +3245,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -3274,7 +3274,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -3293,7 +3293,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -3322,7 +3322,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -3341,7 +3341,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -3370,7 +3370,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -3389,7 +3389,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -3418,7 +3418,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -3437,7 +3437,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -3466,7 +3466,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -3485,7 +3485,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -3514,7 +3514,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -3533,7 +3533,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -3562,7 +3562,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -3581,7 +3581,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -3610,7 +3610,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -3629,7 +3629,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -3658,7 +3658,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -3677,7 +3677,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -3706,7 +3706,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -3725,7 +3725,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -3754,7 +3754,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -3773,7 +3773,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -3802,7 +3802,7 @@ "path": "Runtime-ios-17.5" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -3821,7 +3821,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -3850,7 +3850,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -3869,7 +3869,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -3898,7 +3898,7 @@ "path": "Runtime-ios-17.5" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -3917,7 +3917,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -3946,7 +3946,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -3965,7 +3965,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -3994,7 +3994,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -4013,7 +4013,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -4042,7 +4042,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -4061,7 +4061,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -4090,7 +4090,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -4109,7 +4109,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -4138,7 +4138,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -4157,7 +4157,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -4186,7 +4186,7 @@ "path": "Runtime-ios-17.5" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -4205,7 +4205,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -4234,7 +4234,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -4253,7 +4253,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -4282,7 +4282,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -4301,7 +4301,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -4330,7 +4330,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -4349,7 +4349,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -4378,7 +4378,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -4397,7 +4397,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -4426,7 +4426,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -4445,7 +4445,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -4474,7 +4474,7 @@ "path": "Runtime-ios-17.5" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ], @@ -4493,7 +4493,7 @@ "--out-dir", "${ISOLATED_OUTDIR}", "--xcode-build-version", - "16c5023f", + "16c5031c", "--xctest" ], "merge": { @@ -4522,7 +4522,7 @@ "path": "Runtime-ios-18.2" }, { - "name": "xcode_ios_16c5023f", + "name": "xcode_ios_16c5031c", "path": "Xcode.app" } ],
diff --git a/infra/config/generated/builders/try/win-angle-chromium-x64-try/targets/chromium.angle.json b/infra/config/generated/builders/try/win-angle-chromium-x64-try/targets/chromium.angle.json index 773a7f22..530c308b 100644 --- a/infra/config/generated/builders/try/win-angle-chromium-x64-try/targets/chromium.angle.json +++ b/infra/config/generated/builders/try/win-angle-chromium-x64-try/targets/chromium.angle.json
@@ -216,8 +216,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "idempotent": false, @@ -252,8 +252,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "idempotent": false, @@ -288,8 +288,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "idempotent": false, @@ -324,43 +324,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", - "pool": "chromium.tests.gpu" - }, - "idempotent": false, - "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com", - "shards": 2 - }, - "test": "telemetry_gpu_integration_test", - "test_id_prefix": "ninja://chrome/test:telemetry_gpu_integration_test/" - }, - { - "args": [ - "webgl1_conformance", - "--show-stdout", - "--browser=release_x64", - "--passthrough", - "-v", - "--stable-jobs", - "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --use-angle=vulkan --use-cmd-decoder=passthrough --force_high_performance_gpu", - "--enforce-browser-version", - "--jobs=4" - ], - "merge": { - "script": "//testing/merge_scripts/standard_isolated_script_merge.py" - }, - "name": "webgl_conformance_vulkan_passthrough_tests", - "resultdb": { - "enable": true, - "has_native_resultdb_integration": true - }, - "swarming": { - "containment_type": "AUTO", - "dimensions": { - "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "idempotent": false,
diff --git a/infra/config/generated/builders/try/win-dawn-rel/targets/chromium.dawn.json b/infra/config/generated/builders/try/win-dawn-rel/targets/chromium.dawn.json index 2513500..772fa35 100644 --- a/infra/config/generated/builders/try/win-dawn-rel/targets/chromium.dawn.json +++ b/infra/config/generated/builders/try/win-dawn-rel/targets/chromium.dawn.json
@@ -613,8 +613,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -640,8 +640,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -668,8 +668,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -695,8 +695,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -722,8 +722,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -748,8 +748,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -775,8 +775,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -801,8 +801,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -828,8 +828,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -853,8 +853,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -882,8 +882,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -911,8 +911,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -933,8 +933,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -963,8 +963,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -993,8 +993,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -1029,8 +1029,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -1067,8 +1067,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -1107,8 +1107,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -1145,8 +1145,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -1182,8 +1182,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -1218,8 +1218,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -1256,8 +1256,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -1287,8 +1287,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -1317,8 +1317,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -1354,8 +1354,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800, @@ -1394,8 +1394,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "hard_timeout": 1800,
diff --git a/infra/config/generated/builders/try/win-rel/targets/chromium.gpu.json b/infra/config/generated/builders/try/win-rel/targets/chromium.gpu.json index 4234536..1aacb085 100644 --- a/infra/config/generated/builders/try/win-rel/targets/chromium.gpu.json +++ b/infra/config/generated/builders/try/win-rel/targets/chromium.gpu.json
@@ -10,8 +10,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu", "puppet_env": "production" }, @@ -37,8 +37,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu", "puppet_env": "production" }, @@ -68,8 +68,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu", "puppet_env": "production" }, @@ -95,8 +95,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu", "puppet_env": "production" }, @@ -119,8 +119,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu", "puppet_env": "production" }, @@ -157,8 +157,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu", "puppet_env": "production" }, @@ -203,8 +203,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu", "puppet_env": "production" }, @@ -240,8 +240,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu", "puppet_env": "production" }, @@ -277,8 +277,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu", "puppet_env": "production" }, @@ -318,8 +318,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu", "puppet_env": "production" }, @@ -345,7 +345,7 @@ "--dont-restore-color-profile-after-test", "--test-machine-name", "${buildername}", - "--jobs=4" + "--jobs=1" ], "merge": { "script": "//testing/merge_scripts/standard_isolated_script_merge.py" @@ -364,8 +364,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu", "puppet_env": "production" }, @@ -402,8 +402,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu", "puppet_env": "production" }, @@ -439,8 +439,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu", "puppet_env": "production" }, @@ -477,8 +477,8 @@ "containment_type": "AUTO", "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu", "puppet_env": "production" },
diff --git a/infra/config/generated/builders/try/win10-code-coverage/targets/chromium.coverage.json b/infra/config/generated/builders/try/win10-code-coverage/targets/chromium.coverage.json index 008fbc7..c8f72a1 100644 --- a/infra/config/generated/builders/try/win10-code-coverage/targets/chromium.coverage.json +++ b/infra/config/generated/builders/try/win10-code-coverage/targets/chromium.coverage.json
@@ -1471,8 +1471,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com" @@ -1604,8 +1604,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "idempotent": false,
diff --git a/infra/config/generated/builders/try/win_optional_gpu_tests_rel/targets/tryserver.chromium.win.json b/infra/config/generated/builders/try/win_optional_gpu_tests_rel/targets/tryserver.chromium.win.json index 8f62bc0..298c3fdb 100644 --- a/infra/config/generated/builders/try/win_optional_gpu_tests_rel/targets/tryserver.chromium.win.json +++ b/infra/config/generated/builders/try/win_optional_gpu_tests_rel/targets/tryserver.chromium.win.json
@@ -9,8 +9,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com" @@ -73,8 +73,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com" @@ -117,8 +117,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com" @@ -179,8 +179,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "idempotent": false, @@ -247,8 +247,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com" @@ -280,8 +280,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "idempotent": false, @@ -314,8 +314,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "idempotent": false, @@ -385,8 +385,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "idempotent": false, @@ -421,8 +421,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "idempotent": false, @@ -494,8 +494,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "idempotent": false, @@ -553,41 +553,6 @@ "--stable-jobs", "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --use-angle=vulkan --use-cmd-decoder=passthrough --force_high_performance_gpu", "--enforce-browser-version", - "--jobs=4" - ], - "merge": { - "script": "//testing/merge_scripts/standard_isolated_script_merge.py" - }, - "name": "webgl_conformance_vulkan_passthrough_tests 10de:2184", - "resultdb": { - "enable": true, - "has_native_resultdb_integration": true - }, - "swarming": { - "dimensions": { - "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", - "pool": "chromium.tests.gpu" - }, - "idempotent": false, - "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com", - "shards": 2 - }, - "test": "telemetry_gpu_integration_test", - "test_id_prefix": "ninja://chrome/test:telemetry_gpu_integration_test/", - "variant_id": "10de:2184" - }, - { - "args": [ - "webgl1_conformance", - "--show-stdout", - "--browser=release_x64", - "--passthrough", - "-v", - "--stable-jobs", - "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --use-angle=vulkan --use-cmd-decoder=passthrough --force_high_performance_gpu", - "--enforce-browser-version", "--jobs=1" ], "merge": {
diff --git a/infra/config/generated/luci/cr-buildbucket.cfg b/infra/config/generated/luci/cr-buildbucket.cfg index 6d69845..0c5da40 100644 --- a/infra/config/generated/luci/cr-buildbucket.cfg +++ b/infra/config/generated/luci/cr-buildbucket.cfg
@@ -13266,7 +13266,7 @@ ' "dawn"' ' ]' '}' - execution_timeout_secs: 10800 + execution_timeout_secs: 14400 build_numbers: YES service_account: "chromium-ci-gpu-builder@chops-service-accounts.iam.gserviceaccount.com" experiments { @@ -53321,8 +53321,8 @@ priority: 35 execution_timeout_secs: 36000 caches { - name: "xcode_ios_16c5023f" - path: "xcode_ios_16c5023f.app" + name: "xcode_ios_16c5031c" + path: "xcode_ios_16c5031c.app" } build_numbers: YES service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com" @@ -53432,8 +53432,8 @@ priority: 35 execution_timeout_secs: 36000 caches { - name: "xcode_ios_16c5023f" - path: "xcode_ios_16c5023f.app" + name: "xcode_ios_16c5031c" + path: "xcode_ios_16c5031c.app" } build_numbers: YES service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com" @@ -53657,8 +53657,8 @@ priority: 35 execution_timeout_secs: 36000 caches { - name: "xcode_ios_16c5023f" - path: "xcode_ios_16c5023f.app" + name: "xcode_ios_16c5031c" + path: "xcode_ios_16c5031c.app" } build_numbers: YES service_account: "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com" @@ -105652,8 +105652,8 @@ seconds: 120 } caches { - name: "xcode_ios_16c5023f" - path: "xcode_ios_16c5023f.app" + name: "xcode_ios_16c5031c" + path: "xcode_ios_16c5031c.app" } build_numbers: YES service_account: "chromium-try-builder@chops-service-accounts.iam.gserviceaccount.com" @@ -105876,8 +105876,8 @@ seconds: 120 } caches { - name: "xcode_ios_16c5023f" - path: "xcode_ios_16c5023f.app" + name: "xcode_ios_16c5031c" + path: "xcode_ios_16c5031c.app" } build_numbers: YES service_account: "chromium-try-builder@chops-service-accounts.iam.gserviceaccount.com"
diff --git a/infra/config/generated/luci/project.cfg b/infra/config/generated/luci/project.cfg index 83d9cff..132b4e92 100644 --- a/infra/config/generated/luci/project.cfg +++ b/infra/config/generated/luci/project.cfg
@@ -7,7 +7,7 @@ name: "chromium" access: "group:all" lucicfg { - version: "1.43.14" + version: "1.43.16" package_dir: "../.." config_dir: "generated/luci" entry_point: "main.star"
diff --git a/infra/config/generated/testing/mixins.pyl b/infra/config/generated/testing/mixins.pyl index 9a65daf..a5998a670 100644 --- a/infra/config/generated/testing/mixins.pyl +++ b/infra/config/generated/testing/mixins.pyl
@@ -765,8 +765,8 @@ 'swarming': { 'dimensions': { 'display_attached': '1', - 'gpu': '10de:2184-27.21.14.5638', - 'os': 'Windows-10-18363', + 'gpu': '10de:2184-27.21.14.5638|10de:2184-31.0.15.4601', + 'os': 'Windows-10-18363|Windows-10-19045', 'pool': 'chromium.tests.gpu', }, },
diff --git a/infra/config/lib/xcode.star b/infra/config/lib/xcode.star index bb63eb4..17bf4e33 100644 --- a/infra/config/lib/xcode.star +++ b/infra/config/lib/xcode.star
@@ -29,7 +29,7 @@ # A newer Xcode 15 version used on beta bots. x15betabots = xcode_enum("15f31d"), # Xcode 16 beta version used on beta bots. - x16betabots = xcode_enum("16c5023f"), + x16betabots = xcode_enum("16c5031c"), # in use by ios-webkit-tot x14wk = xcode_enum("14c18wk"), )
diff --git a/infra/config/subprojects/chromium/ci/chromium.angle.star b/infra/config/subprojects/chromium/ci/chromium.angle.star index 59d6ce6f..ecaed9f2 100644 --- a/infra/config/subprojects/chromium/ci/chromium.angle.star +++ b/infra/config/subprojects/chromium/ci/chromium.angle.star
@@ -690,6 +690,14 @@ mixins = [ "win10_nvidia_gtx_1660_stable", ], + per_test_modifications = { + # TODO(crbug.com/380431384): Re-enable when fixed + "webgl_conformance_vulkan_passthrough_tests": targets.remove( + reason = [ + "crbug.com/380431384 flaky crashes in random tests", + ], + ), + }, ), targets_settings = targets.settings( browser_config = targets.browser_config.RELEASE_X64,
diff --git a/infra/config/subprojects/chromium/ci/chromium.dawn.star b/infra/config/subprojects/chromium/ci/chromium.dawn.star index 2649490c..3bf9fac 100644 --- a/infra/config/subprojects/chromium/ci/chromium.dawn.star +++ b/infra/config/subprojects/chromium/ci/chromium.dawn.star
@@ -2653,6 +2653,8 @@ category = "ToT|Windows|x64|Intel", short_name = "770", ), + # Can hit the default build timeout if no tasks end up being deduped. + execution_timeout = 4 * time.hour, ) ci.thin_tester( @@ -2731,10 +2733,6 @@ "gpu_dawn_isolated_scripts", ], mixins = [ - # TODO(crbug.com/40888390): The swarming dimensions for - # webgpu_blink_web_tests and webgpu_cts_tests on - # win10-code-coverage, in test_suite_exceptions.pyl, must be kept - # manually in sync with this configuration. "win10_nvidia_gtx_1660_stable", ], ),
diff --git a/infra/config/subprojects/chromium/ci/chromium.gpu.fyi.star b/infra/config/subprojects/chromium/ci/chromium.gpu.fyi.star index 5e8866f5..1521de3 100644 --- a/infra/config/subprojects/chromium/ci/chromium.gpu.fyi.star +++ b/infra/config/subprojects/chromium/ci/chromium.gpu.fyi.star
@@ -2309,6 +2309,27 @@ "tab_capture_end2end_tests": targets.remove( reason = "Run these only on Release bots.", ), + # TODO(crbug.com/380431384): Re-enable when fixed + "webgl_conformance_vulkan_passthrough_tests": targets.remove( + reason = [ + "crbug.com/380431384 flaky crashes in random tests", + ], + ), + "pixel_skia_gold_passthrough_test": targets.per_test_modification( + mixins = targets.mixin( + args = [ + # TODO(crbug.com/382422293): Remove when fixed + "--jobs=1", + ], + ), + replacements = targets.replacements( + args = { + # Magic substitution happens after regular replacement, so remove it + # now since we are manually applying the number of jobs above. + targets.magic_args.GPU_PARALLEL_JOBS: None, + }, + ), + ), }, ), targets_settings = targets.settings( @@ -2811,6 +2832,27 @@ "Graphite does not currently work properly on Win/NVIDIA ", ], ), + # TODO(crbug.com/380431384): Re-enable when fixed + "webgl_conformance_vulkan_passthrough_tests": targets.remove( + reason = [ + "crbug.com/380431384 flaky crashes in random tests", + ], + ), + "pixel_skia_gold_passthrough_test": targets.per_test_modification( + mixins = targets.mixin( + args = [ + # TODO(crbug.com/382422293): Remove when fixed + "--jobs=1", + ], + ), + replacements = targets.replacements( + args = { + # Magic substitution happens after regular replacement, so remove it + # now since we are manually applying the number of jobs above. + targets.magic_args.GPU_PARALLEL_JOBS: None, + }, + ), + ), }, ), targets_settings = targets.settings( @@ -2960,6 +3002,27 @@ "Graphite does not currently work properly on Win/NVIDIA ", ], ), + # TODO(crbug.com/380431384): Re-enable when fixed + "webgl_conformance_vulkan_passthrough_tests": targets.remove( + reason = [ + "crbug.com/380431384 flaky crashes in random tests", + ], + ), + "pixel_skia_gold_passthrough_test": targets.per_test_modification( + mixins = targets.mixin( + args = [ + # TODO(crbug.com/382422293): Remove when fixed + "--jobs=1", + ], + ), + replacements = targets.replacements( + args = { + # Magic substitution happens after regular replacement, so remove it + # now since we are manually applying the number of jobs above. + targets.magic_args.GPU_PARALLEL_JOBS: None, + }, + ), + ), }, ), targets_settings = targets.settings(
diff --git a/infra/config/subprojects/chromium/ci/chromium.gpu.star b/infra/config/subprojects/chromium/ci/chromium.gpu.star index 1338331..c45130f 100644 --- a/infra/config/subprojects/chromium/ci/chromium.gpu.star +++ b/infra/config/subprojects/chromium/ci/chromium.gpu.star
@@ -703,6 +703,23 @@ "win10_nvidia_gtx_1660_stable", "puppet_production", ], + per_test_modifications = { + "pixel_skia_gold_passthrough_test": targets.per_test_modification( + mixins = targets.mixin( + args = [ + # TODO(crbug.com/382422293): Remove when fixed + "--jobs=1", + ], + ), + replacements = targets.replacements( + args = { + # Magic substitution happens after regular replacement, so remove it + # now since we are manually applying the number of jobs above. + targets.magic_args.GPU_PARALLEL_JOBS: None, + }, + ), + ), + }, ), targets_settings = targets.settings( browser_config = targets.browser_config.DEBUG_X64, @@ -746,6 +763,23 @@ "win10_nvidia_gtx_1660_stable", "puppet_production", ], + per_test_modifications = { + "pixel_skia_gold_passthrough_test": targets.per_test_modification( + mixins = targets.mixin( + args = [ + # TODO(crbug.com/382422293): Remove when fixed + "--jobs=1", + ], + ), + replacements = targets.replacements( + args = { + # Magic substitution happens after regular replacement, so remove it + # now since we are manually applying the number of jobs above. + targets.magic_args.GPU_PARALLEL_JOBS: None, + }, + ), + ), + }, ), targets_settings = targets.settings( browser_config = targets.browser_config.RELEASE_X64,
diff --git a/infra/config/subprojects/chromium/try/tryserver.chromium.win.star b/infra/config/subprojects/chromium/try/tryserver.chromium.win.star index d30e6476..38a92c6 100644 --- a/infra/config/subprojects/chromium/try/tryserver.chromium.win.star +++ b/infra/config/subprojects/chromium/try/tryserver.chromium.win.star
@@ -479,6 +479,9 @@ "webgl2_conformance_d3d11_passthrough_tests 8086:9bc5": targets.remove( reason = "TODO(crbug.com/41483572): Re-add this when capacity issues are resolved.", ), + "webgl_conformance_vulkan_passthrough_tests 10de:2184": targets.remove( + reason = "TODO(crbug.com/380431384): flaky crashes in random tests.", + ), "xr_browser_tests 8086:9bc5": targets.mixin( # TODO(crbug.com/40937024): Remove this once the flakes on Intel are # resolved.
diff --git a/infra/config/targets/bundles.star b/infra/config/targets/bundles.star index aa475286..64dbdd1 100644 --- a/infra/config/targets/bundles.star +++ b/infra/config/targets/bundles.star
@@ -374,7 +374,6 @@ swarming = targets.swarming( shards = 2, ), - experiment_percentage = 100, ), "android_browsertests": targets.mixin( swarming = targets.swarming(
diff --git a/infra/config/targets/mixins.star b/infra/config/targets/mixins.star index 89aab709..61682f8 100644 --- a/infra/config/targets/mixins.star +++ b/infra/config/targets/mixins.star
@@ -1240,10 +1240,6 @@ # We always need this entry to be generated since it is used by # //content/test/gpu/find_bad_machines.py. generate_pyl_entry = targets.IGNORE_UNUSED, - # TODO(crbug.com/40888390): The swarming dimensions for - # webgpu_blink_web_tests and webgpu_cts_tests on linux-code-coverage - # must be kept manually in sync with the appropriate mixin; currently, - # this one, which is used by Dawn Linux x64 Release (NVIDIA). swarming = targets.swarming( dimensions = { "gpu": "10de:2184-440.100", @@ -1575,10 +1571,6 @@ # We always need this entry to be generated since it is used by # //content/test/gpu/find_bad_machines.py. generate_pyl_entry = targets.IGNORE_UNUSED, - # TODO(crbug.com/40888390): The swarming dimensions for - # webgpu_blink_web_tests and webgpu_cts_tests on mac-code-coverage - # must be kept manually in sync with the appropriate mixin; currently, - # this one, which is used by Dawn Mac x64 Release (Intel). swarming = targets.swarming( dimensions = { "cpu": "x86-64", @@ -2173,15 +2165,11 @@ # We always need this entry to be generated since it is used by # //content/test/gpu/find_bad_machines.py. generate_pyl_entry = targets.IGNORE_UNUSED, - # TODO(crbug.com/40888390): The swarming dimensions for - # webgpu_blink_web_tests and webgpu_cts_tests on win10-code-coverage - # must be kept manually in sync with the appropriate mixin; currently, - # this one, which is used by Dawn Win10 x64 Release (NVIDIA). swarming = targets.swarming( dimensions = { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu", }, ), @@ -2303,12 +2291,12 @@ generate_pyl_entry = False, args = [ "--xcode-build-version", - "16c5023f", + "16c5031c", ], swarming = targets.swarming( named_caches = [ swarming.cache( - name = "xcode_ios_16c5023f", + name = "xcode_ios_16c5031c", path = "Xcode.app", ), ],
diff --git a/ios/chrome/browser/collaboration/model/messaging/DEPS b/ios/chrome/browser/collaboration/model/messaging/DEPS index e24550b..329d783c 100644 --- a/ios/chrome/browser/collaboration/model/messaging/DEPS +++ b/ios/chrome/browser/collaboration/model/messaging/DEPS
@@ -4,7 +4,9 @@ "+ios/chrome/browser/data_sharing/model", # Allows service construction. + "+components/collaboration/internal/messaging/data_sharing_change_notifier_impl.h", "+components/collaboration/internal/messaging/empty_messaging_backend_service.h", "+components/collaboration/internal/messaging/messaging_backend_service_impl.h", + "+components/collaboration/internal/messaging/storage/messaging_backend_store_impl.h", "+components/collaboration/internal/messaging/tab_group_change_notifier_impl.h", ]
diff --git a/ios/chrome/browser/collaboration/model/messaging/messaging_backend_service_factory.mm b/ios/chrome/browser/collaboration/model/messaging/messaging_backend_service_factory.mm index 9ec1b5b..55c4b3a 100644 --- a/ios/chrome/browser/collaboration/model/messaging/messaging_backend_service_factory.mm +++ b/ios/chrome/browser/collaboration/model/messaging/messaging_backend_service_factory.mm
@@ -6,8 +6,10 @@ #import <memory> +#import "components/collaboration/internal/messaging/data_sharing_change_notifier_impl.h" #import "components/collaboration/internal/messaging/empty_messaging_backend_service.h" #import "components/collaboration/internal/messaging/messaging_backend_service_impl.h" +#import "components/collaboration/internal/messaging/storage/messaging_backend_store_impl.h" #import "components/collaboration/internal/messaging/tab_group_change_notifier_impl.h" #import "components/data_sharing/public/features.h" #import "components/keyed_service/ios/browser_state_dependency_manager.h" @@ -58,9 +60,14 @@ data_sharing::DataSharingServiceFactory::GetForProfile(profile); auto tab_group_change_notifier = std::make_unique<TabGroupChangeNotifierImpl>(tab_group_sync_service); + auto data_sharing_change_notifier = + std::make_unique<DataSharingChangeNotifierImpl>(data_sharing_service); + auto messaging_backend_store = std::make_unique<MessagingBackendStoreImpl>(); return std::make_unique<MessagingBackendServiceImpl>( - std::move(tab_group_change_notifier), tab_group_sync_service, + std::move(tab_group_change_notifier), + std::move(data_sharing_change_notifier), + std::move(messaging_backend_store), tab_group_sync_service, data_sharing_service); }
diff --git a/ios/chrome/browser/push_notification/model/push_notification_delegate.mm b/ios/chrome/browser/push_notification/model/push_notification_delegate.mm index e002447b..456b7664 100644 --- a/ios/chrome/browser/push_notification/model/push_notification_delegate.mm +++ b/ios/chrome/browser/push_notification/model/push_notification_delegate.mm
@@ -85,23 +85,21 @@ // This function creates a dictionary that maps signed-in user's GAIA IDs to a // map of each user's preferences for each push notification enabled feature. GaiaIdToPushNotificationPreferenceMap* -GaiaIdToPushNotificationPreferenceMapFromCache( - ProfileAttributesStorageIOS* storage) { - const size_t number_of_profiles = storage->GetNumberOfProfiles(); +GaiaIdToPushNotificationPreferenceMapFromCache() { + ProfileManagerIOS* manager = GetApplicationContext()->GetProfileManager(); + ProfileAttributesStorageIOS* storage = manager->GetProfileAttributesStorage(); NSMutableDictionary* account_preference_map = [[NSMutableDictionary alloc] init]; - for (size_t i = 0; i < number_of_profiles; i++) { - ProfileAttributesIOS attr = storage->GetAttributesForProfileAtIndex(i); + // TODO(crbug.com/383315797): Migrate prefs to ProfileAttributesStorageIOS. + for (ProfileIOS* profile : manager->GetLoadedProfiles()) { + ProfileAttributesIOS attr = + storage->GetAttributesForProfileWithName(profile->GetProfileName()); if (attr.GetGaiaId().empty()) { continue; } - PrefService* pref_service = GetApplicationContext() - ->GetProfileManager() - ->GetProfileWithName(attr.GetProfileName()) - ->GetPrefs(); - + PrefService* pref_service = profile->GetPrefs(); NSMutableDictionary<NSString*, NSNumber*>* preference_map = [[NSMutableDictionary alloc] init]; const base::Value::Dict& permissions = @@ -241,12 +239,8 @@ - (void)applicationDidRegisterWithAPNS:(NSData*)deviceToken profile:(ProfileIOS*)profile { - ProfileAttributesStorageIOS* storage = GetApplicationContext() - ->GetProfileManager() - ->GetProfileAttributesStorage(); - GaiaIdToPushNotificationPreferenceMap* accountPreferenceMap = - GaiaIdToPushNotificationPreferenceMapFromCache(storage); + GaiaIdToPushNotificationPreferenceMapFromCache(); // Return early if no accounts are signed into Chrome. if (!accountPreferenceMap.count) {
diff --git a/ios/chrome/browser/safety_check_notifications/model/safety_check_notification_client.mm b/ios/chrome/browser/safety_check_notifications/model/safety_check_notification_client.mm index 3843b0b1..c4b0eb2b 100644 --- a/ios/chrome/browser/safety_check_notifications/model/safety_check_notification_client.mm +++ b/ios/chrome/browser/safety_check_notifications/model/safety_check_notification_client.mm
@@ -86,8 +86,7 @@ UNAuthorizationStatus auth_status = [PushNotificationUtil getSavedPermissionSettings]; - return auth_status == UNAuthorizationStatusProvisional || - auth_status == UNAuthorizationStatusNotDetermined; + return auth_status == UNAuthorizationStatusProvisional; } } // namespace @@ -366,12 +365,6 @@ return; } - // If `experimental_arm` is `kSuccinct`, only one notification can be - // scheduled at a time. Otherwise, multiple notifications can be scheduled - // concurrently. - SafetyCheckNotificationsExperimentalArm experimental_arm = - SafetyCheckNotificationsExperimentTypeEnabled(); - UNNotificationRequest* password_notification = PasswordNotificationRequest(password_state, insecure_password_counts); @@ -380,16 +373,15 @@ addNotificationRequest:password_notification withCompletionHandler:nil]; + GetApplicationContext()->GetLocalState()->SetInteger( + prefs::kIosSafetyCheckNotificationsLastSent, + static_cast<int>(SafetyCheckNotificationType::kPasswords)); + base::UmaHistogramEnumeration("IOS.Notifications.SafetyCheck.Requested", SafetyCheckNotificationType::kPasswords); - // In the `kSuccinct` experiment arm, only one notification is allowed at a - // time. Exit early after scheduling it. - if (experimental_arm == - SafetyCheckNotificationsExperimentalArm::kSuccinct) { - std::move(completion).Run(); - return; - } + std::move(completion).Run(); + return; } UNNotificationRequest* safe_browsing_notification = @@ -401,16 +393,15 @@ addNotificationRequest:safe_browsing_notification withCompletionHandler:nil]; + GetApplicationContext()->GetLocalState()->SetInteger( + prefs::kIosSafetyCheckNotificationsLastSent, + static_cast<int>(SafetyCheckNotificationType::kSafeBrowsing)); + base::UmaHistogramEnumeration("IOS.Notifications.SafetyCheck.Requested", SafetyCheckNotificationType::kSafeBrowsing); - // In the `kSuccinct` experiment arm, only one notification is allowed at a - // time. Exit early after scheduling it. - if (experimental_arm == - SafetyCheckNotificationsExperimentalArm::kSuccinct) { - std::move(completion).Run(); - return; - } + std::move(completion).Run(); + return; } UNNotificationRequest* update_chrome_notification = @@ -422,6 +413,10 @@ addNotificationRequest:update_chrome_notification withCompletionHandler:nil]; + GetApplicationContext()->GetLocalState()->SetInteger( + prefs::kIosSafetyCheckNotificationsLastSent, + static_cast<int>(SafetyCheckNotificationType::kUpdateChrome)); + base::UmaHistogramEnumeration("IOS.Notifications.SafetyCheck.Requested", SafetyCheckNotificationType::kUpdateChrome); }
diff --git a/ios/chrome/browser/safety_check_notifications/model/safety_check_notification_client_unittest.mm b/ios/chrome/browser/safety_check_notifications/model/safety_check_notification_client_unittest.mm index 21330532..23a1313c 100644 --- a/ios/chrome/browser/safety_check_notifications/model/safety_check_notification_client_unittest.mm +++ b/ios/chrome/browser/safety_check_notifications/model/safety_check_notification_client_unittest.mm
@@ -13,6 +13,7 @@ #import "base/memory/raw_ptr.h" #import "base/run_loop.h" #import "base/task/sequenced_task_runner.h" +#import "base/test/metrics/histogram_tester.h" #import "base/test/task_environment.h" #import "components/password_manager/core/browser/password_manager_test_utils.h" #import "components/password_manager/core/browser/password_store/test_password_store.h" @@ -102,9 +103,7 @@ base::SequencedTaskRunner::GetCurrentDefault()); } - void TearDown() override { - safety_check_manager_->StopSafetyCheck(); - } + void TearDown() override { safety_check_manager_->StopSafetyCheck(); } // Sets up a mock notification center, so notification requests can be // tested. @@ -260,3 +259,42 @@ EXPECT_OCMOCK_VERIFY(mock_notification_center_); } + +// Tests that the IOS.Notifications.SafetyCheck.Triggered histogram is properly +// fired when a Safety Check notification is triggered. +TEST_F(SafetyCheckNotificationClientTest, FiresTriggeredHistogram) { + StubGetPendingRequests(nil); + base::HistogramTester histogram_tester; + + password_manager::InsecurePasswordCounts counts = { + /* compromised */ 1, /* dismissed */ 0, /* reused */ 0, + /* weak */ 0}; + + safety_check_manager_->SetInsecurePasswordCountsForTesting(counts); + + safety_check_manager_->SetPasswordCheckStateForTesting( + PasswordSafetyCheckState::kUnmutedCompromisedPasswords); + + // First invocation of OnSceneActiveForegroundBrowserReady + // This schedules the notification for the first time. + { + base::RunLoop run_loop; + notification_client_->OnSceneActiveForegroundBrowserReady( + run_loop.QuitClosure()); + run_loop.Run(); + } + + // Second invocation of OnSceneActiveForegroundBrowserReady + // This simulates a follow-up where the notification is marked as triggered. + { + base::RunLoop run_loop; + notification_client_->OnSceneActiveForegroundBrowserReady( + run_loop.QuitClosure()); + run_loop.Run(); + } + + // Verify histogram was fired after the second invocation. + histogram_tester.ExpectBucketCount( + "IOS.Notifications.SafetyCheck.Triggered", + static_cast<int>(SafetyCheckNotificationType::kPasswords), 1); +}
diff --git a/ios/chrome/browser/shared/public/features/features.mm b/ios/chrome/browser/shared/public/features/features.mm index b98785c..3986017 100644 --- a/ios/chrome/browser/shared/public/features/features.mm +++ b/ios/chrome/browser/shared/public/features/features.mm
@@ -430,7 +430,7 @@ base::GetFieldTrialParamByFeatureAsInt( kSafetyCheckNotifications, kSafetyCheckNotificationsExperimentType, /*default_value=*/ - (int)SafetyCheckNotificationsExperimentalArm::kVerbose)); + (int)SafetyCheckNotificationsExperimentalArm::kSuccinct)); } SafetyCheckNotificationsImpressionTrigger
diff --git a/ios/chrome/credential_provider_extension/passkey_keychain_provider.h b/ios/chrome/credential_provider_extension/passkey_keychain_provider.h index c2ae472..ebf7570 100644 --- a/ios/chrome/credential_provider_extension/passkey_keychain_provider.h +++ b/ios/chrome/credential_provider_extension/passkey_keychain_provider.h
@@ -131,7 +131,7 @@ private: // Folsom service. - GCRSSOFolsomService* gcr_sso_folsom_service_; + [[maybe_unused]] GCRSSOFolsomService* gcr_sso_folsom_service_; }; #endif // IOS_CHROME_CREDENTIAL_PROVIDER_EXTENSION_PASSKEY_KEYCHAIN_PROVIDER_H_
diff --git a/ios/web/content/js_messaging/content_web_frame.h b/ios/web/content/js_messaging/content_web_frame.h index a268c06..8be4b7c 100644 --- a/ios/web/content/js_messaging/content_web_frame.h +++ b/ios/web/content/js_messaging/content_web_frame.h
@@ -43,7 +43,6 @@ WebFrameInternal* GetWebFrameInternal() override; std::string GetFrameId() const override; bool IsMainFrame() const override; - GURL GetSecurityOriginDeprecated() const override; url::Origin GetSecurityOrigin() const override; BrowserState* GetBrowserState() override; base::WeakPtr<WebFrame> AsWeakPtr() override;
diff --git a/ios/web/content/js_messaging/content_web_frame.mm b/ios/web/content/js_messaging/content_web_frame.mm index 7a1ecf53..c0e0c80 100644 --- a/ios/web/content/js_messaging/content_web_frame.mm +++ b/ios/web/content/js_messaging/content_web_frame.mm
@@ -67,12 +67,6 @@ return render_frame_host_->IsInPrimaryMainFrame(); } -GURL ContentWebFrame::GetSecurityOriginDeprecated() const { - // TODO(crbug.com/40260077): Once GetSecurityOrigin is changed to return an - // Origin instead of a URL, this should use GetLastCommittedOrigin(). - return render_frame_host_->GetLastCommittedURL().DeprecatedGetOriginAsURL(); -} - url::Origin ContentWebFrame::GetSecurityOrigin() const { return render_frame_host_->GetLastCommittedOrigin(); }
diff --git a/ios/web/js_messaging/web_frame_impl.h b/ios/web/js_messaging/web_frame_impl.h index d8740fb..d74ccb8 100644 --- a/ios/web/js_messaging/web_frame_impl.h +++ b/ios/web/js_messaging/web_frame_impl.h
@@ -35,7 +35,6 @@ const std::string& frame_id, bool is_main_frame, url::Origin security_origin, - GURL security_origin_gurl, web::WebState* web_state, ContentWorld content_world); @@ -52,7 +51,6 @@ std::string GetFrameId() const override; bool IsMainFrame() const override; url::Origin GetSecurityOrigin() const override; - GURL GetSecurityOriginDeprecated() const override; BrowserState* GetBrowserState() override; bool CallJavaScriptFunction(const std::string& name, @@ -168,7 +166,6 @@ bool is_main_frame_ = false; // The security origin associated with this frame. url::Origin security_origin_; - GURL security_origin_gurl_; // The associated web state. raw_ptr<web::WebState> web_state_ = nullptr; // The frame's content world.
diff --git a/ios/web/js_messaging/web_frame_impl.mm b/ios/web/js_messaging/web_frame_impl.mm index af35a17..6a4f41b 100644 --- a/ios/web/js_messaging/web_frame_impl.mm +++ b/ios/web/js_messaging/web_frame_impl.mm
@@ -62,14 +62,12 @@ const std::string& frame_id, bool is_main_frame, url::Origin security_origin, - GURL security_origin_gurl, web::WebState* web_state, ContentWorld content_world) : frame_info_(frame_info), frame_id_(base::ToLowerASCII(frame_id)), is_main_frame_(is_main_frame), security_origin_(security_origin), - security_origin_gurl_(security_origin_gurl), web_state_(web_state), content_world_(content_world) { DCHECK(frame_info_); @@ -102,10 +100,6 @@ return security_origin_; } -GURL WebFrameImpl::GetSecurityOriginDeprecated() const { - return security_origin_gurl_; -} - BrowserState* WebFrameImpl::GetBrowserState() { return GetWebState()->GetBrowserState(); }
diff --git a/ios/web/js_messaging/web_frame_impl_unittest.mm b/ios/web/js_messaging/web_frame_impl_unittest.mm index adb50df..e314942 100644 --- a/ios/web/js_messaging/web_frame_impl_unittest.mm +++ b/ios/web/js_messaging/web_frame_impl_unittest.mm
@@ -63,7 +63,6 @@ WKContentWorld* last_received_content_world_; FakeWebState fake_web_state_; - GURL security_origin_gurl_; url::Origin security_origin_; }; @@ -71,12 +70,10 @@ TEST_F(WebFrameImplTest, CreateWebFrameForMainFrame) { WebFrameImpl web_frame([[WKFrameInfo alloc] init], kFrameId, /*is_main_frame=*/true, security_origin_, - security_origin_gurl_, &fake_web_state_, - ContentWorld::kPageContentWorld); + &fake_web_state_, ContentWorld::kPageContentWorld); EXPECT_EQ(&fake_web_state_, web_frame.GetWebState()); EXPECT_TRUE(web_frame.IsMainFrame()); - EXPECT_EQ(security_origin_gurl_, web_frame.GetSecurityOriginDeprecated()); EXPECT_EQ(security_origin_, web_frame.GetSecurityOrigin()); EXPECT_EQ(kFrameId, web_frame.GetFrameId()); } @@ -85,8 +82,7 @@ TEST_F(WebFrameImplTest, CallJavaScriptFunctionMainFrame) { WebFrameImpl web_frame(mock_frame_info_, kFrameId, /*is_main_frame=*/true, security_origin_, - security_origin_gurl_, &fake_web_state_, - ContentWorld::kPageContentWorld); + &fake_web_state_, ContentWorld::kPageContentWorld); base::Value::List function_params; EXPECT_TRUE( @@ -114,8 +110,7 @@ TEST_F(WebFrameImplTest, CallJavaScriptFunctionIFrame) { WebFrameImpl web_frame(mock_frame_info_, kFrameId, /*is_main_frame=*/false, security_origin_, - security_origin_gurl_, &fake_web_state_, - ContentWorld::kIsolatedWorld); + &fake_web_state_, ContentWorld::kIsolatedWorld); base::Value::List function_params; @@ -149,15 +144,13 @@ WebFrameImpl web_frame(mock_frame_info_, kFrameId, /*is_main_frame=*/true, security_origin_, - security_origin_gurl_, &fake_web_state_, - ContentWorld::kPageContentWorld); + &fake_web_state_, ContentWorld::kPageContentWorld); EXPECT_TRUE(web_frame.ExecuteJavaScript(base::SysNSStringToUTF16(script))); WebFrameImpl web_frame2(mock_frame_info_, kFrameId, /*is_main_frame=*/false, security_origin_, - security_origin_gurl_, &fake_web_state_, - ContentWorld::kPageContentWorld); + &fake_web_state_, ContentWorld::kPageContentWorld); EXPECT_TRUE(web_frame2.ExecuteJavaScript(base::SysNSStringToUTF16(script))); } @@ -170,8 +163,7 @@ WebFrameImpl web_frame(mock_frame_info_, kFrameId, /*is_main_frame=*/true, security_origin_, - security_origin_gurl_, &fake_web_state_, - ContentWorld::kPageContentWorld); + &fake_web_state_, ContentWorld::kPageContentWorld); EXPECT_TRUE( web_frame.ExecuteJavaScript(base::SysNSStringToUTF16(script), @@ -180,8 +172,7 @@ WebFrameImpl web_frame2(mock_frame_info_, kFrameId, /*is_main_frame=*/false, security_origin_, - security_origin_gurl_, &fake_web_state_, - ContentWorld::kPageContentWorld); + &fake_web_state_, ContentWorld::kPageContentWorld); EXPECT_TRUE( web_frame2.ExecuteJavaScript(base::SysNSStringToUTF16(script),
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 86b87b377..ad7d7563 100644 --- a/ios/web/js_messaging/web_frames_manager_impl_unittest.mm +++ b/ios/web/js_messaging/web_frames_manager_impl_unittest.mm
@@ -97,8 +97,6 @@ EXPECT_TRUE(main_frame->IsMainFrame()); EXPECT_EQ(main_frame_ptr->GetSecurityOrigin(), main_frame->GetSecurityOrigin()); - EXPECT_EQ(main_frame_ptr->GetSecurityOriginDeprecated(), - main_frame->GetSecurityOriginDeprecated()); const std::map<std::string, WebFrame*> observed_frames = observer_.frames(); ASSERT_EQ(1ul, observed_frames.size()); @@ -143,8 +141,6 @@ EXPECT_TRUE(main_frame->IsMainFrame()); EXPECT_EQ(main_frame_ptr->GetSecurityOrigin(), main_frame->GetSecurityOrigin()); - EXPECT_EQ(main_frame_ptr->GetSecurityOriginDeprecated(), - main_frame->GetSecurityOriginDeprecated()); const std::map<std::string, WebFrame*> observed_frames = observer_.frames(); ASSERT_EQ(1ul, observed_frames.size()); @@ -215,8 +211,6 @@ EXPECT_TRUE(main_frame->IsMainFrame()); EXPECT_EQ(main_frame_ptr->GetSecurityOrigin(), main_frame->GetSecurityOrigin()); - EXPECT_EQ(main_frame_ptr->GetSecurityOriginDeprecated(), - main_frame->GetSecurityOriginDeprecated()); const std::map<std::string, WebFrame*> observed_frames = observer_.frames(); ASSERT_EQ(1ul, observed_frames.size());
diff --git a/ios/web/js_messaging/web_frames_manager_inttest.mm b/ios/web/js_messaging/web_frames_manager_inttest.mm index 720a8a2..2f29130 100644 --- a/ios/web/js_messaging/web_frames_manager_inttest.mm +++ b/ios/web/js_messaging/web_frames_manager_inttest.mm
@@ -79,8 +79,6 @@ 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()); } // Tests that the WebFramesManager correctly adds a unique WebFrame after a @@ -110,8 +108,6 @@ 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()); std::string pony_frame_id = pony_main_web_frame->GetFrameId(); EXPECT_FALSE(pony_frame_id.empty()); @@ -158,8 +154,6 @@ 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()); std::string pony_frame_id = pony_main_web_frame->GetFrameId(); EXPECT_FALSE(pony_frame_id.empty());
diff --git a/ios/web/js_messaging/web_frames_manager_java_script_feature.mm b/ios/web/js_messaging/web_frames_manager_java_script_feature.mm index fd5d937..805e2865 100644 --- a/ios/web/js_messaging/web_frames_manager_java_script_feature.mm +++ b/ios/web/js_messaging/web_frames_manager_java_script_feature.mm
@@ -179,13 +179,10 @@ url::Origin message_frame_origin = web::OriginWithWKSecurityOrigin(message.frameInfo.securityOrigin); - GURL message_frame_origin_gurl = - web::GURLOriginWithWKSecurityOrigin(message.frameInfo.securityOrigin); auto new_frame = std::make_unique<web::WebFrameImpl>( message.frameInfo, frame_id, message.frameInfo.mainFrame, - message_frame_origin, message_frame_origin_gurl, web_state, - content_world_); + message_frame_origin, web_state, content_world_); web_frames_manager.AddFrame(std::move(new_frame)); }
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 3ade518..b74c640 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
@@ -149,8 +149,6 @@ 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()); // Add frame 1. SendFrameBecameAvailableMessage(frame_1_.get()); @@ -163,16 +161,12 @@ 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. WebFrame* frame_1 = 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()); // Add frame 2. SendFrameBecameAvailableMessage(frame_2_.get()); @@ -185,24 +179,18 @@ 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. frame_1 = 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. WebFrame* frame_2 = 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()); // Remove frame 1. SendFrameBecameUnavailableMessage(frame_1_.get()); @@ -215,8 +203,6 @@ 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. frame_1 = GetPageWorldWebFramesManager().GetFrameWithId(frame_1_->GetFrameId()); @@ -227,8 +213,6 @@ 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()); // Remove main frame. SendFrameBecameUnavailableMessage(main_frame_.get()); @@ -249,8 +233,6 @@ 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()); // Remove frame 2. SendFrameBecameUnavailableMessage(frame_2_.get());
diff --git a/ios/web/public/js_messaging/web_frame.h b/ios/web/public/js_messaging/web_frame.h index db2b81e..d5739fd 100644 --- a/ios/web/public/js_messaging/web_frame.h +++ b/ios/web/public/js_messaging/web_frame.h
@@ -37,7 +37,6 @@ // TODO(crbug.com/40216361): Rename IsMainFrame to IsAnyMainFrame virtual bool IsMainFrame() const = 0; // The security origin associated with this frame. - virtual GURL GetSecurityOriginDeprecated() const = 0; virtual url::Origin GetSecurityOrigin() const = 0; // Returns the BrowserState associated with this WebFrame.
diff --git a/ios/web/public/test/fakes/fake_web_frame.h b/ios/web/public/test/fakes/fake_web_frame.h index 742b7bb..3c15cc3 100644 --- a/ios/web/public/test/fakes/fake_web_frame.h +++ b/ios/web/public/test/fakes/fake_web_frame.h
@@ -28,12 +28,13 @@ // Creates a web frame. `frame_id` must be a string representing a valid // hexadecimal number. static std::unique_ptr<FakeWebFrame> Create(const std::string& frame_id, + bool is_main_frame); + static std::unique_ptr<FakeWebFrame> Create(const std::string& frame_id, bool is_main_frame, - GURL security_origin_gurl); - static std::unique_ptr<FakeWebFrame> Create( - const std::string& frame_id, - bool is_main_frame, - url::Origin security_origin = url::Origin()); + GURL security_origin); + static std::unique_ptr<FakeWebFrame> Create(const std::string& frame_id, + bool is_main_frame, + url::Origin security_origin); // Creates a web frame representing the main frame with a frame id of // `kMainFakeFrameId`.
diff --git a/ios/web/test/fakes/fake_web_frame_impl.h b/ios/web/test/fakes/fake_web_frame_impl.h index 9f584bf..14610a3 100644 --- a/ios/web/test/fakes/fake_web_frame_impl.h +++ b/ios/web/test/fakes/fake_web_frame_impl.h
@@ -23,15 +23,13 @@ public: FakeWebFrameImpl(const std::string& frame_id, bool is_main_frame, - url::Origin security_origin, - const GURL& security_origin_gurl); + url::Origin security_origin); // WebFrame: WebFrameInternal* GetWebFrameInternal() override; std::string GetFrameId() const override; bool IsMainFrame() const override; url::Origin GetSecurityOrigin() const override; - GURL GetSecurityOriginDeprecated() const override; BrowserState* GetBrowserState() override; bool CallJavaScriptFunction(const std::string& name, const base::Value::List& parameters) override; @@ -104,7 +102,6 @@ // Whether or not the receiver represents the main frame. bool is_main_frame_ = false; // The security origin associated with this frame. - GURL security_origin_gurl_; url::Origin security_origin_; // Vector holding history of all javascript handler calls made in this frame. // The calls are sorted with the most recent appended at the end.
diff --git a/ios/web/test/fakes/fake_web_frame_impl.mm b/ios/web/test/fakes/fake_web_frame_impl.mm index e20fb8b..a7fb94fe 100644 --- a/ios/web/test/fakes/fake_web_frame_impl.mm +++ b/ios/web/test/fakes/fake_web_frame_impl.mm
@@ -25,12 +25,19 @@ const char kChildFakeFrameId2[] = "1effd8f52a067c8d3a01762d3c41dfd3"; // static +std::unique_ptr<FakeWebFrame> FakeWebFrame::Create(const std::string& frame_id, + bool is_main_frame) { + return std::make_unique<FakeWebFrameImpl>(frame_id, is_main_frame, + url::Origin()); +} + +// static std::unique_ptr<FakeWebFrame> FakeWebFrame::Create( const std::string& frame_id, bool is_main_frame, url::Origin security_origin) { return std::make_unique<FakeWebFrameImpl>(frame_id, is_main_frame, - security_origin, GURL()); + security_origin); } // static @@ -38,21 +45,20 @@ bool is_main_frame, GURL security_origin) { return std::make_unique<FakeWebFrameImpl>( - frame_id, is_main_frame, url::Origin::Create(security_origin), - security_origin); + frame_id, is_main_frame, url::Origin::Create(security_origin)); } // static std::unique_ptr<FakeWebFrame> FakeWebFrame::CreateMainWebFrame() { return std::make_unique<FakeWebFrameImpl>( - kMainFakeFrameId, /*is_main_frame=*/true, url::Origin(), GURL()); + kMainFakeFrameId, /*is_main_frame=*/true, url::Origin()); } // static std::unique_ptr<FakeWebFrame> FakeWebFrame::CreateMainWebFrame( url::Origin security_origin) { return std::make_unique<FakeWebFrameImpl>( - kMainFakeFrameId, /*is_main_frame=*/true, security_origin, GURL()); + kMainFakeFrameId, /*is_main_frame=*/true, security_origin); } // static @@ -60,20 +66,20 @@ GURL security_origin) { return std::make_unique<FakeWebFrameImpl>( kMainFakeFrameId, /*is_main_frame=*/true, - url::Origin::Create(security_origin), security_origin); + url::Origin::Create(security_origin)); } // static std::unique_ptr<FakeWebFrame> FakeWebFrame::CreateChildWebFrame() { return std::make_unique<FakeWebFrameImpl>( - kChildFakeFrameId, /*is_main_frame=*/false, url::Origin(), GURL()); + kChildFakeFrameId, /*is_main_frame=*/false, url::Origin()); } // static std::unique_ptr<FakeWebFrame> FakeWebFrame::CreateChildWebFrame( url::Origin security_origin) { return std::make_unique<FakeWebFrameImpl>( - kChildFakeFrameId, /*is_main_frame=*/false, security_origin, GURL()); + kChildFakeFrameId, /*is_main_frame=*/false, security_origin); } // static @@ -81,17 +87,14 @@ GURL security_origin) { return std::make_unique<FakeWebFrameImpl>( kChildFakeFrameId, - /*is_main_frame=*/false, url::Origin::Create(security_origin), - security_origin); + /*is_main_frame=*/false, url::Origin::Create(security_origin)); } FakeWebFrameImpl::FakeWebFrameImpl(const std::string& frame_id, bool is_main_frame, - url::Origin security_origin, - const GURL& security_origin_gurl) + url::Origin security_origin) : frame_id_(base::ToLowerASCII(frame_id)), is_main_frame_(is_main_frame), - security_origin_gurl_(security_origin_gurl), security_origin_(security_origin) {} FakeWebFrameImpl::~FakeWebFrameImpl() {} @@ -109,9 +112,6 @@ url::Origin FakeWebFrameImpl::GetSecurityOrigin() const { return security_origin_; } -GURL FakeWebFrameImpl::GetSecurityOriginDeprecated() const { - return security_origin_gurl_; -} BrowserState* FakeWebFrameImpl::GetBrowserState() { return browser_state_;
diff --git a/ios/web/webui/mojo_facade_unittest.mm b/ios/web/webui/mojo_facade_unittest.mm index c383cd7b..6225e90f 100644 --- a/ios/web/webui/mojo_facade_unittest.mm +++ b/ios/web/webui/mojo_facade_unittest.mm
@@ -70,8 +70,7 @@ frames_manager_ = web_frames_manager.get(); web_state_.SetWebFramesManager(std::move(web_frames_manager)); - auto main_frame = - FakeWebFrame::Create("frameID", /*is_main_frame=*/true, GURL()); + auto main_frame = FakeWebFrame::Create("frameID", /*is_main_frame=*/true); main_frame_ = main_frame.get(); frames_manager_->AddWebFrame(std::move(main_frame));
diff --git a/ios/web_view/shell/shell_app_delegate.m b/ios/web_view/shell/shell_app_delegate.m index ec03b07..194136ac 100644 --- a/ios/web_view/shell/shell_app_delegate.m +++ b/ios/web_view/shell/shell_app_delegate.m
@@ -51,13 +51,12 @@ - (BOOL)application:(UIApplication*)application shouldSaveSecureApplicationState:(NSCoder*)coder { - return YES; + return NO; } - (BOOL)application:(UIApplication*)application shouldRestoreSecureApplicationState:(NSCoder*)coder { - // TODO(crbug.com/41312374): Make this value configurable in the settings. - return YES; + return NO; } @end
diff --git a/media/renderers/paint_canvas_video_renderer.h b/media/renderers/paint_canvas_video_renderer.h index 0fe1ad71..be96f84 100644 --- a/media/renderers/paint_canvas_video_renderer.h +++ b/media/renderers/paint_canvas_video_renderer.h
@@ -280,7 +280,7 @@ cc::PaintImage::Id renderer_stable_id_; // Used for DCHECKs to ensure method calls executed in the correct thread. - base::SequenceChecker sequence_checker_; + SEQUENCE_CHECKER(sequence_checker_); struct YUVTextureCache { YUVTextureCache();
diff --git a/net/disk_cache/blockfile/entry_impl.cc b/net/disk_cache/blockfile/entry_impl.cc index 1d20a357..0b5768eb 100644 --- a/net/disk_cache/blockfile/entry_impl.cc +++ b/net/disk_cache/blockfile/entry_impl.cc
@@ -12,6 +12,7 @@ #include <limits> #include <memory> +#include "base/containers/heap_array.h" #include "base/files/file_util.h" #include "base/hash/hash.h" #include "base/numerics/safe_math.h" @@ -1519,7 +1520,7 @@ } void EntryImpl::GetData(int index, - std::unique_ptr<char[]>* buffer, + base::HeapArray<char>* buffer, Addr* address) { DCHECK(backend_.get()); if (user_buffers_[index].get() && user_buffers_[index]->Size() && @@ -1528,15 +1529,15 @@ int data_len = entry_.Data()->data_size[index]; if (data_len <= user_buffers_[index]->Size()) { DCHECK(!user_buffers_[index]->Start()); - *buffer = std::make_unique<char[]>(data_len); - memcpy(buffer->get(), user_buffers_[index]->Data(), data_len); + *buffer = base::HeapArray<char>::Uninit(data_len); + memcpy(buffer->data(), user_buffers_[index]->Data(), data_len); return; } } // Bad news: we'd have to read the info from disk so instead we'll just tell // the caller where to read from. - *buffer = nullptr; + *buffer = {}; address->set_value(entry_.Data()->data_addr[index]); if (address->is_initialized()) { // Prevent us from deleting the block from the backing store.
diff --git a/net/disk_cache/blockfile/entry_impl.h b/net/disk_cache/blockfile/entry_impl.h index 932aafc..409de29 100644 --- a/net/disk_cache/blockfile/entry_impl.h +++ b/net/disk_cache/blockfile/entry_impl.h
@@ -10,6 +10,7 @@ #include <memory> #include <string> +#include "base/containers/heap_array.h" #include "net/base/net_export.h" #include "net/disk_cache/blockfile/disk_format.h" #include "net/disk_cache/blockfile/storage_block-inl.h" @@ -288,7 +289,7 @@ // responsible for deleting the block (or file) from the backing store at some // point; there is no need to report any storage-size change, only to do the // actual cleanup. - void GetData(int index, std::unique_ptr<char[]>* buffer, Addr* address); + void GetData(int index, base::HeapArray<char>* buffer, Addr* address); // |net_log_| should be early since some field destructors (at least // ~SparseControl) can touch it.
diff --git a/net/disk_cache/blockfile/sparse_control.cc b/net/disk_cache/blockfile/sparse_control.cc index 93e3cb9f..a8b6395f 100644 --- a/net/disk_cache/blockfile/sparse_control.cc +++ b/net/disk_cache/blockfile/sparse_control.cc
@@ -11,6 +11,7 @@ #include <stdint.h> +#include "base/containers/heap_array.h" #include "base/format_macros.h" #include "base/functional/bind.h" #include "base/location.h" @@ -81,7 +82,7 @@ // Two ways of deleting the children: if we have the children map, use Start() // directly, otherwise pass the data address to ReadData(). - void Start(std::unique_ptr<char[]> buffer, int len); + void Start(base::HeapArray<char> buffer, int len); void ReadData(disk_cache::Addr address, int len); private: @@ -94,7 +95,7 @@ std::string name_; disk_cache::Bitmap children_map_; int64_t signature_ = 0; - std::unique_ptr<char[]> buffer_; + base::HeapArray<char> buffer_; }; // This is the callback of the file operation. @@ -102,7 +103,7 @@ Start(std::move(buffer_), bytes_copied); } -void ChildrenDeleter::Start(std::unique_ptr<char[]> buffer, int len) { +void ChildrenDeleter::Start(base::HeapArray<char> buffer, int len) { buffer_ = std::move(buffer); if (len < static_cast<int>(sizeof(disk_cache::SparseData))) return Release(); @@ -110,13 +111,13 @@ // Just copy the information from |buffer|, delete |buffer| and start deleting // the child entries. disk_cache::SparseData* data = - reinterpret_cast<disk_cache::SparseData*>(buffer_.get()); + reinterpret_cast<disk_cache::SparseData*>(buffer_.data()); signature_ = data->header.signature; int num_bits = (len - sizeof(disk_cache::SparseHeader)) * 8; children_map_.Resize(num_bits, false); children_map_.SetMap(data->bitmap, num_bits / 32); - buffer_.reset(); + buffer_ = {}; DeleteChildren(); } @@ -133,10 +134,11 @@ size_t file_offset = address.start_block() * address.BlockSize() + disk_cache::kBlockHeaderSize; - buffer_ = std::make_unique<char[]>(len); + buffer_ = base::HeapArray<char>::Uninit(len); bool completed; - if (!file->Read(buffer_.get(), len, file_offset, this, &completed)) + if (!file->Read(buffer_.data(), len, file_offset, this, &completed)) { return Release(); + } if (completed) OnFileIOComplete(len); @@ -376,11 +378,12 @@ if (map_len > kMaxMapSize || map_len % 4) return; - std::unique_ptr<char[]> buffer; + base::HeapArray<char> buffer; Addr address; entry->GetData(kSparseIndex, &buffer, &address); - if (!buffer && !address.is_initialized()) + if (buffer.empty() && !address.is_initialized()) { return; + } entry->net_log().AddEvent(net::NetLogEventType::SPARSE_DELETE_CHILDREN); @@ -390,7 +393,7 @@ // The object will self destruct when finished. deleter->AddRef(); - if (buffer) { + if (!buffer.empty()) { base::SingleThreadTaskRunner::GetCurrentDefault()->PostTask( FROM_HERE, base::BindOnce(&ChildrenDeleter::Start, deleter, std::move(buffer), data_len));
diff --git a/pdf/loader/url_loader.cc b/pdf/loader/url_loader.cc index bf45183..9201456 100644 --- a/pdf/loader/url_loader.cc +++ b/pdf/loader/url_loader.cc
@@ -12,6 +12,7 @@ #include <utility> #include "base/check_op.h" +#include "base/containers/span.h" #include "base/functional/bind.h" #include "base/functional/callback.h" #include "base/memory/raw_ref.h" @@ -115,7 +116,7 @@ if (!request.body.empty()) { blink::WebHTTPBody body; body.Initialize(); - body.AppendData(request.body); + body.AppendData(blink::WebData(base::as_byte_span(request.body))); blink_request.SetHttpBody(body); }
diff --git a/sandbox/win/BUILD.gn b/sandbox/win/BUILD.gn index a82eaae..8848277d 100644 --- a/sandbox/win/BUILD.gn +++ b/sandbox/win/BUILD.gn
@@ -170,9 +170,9 @@ ] deps = [ - ":maybe_set_appcontainer_acls", ":service_resolver", "//base:base_static", + "//build/config/win:maybe_set_appcontainer_acls", ] libs = [ @@ -233,27 +233,6 @@ configs += [ "//build/config/win:delayloads" ] } -group("maybe_set_appcontainer_acls") { - # Exclude setting ACLs when build is not happening on Windows. - if (current_cpu == target_cpu && host_os == "win") { - deps = [ ":set_appcontainer_acls" ] - } -} - -if (current_cpu == target_cpu && host_os == "win") { - action("set_appcontainer_acls") { - script = "//build/win/set_appcontainer_acls.py" - stamp_file = "$target_out_dir/acls.stamp" - inputs = [ script ] - outputs = [ stamp_file ] - - args = [ - "--stamp=" + rebase_path(stamp_file, root_out_dir), - "--dir=" + rebase_path(root_out_dir, root_out_dir), - ] - } -} - shared_library("sbox_integration_test_hooking_dll") { testonly = true sources = [ "tests/integration_tests/hooking_dll.cc" ]
diff --git a/services/network/public/mojom/network_context.mojom b/services/network/public/mojom/network_context.mojom index 32c82e61..8fd16239 100644 --- a/services/network/public/mojom/network_context.mojom +++ b/services/network/public/mojom/network_context.mojom
@@ -773,7 +773,8 @@ // SECURITY NOTE: Factories with kBrowserProcessId should not be sent // to untrustworthy processes. // - // Set to RenderProcessHost::GetID() to indicate a renderer process. + // Set to RenderProcessHost::GetDeprecatedID() to indicate a renderer + // process. // SECURITY NOTE: Factories should not be shared among multiple renderer // processes (e.g. |request_initiator_origin_lock| is specific to a single // renderer process).
diff --git a/services/webnn/coreml/graph_builder_coreml.cc b/services/webnn/coreml/graph_builder_coreml.cc index a277840e..9759d7c 100644 --- a/services/webnn/coreml/graph_builder_coreml.cc +++ b/services/webnn/coreml/graph_builder_coreml.cc
@@ -1060,8 +1060,9 @@ // to include int32. /*linear_input=*/DataTypeConstraint::kFloat16To32, /*lstm_input=*/DataTypeConstraint::kFloat16To32, - // LstmCell is not implemented. - /*lstm_cell_input=*/{}, + // LstmCell is implemented with lstm, they should have the same + // constraints. + /*lstm_cell_input=*/DataTypeConstraint::kFloat16To32, /*matmul_input=*/kFloatsAndInt32, /*pad_input=*/DataTypeConstraint::kFloat16To32, /*average_pool2d_input=*/DataTypeConstraint::kFloat16To32, @@ -1307,6 +1308,11 @@ RETURN_IF_ERROR(AddOperationForLstm(*operation->get_lstm(), block)); break; } + case mojom::Operation::Tag::kLstmCell: { + RETURN_IF_ERROR( + AddOperationForLstmCell(*operation->get_lstm_cell(), block)); + break; + } case mojom::Operation::Tag::kMatmul: { RETURN_IF_ERROR(AddOperationForMatmul(*operation->get_matmul(), block)); break; @@ -1421,7 +1427,6 @@ break; } case mojom::Operation::Tag::kDequantizeLinear: - case mojom::Operation::Tag::kLstmCell: case mojom::Operation::Tag::kPrelu: case mojom::Operation::Tag::kQuantizeLinear: case mojom::Operation::Tag::kReverse: @@ -3159,6 +3164,30 @@ CHECK(context_properties_.data_type_limits.layer_normalization_input.Has( MILDataTypeToOperandType(input_operand_info.mil_data_type))); + // CoreML doesn't support empty axes. When axes is empty, the mean equals to + // input, output = bias + (scale * 0) + if (operation.axes.empty()) { + uint64_t zeros = operation.output_operand_id; + if (operation.bias_operand_id) { + ASSIGN_OR_RETURN( + zeros, GenerateInternalOperandInfo(input_operand_info.mil_data_type, + input_operand_info.dimensions)); + } + // input-input is zero, no need to multiply scale then divide by + // sqrt(variance + epsilon). + RETURN_IF_ERROR(AddOperationForElementwiseBinary( + operation.input_operand_id, operation.input_operand_id, zeros, + mojom::ElementWiseBinary::Kind::kSub, block)); + + if (operation.bias_operand_id) { + RETURN_IF_ERROR(AddOperationForElementwiseBinary( + zeros, *operation.bias_operand_id, operation.output_operand_id, + mojom::ElementWiseBinary::Kind::kAdd, block)); + } + + return base::ok(); + } + // TODO: crbug.com/356905058: Figure out if unordered axes should be allowed. if (!base::ranges::is_sorted(operation.axes)) { return NewNotSupportedError("Axes must be ordered for layerNormalization."); @@ -3244,54 +3273,61 @@ [[nodiscard]] base::expected<void, mojom::ErrorPtr> GraphBuilderCoreml::AddOperationForLstm( - const mojom::Lstm& operation, + uint64_t input_operand_id, + uint64_t weight_operand_id, + uint64_t recurrent_weight_operand_id, + uint32_t hidden_size, + std::optional<uint64_t> bias_operand_id, + std::optional<uint64_t> recurrent_bias_operand_id, + std::optional<uint64_t> peephole_weight_operand_id, + std::optional<uint64_t> initial_hidden_state_operand_id, + std::optional<uint64_t> initial_cell_state_operand_id, + bool return_sequence, + mojom::RecurrentNetworkDirection direction, + mojom::LstmWeightLayout layout, + base::span<const mojom::RecurrentNetworkActivation> activations, + base::span<const uint64_t> output_operand_ids, CoreML::Specification::MILSpec::Block& block) { - if (!constant_operands_->contains(operation.weight_operand_id)) { + if (!constant_operands_->contains(weight_operand_id)) { return NewNotSupportedError("lstm argument weight must be constant."); } - if (!constant_operands_->contains(operation.recurrent_weight_operand_id)) { + if (!constant_operands_->contains(recurrent_weight_operand_id)) { return NewNotSupportedError( "lstm argument recurrentWeight must be constant."); } - if (operation.bias_operand_id && - !constant_operands_->contains(*operation.bias_operand_id)) { + if (bias_operand_id && !constant_operands_->contains(*bias_operand_id)) { return NewNotSupportedError("lstm argument bias must be constant."); } - if (operation.recurrent_bias_operand_id && - !constant_operands_->contains(*operation.recurrent_bias_operand_id)) { + if (recurrent_bias_operand_id && + !constant_operands_->contains(*recurrent_bias_operand_id)) { return NewNotSupportedError( "lstm argument recurrentBias must be constant."); } - if (operation.peephole_weight_operand_id && - !constant_operands_->contains(*operation.peephole_weight_operand_id)) { + if (peephole_weight_operand_id && + !constant_operands_->contains(*peephole_weight_operand_id)) { return NewNotSupportedError( "lstm argument peepholeWeight must be constant."); } - const OperandInfo& input_operand_info = - GetOperandInfo(operation.input_operand_id); + const OperandInfo& input_operand_info = GetOperandInfo(input_operand_id); CoreML::Specification::MILSpec::DataType data_type = input_operand_info.mil_data_type; OperandDataType operand_data_type = MILDataTypeToOperandType(data_type); CHECK(context_properties_.data_type_limits.lstm_input.Has(operand_data_type)); + CHECK_EQ(data_type, GetOperandInfo(weight_operand_id).mil_data_type); CHECK_EQ(data_type, - GetOperandInfo(operation.weight_operand_id).mil_data_type); - CHECK_EQ(data_type, - GetOperandInfo(operation.recurrent_weight_operand_id).mil_data_type); - if (operation.bias_operand_id) { + GetOperandInfo(recurrent_weight_operand_id).mil_data_type); + if (bias_operand_id) { + CHECK_EQ(data_type, GetOperandInfo(*bias_operand_id).mil_data_type); + } + if (recurrent_bias_operand_id) { CHECK_EQ(data_type, - GetOperandInfo(*operation.bias_operand_id).mil_data_type); + GetOperandInfo(*recurrent_bias_operand_id).mil_data_type); } - if (operation.recurrent_bias_operand_id) { - CHECK_EQ( - data_type, - GetOperandInfo(*operation.recurrent_bias_operand_id).mil_data_type); - } - if (operation.peephole_weight_operand_id) { - CHECK_EQ( - data_type, - GetOperandInfo(*operation.peephole_weight_operand_id).mil_data_type); + if (peephole_weight_operand_id) { + CHECK_EQ(data_type, + GetOperandInfo(*peephole_weight_operand_id).mil_data_type); } static constexpr char kParamActivation[] = "activation"; @@ -3314,13 +3350,12 @@ static constexpr char kBothDirection[] = "both"; uint32_t num_of_directions = - operation.direction == mojom::RecurrentNetworkDirection::kBoth ? 2 : 1; + direction == mojom::RecurrentNetworkDirection::kBoth ? 2 : 1; CHECK_EQ(input_operand_info.dimensions.size(), 3u); + uint32_t steps = input_operand_info.dimensions[0]; uint32_t batch_size = input_operand_info.dimensions[1]; uint32_t input_size = input_operand_info.dimensions[2]; - uint32_t hidden_size = operation.hidden_size; - uint32_t steps = operation.steps; // If `initial_hidden_state` or `initial_cell_state` is provided, need to // change dimensions: [numDirections, batchSize, hiddenSize] -> [batchSize, @@ -3330,19 +3365,17 @@ GenerateInternalOperandInfo( data_type, base::span<const uint32_t>( {batch_size, hidden_size * num_of_directions}))); - if (operation.initial_hidden_state_operand_id) { - CHECK_EQ(GetOperandInfo(*operation.initial_hidden_state_operand_id) - .mil_data_type, + if (initial_hidden_state_operand_id) { + CHECK_EQ(GetOperandInfo(*initial_hidden_state_operand_id).mil_data_type, input_operand_info.mil_data_type); ASSIGN_OR_RETURN( uint64_t transposed_initial_hidden_state, GenerateInternalOperandInfo( data_type, base::span<const uint32_t>( {batch_size, num_of_directions, hidden_size}))); - RETURN_IF_ERROR( - AddOperationForTranspose(*operation.initial_hidden_state_operand_id, - transposed_initial_hidden_state, - base::span<const uint32_t>({1, 0, 2}), block)); + RETURN_IF_ERROR(AddOperationForTranspose( + *initial_hidden_state_operand_id, transposed_initial_hidden_state, + base::span<const uint32_t>({1, 0, 2}), block)); RETURN_IF_ERROR(AddOperationForReshape(transposed_initial_hidden_state, initial_hidden_state, block)); @@ -3356,17 +3389,16 @@ GenerateInternalOperandInfo( data_type, base::span<const uint32_t>( {batch_size, hidden_size * num_of_directions}))); - if (operation.initial_cell_state_operand_id) { - CHECK_EQ( - GetOperandInfo(*operation.initial_cell_state_operand_id).mil_data_type, - input_operand_info.mil_data_type); + if (initial_cell_state_operand_id) { + CHECK_EQ(GetOperandInfo(*initial_cell_state_operand_id).mil_data_type, + input_operand_info.mil_data_type); ASSIGN_OR_RETURN( uint64_t transposed_initial_cell_state, GenerateInternalOperandInfo( data_type, base::span<const uint32_t>( {batch_size, num_of_directions, hidden_size}))); RETURN_IF_ERROR(AddOperationForTranspose( - *operation.initial_cell_state_operand_id, transposed_initial_cell_state, + *initial_cell_state_operand_id, transposed_initial_cell_state, base::span<const uint32_t>({1, 0, 2}), block)); RETURN_IF_ERROR(AddOperationForReshape(transposed_initial_cell_state, initial_cell_state, block)); @@ -3378,8 +3410,8 @@ // Need to reorder layout to CoreML expected [input, forget, output, cell] - // ifog. - std::vector<size_t> layout_reorder; - switch (operation.layout) { + std::array<size_t, 4> layout_reorder; + switch (layout) { case (mojom::LstmWeightLayout::kIfgo): { layout_reorder = {0, 1, 3, 2}; break; @@ -3392,47 +3424,41 @@ CoreML::Specification::MILSpec::Operation* op = block.add_operations(); op->set_type(kOpLstmTypeName); - RETURN_IF_ERROR(SetInputFromOperand(*op->mutable_inputs(), kOpParamX, - operation.input_operand_id)); + RETURN_IF_ERROR( + SetInputFromOperand(*op->mutable_inputs(), kOpParamX, input_operand_id)); RETURN_IF_ERROR(SetInputFromOperand( *op->mutable_inputs(), kParamInitialHiddenState, initial_hidden_state)); RETURN_IF_ERROR(SetInputFromOperand( *op->mutable_inputs(), kParamInitialCellState, initial_cell_state)); - std::string_view direction; - switch (operation.direction) { + std::string_view direction_param_value; + switch (direction) { case mojom::RecurrentNetworkDirection::kForward: - direction = kForwardDirection; + direction_param_value = kForwardDirection; break; case mojom::RecurrentNetworkDirection::kBackward: - direction = kBackwardDirection; + direction_param_value = kBackwardDirection; break; case mojom::RecurrentNetworkDirection::kBoth: - direction = kBothDirection; + direction_param_value = kBothDirection; break; } SetInputsWithValues( *op->mutable_inputs(), {{kParamRecurrentActivation, - CreateStringImmediateValue( - GetActivationParam(operation.activations[0]))}, - {kParamCellActivation, CreateStringImmediateValue(GetActivationParam( - operation.activations[1]))}, - {kParamActivation, CreateStringImmediateValue( - GetActivationParam(operation.activations[2]))}, - {kParamDirection, CreateStringImmediateValue(direction)}, - {kParamOutputSequence, - CreateScalarImmediateValue(operation.return_sequence)}}); + CreateStringImmediateValue(GetActivationParam(activations[0]))}, + {kParamCellActivation, + CreateStringImmediateValue(GetActivationParam(activations[1]))}, + {kParamActivation, + CreateStringImmediateValue(GetActivationParam(activations[2]))}, + {kParamDirection, CreateStringImmediateValue(direction_param_value)}, + {kParamOutputSequence, CreateScalarImmediateValue(return_sequence)}}); size_t item_byte_size = weights_file_handle_->GetByteSize(operand_data_type); - const OperandInfo& weight_operand = - GetOperandInfo(operation.weight_operand_id); - CHECK_EQ(weight_operand.dimensions.size(), 3u); - CHECK_EQ(weight_operand.dimensions[0], 1u); base::FixedArray<uint32_t> weight_dimension{4 * hidden_size, input_size}; base::span<const uint8_t> weight = - constant_operands_->at(operation.weight_operand_id)->ByteSpan(); + constant_operands_->at(weight_operand_id)->ByteSpan(); // Based on layout reorder, calculate [(offset, size), ..] to extract // subspans to write. @@ -3451,7 +3477,7 @@ *op->mutable_inputs(), kParamInputWeight, weight.first(weight_size_per_direction), operand_data_type, weight_dimension, weight_new_order)); - if (operation.direction == mojom::RecurrentNetworkDirection::kBoth) { + if (direction == mojom::RecurrentNetworkDirection::kBoth) { RETURN_IF_ERROR(SetInputFromConstantReordered( *op->mutable_inputs(), kParamInputWeightBack, weight.subspan(weight_size_per_direction, weight_size_per_direction), @@ -3459,7 +3485,7 @@ } base::span<const uint8_t> recurrent_weight = - constant_operands_->at(operation.recurrent_weight_operand_id)->ByteSpan(); + constant_operands_->at(recurrent_weight_operand_id)->ByteSpan(); base::FixedArray<uint32_t> recurrent_weight_dimension{4 * hidden_size, hidden_size}; @@ -3477,7 +3503,7 @@ recurrent_weight.first(recurrent_weight_size_per_direction), operand_data_type, recurrent_weight_dimension, recurrent_weight_new_order)); - if (operation.direction == mojom::RecurrentNetworkDirection::kBoth) { + if (direction == mojom::RecurrentNetworkDirection::kBoth) { RETURN_IF_ERROR(SetInputFromConstantReordered( *op->mutable_inputs(), kParamRecurrentWeightBack, recurrent_weight.subspan(recurrent_weight_size_per_direction, @@ -3486,10 +3512,9 @@ recurrent_weight_new_order)); } - if (operation.peephole_weight_operand_id) { + if (peephole_weight_operand_id) { base::span<const uint8_t> peephole_weight = - constant_operands_->at(*operation.peephole_weight_operand_id) - ->ByteSpan(); + constant_operands_->at(*peephole_weight_operand_id)->ByteSpan(); base::FixedArray<uint32_t> peephole_weight_dimension{3 * hidden_size}; // WebNN peephole weight layout is [input, output, forget], CoreML takes // [input, forget, output] @@ -3506,7 +3531,7 @@ *op->mutable_inputs(), kParamPeephole, peephole_weight.first(peephole_weight_size_per_direction), operand_data_type, peephole_weight_dimension, peephole_new_order)); - if (operation.direction == mojom::RecurrentNetworkDirection::kBoth) { + if (direction == mojom::RecurrentNetworkDirection::kBoth) { RETURN_IF_ERROR(SetInputFromConstantReordered( *op->mutable_inputs(), kParamPeepholeBack, peephole_weight.subspan(peephole_weight_size_per_direction, @@ -3523,19 +3548,18 @@ } size_t bias_size_per_direction = 4 * hidden_size * item_byte_size; // CoreML's 'bias' param is the combination of bias and recurrent_bias. - if (operation.bias_operand_id && operation.recurrent_bias_operand_id) { + if (bias_operand_id && recurrent_bias_operand_id) { base::span<const uint8_t> bias = - constant_operands_->at(*operation.bias_operand_id)->ByteSpan(); + constant_operands_->at(*bias_operand_id)->ByteSpan(); base::span<const uint8_t> recurrent_bias = - constant_operands_->at(*operation.recurrent_bias_operand_id) - ->ByteSpan(); + constant_operands_->at(*recurrent_bias_operand_id)->ByteSpan(); RETURN_IF_ERROR(SetInputFromTwoConstantsReordered( *op->mutable_inputs(), kOpParamBias, bias.first(bias_size_per_direction), recurrent_bias.first(bias_size_per_direction), operand_data_type, bias_dimensions, bias_new_order)); - if (operation.direction == mojom::RecurrentNetworkDirection::kBoth) { + if (direction == mojom::RecurrentNetworkDirection::kBoth) { RETURN_IF_ERROR(SetInputFromTwoConstantsReordered( *op->mutable_inputs(), kParamBiasBack, bias.subspan(bias_size_per_direction, bias_size_per_direction), @@ -3543,18 +3567,17 @@ bias_size_per_direction), operand_data_type, bias_dimensions, bias_new_order)); } - } else if (operation.bias_operand_id || operation.recurrent_bias_operand_id) { - uint64_t bias_operand_id = operation.bias_operand_id - ? *operation.bias_operand_id - : *operation.recurrent_bias_operand_id; + } else if (bias_operand_id || recurrent_bias_operand_id) { + uint64_t coreml_bias_param = + bias_operand_id.value_or(*recurrent_bias_operand_id); base::span<const uint8_t> bias = - constant_operands_->at(bias_operand_id)->ByteSpan(); + constant_operands_->at(coreml_bias_param)->ByteSpan(); RETURN_IF_ERROR(SetInputFromConstantReordered( *op->mutable_inputs(), kOpParamBias, bias.first(bias_size_per_direction), operand_data_type, bias_dimensions, bias_new_order)); - if (operation.direction == mojom::RecurrentNetworkDirection::kBoth) { + if (direction == mojom::RecurrentNetworkDirection::kBoth) { RETURN_IF_ERROR(SetInputFromConstantReordered( *op->mutable_inputs(), kParamBiasBack, bias.subspan(bias_size_per_direction, bias_size_per_direction), @@ -3562,11 +3585,11 @@ } } - if (operation.return_sequence) { + if (return_sequence) { // If return sequence, the first output of the CoreML lstm is the // outputs of every step [steps, batchSize, numDirections * hiddenSize] that // need to be reshaped to [steps, numDirections, batchSize, hiddenSize]. - CHECK_EQ(operation.output_operand_ids.size(), 3u); + CHECK_EQ(output_operand_ids.size(), 3u); ASSIGN_OR_RETURN(uint64_t coreml_first_output_id, GenerateInternalOperandInfo( data_type, base::span<const uint32_t>( @@ -3584,7 +3607,7 @@ // [steps, batchSize, numDirections, hiddenSize] -> [steps, numDirections, // batchSize, hiddenSize] RETURN_IF_ERROR(AddOperationForTranspose( - coreml_first_output_id_reshaped, operation.output_operand_ids[2], + coreml_first_output_id_reshaped, output_operand_ids[2], base::span<const uint32_t>({0, 2, 1, 3}), block)); } else { // Else, the first output of CoreML lstm is the output of the last step with @@ -3599,7 +3622,7 @@ // The second and third CoreML outputs are last step hidden state and cell // state. Both need to reshape & transpose from [batchSize, numDirection * // hiddenSize] -> [numDirections, batchSize, hiddenSize] - CHECK_GE(operation.output_operand_ids.size(), 2u); + CHECK_GE(output_operand_ids.size(), 2u); for (size_t i = 0; i < 2u; i++) { ASSIGN_OR_RETURN( uint64_t output_id, @@ -3617,14 +3640,86 @@ // [batchSize, numDirections, hiddenSize] -> [numDirections, batchSize, // hiddenSize] - RETURN_IF_ERROR(AddOperationForTranspose( - output_id_reshaped, operation.output_operand_ids[i], - base::span<const uint32_t>({1, 0, 2}), block)); + RETURN_IF_ERROR( + AddOperationForTranspose(output_id_reshaped, output_operand_ids[i], + base::span<const uint32_t>({1, 0, 2}), block)); } return base::ok(); } [[nodiscard]] base::expected<void, mojom::ErrorPtr> +GraphBuilderCoreml::AddOperationForLstm( + const mojom::Lstm& operation, + CoreML::Specification::MILSpec::Block& block) { + return AddOperationForLstm( + operation.input_operand_id, operation.weight_operand_id, + operation.recurrent_weight_operand_id, operation.hidden_size, + operation.bias_operand_id, operation.recurrent_bias_operand_id, + operation.peephole_weight_operand_id, + operation.initial_hidden_state_operand_id, + operation.initial_cell_state_operand_id, operation.return_sequence, + operation.direction, operation.layout, operation.activations, + operation.output_operand_ids, block); +} + +[[nodiscard]] base::expected<void, mojom::ErrorPtr> +GraphBuilderCoreml::AddOperationForLstmCell( + const mojom::LstmCell& operation, + CoreML::Specification::MILSpec::Block& block) { + // CoreML only has 'lstm' operation. So treat it as a single step + // lstm. + const OperandInfo& input_operand_info = + GetOperandInfo(operation.input_operand_id); + CHECK_EQ(input_operand_info.dimensions.size(), 2u); + uint32_t batch_size = input_operand_info.dimensions[0]; + ASSIGN_OR_RETURN(uint64_t reshaped_input, + GenerateInternalOperandInfo( + input_operand_info.mil_data_type, + base::span<const uint32_t>( + {/*steps=*/1, input_operand_info.dimensions[0], + input_operand_info.dimensions[1]}))); + RETURN_IF_ERROR(AddOperationForReshape(operation.input_operand_id, + reshaped_input, block)); + + // hidden_state, cell_state, output_hidden_state, output_cell_state all need + // to add a numOfDirections dimension. + std::array<uint64_t, 4> reshaped_operands; + for (auto& reshaped_operand : reshaped_operands) { + ASSIGN_OR_RETURN( + reshaped_operand, + GenerateInternalOperandInfo( + input_operand_info.mil_data_type, + base::span<const uint32_t>( + {/*numOfDirections=*/1, batch_size, operation.hidden_size}))); + } + uint64_t hidden_state_operand_id = reshaped_operands[0]; + uint64_t cell_state_operand_id = reshaped_operands[1]; + uint64_t output_hidden_state = reshaped_operands[2]; + uint64_t output_cell_state = reshaped_operands[3]; + RETURN_IF_ERROR(AddOperationForReshape(operation.hidden_state_operand_id, + hidden_state_operand_id, block)); + RETURN_IF_ERROR(AddOperationForReshape(operation.cell_state_operand_id, + cell_state_operand_id, block)); + + RETURN_IF_ERROR(AddOperationForLstm( + reshaped_input, operation.weight_operand_id, + operation.recurrent_weight_operand_id, operation.hidden_size, + operation.bias_operand_id, operation.recurrent_bias_operand_id, + operation.peephole_weight_operand_id, hidden_state_operand_id, + cell_state_operand_id, + /*return_sequence=*/false, mojom::RecurrentNetworkDirection::kForward, + operation.layout, operation.activations, + base::span<const uint64_t>({output_hidden_state, output_cell_state}), + block)); + CHECK_EQ(operation.output_operand_ids.size(), 2u); + RETURN_IF_ERROR(AddOperationForReshape( + output_hidden_state, operation.output_operand_ids[0], block)); + RETURN_IF_ERROR(AddOperationForReshape( + output_cell_state, operation.output_operand_ids[1], block)); + return base::ok(); +} + +[[nodiscard]] base::expected<void, mojom::ErrorPtr> GraphBuilderCoreml::AddOperationForMatmul( uint64_t input_x_operand_id, uint64_t input_y_operand_id,
diff --git a/services/webnn/coreml/graph_builder_coreml.h b/services/webnn/coreml/graph_builder_coreml.h index 164625c..d9795c2 100644 --- a/services/webnn/coreml/graph_builder_coreml.h +++ b/services/webnn/coreml/graph_builder_coreml.h
@@ -7,6 +7,7 @@ #include <cstdint> #include <memory> +#include <optional> #include <string_view> #include "base/containers/flat_map.h" @@ -397,6 +398,25 @@ [[nodiscard]] base::expected<void, mojom::ErrorPtr> AddOperationForLstm( const mojom::Lstm& operation, CoreML::Specification::MILSpec::Block& block); + [[nodiscard]] base::expected<void, mojom::ErrorPtr> AddOperationForLstm( + uint64_t input_operand_id, + uint64_t weight_operand_id, + uint64_t recurrent_weight_operand_id, + uint32_t hidden_size, + std::optional<uint64_t> bias_operand_id, + std::optional<uint64_t> recurrent_bias_operand_id, + std::optional<uint64_t> peephole_weight_operand_id, + std::optional<uint64_t> initial_hidden_state_operand_id, + std::optional<uint64_t> initial_cell_state_operand_id, + bool return_sequence, + mojom::RecurrentNetworkDirection direction, + mojom::LstmWeightLayout layout, + base::span<const mojom::RecurrentNetworkActivation> activations, + base::span<const uint64_t> output_operand_ids, + CoreML::Specification::MILSpec::Block& block); + [[nodiscard]] base::expected<void, mojom::ErrorPtr> AddOperationForLstmCell( + const mojom::LstmCell& operation, + CoreML::Specification::MILSpec::Block& block); [[nodiscard]] base::expected<void, mojom::ErrorPtr> AddOperationForMatmul( uint64_t input_x_operand_id, uint64_t input_y_operand_id,
diff --git a/testing/buildbot/client.v8.fyi.json b/testing/buildbot/client.v8.fyi.json index 0c864c8..36585f8 100644 --- a/testing/buildbot/client.v8.fyi.json +++ b/testing/buildbot/client.v8.fyi.json
@@ -2559,39 +2559,6 @@ "--passthrough", "-v", "--stable-jobs", - "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --use-cmd-decoder=passthrough --use-gl=angle --enable-features=SkiaGraphite", - "--enforce-browser-version", - "--jobs=4" - ], - "merge": { - "script": "//testing/merge_scripts/standard_isolated_script_merge.py" - }, - "name": "context_lost_passthrough_graphite_tests", - "resultdb": { - "enable": true, - "has_native_resultdb_integration": true - }, - "swarming": { - "dimensions": { - "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", - "pool": "chromium.tests.gpu" - }, - "idempotent": false, - "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com" - }, - "test": "telemetry_gpu_integration_test", - "test_id_prefix": "ninja://chrome/test:telemetry_gpu_integration_test/" - }, - { - "args": [ - "context_lost", - "--show-stdout", - "--browser=release", - "--passthrough", - "-v", - "--stable-jobs", "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --use-cmd-decoder=passthrough --use-gl=angle", "--enforce-browser-version", "--jobs=4" @@ -2607,50 +2574,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", - "pool": "chromium.tests.gpu" - }, - "idempotent": false, - "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com" - }, - "test": "telemetry_gpu_integration_test", - "test_id_prefix": "ninja://chrome/test:telemetry_gpu_integration_test/" - }, - { - "args": [ - "expected_color", - "--show-stdout", - "--browser=release", - "--passthrough", - "-v", - "--stable-jobs", - "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --use-cmd-decoder=passthrough --use-gl=angle --enable-features=SkiaGraphite", - "--enforce-browser-version", - "--git-revision=${got_revision}", - "--dont-restore-color-profile-after-test", - "--test-machine-name", - "${buildername}", - "--jobs=4" - ], - "merge": { - "script": "//testing/merge_scripts/standard_isolated_script_merge.py" - }, - "name": "expected_color_pixel_passthrough_graphite_test", - "precommit_args": [ - "--gerrit-issue=${patch_issue}", - "--gerrit-patchset=${patch_set}", - "--buildbucket-id=${buildbucket_build_id}" - ], - "resultdb": { - "enable": true, - "has_native_resultdb_integration": true - }, - "swarming": { - "dimensions": { - "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "idempotent": false, @@ -2691,8 +2616,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "idempotent": false, @@ -2724,8 +2649,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "idempotent": false, @@ -2757,50 +2682,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", - "pool": "chromium.tests.gpu" - }, - "idempotent": false, - "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com" - }, - "test": "telemetry_gpu_integration_test", - "test_id_prefix": "ninja://chrome/test:telemetry_gpu_integration_test/" - }, - { - "args": [ - "pixel", - "--show-stdout", - "--browser=release", - "--passthrough", - "-v", - "--stable-jobs", - "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --use-cmd-decoder=passthrough --use-gl=angle --enable-features=SkiaGraphite", - "--enforce-browser-version", - "--git-revision=${got_revision}", - "--dont-restore-color-profile-after-test", - "--test-machine-name", - "${buildername}", - "--jobs=4" - ], - "merge": { - "script": "//testing/merge_scripts/standard_isolated_script_merge.py" - }, - "name": "pixel_skia_gold_passthrough_graphite_test", - "precommit_args": [ - "--gerrit-issue=${patch_issue}", - "--gerrit-patchset=${patch_set}", - "--buildbucket-id=${buildbucket_build_id}" - ], - "resultdb": { - "enable": true, - "has_native_resultdb_integration": true - }, - "swarming": { - "dimensions": { - "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "idempotent": false, @@ -2823,7 +2706,7 @@ "--dont-restore-color-profile-after-test", "--test-machine-name", "${buildername}", - "--jobs=4" + "--jobs=1" ], "merge": { "script": "//testing/merge_scripts/standard_isolated_script_merge.py" @@ -2841,42 +2724,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", - "pool": "chromium.tests.gpu" - }, - "idempotent": false, - "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com" - }, - "test": "telemetry_gpu_integration_test", - "test_id_prefix": "ninja://chrome/test:telemetry_gpu_integration_test/" - }, - { - "args": [ - "screenshot_sync", - "--show-stdout", - "--browser=release", - "--passthrough", - "-v", - "--stable-jobs", - "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --use-cmd-decoder=passthrough --use-gl=angle --enable-features=SkiaGraphite", - "--enforce-browser-version", - "--dont-restore-color-profile-after-test", - "--jobs=4" - ], - "merge": { - "script": "//testing/merge_scripts/standard_isolated_script_merge.py" - }, - "name": "screenshot_sync_passthrough_graphite_tests", - "resultdb": { - "enable": true, - "has_native_resultdb_integration": true - }, - "swarming": { - "dimensions": { - "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "idempotent": false, @@ -2909,8 +2758,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "idempotent": false, @@ -2942,8 +2791,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "idempotent": false, @@ -2975,8 +2824,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "idempotent": false, @@ -3009,8 +2858,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "idempotent": false, @@ -3044,42 +2893,8 @@ "swarming": { "dimensions": { "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", - "pool": "chromium.tests.gpu" - }, - "idempotent": false, - "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com", - "shards": 2 - }, - "test": "telemetry_gpu_integration_test", - "test_id_prefix": "ninja://chrome/test:telemetry_gpu_integration_test/" - }, - { - "args": [ - "webgl1_conformance", - "--show-stdout", - "--browser=release", - "--passthrough", - "-v", - "--stable-jobs", - "--extra-browser-args=--enable-logging=stderr --js-flags=--expose-gc --use-angle=vulkan --use-cmd-decoder=passthrough --force_high_performance_gpu", - "--enforce-browser-version", - "--jobs=4" - ], - "merge": { - "script": "//testing/merge_scripts/standard_isolated_script_merge.py" - }, - "name": "webgl_conformance_vulkan_passthrough_tests", - "resultdb": { - "enable": true, - "has_native_resultdb_integration": true - }, - "swarming": { - "dimensions": { - "display_attached": "1", - "gpu": "10de:2184-27.21.14.5638", - "os": "Windows-10-18363", + "gpu": "10de:2184-27.21.14.5638|10de:2184-31.0.15.4601", + "os": "Windows-10-18363|Windows-10-19045", "pool": "chromium.tests.gpu" }, "idempotent": false,
diff --git a/testing/buildbot/mixins.pyl b/testing/buildbot/mixins.pyl index 9a65daf..a5998a670 100644 --- a/testing/buildbot/mixins.pyl +++ b/testing/buildbot/mixins.pyl
@@ -765,8 +765,8 @@ 'swarming': { 'dimensions': { 'display_attached': '1', - 'gpu': '10de:2184-27.21.14.5638', - 'os': 'Windows-10-18363', + 'gpu': '10de:2184-27.21.14.5638|10de:2184-31.0.15.4601', + 'os': 'Windows-10-18363|Windows-10-19045', 'pool': 'chromium.tests.gpu', }, },
diff --git a/testing/buildbot/test_suite_exceptions.pyl b/testing/buildbot/test_suite_exceptions.pyl index e72af23f..0ec36ad5 100644 --- a/testing/buildbot/test_suite_exceptions.pyl +++ b/testing/buildbot/test_suite_exceptions.pyl
@@ -110,6 +110,15 @@ 'linux-chromeos-chrome-preuprev', # http://b/331706144 ], }, + 'context_lost_passthrough_graphite_tests': { + 'remove_from': [ + # TODO(b/297347572): Re-enable these tests once the driver version + # is sufficiently new. Win/NVIDIA currently doesn't support Graphite + # on certain drivers due to this blocklist entry. + # https://source.chromium.org/chromium/chromium/src/+/e9c0af7850eb012c12073d5de77bfe079609016c:gpu/config/software_rendering_list.json;l=1433-1452 + 'Win V8 FYI Release (NVIDIA)', + ], + }, 'expected_color_pixel_gl_passthrough_ganesh_test': { 'replacements': { 'Mac V8 FYI Release (Intel)': { @@ -137,6 +146,24 @@ }, }, }, + 'expected_color_pixel_passthrough_graphite_test': { + 'remove_from': [ + # TODO(b/297347572): Re-enable these tests once the driver version + # is sufficiently new. Win/NVIDIA currently doesn't support Graphite + # on certain drivers due to this blocklist entry. + # https://source.chromium.org/chromium/chromium/src/+/e9c0af7850eb012c12073d5de77bfe079609016c:gpu/config/software_rendering_list.json;l=1433-1452 + 'Win V8 FYI Release (NVIDIA)', + ], + 'replacements': { + # The V8 builders pass the V8 revision for ${got_revision}, so instead + # use ${got_cr_revision}, which is only set on the V8 bots. + 'Win V8 FYI Release (NVIDIA)': { + 'args': { + '--git-revision': '${got_cr_revision}', + }, + }, + }, + }, 'expected_color_pixel_passthrough_test': { 'replacements': { # The V8 builders pass the V8 revision for ${got_revision}, so instead @@ -307,7 +334,33 @@ }, }, }, + 'pixel_skia_gold_passthrough_graphite_test': { + 'remove_from': [ + # TODO(b/297347572): Re-enable these tests once the driver version + # is sufficiently new. Win/NVIDIA currently doesn't support Graphite + # on certain drivers due to this blocklist entry. + # https://source.chromium.org/chromium/chromium/src/+/e9c0af7850eb012c12073d5de77bfe079609016c:gpu/config/software_rendering_list.json;l=1433-1452 + 'Win V8 FYI Release (NVIDIA)', + ], + 'replacements': { + # The V8 builders pass the V8 revision for ${got_revision}, so instead + # use ${got_cr_revision}, which is only set on the V8 bots. + 'Win V8 FYI Release (NVIDIA)': { + 'args': { + '--git-revision': '${got_cr_revision}', + }, + }, + }, + }, 'pixel_skia_gold_passthrough_test': { + 'modifications': { + 'Win V8 FYI Release (NVIDIA)': { + 'args': [ + # TODO(crbug.com/382422293): Remove when fixed + '--jobs=1', + ], + }, + }, 'replacements': { # The V8 builders pass the V8 revision for ${got_revision}, so instead # use ${got_cr_revision}, which is only set on the V8 bots. @@ -324,6 +377,9 @@ 'Win V8 FYI Release (NVIDIA)': { 'args': { '--git-revision': '${got_cr_revision}', + # Magic substitution happens after regular replacement, so remove it + # now since we are manually applying the number of jobs above. + '$$MAGIC_SUBSTITUTION_GPUParallelJobs': None, }, }, }, @@ -361,6 +417,15 @@ }, }, }, + 'screenshot_sync_passthrough_graphite_tests': { + 'remove_from': [ + # TODO(b/297347572): Re-enable these tests once the driver version + # is sufficiently new. Win/NVIDIA currently doesn't support Graphite + # on certain drivers due to this blocklist entry. + # https://source.chromium.org/chromium/chromium/src/+/e9c0af7850eb012c12073d5de77bfe079609016c:gpu/config/software_rendering_list.json;l=1433-1452 + 'Win V8 FYI Release (NVIDIA)', + ], + }, 'telemetry_perf_unittests': { 'modifications': { 'chromeos-eve-chrome': { @@ -465,4 +530,10 @@ 'Mac V8 FYI Release (Intel)', ], }, + 'webgl_conformance_vulkan_passthrough_tests': { + 'remove_from': [ + # TODO(crbug.com/380431384): Re-enable when fixed + 'Win V8 FYI Release (NVIDIA)', + ], + }, }
diff --git a/testing/variations/fieldtrial_testing_config.json b/testing/variations/fieldtrial_testing_config.json index 61e5919..dd1e2730 100644 --- a/testing/variations/fieldtrial_testing_config.json +++ b/testing/variations/fieldtrial_testing_config.json
@@ -3933,7 +3933,6 @@ "QuickIntensiveWakeUpThrottlingAfterLoading", "ReduceCookieIPCs", "RunTasksByBatches", - "SkipConditionVariableWakeupHack", "UseCompositorJob" ], "disable_features": [ @@ -5069,6 +5068,30 @@ ] } ], + "ChromnientLatencyOptimizations": [ + { + "platforms": [ + "chromeos", + "chromeos_lacros", + "linux", + "mac", + "windows" + ], + "experiments": [ + { + "name": "AllOptimizationsEnabled", + "params": { + "enable-cluster-info-optimization": "true", + "enable-early-interaction-optimization": "true", + "enable-early-start-query-flow-optimization": "true" + }, + "enable_features": [ + "LensOverlayLatencyOptimizations" + ] + } + ] + } + ], "ChromnientMoreTranslateLanguages": [ { "platforms": [ @@ -13379,21 +13402,6 @@ ] } ], - "MacImmersiveFullscreenAlwaysOnTrafficLights": [ - { - "platforms": [ - "mac" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "FullscreenAlwaysShowTrafficLights" - ] - } - ] - } - ], "MacPermanentThinController": [ { "platforms": [
diff --git a/third_party/angle b/third_party/angle index a4439f7..a137d70 160000 --- a/third_party/angle +++ b/third_party/angle
@@ -1 +1 @@ -Subproject commit a4439f7dc948d19c67de51f8309256e216c5f834 +Subproject commit a137d70233e75d944ff45e6b720e4d4beda270ab
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 bdde3c8b..e7ed730 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
@@ -4601,6 +4601,7 @@ kCloseWatcherScriptConstructor = 5215, kCanvas2DImageSmoothingQuality2 = 5216, kNonNoneTouchActionWouldLoseEditableHandwriting = 5217, + kCSSEnvironmentVariable_SafeAreaInsetBottom_FastPath = 5218, // 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/public/platform/web_data.h b/third_party/blink/public/platform/web_data.h index faa6f08..660fd48 100644 --- a/third_party/blink/public/platform/web_data.h +++ b/third_party/blink/public/platform/web_data.h
@@ -53,15 +53,7 @@ WebData() = default; - explicit WebData(base::span<const uint8_t> data) - : WebData(reinterpret_cast<const char*>(data.data()), data.size()) {} - WebData(const char* data, size_t size) { Assign(data, size); } - - template <int N> - // NOLINTNEXTLINE(google-explicit-constructor) - WebData(const char (&data)[N]) { - Assign(data, N - 1); - } + explicit WebData(base::span<const uint8_t> data) { Assign(data); } WebData(const WebData& d) { Assign(d); } @@ -72,8 +64,8 @@ void Reset(); void Assign(const WebData&); - void Assign(const char* data, size_t size); - void Append(const char* data, size_t size); + void Assign(base::span<const uint8_t> data); + void Append(base::span<const uint8_t> data); size_t size() const; @@ -112,18 +104,6 @@ WebData& operator=(scoped_refptr<SharedBuffer>); operator scoped_refptr<SharedBuffer>() const; operator const SharedBuffer&() const; -#else - template <class C> - // NOLINTNEXTLINE(google-explicit-constructor) - WebData(const C& c) { - Assign(c.data(), c.size()); - } - - template <class C> - WebData& operator=(const C& c) { - Assign(c.data(), c.size()); - return *this; - } #endif private:
diff --git a/third_party/blink/renderer/core/css/font_face_cache_test.cc b/third_party/blink/renderer/core/css/font_face_cache_test.cc index 1897e6d..3a0fc3e 100644 --- a/third_party/blink/renderer/core/css/font_face_cache_test.cc +++ b/third_party/blink/renderer/core/css/font_face_cache_test.cc
@@ -4,6 +4,8 @@ #include "third_party/blink/renderer/core/css/font_face_cache.h" +#include <array> + #include "testing/gtest/include/gtest/gtest.h" #include "third_party/blink/renderer/core/css/css_font_face_src_value.h" #include "third_party/blink/renderer/core/css/css_font_family_value.h" @@ -338,17 +340,17 @@ CSSIdentifierValue* style_value = CSSIdentifierValue::Create(CSSValueID::kNormal); - CSSPrimitiveValue* weight_values_lower[] = { + auto weight_values_lower = std::to_array<CSSPrimitiveValue*>({ CSSNumericLiteralValue::Create(600, CSSPrimitiveValue::UnitType::kNumber), CSSNumericLiteralValue::Create(415, CSSPrimitiveValue::UnitType::kNumber), CSSNumericLiteralValue::Create(475, CSSPrimitiveValue::UnitType::kNumber), - }; + }); - CSSPrimitiveValue* weight_values_upper[] = { + auto weight_values_upper = std::to_array<CSSPrimitiveValue*>({ CSSNumericLiteralValue::Create(610, CSSPrimitiveValue::UnitType::kNumber), CSSNumericLiteralValue::Create(425, CSSPrimitiveValue::UnitType::kNumber), CSSNumericLiteralValue::Create(485, CSSPrimitiveValue::UnitType::kNumber), - }; + }); // From https://drafts.csswg.org/css-fonts-4/#font-style-matching: "If the // desired weight is inclusively between 400 and 500, weights greater than or
diff --git a/third_party/blink/renderer/core/css/parser/css_parser_fast_paths_perftest.cc b/third_party/blink/renderer/core/css/parser/css_parser_fast_paths_perftest.cc index 86e032e..2cb9b39 100644 --- a/third_party/blink/renderer/core/css/parser/css_parser_fast_paths_perftest.cc +++ b/third_party/blink/renderer/core/css/parser/css_parser_fast_paths_perftest.cc
@@ -4,13 +4,16 @@ // // A benchmark to verify the CSS parser fastpath performance. +#include "third_party/blink/renderer/core/css/parser/css_parser_fast_paths.h" + +#include <array> + #include "base/command_line.h" #include "base/timer/elapsed_timer.h" #include "testing/perf/perf_result_reporter.h" #include "testing/perf/perf_test.h" #include "third_party/blink/renderer/core/css/container_query_data.h" #include "third_party/blink/renderer/core/css/parser/css_parser.h" -#include "third_party/blink/renderer/core/css/parser/css_parser_fast_paths.h" #include "third_party/blink/renderer/core/execution_context/security_context.h" #include "third_party/blink/renderer/platform/testing/unit_test_helpers.h" #include "third_party/googletest/src/googletest/include/gtest/gtest.h" @@ -25,7 +28,7 @@ // A dump of the values received by the fast path parser during a run // of MotionMark's “multiply” subtest. TEST(StyleFastPathPerfTest, MotionMarkMultiply) { - constexpr FastPathSampleCase kCases[] = { + constexpr const auto kCases = std::to_array<FastPathSampleCase>({ {CSSPropertyID::kDisplay, "block"}, {CSSPropertyID::kTransform, "rotate(355.6972252029457deg)"}, {CSSPropertyID::kColor, @@ -331,14 +334,14 @@ {CSSPropertyID::kTransform, "rotate(496.4692384171266deg)"}, {CSSPropertyID::kColor, "hsla(53.59680000042915,100%,21.825936599357863%,0.6326435248456137)"}, - {CSSPropertyID::kTransform, "rotate(450.42974914112926deg)"}}; + {CSSPropertyID::kTransform, "rotate(450.42974914112926deg)"}, + }); const std::string parse_iterations_str = base::CommandLine::ForCurrentProcess()->GetSwitchValueASCII( "style-fastpath-parse-iterations"); int parse_iterations = parse_iterations_str.empty() ? 10000 : stoi(parse_iterations_str); - constexpr int kNumCases = sizeof(kCases) / sizeof(kCases[0]); auto* context = MakeGarbageCollected<CSSParserContext>( kHTMLStandardMode, SecureContextMode::kInsecureContext); @@ -360,7 +363,7 @@ "MotionMarkMultiply"); reporter.RegisterImportantMetric("ParseTime", "ns"); reporter.AddResult("ParseTime", elapsed.InMicrosecondsF() * 1e3 / - parse_iterations / kNumCases); + (parse_iterations * kCases.size())); } } // namespace blink
diff --git a/third_party/blink/renderer/core/css/resolver/style_cascade.cc b/third_party/blink/renderer/core/css/resolver/style_cascade.cc index 7ee59e3..993a873 100644 --- a/third_party/blink/renderer/core/css/resolver/style_cascade.cc +++ b/third_party/blink/renderer/core/css/resolver/style_cascade.cc
@@ -1829,6 +1829,10 @@ if (CSSParserFastPaths::IsSafeAreaInsetBottom( unparsed->VariableDataValue()->OriginalText())) { state_.StyleBuilder().SetIsBottomRelativeToSafeAreaInset(true); + + UseCounter::Count( + state_.GetDocument(), + WebFeature::kCSSEnvironmentVariable_SafeAreaInsetBottom_FastPath); } }
diff --git a/third_party/blink/renderer/core/css/style_environment_variables_test.cc b/third_party/blink/renderer/core/css/style_environment_variables_test.cc index 7907d1e..68610e50 100644 --- a/third_party/blink/renderer/core/css/style_environment_variables_test.cc +++ b/third_party/blink/renderer/core/css/style_environment_variables_test.cc
@@ -383,6 +383,8 @@ WebFeature::kCSSEnvironmentVariable_SafeAreaInsetBottom)); EXPECT_FALSE(GetDocument().IsUseCounted( WebFeature::kCSSEnvironmentVariable_SafeAreaInsetRight)); + EXPECT_FALSE(GetDocument().IsUseCounted( + WebFeature::kCSSEnvironmentVariable_SafeAreaInsetBottom_FastPath)); } TEST_F(StyleEnvironmentVariablesTest, RecordUseCounter_InvalidProperty) { @@ -404,6 +406,23 @@ WebFeature::kCSSEnvironmentVariable_SafeAreaInsetBottom)); } +TEST_F(StyleEnvironmentVariablesTest, + RecordUseCounter_SafeAreaInsetBottom_FastPath) { + const String name = "safe-area-inset-bottom"; + InitializeWithHTML(GetFrame(), + "<style>" + " #target { bottom: env(" + + name + + "); }" + "</style>" + "<div>" + " <div id=target></div>" + "</div>"); + + EXPECT_TRUE(GetDocument().IsUseCounted( + WebFeature::kCSSEnvironmentVariable_SafeAreaInsetBottom_FastPath)); +} + // TODO(https://crbug.com/1430288) remove after data collected (end of '23) TEST_F(StyleEnvironmentVariablesTest, RecordUseCounter_ViewportFitCoverOrSafeAreaInsetBottom) {
diff --git a/third_party/blink/renderer/core/dom/flat_tree_traversal_test.cc b/third_party/blink/renderer/core/dom/flat_tree_traversal_test.cc index 5274c08..f16c910 100644 --- a/third_party/blink/renderer/core/dom/flat_tree_traversal_test.cc +++ b/third_party/blink/renderer/core/dom/flat_tree_traversal_test.cc
@@ -2,13 +2,9 @@ // 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/core/dom/flat_tree_traversal.h" +#include <array> #include <memory> #include <string_view> @@ -130,7 +126,7 @@ Element* s04 = shadow_root->QuerySelector(AtomicString("#s04")); const unsigned kNumberOfChildNodes = 5; - Node* expected_child_nodes[5] = {s00, m01, s02, s03, s04}; + std::array<Node*, 5> expected_child_nodes = {s00, m01, s02, s03, s04}; ASSERT_EQ(kNumberOfChildNodes, FlatTreeTraversal::CountChildren(*shadow_host));
diff --git a/third_party/blink/renderer/core/dom/node_traversal_test.cc b/third_party/blink/renderer/core/dom/node_traversal_test.cc index 8daf997..515dcfb 100644 --- a/third_party/blink/renderer/core/dom/node_traversal_test.cc +++ b/third_party/blink/renderer/core/dom/node_traversal_test.cc
@@ -2,13 +2,10 @@ // 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/core/dom/node_traversal.h" +#include <array> + #include "testing/gtest/include/gtest/gtest.h" #include "third_party/blink/renderer/core/dom/document.h" #include "third_party/blink/renderer/core/dom/element.h" @@ -209,7 +206,7 @@ Element* c00 = body->QuerySelector(AtomicString("#c00")); const unsigned kNumberOfChildNodes = 3; - Node* expected_child_nodes[3] = {c0, c1, c2}; + std::array<Node*, 3> expected_child_nodes = {c0, c1, c2}; ASSERT_EQ(kNumberOfChildNodes, NodeTraversal::CountChildren(*body)); EXPECT_TRUE(NodeTraversal::HasChildren(*body));
diff --git a/third_party/blink/renderer/core/fetch/fetch_header_list_test.cc b/third_party/blink/renderer/core/fetch/fetch_header_list_test.cc index 55ad083..72f0526 100644 --- a/third_party/blink/renderer/core/fetch/fetch_header_list_test.cc +++ b/third_party/blink/renderer/core/fetch/fetch_header_list_test.cc
@@ -4,6 +4,7 @@ #include "third_party/blink/renderer/core/fetch/fetch_header_list.h" +#include <array> #include <utility> #include "testing/gmock/include/gmock/gmock.h" @@ -84,8 +85,9 @@ TEST(FetchHeaderListTest, SetCookie) { test::TaskEnvironment task_environment; - const String values[] = {"foo=bar", "bar=baz; Domain=example.com", - "fizz=buzz; Expires=Thu, 01 Jan 1970 00:00:00 GMT"}; + const auto values = std::to_array<String>( + {"foo=bar", "bar=baz; Domain=example.com", + "fizz=buzz; Expires=Thu, 01 Jan 1970 00:00:00 GMT"}); auto* header_list = MakeGarbageCollected<FetchHeaderList>(); header_list->Append("Set-cookie", values[0]);
diff --git a/third_party/blink/renderer/core/html/canvas/html_canvas_element.cc b/third_party/blink/renderer/core/html/canvas/html_canvas_element.cc index c023eb9..57df26e 100644 --- a/third_party/blink/renderer/core/html/canvas/html_canvas_element.cc +++ b/third_party/blink/renderer/core/html/canvas/html_canvas_element.cc
@@ -1533,12 +1533,28 @@ } void HTMLCanvasElement::UpdateSuspendOffscreenCanvasAnimation() { - if (GetPage()) { - SetSuspendOffscreenCanvasAnimation( - GetPage()->GetVisibilityState() == - mojom::blink::PageVisibilityState::kHidden && - !HasCanvasCapture()); + if (!GetPage()) { + return; } + + CanvasResourceDispatcher::AnimationState animation_state = + CanvasResourceDispatcher::AnimationState::kActive; + const bool is_hidden = GetPage()->GetVisibilityState() == + mojom::blink::PageVisibilityState::kHidden; + if (is_hidden) { + if (HasCanvasCapture()) { + const bool allow_synthetic_timing = + RuntimeEnabledFeatures::AllowSyntheticTimingForCanvasCaptureEnabled(); + animation_state = allow_synthetic_timing + ? CanvasResourceDispatcher::AnimationState:: + kActiveWithSyntheticTiming + : CanvasResourceDispatcher::AnimationState::kActive; + } else { + animation_state = CanvasResourceDispatcher::AnimationState::kSuspended; + } + } + + SetSuspendOffscreenCanvasAnimation(animation_state); } void HTMLCanvasElement::PageVisibilityChanged() {
diff --git a/third_party/blink/renderer/core/html/forms/html_selected_content_element.cc b/third_party/blink/renderer/core/html/forms/html_selected_content_element.cc index d0c1211..0248c8c 100644 --- a/third_party/blink/renderer/core/html/forms/html_selected_content_element.cc +++ b/third_party/blink/renderer/core/html/forms/html_selected_content_element.cc
@@ -37,18 +37,20 @@ Node::InsertionNotificationRequest HTMLSelectedContentElement::InsertedInto( ContainerNode& insertion_point) { + HTMLElement::InsertedInto(insertion_point); + return Node::InsertionNotificationRequest:: + kInsertionShouldCallDidNotifySubtreeInsertions; +} + +void HTMLSelectedContentElement::DidNotifySubtreeInsertionsToDocument() { // Call SelectedContentElementInserted on the first ancestor <select> if we // just got inserted into a <select> and there are no other <select>s in // between. // TODO(crbug.com/40236878): Use a flat tree traversal here. disabled_ = false; - bool passed_insertion_point = false; HTMLSelectElement* first_ancestor_select = nullptr; for (auto* ancestor = parentNode(); ancestor; ancestor = ancestor->parentNode()) { - if (ancestor == insertion_point) { - passed_insertion_point = true; - } if (IsA<HTMLOptionElement>(ancestor) || IsA<HTMLSelectedContentElement>(ancestor)) { // Putting a <selectedcontent> inside an <option> or another @@ -62,12 +64,9 @@ disabled_ = true; } first_ancestor_select = select; - if (passed_insertion_point) { - select->SelectedContentElementInserted(this); - } + select->SelectedContentElementInserted(this); } } - return HTMLElement::InsertedInto(insertion_point); } void HTMLSelectedContentElement::RemovedFrom(ContainerNode& container) {
diff --git a/third_party/blink/renderer/core/html/forms/html_selected_content_element.h b/third_party/blink/renderer/core/html/forms/html_selected_content_element.h index 5cfa89b..4da6480 100644 --- a/third_party/blink/renderer/core/html/forms/html_selected_content_element.h +++ b/third_party/blink/renderer/core/html/forms/html_selected_content_element.h
@@ -20,6 +20,7 @@ void CloneContentsFromOptionElement(const HTMLOptionElement* option); Node::InsertionNotificationRequest InsertedInto(ContainerNode&) override; + void DidNotifySubtreeInsertionsToDocument() override; void RemovedFrom(ContainerNode&) override; private:
diff --git a/third_party/blink/renderer/core/layout/absolute_utils_test.cc b/third_party/blink/renderer/core/layout/absolute_utils_test.cc index 91522ca2..b1f53118 100644 --- a/third_party/blink/renderer/core/layout/absolute_utils_test.cc +++ b/third_party/blink/renderer/core/layout/absolute_utils_test.cc
@@ -106,21 +106,6 @@ GetDocument().Lifecycle().AdvanceTo(DocumentLifecycle::kInStyleRecalc); GetDocument().Lifecycle().AdvanceTo(DocumentLifecycle::kStyleClean); GetDocument().Lifecycle().AdvanceTo(DocumentLifecycle::kInPerformLayout); - WritingModeConverter container_converter( - container_writing_direction, - ToPhysicalSize(space.AvailableSize(), - container_writing_direction.GetWritingMode())); - LogicalAnchorQuery* anchor_query = - MakeGarbageCollected<LogicalAnchorQuery>(); - AnchorEvaluatorImpl anchor_evaluator( - *node.GetLayoutBox(), *anchor_query, - /* implicit_anchor */ nullptr, container_converter, - /* self_writing_direction */ - {WritingMode::kHorizontalTb, TextDirection::kLtr}, - /* offset_to_padding_box */ - PhysicalOffset(), - /* available_size */ - PhysicalSize()); WritingDirectionMode self_writing_direction = node.Style().GetWritingDirection(); const LogicalOofInsets insets = @@ -149,21 +134,6 @@ GetDocument().Lifecycle().AdvanceTo(DocumentLifecycle::kInStyleRecalc); GetDocument().Lifecycle().AdvanceTo(DocumentLifecycle::kStyleClean); GetDocument().Lifecycle().AdvanceTo(DocumentLifecycle::kInPerformLayout); - WritingModeConverter container_converter( - container_writing_direction, - ToPhysicalSize(space.AvailableSize(), - container_writing_direction.GetWritingMode())); - LogicalAnchorQuery* anchor_query = - MakeGarbageCollected<LogicalAnchorQuery>(); - AnchorEvaluatorImpl anchor_evaluator( - *node.GetLayoutBox(), *anchor_query, - /* implicit_anchor */ nullptr, container_converter, - /* self_writing_direction */ - {WritingMode::kHorizontalTb, TextDirection::kLtr}, - /* offset_to_padding_box */ - PhysicalOffset(), - /* available_size */ - PhysicalSize()); WritingDirectionMode self_writing_direction = node.Style().GetWritingDirection(); const LogicalOofInsets insets =
diff --git a/third_party/blink/renderer/core/layout/inline/line_breaker_test.cc b/third_party/blink/renderer/core/layout/inline/line_breaker_test.cc index 55addd5..e7b6b85 100644 --- a/third_party/blink/renderer/core/layout/inline/line_breaker_test.cc +++ b/third_party/blink/renderer/core/layout/inline/line_breaker_test.cc
@@ -4,6 +4,8 @@ #include "third_party/blink/renderer/core/layout/inline/line_breaker.h" +#include <array> + #include "third_party/blink/renderer/bindings/core/v8/v8_binding_for_testing.h" #include "third_party/blink/renderer/core/layout/base_layout_algorithm_test.h" #include "third_party/blink/renderer/core/layout/box_fragment_builder.h" @@ -1011,9 +1013,12 @@ </div> )HTML"); InlineNode target = GetInlineNodeByElementId("target"); - LineBreakPoint break_points[]{LineBreakPoint{{0, 2}}, LineBreakPoint{{1, 6}}, - LineBreakPoint{{2, 7}}}; - LineInfo line_info_list[4]; + auto break_points = std::to_array<LineBreakPoint>({ + LineBreakPoint{{0, 2}}, + LineBreakPoint{{1, 6}}, + LineBreakPoint{{2, 7}}, + }); + std::array<LineInfo, 4> line_info_list; const wtf_size_t num_lines = BreakLinesAt(target, LayoutUnit(800), break_points, line_info_list); EXPECT_EQ(num_lines, 4u); @@ -1050,8 +1055,9 @@ </div> )HTML"); InlineNode target = GetInlineNodeByElementId("target"); - LineBreakPoint break_points[]{LineBreakPoint{{7, 5}, {3, 4}}}; - LineInfo line_info_list[2]; + auto break_points = + std::to_array<LineBreakPoint>({LineBreakPoint{{7, 5}, {3, 4}}}); + std::array<LineInfo, 2> line_info_list; const wtf_size_t num_lines = BreakLinesAt(target, LayoutUnit(800), break_points, line_info_list); EXPECT_EQ(num_lines, 2u); @@ -1085,8 +1091,9 @@ </div> )HTML"); InlineNode target = GetInlineNodeByElementId("target"); - LineBreakPoint break_points[]{LineBreakPoint{{4, 2}, {2, 1}}}; - LineInfo line_info_list[2]; + auto break_points = + std::to_array<LineBreakPoint>({LineBreakPoint{{4, 2}, {2, 1}}}); + std::array<LineInfo, 2> line_info_list; const wtf_size_t num_lines = BreakLinesAt(target, LayoutUnit(800), break_points, line_info_list); EXPECT_EQ(num_lines, 2u); @@ -1273,7 +1280,7 @@ )HTML", data.target_css, data.style, data.html)); InlineNode target = GetInlineNodeByElementId("target"); - LineInfo line_info_list[1]; + std::array<LineInfo, 1> line_info_list; const LayoutUnit available_width = LayoutUnit(800); const wtf_size_t num_lines = BreakLines(target, available_width, line_info_list);
diff --git a/third_party/blink/renderer/core/layout/table/table_layout_utils_test.cc b/third_party/blink/renderer/core/layout/table/table_layout_utils_test.cc index 104a8e4..609b8bf79 100644 --- a/third_party/blink/renderer/core/layout/table/table_layout_utils_test.cc +++ b/third_party/blink/renderer/core/layout/table/table_layout_utils_test.cc
@@ -4,6 +4,8 @@ #include "third_party/blink/renderer/core/layout/table/table_layout_utils.h" +#include <array> + #include "testing/gtest/include/gtest/gtest.h" #include "third_party/blink/renderer/core/layout/table/table_node.h" #include "third_party/blink/renderer/core/testing/core_unit_test_helper.h" @@ -149,8 +151,12 @@ // should not be redistributed at all. // The error occurs if widths are redistributed, and column widths // change due to floating point rounding. - LayoutUnit column_widths[] = {LayoutUnit(0.1), LayoutUnit(22.123456), - LayoutUnit(33.789012), LayoutUnit(2000.345678)}; + auto column_widths = std::to_array<LayoutUnit>({ + LayoutUnit(0.1), + LayoutUnit(22.123456), + LayoutUnit(33.789012), + LayoutUnit(2000.345678), + }); scoped_refptr<TableTypes::Columns> column_constraints = base::MakeRefCounted<TableTypes::Columns>(); column_constraints->data.Shrink(0);
diff --git a/third_party/blink/renderer/core/paint/compositing/compositing_reason_finder.cc b/third_party/blink/renderer/core/paint/compositing/compositing_reason_finder.cc index 8cc8209..3ed404f4 100644 --- a/third_party/blink/renderer/core/paint/compositing/compositing_reason_finder.cc +++ b/third_party/blink/renderer/core/paint/compositing/compositing_reason_finder.cc
@@ -232,6 +232,10 @@ if (layout_object.StyleRef().IsFixedToBottom()) { reasons |= CompositingReason::kFixedPosition | CompositingReason::kAffectedByOuterViewportBoundsDelta; + + if (layout_object.StyleRef().IsBottomRelativeToSafeAreaInset()) { + reasons |= CompositingReason::kAffectedBySafeAreaBottom; + } } return reasons;
diff --git a/third_party/blink/renderer/core/script/script_runner_test.cc b/third_party/blink/renderer/core/script/script_runner_test.cc index d033ecf..da46f4b 100644 --- a/third_party/blink/renderer/core/script/script_runner_test.cc +++ b/third_party/blink/renderer/core/script/script_runner_test.cc
@@ -2,13 +2,10 @@ // 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/core/script/script_runner.h" +#include <array> + #include "base/test/null_task_runner.h" #include "base/time/time.h" #include "testing/gmock/include/gmock/gmock.h" @@ -306,7 +303,7 @@ } TEST_F(ScriptRunnerTest, QueueReentrantScript_ManyAsyncScripts) { - MockPendingScript* pending_scripts[20]; + std::array<MockPendingScript*, 20> pending_scripts; for (int i = 0; i < 20; i++) pending_scripts[i] = nullptr;
diff --git a/third_party/blink/renderer/core/timing/time_clamper_test.cc b/third_party/blink/renderer/core/timing/time_clamper_test.cc index cf779fb..ff13376f 100644 --- a/third_party/blink/renderer/core/timing/time_clamper_test.cc +++ b/third_party/blink/renderer/core/timing/time_clamper_test.cc
@@ -2,13 +2,9 @@ // 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/core/timing/time_clamper.h" +#include <array> #include <cmath> #include "testing/gtest/include/gtest/gtest.h" @@ -114,7 +110,7 @@ const int kBuckets = 5; const int kSampleCount = 10000; const int kTimeStep = interval / kBuckets; - int histogram[kBuckets] = {}; + std::array<int, kBuckets> histogram = {}; TimeClamper clamper; // This test ensures the jitter thresholds are approximately uniformly
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 2da0b65..103ca70 100644 --- a/third_party/blink/renderer/core/timing/window_performance_test.cc +++ b/third_party/blink/renderer/core/timing/window_performance_test.cc
@@ -2,13 +2,9 @@ // 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/core/timing/window_performance.h" +#include <array> #include <cstdint> #include "base/numerics/safe_conversions.h" @@ -1687,13 +1683,16 @@ RunPendingTasks(); // Check UKM values. - struct { + struct ExpectedUkm { int max_duration; int total_duration; UserInteractionType type; - } expected_ukm[] = {{25, 40, UserInteractionType::kKeyboard}, - {70, 90, UserInteractionType::kTapOrClick}, - {50, 80, UserInteractionType::kDrag}}; + }; + auto expected_ukm = std::to_array<ExpectedUkm>({ + {25, 40, UserInteractionType::kKeyboard}, + {70, 90, UserInteractionType::kTapOrClick}, + {50, 80, UserInteractionType::kDrag}, + }); auto entries = GetUkmRecorder()->GetEntriesByName( ukm::builders::Responsiveness_UserInteraction::kEntryName); EXPECT_EQ(3u, entries.size());
diff --git a/third_party/blink/renderer/modules/accessibility/ax_object.cc b/third_party/blink/renderer/modules/accessibility/ax_object.cc index 282a83f..1c95d89 100644 --- a/third_party/blink/renderer/modules/accessibility/ax_object.cc +++ b/third_party/blink/renderer/modules/accessibility/ax_object.cc
@@ -5562,7 +5562,10 @@ if (IsRoot()) { return false; } - return IsMenuList() || ParentObject()->IsInMenuListSubtree(); + if (IsMenuList()) { + return true; + } + return ParentObject() && ParentObject()->IsInMenuListSubtree(); } bool AXObject::IsMenuList() const { @@ -7754,6 +7757,7 @@ case ax::mojom::blink::Role::kStaticText: case ax::mojom::blink::Role::kSwitch: case ax::mojom::blink::Role::kTab: + case ax::mojom::blink::Role::kTerm: case ax::mojom::blink::Role::kToggleButton: case ax::mojom::blink::Role::kTreeItem: case ax::mojom::blink::Role::kTooltip: @@ -7890,7 +7894,6 @@ case ax::mojom::blink::Role::kTable: case ax::mojom::blink::Role::kTabList: case ax::mojom::blink::Role::kTabPanel: - case ax::mojom::blink::Role::kTerm: case ax::mojom::blink::Role::kTextField: case ax::mojom::blink::Role::kTextFieldWithComboBox: case ax::mojom::blink::Role::kTimer:
diff --git a/third_party/blink/renderer/modules/canvas/offscreencanvas/offscreen_canvas_test.cc b/third_party/blink/renderer/modules/canvas/offscreencanvas/offscreen_canvas_test.cc index 886d463..c7135a7a 100644 --- a/third_party/blink/renderer/modules/canvas/offscreencanvas/offscreen_canvas_test.cc +++ b/third_party/blink/renderer/modules/canvas/offscreencanvas/offscreen_canvas_test.cc
@@ -15,6 +15,7 @@ #include "third_party/blink/renderer/core/frame/local_frame_view.h" #include "third_party/blink/renderer/core/frame/settings.h" #include "third_party/blink/renderer/core/frame/web_local_frame_impl.h" +#include "third_party/blink/renderer/core/html/canvas/canvas_draw_listener.h" #include "third_party/blink/renderer/core/html/canvas/html_canvas_element.h" #include "third_party/blink/renderer/modules/canvas/htmlcanvas/html_canvas_element_module.h" #include "third_party/blink/renderer/modules/canvas/offscreencanvas2d/offscreen_canvas_rendering_context_2d.h" @@ -25,6 +26,7 @@ #include "third_party/blink/renderer/platform/graphics/test/mock_compositor_frame_sink.h" #include "third_party/blink/renderer/platform/graphics/test/mock_embedded_frame_sink_provider.h" #include "third_party/blink/renderer/platform/graphics/test/test_webgraphics_shared_image_interface_provider.h" +#include "third_party/blink/renderer/platform/testing/runtime_enabled_features_test_helpers.h" #include "third_party/blink/renderer/platform/testing/task_environment.h" #include "third_party/blink/renderer/platform/testing/testing_platform_support.h" @@ -49,6 +51,20 @@ bool IsGpuCompositingDisabled() const override { return false; } }; +class TestCanvasDrawListener : public GarbageCollected<TestCanvasDrawListener>, + public CanvasDrawListener { + public: + TestCanvasDrawListener() = default; + + NewFrameCallback GetNewFrameCallback() override { return {}; } + + bool CanDiscardAlpha() const override { return false; } + + bool NeedsNewFrame() const override { return true; } + + void RequestFrame() override {} +}; + } // unnamed namespace class OffscreenCanvasTest : public ::testing::Test, @@ -80,11 +96,14 @@ return test_web_shared_image_interface_provider_->GetWeakPtr(); } + HTMLCanvasElement* GetCanvasElement() const { return canvas_element_; } + private: test::TaskEnvironment task_environment_; std::unique_ptr<frame_test_helpers::WebViewHelper> web_view_helper_; Persistent<OffscreenCanvas> offscreen_canvas_; Persistent<OffscreenCanvasRenderingContext2D> context_; + Persistent<HTMLCanvasElement> canvas_element_; FakeGLES2Interface gl_; std::unique_ptr< ScopedTestingPlatformSupport<AcceleratedCompositingTestPlatform>> @@ -112,12 +131,12 @@ GetDocument().documentElement()->setInnerHTML( String::FromUTF8("<body><canvas id='c'></canvas></body>")); - auto* canvas_element = + canvas_element_ = To<HTMLCanvasElement>(GetDocument().getElementById(AtomicString("c"))); DummyExceptionStateForTesting exception_state; offscreen_canvas_ = HTMLCanvasElementModule::transferControlToOffscreen( - ToScriptStateForMainWorld(GetWindow()->GetFrame()), *canvas_element, + ToScriptStateForMainWorld(GetWindow()->GetFrame()), *canvas_element_, exception_state); // |offscreen_canvas_| should inherit the FrameSinkId from |canvas_element|s // SurfaceLayerBridge, but in tests this id is zero; fill it up by hand. @@ -148,6 +167,33 @@ EXPECT_FALSE(Dispatcher()->IsAnimationSuspended()); } +TEST_F(OffscreenCanvasTest, AnimationUsesSyntheticTimerWhenHidden) { + ScriptState::Scope scope(GetScriptState()); + ScopedAllowSyntheticTimingForCanvasCaptureForTest timer_feature(true); + + // We need a resource dispatcher, else this all gets queued until we get one. + offscreen_canvas().GetOrCreateResourceDispatcher(); + + // Cause the page to be hidden. + GetDocument().GetPage()->SetVisibilityState( + mojom::blink::PageVisibilityState::kHidden, /*is_initial_state=*/false); + EXPECT_EQ(GetDocument().GetPage()->GetVisibilityState(), + mojom::blink::PageVisibilityState::kHidden); + + // Without capture, animation should be suspended. + EXPECT_EQ(GetCanvasElement()->GetAnimationStateForTesting(), + CanvasResourceDispatcher::AnimationState::kSuspended); + + // Cause the canvas to believe that it's being captured, and verify that we're + // now using synthetic timing. + auto* listener = MakeGarbageCollected<TestCanvasDrawListener>(); + GetCanvasElement()->AddListener(listener); + EXPECT_EQ( + GetCanvasElement()->GetAnimationStateForTesting(), + CanvasResourceDispatcher::AnimationState::kActiveWithSyntheticTiming); + GetCanvasElement()->RemoveListener(listener); +} + // Verifies that an offscreen_canvas()s PushFrame()/Commit() has the appropriate // opacity/blending information sent to the CompositorFrameSink. TEST_P(OffscreenCanvasTest, CompositorFrameOpacity) {
diff --git a/third_party/blink/renderer/modules/gamepad/gamepad_comparisons_test.cc b/third_party/blink/renderer/modules/gamepad/gamepad_comparisons_test.cc index 6dd4597..a1507be9 100644 --- a/third_party/blink/renderer/modules/gamepad/gamepad_comparisons_test.cc +++ b/third_party/blink/renderer/modules/gamepad/gamepad_comparisons_test.cc
@@ -4,6 +4,8 @@ #include "third_party/blink/renderer/modules/gamepad/gamepad_comparisons.h" +#include <array> + #include "base/test/task_environment.h" #include "device/gamepad/public/cpp/gamepad.h" #include "testing/gtest/include/gtest/gtest.h" @@ -165,7 +167,7 @@ GamepadList CreateGamepadListWithTopLeftTouchesTouchId1() { double axes[1] = {0.0}; device::GamepadButton buttons[1] = {{false, false, 0.0}}; - device::GamepadTouch touch[2]; + std::array<device::GamepadTouch, 2> touch; initTouch(0.0f, 0.0f, 0, 0, false, 0, 0, touch[0]); initTouch(0.0f, 0.0f, 0, 1, false, 0, 0, touch[1]); auto list = CreateEmptyGamepadList(); @@ -182,7 +184,7 @@ GamepadList CreateGamepadListWithTopLeftTouchesTouchId3() { double axes[1] = {0.0}; device::GamepadButton buttons[1] = {{false, false, 0.0}}; - device::GamepadTouch touch[2]; + std::array<device::GamepadTouch, 2> touch; initTouch(0.0f, 0.0f, 0, 0, false, 0, 0, touch[0]); initTouch(0.0f, 0.0f, 0, 3, false, 0, 0, touch[1]); auto list = CreateEmptyGamepadList();
diff --git a/third_party/blink/renderer/modules/mediarecorder/video_track_recorder_unittest.cc b/third_party/blink/renderer/modules/mediarecorder/video_track_recorder_unittest.cc index 772f9ac..a3f9407 100644 --- a/third_party/blink/renderer/modules/mediarecorder/video_track_recorder_unittest.cc +++ b/third_party/blink/renderer/modules/mediarecorder/video_track_recorder_unittest.cc
@@ -4,6 +4,7 @@ #include "third_party/blink/renderer/modules/mediarecorder/video_track_recorder.h" +#include <array> #include <sstream> #include <string_view> @@ -85,10 +86,10 @@ VideoTrackRecorder::CodecId::kAv1, #endif }; -const gfx::Size kTrackRecorderTestSize[] = { - gfx::Size(kVEAEncoderMinResolutionWidth / 2, - kVEAEncoderMinResolutionHeight / 2), - gfx::Size(kVEAEncoderMinResolutionWidth, kVEAEncoderMinResolutionHeight)}; +const auto kTrackRecorderTestSize = std::to_array<gfx::Size>( + {gfx::Size(kVEAEncoderMinResolutionWidth / 2, + kVEAEncoderMinResolutionHeight / 2), + gfx::Size(kVEAEncoderMinResolutionWidth, kVEAEncoderMinResolutionHeight)}); static const int kTrackRecorderTestSizeDiff = 20; constexpr media::VideoCodec MediaVideoCodecFromCodecId(
diff --git a/third_party/blink/renderer/modules/mediastream/low_latency_video_renderer_algorithm_unittest.cc b/third_party/blink/renderer/modules/mediastream/low_latency_video_renderer_algorithm_unittest.cc index 03e4836..5abfae86 100644 --- a/third_party/blink/renderer/modules/mediastream/low_latency_video_renderer_algorithm_unittest.cc +++ b/third_party/blink/renderer/modules/mediastream/low_latency_video_renderer_algorithm_unittest.cc
@@ -2,13 +2,9 @@ // 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/modules/mediastream/low_latency_video_renderer_algorithm.h" +#include <array> #include <queue> #include "base/time/time.h" @@ -561,8 +557,10 @@ TEST_F(LowLatencyVideoRendererAlgorithmTest, NormalModeWithGlitch60Hz) { constexpr int kNumberOfFrames = 5; constexpr int kMaxCompositionDelayInFrames = 6; - constexpr double kDeadlineBeginErrorRate[] = {0.01, 0.03, -0.01, -0.02, 0.02}; - constexpr double kDeadlineEndErrorRate[] = {0.02, -0.03, -0.02, 0.03, 0.01}; + constexpr const auto kDeadlineBeginErrorRate = + std::to_array<double>({0.01, 0.03, -0.01, -0.02, 0.02}); + constexpr const auto kDeadlineEndErrorRate = + std::to_array<double>({0.02, -0.03, -0.02, 0.03, 0.01}); for (int i = 0; i < kNumberOfFrames; ++i) { media::VideoFrame::ID frame_id = CreateAndEnqueueFrame(kMaxCompositionDelayInFrames); @@ -582,8 +580,10 @@ constexpr base::TimeDelta kRenderInterval = base::Milliseconds(1000.0 / 120.0); // 120Hz. constexpr int kMaxCompositionDelayInFrames = 6; - constexpr double kDeadlineBeginErrorRate[] = {0.01, 0.03, -0.01, -0.02, 0.02}; - constexpr double kDeadlineEndErrorRate[] = {0.02, -0.03, -0.02, 0.03, 0.01}; + constexpr const auto kDeadlineBeginErrorRate = + std::to_array<double>({0.01, 0.03, -0.01, -0.02, 0.02}); + constexpr const auto kDeadlineEndErrorRate = + std::to_array<double>({0.02, -0.03, -0.02, 0.03, 0.01}); // Add one initial frame. media::VideoFrame::ID last_id =
diff --git a/third_party/blink/renderer/modules/webaudio/audio_worklet_thread_test.cc b/third_party/blink/renderer/modules/webaudio/audio_worklet_thread_test.cc index ba858bf6..15d69363 100644 --- a/third_party/blink/renderer/modules/webaudio/audio_worklet_thread_test.cc +++ b/third_party/blink/renderer/modules/webaudio/audio_worklet_thread_test.cc
@@ -2,11 +2,7 @@ // 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 <array> #include <memory> #include <tuple> @@ -310,8 +306,8 @@ // SemiRealtimeAudioWorkletThread, or OfflineAudioWorkletThread with // different backing threads. constexpr int number_of_threads = 5; - std::unique_ptr<WorkerThread> worklet_threads[number_of_threads]; - Thread* worklet_backing_threads[number_of_threads]; + std::array<std::unique_ptr<WorkerThread>, number_of_threads> worklet_threads; + std::array<Thread*, number_of_threads> worklet_backing_threads; for (int i = 0; i < number_of_threads; i++) { worklet_threads[i] = CreateAudioWorkletThread(has_realtime_constraint_, is_top_level_frame_);
diff --git a/third_party/blink/renderer/modules/webcodecs/codec_logger.h b/third_party/blink/renderer/modules/webcodecs/codec_logger.h index f61be34..94c0823f 100644 --- a/third_party/blink/renderer/modules/webcodecs/codec_logger.h +++ b/third_party/blink/renderer/modules/webcodecs/codec_logger.h
@@ -140,6 +140,12 @@ return MakeEncodingError(error_msg, StatusImpl(code, error_msg, location)); } + DOMException* MakeQuotaError(std::string error_msg, StatusImpl status) { + return MakeAndLogException(DOMExceptionCode::kQuotaExceededError, + std::move(error_msg), std::move(status), + /*can_log_status_message=*/false); + } + // Similar to MakeEncodingError(), but since the error comes from a bundled // software codec the error message can include the status message. DOMException* MakeSoftwareCodecEncodingError(std::string error_msg,
diff --git a/third_party/blink/renderer/modules/webcodecs/video_encoder.cc b/third_party/blink/renderer/modules/webcodecs/video_encoder.cc index e1d25c6..c87ce63 100644 --- a/third_party/blink/renderer/modules/webcodecs/video_encoder.cc +++ b/third_party/blink/renderer/modules/webcodecs/video_encoder.cc
@@ -815,6 +815,9 @@ case media::EncoderStatus::Codes::kEncoderUnsupportedConfig: error_message = "Unsupported configuration parameters."; break; + case media::EncoderStatus::Codes::kOutOfPlatformEncoders: + error_message = "The system ran out of platform encoders."; + break; default: error_message = "Encoder initialization error."; break; @@ -907,12 +910,18 @@ encoder_metrics_provider_->SetError(status); } + DOMException* error = nullptr; + if (status.code() == media::EncoderStatus::Codes::kOutOfPlatformEncoders) { + error = logger_->MakeQuotaError(error_message, status); + } else { + error = + is_error_message_from_software_codec + ? logger_->MakeSoftwareCodecOperationError(error_message, status) + : logger_->MakeOperationError(error_message, status); + } // We don't use `is_platform_encoder_` here since it may not match where the // error is coming from in the case of a pending configuration change. - HandleError( - is_error_message_from_software_codec - ? logger_->MakeSoftwareCodecOperationError(error_message, status) - : logger_->MakeOperationError(error_message, status)); + HandleError(error); } bool VideoEncoder::ReadyToProcessNextRequest() {
diff --git a/third_party/blink/renderer/platform/audio/audio_destination_test.cc b/third_party/blink/renderer/platform/audio/audio_destination_test.cc index 1646af98..dee94c5 100644 --- a/third_party/blink/renderer/platform/audio/audio_destination_test.cc +++ b/third_party/blink/renderer/platform/audio/audio_destination_test.cc
@@ -2,13 +2,9 @@ // 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/audio/audio_destination.h" +#include <array> #include <memory> #include "media/base/audio_glitch_info.h" @@ -206,13 +202,17 @@ const int kRenderCount = 3; - media::AudioGlitchInfo glitches[]{ + auto glitches = std::to_array<media::AudioGlitchInfo>({ {.duration = base::Milliseconds(120), .count = 3}, {}, - {.duration = base::Milliseconds(20), .count = 1}}; + {.duration = base::Milliseconds(20), .count = 1}, + }); - base::TimeDelta delays[]{base::Milliseconds(100), base::Milliseconds(90), - base::Milliseconds(80)}; + auto delays = std::to_array<base::TimeDelta>({ + base::Milliseconds(100), + base::Milliseconds(90), + base::Milliseconds(80), + }); // When creating the AudioDestination, some silence is added to the fifo to // prevent an underrun on the first callback. This contributes a constant
diff --git a/third_party/blink/renderer/platform/audio/audio_frame_stats_accumulator_test.cc b/third_party/blink/renderer/platform/audio/audio_frame_stats_accumulator_test.cc index d664b2c6..ec7616421 100644 --- a/third_party/blink/renderer/platform/audio/audio_frame_stats_accumulator_test.cc +++ b/third_party/blink/renderer/platform/audio/audio_frame_stats_accumulator_test.cc
@@ -6,6 +6,8 @@ #include <stdint.h> +#include <array> + #include "base/time/time.h" #include "media/base/audio_glitch_info.h" #include "media/base/audio_timestamp_helper.h" @@ -71,13 +73,17 @@ uint64_t total_frames = 0u; media::AudioGlitchInfo total_glitch_info; - int frames[] = {480, 520, 400}; - media::AudioGlitchInfo glitch_info[] = { + auto frames = std::to_array<int>({480, 520, 400}); + auto glitch_info = std::to_array<media::AudioGlitchInfo>({ {}, {.duration = base::Milliseconds(2), .count = 1}, - {.duration = base::Milliseconds(3), .count = 2}}; - base::TimeDelta latency[] = {base::Milliseconds(30), base::Milliseconds(20), - base::Milliseconds(70)}; + {.duration = base::Milliseconds(3), .count = 2}, + }); + auto latency = std::to_array<base::TimeDelta>({ + base::Milliseconds(30), + base::Milliseconds(20), + base::Milliseconds(70), + }); accumulator.Update(frames[0], sample_rate, latency[0], glitch_info[0]); total_frames += frames[0]; @@ -143,13 +149,17 @@ uint64_t total_frames = 0u; media::AudioGlitchInfo total_glitch_info; - int frames[] = {480, 520, 400}; - media::AudioGlitchInfo glitch_info[] = { + auto frames = std::to_array<int>({480, 520, 400}); + auto glitch_info = std::to_array<media::AudioGlitchInfo>({ {.duration = base::Milliseconds(1), .count = 2}, {.duration = base::Milliseconds(2), .count = 1}, - {.duration = base::Milliseconds(1), .count = 1}}; - base::TimeDelta latency[] = {base::Milliseconds(10), base::Milliseconds(20), - base::Milliseconds(30)}; + {.duration = base::Milliseconds(1), .count = 1}, + }); + auto latency = std::to_array<base::TimeDelta>({ + base::Milliseconds(10), + base::Milliseconds(20), + base::Milliseconds(30), + }); accumulator.Update(frames[0], sample_rate, latency[0], glitch_info[0]); total_frames += frames[0]; @@ -260,12 +270,13 @@ uint64_t total_frames = 0u; media::AudioGlitchInfo total_glitch_info; - int sample_rate[] = {16000, 48000}; - int frames[] = {480, 1024}; - media::AudioGlitchInfo glitch_info[] = { - {.duration = base::Milliseconds(5), .count = 2}, - {.duration = base::Milliseconds(1), .count = 1}}; - base::TimeDelta latency[] = {base::Milliseconds(60), base::Milliseconds(70)}; + auto sample_rate = std::to_array<int>({16000, 48000}); + auto frames = std::to_array<int>({480, 1024}); + auto glitch_info = std::to_array<media::AudioGlitchInfo>( + {{.duration = base::Milliseconds(5), .count = 2}, + {.duration = base::Milliseconds(1), .count = 1}}); + auto latency = std::to_array<base::TimeDelta>( + {base::Milliseconds(60), base::Milliseconds(70)}); accumulator.Update(frames[0], sample_rate[0], latency[0], glitch_info[0]); total_frames += frames[0];
diff --git a/third_party/blink/renderer/platform/bindings/parkable_string_test.cc b/third_party/blink/renderer/platform/bindings/parkable_string_test.cc index fd9cdcb..efad7b8 100644 --- a/third_party/blink/renderer/platform/bindings/parkable_string_test.cc +++ b/third_party/blink/renderer/platform/bindings/parkable_string_test.cc
@@ -10,6 +10,7 @@ #include "third_party/blink/renderer/platform/bindings/parkable_string.h" #include <algorithm> +#include <array> #include <cstring> #include <limits> @@ -348,7 +349,7 @@ } TEST_P(ParkableStringTest, DecompressUtf16String) { - UChar emoji_grinning_face[2] = {0xd83d, 0xde00}; + std::array<UChar, 2> emoji_grinning_face = {0xd83d, 0xde00}; size_t size_in_chars = 2 * kSizeKb * 1000 / sizeof(UChar); Vector<UChar> data(size_in_chars);
diff --git a/third_party/blink/renderer/platform/exported/web_data.cc b/third_party/blink/renderer/platform/exported/web_data.cc index c58ae51..0346952e 100644 --- a/third_party/blink/renderer/platform/exported/web_data.cc +++ b/third_party/blink/renderer/platform/exported/web_data.cc
@@ -44,15 +44,16 @@ private_ = other.private_; } -void WebData::Assign(const char* data, size_t size) { - private_ = SharedBuffer::Create(data, size); +void WebData::Assign(base::span<const uint8_t> data) { + private_ = SharedBuffer::Create(data); } -void WebData::Append(const char* data, size_t size) { - if (private_.IsNull()) - private_ = SharedBuffer::Create(data, size); - else - private_->Append(data, size); +void WebData::Append(base::span<const uint8_t> data) { + if (private_.IsNull()) { + private_ = SharedBuffer::Create(data); + } else { + private_->Append(data); + } } size_t WebData::size() const {
diff --git a/third_party/blink/renderer/platform/exported/web_http_body.cc b/third_party/blink/renderer/platform/exported/web_http_body.cc index 1b98ace2..30f522a 100644 --- a/third_party/blink/renderer/platform/exported/web_http_body.cc +++ b/third_party/blink/renderer/platform/exported/web_http_body.cc
@@ -78,7 +78,7 @@ switch (element.type_) { case FormDataElement::kData: result.type = HTTPBodyElementType::kTypeData; - result.data.Assign(element.data_.data(), element.data_.size()); + result.data.Assign(base::as_byte_span(element.data_)); break; case FormDataElement::kEncodedFile: result.type = HTTPBodyElementType::kTypeFile;
diff --git a/third_party/blink/renderer/platform/fonts/font_description_test.cc b/third_party/blink/renderer/platform/fonts/font_description_test.cc index 3cb06d187..e848ad7 100644 --- a/third_party/blink/renderer/platform/fonts/font_description_test.cc +++ b/third_party/blink/renderer/platform/fonts/font_description_test.cc
@@ -30,6 +30,8 @@ #include "third_party/blink/renderer/platform/fonts/font_description.h" +#include <array> + #include "third_party/blink/renderer/platform/testing/font_test_base.h" #include "third_party/blink/renderer/platform/wtf/hash_map.h" #include "third_party/blink/renderer/platform/wtf/vector.h" @@ -39,20 +41,31 @@ class FontDescriptionTest : public FontTestBase {}; TEST_F(FontDescriptionTest, TestHashCollision) { - FontSelectionValue weights[] = { - FontSelectionValue(100), FontSelectionValue(200), - FontSelectionValue(300), FontSelectionValue(400), - FontSelectionValue(500), FontSelectionValue(600), - FontSelectionValue(700), FontSelectionValue(800), - FontSelectionValue(900)}; - FontSelectionValue stretches[]{ - kUltraCondensedWidthValue, kExtraCondensedWidthValue, - kCondensedWidthValue, kSemiCondensedWidthValue, - kNormalWidthValue, kSemiExpandedWidthValue, - kExpandedWidthValue, kExtraExpandedWidthValue, - kUltraExpandedWidthValue}; + auto weights = std::to_array<FontSelectionValue>({ + FontSelectionValue(100), + FontSelectionValue(200), + FontSelectionValue(300), + FontSelectionValue(400), + FontSelectionValue(500), + FontSelectionValue(600), + FontSelectionValue(700), + FontSelectionValue(800), + FontSelectionValue(900), + }); + auto stretches = std::to_array<FontSelectionValue>({ + kUltraCondensedWidthValue, + kExtraCondensedWidthValue, + kCondensedWidthValue, + kSemiCondensedWidthValue, + kNormalWidthValue, + kSemiExpandedWidthValue, + kExpandedWidthValue, + kExtraExpandedWidthValue, + kUltraExpandedWidthValue, + }); - FontSelectionValue slopes[] = {kNormalSlopeValue, kItalicSlopeValue}; + auto slopes = + std::to_array<FontSelectionValue>({kNormalSlopeValue, kItalicSlopeValue}); FontDescription source; WTF::Vector<unsigned> hashes;
diff --git a/third_party/blink/renderer/platform/fonts/shaping/harfbuzz_shaper_test.cc b/third_party/blink/renderer/platform/fonts/shaping/harfbuzz_shaper_test.cc index d6ec0c5..b8e73b2 100644 --- a/third_party/blink/renderer/platform/fonts/shaping/harfbuzz_shaper_test.cc +++ b/third_party/blink/renderer/platform/fonts/shaping/harfbuzz_shaper_test.cc
@@ -2,15 +2,12 @@ // 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/fonts/shaping/harfbuzz_shaper.h" #include <unicode/uscript.h> +#include <array> + #include "base/check.h" #include "base/test/bind.h" #include "build/build_config.h" @@ -1735,7 +1732,7 @@ // RA Ligature, unkerned D D, D A kerns, A Y kerns, Y o kerns, o V kerns, V a // kerns, no kerning with D. String test_word(u"RADDAYoVaDD"); - unsigned safe_to_break_positions[] = {2, 3, 9, 10}; + auto safe_to_break_positions = std::to_array<unsigned int>({2, 3, 9, 10}); HarfBuzzShaper shaper(test_word); const ShapeResult* result = shaper.Shape(&font, TextDirection::kLtr); @@ -2193,7 +2190,7 @@ unsigned expected_broken_clusters; }; - Expectation expectations[] = {{3, 2}, {3, 2}, {6, 4}}; + auto expectations = std::to_array<Expectation>({{3, 2}, {3, 2}, {6, 4}}); #if BUILDFLAG(IS_ANDROID) // On Android 11, SDK level 30, fallback occurs to an emoji // font that has coverage for the last segment. Adjust the expectation.
diff --git a/third_party/blink/renderer/platform/fonts/shaping/shape_result_test.cc b/third_party/blink/renderer/platform/fonts/shaping/shape_result_test.cc index 63219cc..43c9b303 100644 --- a/third_party/blink/renderer/platform/fonts/shaping/shape_result_test.cc +++ b/third_party/blink/renderer/platform/fonts/shaping/shape_result_test.cc
@@ -7,13 +7,14 @@ #pragma allow_unsafe_buffers #endif -#include "third_party/blink/renderer/platform/fonts/shaping/shape_result_inline_headers.h" +#include <array> #include "base/containers/span.h" #include "testing/gtest/include/gtest/gtest.h" #include "third_party/blink/renderer/platform/fonts/font.h" #include "third_party/blink/renderer/platform/fonts/font_cache.h" #include "third_party/blink/renderer/platform/fonts/font_test_utilities.h" +#include "third_party/blink/renderer/platform/fonts/shaping/shape_result_inline_headers.h" #include "third_party/blink/renderer/platform/fonts/shaping/shape_result_spacing.h" #include "third_party/blink/renderer/platform/fonts/shaping/shape_result_test_info.h" #include "third_party/blink/renderer/platform/heap/garbage_collected.h" @@ -95,14 +96,15 @@ void ShapeResultTest::TestCopyRangesLatin(const ShapeResult* result) const { const unsigned num_ranges = 4; - ShapeResult::ShapeRange ranges[num_ranges] = { + std::array<ShapeResult::ShapeRange, num_ranges> ranges = {{ {0, 10, CreateShapeResult(TextDirection::kLtr)}, {10, 20, CreateShapeResult(TextDirection::kLtr)}, {20, 30, CreateShapeResult(TextDirection::kLtr)}, - {30, 38, CreateShapeResult(TextDirection::kLtr)}}; + {30, 38, CreateShapeResult(TextDirection::kLtr)}, + }}; result->CopyRanges(&ranges[0], num_ranges); - Vector<ShapeResultTestGlyphInfo> glyphs[num_ranges]; + std::array<Vector<ShapeResultTestGlyphInfo>, num_ranges> glyphs; for (unsigned i = 0; i < num_ranges; i++) ComputeGlyphResults(*ranges[i].target, &glyphs[i]); EXPECT_EQ(glyphs[0].size(), 10u); @@ -110,12 +112,12 @@ EXPECT_EQ(glyphs[2].size(), 10u); EXPECT_EQ(glyphs[3].size(), 8u); - ShapeResult* reference[num_ranges]; + std::array<ShapeResult*, num_ranges> reference; reference[0] = result->SubRange(0, 10); reference[1] = result->SubRange(10, 20); reference[2] = result->SubRange(20, 30); reference[3] = result->SubRange(30, 38); - Vector<ShapeResultTestGlyphInfo> reference_glyphs[num_ranges]; + std::array<Vector<ShapeResultTestGlyphInfo>, num_ranges> reference_glyphs; for (unsigned i = 0; i < num_ranges; i++) ComputeGlyphResults(*reference[i], &reference_glyphs[i]); EXPECT_EQ(reference_glyphs[0].size(), 10u); @@ -131,14 +133,15 @@ void ShapeResultTest::TestCopyRangesArabic(const ShapeResult* result) const { const unsigned num_ranges = 4; - ShapeResult::ShapeRange ranges[num_ranges] = { + std::array<ShapeResult::ShapeRange, num_ranges> ranges = {{ {0, 4, CreateShapeResult(TextDirection::kRtl)}, {4, 7, CreateShapeResult(TextDirection::kRtl)}, {7, 10, CreateShapeResult(TextDirection::kRtl)}, - {10, 15, CreateShapeResult(TextDirection::kRtl)}}; + {10, 15, CreateShapeResult(TextDirection::kRtl)}, + }}; result->CopyRanges(&ranges[0], num_ranges); - Vector<ShapeResultTestGlyphInfo> glyphs[num_ranges]; + std::array<Vector<ShapeResultTestGlyphInfo>, num_ranges> glyphs; for (unsigned i = 0; i < num_ranges; i++) ComputeGlyphResults(*ranges[i].target, &glyphs[i]); EXPECT_EQ(glyphs[0].size(), 4u); @@ -146,12 +149,12 @@ EXPECT_EQ(glyphs[2].size(), 3u); EXPECT_EQ(glyphs[3].size(), 5u); - ShapeResult* reference[num_ranges]; + std::array<ShapeResult*, num_ranges> reference; reference[0] = result->SubRange(0, 4); reference[1] = result->SubRange(4, 7); reference[2] = result->SubRange(7, 10); reference[3] = result->SubRange(10, 17); - Vector<ShapeResultTestGlyphInfo> reference_glyphs[num_ranges]; + std::array<Vector<ShapeResultTestGlyphInfo>, num_ranges> reference_glyphs; for (unsigned i = 0; i < num_ranges; i++) ComputeGlyphResults(*reference[i], &reference_glyphs[i]); EXPECT_EQ(reference_glyphs[0].size(), 4u); @@ -209,12 +212,13 @@ shaper_c.Shape(GetFont(kLatinFont), direction)->CopyRange(0u, 25u, result); shaper_d.Shape(GetFont(kLatinFont), direction)->CopyRange(0u, 2u, result); - ShapeResult::ShapeRange ranges[] = { + auto ranges = std::to_array<ShapeResult::ShapeRange>({ {4, 17, CreateShapeResult(TextDirection::kLtr)}, {20, 23, CreateShapeResult(TextDirection::kLtr)}, - {25, 31, CreateShapeResult(TextDirection::kLtr)}}; + {25, 31, CreateShapeResult(TextDirection::kLtr)}, + }); result->CopyRanges(&ranges[0], 3); - Vector<ShapeResultTestGlyphInfo> glyphs[3]; + std::array<Vector<ShapeResultTestGlyphInfo>, 3> glyphs; ComputeGlyphResults(*ranges[0].target, &glyphs[0]); ComputeGlyphResults(*ranges[1].target, &glyphs[1]); ComputeGlyphResults(*ranges[2].target, &glyphs[2]); @@ -222,11 +226,11 @@ EXPECT_EQ(glyphs[1].size(), 3u); EXPECT_EQ(glyphs[2].size(), 6u); - ShapeResult* reference[3]; + std::array<ShapeResult*, 3> reference; reference[0] = result->SubRange(4, 17); reference[1] = result->SubRange(20, 23); reference[2] = result->SubRange(25, 31); - Vector<ShapeResultTestGlyphInfo> reference_glyphs[3]; + std::array<Vector<ShapeResultTestGlyphInfo>, 3> reference_glyphs; ComputeGlyphResults(*reference[0], &reference_glyphs[0]); ComputeGlyphResults(*reference[1], &reference_glyphs[1]); ComputeGlyphResults(*reference[2], &reference_glyphs[2]);
diff --git a/third_party/blink/renderer/platform/fonts/shaping/shape_result_view_test.cc b/third_party/blink/renderer/platform/fonts/shaping/shape_result_view_test.cc index 943975f..cd8a4f5 100644 --- a/third_party/blink/renderer/platform/fonts/shaping/shape_result_view_test.cc +++ b/third_party/blink/renderer/platform/fonts/shaping/shape_result_view_test.cc
@@ -6,6 +6,8 @@ #include <unicode/uscript.h> +#include <array> + #include "testing/gtest/include/gtest/gtest.h" #include "third_party/blink/renderer/platform/fonts/character_range.h" #include "third_party/blink/renderer/platform/fonts/font.h" @@ -97,7 +99,7 @@ result->ForEachGlyph(0, AddGlyphInfo, static_cast<void*>(&glyphs)); // Test view at the start of the result: "Test run with multiple" - ShapeResultView::Segment segments[] = {{result, 0, 22}}; + auto segments = std::to_array<ShapeResultView::Segment>({{result, 0, 22}}); auto* first4 = ShapeResultView::Create(segments); EXPECT_EQ(first4->StartIndex(), 0u); @@ -148,7 +150,7 @@ result->ForEachGlyph(0, AddGlyphInfo, static_cast<void*>(&glyphs)); // Test view at the start of the result: "عربى" - ShapeResultView::Segment segments[] = {{result, 0, 4}}; + auto segments = std::to_array<ShapeResultView::Segment>({{result, 0, 4}}); auto* first_word = ShapeResultView::Create(segments); Vector<ShapeResultTestGlyphInfo> first_glyphs; first_word->ForEachGlyph(0, AddGlyphInfo, static_cast<void*>(&first_glyphs));
diff --git a/third_party/blink/renderer/platform/fonts/utf16_ragel_iterator_test.cc b/third_party/blink/renderer/platform/fonts/utf16_ragel_iterator_test.cc index 4369745..4d235cd 100644 --- a/third_party/blink/renderer/platform/fonts/utf16_ragel_iterator_test.cc +++ b/third_party/blink/renderer/platform/fonts/utf16_ragel_iterator_test.cc
@@ -2,13 +2,10 @@ // 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/fonts/utf16_ragel_iterator.h" +#include <array> + #include "base/test/gtest_util.h" #include "testing/gtest/include/gtest/gtest.h" #include "third_party/blink/renderer/platform/text/character.h" @@ -36,7 +33,7 @@ icu::UnicodeString class_examples_unicode_string = icu::UnicodeString::fromUTF32(class_examples_codepoints, std::size(class_examples_codepoints)); - const EmojiSegmentationCategory categories[] = { + const auto categories = std::to_array<EmojiSegmentationCategory>({ EmojiSegmentationCategory::COMBINING_ENCLOSING_KEYCAP, EmojiSegmentationCategory::COMBINING_ENCLOSING_CIRCLE_BACKSLASH, EmojiSegmentationCategory::ZWJ, @@ -50,7 +47,8 @@ EmojiSegmentationCategory::REGIONAL_INDICATOR, EmojiSegmentationCategory::KEYCAP_BASE, EmojiSegmentationCategory::EMOJI_EMOJI_PRESENTATION, - EmojiSegmentationCategory::EMOJI_TEXT_PRESENTATION}; + EmojiSegmentationCategory::EMOJI_TEXT_PRESENTATION, + }); UTF16RagelIterator ragel_iterator( WTF::unicode::ToSpan(class_examples_unicode_string)); for (const EmojiSegmentationCategory& category : categories) {
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 2c861c5..a7995b3c 100644 --- a/third_party/blink/renderer/platform/graphics/bitmap_image_test.cc +++ b/third_party/blink/renderer/platform/graphics/bitmap_image_test.cc
@@ -35,6 +35,8 @@ #include "third_party/blink/renderer/platform/graphics/bitmap_image.h" +#include <array> + #include "base/feature_list.h" #include "base/functional/bind.h" #include "base/numerics/safe_conversions.h" @@ -479,9 +481,13 @@ cc::PaintImage::GeneratorClientId client_id; }; - Decode decodes[4]; - SkColor expected_color[4] = {SkColorSetARGB(255, 0, 128, 0), SK_ColorRED, - SK_ColorBLUE, SK_ColorYELLOW}; + std::array<Decode, 4> decodes; + std::array<SkColor, 4> expected_color = { + SkColorSetARGB(255, 0, 128, 0), + SK_ColorRED, + SK_ColorBLUE, + SK_ColorYELLOW, + }; for (int i = 0; i < 4; ++i) { decodes[i].thread = std::make_unique<base::Thread>("Decode" + std::to_string(i));
diff --git a/third_party/blink/renderer/platform/graphics/canvas_resource_dispatcher.cc b/third_party/blink/renderer/platform/graphics/canvas_resource_dispatcher.cc index 0598c60..4e4d2cb 100644 --- a/third_party/blink/renderer/platform/graphics/canvas_resource_dispatcher.cc +++ b/third_party/blink/renderer/platform/graphics/canvas_resource_dispatcher.cc
@@ -31,6 +31,12 @@ #include "third_party/blink/renderer/platform/wtf/cross_thread_functional.h" #include "ui/gfx/mojom/presentation_feedback.mojom-blink.h" +namespace { +// Frame delay for synthetic frame timing. +// TODO(crbug.com/325532633): match this to the requested capture rate. +constexpr base::TimeDelta kSyntheticFrameDelay = base::Hertz(60); +} // namespace + namespace blink { struct CanvasResourceDispatcher::FrameResource { @@ -77,7 +83,10 @@ client_(client), task_runner_(std::move(task_runner)), agent_group_scheduler_compositor_task_runner_( - std::move(agent_group_scheduler_compositor_task_runner)) { + std::move(agent_group_scheduler_compositor_task_runner)), + fake_frame_timer_(task_runner_, + this, + &CanvasResourceDispatcher::OnFakeFrameTimer) { // Frameless canvas pass an invalid |frame_sink_id_|; don't create mojo // channel for this special case. if (!frame_sink_id_.is_valid()) @@ -247,8 +256,8 @@ // In that case, we can still submit frames that will contribute, possibly // indirectly, to picture-in-picture content even if those frames are not // consumed by a viz frame sink directly. In those cases, it might choose to - // throttle us, incorrectly. - frame->metadata.may_throttle_if_undrawn_frames = suspend_animation_; + // throttle us, incorrectly if we don't request otherwise. + frame->metadata.may_throttle_if_undrawn_frames = IsAnimationSuspended(); const gfx::Rect bounds(size_.width(), size_.height()); constexpr viz::CompositorRenderPassId kRenderPassId{1}; @@ -342,24 +351,36 @@ return; } needs_begin_frame_ = needs_begin_frame; - if (!suspend_animation_) - SetNeedsBeginFrameInternal(); + UpdateBeginFrameSource(); } -void CanvasResourceDispatcher::SetSuspendAnimation(bool suspend_animation) { - if (suspend_animation_ == suspend_animation) +void CanvasResourceDispatcher::SetAnimationState( + AnimationState animation_state) { + if (animation_state_ == animation_state) { return; - suspend_animation_ = suspend_animation; - if (needs_begin_frame_) - SetNeedsBeginFrameInternal(); + } + animation_state_ = animation_state; + UpdateBeginFrameSource(); } -void CanvasResourceDispatcher::SetNeedsBeginFrameInternal() { - if (!sink_) +void CanvasResourceDispatcher::UpdateBeginFrameSource() { + if (!sink_) { + fake_frame_timer_.Stop(); return; + } - bool needs_begin_frame = needs_begin_frame_ && !suspend_animation_; - sink_->SetNeedsBeginFrame(needs_begin_frame); + bool needs_begin_frame = needs_begin_frame_ && !IsAnimationSuspended(); + if (needs_begin_frame && + animation_state_ == AnimationState::kActiveWithSyntheticTiming) { + // Generate a synthetic OBF instead of asking viz, if we aren't already. + sink_->SetNeedsBeginFrame(false); + if (!fake_frame_timer_.IsActive()) { + fake_frame_timer_.StartRepeating(kSyntheticFrameDelay, FROM_HERE); + } + } else { + sink_->SetNeedsBeginFrame(needs_begin_frame); + fake_frame_timer_.Stop(); + } } bool CanvasResourceDispatcher::HasTooManyPendingFrames() const { @@ -390,7 +411,8 @@ // We usually never get to BeginFrame if we are on RAF mode. But it could // still happen that begin frame gets requested and we don't have a frame // anymore, so we shouldn't let the compositor wait. - bool submitted_frame = Client() && Client()->BeginFrame(); + const bool submitted_frame = Client() && Client()->BeginFrame(); + if (!submitted_frame) { sink_->DidNotProduceFrame(current_begin_frame_ack_); } @@ -400,6 +422,21 @@ viz::BeginFrameArgs::kInvalidFrameNumber; } +void CanvasResourceDispatcher::OnFakeFrameTimer(TimerBase* timer) { + viz::BeginFrameArgs begin_frame_args; + if (HasTooManyPendingFrames() || !Client()) { + return; + } + + // Since this is a synthetic OBF, create a manual ack to go with it. + current_begin_frame_ack_ = viz::BeginFrameAck::CreateManualAckWithDamage(); + // It doesn't matter if this succeeds or fails, because viz didn't ask for a + // frame from us. + Client()->BeginFrame(); + current_begin_frame_ack_.frame_id.sequence_number = + viz::BeginFrameArgs::kInvalidFrameNumber; +} + void CanvasResourceDispatcher::ReclaimResources( WTF::Vector<viz::ReturnedResource> resources) { for (const auto& resource : resources) {
diff --git a/third_party/blink/renderer/platform/graphics/canvas_resource_dispatcher.h b/third_party/blink/renderer/platform/graphics/canvas_resource_dispatcher.h index 1d2b845..abd99f9 100644 --- a/third_party/blink/renderer/platform/graphics/canvas_resource_dispatcher.h +++ b/third_party/blink/renderer/platform/graphics/canvas_resource_dispatcher.h
@@ -20,6 +20,7 @@ #include "third_party/blink/public/mojom/frame_sinks/embedded_frame_sink.mojom-blink.h" #include "third_party/blink/renderer/platform/graphics/resource_id_traits.h" #include "third_party/blink/renderer/platform/platform_export.h" +#include "third_party/blink/renderer/platform/timer.h" #include "ui/gfx/geometry/size.h" namespace blink { @@ -54,6 +55,18 @@ kInvalidPlaceholderCanvasId = -1, }; + enum class AnimationState { + // Animation should be active, and use the real sync signal from viz. + kActive, + + // Animation should be active, but should use a synthetic sync signal. This + // is useful when viz won't provide us with one. + kActiveWithSyntheticTiming, + + // Animation should be suspended. + kSuspended, + }; + // `task_runner` is the task runner this object is associated with and // executes on. `agent_group_scheduler_compositor_task_runner` is the // compositor task runner for the associated canvas element. @@ -69,9 +82,14 @@ ~CanvasResourceDispatcher() override; void SetNeedsBeginFrame(bool); - void SetSuspendAnimation(bool); + void SetAnimationState(AnimationState animation_state); + AnimationState GetAnimationStateForTesting() const { + return animation_state_; + } bool NeedsBeginFrame() const { return needs_begin_frame_; } - bool IsAnimationSuspended() const { return suspend_animation_; } + bool IsAnimationSuspended() const { + return animation_state_ == AnimationState::kSuspended; + } void DispatchFrame(scoped_refptr<CanvasResource>&&, base::TimeTicks commit_start_time, const SkIRect& damage_rect, @@ -123,17 +141,24 @@ bool is_opaque, viz::CompositorFrame* frame); + // Timer callback for synthetic OnBeginFrames. + void OnFakeFrameTimer(TimerBase* timer); + // Surface-related viz::ParentLocalSurfaceIdAllocator parent_local_surface_id_allocator_; const viz::FrameSinkId frame_sink_id_; gfx::Size size_; bool change_size_for_next_commit_; - bool suspend_animation_ = false; + AnimationState animation_state_ = AnimationState::kActive; bool needs_begin_frame_ = false; unsigned pending_compositor_frames_ = 0; - void SetNeedsBeginFrameInternal(); + // Make sure that we're are / are not requesting `OnBeginFrame` callbacks and + // are / are not generating synthetic OBFs via timer based on whether we need + // a begin frame source or not. It's okay to call this regardless if the + // state has actually changed or not. + void UpdateBeginFrameSource(); bool VerifyImageSize(const gfx::Size&); void PostImageToPlaceholderIfNotBlocked(scoped_refptr<CanvasResource>&&, @@ -171,6 +196,8 @@ scoped_refptr<base::SingleThreadTaskRunner> agent_group_scheduler_compositor_task_runner_; + TaskRunnerTimer<CanvasResourceDispatcher> fake_frame_timer_; + base::WeakPtrFactory<CanvasResourceDispatcher> weak_ptr_factory_{this}; };
diff --git a/third_party/blink/renderer/platform/graphics/canvas_resource_dispatcher_test.cc b/third_party/blink/renderer/platform/graphics/canvas_resource_dispatcher_test.cc index 8e63c673..ff33724 100644 --- a/third_party/blink/renderer/platform/graphics/canvas_resource_dispatcher_test.cc +++ b/third_party/blink/renderer/platform/graphics/canvas_resource_dispatcher_test.cc
@@ -25,6 +25,7 @@ #include "ui/gfx/mojom/presentation_feedback.mojom-blink.h" using testing::_; +using testing::AtLeast; using testing::Mock; using testing::ValuesIn; @@ -39,17 +40,24 @@ struct TestParams { bool context_alpha; + CanvasResourceDispatcher::AnimationState animation_state; }; viz::ResourceId NextId(viz::ResourceId id) { return viz::ResourceId(id.GetUnsafeValue() + 1); } +class MockCanvasResourceDispatcherClient + : public CanvasResourceDispatcherClient { + public: + MOCK_METHOD(bool, BeginFrame, (), (override)); +}; + class MockCanvasResourceDispatcher : public CanvasResourceDispatcher { public: MockCanvasResourceDispatcher() : CanvasResourceDispatcher( - /*client=*/nullptr, + &client_, /*task_runner=*/scheduler::GetSingleThreadTaskRunnerForTesting(), /*agent_group_scheduler_compositor_task_runner=*/ scheduler::GetSingleThreadTaskRunnerForTesting(), @@ -61,6 +69,11 @@ MOCK_METHOD2(PostImageToPlaceholder, void(scoped_refptr<CanvasResource>&&, viz::ResourceId resource_id)); + + MockCanvasResourceDispatcherClient& MockClient() { return client_; } + + private: + MockCanvasResourceDispatcherClient client_; }; } // namespace @@ -118,9 +131,12 @@ MockCanvasResourceDispatcher* Dispatcher() { return dispatcher_.get(); } + test::TaskEnvironment& TaskEnvironment() { return task_environment_; } + private: scoped_refptr<StaticBitmapImage> PrepareStaticBitmapImage(); - test::TaskEnvironment task_environment_; + test::TaskEnvironment task_environment_{ + base::test::TaskEnvironment::TimeSource::MOCK_TIME}; std::unique_ptr<MockCanvasResourceDispatcher> dispatcher_; std::unique_ptr<CanvasResourceProvider> resource_provider_; std::unique_ptr<WebGraphicsSharedImageInterfaceProvider> @@ -232,6 +248,95 @@ Mock::VerifyAndClearExpectations(Dispatcher()); } +TEST_F(CanvasResourceDispatcherTest, UsesRealOnBeginFrameWhenActive) { + ScopedTestingPlatformSupport<TestingPlatformSupport> platform; + + MockEmbeddedFrameSinkProvider mock_embedded_frame_sink_provider; + mojo::Receiver<mojom::blink::EmbeddedFrameSinkProvider> + embedded_frame_sink_provider_receiver(&mock_embedded_frame_sink_provider); + auto scoped_override = + mock_embedded_frame_sink_provider.CreateScopedOverrideMojoInterface( + &embedded_frame_sink_provider_receiver); + + CreateCanvasResourceDispatcher(); + Dispatcher()->SetAnimationState( + CanvasResourceDispatcher::AnimationState::kActive); + platform->RunUntilIdle(); + EXPECT_CALL(mock_embedded_frame_sink_provider.mock_compositor_frame_sink(), + SetNeedsBeginFrame(true)) + .Times(AtLeast(1)); + Dispatcher()->SetNeedsBeginFrame(true); + platform->RunUntilIdle(); + // Advance time, and verify that there isn't a synthetic OBF generated for the + // client by the dispatcher. + EXPECT_CALL(Dispatcher()->MockClient(), BeginFrame()).Times(0); + TaskEnvironment().FastForwardBy(base::Seconds(0.25)); + platform->RunUntilIdle(); + + // Verify that the client's BeginFrame is called in response to a real OBF. + EXPECT_CALL(Dispatcher()->MockClient(), BeginFrame()).Times(1); + Dispatcher()->OnBeginFrame(/*begin_frame_args=*/{}, /*timing details*/ {}, + /*frame_ack=*/false, /*resources=*/{}); +} + +TEST_F(CanvasResourceDispatcherTest, + UsesSyntheticOnBeginFrameWhenActiveWithSynthetic) { + ScopedTestingPlatformSupport<TestingPlatformSupport> platform; + + MockEmbeddedFrameSinkProvider mock_embedded_frame_sink_provider; + mojo::Receiver<mojom::blink::EmbeddedFrameSinkProvider> + embedded_frame_sink_provider_receiver(&mock_embedded_frame_sink_provider); + auto scoped_override = + mock_embedded_frame_sink_provider.CreateScopedOverrideMojoInterface( + &embedded_frame_sink_provider_receiver); + + CreateCanvasResourceDispatcher(); + Dispatcher()->SetAnimationState( + CanvasResourceDispatcher::AnimationState::kActiveWithSyntheticTiming); + platform->RunUntilIdle(); + EXPECT_CALL(mock_embedded_frame_sink_provider.mock_compositor_frame_sink(), + SetNeedsBeginFrame(false)) + .Times(AtLeast(1)); + Dispatcher()->SetNeedsBeginFrame(true); + platform->RunUntilIdle(); + // Advance time and make sure that we still get a CompositorFrame, even though + // we don't send any OBF. + EXPECT_CALL(Dispatcher()->MockClient(), BeginFrame()).Times(AtLeast(1)); + TaskEnvironment().FastForwardBy(base::Seconds(0.25)); + platform->RunUntilIdle(); +} + +TEST_F(CanvasResourceDispatcherTest, UsesNoOnBeginFrameWhenSuspended) { + ScopedTestingPlatformSupport<TestingPlatformSupport> platform; + + MockEmbeddedFrameSinkProvider mock_embedded_frame_sink_provider; + mojo::Receiver<mojom::blink::EmbeddedFrameSinkProvider> + embedded_frame_sink_provider_receiver(&mock_embedded_frame_sink_provider); + auto scoped_override = + mock_embedded_frame_sink_provider.CreateScopedOverrideMojoInterface( + &embedded_frame_sink_provider_receiver); + + CreateCanvasResourceDispatcher(); + Dispatcher()->SetAnimationState( + CanvasResourceDispatcher::AnimationState::kSuspended); + platform->RunUntilIdle(); + // Since OBF is off by default zero or more calls to turn it off is okay. For + // clarity, explicitly require no calls that would enable OBF. + EXPECT_CALL(mock_embedded_frame_sink_provider.mock_compositor_frame_sink(), + SetNeedsBeginFrame(false)) + .Times(AtLeast(0)); + EXPECT_CALL(mock_embedded_frame_sink_provider.mock_compositor_frame_sink(), + SetNeedsBeginFrame(true)) + .Times(0); + Dispatcher()->SetNeedsBeginFrame(true); + platform->RunUntilIdle(); + // Advance time, and verify that there isn't a synthetic OBF generated for the + // client by the dispatcher. + EXPECT_CALL(Dispatcher()->MockClient(), BeginFrame()).Times(0); + TaskEnvironment().FastForwardBy(base::Seconds(0.25)); + platform->RunUntilIdle(); +} + TEST_P(CanvasResourceDispatcherTest, DispatchFrame) { ScopedTestingPlatformSupport<TestingPlatformSupport> platform; ::testing::InSequence s; @@ -242,11 +347,18 @@ MockEmbeddedFrameSinkProvider mock_embedded_frame_sink_provider; mojo::Receiver<mojom::blink::EmbeddedFrameSinkProvider> embedded_frame_sink_provider_receiver(&mock_embedded_frame_sink_provider); - auto override = + auto scoped_override = mock_embedded_frame_sink_provider.CreateScopedOverrideMojoInterface( &embedded_frame_sink_provider_receiver); CreateCanvasResourceDispatcher(); + Dispatcher()->SetAnimationState(GetParam().animation_state); + // Throttling should be allowed if the animation is suspended. If it's active + // or if it's using a synthetic OBF, then the intention is that viz should not + // throttle since the canvas might be driving some on-screen work indirectly. + const bool expected_throttle = + GetParam().animation_state == + CanvasResourceDispatcher::AnimationState::kSuspended; // CanvasResourceDispatcher ctor will cause a CreateCompositorFrameSink() to // be issued. @@ -272,7 +384,11 @@ EXPECT_CALL(mock_embedded_frame_sink_provider.mock_compositor_frame_sink(), SubmitCompositorFrame_(_)) .WillOnce(::testing::WithArg<0>( - ::testing::Invoke([context_alpha](const viz::CompositorFrame* frame) { + ::testing::Invoke([context_alpha, expected_throttle]( + const viz::CompositorFrame* frame) { + EXPECT_EQ(frame->metadata.may_throttle_if_undrawn_frames, + expected_throttle); + const viz::CompositorRenderPass* render_pass = frame->render_pass_list[0].get(); @@ -305,7 +421,15 @@ platform->RunUntilIdle(); } -const TestParams kTestCases[] = {{false /* context_alpha */}, {true}}; +const TestParams kTestCases[] = { + {false /* context_alpha */, + CanvasResourceDispatcher::AnimationState::kActive}, + {true, CanvasResourceDispatcher::AnimationState::kActive}, + // These test the requested throttling state. Alpha doesn't matter. + {false, + CanvasResourceDispatcher::AnimationState::kActiveWithSyntheticTiming}, + {false, CanvasResourceDispatcher::AnimationState::kSuspended}, +}; INSTANTIATE_TEST_SUITE_P(All, CanvasResourceDispatcherTest,
diff --git a/third_party/blink/renderer/platform/graphics/compositing/paint_artifact_compositor_test.cc b/third_party/blink/renderer/platform/graphics/compositing/paint_artifact_compositor_test.cc index 7594d94..0b54eaa 100644 --- a/third_party/blink/renderer/platform/graphics/compositing/paint_artifact_compositor_test.cc +++ b/third_party/blink/renderer/platform/graphics/compositing/paint_artifact_compositor_test.cc
@@ -2,13 +2,9 @@ // 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/graphics/compositing/paint_artifact_compositor.h" +#include <array> #include <memory> #include "base/containers/adapters.h" @@ -4322,7 +4318,7 @@ Update(artifact.Build()); ASSERT_EQ(6u, LayerCount()); - int effect_ids[6]; + std::array<int, 6> effect_ids; for (size_t i = 0; i < LayerCount(); i++) effect_ids[i] = LayerAt(i)->effect_tree_index(); @@ -4409,7 +4405,7 @@ Update(artifact.Build()); ASSERT_EQ(6u, LayerCount()); - int effect_ids[6]; + std::array<int, 6> effect_ids; for (size_t i = 0; i < LayerCount(); i++) effect_ids[i] = LayerAt(i)->effect_tree_index();
diff --git a/third_party/blink/renderer/platform/graphics/compositing/property_tree_manager.cc b/third_party/blink/renderer/platform/graphics/compositing/property_tree_manager.cc index 282f4b4..680eb06 100644 --- a/third_party/blink/renderer/platform/graphics/compositing/property_tree_manager.cc +++ b/third_party/blink/renderer/platform/graphics/compositing/property_tree_manager.cc
@@ -476,6 +476,14 @@ transform_tree_.AddNodeAffectedByOuterViewportBoundsDelta(id); } + if (base::FeatureList::IsEnabled( + features::kDynamicSafeAreaInsetsSupportedByCC)) { + if (transform_node.IsAffectedBySafeArea()) { + compositor_node.moved_by_safe_area_bottom = true; + transform_tree_.AddNodeAffectedBySafeAreaInsetBottom(id); + } + } + compositor_node.in_subtree_of_page_scale_layer = transform_node.IsInSubtreeOfPageScale();
diff --git a/third_party/blink/renderer/platform/graphics/compositing_reasons.cc b/third_party/blink/renderer/platform/graphics/compositing_reasons.cc index 84618c05..397a77ee 100644 --- a/third_party/blink/renderer/platform/graphics/compositing_reasons.cc +++ b/third_party/blink/renderer/platform/graphics/compositing_reasons.cc
@@ -45,6 +45,8 @@ "Has an active accelerated backdrop filter animation or transition."}, {CompositingReason::kAffectedByOuterViewportBoundsDelta, "Is fixed position affected by outer viewport bounds delta."}, + {CompositingReason::kAffectedBySafeAreaBottom, + "Is fixed position affected by safe area bottom."}, {CompositingReason::kFixedPosition, "Is fixed position in a scrollable view."}, {CompositingReason::kUndoOverscroll,
diff --git a/third_party/blink/renderer/platform/graphics/compositing_reasons.h b/third_party/blink/renderer/platform/graphics/compositing_reasons.h index 2522c3e..b870a91 100644 --- a/third_party/blink/renderer/platform/graphics/compositing_reasons.h +++ b/third_party/blink/renderer/platform/graphics/compositing_reasons.h
@@ -31,6 +31,7 @@ V(ActiveFilterAnimation) \ V(ActiveBackdropFilterAnimation) \ V(AffectedByOuterViewportBoundsDelta) \ + V(AffectedBySafeAreaBottom) \ V(FixedPosition) \ V(UndoOverscroll) \ V(StickyPosition) \ @@ -127,7 +128,7 @@ kWillChangeTransform | kWillChangeScale | kWillChangeRotate, kDirectReasonsForPaintOffsetTranslationProperty = kFixedPosition | kAffectedByOuterViewportBoundsDelta | kUndoOverscroll | - kVideo | kCanvas | kPlugin | kIFrame, + kVideo | kCanvas | kPlugin | kIFrame | kAffectedBySafeAreaBottom, // TODO(dbaron): kWillChangeOther probably shouldn't be in this list. // TODO(vmpstr): kViewTransitionElement is needed to make sure that the // capture escapes clips when view transition has a descendant that
diff --git a/third_party/blink/renderer/platform/graphics/gpu/drawing_buffer_test.cc b/third_party/blink/renderer/platform/graphics/gpu/drawing_buffer_test.cc index 09aae9d..9adb819 100644 --- a/third_party/blink/renderer/platform/graphics/gpu/drawing_buffer_test.cc +++ b/third_party/blink/renderer/platform/graphics/gpu/drawing_buffer_test.cc
@@ -35,6 +35,7 @@ #include "third_party/blink/renderer/platform/graphics/gpu/drawing_buffer.h" +#include <array> #include <memory> #include "base/memory/scoped_refptr.h" @@ -87,10 +88,10 @@ void SetAndSaveRestoreState(bool invert) { GLES2InterfaceForTests* gl_ = drawing_buffer_->ContextGLForTests(); GLboolean scissor_enabled = !invert; - GLfloat clear_color[4] = {0.1, 0.2, 0.3, 0.4}; + std::array<GLfloat, 4> clear_color = {0.1, 0.2, 0.3, 0.4}; GLfloat clear_depth = 0.8; GLint clear_stencil = 37; - GLboolean color_mask[4] = {invert, !invert, !invert, invert}; + std::array<GLboolean, 4> color_mask = {invert, !invert, !invert, invert}; GLboolean depth_mask = invert; GLboolean stencil_mask = invert; GLint pack_alignment = 7; @@ -597,12 +598,12 @@ // desktop OpenGL drivers that support this extension do not consider a // framebuffer with only a depth or a stencil buffer attached to be complete. TEST(DrawingBufferDepthStencilTest, packedDepthStencilSupported) { - DepthStencilTestCase cases[] = { + auto cases = std::to_array<DepthStencilTestCase>({ DepthStencilTestCase(false, false, 0, "neither"), DepthStencilTestCase(true, false, 1, "stencil only"), DepthStencilTestCase(false, true, 1, "depth only"), DepthStencilTestCase(true, true, 1, "both"), - }; + }); for (size_t i = 0; i < std::size(cases); i++) { SCOPED_TRACE(cases[i].test_case_name);
diff --git a/third_party/blink/renderer/platform/graphics/gpu/webgpu_resource_provider_cache_test.cc b/third_party/blink/renderer/platform/graphics/gpu/webgpu_resource_provider_cache_test.cc index 432a154..52d5941 100644 --- a/third_party/blink/renderer/platform/graphics/gpu/webgpu_resource_provider_cache_test.cc +++ b/third_party/blink/renderer/platform/graphics/gpu/webgpu_resource_provider_cache_test.cc
@@ -4,6 +4,8 @@ #include "third_party/blink/renderer/platform/graphics/gpu/webgpu_resource_provider_cache.h" +#include <array> + #include "base/test/task_environment.h" #include "cc/test/stub_decode_cache.h" #include "components/viz/test/test_context_provider.h" @@ -76,10 +78,10 @@ } TEST_F(WebGPURecyclableResourceCacheTest, DifferentSize) { - const SkImageInfo kInfos[] = { + const auto kInfos = std::to_array<SkImageInfo>({ SkImageInfo::Make(10, 10, kRGBA_8888_SkColorType, kPremul_SkAlphaType), SkImageInfo::Make(20, 20, kRGBA_8888_SkColorType, kPremul_SkAlphaType), - }; + }); Vector<CanvasResourceProvider*> returned_resource_providers; std::unique_ptr<RecyclableCanvasResource> provider_holder_0 =
diff --git a/third_party/blink/renderer/platform/graphics/offscreen_canvas_placeholder.cc b/third_party/blink/renderer/platform/graphics/offscreen_canvas_placeholder.cc index d9bf557e..bbcf96a 100644 --- a/third_party/blink/renderer/platform/graphics/offscreen_canvas_placeholder.cc +++ b/third_party/blink/renderer/platform/graphics/offscreen_canvas_placeholder.cc
@@ -14,9 +14,10 @@ #include "third_party/blink/renderer/platform/wtf/hash_map.h" #include "third_party/blink/renderer/platform/wtf/wtf.h" +namespace blink { namespace { -typedef HashMap<int, blink::OffscreenCanvasPlaceholder*> PlaceholderIdMap; +typedef HashMap<int, OffscreenCanvasPlaceholder*> PlaceholderIdMap; PlaceholderIdMap& placeholderRegistry() { DEFINE_STATIC_LOCAL(PlaceholderIdMap, s_placeholderRegistry, ()); @@ -24,26 +25,24 @@ } void ReleaseFrameToDispatcher( - base::WeakPtr<blink::CanvasResourceDispatcher> dispatcher, - scoped_refptr<blink::CanvasResource> oldImage, + base::WeakPtr<CanvasResourceDispatcher> dispatcher, + scoped_refptr<CanvasResource> oldImage, viz::ResourceId resourceId) { if (dispatcher) { dispatcher->ReclaimResource(resourceId, std::move(oldImage)); } } -void SetSuspendAnimation( - base::WeakPtr<blink::CanvasResourceDispatcher> dispatcher, - bool suspend) { +void SetAnimationState( + base::WeakPtr<CanvasResourceDispatcher> dispatcher, + CanvasResourceDispatcher::AnimationState animation_state) { if (dispatcher) { - dispatcher->SetSuspendAnimation(suspend); + dispatcher->SetAnimationState(animation_state); } } } // unnamed namespace -namespace blink { - OffscreenCanvasPlaceholder::~OffscreenCanvasPlaceholder() { UnregisterPlaceholderCanvas(); } @@ -96,14 +95,13 @@ base::BindOnce(FrameLastUnrefCallback, frame_dispatcher_, frame_dispatcher_task_runner_, resource_id)); - if (animation_state_ == kShouldSuspendAnimation) { - bool success = PostSetSuspendAnimationToOffscreenCanvasThread(true); + if (deferred_animation_state_ && + current_animation_state_ != *deferred_animation_state_) { + bool success = PostSetAnimationStateToOffscreenCanvasThread( + *deferred_animation_state_); DCHECK(success); - animation_state_ = kSuspendedAnimation; - } else if (animation_state_ == kShouldActivateAnimation) { - bool success = PostSetSuspendAnimationToOffscreenCanvasThread(false); - DCHECK(success); - animation_state_ = kActiveAnimation; + current_animation_state_ = *deferred_animation_state_; + deferred_animation_state_.reset(); } } @@ -116,38 +114,15 @@ } void OffscreenCanvasPlaceholder::SetSuspendOffscreenCanvasAnimation( - bool suspend) { - switch (animation_state_) { - case kActiveAnimation: - if (suspend) { - if (PostSetSuspendAnimationToOffscreenCanvasThread(suspend)) { - animation_state_ = kSuspendedAnimation; - } else { - animation_state_ = kShouldSuspendAnimation; - } - } - break; - case kSuspendedAnimation: - if (!suspend) { - if (PostSetSuspendAnimationToOffscreenCanvasThread(suspend)) { - animation_state_ = kActiveAnimation; - } else { - animation_state_ = kShouldActivateAnimation; - } - } - break; - case kShouldSuspendAnimation: - if (!suspend) { - animation_state_ = kActiveAnimation; - } - break; - case kShouldActivateAnimation: - if (suspend) { - animation_state_ = kSuspendedAnimation; - } - break; - default: - NOTREACHED(); + CanvasResourceDispatcher::AnimationState requested_animation_state) { + if (PostSetAnimationStateToOffscreenCanvasThread(requested_animation_state)) { + current_animation_state_ = requested_animation_state; + // If there is any deferred state, clear it because we just posted the + // correct update. + deferred_animation_state_.reset(); + } else { + // Defer the request until we have a dispatcher. + deferred_animation_state_ = requested_animation_state; } } @@ -175,13 +150,13 @@ placeholder_id_ = kNoPlaceholderId; } -bool OffscreenCanvasPlaceholder::PostSetSuspendAnimationToOffscreenCanvasThread( - bool suspend) { +bool OffscreenCanvasPlaceholder::PostSetAnimationStateToOffscreenCanvasThread( + CanvasResourceDispatcher::AnimationState animation_state) { if (!frame_dispatcher_task_runner_) return false; - PostCrossThreadTask( - *frame_dispatcher_task_runner_, FROM_HERE, - CrossThreadBindOnce(SetSuspendAnimation, frame_dispatcher_, suspend)); + PostCrossThreadTask(*frame_dispatcher_task_runner_, FROM_HERE, + CrossThreadBindOnce(SetAnimationState, frame_dispatcher_, + animation_state)); return true; }
diff --git a/third_party/blink/renderer/platform/graphics/offscreen_canvas_placeholder.h b/third_party/blink/renderer/platform/graphics/offscreen_canvas_placeholder.h index 4a7d1ab..e33c2d8b 100644 --- a/third_party/blink/renderer/platform/graphics/offscreen_canvas_placeholder.h +++ b/third_party/blink/renderer/platform/graphics/offscreen_canvas_placeholder.h
@@ -12,13 +12,13 @@ #include "base/task/single_thread_task_runner.h" #include "cc/paint/paint_flags.h" #include "components/viz/common/resources/resource_id.h" +#include "third_party/blink/renderer/platform/graphics/canvas_resource_dispatcher.h" #include "third_party/blink/renderer/platform/platform_export.h" #include "third_party/blink/renderer/platform/wtf/allocator/allocator.h" namespace blink { class CanvasResource; -class CanvasResourceDispatcher; class PLATFORM_EXPORT OffscreenCanvasPlaceholder { DISALLOW_NEW(); @@ -32,7 +32,8 @@ base::WeakPtr<CanvasResourceDispatcher>, scoped_refptr<base::SingleThreadTaskRunner>); - void SetSuspendOffscreenCanvasAnimation(bool); + void SetSuspendOffscreenCanvasAnimation( + CanvasResourceDispatcher::AnimationState requested_state); static OffscreenCanvasPlaceholder* GetPlaceholderCanvasById( unsigned placeholder_id); @@ -49,8 +50,13 @@ virtual bool HasCanvasCapture() const { return false; } + CanvasResourceDispatcher::AnimationState GetAnimationStateForTesting() const { + return current_animation_state_; + } + private: - bool PostSetSuspendAnimationToOffscreenCanvasThread(bool suspend); + bool PostSetAnimationStateToOffscreenCanvasThread( + CanvasResourceDispatcher::AnimationState animation_state); // Information about the Offscreen Canvas: scoped_refptr<CanvasResource> placeholder_frame_; @@ -62,13 +68,16 @@ }; int placeholder_id_ = kNoPlaceholderId; - enum AnimationState { - kActiveAnimation, - kSuspendedAnimation, - kShouldSuspendAnimation, - kShouldActivateAnimation, - }; - AnimationState animation_state_ = kActiveAnimation; + // If an animation state change was requested, but we couldn't update it + // immediately, then this holds the most recent request. + std::optional<CanvasResourceDispatcher::AnimationState> + deferred_animation_state_; + + // Most recent animation state sent to the dispatcher. + CanvasResourceDispatcher::AnimationState current_animation_state_ = + CanvasResourceDispatcher::AnimationState::kActive; + + std::optional<cc::PaintFlags::FilterQuality> filter_quality_ = std::nullopt; }; } // namespace blink
diff --git a/third_party/blink/renderer/platform/graphics/offscreen_canvas_placeholder_test.cc b/third_party/blink/renderer/platform/graphics/offscreen_canvas_placeholder_test.cc index 81d2f6dd..ad6d6a65 100644 --- a/third_party/blink/renderer/platform/graphics/offscreen_canvas_placeholder_test.cc +++ b/third_party/blink/renderer/platform/graphics/offscreen_canvas_placeholder_test.cc
@@ -58,6 +58,7 @@ return dispatcher_->id_generator_.PeekNextValueForTesting(); } void DrawSomething(); + void CreateDispatcher(); protected: void SetUp() override; @@ -70,6 +71,7 @@ std::unique_ptr<CanvasResourceProvider> resource_provider_; std::unique_ptr<WebGraphicsSharedImageInterfaceProvider> test_web_shared_image_interface_provider_; + unsigned placeholder_id_ = 0; }; void OffscreenCanvasPlaceholderTest::SetUp() { @@ -77,15 +79,8 @@ test_web_shared_image_interface_provider_ = TestWebGraphicsSharedImageInterfaceProvider::Create(); - unsigned placeholder_id = GenPlaceholderId(); - placeholder_.RegisterPlaceholderCanvas(placeholder_id); - dispatcher_ = std::make_unique<MockCanvasResourceDispatcher>(placeholder_id); - dispatcher_->SetPlaceholderCanvasDispatcher(placeholder_id); - resource_provider_ = CanvasResourceProvider::CreateSharedBitmapProvider( - gfx::Size(kWidth, kHeight), kN32_SkColorType, kPremul_SkAlphaType, - SkColorSpace::MakeSRGB(), - CanvasResourceProvider::ShouldInitialize::kCallClear, - test_web_shared_image_interface_provider_.get()); + placeholder_id_ = GenPlaceholderId(); + placeholder_.RegisterPlaceholderCanvas(placeholder_id_); } void OffscreenCanvasPlaceholderTest::TearDown() { @@ -95,6 +90,16 @@ Test::TearDown(); } +void OffscreenCanvasPlaceholderTest::CreateDispatcher() { + dispatcher_ = std::make_unique<MockCanvasResourceDispatcher>(placeholder_id_); + dispatcher_->SetPlaceholderCanvasDispatcher(placeholder_id_); + resource_provider_ = CanvasResourceProvider::CreateSharedBitmapProvider( + gfx::Size(kWidth, kHeight), kN32_SkColorType, kPremul_SkAlphaType, + SkColorSpace::MakeSRGB(), + CanvasResourceProvider::ShouldInitialize::kCallClear, + test_web_shared_image_interface_provider_.get()); +} + void OffscreenCanvasPlaceholderTest::DrawSomething() { // 'needs_will_draw=true' is required to ensure the CanvasResourceProvider // does not retain a reference on the previous frame. @@ -120,6 +125,7 @@ // This test verifies that OffscreenCanvasPlaceholder send back // the previous frame when it receives a new one. ScopedTestingPlatformSupport<TestingPlatformSupport> platform; + CreateDispatcher(); EXPECT_CALL(*(dispatcher()), ReclaimResource(_, _)).Times(0); DrawSomething(); @@ -153,6 +159,7 @@ // This test verifies that OffscreenCanvasPlaceholder send back // the previous frame when it receives a new one. ScopedTestingPlatformSupport<TestingPlatformSupport> platform; + CreateDispatcher(); EXPECT_CALL(*(dispatcher()), ReclaimResource(_, _)).Times(0); DrawSomething(); @@ -193,6 +200,54 @@ Mock::VerifyAndClearExpectations(dispatcher()); } +TEST_F(OffscreenCanvasPlaceholderTest, DeferredAnimationStateIsApplied) { + // Test that changes to the animation state are deferred until the resource is + // provided to the placeholder. + ScopedTestingPlatformSupport<TestingPlatformSupport> platform; + // Animation state changes are only deferred before the placeholder has a + // dispatcher, so be sure that we don't have one now. + ASSERT_FALSE(dispatcher()); + const auto initial_state = placeholder()->GetAnimationStateForTesting(); + constexpr auto deferred_state = + CanvasResourceDispatcher::AnimationState::kSuspended; + // It doesn't really matter what the initial animation state is, but we want + // to be sure that we're actually going to change it. + ASSERT_NE(initial_state, deferred_state); + // Change the state, which should be deferred. + placeholder()->SetSuspendOffscreenCanvasAnimation(deferred_state); + EXPECT_EQ(initial_state, placeholder()->GetAnimationStateForTesting()); + + // Now that the state change is deferred, we can create a dispatcher to + // undefer it. + CreateDispatcher(); + EXPECT_EQ(initial_state, dispatcher()->GetAnimationStateForTesting()); + + // Now push a resource, which should apply the animation state change to both + // the placeholder and the dispatcher. + DispatchOneFrame(); + platform->RunUntilIdle(); + // Both the placeholder and the dispatcher should now agree on the new + // animation state. + EXPECT_EQ(deferred_state, placeholder()->GetAnimationStateForTesting()); + EXPECT_EQ(deferred_state, dispatcher()->GetAnimationStateForTesting()); +} + +TEST_F(OffscreenCanvasPlaceholderTest, + AnimationStateIsNotDeferredWithDispatcher) { + // Test that, once we have a dispatcher, animation state changes are applied + // right away. + ScopedTestingPlatformSupport<TestingPlatformSupport> platform; + CreateDispatcher(); + const auto initial_state = placeholder()->GetAnimationStateForTesting(); + constexpr auto deferred_state = + CanvasResourceDispatcher::AnimationState::kSuspended; + ASSERT_NE(initial_state, deferred_state); + placeholder()->SetSuspendOffscreenCanvasAnimation(deferred_state); + platform->RunUntilIdle(); + EXPECT_EQ(deferred_state, placeholder()->GetAnimationStateForTesting()); + EXPECT_EQ(deferred_state, dispatcher()->GetAnimationStateForTesting()); +} + } // namespace } // namespace blink
diff --git a/third_party/blink/renderer/platform/graphics/paint/display_item_raster_invalidator_test.cc b/third_party/blink/renderer/platform/graphics/paint/display_item_raster_invalidator_test.cc index 9342b6d9..fb48bb5 100644 --- a/third_party/blink/renderer/platform/graphics/paint/display_item_raster_invalidator_test.cc +++ b/third_party/blink/renderer/platform/graphics/paint/display_item_raster_invalidator_test.cc
@@ -2,13 +2,10 @@ // 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/graphics/paint/display_item_raster_invalidator.h" +#include <array> + #include "base/functional/callback_helpers.h" #include "testing/gmock/include/gmock/gmock.h" #include "third_party/blink/renderer/platform/graphics/paint/paint_artifact.h" @@ -363,7 +360,7 @@ TEST_P(DisplayItemRasterInvalidatorTest, Incremental) { gfx::Rect initial_rect(100, 100, 100, 100); - Persistent<FakeDisplayItemClient> clients[6]; + std::array<Persistent<FakeDisplayItemClient>, 6> clients; for (size_t i = 0; i < std::size(clients); i++) { clients[i] = MakeGarbageCollected<FakeDisplayItemClient>(String::Format("%zu", i)); @@ -384,10 +381,14 @@ *invalidator_); GraphicsContext context(paint_controller); InitRootChunk(paint_controller); - gfx::Rect visual_rects[] = { - gfx::Rect(100, 100, 150, 100), gfx::Rect(100, 100, 100, 150), - gfx::Rect(100, 100, 150, 80), gfx::Rect(100, 100, 80, 150), - gfx::Rect(100, 100, 150, 150), gfx::Rect(100, 100, 80, 80)}; + auto visual_rects = std::to_array<gfx::Rect>({ + gfx::Rect(100, 100, 150, 100), + gfx::Rect(100, 100, 100, 150), + gfx::Rect(100, 100, 150, 80), + gfx::Rect(100, 100, 80, 150), + gfx::Rect(100, 100, 150, 150), + gfx::Rect(100, 100, 80, 80), + }); for (size_t i = 0; i < std::size(clients); i++) { clients[i]->Invalidate(PaintInvalidationReason::kIncremental); DrawRect(context, *clients[i], kBackgroundType,
diff --git a/third_party/blink/renderer/platform/graphics/paint/transform_paint_property_node.h b/third_party/blink/renderer/platform/graphics/paint/transform_paint_property_node.h index 17ed918b..429e936 100644 --- a/third_party/blink/renderer/platform/graphics/paint/transform_paint_property_node.h +++ b/third_party/blink/renderer/platform/graphics/paint/transform_paint_property_node.h
@@ -228,6 +228,11 @@ CompositingReason::kAffectedByOuterViewportBoundsDelta; } + bool IsAffectedBySafeArea() const { + return DirectCompositingReasons() & + CompositingReason::kAffectedBySafeAreaBottom; + } + // If true, this node is a descendant of the page scale transform. This is // important for avoiding raster during pinch-zoom (see: crbug.com/951861). bool IsInSubtreeOfPageScale() const {
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 0d78a8a..1b6fcca 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
@@ -9,8 +9,6 @@ #include "third_party/blink/renderer/platform/image-decoders/image_decoder_test_helpers.h" -#include <memory> - #include "base/strings/strcat.h" #include "base/test/metrics/histogram_tester.h" #include "testing/gtest/include/gtest/gtest.h"
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 dbfd2df..7ed1e37 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
@@ -2,13 +2,9 @@ // 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/image-decoders/webp/webp_image_decoder.h" +#include <array> #include <memory> #include "base/metrics/histogram_base.h" @@ -102,14 +98,14 @@ const int kCanvasWidth = 11; const int kCanvasHeight = 29; - const AnimParam kFrameParameters[] = { + const auto kFrameParameters = std::to_array<AnimParam>({ {0, 0, 11, 29, ImageFrame::kDisposeKeep, ImageFrame::kBlendAtopPreviousFrame, base::Milliseconds(1000), true}, {2, 10, 7, 17, ImageFrame::kDisposeKeep, ImageFrame::kBlendAtopPreviousFrame, base::Milliseconds(500), true}, {2, 2, 7, 16, ImageFrame::kDisposeKeep, ImageFrame::kBlendAtopPreviousFrame, base::Milliseconds(1000), true}, - }; + }); for (size_t i = 0; i < std::size(kFrameParameters); ++i) { const ImageFrame* const frame = decoder->DecodeFrameBufferAtIndex(i); @@ -143,7 +139,7 @@ const int kCanvasWidth = 94; const int kCanvasHeight = 87; - const AnimParam kFrameParameters[] = { + const auto kFrameParameters = std::to_array<AnimParam>({ {4, 10, 33, 32, ImageFrame::kDisposeOverwriteBgcolor, ImageFrame::kBlendAtopPreviousFrame, base::Milliseconds(1000), true}, {34, 30, 33, 32, ImageFrame::kDisposeOverwriteBgcolor, @@ -152,7 +148,7 @@ ImageFrame::kBlendAtopPreviousFrame, base::Milliseconds(1000), true}, {10, 54, 32, 33, ImageFrame::kDisposeOverwriteBgcolor, ImageFrame::kBlendAtopPreviousFrame, base::Milliseconds(1000), true}, - }; + }); for (size_t i = 0; i < std::size(kFrameParameters); ++i) { const ImageFrame* const frame = decoder->DecodeFrameBufferAtIndex(i); @@ -185,7 +181,7 @@ const int kCanvasWidth = 94; const int kCanvasHeight = 87; - const AnimParam kFrameParameters[] = { + const auto kFrameParameters = std::to_array<AnimParam>({ {4, 10, 33, 32, ImageFrame::kDisposeOverwriteBgcolor, ImageFrame::kBlendAtopBgcolor, base::Milliseconds(1000), true}, {34, 30, 33, 32, ImageFrame::kDisposeOverwriteBgcolor, @@ -194,7 +190,7 @@ ImageFrame::kBlendAtopBgcolor, base::Milliseconds(1000), true}, {10, 54, 32, 33, ImageFrame::kDisposeOverwriteBgcolor, ImageFrame::kBlendAtopBgcolor, base::Milliseconds(1000), true}, - }; + }); for (size_t i = 0; i < std::size(kFrameParameters); ++i) { const ImageFrame* const frame = decoder->DecodeFrameBufferAtIndex(i); @@ -406,8 +402,8 @@ // We need to store pointers to the image frames, since calling // FrameBufferAtIndex will decode the frame if it is not FrameComplete, // and we want to read the status of the frame without decoding it again. - ImageFrame* buffers[3]; - size_t buffer_sizes[3]; + std::array<ImageFrame*, 3> buffers; + std::array<size_t, 3> buffer_sizes; for (size_t i = 0; i < decoder->FrameCount(); i++) { buffers[i] = decoder->DecodeFrameBufferAtIndex(i); ASSERT_EQ(ImageFrame::kFrameComplete, buffers[i]->GetStatus());
diff --git a/third_party/blink/renderer/platform/media/cache_util_unittest.cc b/third_party/blink/renderer/platform/media/cache_util_unittest.cc index 304f5e37..e430f5d 100644 --- a/third_party/blink/renderer/platform/media/cache_util_unittest.cc +++ b/third_party/blink/renderer/platform/media/cache_util_unittest.cc
@@ -2,16 +2,12 @@ // 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/media/cache_util.h" #include <stddef.h> #include <stdint.h> +#include <array> #include <string> #include "base/format_macros.h" @@ -51,7 +47,7 @@ TEST(CacheUtilTest, GetReasonsForUncacheability) { enum { kNoReasons = 0 }; - const GRFUTestCase tests[] = { + const auto tests = std::to_array<GRFUTestCase>({ {WebURLResponse::kHTTPVersion_1_1, 206, "ETag: 'fooblort'", kNoReasons}, {WebURLResponse::kHTTPVersion_1_1, 206, "", kNoStrongValidatorOnPartialResponse}, @@ -73,7 +69,7 @@ kNoStore}, {WebURLResponse::kHTTPVersion_1_1, 200, "cache-control: no-cache\ncache-control: no-store", kNoCache | kNoStore}, - }; + }); for (size_t i = 0; i < std::size(tests); ++i) { SCOPED_TRACE(base::StringPrintf("case: %" PRIuS ", version: %d, code: %d, headers: %s",
diff --git a/third_party/blink/renderer/platform/peerconnection/video_encoder_state_observer_impl_test.cc b/third_party/blink/renderer/platform/peerconnection/video_encoder_state_observer_impl_test.cc index c972a19a..2ad46e3 100644 --- a/third_party/blink/renderer/platform/peerconnection/video_encoder_state_observer_impl_test.cc +++ b/third_party/blink/renderer/platform/peerconnection/video_encoder_state_observer_impl_test.cc
@@ -9,6 +9,7 @@ #include "third_party/blink/renderer/platform/peerconnection/video_encoder_state_observer_impl.h" +#include <array> #include <queue> #include "base/functional/bind.h" @@ -319,7 +320,7 @@ CreateObserver(media::VP8PROFILE_ANY); const auto codec = VP8VideoCodec(kSimulcasts, kTemporalLayers); - webrtc::VideoCodec codec_params[kSimulcasts]; + std::array<webrtc::VideoCodec, kSimulcasts> codec_params; for (size_t stream_idx = 0; stream_idx < kSimulcasts; stream_idx++) { codec_params[stream_idx] = CreateStreamCodec(codec, stream_idx, stream_idx == kSimulcasts - 1); @@ -418,7 +419,7 @@ constexpr int kSimulcasts = 3; constexpr int kTemporalLayers = 3; const auto codec = VP8VideoCodec(kSimulcasts, kTemporalLayers); - webrtc::VideoCodec codec_params[kSimulcasts]; + std::array<webrtc::VideoCodec, kSimulcasts> codec_params; CreateObserver(media::VP8PROFILE_ANY); @@ -521,7 +522,7 @@ CreateObserver(media::VP8PROFILE_ANY); - webrtc::VideoCodec codec_params[kSimulcasts]; + std::array<webrtc::VideoCodec, kSimulcasts> codec_params; for (size_t stream_idx = 0; stream_idx < kSimulcasts; stream_idx++) { codec_params[stream_idx] = CreateStreamCodec(codec, stream_idx, stream_idx == kSimulcasts - 1);
diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 b/third_party/blink/renderer/platform/runtime_enabled_features.json5 index 9d5771e..0039a58 100644 --- a/third_party/blink/renderer/platform/runtime_enabled_features.json5 +++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5
@@ -363,6 +363,14 @@ // enabled to make the whole feature work. }, { + name: "AllowSyntheticTimingForCanvasCapture", + base_feature: "none", + status: { + "Mac": "stable", + "default": "" + } + }, + { name: "AllowURNsInIframes", base_feature: "none", },
diff --git a/third_party/blink/renderer/platform/text/unicode_utilities_test.cc b/third_party/blink/renderer/platform/text/unicode_utilities_test.cc index 2e7058f..ef14ef5c 100644 --- a/third_party/blink/renderer/platform/text/unicode_utilities_test.cc +++ b/third_party/blink/renderer/platform/text/unicode_utilities_test.cc
@@ -32,6 +32,8 @@ #include <unicode/uchar.h> +#include <array> + #include "testing/gtest/include/gtest/gtest.h" #include "third_party/blink/renderer/platform/wtf/text/character_names.h" #include "third_party/blink/renderer/platform/wtf/text/string_builder.h" @@ -175,7 +177,7 @@ base::span(kKanaString))); UChar voiced_kana_string1[] = {0x3042, 0x3099}; - UChar voiced_kana_string2[] = {0x3042, 0x309A}; + auto voiced_kana_string2 = std::to_array<UChar>({0x3042, 0x309A}); // Comparing strings with different sound marks should fail. EXPECT_FALSE(CheckOnlyKanaLettersInStrings(base::span(voiced_kana_string1), @@ -224,7 +226,7 @@ base::span(kKanaString4))); UChar voiced_kana_string1[] = {0x3042, 0x3099}; - UChar voiced_kana_string2[] = {0x3042, 0x309A}; + auto voiced_kana_string2 = std::to_array<UChar>({0x3042, 0x309A}); // Comparing strings with different sound marks should fail. EXPECT_FALSE(CheckKanaStringsEqual(base::span(voiced_kana_string1),
diff --git a/third_party/blink/renderer/platform/weborigin/kurl_test.cc b/third_party/blink/renderer/platform/weborigin/kurl_test.cc index c324c63..707a0a7 100644 --- a/third_party/blink/renderer/platform/weborigin/kurl_test.cc +++ b/third_party/blink/renderer/platform/weborigin/kurl_test.cc
@@ -33,6 +33,8 @@ #pragma allow_unsafe_buffers #endif +#include <array> + // Basic tests that verify our KURL's interface behaves the same as the // original KURL's. @@ -68,7 +70,8 @@ const char* query; const char* fragment_identifier; bool has_fragment_identifier; - } cases[] = { + }; + auto cases = std::to_array<GetterCase>({ {"http://www.google.com/foo/blah?bar=baz#ref", "http", "www.google.com", 0, nullptr, nullptr, "/foo/blah", "blah", "bar=baz", "ref", true}, {// Non-ASCII code points in the fragment part. fragmentIdentifier() @@ -96,7 +99,7 @@ "http://\xe4\xbd\xa0\xe5\xa5\xbd\xe4\xbd\xa0\xe5\xa5\xbd/", "http", "xn--6qqa088eba", 0, nullptr, nullptr, "/", nullptr, nullptr, nullptr, false}, - }; + }); for (size_t i = 0; i < std::size(cases); i++) { const GetterCase& c = cases[i]; @@ -171,7 +174,8 @@ const char* query; const char* expected_query; - } cases[] = { + }; + auto cases = std::to_array<ExpectedComponentCase>({ {"http://www.google.com/", // protocol "https", "https://www.google.com/", @@ -202,7 +206,7 @@ "/", "http://goo.com:92/?f#b", // query nullptr, "http://goo.com:92/#b"}, - }; + }); for (size_t i = 0; i < std::size(cases); i++) { KURL kurl(cases[i].url); @@ -238,7 +242,8 @@ struct DecodeCase { const char* input; const char* output; - } decode_cases[] = { + }; + auto decode_cases = std::to_array<DecodeCase>({ {"hello, world", "hello, world"}, {"%01%02%03%04%05%06%07%08%09%0a%0B%0C%0D%0e%0f/", "\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0a\x0B\x0C\x0D\x0e\x0f/"}, @@ -258,7 +263,7 @@ "pqrstuvwxyz{|}~\x7f/"}, // Test un-UTF-8-ization. {"%e4%bd%a0%e5%a5%bd", "\xe4\xbd\xa0\xe5\xa5\xbd"}, - }; + }); for (size_t i = 0; i < std::size(decode_cases); i++) { String input(decode_cases[i].input); @@ -291,7 +296,8 @@ struct EncodeCase { const char* input; const char* output; - } encode_cases[] = { + }; + auto encode_cases = std::to_array<EncodeCase>({ {"hello, world", "hello%2C%20world"}, {"\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0A\x0B\x0C\x0D\x0E\x0F", "%01%02%03%04%05%06%07%08%09%0A%0B%0C%0D%0E%0F"}, @@ -303,7 +309,7 @@ {"PQRSTUVWXYZ[\\]^_", "PQRSTUVWXYZ%5B%5C%5D%5E_"}, {"`abcdefghijklmno", "%60abcdefghijklmno"}, {"pqrstuvwxyz{|}~\x7f", "pqrstuvwxyz%7B%7C%7D~%7F"}, - }; + }); for (size_t i = 0; i < std::size(encode_cases); i++) { String input(encode_cases[i].input);
diff --git a/third_party/blink/renderer/platform/weborigin/security_origin_test.cc b/third_party/blink/renderer/platform/weborigin/security_origin_test.cc index dc658f9..2dee0f2 100644 --- a/third_party/blink/renderer/platform/weborigin/security_origin_test.cc +++ b/third_party/blink/renderer/platform/weborigin/security_origin_test.cc
@@ -37,6 +37,7 @@ #include <stdint.h> +#include <array> #include <string_view> #include "base/test/scoped_command_line.h" @@ -80,7 +81,7 @@ }; TEST_F(SecurityOriginTest, ValidPortsCreateTupleOrigins) { - uint16_t ports[] = {0, 80, 443, 5000, kMaxAllowedPort}; + auto ports = std::to_array<uint16_t>({0, 80, 443, 5000, kMaxAllowedPort}); for (size_t i = 0; i < std::size(ports); ++i) { scoped_refptr<const SecurityOrigin> origin = @@ -127,12 +128,12 @@ const char* origin2; }; - TestCase tests[] = { + auto tests = std::to_array<TestCase>({ {true, "https://foobar.com", "https://foobar.com"}, {false, "https://foobar.com", "https://bazbar.com"}, {true, "file://localhost/", "file://localhost/"}, {false, "file:///", "file://localhost/"}, - }; + }); for (size_t i = 0; i < std::size(tests); ++i) { scoped_refptr<const SecurityOrigin> origin1 = @@ -236,10 +237,10 @@ const char* url; }; - TestCase tests[] = { + auto tests = std::to_array<TestCase>({ {true, "https://foobar.com", "https://foobar.com"}, {false, "https://foobar.com", "https://bazbar.com"}, - }; + }); for (size_t i = 0; i < std::size(tests); ++i) { scoped_refptr<const SecurityOrigin> origin =
diff --git a/third_party/blink/renderer/platform/webrtc/peer_connection_remote_audio_source.cc b/third_party/blink/renderer/platform/webrtc/peer_connection_remote_audio_source.cc index 5e5e4270..cb5d14e 100644 --- a/third_party/blink/renderer/platform/webrtc/peer_connection_remote_audio_source.cc +++ b/third_party/blink/renderer/platform/webrtc/peer_connection_remote_audio_source.cc
@@ -61,14 +61,12 @@ "PCRAT::SetEnabled([id=%s] {enabled=%s})", track_interface_->id().c_str(), (enabled ? "true" : "false"))); - // This affects the shared state of the source for whether or not it's a part - // of the mixed audio that's rendered for remote tracks from WebRTC. - // All tracks from the same source will share this state and thus can step - // on each other's toes. - // This is also why we can't check the enabled state for equality with - // |enabled| before setting the mixing enabled state. This track's enabled - // state and the shared state might not be the same. - track_interface_->set_enabled(enabled); + // TODO(crbug.com/40849402): AudioTrackInterface::set_enabled() is not called + // because doing so would set the volume to 0 for the source level in the + // receiving audio in the WebRTC side. + // For now, we skip calling AudioTrackInterface::set_enabled() to avoid these + // issues. We need to monitor this approach to ensure that skipping + // set_enabled() does not introduce regressions. MediaStreamAudioTrack::SetEnabled(enabled); }
diff --git a/third_party/blink/renderer/platform/widget/input/elastic_overscroll_controller_bezier_unittest.cc b/third_party/blink/renderer/platform/widget/input/elastic_overscroll_controller_bezier_unittest.cc index dd67972..2081aeb 100644 --- a/third_party/blink/renderer/platform/widget/input/elastic_overscroll_controller_bezier_unittest.cc +++ b/third_party/blink/renderer/platform/widget/input/elastic_overscroll_controller_bezier_unittest.cc
@@ -2,13 +2,10 @@ // 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/widget/input/elastic_overscroll_controller_bezier.h" +#include <array> + #include "build/build_config.h" #include "cc/input/input_handler.h" #include "testing/gtest/include/gtest/gtest.h" @@ -294,9 +291,10 @@ SendGestureScrollEnd(now); const int TOTAL_FRAMES = 28; - const int stretch_amount_y[TOTAL_FRAMES] = { + const std::array<int, TOTAL_FRAMES> stretch_amount_y = { -19, -41, -55, -65, -72, -78, -82, -85, -88, -89, -78, -64, -53, -44, - -37, -30, -25, -20, -16, -13, -10, -7, -5, -4, -2, -1, -1, 0}; + -37, -30, -25, -20, -16, -13, -10, -7, -5, -4, -2, -1, -1, 0, + }; for (int i = 0; i < TOTAL_FRAMES; i++) { controller_.Animate(now + base::Milliseconds(i * 16)); @@ -313,9 +311,10 @@ controller_.scroll_velocity_ = gfx::Vector2dF(-3000.f, 0.f); SendGestureScrollEnd(now); - const int stretch_amount_x[TOTAL_FRAMES] = { + const std::array<int, TOTAL_FRAMES> stretch_amount_x = { -9, -24, -34, -42, -48, -54, -58, -62, -66, -69, -62, -52, -43, -36, - -30, -25, -20, -17, -13, -10, -8, -6, -4, -3, -2, -1, 0, 0}; + -30, -25, -20, -17, -13, -10, -8, -6, -4, -3, -2, -1, 0, 0, + }; for (int i = 0; i < TOTAL_FRAMES; i++) { controller_.Animate(now + base::Milliseconds(i * 16));
diff --git a/third_party/blink/renderer/platform/widget/input/input_handler_proxy.cc b/third_party/blink/renderer/platform/widget/input/input_handler_proxy.cc index c58f516..61033c9e 100644 --- a/third_party/blink/renderer/platform/widget/input/input_handler_proxy.cc +++ b/third_party/blink/renderer/platform/widget/input/input_handler_proxy.cc
@@ -518,12 +518,26 @@ current_overscroll_params_.reset(); - WebInputEventAttribution attribution = - PerformEventAttribution(event_with_callback->event()); InputHandlerProxy::EventDisposition disposition = - RouteToTypeSpecificHandler(event_with_callback.get(), attribution); + RouteToTypeSpecificHandler(event_with_callback.get()); const WebInputEvent& event = event_with_callback->event(); + WebInputEventAttribution attribution; + switch (disposition) { + case DID_NOT_HANDLE: + case DID_NOT_HANDLE_NON_BLOCKING: + case DID_NOT_HANDLE_NON_BLOCKING_DUE_TO_FLING: + attribution = PerformEventAttribution(event); + break; + default: + if (!::features::IsCCSlimmingEnabled()) { + // With CC Slimming enabled, we skip attribution since they are not + // sent to the main thread. + attribution = PerformEventAttribution(event); + } + break; + } + const WebGestureEvent::Type type = event.GetType(); switch (type) { case WebGestureEvent::Type::kGestureScrollBegin: @@ -748,8 +762,7 @@ InputHandlerProxy::EventDisposition InputHandlerProxy::RouteToTypeSpecificHandler( - EventWithCallback* event_with_callback, - const WebInputEventAttribution& original_attribution) { + EventWithCallback* event_with_callback) { DCHECK(input_handler_); cc::EventsMetricsManager::ScopedMonitor::DoneCallback done_callback; @@ -789,7 +802,7 @@ case WebInputEvent::Type::kGestureScrollUpdate: return HandleGestureScrollUpdate( - static_cast<const WebGestureEvent&>(event), original_attribution, + static_cast<const WebGestureEvent&>(event), event_with_callback->metrics(), event_with_callback->latency_info().trace_id()); @@ -1138,7 +1151,6 @@ InputHandlerProxy::EventDisposition InputHandlerProxy::HandleGestureScrollUpdate( const WebGestureEvent& gesture_event, - const WebInputEventAttribution& original_attribution, cc::EventMetrics* metrics, int64_t trace_id) { TRACE_EVENT("input", "InputHandlerProxy::HandleGestureScrollUpdate",
diff --git a/third_party/blink/renderer/platform/widget/input/input_handler_proxy.h b/third_party/blink/renderer/platform/widget/input/input_handler_proxy.h index 692ed5c..08d97b3 100644 --- a/third_party/blink/renderer/platform/widget/input/input_handler_proxy.h +++ b/third_party/blink/renderer/platform/widget/input/input_handler_proxy.h
@@ -279,7 +279,6 @@ const blink::WebGestureEvent& event); EventDisposition HandleGestureScrollUpdate( const blink::WebGestureEvent& event, - const blink::WebInputEventAttribution& original_attribution, cc::EventMetrics* metrics, int64_t trace_id); EventDisposition HandleGestureScrollEnd(const blink::WebGestureEvent& event); @@ -327,8 +326,7 @@ cc::TouchAction* allowed_touch_action); EventDisposition RouteToTypeSpecificHandler( - EventWithCallback* event_with_callback, - const blink::WebInputEventAttribution& original_attribution); + EventWithCallback* event_with_callback); void set_event_attribution_enabled(bool enabled) { event_attribution_enabled_ = enabled;
diff --git a/third_party/blink/renderer/platform/widget/input/input_handler_proxy_unittest.cc b/third_party/blink/renderer/platform/widget/input/input_handler_proxy_unittest.cc index f535e1a..7fdda67 100644 --- a/third_party/blink/renderer/platform/widget/input/input_handler_proxy_unittest.cc +++ b/third_party/blink/renderer/platform/widget/input/input_handler_proxy_unittest.cc
@@ -1268,7 +1268,7 @@ // GSU]. EXPECT_CALL(mock_input_handler_, SetNeedsAnimateInput()); EXPECT_CALL(mock_input_handler_, FindFrameElementIdAtPoint(_)) - .Times(3) + .Times(::features::IsCCSlimmingEnabled() ? 1 : 3) .WillRepeatedly(testing::Return(cc::ElementId())); cc::InputHandlerPointerResult pointer_down_result; @@ -1340,9 +1340,11 @@ .WillOnce(Return(kImplThreadScrollState)); EXPECT_CALL(mock_input_handler_, RecordScrollBegin(_, _)).Times(1); EXPECT_CALL(mock_input_handler_, ScrollUpdate(_, _)).Times(1); - EXPECT_CALL(mock_input_handler_, FindFrameElementIdAtPoint(_)) - .Times(3) - .WillRepeatedly(testing::Return(cc::ElementId())); + if (!::features::IsCCSlimmingEnabled()) { + EXPECT_CALL(mock_input_handler_, FindFrameElementIdAtPoint(_)) + .Times(3) + .WillRepeatedly(testing::Return(cc::ElementId())); + } DeliverInputForBeginFrame(); Mock::VerifyAndClearExpectations(&mock_input_handler_); @@ -1350,7 +1352,7 @@ // Finally, a mouseup ends the scroll. EXPECT_CALL(mock_input_handler_, SetNeedsAnimateInput()); EXPECT_CALL(mock_input_handler_, FindFrameElementIdAtPoint(_)) - .Times(2) + .Times(::features::IsCCSlimmingEnabled() ? 1 : 2) .WillRepeatedly(testing::Return(cc::ElementId())); EXPECT_CALL(mock_input_handler_, MouseUp(_)) .WillOnce(testing::Return(pointer_up_result)); @@ -1379,9 +1381,11 @@ mock_input_handler_, RecordScrollBegin(_, ScrollBeginThreadState::kScrollingOnCompositor)) .Times(1); - EXPECT_CALL(mock_input_handler_, FindFrameElementIdAtPoint(_)) - .Times(1) - .WillOnce(testing::Return(cc::ElementId())); + if (!::features::IsCCSlimmingEnabled()) { + EXPECT_CALL(mock_input_handler_, FindFrameElementIdAtPoint(_)) + .Times(1) + .WillOnce(testing::Return(cc::ElementId())); + } HandleGestureEvent(WebInputEvent::Type::kGestureScrollBegin, delta); Mock::VerifyAndClearExpectations(&mock_input_handler_); @@ -1390,9 +1394,11 @@ // ScrollUpdate { EXPECT_CALL(mock_input_handler_, SetNeedsAnimateInput()).Times(1); - EXPECT_CALL(mock_input_handler_, FindFrameElementIdAtPoint(_)) - .Times(1) - .WillOnce(testing::Return(cc::ElementId())); + if (!::features::IsCCSlimmingEnabled()) { + EXPECT_CALL(mock_input_handler_, FindFrameElementIdAtPoint(_)) + .Times(1) + .WillOnce(testing::Return(cc::ElementId())); + } EXPECT_CALL(mock_input_handler_, ScrollUpdate(_, _)).Times(1); HandleGestureEvent(WebInputEvent::Type::kGestureScrollUpdate, delta); @@ -1408,7 +1414,7 @@ .WillOnce(Return(scroll_result_did_scroll)); EXPECT_CALL(mock_input_handler_, SetNeedsAnimateInput()).Times(1); EXPECT_CALL(mock_input_handler_, FindFrameElementIdAtPoint(_)) - .Times(2) + .Times(::features::IsCCSlimmingEnabled() ? 1 : 2) .WillRepeatedly(testing::Return(cc::ElementId())); EXPECT_CALL(mock_input_handler_, GetSnapFlingInfoAndSetAnimatingSnapTarget(_, _, _, _)) @@ -2399,9 +2405,11 @@ RecordScrollBegin(_, cc::ScrollBeginThreadState::kScrollingOnCompositor)) .Times(1); EXPECT_CALL(mock_input_handler_, SetNeedsAnimateInput()).Times(1); - EXPECT_CALL(mock_input_handler_, FindFrameElementIdAtPoint(_)) - .Times(1) - .WillOnce(testing::Return(cc::ElementId())); + if (!::features::IsCCSlimmingEnabled()) { + EXPECT_CALL(mock_input_handler_, FindFrameElementIdAtPoint(_)) + .Times(1) + .WillOnce(testing::Return(cc::ElementId())); + } HandleGestureEvent(WebInputEvent::Type::kGestureScrollBegin); @@ -2444,9 +2452,11 @@ _)) .WillOnce(testing::Return(scroll_result_did_scroll_)); EXPECT_CALL(mock_input_handler_, ScrollEnd(true)); - EXPECT_CALL(mock_input_handler_, FindFrameElementIdAtPoint(_)) - .Times(2) - .WillRepeatedly(testing::Return(cc::ElementId())); + if (!::features::IsCCSlimmingEnabled()) { + EXPECT_CALL(mock_input_handler_, FindFrameElementIdAtPoint(_)) + .Times(2) + .WillRepeatedly(testing::Return(cc::ElementId())); + } // Dispatch all queued events. EXPECT_CALL(mock_input_handler_, RecordScrollEnd(_)).Times(1); @@ -2490,9 +2500,11 @@ _)) .WillOnce(testing::Return(scroll_result_did_scroll_)); EXPECT_CALL(mock_input_handler_, SetNeedsAnimateInput()).Times(1); - EXPECT_CALL(mock_input_handler_, FindFrameElementIdAtPoint(_)) - .Times(2) - .WillRepeatedly(testing::Return(cc::ElementId())); + if (!::features::IsCCSlimmingEnabled()) { + EXPECT_CALL(mock_input_handler_, FindFrameElementIdAtPoint(_)) + .Times(2) + .WillRepeatedly(testing::Return(cc::ElementId())); + } HandleGestureEvent(WebInputEvent::Type::kGestureScrollBegin); HandleGestureEvent(WebInputEvent::Type::kGestureScrollUpdate, -20); @@ -2520,9 +2532,11 @@ .WillRepeatedly(testing::Return(scroll_result_did_scroll_)); EXPECT_CALL(mock_input_handler_, ScrollEnd(true)).Times(2); EXPECT_CALL(mock_input_handler_, SetNeedsAnimateInput()).Times(1); - EXPECT_CALL(mock_input_handler_, FindFrameElementIdAtPoint(_)) - .Times(8) - .WillRepeatedly(testing::Return(cc::ElementId())); + if (!::features::IsCCSlimmingEnabled()) { + EXPECT_CALL(mock_input_handler_, FindFrameElementIdAtPoint(_)) + .Times(8) + .WillRepeatedly(testing::Return(cc::ElementId())); + } EXPECT_CALL(mock_input_handler_, PinchGestureBegin(_, _)); // Two |GesturePinchUpdate| will be coalesced. EXPECT_CALL(mock_input_handler_, @@ -2567,9 +2581,11 @@ RecordScrollBegin(_, cc::ScrollBeginThreadState::kScrollingOnCompositor)) .Times(1); EXPECT_CALL(mock_input_handler_, SetNeedsAnimateInput()).Times(1); - EXPECT_CALL(mock_input_handler_, FindFrameElementIdAtPoint(_)) - .Times(3) - .WillRepeatedly(testing::Return(cc::ElementId())); + if (!::features::IsCCSlimmingEnabled()) { + EXPECT_CALL(mock_input_handler_, FindFrameElementIdAtPoint(_)) + .Times(3) + .WillRepeatedly(testing::Return(cc::ElementId())); + } EXPECT_CALL( mock_input_handler_, ScrollUpdate(testing::Property(&cc::ScrollState::delta_y, testing::Gt(0)), @@ -2605,9 +2621,11 @@ RecordScrollBegin(_, cc::ScrollBeginThreadState::kScrollingOnCompositor)) .Times(1); EXPECT_CALL(mock_input_handler_, SetNeedsAnimateInput()).Times(1); - EXPECT_CALL(mock_input_handler_, FindFrameElementIdAtPoint(_)) - .Times(1) - .WillOnce(testing::Return(cc::ElementId())); + if (!::features::IsCCSlimmingEnabled()) { + EXPECT_CALL(mock_input_handler_, FindFrameElementIdAtPoint(_)) + .Times(1) + .WillOnce(testing::Return(cc::ElementId())); + } // GSUs and GPUs in one sequence should be coalesced into 1 GSU and 1 GPU. HandleGestureEvent(WebInputEvent::Type::kGestureScrollBegin); @@ -2669,9 +2687,11 @@ TEST_F(InputHandlerProxyEventQueueTest, VSyncAlignedCoalesceTouchpadPinch) { EXPECT_CALL(mock_input_handler_, PinchGestureBegin(_, _)); EXPECT_CALL(mock_input_handler_, SetNeedsAnimateInput()); - EXPECT_CALL(mock_input_handler_, FindFrameElementIdAtPoint(_)) - .Times(1) - .WillOnce(testing::Return(cc::ElementId())); + if (!::features::IsCCSlimmingEnabled()) { + EXPECT_CALL(mock_input_handler_, FindFrameElementIdAtPoint(_)) + .Times(1) + .WillOnce(testing::Return(cc::ElementId())); + } HandleGestureEventWithSourceDevice(WebInputEvent::Type::kGesturePinchBegin, WebGestureDevice::kTouchpad); @@ -2714,9 +2734,11 @@ .Times(2); EXPECT_CALL(mock_input_handler_, SetNeedsAnimateInput()) .Times(::testing::AtLeast(1)); - EXPECT_CALL(mock_input_handler_, FindFrameElementIdAtPoint(_)) - .Times(9) - .WillRepeatedly(testing::Return(cc::ElementId())); + if (!::features::IsCCSlimmingEnabled()) { + EXPECT_CALL(mock_input_handler_, FindFrameElementIdAtPoint(_)) + .Times(9) + .WillRepeatedly(testing::Return(cc::ElementId())); + } EXPECT_CALL( mock_input_handler_, ScrollUpdate(testing::Property(&cc::ScrollState::delta_y, testing::Gt(0)), @@ -2811,9 +2833,11 @@ .WillRepeatedly(testing::Return(scroll_result_did_scroll_)); EXPECT_CALL(mock_input_handler_, ScrollEnd(true)) .Times(::testing::AtLeast(1)); - EXPECT_CALL(mock_input_handler_, FindFrameElementIdAtPoint(_)) - .Times(2) - .WillRepeatedly(testing::Return(cc::ElementId())); + if (!::features::IsCCSlimmingEnabled()) { + EXPECT_CALL(mock_input_handler_, FindFrameElementIdAtPoint(_)) + .Times(2) + .WillRepeatedly(testing::Return(cc::ElementId())); + } // Simulate scroll. HandleGestureEventWithSourceDevice(WebInputEvent::Type::kGestureScrollBegin, @@ -2830,9 +2854,11 @@ // wheel event source. EXPECT_CALL(mock_input_handler_, SetNeedsAnimateInput()) .Times(::testing::AtLeast(1)); - EXPECT_CALL(mock_input_handler_, FindFrameElementIdAtPoint(_)) - .Times(4) - .WillRepeatedly(testing::Return(cc::ElementId())); + if (!::features::IsCCSlimmingEnabled()) { + EXPECT_CALL(mock_input_handler_, FindFrameElementIdAtPoint(_)) + .Times(4) + .WillRepeatedly(testing::Return(cc::ElementId())); + } HandleGestureEventWithSourceDevice(WebInputEvent::Type::kGestureScrollUpdate, WebGestureDevice::kTouchpad, -20); EXPECT_EQ(1ul, event_queue().size()); @@ -2876,9 +2902,11 @@ RecordScrollBegin(_, cc::ScrollBeginThreadState::kScrollingOnCompositor)) .Times(1); EXPECT_CALL(mock_input_handler_, SetNeedsAnimateInput()).Times(1); - EXPECT_CALL(mock_input_handler_, FindFrameElementIdAtPoint(_)) - .Times(3) - .WillRepeatedly(testing::Return(cc::ElementId())); + if (!::features::IsCCSlimmingEnabled()) { + EXPECT_CALL(mock_input_handler_, FindFrameElementIdAtPoint(_)) + .Times(3) + .WillRepeatedly(testing::Return(cc::ElementId())); + } EXPECT_CALL( mock_input_handler_, ScrollUpdate(testing::Property(&cc::ScrollState::delta_y, testing::Gt(0)), @@ -2919,9 +2947,11 @@ RecordScrollBegin(_, cc::ScrollBeginThreadState::kScrollingOnCompositor)) .Times(1); EXPECT_CALL(mock_input_handler_, SetNeedsAnimateInput()).Times(2); - EXPECT_CALL(mock_input_handler_, FindFrameElementIdAtPoint(_)) - .Times(2) - .WillRepeatedly(testing::Return(cc::ElementId())); + if (!::features::IsCCSlimmingEnabled()) { + EXPECT_CALL(mock_input_handler_, FindFrameElementIdAtPoint(_)) + .Times(2) + .WillRepeatedly(testing::Return(cc::ElementId())); + } EXPECT_CALL( mock_input_handler_, ScrollUpdate(testing::Property(&cc::ScrollState::delta_y, testing::Gt(0)), @@ -2949,9 +2979,11 @@ // Predictor has been reset after a new GSB. EXPECT_CALL(mock_input_handler_, SetNeedsAnimateInput()).Times(1); - EXPECT_CALL(mock_input_handler_, FindFrameElementIdAtPoint(_)) - .Times(2) - .WillRepeatedly(testing::Return(cc::ElementId())); + if (!::features::IsCCSlimmingEnabled()) { + EXPECT_CALL(mock_input_handler_, FindFrameElementIdAtPoint(_)) + .Times(2) + .WillRepeatedly(testing::Return(cc::ElementId())); + } EXPECT_CALL(mock_input_handler_, ScrollBegin(_, _)) .WillOnce(testing::Return(kImplThreadScrollState)); EXPECT_CALL(mock_input_handler_, ScrollEnd(_)).Times(1); @@ -2982,9 +3014,11 @@ RecordScrollBegin(_, cc::ScrollBeginThreadState::kScrollingOnCompositor)) .Times(1); EXPECT_CALL(mock_input_handler_, SetNeedsAnimateInput()).Times(2); - EXPECT_CALL(mock_input_handler_, FindFrameElementIdAtPoint(_)) - .Times(3) - .WillRepeatedly(testing::Return(cc::ElementId())); + if (!::features::IsCCSlimmingEnabled()) { + EXPECT_CALL(mock_input_handler_, FindFrameElementIdAtPoint(_)) + .Times(3) + .WillRepeatedly(testing::Return(cc::ElementId())); + } EXPECT_CALL( mock_input_handler_, ScrollUpdate(testing::Property(&cc::ScrollState::delta_y, testing::Gt(0)), @@ -3122,7 +3156,9 @@ RecordScrollBegin(ui::ScrollInputType::kTouchscreen, cc::ScrollBeginThreadState::kScrollingOnCompositor)) .Times(1); - EXPECT_CALL(mock_input_handler_, FindFrameElementIdAtPoint(_)).Times(1); + if (!::features::IsCCSlimmingEnabled()) { + EXPECT_CALL(mock_input_handler_, FindFrameElementIdAtPoint(_)).Times(1); + } HandleGestureEventWithSourceDevice(WebInputEvent::Type::kGestureScrollBegin, WebGestureDevice::kTouchscreen); EXPECT_EQ(0ul, event_queue().size()); @@ -3133,7 +3169,9 @@ // any incoming scroll event immediately. As long as it is before the // deadline. DeliverInputForBeginFrame(tick_clock.NowTicks()); - EXPECT_CALL(mock_input_handler_, FindFrameElementIdAtPoint(_)).Times(1); + if (!::features::IsCCSlimmingEnabled()) { + EXPECT_CALL(mock_input_handler_, FindFrameElementIdAtPoint(_)).Times(1); + } EXPECT_CALL(mock_input_handler_, ScrollUpdate).Times(1); HandleGestureEventWithSourceDevice(WebInputEvent::Type::kGestureScrollUpdate, WebGestureDevice::kTouchscreen, -20); @@ -3166,7 +3204,9 @@ testing::Mock::VerifyAndClearExpectations(&mock_input_handler_); // When a regular BeginFrame arrives we resume processing the queue. - EXPECT_CALL(mock_input_handler_, FindFrameElementIdAtPoint(_)).Times(1); + if (!::features::IsCCSlimmingEnabled()) { + EXPECT_CALL(mock_input_handler_, FindFrameElementIdAtPoint(_)).Times(1); + } EXPECT_CALL(mock_input_handler_, ScrollUpdate); DeliverInputForBeginFrame(tick_clock.NowTicks()); EXPECT_EQ(0ul, event_queue().size());
diff --git a/third_party/blink/renderer/platform/wtf/shared_buffer_test.cc b/third_party/blink/renderer/platform/wtf/shared_buffer_test.cc index cebf72565..dfa25115 100644 --- a/third_party/blink/renderer/platform/wtf/shared_buffer_test.cc +++ b/third_party/blink/renderer/platform/wtf/shared_buffer_test.cc
@@ -36,6 +36,7 @@ #include "third_party/blink/renderer/platform/wtf/shared_buffer.h" #include <algorithm> +#include <array> #include <cstdlib> #include <memory> @@ -260,9 +261,14 @@ EXPECT_EQ(0, memcmp(it299->data(), data.data() + 299, it299->size())); // All of the iterators above are different each other. - const SharedBuffer::Iterator iters[] = { - it0, it1, it126, it127, it128, it299, - }; + const auto iters = std::to_array<SharedBuffer::Iterator>({ + it0, + it1, + it126, + it127, + it128, + it299, + }); for (size_t i = 0; i < std::size(iters); ++i) { for (size_t j = 0; j < std::size(iters); ++j) { EXPECT_EQ(i == j, iters[i] == iters[j]);
diff --git a/third_party/blink/tools/blinkpy/wpt_tests/wpt_adapter.py b/third_party/blink/tools/blinkpy/wpt_tests/wpt_adapter.py index 6618808..942e6a74 100644 --- a/third_party/blink/tools/blinkpy/wpt_tests/wpt_adapter.py +++ b/third_party/blink/tools/blinkpy/wpt_tests/wpt_adapter.py
@@ -564,6 +564,7 @@ logger.info('Setting environment variable %s to %s', name, value) os.environ[name] = value + os.environ['FONTCONFIG_SYSROOT'] = self.port.build_path() if self.using_upstream_wpt: tests_root = self.tools_root
diff --git a/third_party/blink/web_tests/NeverFixTests b/third_party/blink/web_tests/NeverFixTests index 5296407..275f4fb 100644 --- a/third_party/blink/web_tests/NeverFixTests +++ b/third_party/blink/web_tests/NeverFixTests
@@ -2232,3 +2232,8 @@ # These html5lib parser tests always time out. html5lib/generated/run-foreign-fragment-data.html [ Skip ] html5lib/generated/run-foreign-fragment-write.html [ Skip ] + +# View Transition tests are slow due to the fact that they create a compositor and wait for Viz screencaps. +[ Debug ] external/wpt/css/css-view-transitions/* [ Skip ] +[ Debug ] virtual/view-transition-mpa-serialization/external/wpt/css/css-view-transitions/* [ Skip ] +[ Debug ] virtual/view-transition-wide-gamut/external/wpt/css/css-view-transitions/* [ Skip ]
diff --git a/third_party/blink/web_tests/TestExpectations b/third_party/blink/web_tests/TestExpectations index a085679..4734abb 100644 --- a/third_party/blink/web_tests/TestExpectations +++ b/third_party/blink/web_tests/TestExpectations
@@ -854,6 +854,10 @@ crbug.com/357649027 external/wpt/css/css-sizing/range-percent-intrinsic-size-2.html [ Failure ] crbug.com/357649027 external/wpt/css/css-sizing/range-percent-intrinsic-size-2a.html [ Failure ] +# Stretch + margin collapsing +crbug.com/41253915 external/wpt/css/css-sizing/stretch/block-height-003.tentative.html [ Failure ] +crbug.com/41253915 external/wpt/css/css-sizing/stretch/block-height-006.tentative.html [ Failure ] + ##### This one passes only when it includes an iframe. Removing the iframe makes the test fail. crbug.com/327723279 external/wpt/css/css-sizing/contain-intrinsic-size/contain-intrinsic-size-033.html [ Failure ] @@ -2805,9 +2809,6 @@ crbug.com/379768238 [ Win10.20h2 ] external/wpt/signed-exchange/reporting/sxg-reporting-navigation-invalid_integrity_header.tentative.html [ Crash Timeout ] crbug.com/379768238 [ Win10.20h2 ] external/wpt/signed-exchange/reporting/sxg-reporting-prefetch-parse_error.tentative.html [ Crash Timeout ] crbug.com/379779804 [ Mac13 ] external/wpt/webrtc/RTCPeerConnection-removeTrack.https.html [ Timeout ] -crbug.com/379519393 [ Mac13 ] virtual/view-transition-mpa-serialization/external/wpt/css/css-view-transitions/nothing-captured.html [ Failure ] -crbug.com/379519393 [ Mac14 ] virtual/view-transition-mpa-serialization/external/wpt/css/css-view-transitions/nothing-captured.html [ Failure ] -crbug.com/379519393 [ Mac15 ] virtual/view-transition-mpa-serialization/external/wpt/css/css-view-transitions/nothing-captured.html [ Failure ] crbug.com/379418921 [ Mac15 ] external/wpt/webrtc/RTCPeerConnection-setRemoteDescription-answer.html [ Timeout ] crbug.com/379418921 [ Mac15 ] external/wpt/webrtc/RTCPeerConnection-setRemoteDescription.html [ Timeout ] crbug.com/379418921 [ Mac15 ] external/wpt/webrtc/RTCRtpParameters-rtcp.html [ Timeout ] @@ -2884,7 +2885,6 @@ crbug.com/378408473 [ Mac15 ] external/wpt/webrtc/RTCPeerConnection-restartIce-onnegotiationneeded.https.html [ Timeout ] crbug.com/378408473 [ Mac14 ] external/wpt/webrtc/legacy/RTCPeerConnection-createOffer-offerToReceive.html [ Timeout ] crbug.com/377971732 [ Mac11 ] virtual/gpu-rasterization/external/wpt/css/css-images/object-view-box-negative-bounds.html [ Failure ] -crbug.com/378231214 [ Mac12 ] virtual/view-transition-wide-gamut/external/wpt/css/css-view-transitions/nothing-captured.html [ Failure ] crbug.com/378014590 [ Mac11 ] external/wpt/mediacapture-streams/BrowserCaptureMediaStreamTrack-restrictTo.https.html [ Timeout ] crbug.com/378158966 [ Mac13 ] external/wpt/webcodecs/per-frame-qp-encoding.https.any.html?vp9_p2 [ Timeout ] crbug.com/378158966 [ Mac14 ] external/wpt/webcodecs/per-frame-qp-encoding.https.any.html?vp9_p2 [ Timeout ]
diff --git a/third_party/blink/web_tests/accessibility/element-role-mapping-normal-expected.txt b/third_party/blink/web_tests/accessibility/element-role-mapping-normal-expected.txt index f8a3670..5b7f7cb 100644 --- a/third_party/blink/web_tests/accessibility/element-role-mapping-normal-expected.txt +++ b/third_party/blink/web_tests/accessibility/element-role-mapping-normal-expected.txt
@@ -81,13 +81,13 @@ AXRole: AXRubyAnnotation "한êµ" AXRole: AXStaticText "한êµ" AXRole: AXDescriptionList - AXRole: AXTerm + AXRole: AXTerm "Coffee" AXRole: AXStaticText "Coffee" AXRole: AXInlineTextBox "Coffee" AXRole: AXDefinition AXRole: AXStaticText "- black hot drink" AXRole: AXInlineTextBox "- black hot drink" - AXRole: AXTerm + AXRole: AXTerm "Milk" AXRole: AXStaticText "Milk" AXRole: AXInlineTextBox "Milk" AXRole: AXDefinition
diff --git a/third_party/blink/web_tests/accessibility/first-letter-text-transform-causes-crash-expected.txt b/third_party/blink/web_tests/accessibility/first-letter-text-transform-causes-crash-expected.txt index 98bd7c0..5e80cc8a 100644 --- a/third_party/blink/web_tests/accessibility/first-letter-text-transform-causes-crash-expected.txt +++ b/third_party/blink/web_tests/accessibility/first-letter-text-transform-causes-crash-expected.txt
@@ -5,7 +5,7 @@ On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE". AXRole: AXGenericContainer - AXRole: AXTerm + AXRole: AXTerm "Dt" AXRole: AXStaticText "Dt" AXRole: AXInlineTextBox "Dt"
diff --git a/third_party/blink/web_tests/external/WPT_BASE_MANIFEST_8.json b/third_party/blink/web_tests/external/WPT_BASE_MANIFEST_8.json index 50a20e2..5e68863 100644 --- a/third_party/blink/web_tests/external/WPT_BASE_MANIFEST_8.json +++ b/third_party/blink/web_tests/external/WPT_BASE_MANIFEST_8.json
@@ -4452,6 +4452,13 @@ ] ] }, + "ruby-body-element-crash.html": [ + "c1487ab6162935bf433fd36752142445e2b2d054", + [ + null, + {} + ] + ], "ruby-dynamic-removal-004-crash.html": [ "be7c28956f6d1b16e734ff34feef5ae3d2648157", [ @@ -311496,7 +311503,7 @@ [] ], "report-clips-sample.https-expected.txt": [ - "da386120c5c5c00eca30a857a7b78780b21af577", + "a0b36164a1925dc3b0ff60e41813819cfe7fabc6", [] ], "report-cross-origin-no-cookies.sub.html.sub.headers": [ @@ -338467,6 +338474,12 @@ "a037967e493fa5eba3914db3c8f38914ee1d8729", [] ], + "parsing": { + "grid-template-shorthand-composition-expected.txt": [ + "f2f959a7933c5811850868f5af02ca49b7275bfb", + [] + ] + }, "reference": { "anonymous-grid-items-001-ref.html": [ "20302c2f1aa48e45b0698ed42bca866cf8f6a58e", @@ -349420,7 +349433,7 @@ [] ], "keyword-sizes-on-replaced-element-expected.txt": [ - "0ac58540b78fb9c61a125654f3bd691adc3ee7ff", + "b113ea4f2e2cdb5aef18942b22cbb83e05188194", [] ], "max-content-input-001-ref.html": [ @@ -407728,7 +407741,7 @@ [] ], "about-blank-replacement.https-expected.txt": [ - "dff712091d7e4d2a7eea6cbd1f354fad1db29871", + "329f457fa2222f17c030be4aa02bb826a36f49a7", [] ], "clients-matchall-client-types.https-expected.txt": [ @@ -459945,7 +459958,7 @@ ] ], "report-clips-sample.https.html": [ - "ae9e380bc2d142b95affcad0a63bf6dd1b466d15", + "fe6b457fc7b40fab610dbbd5655025fb53380e9f", [ null, {} @@ -471139,7 +471152,7 @@ ] ], "scope-nesting.html": [ - "2811bb4635d65fe4d6f2e6b181ae663a481ddd38", + "146a3f4ae2892d86d8964aa8d4110f9035d296a9", [ null, {} @@ -481240,7 +481253,7 @@ ] ], "grid-template-shorthand-composition.html": [ - "781410d51536ec2f6ebeca1315f03519f1967b88", + "2c19f737fdc6e50f77f1972cb8a9eb5623ee3004", [ null, {} @@ -486391,6 +486404,13 @@ {} ] ], + "highlight-cascade-010.html": [ + "bbfcffb16aa28091d063048a9b7c609fd1ec5409", + [ + null, + {} + ] + ], "highlight-currentcolor-computed-inheritance.html": [ "90bfc526227d9fb5f74298940c585078ca931257", [ @@ -490790,7 +490810,7 @@ ] ], "keyword-sizes-on-replaced-element.html": [ - "e26c1b7d6ac38858fd7a941a690ea01e6005c38c", + "8863ef491570c4d194bbb4b1d03a6e12367d4ff3", [ null, {} @@ -513353,7 +513373,7 @@ "moveBefore": { "tentative": { "Node-moveBefore.html": [ - "22586d169c0ba211deafa5a1b510bdbcab567803", + "732314d085baa898db8393276e632d24c7787296", [ null, {} @@ -513837,7 +513857,7 @@ ] ], "observable-reduce.any.js": [ - "7c54aa1e8ff9d80e27562fbfae19bc57b9f4a8ca", + "ec30f8bcf428df062bbc0e4bfd6023d30f1dbe42", [ "dom/observable/tentative/observable-reduce.any.html", {}
diff --git a/third_party/blink/web_tests/external/wpt/content-security-policy/reporting/report-clips-sample.https-expected.txt b/third_party/blink/web_tests/external/wpt/content-security-policy/reporting/report-clips-sample.https-expected.txt index da38612..a0b3616 100644 --- a/third_party/blink/web_tests/external/wpt/content-security-policy/reporting/report-clips-sample.https-expected.txt +++ b/third_party/blink/web_tests/external/wpt/content-security-policy/reporting/report-clips-sample.https-expected.txt
@@ -1,10 +1,8 @@ This is a testharness.js-based test. -[FAIL] Function constructor - the other kind of eval - is clipped. - assert_equals: expected "Function|(a,b\\n) {\\nreturn return '1234567890123456" but got "Function|(a,b\\n) {\\nreturn '12345678901234567890123" [FAIL] Async Function constructor is also clipped. - assert_equals: expected "Function|(a,b\\n) {\\nreturn return '1234567890123456" but got "eval|(async function anonymous(a,b\\n) {\\nreturn" + assert_equals: expected "Function|(a,b\\n) {\\nreturn '12345678901234567890123" but got "eval|(async function anonymous(a,b\\n) {\\nreturn" [FAIL] Generator Function constructor is also clipped. - assert_equals: expected "Function|(a,b\\n) {\\nreturn return '1234567890123456" but got "eval|(function* anonymous(a,b\\n) {\\nreturn '123" + assert_equals: expected "Function|(a,b\\n) {\\nreturn '12345678901234567890123" but got "eval|(function* anonymous(a,b\\n) {\\nreturn '123" [FAIL] AsyncGenerator Function constructor is also clipped. - assert_equals: expected "Function|(a,b\\n) {\\nreturn return '1234567890123456" but got "eval|(async function* anonymous(a,b\\n) {\\nretur" + assert_equals: expected "Function|(a,b\\n) {\\nreturn '12345678901234567890123" but got "eval|(async function* anonymous(a,b\\n) {\\nretur" Harness: the test ran to completion.
diff --git a/third_party/blink/web_tests/external/wpt/content-security-policy/reporting/report-clips-sample.https.html b/third_party/blink/web_tests/external/wpt/content-security-policy/reporting/report-clips-sample.https.html index ae9e380..fe6b457 100644 --- a/third_party/blink/web_tests/external/wpt/content-security-policy/reporting/report-clips-sample.https.html +++ b/third_party/blink/web_tests/external/wpt/content-security-policy/reporting/report-clips-sample.https.html
@@ -35,7 +35,7 @@ }, `Unsafe indirect eval violation sample is clipped to ${trimmedSampleLength} characters.`); const functionBody = "return '1234567890123456789012345678901234567890';"; - const sampleWithoutFunctionPrefix = `(a,b\n) {\nreturn ${functionBody}\n}`; + const sampleWithoutFunctionPrefix = `(a,b\n) {\n${functionBody}\n}`; promise_test(t => { assert_throws_js(EvalError, _ => {
diff --git a/third_party/blink/web_tests/external/wpt/css/css-grid/parsing/grid-template-shorthand-composition-expected.txt b/third_party/blink/web_tests/external/wpt/css/css-grid/parsing/grid-template-shorthand-composition-expected.txt new file mode 100644 index 0000000..f2f959a --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-grid/parsing/grid-template-shorthand-composition-expected.txt
@@ -0,0 +1,10 @@ +This is a testharness.js-based test. +[FAIL] grid-template-rows: auto, grid-template-columns: auto, and "grid-template-areas: "a a a" "b b b";" should be valid. + assert_equals: expected "" but got "\\"a a a\\" \\"b b b\\" / auto" +[FAIL] grid-template-rows: auto, grid-template-columns: auto auto, and "grid-template-areas: "a a a" "b b b";" should be valid. + assert_equals: expected "" but got "\\"a a a\\" \\"b b b\\" / auto auto" +[FAIL] grid-template-rows: min-content, grid-template-columns: min-content, and "grid-template-areas: "a a a" "b b b" "c c c" "d d d";" should be valid. + assert_equals: expected "" but got "\\"a a a\\" min-content \\"b b b\\" \\"c c c\\" \\"d d d\\" / min-content" +[FAIL] grid-template-rows: min-content, grid-template-columns: min-content auto auto auto, and "grid-template-areas: "a a a" "b b b" "c c c" "d d d";" should be valid. + assert_equals: expected "" but got "\\"a a a\\" min-content \\"b b b\\" \\"c c c\\" \\"d d d\\" / min-content auto auto auto" +Harness: the test ran to completion.
diff --git a/third_party/blink/web_tests/external/wpt/css/css-grid/parsing/grid-template-shorthand-composition.html b/third_party/blink/web_tests/external/wpt/css/css-grid/parsing/grid-template-shorthand-composition.html index 781410d..2c19f73 100644 --- a/third_party/blink/web_tests/external/wpt/css/css-grid/parsing/grid-template-shorthand-composition.html +++ b/third_party/blink/web_tests/external/wpt/css/css-grid/parsing/grid-template-shorthand-composition.html
@@ -31,9 +31,60 @@ testValidGridTemplate("auto", "auto", "none", "auto / auto"); // `[ <line-names>? <string> <track-size>? <line-names>? ]+ [ / <explicit-track-list> ]?` -testValidGridTemplate("[header-top] auto [header-bottom main-top] 1fr [main-bottom]", "auto 1fr auto", "\"a a a\" \"b b b\"", "[header-top] \"a a a\" [header-bottom main-top] \"b b b\" 1fr [main-bottom] / auto 1fr auto"); -testValidGridTemplate("auto", "auto", "\"a a a\" \"b b b\"", "\"a a a\" \"b b b\" / auto"); -testValidGridTemplate("min-content", "min-content", "\"a a a\" \"b b b\" \"c c c\" \"d d d\"", "\"a a a\" min-content \"b b b\" \"c c c\" \"d d d\" / min-content"); +testValidGridTemplate( + "[header-top] auto [header-bottom main-top] 1fr [main-bottom]", + "auto 1fr auto", + '"a a a" "b b b"', + '[header-top] "a a a" [header-bottom main-top] "b b b" 1fr [main-bottom] / auto 1fr auto', +); +testValidGridTemplate( + "auto", + "auto", + '"a a a" "b b b"', + "", +); +testValidGridTemplate( + "auto", + "auto auto", + '"a a a" "b b b"', + "", +); +testValidGridTemplate( + "auto auto", + "auto", + '"a a a" "b b b"', + '"a a a" "b b b" / auto', +); +testValidGridTemplate( + "auto auto", + "auto auto", + '"a a a" "b b b"', + '"a a a" "b b b" / auto auto', +); +testValidGridTemplate( + "min-content", + "min-content", + '"a a a" "b b b" "c c c" "d d d"', + "", +); +testValidGridTemplate( + "min-content", + "min-content auto auto auto", + '"a a a" "b b b" "c c c" "d d d"', + "", +); +testValidGridTemplate( + "min-content auto auto auto", + "min-content", + '"a a a" "b b b" "c c c" "d d d"', + '"a a a" min-content "b b b" "c c c" "d d d" / min-content', +); +testValidGridTemplate( + "min-content auto auto auto", + "min-content auto auto auto", + '"a a a" "b b b" "c c c" "d d d"', + '"a a a" min-content "b b b" "c c c" "d d d" / min-content auto auto auto', +); </script> </body> </html>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-ruby/ruby-body-element-crash.html b/third_party/blink/web_tests/external/wpt/css/css-ruby/ruby-body-element-crash.html new file mode 100644 index 0000000..c1487ab --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-ruby/ruby-body-element-crash.html
@@ -0,0 +1,15 @@ +<link rel=help href="https://bugzilla.mozilla.org/show_bug.cgi?id=1935728"> +<script> +document.addEventListener("DOMContentLoaded", () => { + document.body.getBoundingClientRect(); + document.body.parentNode.removeChild(document.body) + document.body.getBoundingClientRect(); +}) +</script> +<style> +body { + display: ruby-text; + overflow: scroll; +} +</style> +<body>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-sizing/keyword-sizes-on-replaced-element-expected.txt b/third_party/blink/web_tests/external/wpt/css/css-sizing/keyword-sizes-on-replaced-element-expected.txt index 0ac58540..b113ea4 100644 --- a/third_party/blink/web_tests/external/wpt/css/css-sizing/keyword-sizes-on-replaced-element-expected.txt +++ b/third_party/blink/web_tests/external/wpt/css/css-sizing/keyword-sizes-on-replaced-element-expected.txt
@@ -1,8 +1,16 @@ This is a testharness.js-based test. -Found 2 FAIL, 0 TIMEOUT, 0 NOTRUN. +Found 6 FAIL, 0 TIMEOUT, 0 NOTRUN. [FAIL] .test 59 - assert_equals: \n<canvas width="100" height="100" class="test min-height stretch indefinite" data-expected-width="110" data-expected-height="110"></canvas>\nwidth expected 110 but got 10 + assert_equals: \n<canvas width="100" height="100" class="test min-height stretch indefinite" data-expected-width="10" data-expected-height="110"></canvas>\nheight expected 110 but got 10 [FAIL] .test 60 - assert_equals: \n<canvas width="100" height="100" class="test max-height stretch indefinite" data-expected-width="110" data-expected-height="110"></canvas>\nwidth expected 110 but got 510 + assert_equals: \n<canvas width="100" height="100" class="test max-height stretch indefinite" data-expected-width="510" data-expected-height="110"></canvas>\nheight expected 110 but got 510 +[FAIL] .test 62 + assert_equals: \n<canvas width="100" height="100" class="test min-height stretch indefinite" style="min-width: 50px" data-expected-width="60" data-expected-height="110"></canvas>\nheight expected 110 but got 10 +[FAIL] .test 63 + assert_equals: \n<canvas width="100" height="100" class="test max-height stretch indefinite" style="max-width: 50px" data-expected-width="60" data-expected-height="60"></canvas>\nheight expected 60 but got 510 +[FAIL] .test 65 + assert_equals: \n<canvas width="100" height="100" class="test min-height stretch indefinite" style="min-width: 150px" data-expected-width="160" data-expected-height="160"></canvas>\nheight expected 160 but got 10 +[FAIL] .test 66 + assert_equals: \n<canvas width="100" height="100" class="test max-height stretch indefinite" style="max-width: 150px" data-expected-width="160" data-expected-height="110"></canvas>\nheight expected 110 but got 510 Harness: the test ran to completion.
diff --git a/third_party/blink/web_tests/external/wpt/css/css-sizing/keyword-sizes-on-replaced-element.html b/third_party/blink/web_tests/external/wpt/css/css-sizing/keyword-sizes-on-replaced-element.html index e26c1b7d..8863ef49 100644 --- a/third_party/blink/web_tests/external/wpt/css/css-sizing/keyword-sizes-on-replaced-element.html +++ b/third_party/blink/web_tests/external/wpt/css/css-sizing/keyword-sizes-on-replaced-element.html
@@ -143,17 +143,17 @@ <!-- Definite stretch --> <div style="width: 200px; height: 100px"> <canvas width="100" height="100" class="test width stretch" - data-expected-width="190" data-expected-height="190">X X</canvas> + data-expected-width="190" data-expected-height="190"></canvas> <canvas width="100" height="100" class="test min-width stretch" - data-expected-width="190" data-expected-height="190">X X</canvas> + data-expected-width="190" data-expected-height="190"></canvas> <canvas width="100" height="100" class="test max-width stretch" - data-expected-width="190" data-expected-height="190">X X</canvas> + data-expected-width="190" data-expected-height="190"></canvas> <canvas width="100" height="100" class="test height stretch" - data-expected-width="90" data-expected-height="90">X X</canvas> + data-expected-width="90" data-expected-height="90"></canvas> <canvas width="100" height="100" class="test min-height stretch" - data-expected-width="90" data-expected-height="90">X X</canvas> + data-expected-width="90" data-expected-height="90"></canvas> <canvas width="100" height="100" class="test max-height stretch" - data-expected-width="90" data-expected-height="90">X X</canvas> + data-expected-width="90" data-expected-height="90"></canvas> </div> <!-- Stretch sizes can't result in a negative content size --> @@ -171,9 +171,23 @@ <canvas width="100" height="100" class="test height stretch indefinite" data-expected-width="110" data-expected-height="110"></canvas> <canvas width="100" height="100" class="test min-height stretch indefinite" - data-expected-width="110" data-expected-height="110"></canvas> + data-expected-width="10" data-expected-height="110"></canvas> <canvas width="100" height="100" class="test max-height stretch indefinite" - data-expected-width="110" data-expected-height="110"></canvas> + data-expected-width="510" data-expected-height="110"></canvas> + + <canvas width="100" height="100" class="test height stretch indefinite" style="max-width: 50px" + data-expected-width="60" data-expected-height="60"></canvas> + <canvas width="100" height="100" class="test min-height stretch indefinite" style="min-width: 50px" + data-expected-width="60" data-expected-height="110"></canvas> + <canvas width="100" height="100" class="test max-height stretch indefinite" style="max-width: 50px" + data-expected-width="60" data-expected-height="60"></canvas> + + <canvas width="100" height="100" class="test height stretch indefinite" style="min-width: 150px" + data-expected-width="160" data-expected-height="160"></canvas> + <canvas width="100" height="100" class="test min-height stretch indefinite" style="min-width: 150px" + data-expected-width="160" data-expected-height="160"></canvas> + <canvas width="100" height="100" class="test max-height stretch indefinite" style="max-width: 150px" + data-expected-width="160" data-expected-height="110"></canvas> </div> <script src="/resources/testharness.js"></script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-sizing/stretch/block-height-1.html b/third_party/blink/web_tests/external/wpt/css/css-sizing/stretch/block-height-001.html similarity index 100% rename from third_party/blink/web_tests/external/wpt/css/css-sizing/stretch/block-height-1.html rename to third_party/blink/web_tests/external/wpt/css/css-sizing/stretch/block-height-001.html
diff --git a/third_party/blink/web_tests/external/wpt/css/css-sizing/stretch/block-height-002.tentative-expected.txt b/third_party/blink/web_tests/external/wpt/css/css-sizing/stretch/block-height-002.tentative-expected.txt new file mode 100644 index 0000000..50f6e97f --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-sizing/stretch/block-height-002.tentative-expected.txt
@@ -0,0 +1,5 @@ +This is a testharness.js-based test. +[FAIL] main > div > div 2 + assert_equals: \n<div style="height: stretch; margin: 10px;" data-expected-height="200"></div>\nheight expected 200 but got 180 +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/external/wpt/css/css-sizing/stretch/block-height-002.tentative.html b/third_party/blink/web_tests/external/wpt/css/css-sizing/stretch/block-height-002.tentative.html new file mode 100644 index 0000000..2b90698 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-sizing/stretch/block-height-002.tentative.html
@@ -0,0 +1,62 @@ +<!DOCTYPE html> +<link rel="help" href="https://drafts.csswg.org/css-sizing-4/#example-174ae518"> +<script src='/resources/testharness.js'></script> +<script src='/resources/testharnessreport.js'></script> +<script src="/resources/check-layout-th.js"></script> +<link rel="stylesheet" type="text/css" href="/fonts/ahem.css" /> +<meta name="assert" + content="the stretch examples in the spec are rendered correctly"> + +<style> + main { + font: 20px/1 Ahem; + } +</style> +<p>This test asserts the behavior seemingly agreed upon through + https://github.com/w3c/csswg-drafts/issues/11044#issuecomment-2486935794. This + is unlikely to be the final specified behavior, hence the test is marked + tentative.</p> + +<main> + <!-- Example 9 +[T]he outer height of the inner box will exactly match the height of the outer box (200px), but its inner height will be 20px less, to account for its margins. +--> +<div style="height: 200px; border: solid;"> + <div style="height: stretch; margin: 10px;" data-expected-height="180"></div> +</div> + +<!-- Example 9, second case +In the following case, the height of the inner box will exactly match the height of the outer box (200px). +--> +<div style="height: 200px; margin: 0;"> + <div style="height: stretch; margin: 10px;" data-expected-height="200"></div> +</div> + +<!-- Example 10 +Similarly, width: stretch causes the box to fill its container, being 20px narrower than the width of "some more text" (due to the 10px margin) +--> +<div style="float: left; margin: 0; outline: solid;"> + <div style="width: stretch; margin: 10px; background: skyblue;" + data-expected-width="260"> + text + </div> + <span>some more text</span> +</div> + +<div style="clear: both;"></div> + +<!-- Example 11 +On the other hand, in this example the container’s height is indefinite, which would cause a percentage height on the child to behave as auto, so height: stretch behaves as auto as well. +--> +<div style="height: auto; margin: 0; background: orange;"> + lorem ipsum<br> + cats + <div style="height: stretch; margin: 10px; background: lime;" + data-expected-height="20">dogs</div> +</div> + +</main> + +<script> + document.fonts.ready.then(() => checkLayout("main > div > div")); +</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-sizing/stretch/block-height-003-ref.html b/third_party/blink/web_tests/external/wpt/css/css-sizing/stretch/block-height-003-ref.html new file mode 100644 index 0000000..76e2bc3 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-sizing/stretch/block-height-003-ref.html
@@ -0,0 +1,16 @@ +<!DOCTYPE html> + +<style> + .surrounding-block { + width: 100px; + height: 100px; + border: solid; + } +</style> + +<div class="surrounding-block"></div> +<div style="height: 75px;"></div> +<div + style="width: 200px; height: 200px; outline: 1px solid; border: 2px dashed blue; box-sizing: border-box;"> +</div> +<div class="surrounding-block"></div>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-sizing/stretch/block-height-003.tentative.html b/third_party/blink/web_tests/external/wpt/css/css-sizing/stretch/block-height-003.tentative.html new file mode 100644 index 0000000..a469f8d --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-sizing/stretch/block-height-003.tentative.html
@@ -0,0 +1,29 @@ +<!DOCTYPE html> +<link rel="help" + href="https://drafts.csswg.org/css-sizing-4/#stretch-fit-sizing"> +<meta name="assert" + content="Both margins are ignored for sizing, but top margin still collapses. Bottom margin doesn't collapse because parent has a definite height."> +<link rel="match" href="block-height-003-ref.html"> + +<style> + .surrounding-block { + width: 100px; + height: 100px; + border: solid; + } +</style> + +<!-- +<p>This test asserts the behavior seemingly agreed upon through + https://github.com/w3c/csswg-drafts/issues/11044#issuecomment-2486935794. This + is unlikely to be the final specified behavior, hence the test is marked + tentative.</p> +--> + +<div class="surrounding-block"></div> +<div style="width: 200px; height: 200px; outline: 1px solid;"> + <div + style="height: stretch; margin: 75px 0px 25px 0px; border: 2px dashed blue;"> + </div> +</div> +<div class="surrounding-block"></div>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-sizing/stretch/block-height-004.tentative-expected.txt b/third_party/blink/web_tests/external/wpt/css/css-sizing/stretch/block-height-004.tentative-expected.txt new file mode 100644 index 0000000..85033e7 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-sizing/stretch/block-height-004.tentative-expected.txt
@@ -0,0 +1,9 @@ +This is a testharness.js-based test. +[FAIL] .inner 1 + assert_equals: \n<div class="inner" style="border: solid magenta;" data-expected-height="100" data-offset-y="0">\n </div>\nheight expected 100 but got 80 +[FAIL] .inner 4 + assert_equals: \n<div class="inner" style="border: solid purple;" data-expected-height="90" data-offset-y="0">\n </div>\nheight expected 90 but got 80 +[FAIL] .inner 5 + assert_equals: \n<div class="inner" style="border: solid lime;" data-expected-height="90" data-offset-y="0">\n </div>\nheight expected 90 but got 80 +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/external/wpt/css/css-sizing/stretch/block-height-004.tentative.html b/third_party/blink/web_tests/external/wpt/css/css-sizing/stretch/block-height-004.tentative.html new file mode 100644 index 0000000..1aa12ca --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-sizing/stretch/block-height-004.tentative.html
@@ -0,0 +1,99 @@ +<!DOCTYPE html> +<link rel="help" + href="https://drafts.csswg.org/css-sizing-4/#stretch-fit-sizing"> +<link rel="help" href="https://github.com/w3c/csswg-drafts/issues/11044"> +<script src='/resources/testharness.js'></script> +<script src='/resources/testharnessreport.js'></script> +<script src="/resources/check-layout-th.js"></script> +<meta name="assert" + content="demonstrate the behavior described in https://github.com/w3c/csswg-drafts/issues/11044#issuecomment-2422165458"> + +<style> + .outer { + width: 100px; + height: 100px; + outline: solid; + position: relative; + } + + .inner { + height: stretch; + margin: 10px; + } + + p { + margin-top: 20px; + margin-bottom: 0px; + } +</style> + +<p>This test asserts the behavior seemingly agreed upon through + https://github.com/w3c/csswg-drafts/issues/11044#issuecomment-2486935794. This + is unlikely to be the final specified behavior, hence the test is marked + tentative.</p> + +<p>Basic case: treat margins as 0.</p> +<div class="outer"> + <div class="inner" style="border: solid magenta;" data-expected-height="100" + data-offset-y="0"> + </div> +</div> + +<p> + When resolving stretch, don't treat margins as 0 if there is a sibling on that + side. (Hand-wavy: we don't collapse margins through siblings for the purpose + of resolving stretched heights.)</p> +<p> + Then when actually doing margin collapsing, .inner's margins DON'T collapse + with .outer's because of the usual rule that margins don't collapse through + new formatting contexts. +</p> +<div class="outer"> + <div style="overflow: hidden"></div> + <div class="inner" style="border: solid cyan;" data-expected-height="80" + data-offset-y="10"> + </div> + <div style="overflow: hidden"></div> +</div> + +<p>When resolving stretch, don't treat margins as 0 if there is a sibling on + that side. (Hand-wavy: we don't collapse margins through siblings for the + purpose of resolving stretched heights.)</p> +<p> + Then when actually doing margin collapsing, .inner's margins DO collapse with + .outer's because they collapse through the empty siblings. +</p> +<div class="outer"> + <div></div> + <div class="inner" style="border: solid blue;" data-expected-height="80" + data-offset-y="0"> + </div> + <div></div> +</div> + +<p>Only treat the BOTTOM margin as 0. Margins do collapse, so top edges touch. +</p> +<div class="outer"> + <div></div> + <div class="inner" style="border: solid purple;" data-expected-height="90" + data-offset-y="0"> + </div> +</div> + +<p>Only treat the TOP margin as 0. Margins do collapse, so top edges touch.</p> +<div class="outer"> + <div class="inner" style="border: solid lime;" data-expected-height="90" + data-offset-y="0"> + </div> + <div></div> +</div> + +<p>Account for the margins when parent establishes a BFC.</p> +<div class="outer" style="display: flow-root;"> + <div class="inner" style="border: solid orange;" data-expected-height="80" + data-offset-y="10"> + </div> + <div></div> +</div> + +<script>checkLayout(".inner");</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-sizing/stretch/block-height-005.tentative-expected.txt b/third_party/blink/web_tests/external/wpt/css/css-sizing/stretch/block-height-005.tentative-expected.txt new file mode 100644 index 0000000..ce2bacc2 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-sizing/stretch/block-height-005.tentative-expected.txt
@@ -0,0 +1,11 @@ +This is a testharness.js-based test. +[FAIL] .float + div 1 + assert_equals: \n<div style="height: stretch; width: 30px; margin-top: 50px; display: flow-root; border: solid magenta;" data-expected-height="100" data-offset-y="0">\n </div>\nheight expected 100 but got 50 +[FAIL] .float + div 2 + assert_equals: \n<div style="height: stretch; width: 90px; margin-top: 50px; display: flow-root; border: solid cyan;" data-expected-height="100" data-offset-y="30">\n </div>\nheight expected 100 but got 50 +[FAIL] .float + div 3 + assert_equals: \n<div style="height: stretch; width: 90px; margin-top: 50px; border: solid green;" data-expected-height="100" data-offset-y="0">\n </div>\nheight expected 100 but got 50 +[FAIL] .float + div 4 + assert_equals: \n<div style="height: stretch; width: 90px; clear: both; margin-top: 50px; border: solid orange;" data-expected-height="100" data-offset-y="30">\n </div>\nheight expected 100 but got 50 +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/external/wpt/css/css-sizing/stretch/block-height-005.tentative.html b/third_party/blink/web_tests/external/wpt/css/css-sizing/stretch/block-height-005.tentative.html new file mode 100644 index 0000000..28756c3 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-sizing/stretch/block-height-005.tentative.html
@@ -0,0 +1,77 @@ +<!DOCTYPE html> +<link rel="help" + href="https://drafts.csswg.org/css-sizing-4/#stretch-fit-sizing"> +<link rel="help" href="https://github.com/w3c/csswg-drafts/issues/11044"> +<script src='/resources/testharness.js'></script> +<script src='/resources/testharnessreport.js'></script> +<script src="/resources/check-layout-th.js"></script> +<meta name="assert" + content="preceding floats don't prevent margin adjoiningness for stretch sizing purposes"> + +<style> + .outer { + width: 100px; + height: 100px; + outline: solid; + position: relative; + } + + .float { + float: left; + width: 30px; + height: 30px; + background: skyblue; + } + + p { + margin-top: 20px; + margin-bottom: 0px; + } +</style> + +<p>This test asserts the behavior seemingly agreed upon through + https://github.com/w3c/csswg-drafts/issues/11044#issuecomment-2486935794. This + is unlikely to be the final specified behavior, hence the test is marked + tentative.</p> + +<p>New BFC fits next to float, so top margins will collapse, so we want the + stretched height to match .outer's height.</p> +<div class="outer"> + <div class="float"></div> + <div + style="height: stretch; width: 30px; margin-top: 50px; display: flow-root; border: solid magenta;" + data-expected-height="100" data-offset-y="0"> + </div> +</div> + +<p>New BFC does not fit next to float, so margins DON'T collapse, but for + simplicity we still ignore margins when stretch sizing</p> +<div class="outer"> + <div class="float"></div> + <div + style="height: stretch; width: 90px; margin-top: 50px; display: flow-root; border: solid cyan;" + data-expected-height="100" data-offset-y="30"> + </div> +</div> + +<p>In-flow child overlaps the float, so margins DO collapse, so we want the + stretched height to match .outer's height.</p> +<div class="outer"> + <div class="float"></div> + <div + style="height: stretch; width: 90px; margin-top: 50px; border: solid green;" + data-expected-height="100" data-offset-y="0"> + </div> +</div> + +<p>In-flow child clears the float, so margins DON'T collapse, but for + simplicity we still ignore margins when stretch sizing</p> +<div class="outer"> + <div class="float"></div> + <div + style="height: stretch; width: 90px; clear: both; margin-top: 50px; border: solid orange;" + data-expected-height="100" data-offset-y="30"> + </div> +</div> + +<script>checkLayout(".float + div")</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-sizing/stretch/block-height-006.tentative.html b/third_party/blink/web_tests/external/wpt/css/css-sizing/stretch/block-height-006.tentative.html new file mode 100644 index 0000000..a25c415b --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-sizing/stretch/block-height-006.tentative.html
@@ -0,0 +1,36 @@ +<!DOCTYPE html> +<link rel="help" + href="https://drafts.csswg.org/css-sizing-4/#stretch-fit-sizing"> +<link rel="help" href="https://github.com/w3c/csswg-drafts/issues/11044"> +<link rel="match" href="../../reference/ref-filled-green-100px-square.xht"> +<meta name="assert" + content="Bottom margin is treated as 0 for stretch sizing even if there is a proceeding float"> + +<style> + #reference-overlapped-red { + position: absolute; + background-color: red; + width: 100px; + height: 100px; + z-index: -1; + } +</style> + +<!-- +<p>This test asserts the behavior seemingly agreed upon through + https://github.com/w3c/csswg-drafts/issues/11044#issuecomment-2486935794. This + is unlikely to be the final specified behavior, hence the test is marked + tentative.</p> + --> + +<p>Test passes if there is a filled green square and <strong>no red</strong>. +</p> +<div id="reference-overlapped-red"></div> + +<div style="height: 100px;"> + <div + style="display: flow-root; width: 100px; height: stretch; margin-bottom: 50px; background: green;"> + </div> + <div style="float: left; width: 50px; height: 50px;"> + </div> +</div>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-sizing/stretch/block-height-2-expected.txt b/third_party/blink/web_tests/external/wpt/css/css-sizing/stretch/block-height-2-expected.txt deleted file mode 100644 index 6a4cd528..0000000 --- a/third_party/blink/web_tests/external/wpt/css/css-sizing/stretch/block-height-2-expected.txt +++ /dev/null
@@ -1,5 +0,0 @@ -This is a testharness.js-based test. -[FAIL] [data-expected-height] 2 - assert_equals: \n<div style="height: stretch; margin: 25px 0px 75px 0px; outline: 2px dashed blue;" data-expected-height="300"></div>\nheight expected 300 but got 200 -Harness: the test ran to completion. -
diff --git a/third_party/blink/web_tests/external/wpt/css/css-sizing/stretch/block-height-2.html b/third_party/blink/web_tests/external/wpt/css/css-sizing/stretch/block-height-2.html deleted file mode 100644 index 7028adf..0000000 --- a/third_party/blink/web_tests/external/wpt/css/css-sizing/stretch/block-height-2.html +++ /dev/null
@@ -1,31 +0,0 @@ -<!DOCTYPE html> -<link rel="help" href="https://drafts.csswg.org/css-sizing-4/#stretch-fit-sizing"> -<script src='/resources/testharness.js'></script> -<script src='/resources/testharnessreport.js'></script> -<script src="/resources/check-layout-th.js"></script> -<meta name="assert" content="Checks the behaviour of stretch in various configurations."> - -<body onload="checkLayout('[data-expected-height]')"> - -<div style="height: 200px; border: solid;"> - <div style="height: stretch; margin: 10px;" data-expected-height="180"></div> -</div> - -<!-- - -Chrome fails the following test, which is a variation of example 9 in the spec. Safari passes. - -From https://drafts.csswg.org/css-sizing-4/#stretch-fit-sizing, height:stretch for blocks behaves as -""" -100% but applying the resulting size to its margin box instead of the box indicated by box-sizing. For this purpose, auto margins are treated as zero, and furthermore, for block-level boxes in particular, if its block-start/block-end margin would be adjoining to its parent’s block-start/block-end margin if its parent’s sizing properties all had their initial values, then ***its block-start/block-end margin is treated as zero.*** -""" - -So the spec demands that the child has 0px margins and as a corollary, has 300px inner and outer height. - -But Blink gives it an inner height of 200px and margins as specified (25px/75px). ---> -<div style="height: 300px; outline: 1px solid; margin: 10px 0px 10px 0px;"> - <div - style="height: stretch; margin: 25px 0px 75px 0px; outline: 2px dashed blue;" - data-expected-height="300"></div> -</div>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-sizing/stretch/content-contribution-001.html b/third_party/blink/web_tests/external/wpt/css/css-sizing/stretch/content-contribution-001.html new file mode 100644 index 0000000..5f3706953 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-sizing/stretch/content-contribution-001.html
@@ -0,0 +1,58 @@ +<!DOCTYPE html> +<link rel="help" + href="https://drafts.csswg.org/css-sizing-4/#stretch-fit-sizing"> +<link rel="help" href="https://github.com/w3c/csswg-drafts/issues/11006"> +<script src='/resources/testharness.js'></script> +<script src='/resources/testharnessreport.js'></script> +<script src="/resources/check-layout-th.js"></script> +<meta name="assert" + content="stretched children contribute their automatic size to parent's min/max content sizes"> + +<style> + .test { + outline: solid; + margin-bottom: 10px; + } +</style> + +<div style="width: max-content;" class="test" data-expected-client-width="100"> + <div style="float: left; width: 100px; height: 100px;"></div> + <div style="float: left; width: stretch; outline: solid blue;"></div> +</div> + +<div style="width: max-content;" class="test" data-expected-client-width="120"> + <div style="float: left; width: 100px; height: 100px;"></div> + <div style="float: left; width: stretch; outline: solid blue;"> + <div style="width: 20px; height: 20px;"></div> + </div> +</div> + +<div style="width: 100px; height: max-content;" class="test" + data-expected-client-height="100"> + <div style="width: 100px; height: 100px;"></div> + <div style="height: stretch; outline: solid blue;"></div> +</div> + +<div style="width: 100px; height: max-content;" class="test" + data-expected-client-height="120"> + <div style="width: 100px; height: 100px;"></div> + <div style="height: stretch; outline: solid blue;"> + <div style="width: 20px; height: 20px;"></div> + </div> +</div> + +<div style="writing-mode: vertical-lr;"> + <div style="inline-size: stretch; block-size: 100px;" class="test" + data-expected-client-height="0"></div> +</div> + +<div style="writing-mode: vertical-lr;"> + <div style="inline-size: stretch; block-size: 100px; border: solid" + data-expected-client-height="20"> + <div style="height: 20px;"></div> + </div> +</div> + +<script> + checkLayout('.test'); +</script>
diff --git a/third_party/blink/web_tests/external/wpt/dom/observable/tentative/observable-reduce.any.js b/third_party/blink/web_tests/external/wpt/dom/observable/tentative/observable-reduce.any.js index 7c54aa1..ec30f8b 100644 --- a/third_party/blink/web_tests/external/wpt/dom/observable/tentative/observable-reduce.any.js +++ b/third_party/blink/web_tests/external/wpt/dom/observable/tentative/observable-reduce.any.js
@@ -1,4 +1,4 @@ -promise_test(async t => { +promise_test(async (t) => { const source = new Observable(subscriber => { subscriber.next(1); subscriber.next(2); @@ -24,24 +24,17 @@ }, "reduce(): Reduces the values of the Observable, starting with the " + "initial seed value"); -promise_test(async () => { +promise_test(async (t) => { let error = new Error('from the source'); const source = new Observable(subscriber => { subscriber.next(1); subscriber.error(error); }); - let thrownError = null; - try { - await source.reduce((acc, value) => acc + value, 0); - } catch (error) { - thrownError = error; - } - - assert_equals(thrownError, error); + return promise_rejects_exactly(t, error, source.reduce((acc, value) => acc + value, 0)); }, "reduce(): Rejects if the source observable emits an error"); -promise_test(async t => { +promise_test(async (t) => { const source = new Observable(subscriber => { subscriber.next(1); subscriber.next(2); @@ -66,7 +59,7 @@ }, "reduce(): Seeds with the first value of the source, if no initial value " + "is provided"); -promise_test(async () => { +promise_test(async (t) => { const logs = []; const source = new Observable(subscriber => { @@ -82,21 +75,16 @@ }); const error = new Error('from the reducer'); - let thrownError = null; - try { - await source.reduce((acc, value) => { - if (value === 2) { - logs.push('throw error'); - throw error; - } - return acc + value; - }, 0); - } catch (error) { - thrownError = error; - } + const promiseToResult = source.reduce((acc, value) => { + if (value === 2) { + logs.push('throw error'); + throw error; + } + return acc + value; + }, 0); - assert_equals(thrownError, error); + await promise_rejects_exactly(t, error, promiseToResult); assert_array_equals(logs, [ 'next 1', @@ -118,7 +106,7 @@ assert_equals(result, 'seed'); }, "reduce(): When source is empty, promise resolves with initial value"); -promise_test(async () => { +promise_test(async (t) => { // This tests behavior that is analogous to `[].reduce(() => 'reduced')`, // which throws a TypeError. @@ -126,18 +114,11 @@ subscriber.complete(); }); - let thrownError = null; - try { - await source.reduce(() => 'reduced'); - } catch (error) { - thrownError = error; - } - - assert_true(thrownError instanceof TypeError); + return promise_rejects_js(t, TypeError, source.reduce(() => 'reduced')); }, "reduce(): When source is empty, AND no seed value is provided, the " + "promise rejects with a TypeError"); -promise_test(async t => { +promise_test(async (t) => { let tornDown = false; const source = new Observable((subscriber) => { subscriber.addTeardown(() => { @@ -153,14 +134,6 @@ assert_true(tornDown); }, 0); - let thrownError = null; - try { - await source.reduce(() => 'reduced', 'seed', { signal: abortController.signal }); - } catch (error) { - thrownError = error; - } - - assert_true(thrownError instanceof DOMException); - assert_equals(thrownError.name, 'AbortError'); + return promise_rejects_dom(t, 'AbortError', source.reduce(() => 'reduced', 'seed', { signal: abortController.signal })); }, "reduce(): Reject with an AbortError if the subscription is aborted " + "before the source completes");
diff --git a/third_party/blink/web_tests/external/wpt/webnn/conformance_tests/layer_normalization.https.any.js b/third_party/blink/web_tests/external/wpt/webnn/conformance_tests/layer_normalization.https.any.js index 01f181c..2af128b 100644 --- a/third_party/blink/web_tests/external/wpt/webnn/conformance_tests/layer_normalization.https.any.js +++ b/third_party/blink/web_tests/external/wpt/webnn/conformance_tests/layer_normalization.https.any.js
@@ -31,6 +31,26 @@ const layerNormTests = [ { + 'name': 'layerNormalization float32 0D tensor default options', + 'graph': { + 'inputs': { + 'layerNormInput': { + 'data': [-35.51446533203125], + 'descriptor': {shape: [], dataType: 'float32'} + } + }, + 'operators': [{ + 'name': 'layerNormalization', + 'arguments': [{'input': 'layerNormInput'}], + 'outputs': 'layerNormOutput' + }], + 'expectedOutputs': { + 'layerNormOutput': + {'data': [0], 'descriptor': {shape: [], dataType: 'float32'}} + } + } + }, + { 'name': 'layerNormalization float32 2D tensor default options', 'graph': { 'inputs': { @@ -71,6 +91,87 @@ } }, { + 'name': 'layerNormalization float32 2D tensor axes=[] and options.bias', + 'graph': { + 'inputs': { + 'layerNormInput': { + 'data': [ + -35.51446533203125, 54.735408782958984, 19.659019470214844, + -15.882678031921387, 65.48657989501953, 25.818492889404297, + 97.55302429199219, -8.057161331176758, 62.9412956237793, + -48.91555404663086, 91.90644073486328, 46.67098617553711, + -74.85331726074219, 30.126361846923828, 26.13089370727539, + 59.30270767211914, -60.361995697021484, 18.55615234375, + -88.03730773925781, -26.5667724609375, 70.81292724609375, + 9.105611801147461, 56.66746139526367, 21.78444480895996 + ], + 'descriptor': {shape: [4, 6], dataType: 'float32'} + }, + 'layerNormBias': { + 'data': [7.862982749938965], + 'descriptor': {shape: [], dataType: 'float32'} + } + }, + 'operators': [{ + 'name': 'layerNormalization', + 'arguments': [ + {'input': 'layerNormInput'}, + {'options': {'axes': [], 'bias': 'layerNormBias'}} + ], + 'outputs': 'layerNormOutput' + }], + 'expectedOutputs': { + 'layerNormOutput': { + 'data': [ + 7.862982749938965, 7.862982749938965, 7.862982749938965, + 7.862982749938965, 7.862982749938965, 7.862982749938965, + 7.862982749938965, 7.862982749938965, 7.862982749938965, + 7.862982749938965, 7.862982749938965, 7.862982749938965, + 7.862982749938965, 7.862982749938965, 7.862982749938965, + 7.862982749938965, 7.862982749938965, 7.862982749938965, + 7.862982749938965, 7.862982749938965, 7.862982749938965, + 7.862982749938965, 7.862982749938965, 7.862982749938965 + ], + 'descriptor': {shape: [4, 6], dataType: 'float32'} + } + } + } + }, + { + 'name': 'layerNormalization float32 2D tensor axes=[]', + 'graph': { + 'inputs': { + 'layerNormInput': { + 'data': [ + -35.51446533203125, 54.735408782958984, 19.659019470214844, + -15.882678031921387, 65.48657989501953, 25.818492889404297, + 97.55302429199219, -8.057161331176758, 62.9412956237793, + -48.91555404663086, 91.90644073486328, 46.67098617553711, + -74.85331726074219, 30.126361846923828, 26.13089370727539, + 59.30270767211914, -60.361995697021484, 18.55615234375, + -88.03730773925781, -26.5667724609375, 70.81292724609375, + 9.105611801147461, 56.66746139526367, 21.78444480895996 + ], + 'descriptor': {shape: [4, 6], dataType: 'float32'} + } + }, + 'operators': [{ + 'name': 'layerNormalization', + 'arguments': [{'input': 'layerNormInput'}, {'options': {'axes': []}}], + 'outputs': 'layerNormOutput' + }], + 'expectedOutputs': { + 'layerNormOutput': { + 'data': [ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + ], + 'descriptor': {shape: [4, 6], dataType: 'float32'} + } + } + } + }, + { 'name': 'layerNormalization float32 3D tensor default options', 'graph': { 'inputs': {
diff --git a/third_party/blink/web_tests/external/wpt/webnn/conformance_tests/lstm_cell.https.any.js b/third_party/blink/web_tests/external/wpt/webnn/conformance_tests/lstm_cell.https.any.js index 8fb7ce4..7a484ec 100644 --- a/third_party/blink/web_tests/external/wpt/webnn/conformance_tests/lstm_cell.https.any.js +++ b/third_party/blink/web_tests/external/wpt/webnn/conformance_tests/lstm_cell.https.any.js
@@ -63,14 +63,16 @@ }, 'lstmCellWeight': { 'data': [1, -1, 2, -2, 1, -1, 2, -2, 1, -1, 2, -2, 1, -1, 2, -2], - 'descriptor': {shape: [8, 2], dataType: 'float32'} + 'descriptor': {shape: [8, 2], dataType: 'float32'}, + 'constant': true }, 'lstmCellRecurrentWeight': { 'data': [ 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1 ], - 'descriptor': {shape: [8, 2], dataType: 'float32'} + 'descriptor': {shape: [8, 2], dataType: 'float32'}, + 'constant': true }, 'lstmCellHiddenState': { 'data': [0, 0, 0, 0], @@ -82,11 +84,13 @@ }, 'lstmCellBias': { 'data': [1, 2, 1, 2, 1, 2, 1, 2], - 'descriptor': {shape: [8], dataType: 'float32'} + 'descriptor': {shape: [8], dataType: 'float32'}, + 'constant': true }, 'lstmCellRecurrentBias': { 'data': [1, 2, 1, 2, 1, 2, 1, 2], - 'descriptor': {shape: [8], dataType: 'float32'} + 'descriptor': {shape: [8], dataType: 'float32'}, + 'constant': true } }, 'operators': [{ @@ -128,14 +132,16 @@ }, 'lstmCellWeight': { 'data': [1, -1, 2, -2, 1, -1, 2, -2, 1, -1, 2, -2, 1, -1, 2, -2], - 'descriptor': {shape: [8, 2], dataType: 'float32'} + 'descriptor': {shape: [8, 2], dataType: 'float32'}, + 'constant': true }, 'lstmCellRecurrentWeight': { 'data': [ 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1 ], - 'descriptor': {shape: [8, 2], dataType: 'float32'} + 'descriptor': {shape: [8, 2], dataType: 'float32'}, + 'constant': true }, 'lstmCellHiddenState': { 'data': [0, 0, 0, 0], @@ -147,15 +153,18 @@ }, 'lstmCellBias': { 'data': [1, 2, 1, 2, 1, 2, 1, 2], - 'descriptor': {shape: [8], dataType: 'float32'} + 'descriptor': {shape: [8], dataType: 'float32'}, + 'constant': true }, 'lstmCellRecurrentBias': { 'data': [1, 2, 1, 2, 1, 2, 1, 2], - 'descriptor': {shape: [8], dataType: 'float32'} + 'descriptor': {shape: [8], dataType: 'float32'}, + 'constant': true }, 'lstmCellPeepholeWeight': { 'data': [0, 0, 0, 0, 0, 0], - 'descriptor': {shape: [6], dataType: 'float32'} + 'descriptor': {shape: [6], dataType: 'float32'}, + 'constant': true } }, 'operators': [{ @@ -198,14 +207,16 @@ }, 'lstmCellWeight': { 'data': [1, -1, 2, -2, 1, -1, 2, -2, 1, -1, 2, -2, 1, -1, 2, -2], - 'descriptor': {shape: [8, 2], dataType: 'float32'} + 'descriptor': {shape: [8, 2], dataType: 'float32'}, + 'constant': true }, 'lstmCellRecurrentWeight': { 'data': [ 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1 ], - 'descriptor': {shape: [8, 2], dataType: 'float32'} + 'descriptor': {shape: [8, 2], dataType: 'float32'}, + 'constant': true }, 'lstmCellHiddenState': { 'data': [0, 0, 0, 0], @@ -217,11 +228,13 @@ }, 'lstmCellBias': { 'data': [1, 2, 1, 2, 1, 2, 1, 2], - 'descriptor': {shape: [8], dataType: 'float32'} + 'descriptor': {shape: [8], dataType: 'float32'}, + 'constant': true }, 'lstmCellRecurrentBias': { 'data': [1, 2, 1, 2, 1, 2, 1, 2], - 'descriptor': {shape: [8], dataType: 'float32'} + 'descriptor': {shape: [8], dataType: 'float32'}, + 'constant': true } }, 'operators': [{ @@ -264,14 +277,16 @@ }, 'lstmCellWeight': { 'data': [1, -1, 2, -2, 1, -1, 2, -2, 1, -1, 2, -2, 1, -1, 2, -2], - 'descriptor': {shape: [8, 2], dataType: 'float32'} + 'descriptor': {shape: [8, 2], dataType: 'float32'}, + 'constant': true }, 'lstmCellRecurrentWeight': { 'data': [ 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1 ], - 'descriptor': {shape: [8, 2], dataType: 'float32'} + 'descriptor': {shape: [8, 2], dataType: 'float32'}, + 'constant': true }, 'lstmCellHiddenState': { 'data': [0, 0, 0, 0], @@ -283,11 +298,13 @@ }, 'lstmCellBias': { 'data': [1, 2, 1, 2, 1, 2, 1, 2], - 'descriptor': {shape: [8], dataType: 'float32'} + 'descriptor': {shape: [8], dataType: 'float32'}, + 'constant': true }, 'lstmCellRecurrentBias': { 'data': [1, 2, 1, 2, 1, 2, 1, 2], - 'descriptor': {shape: [8], dataType: 'float32'} + 'descriptor': {shape: [8], dataType: 'float32'}, + 'constant': true } }, 'operators': [{ @@ -329,14 +346,16 @@ }, 'lstmCellWeight': { 'data': [1, -1, 2, -2, 1, -1, 2, -2, 1, -1, 2, -2, 1, -1, 2, -2], - 'descriptor': {shape: [8, 2], dataType: 'float32'} + 'descriptor': {shape: [8, 2], dataType: 'float32'}, + 'constant': true }, 'lstmCellRecurrentWeight': { 'data': [ 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1 ], - 'descriptor': {shape: [8, 2], dataType: 'float32'} + 'descriptor': {shape: [8, 2], dataType: 'float32'}, + 'constant': true }, 'lstmCellHiddenState': { 'data': [0, 0, 0, 0], @@ -348,15 +367,18 @@ }, 'lstmCellBias': { 'data': [1, 2, 1, 2, 1, 2, 1, 2], - 'descriptor': {shape: [8], dataType: 'float32'} + 'descriptor': {shape: [8], dataType: 'float32'}, + 'constant': true }, 'lstmCellRecurrentBias': { 'data': [1, 2, 1, 2, 1, 2, 1, 2], - 'descriptor': {shape: [8], dataType: 'float32'} + 'descriptor': {shape: [8], dataType: 'float32'}, + 'constant': true }, 'lstmCellPeepholeWeight': { 'data': [0, 0, 0, 0, 0, 0], - 'descriptor': {shape: [6], dataType: 'float32'} + 'descriptor': {shape: [6], dataType: 'float32'}, + 'constant': true } }, 'operators': [{
diff --git a/third_party/blink/web_tests/platform/mac-mac14-arm64/virtual/webnn-service-on-npu/external/wpt/webnn/conformance_tests/layer_normalization.https.any.worker_npu-expected.txt b/third_party/blink/web_tests/platform/mac-mac14-arm64/virtual/webnn-service-on-npu/external/wpt/webnn/conformance_tests/layer_normalization.https.any.worker_npu-expected.txt new file mode 100644 index 0000000..5ed44c46 --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac14-arm64/virtual/webnn-service-on-npu/external/wpt/webnn/conformance_tests/layer_normalization.https.any.worker_npu-expected.txt
@@ -0,0 +1,7 @@ +This is a testharness.js-based test. +[FAIL] layerNormalization float32 4D tensor options.bias and options.axes=[3, 1, 2] + promise_test: Unhandled rejection with value: object "NotSupportedError: Failed to execute 'build' on 'MLGraphBuilder': Axes must be ordered for layerNormalization." +[FAIL] layerNormalization float32 4D tensor all options + promise_test: Unhandled rejection with value: object "NotSupportedError: Failed to execute 'build' on 'MLGraphBuilder': Axes must be ordered for layerNormalization." +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac14-arm64/virtual/webnn-service-on-npu/external/wpt/webnn/conformance_tests/layer_normalization.https.any_npu-expected.txt b/third_party/blink/web_tests/platform/mac-mac14-arm64/virtual/webnn-service-on-npu/external/wpt/webnn/conformance_tests/layer_normalization.https.any_npu-expected.txt new file mode 100644 index 0000000..5ed44c46 --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac14-arm64/virtual/webnn-service-on-npu/external/wpt/webnn/conformance_tests/layer_normalization.https.any_npu-expected.txt
@@ -0,0 +1,7 @@ +This is a testharness.js-based test. +[FAIL] layerNormalization float32 4D tensor options.bias and options.axes=[3, 1, 2] + promise_test: Unhandled rejection with value: object "NotSupportedError: Failed to execute 'build' on 'MLGraphBuilder': Axes must be ordered for layerNormalization." +[FAIL] layerNormalization float32 4D tensor all options + promise_test: Unhandled rejection with value: object "NotSupportedError: Failed to execute 'build' on 'MLGraphBuilder': Axes must be ordered for layerNormalization." +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac14-arm64/virtual/webnn-service-with-gpu/external/wpt/webnn/conformance_tests/layer_normalization.https.any.worker_gpu-expected.txt b/third_party/blink/web_tests/platform/mac-mac14-arm64/virtual/webnn-service-with-gpu/external/wpt/webnn/conformance_tests/layer_normalization.https.any.worker_gpu-expected.txt new file mode 100644 index 0000000..5ed44c46 --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac14-arm64/virtual/webnn-service-with-gpu/external/wpt/webnn/conformance_tests/layer_normalization.https.any.worker_gpu-expected.txt
@@ -0,0 +1,7 @@ +This is a testharness.js-based test. +[FAIL] layerNormalization float32 4D tensor options.bias and options.axes=[3, 1, 2] + promise_test: Unhandled rejection with value: object "NotSupportedError: Failed to execute 'build' on 'MLGraphBuilder': Axes must be ordered for layerNormalization." +[FAIL] layerNormalization float32 4D tensor all options + promise_test: Unhandled rejection with value: object "NotSupportedError: Failed to execute 'build' on 'MLGraphBuilder': Axes must be ordered for layerNormalization." +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac14-arm64/virtual/webnn-service-with-gpu/external/wpt/webnn/conformance_tests/layer_normalization.https.any_gpu-expected.txt b/third_party/blink/web_tests/platform/mac-mac14-arm64/virtual/webnn-service-with-gpu/external/wpt/webnn/conformance_tests/layer_normalization.https.any_gpu-expected.txt new file mode 100644 index 0000000..5ed44c46 --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac14-arm64/virtual/webnn-service-with-gpu/external/wpt/webnn/conformance_tests/layer_normalization.https.any_gpu-expected.txt
@@ -0,0 +1,7 @@ +This is a testharness.js-based test. +[FAIL] layerNormalization float32 4D tensor options.bias and options.axes=[3, 1, 2] + promise_test: Unhandled rejection with value: object "NotSupportedError: Failed to execute 'build' on 'MLGraphBuilder': Axes must be ordered for layerNormalization." +[FAIL] layerNormalization float32 4D tensor all options + promise_test: Unhandled rejection with value: object "NotSupportedError: Failed to execute 'build' on 'MLGraphBuilder': Axes must be ordered for layerNormalization." +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac15-arm64/virtual/webnn-service-on-npu/external/wpt/webnn/conformance_tests/layer_normalization.https.any.worker_npu-expected.txt b/third_party/blink/web_tests/platform/mac-mac15-arm64/virtual/webnn-service-on-npu/external/wpt/webnn/conformance_tests/layer_normalization.https.any.worker_npu-expected.txt new file mode 100644 index 0000000..5ed44c46 --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac15-arm64/virtual/webnn-service-on-npu/external/wpt/webnn/conformance_tests/layer_normalization.https.any.worker_npu-expected.txt
@@ -0,0 +1,7 @@ +This is a testharness.js-based test. +[FAIL] layerNormalization float32 4D tensor options.bias and options.axes=[3, 1, 2] + promise_test: Unhandled rejection with value: object "NotSupportedError: Failed to execute 'build' on 'MLGraphBuilder': Axes must be ordered for layerNormalization." +[FAIL] layerNormalization float32 4D tensor all options + promise_test: Unhandled rejection with value: object "NotSupportedError: Failed to execute 'build' on 'MLGraphBuilder': Axes must be ordered for layerNormalization." +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac15-arm64/virtual/webnn-service-on-npu/external/wpt/webnn/conformance_tests/layer_normalization.https.any_npu-expected.txt b/third_party/blink/web_tests/platform/mac-mac15-arm64/virtual/webnn-service-on-npu/external/wpt/webnn/conformance_tests/layer_normalization.https.any_npu-expected.txt new file mode 100644 index 0000000..5ed44c46 --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac15-arm64/virtual/webnn-service-on-npu/external/wpt/webnn/conformance_tests/layer_normalization.https.any_npu-expected.txt
@@ -0,0 +1,7 @@ +This is a testharness.js-based test. +[FAIL] layerNormalization float32 4D tensor options.bias and options.axes=[3, 1, 2] + promise_test: Unhandled rejection with value: object "NotSupportedError: Failed to execute 'build' on 'MLGraphBuilder': Axes must be ordered for layerNormalization." +[FAIL] layerNormalization float32 4D tensor all options + promise_test: Unhandled rejection with value: object "NotSupportedError: Failed to execute 'build' on 'MLGraphBuilder': Axes must be ordered for layerNormalization." +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac15-arm64/virtual/webnn-service-with-gpu/external/wpt/webnn/conformance_tests/layer_normalization.https.any.worker_gpu-expected.txt b/third_party/blink/web_tests/platform/mac-mac15-arm64/virtual/webnn-service-with-gpu/external/wpt/webnn/conformance_tests/layer_normalization.https.any.worker_gpu-expected.txt new file mode 100644 index 0000000..5ed44c46 --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac15-arm64/virtual/webnn-service-with-gpu/external/wpt/webnn/conformance_tests/layer_normalization.https.any.worker_gpu-expected.txt
@@ -0,0 +1,7 @@ +This is a testharness.js-based test. +[FAIL] layerNormalization float32 4D tensor options.bias and options.axes=[3, 1, 2] + promise_test: Unhandled rejection with value: object "NotSupportedError: Failed to execute 'build' on 'MLGraphBuilder': Axes must be ordered for layerNormalization." +[FAIL] layerNormalization float32 4D tensor all options + promise_test: Unhandled rejection with value: object "NotSupportedError: Failed to execute 'build' on 'MLGraphBuilder': Axes must be ordered for layerNormalization." +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac-mac15-arm64/virtual/webnn-service-with-gpu/external/wpt/webnn/conformance_tests/layer_normalization.https.any_gpu-expected.txt b/third_party/blink/web_tests/platform/mac-mac15-arm64/virtual/webnn-service-with-gpu/external/wpt/webnn/conformance_tests/layer_normalization.https.any_gpu-expected.txt new file mode 100644 index 0000000..5ed44c46 --- /dev/null +++ b/third_party/blink/web_tests/platform/mac-mac15-arm64/virtual/webnn-service-with-gpu/external/wpt/webnn/conformance_tests/layer_normalization.https.any_gpu-expected.txt
@@ -0,0 +1,7 @@ +This is a testharness.js-based test. +[FAIL] layerNormalization float32 4D tensor options.bias and options.axes=[3, 1, 2] + promise_test: Unhandled rejection with value: object "NotSupportedError: Failed to execute 'build' on 'MLGraphBuilder': Axes must be ordered for layerNormalization." +[FAIL] layerNormalization float32 4D tensor all options + promise_test: Unhandled rejection with value: object "NotSupportedError: Failed to execute 'build' on 'MLGraphBuilder': Axes must be ordered for layerNormalization." +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/mac/virtual/webnn-service-on-cpu/external/wpt/webnn/conformance_tests/lstm_cell.https.any.worker_cpu-expected.txt b/third_party/blink/web_tests/platform/mac/virtual/webnn-service-on-cpu/external/wpt/webnn/conformance_tests/lstm_cell.https.any.worker_cpu-expected.txt deleted file mode 100644 index 86f56a4..0000000 --- a/third_party/blink/web_tests/platform/mac/virtual/webnn-service-on-cpu/external/wpt/webnn/conformance_tests/lstm_cell.https.any.worker_cpu-expected.txt +++ /dev/null
@@ -1,13 +0,0 @@ -This is a testharness.js-based test. -[FAIL] lstmCell float32 tensors with options.bias, options.recurrentBias and options.activations=['relu', 'relu', 'relu'] - promise_test: Unhandled rejection with value: object "TypeError: Failed to execute 'lstmCell' on 'MLGraphBuilder': Unsupported data type float32 for argument input, must be one of []." -[FAIL] lstmCell float32 tensors with options.bias, options.recurrentBias, options.activations=['relu', 'relu', 'relu'] and options.peepholeWeight - promise_test: Unhandled rejection with value: object "TypeError: Failed to execute 'lstmCell' on 'MLGraphBuilder': Unsupported data type float32 for argument input, must be one of []." -[FAIL] lstmCell float32 tensors with options.bias, options.recurrentBias, options.activations=['relu', 'relu', 'relu'] and explicit options.layout='iofg' - promise_test: Unhandled rejection with value: object "TypeError: Failed to execute 'lstmCell' on 'MLGraphBuilder': Unsupported data type float32 for argument input, must be one of []." -[FAIL] lstmCell float32 tensors with options.bias, options.recurrentBias, options.activations=['relu', 'relu', 'relu'] and options.layout='ifgo' - promise_test: Unhandled rejection with value: object "TypeError: Failed to execute 'lstmCell' on 'MLGraphBuilder': Unsupported data type float32 for argument input, must be one of []." -[FAIL] lstmCell float32 tensors with all options - promise_test: Unhandled rejection with value: object "TypeError: Failed to execute 'lstmCell' on 'MLGraphBuilder': Unsupported data type float32 for argument input, must be one of []." -Harness: the test ran to completion. -
diff --git a/third_party/blink/web_tests/platform/mac/virtual/webnn-service-on-cpu/external/wpt/webnn/conformance_tests/lstm_cell.https.any_cpu-expected.txt b/third_party/blink/web_tests/platform/mac/virtual/webnn-service-on-cpu/external/wpt/webnn/conformance_tests/lstm_cell.https.any_cpu-expected.txt deleted file mode 100644 index 86f56a4..0000000 --- a/third_party/blink/web_tests/platform/mac/virtual/webnn-service-on-cpu/external/wpt/webnn/conformance_tests/lstm_cell.https.any_cpu-expected.txt +++ /dev/null
@@ -1,13 +0,0 @@ -This is a testharness.js-based test. -[FAIL] lstmCell float32 tensors with options.bias, options.recurrentBias and options.activations=['relu', 'relu', 'relu'] - promise_test: Unhandled rejection with value: object "TypeError: Failed to execute 'lstmCell' on 'MLGraphBuilder': Unsupported data type float32 for argument input, must be one of []." -[FAIL] lstmCell float32 tensors with options.bias, options.recurrentBias, options.activations=['relu', 'relu', 'relu'] and options.peepholeWeight - promise_test: Unhandled rejection with value: object "TypeError: Failed to execute 'lstmCell' on 'MLGraphBuilder': Unsupported data type float32 for argument input, must be one of []." -[FAIL] lstmCell float32 tensors with options.bias, options.recurrentBias, options.activations=['relu', 'relu', 'relu'] and explicit options.layout='iofg' - promise_test: Unhandled rejection with value: object "TypeError: Failed to execute 'lstmCell' on 'MLGraphBuilder': Unsupported data type float32 for argument input, must be one of []." -[FAIL] lstmCell float32 tensors with options.bias, options.recurrentBias, options.activations=['relu', 'relu', 'relu'] and options.layout='ifgo' - promise_test: Unhandled rejection with value: object "TypeError: Failed to execute 'lstmCell' on 'MLGraphBuilder': Unsupported data type float32 for argument input, must be one of []." -[FAIL] lstmCell float32 tensors with all options - promise_test: Unhandled rejection with value: object "TypeError: Failed to execute 'lstmCell' on 'MLGraphBuilder': Unsupported data type float32 for argument input, must be one of []." -Harness: the test ran to completion. -
diff --git a/third_party/blink/web_tests/platform/mac/virtual/webnn-service-with-gpu/external/wpt/webnn/conformance_tests/layer_normalization.https.any.worker_gpu-expected.txt b/third_party/blink/web_tests/platform/mac/virtual/webnn-service-with-gpu/external/wpt/webnn/conformance_tests/layer_normalization.https.any.worker_gpu-expected.txt index 5ed44c46..5520c64 100644 --- a/third_party/blink/web_tests/platform/mac/virtual/webnn-service-with-gpu/external/wpt/webnn/conformance_tests/layer_normalization.https.any.worker_gpu-expected.txt +++ b/third_party/blink/web_tests/platform/mac/virtual/webnn-service-with-gpu/external/wpt/webnn/conformance_tests/layer_normalization.https.any.worker_gpu-expected.txt
@@ -1,4 +1,6 @@ This is a testharness.js-based test. +[FAIL] layerNormalization float32 2D tensor axes=[] and options.bias + assert_array_approx_equals: test layerNormalization float32 property 0, expected 7.862982749938965 +/- 0.0009765625, expected 7.862982749938965 but got 7.859375 [FAIL] layerNormalization float32 4D tensor options.bias and options.axes=[3, 1, 2] promise_test: Unhandled rejection with value: object "NotSupportedError: Failed to execute 'build' on 'MLGraphBuilder': Axes must be ordered for layerNormalization." [FAIL] layerNormalization float32 4D tensor all options
diff --git a/third_party/blink/web_tests/platform/mac/virtual/webnn-service-with-gpu/external/wpt/webnn/conformance_tests/layer_normalization.https.any_gpu-expected.txt b/third_party/blink/web_tests/platform/mac/virtual/webnn-service-with-gpu/external/wpt/webnn/conformance_tests/layer_normalization.https.any_gpu-expected.txt index 5ed44c46..5520c64 100644 --- a/third_party/blink/web_tests/platform/mac/virtual/webnn-service-with-gpu/external/wpt/webnn/conformance_tests/layer_normalization.https.any_gpu-expected.txt +++ b/third_party/blink/web_tests/platform/mac/virtual/webnn-service-with-gpu/external/wpt/webnn/conformance_tests/layer_normalization.https.any_gpu-expected.txt
@@ -1,4 +1,6 @@ This is a testharness.js-based test. +[FAIL] layerNormalization float32 2D tensor axes=[] and options.bias + assert_array_approx_equals: test layerNormalization float32 property 0, expected 7.862982749938965 +/- 0.0009765625, expected 7.862982749938965 but got 7.859375 [FAIL] layerNormalization float32 4D tensor options.bias and options.axes=[3, 1, 2] promise_test: Unhandled rejection with value: object "NotSupportedError: Failed to execute 'build' on 'MLGraphBuilder': Axes must be ordered for layerNormalization." [FAIL] layerNormalization float32 4D tensor all options
diff --git a/third_party/blink/web_tests/platform/mac/virtual/webnn-service-with-gpu/external/wpt/webnn/conformance_tests/lstm_cell.https.any.worker_gpu-expected.txt b/third_party/blink/web_tests/platform/mac/virtual/webnn-service-with-gpu/external/wpt/webnn/conformance_tests/lstm_cell.https.any.worker_gpu-expected.txt deleted file mode 100644 index 86f56a4..0000000 --- a/third_party/blink/web_tests/platform/mac/virtual/webnn-service-with-gpu/external/wpt/webnn/conformance_tests/lstm_cell.https.any.worker_gpu-expected.txt +++ /dev/null
@@ -1,13 +0,0 @@ -This is a testharness.js-based test. -[FAIL] lstmCell float32 tensors with options.bias, options.recurrentBias and options.activations=['relu', 'relu', 'relu'] - promise_test: Unhandled rejection with value: object "TypeError: Failed to execute 'lstmCell' on 'MLGraphBuilder': Unsupported data type float32 for argument input, must be one of []." -[FAIL] lstmCell float32 tensors with options.bias, options.recurrentBias, options.activations=['relu', 'relu', 'relu'] and options.peepholeWeight - promise_test: Unhandled rejection with value: object "TypeError: Failed to execute 'lstmCell' on 'MLGraphBuilder': Unsupported data type float32 for argument input, must be one of []." -[FAIL] lstmCell float32 tensors with options.bias, options.recurrentBias, options.activations=['relu', 'relu', 'relu'] and explicit options.layout='iofg' - promise_test: Unhandled rejection with value: object "TypeError: Failed to execute 'lstmCell' on 'MLGraphBuilder': Unsupported data type float32 for argument input, must be one of []." -[FAIL] lstmCell float32 tensors with options.bias, options.recurrentBias, options.activations=['relu', 'relu', 'relu'] and options.layout='ifgo' - promise_test: Unhandled rejection with value: object "TypeError: Failed to execute 'lstmCell' on 'MLGraphBuilder': Unsupported data type float32 for argument input, must be one of []." -[FAIL] lstmCell float32 tensors with all options - promise_test: Unhandled rejection with value: object "TypeError: Failed to execute 'lstmCell' on 'MLGraphBuilder': Unsupported data type float32 for argument input, must be one of []." -Harness: the test ran to completion. -
diff --git a/third_party/blink/web_tests/platform/mac/virtual/webnn-service-with-gpu/external/wpt/webnn/conformance_tests/lstm_cell.https.any_gpu-expected.txt b/third_party/blink/web_tests/platform/mac/virtual/webnn-service-with-gpu/external/wpt/webnn/conformance_tests/lstm_cell.https.any_gpu-expected.txt deleted file mode 100644 index 86f56a4..0000000 --- a/third_party/blink/web_tests/platform/mac/virtual/webnn-service-with-gpu/external/wpt/webnn/conformance_tests/lstm_cell.https.any_gpu-expected.txt +++ /dev/null
@@ -1,13 +0,0 @@ -This is a testharness.js-based test. -[FAIL] lstmCell float32 tensors with options.bias, options.recurrentBias and options.activations=['relu', 'relu', 'relu'] - promise_test: Unhandled rejection with value: object "TypeError: Failed to execute 'lstmCell' on 'MLGraphBuilder': Unsupported data type float32 for argument input, must be one of []." -[FAIL] lstmCell float32 tensors with options.bias, options.recurrentBias, options.activations=['relu', 'relu', 'relu'] and options.peepholeWeight - promise_test: Unhandled rejection with value: object "TypeError: Failed to execute 'lstmCell' on 'MLGraphBuilder': Unsupported data type float32 for argument input, must be one of []." -[FAIL] lstmCell float32 tensors with options.bias, options.recurrentBias, options.activations=['relu', 'relu', 'relu'] and explicit options.layout='iofg' - promise_test: Unhandled rejection with value: object "TypeError: Failed to execute 'lstmCell' on 'MLGraphBuilder': Unsupported data type float32 for argument input, must be one of []." -[FAIL] lstmCell float32 tensors with options.bias, options.recurrentBias, options.activations=['relu', 'relu', 'relu'] and options.layout='ifgo' - promise_test: Unhandled rejection with value: object "TypeError: Failed to execute 'lstmCell' on 'MLGraphBuilder': Unsupported data type float32 for argument input, must be one of []." -[FAIL] lstmCell float32 tensors with all options - promise_test: Unhandled rejection with value: object "TypeError: Failed to execute 'lstmCell' on 'MLGraphBuilder': Unsupported data type float32 for argument input, must be one of []." -Harness: the test ran to completion. -
diff --git a/third_party/blink/web_tests/platform/win/virtual/webnn-service-with-gpu/external/wpt/webnn/conformance_tests/layer_normalization.https.any.worker_gpu-expected.txt b/third_party/blink/web_tests/platform/win/virtual/webnn-service-with-gpu/external/wpt/webnn/conformance_tests/layer_normalization.https.any.worker_gpu-expected.txt new file mode 100644 index 0000000..701c51b --- /dev/null +++ b/third_party/blink/web_tests/platform/win/virtual/webnn-service-with-gpu/external/wpt/webnn/conformance_tests/layer_normalization.https.any.worker_gpu-expected.txt
@@ -0,0 +1,9 @@ +This is a testharness.js-based test. +[FAIL] layerNormalization float32 0D tensor default options + assert_array_approx_equals: test layerNormalization float32 property 0, expected 0 +/- 0.0009765625, expected 0 but got NaN +[FAIL] layerNormalization float32 2D tensor axes=[] and options.bias + assert_array_approx_equals: test layerNormalization float32 property 0, expected 7.862982749938965 +/- 0.0009765625, expected 7.862982749938965 but got NaN +[FAIL] layerNormalization float32 2D tensor axes=[] + assert_array_approx_equals: test layerNormalization float32 property 0, expected 0 +/- 0.0009765625, expected 0 but got NaN +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/platform/win/virtual/webnn-service-with-gpu/external/wpt/webnn/conformance_tests/layer_normalization.https.any_gpu-expected.txt b/third_party/blink/web_tests/platform/win/virtual/webnn-service-with-gpu/external/wpt/webnn/conformance_tests/layer_normalization.https.any_gpu-expected.txt new file mode 100644 index 0000000..701c51b --- /dev/null +++ b/third_party/blink/web_tests/platform/win/virtual/webnn-service-with-gpu/external/wpt/webnn/conformance_tests/layer_normalization.https.any_gpu-expected.txt
@@ -0,0 +1,9 @@ +This is a testharness.js-based test. +[FAIL] layerNormalization float32 0D tensor default options + assert_array_approx_equals: test layerNormalization float32 property 0, expected 0 +/- 0.0009765625, expected 0 but got NaN +[FAIL] layerNormalization float32 2D tensor axes=[] and options.bias + assert_array_approx_equals: test layerNormalization float32 property 0, expected 7.862982749938965 +/- 0.0009765625, expected 7.862982749938965 but got NaN +[FAIL] layerNormalization float32 2D tensor axes=[] + assert_array_approx_equals: test layerNormalization float32 property 0, expected 0 +/- 0.0009765625, expected 0 but got NaN +Harness: the test ran to completion. +
diff --git a/third_party/blink/web_tests/resources/testharness.js b/third_party/blink/web_tests/resources/testharness.js index 04c65eb2..81cf617 100644 --- a/third_party/blink/web_tests/resources/testharness.js +++ b/third_party/blink/web_tests/resources/testharness.js
@@ -1094,7 +1094,7 @@ { if (typeof func !== "function") { tests.set_status(tests.status.ERROR, - "promise_test invoked without a function"); + "`promise_setup` invoked without a function"); tests.complete(); return; }
diff --git a/third_party/blink/web_tests/virtual/webnn-service-on-npu/external/wpt/webnn/conformance_tests/layer_normalization.https.any.worker_npu-expected.txt b/third_party/blink/web_tests/virtual/webnn-service-on-npu/external/wpt/webnn/conformance_tests/layer_normalization.https.any.worker_npu-expected.txt index 5ed44c46..5520c64 100644 --- a/third_party/blink/web_tests/virtual/webnn-service-on-npu/external/wpt/webnn/conformance_tests/layer_normalization.https.any.worker_npu-expected.txt +++ b/third_party/blink/web_tests/virtual/webnn-service-on-npu/external/wpt/webnn/conformance_tests/layer_normalization.https.any.worker_npu-expected.txt
@@ -1,4 +1,6 @@ This is a testharness.js-based test. +[FAIL] layerNormalization float32 2D tensor axes=[] and options.bias + assert_array_approx_equals: test layerNormalization float32 property 0, expected 7.862982749938965 +/- 0.0009765625, expected 7.862982749938965 but got 7.859375 [FAIL] layerNormalization float32 4D tensor options.bias and options.axes=[3, 1, 2] promise_test: Unhandled rejection with value: object "NotSupportedError: Failed to execute 'build' on 'MLGraphBuilder': Axes must be ordered for layerNormalization." [FAIL] layerNormalization float32 4D tensor all options
diff --git a/third_party/blink/web_tests/virtual/webnn-service-on-npu/external/wpt/webnn/conformance_tests/layer_normalization.https.any_npu-expected.txt b/third_party/blink/web_tests/virtual/webnn-service-on-npu/external/wpt/webnn/conformance_tests/layer_normalization.https.any_npu-expected.txt index 5ed44c46..5520c64 100644 --- a/third_party/blink/web_tests/virtual/webnn-service-on-npu/external/wpt/webnn/conformance_tests/layer_normalization.https.any_npu-expected.txt +++ b/third_party/blink/web_tests/virtual/webnn-service-on-npu/external/wpt/webnn/conformance_tests/layer_normalization.https.any_npu-expected.txt
@@ -1,4 +1,6 @@ This is a testharness.js-based test. +[FAIL] layerNormalization float32 2D tensor axes=[] and options.bias + assert_array_approx_equals: test layerNormalization float32 property 0, expected 7.862982749938965 +/- 0.0009765625, expected 7.862982749938965 but got 7.859375 [FAIL] layerNormalization float32 4D tensor options.bias and options.axes=[3, 1, 2] promise_test: Unhandled rejection with value: object "NotSupportedError: Failed to execute 'build' on 'MLGraphBuilder': Axes must be ordered for layerNormalization." [FAIL] layerNormalization float32 4D tensor all options
diff --git a/third_party/blink/web_tests/virtual/webnn-service-on-npu/external/wpt/webnn/conformance_tests/lstm_cell.https.any.worker_npu-expected.txt b/third_party/blink/web_tests/virtual/webnn-service-on-npu/external/wpt/webnn/conformance_tests/lstm_cell.https.any.worker_npu-expected.txt deleted file mode 100644 index 86f56a4..0000000 --- a/third_party/blink/web_tests/virtual/webnn-service-on-npu/external/wpt/webnn/conformance_tests/lstm_cell.https.any.worker_npu-expected.txt +++ /dev/null
@@ -1,13 +0,0 @@ -This is a testharness.js-based test. -[FAIL] lstmCell float32 tensors with options.bias, options.recurrentBias and options.activations=['relu', 'relu', 'relu'] - promise_test: Unhandled rejection with value: object "TypeError: Failed to execute 'lstmCell' on 'MLGraphBuilder': Unsupported data type float32 for argument input, must be one of []." -[FAIL] lstmCell float32 tensors with options.bias, options.recurrentBias, options.activations=['relu', 'relu', 'relu'] and options.peepholeWeight - promise_test: Unhandled rejection with value: object "TypeError: Failed to execute 'lstmCell' on 'MLGraphBuilder': Unsupported data type float32 for argument input, must be one of []." -[FAIL] lstmCell float32 tensors with options.bias, options.recurrentBias, options.activations=['relu', 'relu', 'relu'] and explicit options.layout='iofg' - promise_test: Unhandled rejection with value: object "TypeError: Failed to execute 'lstmCell' on 'MLGraphBuilder': Unsupported data type float32 for argument input, must be one of []." -[FAIL] lstmCell float32 tensors with options.bias, options.recurrentBias, options.activations=['relu', 'relu', 'relu'] and options.layout='ifgo' - promise_test: Unhandled rejection with value: object "TypeError: Failed to execute 'lstmCell' on 'MLGraphBuilder': Unsupported data type float32 for argument input, must be one of []." -[FAIL] lstmCell float32 tensors with all options - promise_test: Unhandled rejection with value: object "TypeError: Failed to execute 'lstmCell' on 'MLGraphBuilder': Unsupported data type float32 for argument input, must be one of []." -Harness: the test ran to completion. -
diff --git a/third_party/blink/web_tests/virtual/webnn-service-on-npu/external/wpt/webnn/conformance_tests/lstm_cell.https.any_npu-expected.txt b/third_party/blink/web_tests/virtual/webnn-service-on-npu/external/wpt/webnn/conformance_tests/lstm_cell.https.any_npu-expected.txt deleted file mode 100644 index 86f56a4..0000000 --- a/third_party/blink/web_tests/virtual/webnn-service-on-npu/external/wpt/webnn/conformance_tests/lstm_cell.https.any_npu-expected.txt +++ /dev/null
@@ -1,13 +0,0 @@ -This is a testharness.js-based test. -[FAIL] lstmCell float32 tensors with options.bias, options.recurrentBias and options.activations=['relu', 'relu', 'relu'] - promise_test: Unhandled rejection with value: object "TypeError: Failed to execute 'lstmCell' on 'MLGraphBuilder': Unsupported data type float32 for argument input, must be one of []." -[FAIL] lstmCell float32 tensors with options.bias, options.recurrentBias, options.activations=['relu', 'relu', 'relu'] and options.peepholeWeight - promise_test: Unhandled rejection with value: object "TypeError: Failed to execute 'lstmCell' on 'MLGraphBuilder': Unsupported data type float32 for argument input, must be one of []." -[FAIL] lstmCell float32 tensors with options.bias, options.recurrentBias, options.activations=['relu', 'relu', 'relu'] and explicit options.layout='iofg' - promise_test: Unhandled rejection with value: object "TypeError: Failed to execute 'lstmCell' on 'MLGraphBuilder': Unsupported data type float32 for argument input, must be one of []." -[FAIL] lstmCell float32 tensors with options.bias, options.recurrentBias, options.activations=['relu', 'relu', 'relu'] and options.layout='ifgo' - promise_test: Unhandled rejection with value: object "TypeError: Failed to execute 'lstmCell' on 'MLGraphBuilder': Unsupported data type float32 for argument input, must be one of []." -[FAIL] lstmCell float32 tensors with all options - promise_test: Unhandled rejection with value: object "TypeError: Failed to execute 'lstmCell' on 'MLGraphBuilder': Unsupported data type float32 for argument input, must be one of []." -Harness: the test ran to completion. -
diff --git a/third_party/chromite b/third_party/chromite index d8cadf1..9c99f73 160000 --- a/third_party/chromite +++ b/third_party/chromite
@@ -1 +1 @@ -Subproject commit d8cadf19e5362d8d204ff96dcda6644dedbe9029 +Subproject commit 9c99f738698cd3e52308a75daca572490f4b8623
diff --git a/third_party/dawn b/third_party/dawn index 66bf64e..61f029a 160000 --- a/third_party/dawn +++ b/third_party/dawn
@@ -1 +1 @@ -Subproject commit 66bf64e67071911fffd159a4e3d556d055e76d85 +Subproject commit 61f029ad73e4cb0bf986b37731d22b8b20a04498
diff --git a/third_party/depot_tools b/third_party/depot_tools index 719139c..af5e0b1 160000 --- a/third_party/depot_tools +++ b/third_party/depot_tools
@@ -1 +1 @@ -Subproject commit 719139c30a4a51ee83554d563e8a46411756a57c +Subproject commit af5e0b1f0f190174e92de6fc641ca29a458df8d2
diff --git a/third_party/libei/3pp/3pp.pb b/third_party/libei/3pp/3pp.pb index 8b2952ac1..81b0ab02 100644 --- a/third_party/libei/3pp/3pp.pb +++ b/third_party/libei/3pp/3pp.pb
@@ -2,8 +2,8 @@ platform_re: "linux-.*" source { script { name: "fetch.py" } } build { - dep: "chromium/third_party/dbus" install: "install.sh" + external_tool: "infra/3pp/tools/cpython3/${platform}@3@3.11.10.chromium.35" } }
diff --git a/third_party/libei/3pp/fetch.py b/third_party/libei/3pp/fetch.py index 710d4f2c..450ed14 100755 --- a/third_party/libei/3pp/fetch.py +++ b/third_party/libei/3pp/fetch.py
@@ -5,26 +5,32 @@ import argparse import json -import os +import urllib.request + +def latest(): + request = urllib.request.Request('https://gitlab.freedesktop.org/libinput/' + 'libei/-/releases/permalink/latest', + method='HEAD') + response = urllib.request.urlopen(request) + return response.url.split('/')[-1] + def do_latest(*args, **kwargs): - print('main') + print(latest()) def get_download_url(*args, **kwargs): + version = latest() + urls = [ "https://gitlab.freedesktop.org/libinput/libei/-/" - "archive/main/libei-main.tar.gz", - "https://files.pythonhosted.org/packages/95/" - "7e/68018b70268fb4a2a605e2be44ab7b4dd7ce7808adae6c5ef32e34f4b55a/" - "MarkupSafe-2.1.2.tar.gz", + f"archive/{version}/libei-{version}.tar.gz", "https://github.com/WayneD/rsync/archive/refs/tags/v3.2.7.tar.gz", "https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.4.114.tar.gz", ] packages = [ - "libei-main.tar.gz", - "MarkupSafe-2.1.2.tar.gz", + f"libei-{version}.tar.gz", "v3.2.7.tar.gz", # rsync tar ball "linux-5.4.114.tar.gz", ]
diff --git a/third_party/libei/3pp/install.sh b/third_party/libei/3pp/install.sh index 9c4eea2..3ce520d6 100755 --- a/third_party/libei/3pp/install.sh +++ b/third_party/libei/3pp/install.sh
@@ -18,33 +18,15 @@ mkdir -p helper_pkgs HELPER_PKGS_PATH="$PWD/helper_pkgs" -# libei can be only build using Meson. We need Meson only to build libei -# so it doesn't have to be uploaded to CIPD. -export PYTHONPATH="$HELPER_PKGS_PATH/lib64/python3.6/site-packages:$HELPER_PKGS_PATH/lib/python3.6/site-packages/" - echo "Installing dependencies to build libei" -# Meson 0.62 and newer will require Python 3.7 and newer and Ubuntu 18.04 has -# only Python 3.6 -python3 -m pip install meson==0.61.5 --prefix="$HELPER_PKGS_PATH" +# Will install into /work/tools_prefix, since that's where Python is. +python3 -m pip install --upgrade pip +python3 -m pip install meson +python3 -m pip install attrs +python3 -m pip install jinja2 -export PKG_CONFIG_PATH="$DEPS_PREFIX/lib64/pkgconfig" -export PATH="$PATH:$HELPER_PKGS_PATH:$HELPER_PKGS_PATH/bin" - -# Install required dependencies -python3 -m pip install --upgrade pip --prefix="$HELPER_PKGS_PATH" -python3 -m pip install cmake --prefer-binary --prefix="$HELPER_PKGS_PATH" -python3 -m pip install python-dbusmock --prefix="$HELPER_PKGS_PATH" -python3 -m pip install attr --prefix="$HELPER_PKGS_PATH" -python3 -m pip install pytest -v --prefer-binary --prefix="$HELPER_PKGS_PATH" 2>&1 -python3 -m pip install structlog --prefix="$HELPER_PKGS_PATH" -python3 -m pip install jinja2 --prefix="$HELPER_PKGS_PATH" - -echo "Installing MarkupSafe (a dependency for jinja2)" -tar xf MarkupSafe-2.1.2.tar.gz -cd MarkupSafe-2.1.2 -python3 setup.py install --prefix="$HELPER_PKGS_PATH" -cd .. +export PATH="$HELPER_PKGS_PATH/bin:$PATH" echo "Installing rsync (needed by linux headers)" tar xf v3.2.7.tar.gz @@ -61,25 +43,22 @@ echo "Installing linux headers (libei depends on input-event-code.h)" tar xf linux-5.4.114.tar.gz cd linux-5.4.114 -# make headers_install INSTALL_HDR_PATH=/usr -make headers_install INSTALL_HDR_PATH=$PREFIX +make headers_install INSTALL_HDR_PATH="$HELPER_PKGS_PATH" cd .. echo "Building libei" -tar xf libei-main.tar.gz -cd libei-main +tar xf libei-*.tar.gz +cd libei-*/ echo "Compiler details (including search paths):" `gcc -print-prog-name=cpp` -v -$HELPER_PKGS_PATH/bin/meson setup -D c_args="-I$PREFIX/include" \ - -D c_link_args="-lm" build . --default-library=static \ +meson setup -D c_args="-I$HELPER_PKGS_PATH/include" \ + -D c_link_args="-lm" -D liboeffis=disabled build . --default-library=static \ --prefix=$PREFIX --includedir=include -$HELPER_PKGS_PATH/bin/meson --buildtype=plain --prefix="$PREFIX" . build \ - -D docs=disabled -D man=disabled -$HELPER_PKGS_PATH/bin/meson compile -C build --verbose -$HELPER_PKGS_PATH/bin/meson install -C build --no-rebuild +meson compile -C build --verbose +meson install -C build --no-rebuild -# We need pkgconfig file to point to location where it's going to be deployed -# and not where it was installed -sed "s@$PREFIX@$DEPS_PREFIX@" -i "$PREFIX/lib64/pkgconfig/libei.pc" +# pkgconfig files point into the working directory, and we don't need them +# anyway. +rm -R "$PREFIX/lib64/pkgconfig" \ No newline at end of file
diff --git a/third_party/llvm-libc/src b/third_party/llvm-libc/src index b4a4af5..4f9b6ad 160000 --- a/third_party/llvm-libc/src +++ b/third_party/llvm-libc/src
@@ -1 +1 @@ -Subproject commit b4a4af5376f504155253e5c6990f16a2cf765e38 +Subproject commit 4f9b6ad674f8bfdb3257db3a329edbd7de41ebb1
diff --git a/third_party/nyx-packer/OWNERS b/third_party/nyx-packer/OWNERS index 695fa39..2a1f8b4 100644 --- a/third_party/nyx-packer/OWNERS +++ b/third_party/nyx-packer/OWNERS
@@ -1,2 +1 @@ - bookholt@chromium.org markbrand@google.com
diff --git a/third_party/perfetto b/third_party/perfetto index fcccdd3..b4244bf 160000 --- a/third_party/perfetto +++ b/third_party/perfetto
@@ -1 +1 @@ -Subproject commit fcccdd3940f8af65623a5ba999f82396ef672c41 +Subproject commit b4244bf5199d1db21af2589c60f902c2a248def0
diff --git a/third_party/skia b/third_party/skia index df9fc62..9d993ac 160000 --- a/third_party/skia +++ b/third_party/skia
@@ -1 +1 @@ -Subproject commit df9fc6209031f534cfdefab4c834e26d4721561f +Subproject commit 9d993ac998839c9541e00d04151c3f28ffa083bb
diff --git a/third_party/webrtc b/third_party/webrtc index 6d0ecac3..d004aee 160000 --- a/third_party/webrtc +++ b/third_party/webrtc
@@ -1 +1 @@ -Subproject commit 6d0ecac3dd29ff7937c161a92c8dee543609f213 +Subproject commit d004aee4a41f3fba3b29ef33be2c4f07f2ceb1e7
diff --git a/third_party/webrtc_overrides/BUILD.gn b/third_party/webrtc_overrides/BUILD.gn index 955efce7..336dfe6 100644 --- a/third_party/webrtc_overrides/BUILD.gn +++ b/third_party/webrtc_overrides/BUILD.gn
@@ -112,7 +112,20 @@ "//third_party/webrtc/modules/video_coding/svc:scalability_mode_util", "//third_party/webrtc/modules/video_coding/svc:scalability_structures", "//third_party/webrtc/modules/video_coding/svc:simulcast_to_svc_converter", - "//third_party/webrtc/p2p:rtc_p2p", + "//third_party/webrtc/p2p:basic_packet_socket_factory", + "//third_party/webrtc/p2p:basic_port_allocator", + "//third_party/webrtc/p2p:connection", + "//third_party/webrtc/p2p:ice_controller_interface", + "//third_party/webrtc/p2p:ice_switch_reason", + "//third_party/webrtc/p2p:ice_transport_internal", + "//third_party/webrtc/p2p:p2p_constants", + "//third_party/webrtc/p2p:p2p_transport_channel", + "//third_party/webrtc/p2p:packet_transport_internal", + "//third_party/webrtc/p2p:port", + "//third_party/webrtc/p2p:port_allocator", + "//third_party/webrtc/p2p:port_interface", + "//third_party/webrtc/p2p:pseudo_tcp", + "//third_party/webrtc/p2p:transport_description", "//third_party/webrtc/pc:ice_server_parsing", "//third_party/webrtc/pc:libjingle_peerconnection", "//third_party/webrtc/pc:media_session", @@ -346,7 +359,18 @@ "//third_party/webrtc/api:make_ref_counted", "//third_party/webrtc/api:rtc_error", "//third_party/webrtc/api:scoped_refptr", - "//third_party/webrtc/p2p:rtc_p2p", + "//third_party/webrtc/p2p:active_ice_controller_factory_interface", + "//third_party/webrtc/p2p:active_ice_controller_interface", + "//third_party/webrtc/p2p:basic_ice_controller", + "//third_party/webrtc/p2p:connection", + "//third_party/webrtc/p2p:default_ice_transport_factory", + "//third_party/webrtc/p2p:ice_agent_interface", + "//third_party/webrtc/p2p:ice_controller_interface", + "//third_party/webrtc/p2p:ice_switch_reason", + "//third_party/webrtc/p2p:ice_transport_internal", + "//third_party/webrtc/p2p:ice_transport_internal", + "//third_party/webrtc/p2p:p2p_transport_channel", + "//third_party/webrtc/p2p:transport_description", "//third_party/webrtc/rtc_base:logging", "//third_party/webrtc/rtc_base:stringutils", "//third_party/webrtc/rtc_base/system:rtc_export",
diff --git a/tools/android/build_speed/benchmark.py b/tools/android/build_speed/benchmark.py index ef034a4..d8db71b 100755 --- a/tools/android/build_speed/benchmark.py +++ b/tools/android/build_speed/benchmark.py
@@ -143,7 +143,7 @@ Benchmark( name='chrome_java_nosig', from_string='super.onCreate();', - to_string='super.onCreate();String test = "Test";', + to_string='super.onCreate();super.onCreate();', change_file= 'chrome/android/java/src/org/chromium/chrome/browser/ChromeApplicationImpl.java', # pylint: disable=line-too-long ),
diff --git a/tools/metrics/actions/actions.xml b/tools/metrics/actions/actions.xml index ee1623e1..1a551198 100644 --- a/tools/metrics/actions/actions.xml +++ b/tools/metrics/actions/actions.xml
@@ -27889,6 +27889,51 @@ <description>Please enter the description of this user action.</description> </action> +<action name="NoticeQueue.PrivacySandboxNotice.QueueOnStartup"> + <owner>aashnas@google.com</owner> + <owner>koilos@google.com</owner> + <description> + Recorded when a Privacy Sandbox notice is required on startup and added to + the queue. + </description> +</action> + +<action name="NoticeQueue.PrivacySandboxNotice.QueueOnThOrNav"> + <owner>aashnas@google.com</owner> + <owner>koilos@google.com</owner> + <description> + Recorded when a Privacy Sandbox notice is required on tab helper creation or + user navigation and added to the queue. + </description> +</action> + +<action name="NoticeQueue.PrivacySandboxNotice.ReleaseOnDMA"> + <owner>aashnas@google.com</owner> + <owner>koilos@google.com</owner> + <description> + Recorded when a Privacy Sandbox notice is suppressed for the rest of the + session after a DMA notice and removed from the queue. + </description> +</action> + +<action name="NoticeQueue.PrivacySandboxNotice.ReleaseOnShown"> + <owner>aashnas@google.com</owner> + <owner>koilos@google.com</owner> + <description> + Recorded when a Privacy Sandbox notice is successfully shown and removed + from the queue. + </description> +</action> + +<action name="NoticeQueue.PrivacySandboxNotice.ReleaseOnThOrNav"> + <owner>aashnas@google.com</owner> + <owner>koilos@google.com</owner> + <description> + Recorded when a Privacy Sandbox notice is not required on tab helper + creation or user navigation and removed from the queue. + </description> +</action> + <action name="Notifications.Mute"> <owner>dewittj@chromium.org</owner> <description>
diff --git a/tools/metrics/histograms/enums.xml b/tools/metrics/histograms/enums.xml index 4e9a5e7..baeb3f0 100644 --- a/tools/metrics/histograms/enums.xml +++ b/tools/metrics/histograms/enums.xml
@@ -10931,6 +10931,8 @@ <int value="5215" label="CloseWatcherScriptConstructor"/> <int value="5216" label="Canvas2DImageSmoothingQuality2"/> <int value="5217" label="NonNoneTouchActionWouldLoseEditableHandwriting"/> + <int value="5218" + label="CSSEnvironmentVariable_SafeAreaInsetBottom_FastPath"/> </enum> <!-- LINT.ThenChange(//third_party/blink/public/mojom/use_counter/metrics/web_feature.mojom:WebFeature) --> @@ -16375,6 +16377,7 @@ <int value="-1606215707" label="WebAppWindowControlsOverlay:enabled"/> <int value="-1605920602" label="AVFoundationCaptureV2:disabled"/> <int value="-1605567628" label="disable-overlay-scrollbar"/> + <int value="-1605385621" label="PrivacySandboxAdsApiUxEnhancements:disabled"/> <int value="-1604519960" label="SystemKoreanPhysicalTyping:enabled"/> <int value="-1604478217" label="QuickAnswersRichCard:disabled"/> <int value="-1604051051" label="SpecialLocale:disabled"/> @@ -18306,6 +18309,7 @@ <int value="-831303896" label="TabStripGroupIndicatorsAndroid:enabled"/> <int value="-831066457" label="IncognitoBrandConsistencyForDesktop:disabled"/> <int value="-829665817" label="AltClickAndSixPackCustomization:enabled"/> + <int value="-829545582" label="PrivacySandboxAdsApiUxEnhancements:enabled"/> <int value="-829498062" label="HttpsFirstModeV2:disabled"/> <int value="-826848767" label="DataSharing:enabled"/> <int value="-826067311" label="MerchantTrust:disabled"/> @@ -27516,18 +27520,6 @@ <int value="1" label="Timed out"/> </enum> -<!-- LINT.IfChange(NoticeQueueState) --> - -<enum name="NoticeQueueState"> - <int value="0" label="Queued on Startup"/> - <int value="1" label="Queued on Tab Helper or DidFinishNav"/> - <int value="2" label="Released on Tab Helper or DidFinishNav"/> - <int value="3" label="Released on DMA"/> - <int value="4" label="Released on Shown"/> -</enum> - -<!-- LINT.ThenChange(/chrome/browser/privacy_sandbox/privacy_sandbox_service.h:NoticeQueueState) --> - <enum name="NotificationAppStatus"> <int value="0" label="Undeterminable (old Android version)"/> <int value="1" label="Undeterminable (exception thrown)"/>
diff --git a/tools/metrics/histograms/metadata/accessibility/histograms.xml b/tools/metrics/histograms/metadata/accessibility/histograms.xml index 42afebb..0a8afa80c 100644 --- a/tools/metrics/histograms/metadata/accessibility/histograms.xml +++ b/tools/metrics/histograms/metadata/accessibility/histograms.xml
@@ -1023,7 +1023,7 @@ <histogram name="Accessibility.CrosSpokenFeedback.BrailleDisplayConnected.ConnectionChanged" - enum="BooleanConnected" expires_after="2025-02-28"> + enum="BooleanConnected" expires_after="2025-06-08"> <owner>dtseng@chromium.org</owner> <owner>katie@chromium.org</owner> <owner>chrome-a11y-core@google.com</owner> @@ -1035,7 +1035,7 @@ <histogram name="Accessibility.CrosSpokenFeedback.BrailleDisplayConnected.ConnectionDuration" - units="seconds" expires_after="2025-02-28"> + units="seconds" expires_after="2025-06-08"> <owner>dtseng@chromium.org</owner> <owner>katie@chromium.org</owner> <owner>chrome-a11y-core@google.com</owner> @@ -1810,7 +1810,7 @@ </histogram> <histogram name="Accessibility.LiveTranslate.Ash.Boca.Babelorca.TargetLanguage" - enum="LocaleCodeISO639" expires_after="2025-04-04"> + enum="LocaleCodeISO639" expires_after="2025-06-08"> <owner>caott@google.com</owner> <owner>cros-edu-eng@google.com</owner> <summary> @@ -2110,7 +2110,7 @@ </histogram> <histogram name="Accessibility.Performance.AXObjectCacheImpl.Snapshot" - units="bytes" expires_after="2025-03-30"> + units="bytes" expires_after="2025-06-08"> <owner>kevers@chromium.org</owner> <owner>chrome-a11y-core@google.com</owner> <summary> @@ -2871,7 +2871,7 @@ </histogram> <histogram name="Accessibility.ScreenAI.OCR.Latency.{ImageSize}" units="ms" - expires_after="2025-04-06"> + expires_after="2025-06-08"> <owner>rhalavati@chromium.org</owner> <owner>chrome-a11y-core@google.com</owner> <summary> @@ -3188,7 +3188,7 @@ </histogram> <histogram name="DomDistiller.ReaderShownForPageLoad" enum="Boolean" - expires_after="2025-03-30"> + expires_after="2025-06-08"> <owner>mdjones@chromium.org</owner> <summary> Records if the panel became visible at any point after a page was navigated.
diff --git a/tools/metrics/histograms/metadata/android/histograms.xml b/tools/metrics/histograms/metadata/android/histograms.xml index 87d6ff7..9438f5e 100644 --- a/tools/metrics/histograms/metadata/android/histograms.xml +++ b/tools/metrics/histograms/metadata/android/histograms.xml
@@ -570,7 +570,7 @@ </histogram> <histogram name="Android.BackgroundTaskScheduler.TaskCanceled" - enum="BackgroundTaskId" expires_after="2025-04-06"> + enum="BackgroundTaskId" expires_after="2025-06-08"> <owner>nyquist@chromium.org</owner> <owner>shaktisahu@chromium.org</owner> <summary> @@ -610,7 +610,7 @@ </histogram> <histogram name="Android.BackgroundTaskScheduler.TaskExpired" - enum="BackgroundTaskId" expires_after="2025-04-06"> + enum="BackgroundTaskId" expires_after="2025-06-08"> <owner>nator@chromium.org</owner> <owner>knollr@chromium.org</owner> <owner>shaktisahu@chromium.org</owner> @@ -669,7 +669,7 @@ </histogram> <histogram name="Android.BackgroundTaskScheduler.TaskScheduled.Failure" - enum="BackgroundTaskId" expires_after="2025-04-06"> + enum="BackgroundTaskId" expires_after="2025-06-08"> <owner>nyquist@chromium.org</owner> <owner>shaktisahu@chromium.org</owner> <summary> @@ -705,7 +705,7 @@ </histogram> <histogram name="Android.BackgroundTaskScheduler.TaskStopped" - enum="BackgroundTaskId" expires_after="2025-04-06"> + enum="BackgroundTaskId" expires_after="2025-06-08"> <owner>nyquist@chromium.org</owner> <owner>shaktisahu@chromium.org</owner> <summary> @@ -1072,7 +1072,7 @@ </histogram> <histogram name="Android.DefaultBrowserPromo.Outcome.{CurrentState}" - enum="AndroidDefaultBrowserPromoOutcomeType" expires_after="2025-03-30"> + enum="AndroidDefaultBrowserPromoOutcomeType" expires_after="2025-06-08"> <owner>lazzzis@google.com</owner> <owner>twellington@chromium.org</owner> <summary> @@ -1568,7 +1568,7 @@ </histogram> <histogram name="Android.DynamicTopChrome.TabStripTransition.Finished" - enum="Boolean" expires_after="2025-03-30"> + enum="Boolean" expires_after="2025-06-08"> <owner>wenyufu@chromium.org</owner> <owner>clank-large-form-factors@google.com</owner> <summary> @@ -2009,7 +2009,7 @@ </histogram> <histogram name="Android.Hub.PaneFocused.PaneSwitcher" enum="HubPaneId" - expires_after="2025-03-30"> + expires_after="2025-06-08"> <owner>ckitagawa@chromium.org</owner> <owner>clank-hub-dev@google.com</owner> <summary> @@ -2022,7 +2022,7 @@ </histogram> <histogram name="Android.HubSearch.SearchBoxEntrypointV2" - enum="HubSearchEntrypoint" expires_after="2025-03-30"> + enum="HubSearchEntrypoint" expires_after="2025-06-08"> <owner>bjfong@google.com</owner> <owner>wylieb@chromium.org</owner> <owner>clank-hub-dev@google.com</owner> @@ -2129,7 +2129,7 @@ </histogram> <histogram name="Android.InputHintChecker.InitializationResult" - enum="InputHintInitializationResult" expires_after="2025-03-30"> + enum="InputHintInitializationResult" expires_after="2025-06-08"> <owner>pasko@chromium.org</owner> <owner>mthiesse@chromium.org</owner> <summary> @@ -3785,7 +3785,7 @@ </histogram> <histogram name="Android.PartnerHomepageCustomization.Delegate2" - enum="PartnerCustomizationProviderDelegate" expires_after="2025-04-06"> + enum="PartnerCustomizationProviderDelegate" expires_after="2025-06-08"> <owner>donnd@chromium.org</owner> <owner>twellington@chromium.org</owner> <owner>wenyufu@chromium.org</owner> @@ -4213,7 +4213,7 @@ </histogram> <histogram name="Android.PredictiveGestureNavigation{Transition}" - enum="PredictiveNavTransitionPhase" expires_after="M135"> + enum="PredictiveNavTransitionPhase" expires_after="2025-06-08"> <owner>lazzzis@google.com</owner> <owner>clank-app-team@google.com</owner> <summary> @@ -4284,7 +4284,7 @@ </histogram> <histogram name="Android.RequestDesktopSite.UserSwitchToDesktop" enum="Boolean" - expires_after="2025-03-30"> + expires_after="2025-06-08"> <owner>gangwu@chromium.org</owner> <owner>fgorski@chromium.org</owner> <summary> @@ -4503,7 +4503,7 @@ </histogram> <histogram name="Android.SelectFileDialogContentSelected" - enum="SelectFileDialogContent" expires_after="2025-03-30"> + enum="SelectFileDialogContent" expires_after="2025-06-08"> <owner>finnur@chromium.org</owner> <owner>peter@chromium.org</owner> <summary> @@ -4561,7 +4561,7 @@ </histogram> <histogram name="Android.ShowSelectionMenuSourceType" enum="MenuSourceType" - expires_after="2025-03-30"> + expires_after="2025-06-08"> <owner>mvanouwerkerk@chromium.org</owner> <owner>wbjacksonjr@chromium.org</owner> <summary> @@ -5060,7 +5060,7 @@ </histogram> <histogram name="Android.TabStrip.TimeToBufferSwapAfterInitializeTabState" - units="ms" expires_after="2025-03-30"> + units="ms" expires_after="2025-06-08"> <owner>nemco@google.com</owner> <owner>skavuluru@google.com</owner> <owner>twellington@chromium.org</owner> @@ -5075,7 +5075,7 @@ </histogram> <histogram name="Android.TabStrip.TimeToInitializeTabStateAfterBufferSwap" - units="ms" expires_after="2025-03-30"> + units="ms" expires_after="2025-06-08"> <owner>nemco@google.com</owner> <owner>skavuluru@google.com</owner> <owner>twellington@chromium.org</owner> @@ -5090,7 +5090,7 @@ </histogram> <histogram name="Android.TabStrip.TimeToSwitchTab" units="ms" - expires_after="2025-03-30"> + expires_after="2025-06-08"> <owner>gauravjj@google.com</owner> <owner>twellington@chromium.org</owner> <owner>clank-large-form-factors@google.com</owner>
diff --git a/tools/metrics/histograms/metadata/apps/histograms.xml b/tools/metrics/histograms/metadata/apps/histograms.xml index f348344..7474b8f 100644 --- a/tools/metrics/histograms/metadata/apps/histograms.xml +++ b/tools/metrics/histograms/metadata/apps/histograms.xml
@@ -189,7 +189,7 @@ </variants> <histogram name="AppManagement.AppDetailViews" enum="AppManagementUserAction" - expires_after="2025-03-30"> + expires_after="2025-06-08"> <!-- Name completed by histogram_suffixes name="AppType" --> <owner>sharminzaman@google.com</owner> @@ -269,7 +269,7 @@ </histogram> <histogram name="Apps.AppDiscovery.{InstallReason}.Install" enum="AppType" - expires_after="2025-03-26"> + expires_after="2025-06-08"> <owner>joelhockey@chromium.org</owner> <owner>crosdev-commerce-eng@google.com</owner> <summary> @@ -896,7 +896,7 @@ </histogram> <histogram name="Apps.AppList.NumberOfAppsInNonSystemFolders" units="count" - expires_after="2025-04-06"> + expires_after="2025-06-08"> <owner>tbarzic@chromium.org</owner> <owner>jamescook@chromium.org</owner> <owner>mmourgos@chromium.org</owner> @@ -1086,7 +1086,7 @@ </histogram> <histogram name="Apps.AppList.Search.ContinueResultCount.{Type}" units="count" - expires_after="2025-03-30"> + expires_after="2025-06-08"> <owner>chenjih@google.com</owner> <owner>ypitsishin@google.com</owner> <owner>chromeos-launcher-search@google.com</owner> @@ -2251,7 +2251,7 @@ </histogram> <histogram name="Apps.ContextMenuExecuteCommand{ContextMenuFromApp}" - enum="ChromeOSUICommands" expires_after="2025-04-06"> + enum="ChromeOSUICommands" expires_after="2025-06-08"> <owner>tbarzic@chromium.org</owner> <owner>newcomer@chromium.org</owner> <owner>mmourgos@chromium.org</owner> @@ -2270,7 +2270,7 @@ <histogram name="Apps.ContextMenuShowSourceV2{AppUIComponent}{TabletOrClamshellMode}" - enum="MenuSourceType" expires_after="2025-04-06"> + enum="MenuSourceType" expires_after="2025-06-08"> <owner>wcwang@chromium.org</owner> <owner>mmourgos@chromium.org</owner> <owner>tbarzic@chromium.org</owner>
diff --git a/tools/metrics/histograms/metadata/arc/histograms.xml b/tools/metrics/histograms/metadata/arc/histograms.xml index f78590d..cc681f5 100644 --- a/tools/metrics/histograms/metadata/arc/histograms.xml +++ b/tools/metrics/histograms/metadata/arc/histograms.xml
@@ -317,7 +317,7 @@ </summary> </histogram> -<histogram name="Arc.Anr.{AnrPeriod}" units="ANRs" expires_after="2025-03-30"> +<histogram name="Arc.Anr.{AnrPeriod}" units="ANRs" expires_after="2025-06-08"> <owner>khmel@google.com</owner> <owner>alanding@google.com</owner> <owner>arc-performance@google.com</owner> @@ -505,7 +505,7 @@ <histogram name="Arc.AppInstall.{ArcAppInstallTypes}.InitialSession.NumAppsRequested" - units="apps" expires_after="2025-03-30"> + units="apps" expires_after="2025-06-08"> <owner>batoon@google.com</owner> <owner>arc-core@google.com</owner> <summary> @@ -543,7 +543,7 @@ </histogram> <histogram name="Arc.AppLanguageSwitch.{SettingsPage}.TargetLanguage" - enum="LocaleCodeISO639" expires_after="2025-03-23"> + enum="LocaleCodeISO639" expires_after="2025-06-08"> <owner>nergi@chromium.org</owner> <owner>arc-framework@google.com</owner> <summary> @@ -558,7 +558,7 @@ </histogram> <histogram name="Arc.AppRequestedInSession" units="count" - expires_after="2025-03-30"> + expires_after="2025-06-08"> <owner>khmel@google.com</owner> <owner>hidehiko@chromium.org</owner> <owner>arc-performance@google.com</owner> @@ -635,7 +635,7 @@ </histogram> <histogram name="Arc.AppSync.InitialSession.NumApps{ArcSyncAppTypes}" - units="apps" expires_after="2025-04-06"> + units="apps" expires_after="2025-06-08"> <owner>batoon@google.com</owner> <owner>arc-core@google.com</owner> <summary> @@ -898,7 +898,7 @@ </histogram> <histogram name="Arc.CpuRestrictionDisabled{ArcThrottleObservers}" units="ms" - expires_after="2025-03-30"> + expires_after="2025-06-08"> <owner>khmel@google.com</owner> <owner>alanding@google.com</owner> <owner>arc-performance@google.com</owner> @@ -1105,7 +1105,7 @@ </histogram> <histogram name="Arc.FirstAppLaunchDelay.TimeDelta" units="ms" - expires_after="2025-03-30"> + expires_after="2025-06-08"> <owner>khmel@google.com</owner> <owner>arc-performance@google.com</owner> <summary> @@ -1142,7 +1142,7 @@ </histogram> <histogram name="Arc.GameControls.ButtonOptionsMenuFunctionTriggered" - enum="GameControlsButtonOptionsMenuFunction" expires_after="2025-04-07"> + enum="GameControlsButtonOptionsMenuFunction" expires_after="2025-06-08"> <owner>cuicuiruan@google.com</owner> <owner>pjlee@google.com</owner> <owner>arc-gaming@google.com</owner> @@ -1153,7 +1153,7 @@ </histogram> <histogram name="Arc.GameControls.EditDeleteMenuFuctionTriggered" - enum="GameControlsEditDeleteMenuFunction" expires_after="2025-04-07"> + enum="GameControlsEditDeleteMenuFunction" expires_after="2025-06-08"> <owner>cuicuiruan@google.com</owner> <owner>pjlee@google.com</owner> <owner>arc-gaming@google.com</owner> @@ -1164,7 +1164,7 @@ </histogram> <histogram name="Arc.GameControls.EditingListFunctionTriggered" - enum="GameControlsEditingListFunction" expires_after="2025-04-07"> + enum="GameControlsEditingListFunction" expires_after="2025-06-08"> <owner>cuicuiruan@google.com</owner> <owner>pjlee@google.com</owner> <owner>arc-gaming@google.com</owner> @@ -1176,7 +1176,7 @@ <histogram name="Arc.GameControls.{FeatureOrHint}ToggleWithMappingSource.{OnOrOff}" - enum="GameControlsMappingSource" expires_after="2025-04-07"> + enum="GameControlsMappingSource" expires_after="2025-06-08"> <owner>cuicuiruan@google.com</owner> <owner>pjlee@google.com</owner> <owner>arc-gaming@google.com</owner> @@ -1754,7 +1754,7 @@ </histogram> <histogram name="Arc.PlayStoreLaunchWithinAWeek" enum="BooleanUsage" - expires_after="2025-03-30"> + expires_after="2025-06-08"> <owner>rsorokin@chromium.org</owner> <owner>cros-oac@google.com</owner> <summary> @@ -2045,7 +2045,7 @@ <histogram name="Arc.Runtime.Performance.CommitDeviation2{ArcPerformanceAppCategories}" - units="microseconds" expires_after="2025-03-30"> + units="microseconds" expires_after="2025-06-08"> <owner>khmel@google.com</owner> <owner>alanding@google.com</owner> <summary> @@ -2060,7 +2060,7 @@ </histogram> <histogram name="Arc.Runtime.Performance.FPS2{ArcPerformanceAppCategories}" - units="fps" expires_after="2025-03-30"> + units="fps" expires_after="2025-06-08"> <owner>khmel@google.com</owner> <owner>alanding@google.com</owner> <summary> @@ -2074,7 +2074,7 @@ </histogram> <histogram name="Arc.Runtime.Performance.Generic.FirstFrameRendered" units="ms" - expires_after="2025-03-30"> + expires_after="2025-06-08"> <owner>khmel@google.com</owner> <owner>alanding@google.com</owner> <summary> @@ -2106,7 +2106,7 @@ <histogram name="Arc.Runtime.Performance.JanksPercentage2{ArcPerformanceAppCategories}" - units="%" expires_after="2025-03-30"> + units="%" expires_after="2025-06-08"> <owner>alanding@google.com</owner> <owner>matvore@google.com</owner> <summary> @@ -2170,7 +2170,7 @@ <histogram name="Arc.Runtime.Performance.RenderQuality2{ArcPerformanceAppCategories}" - units="%" expires_after="2025-03-30"> + units="%" expires_after="2025-06-08"> <owner>khmel@google.com</owner> <owner>alanding@google.com</owner> <summary> @@ -2331,7 +2331,7 @@ </histogram> <histogram name="Arc.UiAvailable.AlreadyProvisioned.TimeDelta{ArcUserTypes}" - units="ms" expires_after="2025-03-30"> + units="ms" expires_after="2025-06-08"> <owner>khmel@google.com</owner> <owner>arc-performance@google.com</owner> <summary> @@ -2344,7 +2344,7 @@ </histogram> <histogram name="Arc.UiAvailable.InSessionProvisioning.TimeDelta{ArcUserTypes}" - units="ms" expires_after="2025-03-30"> + units="ms" expires_after="2025-06-08"> <owner>khmel@google.com</owner> <owner>arc-performance@google.com</owner> <summary> @@ -2357,7 +2357,7 @@ </histogram> <histogram name="Arc.UiAvailable.OobeProvisioning.TimeDelta{ArcUserTypes}" - units="ms" expires_after="2025-03-30"> + units="ms" expires_after="2025-06-08"> <owner>khmel@google.com</owner> <owner>arc-performance@google.com</owner> <summary>
diff --git a/tools/metrics/histograms/metadata/ash/histograms.xml b/tools/metrics/histograms/metadata/ash/histograms.xml index 1dc59e8..9e2ca2e 100644 --- a/tools/metrics/histograms/metadata/ash/histograms.xml +++ b/tools/metrics/histograms/metadata/ash/histograms.xml
@@ -925,7 +925,7 @@ </histogram> <histogram name="Ash.BatterySaver.BatteryPercent{BatteryPercentWhen}" units="%" - expires_after="2025-03-30"> + expires_after="2025-06-08"> <owner>cwd@google.com</owner> <owner>ckwyee@google.com</owner> <summary>The battery charge percent when {BatteryPercentWhen}</summary> @@ -940,7 +940,7 @@ </histogram> <histogram name="Ash.BatterySaver.Duration{DurationWhen}" units="ms" - expires_after="2025-03-30"> + expires_after="2025-06-08"> <owner>cwd@google.com</owner> <owner>ckwyee@google.com</owner> <summary> @@ -961,7 +961,7 @@ </histogram> <histogram name="Ash.BatterySaver.TimeToEmpty{TimeToEmptyWhen}" units="ms" - expires_after="2025-03-23"> + expires_after="2025-06-08"> <owner>cwd@google.com</owner> <owner>ckwyee@google.com</owner> <summary> @@ -979,7 +979,7 @@ </histogram> <histogram name="Ash.Birch.Bar.Activate" units="count" - expires_after="2025-03-30"> + expires_after="2025-06-08"> <owner>jamescook@chromium.org</owner> <owner>chromeos-launcher@google.com</owner> <summary> @@ -988,7 +988,7 @@ </histogram> <histogram name="Ash.Birch.Bar.Impression" units="count" - expires_after="2025-03-30"> + expires_after="2025-06-08"> <owner>jamescook@chromium.org</owner> <owner>chromeos-launcher@google.com</owner> <summary> @@ -1045,7 +1045,7 @@ <summary>Recorded when the user is shown a chip of a given type.</summary> </histogram> -<histogram name="Ash.Birch.ChipCount" units="count" expires_after="2025-03-30"> +<histogram name="Ash.Birch.ChipCount" units="count" expires_after="2025-06-08"> <owner>jamescook@chromium.org</owner> <owner>chromeos-launcher@google.com</owner> <summary> @@ -1190,7 +1190,7 @@ </histogram> <histogram name="Ash.Boca.NumberOfActiveStudentsWhenSessionEnded" - units="students" expires_after="2025-04-04"> + units="students" expires_after="2025-06-08"> <owner>caott@google.com</owner> <owner>cros-edu-eng@google.com</owner> <summary> @@ -1199,7 +1199,7 @@ </histogram> <histogram name="Ash.Boca.NumberOfStudentsJoinedViaCodeDuringSession" - units="students" expires_after="2025-04-04"> + units="students" expires_after="2025-06-08"> <owner>caott@google.com</owner> <owner>cros-edu-eng@google.com</owner> <summary> @@ -1208,7 +1208,7 @@ </histogram> <histogram name="Ash.Boca.OnTask.MaxNumberOfTabsDuringSession" units="tabs" - expires_after="2025-04-04"> + expires_after="2025-06-08"> <owner>caott@google.com</owner> <owner>cros-edu-eng@google.com</owner> <summary> @@ -1218,7 +1218,7 @@ </histogram> <histogram name="Ash.Boca.OnTask.NumberOfTabsWhenSessionEnded" units="tabs" - expires_after="2025-04-04"> + expires_after="2025-06-08"> <owner>caott@google.com</owner> <owner>cros-edu-eng@google.com</owner> <summary> @@ -1227,7 +1227,7 @@ </histogram> <histogram name="Ash.Boca.OnTask.{State}SessionDurationPercentage" - units="% of session" expires_after="2025-04-04"> + units="% of session" expires_after="2025-06-08"> <owner>zhumatthew@google.com</owner> <owner>cros-edu-eng@google.com</owner> <summary> @@ -2734,7 +2734,7 @@ </histogram> <histogram name="Ash.DarkTheme.SystemTray.IsDarkModeEnabled" enum="Boolean" - expires_after="2025-04-06"> + expires_after="2025-06-08"> <owner>minch@chromium.org</owner> <owner>changmar@chromium.org</owner> <summary> @@ -2768,7 +2768,7 @@ </histogram> <histogram name="Ash.DeskApi.{Method}.Result" enum="BooleanSuccess" - expires_after="2025-03-17"> + expires_after="2025-06-08"> <owner>aprilzhou@google.com</owner> <owner>janetmac@chromium.org</owner> <summary> @@ -2860,7 +2860,7 @@ </histogram> <histogram name="Ash.Desks.CloseAllTotal" enum="BooleanHit" - expires_after="2025-04-06"> + expires_after="2025-06-08"> <owner>aprilzhou@google.com</owner> <owner>janetmac@chromium.org</owner> <owner>chromeos-wm@google.com</owner> @@ -2934,7 +2934,7 @@ </histogram> <histogram name="Ash.Desks.DeskButton.DeskBar.Enter.PresentationTime" - units="ms" expires_after="2025-03-30"> + units="ms" expires_after="2025-06-08"> <owner>sammiequon@chromium.org</owner> <owner>dandersson@chromium.org</owner> <owner>yongshun@chromium.org</owner> @@ -2947,7 +2947,7 @@ </histogram> <histogram name="Ash.Desks.DeskButton.DeskBar.Exit.PresentationTime" units="ms" - expires_after="2025-03-30"> + expires_after="2025-06-08"> <owner>sammiequon@chromium.org</owner> <owner>dandersson@chromium.org</owner> <owner>yongshun@chromium.org</owner> @@ -2971,7 +2971,7 @@ </histogram> <histogram name="Ash.Desks.DeskButton.Presses" enum="BooleanHit" - expires_after="2025-03-30"> + expires_after="2025-06-08"> <owner>dandersson@chromium.org</owner> <owner>yongshun@chromium.org</owner> <owner>chromeos-wm@google.com</owner> @@ -3112,7 +3112,7 @@ </histogram> <histogram name="Ash.Desks.NumberOfWindowsOnDesk_1" units="units" - expires_after="2025-04-06"> + expires_after="2025-06-08"> <owner>dandersson@chromium.org</owner> <owner>janetmac@chromium.org</owner> <owner>chromeos-wm@google.com</owner> @@ -3123,7 +3123,7 @@ </histogram> <histogram name="Ash.Desks.NumberOfWindowsOnDesk_10" units="units" - expires_after="2025-04-06"> + expires_after="2025-06-08"> <owner>dandersson@chromium.org</owner> <owner>janetmac@chromium.org</owner> <owner>chromeos-wm@google.com</owner> @@ -3134,7 +3134,7 @@ </histogram> <histogram name="Ash.Desks.NumberOfWindowsOnDesk_11" units="units" - expires_after="2025-04-06"> + expires_after="2025-06-08"> <owner>dandersson@chromium.org</owner> <owner>janetmac@chromium.org</owner> <owner>chromeos-wm@google.com</owner> @@ -3145,7 +3145,7 @@ </histogram> <histogram name="Ash.Desks.NumberOfWindowsOnDesk_12" units="units" - expires_after="2025-04-06"> + expires_after="2025-06-08"> <owner>dandersson@chromium.org</owner> <owner>janetmac@chromium.org</owner> <owner>chromeos-wm@google.com</owner> @@ -3200,7 +3200,7 @@ </histogram> <histogram name="Ash.Desks.NumberOfWindowsOnDesk_2" units="units" - expires_after="2025-04-06"> + expires_after="2025-06-08"> <owner>dandersson@chromium.org</owner> <owner>janetmac@chromium.org</owner> <owner>chromeos-wm@google.com</owner> @@ -3211,7 +3211,7 @@ </histogram> <histogram name="Ash.Desks.NumberOfWindowsOnDesk_3" units="units" - expires_after="2025-04-06"> + expires_after="2025-06-08"> <owner>dandersson@chromium.org</owner> <owner>janetmac@chromium.org</owner> <owner>chromeos-wm@google.com</owner> @@ -3222,7 +3222,7 @@ </histogram> <histogram name="Ash.Desks.NumberOfWindowsOnDesk_4" units="units" - expires_after="2025-04-06"> + expires_after="2025-06-08"> <owner>dandersson@chromium.org</owner> <owner>janetmac@chromium.org</owner> <owner>chromeos-wm@google.com</owner> @@ -3233,7 +3233,7 @@ </histogram> <histogram name="Ash.Desks.NumberOfWindowsOnDesk_5" units="units" - expires_after="2025-04-06"> + expires_after="2025-06-08"> <owner>dandersson@chromium.org</owner> <owner>janetmac@chromium.org</owner> <owner>chromeos-wm@google.com</owner> @@ -3244,7 +3244,7 @@ </histogram> <histogram name="Ash.Desks.NumberOfWindowsOnDesk_6" units="units" - expires_after="2025-04-06"> + expires_after="2025-06-08"> <owner>dandersson@chromium.org</owner> <owner>janetmac@chromium.org</owner> <owner>chromeos-wm@google.com</owner> @@ -3255,7 +3255,7 @@ </histogram> <histogram name="Ash.Desks.NumberOfWindowsOnDesk_7" units="units" - expires_after="2025-04-06"> + expires_after="2025-06-08"> <owner>dandersson@chromium.org</owner> <owner>janetmac@chromium.org</owner> <owner>chromeos-wm@google.com</owner> @@ -3266,7 +3266,7 @@ </histogram> <histogram name="Ash.Desks.NumberOfWindowsOnDesk_8" units="units" - expires_after="2025-04-06"> + expires_after="2025-06-08"> <owner>dandersson@chromium.org</owner> <owner>janetmac@chromium.org</owner> <owner>chromeos-wm@google.com</owner> @@ -3277,7 +3277,7 @@ </histogram> <histogram name="Ash.Desks.NumberOfWindowsOnDesk_9" units="units" - expires_after="2025-04-06"> + expires_after="2025-06-08"> <owner>dandersson@chromium.org</owner> <owner>janetmac@chromium.org</owner> <owner>chromeos-wm@google.com</owner> @@ -3482,7 +3482,7 @@ </histogram> <histogram name="Ash.DeskTemplate.LaunchSaveAndRecall" enum="BooleanHit" - expires_after="2025-04-06"> + expires_after="2025-06-08"> <owner>dandersson@chromium.org</owner> <owner>janetmac@chromium.org</owner> <summary>Emitted when a Save and Recall desk is launched.</summary> @@ -3498,7 +3498,7 @@ </histogram> <histogram name="Ash.DeskTemplate.NewSaveAndRecall" enum="BooleanHit" - expires_after="2025-04-06"> + expires_after="2025-06-08"> <owner>dandersson@chromium.org</owner> <owner>janetmac@chromium.org</owner> <summary>Recorded when a new Save and Recall desk is created.</summary> @@ -3547,7 +3547,7 @@ </histogram> <histogram name="Ash.DeskTemplate.SaveAndRecallTemplateSize" units="B" - expires_after="2025-04-06"> + expires_after="2025-06-08"> <owner>dandersson@google.com</owner> <owner>janetmac@chromium.org</owner> <summary> @@ -3932,7 +3932,7 @@ </histogram> <histogram name="Ash.EventLatency.Core.TotalLatency" units="ms" - expires_after="2025-03-30"> + expires_after="2025-06-08"> <owner>xiyuan@chromium.org</owner> <owner>yichenz@chromium.org</owner> <owner>cros-sw-perf@google.com</owner> @@ -4053,7 +4053,7 @@ </histogram> <histogram name="Ash.FirstWebContentsProfile.Recorded" enum="Boolean" - expires_after="2025-04-06"> + expires_after="2025-06-08"> <owner>esum@google.com</owner> <owner>chromeos-wms@google.com</owner> <summary> @@ -4114,7 +4114,7 @@ </histogram> <histogram name="Ash.Float.MultitaskMenuEntryType.{TabletOrClamshell}" - enum="MultitaskMenuEntryType" expires_after="2025-03-23"> + enum="MultitaskMenuEntryType" expires_after="2025-06-08"> <owner>sophiewen@chromium.org</owner> <owner>chromeos-wm@chromium.org</owner> <summary> @@ -4590,7 +4590,7 @@ </histogram> <histogram name="Ash.GameDashboard.ControlsFeatureToggleState" - enum="BooleanEnabled" expires_after="2025-04-04"> + enum="BooleanEnabled" expires_after="2025-06-08"> <owner>cuicuiruan@google.com</owner> <owner>phshah@chromium.org</owner> <summary> @@ -4599,7 +4599,7 @@ </histogram> <histogram name="Ash.GameDashboard.ControlsHintToggleSource.{OnOrOff}" - enum="GameDashboardMenu" expires_after="2025-04-04"> + enum="GameDashboardMenu" expires_after="2025-06-08"> <owner>cuicuiruan@google.com</owner> <owner>phshah@chromium.org</owner> <summary>Records where the game controls hint is toggled {OnOrOff}.</summary> @@ -4620,7 +4620,7 @@ </histogram> <histogram name="Ash.GameDashboard.FunctionTriggered" - enum="GameDashboardFunction" expires_after="2025-04-04"> + enum="GameDashboardFunction" expires_after="2025-06-08"> <owner>cuicuiruan@google.com</owner> <owner>phshah@chromium.org</owner> <summary> @@ -4661,7 +4661,7 @@ </histogram> <histogram name="Ash.GameDashboard.ToolbarClickToExpandState" - enum="BooleanEnabled" expires_after="2025-04-04"> + enum="BooleanEnabled" expires_after="2025-06-08"> <owner>cuicuiruan@google.com</owner> <owner>phshah@chromium.org</owner> <summary> @@ -4670,7 +4670,7 @@ </histogram> <histogram name="Ash.GameDashboard.ToolbarNewLocation" - enum="GameDashboardToolbarSnapLocation" expires_after="2025-04-04"> + enum="GameDashboardToolbarSnapLocation" expires_after="2025-06-08"> <owner>cuicuiruan@google.com</owner> <owner>phshah@chromium.org</owner> <summary>Records where the toolbar is repositioned.</summary> @@ -4684,7 +4684,7 @@ </histogram> <histogram name="Ash.GameDashboard.WelcomeDialogNotificationToggleState" - enum="BooleanEnabled" expires_after="2025-04-04"> + enum="BooleanEnabled" expires_after="2025-06-08"> <owner>cuicuiruan@google.com</owner> <owner>phshah@chromium.org</owner> <summary> @@ -4693,7 +4693,7 @@ </histogram> <histogram name="Ash.GeminiApp.Page.Visit" enum="GeminiAppPage" - expires_after="2025-03-02"> + expires_after="2025-06-08"> <owner>dmblack@google.com</owner> <owner>xiaohuic@chromium.org</owner> <summary> @@ -5080,7 +5080,7 @@ <histogram name="Ash.Glanceables.TimeManagement.{GlanceableBubble}.OpenToInitialLoadTime.{Occurrence}" - units="ms" expires_after="2025-03-23"> + units="ms" expires_after="2025-06-08"> <owner>anasalazar@google.com</owner> <owner>chromeos-launcher@google.com</owner> <summary> @@ -5287,7 +5287,7 @@ </histogram> <histogram name="Ash.Lacros.Launch.ModeAndSource" - enum="LacrosLaunchModeAndSource" expires_after="2025-03-30"> + enum="LacrosLaunchModeAndSource" expires_after="2025-06-08"> <owner>skuhne@chromium.org</owner> <owner>lacros-team@google.com</owner> <summary> @@ -5384,7 +5384,7 @@ </histogram> <histogram name="Ash.Login.LoggedInStateChanged" units="ms" - expires_after="2025-03-30"> + expires_after="2025-06-08"> <owner>xiyuan@chromium.org</owner> <owner>junis@google.com</owner> <owner>cros-sw-perf@google.com</owner> @@ -5557,7 +5557,7 @@ </histogram> <histogram name="Ash.LoginPerf.AutoRestore.AllBrowserWindowsCreated" units="ms" - expires_after="2025-04-06"> + expires_after="2025-06-08"> <owner>xiyuan@chromium.org</owner> <owner>junis@google.com</owner> <owner>cros-sw-perf@google.org</owner> @@ -5637,7 +5637,7 @@ </histogram> <histogram name="Ash.LoginPerf.{RestoreMode}.ArcUiAvailableAfterLogin" - units="ms" expires_after="2025-04-06"> + units="ms" expires_after="2025-06-08"> <owner>xiyuan@chromium.org</owner> <owner>junis@google.com</owner> <owner>cros-sw-perf@google.org</owner> @@ -5662,7 +5662,7 @@ <histogram name="Ash.LoginPerf.{RestoreMode}.PostLoginAnimation.Duration.{TabletOrClamshellMode}" - units="ms" expires_after="2025-04-06"> + units="ms" expires_after="2025-06-08"> <owner>xiyuan@chromium.org</owner> <owner>junis@google.com</owner> <owner>cros-sw-perf@google.org</owner> @@ -5704,7 +5704,7 @@ </histogram> <histogram name="Ash.LoginPerf.{RestoreMode}.ShelfLoginAnimationEnd" units="ms" - expires_after="2025-04-06"> + expires_after="2025-06-08"> <owner>xiyuan@chromium.org</owner> <owner>junis@google.com</owner> <owner>cros-sw-perf@google.org</owner> @@ -5716,7 +5716,7 @@ </histogram> <histogram name="Ash.LoginPerf.{RestoreMode}.TotalDuration" units="ms" - expires_after="2025-04-06"> + expires_after="2025-06-08"> <owner>xiyuan@chromium.org</owner> <owner>junis@google.com</owner> <owner>cros-sw-perf@google.org</owner> @@ -5814,7 +5814,7 @@ </histogram> <histogram name="Ash.Mahi.ButtonClicked" enum="PanelButton" - expires_after="2025-04-06"> + expires_after="2025-06-08"> <owner>leandre@chromium.org</owner> <owner>cros-status-area-eng@google.com</owner> <summary> @@ -5833,7 +5833,7 @@ </histogram> <histogram name="Ash.Mahi.Feedback" enum="BooleanThumbsUp" - expires_after="2025-04-06"> + expires_after="2025-06-08"> <owner>leandre@chromium.org</owner> <owner>cros-status-area-eng@google.com</owner> <summary> @@ -5853,7 +5853,7 @@ </histogram> <histogram name="Ash.Mahi.QuestionCountPerMahiSession" units="count" - expires_after="2025-04-06"> + expires_after="2025-06-08"> <owner>andrewxu@chromium.org</owner> <owner>cros-status-area-eng@google.com</owner> <summary> @@ -5863,7 +5863,7 @@ </histogram> <histogram name="Ash.Mahi.QuestionSource" enum="MahiQuestionSource" - expires_after="2025-04-06"> + expires_after="2025-06-08"> <owner>andrewxu@chromium.org</owner> <owner>cros-status-area-eng@google.com</owner> <summary> @@ -5873,7 +5873,7 @@ </histogram> <histogram name="Ash.Mahi.Summary.LoadingTime" units="ms" - expires_after="2025-04-06"> + expires_after="2025-06-08"> <owner>leandre@chromium.org</owner> <owner>cros-status-area-eng@google.com</owner> <summary> @@ -5883,7 +5883,7 @@ </histogram> <histogram name="Ash.Mahi.TimesPanelOpenedPerSession" units="count" - expires_after="2025-04-06"> + expires_after="2025-06-08"> <owner>kradtke@chromium.org</owner> <owner>cros-status-area-eng@google.com</owner> <summary> @@ -5894,7 +5894,7 @@ </histogram> <histogram name="Ash.Mahi.UserJourneyTime" units="ms" - expires_after="2025-04-06"> + expires_after="2025-06-08"> <owner>leandre@chromium.org</owner> <owner>cros-status-area-eng@google.com</owner> <summary> @@ -6156,7 +6156,7 @@ </histogram> <histogram name="Ash.Notification.CountOfNotificationsInOneGroup" - units="Notifications" expires_after="2025-04-06"> + units="Notifications" expires_after="2025-06-08"> <owner>leandre@chromium.org</owner> <owner>cros-status-area-eng@google.com</owner> <summary> @@ -6266,7 +6266,7 @@ </histogram> <histogram name="Ash.NotificationPopup.OnTopOfSurfacesPopupCount" - units="popups" expires_after="2025-04-06"> + units="popups" expires_after="2025-06-08"> <owner>leandre@chromium.org</owner> <owner>cros-status-area-eng@google.com</owner> <summary> @@ -6599,7 +6599,7 @@ <histogram name="Ash.NotifierFramework.{UnpinnedOrPinned}SystemNotification.Added" - enum="NotificationCatalogName" expires_after="2025-03-23"> + enum="NotificationCatalogName" expires_after="2025-06-08"> <owner>kradtke@google.com</owner> <owner>cros-status-area-eng@google.com</owner> <summary> @@ -6615,7 +6615,7 @@ <histogram name="Ash.NotifierFramework.{UnpinnedOrPinned}SystemNotification.ClickedActionButton.{ButtonIndex}" - enum="NotificationCatalogName" expires_after="2025-03-23"> + enum="NotificationCatalogName" expires_after="2025-06-08"> <owner>kradtke@google.com</owner> <owner>cros-status-area-eng@google.com</owner> <summary> @@ -6636,7 +6636,7 @@ <histogram name="Ash.NotifierFramework.{UnpinnedOrPinned}SystemNotification.Popup.Dismissed.{TimeRange}" - enum="NotificationCatalogName" expires_after="2025-03-23"> + enum="NotificationCatalogName" expires_after="2025-06-08"> <owner>kradtke@google.com</owner> <owner>cros-status-area-eng@google.com</owner> <summary> @@ -6659,7 +6659,7 @@ <histogram name="Ash.NotifierFramework.{UnpinnedOrPinned}SystemNotification.Popup.ShownCount" - enum="NotificationCatalogName" expires_after="2025-03-23"> + enum="NotificationCatalogName" expires_after="2025-06-08"> <owner>kradtke@google.com</owner> <owner>cros-status-area-eng@google.com</owner> <summary> @@ -7368,7 +7368,7 @@ </histogram> <histogram name="Ash.Picker.Search.{Provider}Provider.QueryTime" units="ms" - expires_after="2025-04-06"> + expires_after="2025-06-08"> <owner>shend@chromium.org</owner> <owner>jopalmer@chromium.org</owner> <owner>essential-inputs-team@google.com</owner> @@ -7408,7 +7408,7 @@ </histogram> <histogram name="Ash.Picker.Session.Outcome" enum="PickerSessionOutcome" - expires_after="2025-04-06"> + expires_after="2025-06-08"> <owner>shend@chromium.org</owner> <owner>essential-inputs-team@google.com</owner> <summary> @@ -7432,7 +7432,7 @@ </histogram> <histogram name="Ash.Picker.Session.PresentationLatency.SearchResults" - units="ms" expires_after="2025-04-06"> + units="ms" expires_after="2025-06-08"> <owner>shend@chromium.org</owner> <owner>jopalmer@chromium.org</owner> <owner>essential-inputs-team@google.com</owner> @@ -7446,7 +7446,7 @@ </histogram> <histogram name="Ash.Picker.Session.SearchLatency" units="ms" - expires_after="2025-04-06"> + expires_after="2025-06-08"> <owner>shend@chromium.org</owner> <owner>jopalmer@chromium.org</owner> <owner>essential-inputs-team@google.com</owner> @@ -7481,7 +7481,7 @@ </histogram> <histogram name="Ash.Pine.DialogScreenshotVisibility" enum="Boolean" - expires_after="2025-04-05"> + expires_after="2025-06-08"> <owner>minch@chromium.org</owner> <owner>sammiequon@chromium.org</owner> <owner>chromeos-wm@google.com</owner> @@ -7493,7 +7493,7 @@ </histogram> <histogram name="Ash.Pine.OnboardingDialog.TurnRestoreOn" enum="Boolean" - expires_after="2025-04-05"> + expires_after="2025-06-08"> <owner>sammiequon@chromium.org</owner> <owner>sophiewen@chromium.org</owner> <owner>chromeos-wm@google.com</owner> @@ -7505,7 +7505,7 @@ </histogram> <histogram name="Ash.Pine.ScreenshotDecodeDuration" units="ms" - expires_after="2025-04-05"> + expires_after="2025-06-08"> <owner>minch@chromium.org</owner> <owner>sammiequon@chromium.org</owner> <owner>chromeos-wm@google.com</owner> @@ -7526,7 +7526,7 @@ </histogram> <histogram name="Ash.Pine.ScreenshotOnShutdownStatus" - enum="ScreenshotOnShutdownStatus" expires_after="2025-04-05"> + enum="ScreenshotOnShutdownStatus" expires_after="2025-06-08"> <owner>minch@chromium.org</owner> <owner>sammiequon@chromium.org</owner> <owner>chromeos-wm@google.com</owner> @@ -7548,7 +7548,7 @@ </histogram> <histogram name="Ash.Pine.TimeToAction.{PineContentsType}" units="ms" - expires_after="2025-04-05"> + expires_after="2025-06-08"> <owner>minch@chromium.org</owner> <owner>sammiequon@chromium.org</owner> <owner>chromeos-wm@google.com</owner> @@ -7703,7 +7703,7 @@ </histogram> <histogram name="Ash.PrivacyIndicators.IndicatorShowsDuration" units="ms" - expires_after="2025-04-06"> + expires_after="2025-06-08"> <owner>leandre@chromium.org</owner> <owner>cros-status-area-eng@google.com</owner> <summary> @@ -8446,7 +8446,7 @@ </histogram> <histogram name="Ash.SeaPen.Template" enum="SeaPenTemplateId" - expires_after="2025-03-30"> + expires_after="2025-06-08"> <owner>thuongphan@google.com</owner> <owner>cros-p13n-eng@google.com</owner> <summary> @@ -8486,7 +8486,7 @@ </histogram> <histogram name="Ash.SeaPen.{AppName}.Visited" enum="BooleanHit" - expires_after="2025-03-30"> + expires_after="2025-06-08"> <owner>pzliu@google.com</owner> <owner>cros-p13n-eng@google.com</owner> <summary> @@ -8498,7 +8498,7 @@ </histogram> <histogram name="Ash.SeaPen.{AppName}.{Source}.ImageSet" enum="BooleanHit" - expires_after="2025-03-30"> + expires_after="2025-06-08"> <owner>pzliu@google.com</owner> <owner>cros-p13n-eng@google.com</owner> <summary> @@ -8874,7 +8874,7 @@ </histogram> <histogram name="Ash.ShortcutCustomization.CustomizationsBeforeResetAll" - units="count" expires_after="2025-04-06"> + units="count" expires_after="2025-06-08"> <owner>jimmyxgong@chromium.org</owner> <owner>cros-device-enablement@google.com</owner> <summary> @@ -8938,7 +8938,7 @@ <histogram name="Ash.ShortcutCustomization.RemoveDefaultAccelerator.{ActionName}" - units="Shortcuts" expires_after="2025-04-06"> + units="Shortcuts" expires_after="2025-06-08"> <owner>jimmyxgong@chromium.org</owner> <owner>cros-device-enablement@google.com</owner> <summary> @@ -9070,7 +9070,7 @@ </histogram> <histogram name="Ash.SpeechRecognitionSessionLength.{Location}" units="ms" - expires_after="2025-03-23"> + expires_after="2025-06-08"> <owner>dorianbrandon@google.com</owner> <owner>bzielinski@google.com</owner> <owner>cros-projector@google.com</owner> @@ -9677,7 +9677,7 @@ </histogram> <histogram name="Ash.VideoConference.NumberOfRepeatedShows" units="shows" - expires_after="2025-04-06"> + expires_after="2025-06-08"> <owner>leandre@chromium.org</owner> <owner>cros-status-area-eng@google.com</owner> <summary> @@ -9688,7 +9688,7 @@ </histogram> <histogram name="Ash.VideoConference.ReturnToApp.Click" - enum="VideoConferenceAppType" expires_after="2025-04-06"> + enum="VideoConferenceAppType" expires_after="2025-06-08"> <owner>leandre@google.com</owner> <owner>cros-status-area-eng@google.com</owner> <summary> @@ -9737,7 +9737,7 @@ </histogram> <histogram name="Ash.VideoConferenceTray.BackgroundBlur.Click" - enum="BackgroundBlurState" expires_after="2025-04-06"> + enum="BackgroundBlurState" expires_after="2025-06-08"> <owner>leandre@google.com</owner> <owner>cros-status-area-eng@google.com</owner> <summary> @@ -9788,7 +9788,7 @@ </histogram> <histogram name="Ash.VideoConferenceTray.ToggleBubbleButton.Click" - enum="BooleanOpened" expires_after="2025-04-06"> + enum="BooleanOpened" expires_after="2025-06-08"> <owner>leandre@google.com</owner> <owner>cros-status-area-eng@google.com</owner> <summary> @@ -9798,7 +9798,7 @@ </histogram> <histogram name="Ash.VideoConferenceTray.{Device}MuteButton.Click" - enum="BooleanMuted" expires_after="2025-04-06"> + enum="BooleanMuted" expires_after="2025-06-08"> <owner>leandre@google.com</owner> <owner>cros-status-area-eng@google.com</owner> <summary> @@ -9813,7 +9813,7 @@ </histogram> <histogram name="Ash.VideoConferenceTray.{EffectName}.Click" - enum="BooleanEnabled" expires_after="2025-04-06"> + enum="BooleanEnabled" expires_after="2025-06-08"> <owner>leandre@google.com</owner> <owner>cros-status-area-eng@google.com</owner> <summary> @@ -10312,7 +10312,7 @@ </histogram> <histogram name="Ash.WindowCycleController.ModeSwitchSource" - enum="AltTabModeSwitchSource" expires_after="2025-03-30"> + enum="AltTabModeSwitchSource" expires_after="2025-06-08"> <owner>afakhry@chromium.org</owner> <owner>xdai@chromium.org</owner> <summary>
diff --git a/tools/metrics/histograms/metadata/attribution_reporting/histograms.xml b/tools/metrics/histograms/metadata/attribution_reporting/histograms.xml index 5b1a3ba..9c3ae66b 100644 --- a/tools/metrics/histograms/metadata/attribution_reporting/histograms.xml +++ b/tools/metrics/histograms/metadata/attribution_reporting/histograms.xml
@@ -108,7 +108,7 @@ <histogram name="Conversions.AggregatableReport.AssembleReportStatus" enum="ConversionAssembleAggregatableReportStatus" - expires_after="2025-03-30"> + expires_after="2025-06-08"> <owner>linnan@chromium.org</owner> <owner>johnidel@chromium.org</owner> <owner>measurement-api-dev+metrics@google.com</owner> @@ -355,7 +355,7 @@ </histogram> <histogram name="Conversions.AttributionResult" - enum="ConversionAttributionResult" expires_after="2025-03-30"> + enum="ConversionAttributionResult" expires_after="2025-06-08"> <owner>linnan@chromium.org</owner> <owner>measurement-api-dev+metrics@google.com</owner> <summary> @@ -409,7 +409,7 @@ </histogram> <histogram name="Conversions.CorruptReportsInDatabase5" - enum="ConversionCorruptReportStatus" expires_after="2025-03-09"> + enum="ConversionCorruptReportStatus" expires_after="2025-06-08"> <owner>tquintanilla@chromium.org</owner> <owner>apaseltiner@chromium.org</owner> <owner>measurement-api-dev+metrics@google.com</owner> @@ -422,7 +422,7 @@ </histogram> <histogram name="Conversions.Corrupt{Types}DeletedOnMigration" units="count" - expires_after="2025-01-26"> + expires_after="2025-06-08"> <owner>tquintanilla@chromium.org</owner> <owner>apaseltiner@chromium.org</owner> <owner>measurement-api-dev+metrics@google.com</owner> @@ -484,7 +484,7 @@ </histogram> <histogram name="Conversions.DbVersionOnReportSentAndDeleted" units="Report" - expires_after="2025-03-09"> + expires_after="2025-06-08"> <owner>tquintanilla@chromium.org</owner> <owner>johnidel@chromium.org</owner> <owner>measurement-api-dev+metrics@google.com</owner> @@ -497,7 +497,7 @@ </histogram> <histogram name="Conversions.DbVersionOnSourceStored" units="Source" - expires_after="2025-03-30"> + expires_after="2025-06-08"> <owner>tquintanilla@chromium.org</owner> <owner>johnidel@chromium.org</owner> <owner>measurement-api-dev+metrics@google.com</owner> @@ -569,7 +569,7 @@ </histogram> <histogram name="Conversions.DebugReport.ReportStatusEventLevel" - enum="ConversionReportStatus" expires_after="2025-03-30"> + enum="ConversionReportStatus" expires_after="2025-06-08"> <owner>apaseltiner@chromium.org</owner> <owner>johnidel@chromium.org</owner> <owner>measurement-api-dev+metrics@google.com</owner> @@ -609,7 +609,7 @@ </histogram> <histogram name="Conversions.ExtraReportDelayForSuccessfulSend" units="ms" - expires_after="2025-03-30"> + expires_after="2025-06-08"> <owner>tquintanilla@chromium.org</owner> <owner>johnidel@chromium.org</owner> <owner>measurement-api-dev+metrics@google.com</owner> @@ -635,7 +635,7 @@ </histogram> <histogram name="Conversions.FirstBatch.HttpResponseOrNetErrorCode" - enum="CombinedHttpResponseAndNetErrorCode" expires_after="2025-03-30"> + enum="CombinedHttpResponseAndNetErrorCode" expires_after="2025-06-08"> <owner>johnidel@chromium.org</owner> <owner>measurement-api-dev+metrics@google.com</owner> <summary> @@ -729,7 +729,7 @@ </histogram> <histogram name="Conversions.HttpResponseOrNetErrorCodeEventLevel" - enum="CombinedHttpResponseAndNetErrorCode" expires_after="2025-03-30"> + enum="CombinedHttpResponseAndNetErrorCode" expires_after="2025-06-08"> <owner>johnidel@chromium.org</owner> <owner>measurement-api-dev+metrics@google.com</owner> <summary> @@ -764,7 +764,7 @@ </histogram> <histogram name="Conversions.IncrementalTaintingFailures" - units="failed registrations" expires_after="2025-03-30"> + units="failed registrations" expires_after="2025-06-08"> <owner>csharrison@chromium.org</owner> <owner>measurement-api-dev+metrics@google.com</owner> <summary> @@ -1018,7 +1018,7 @@ </histogram> <histogram name="Conversions.ProcessRegisterDataHostDelay" units="ms" - expires_after="2025-03-30"> + expires_after="2025-06-08"> <owner>apaseltiner@chromium.org</owner> <owner>measurement-api-dev+metrics@google.com</owner> <summary> @@ -1029,7 +1029,7 @@ </histogram> <histogram name="Conversions.RegisterDataHostOutcome" - enum="ConversionRegisterDataHostOutcome" expires_after="2025-03-30"> + enum="ConversionRegisterDataHostOutcome" expires_after="2025-06-08"> <owner>apaseltiner@chromium.org</owner> <owner>measurement-api-dev+metrics@google.com</owner> <summary> @@ -1049,7 +1049,7 @@ </histogram> <histogram name="Conversions.RegistrationMethod2" - enum="ConversionsRegistrationMethod" expires_after="2025-03-30"> + enum="ConversionsRegistrationMethod" expires_after="2025-06-08"> <owner>linnan@chromium.org</owner> <owner>measurement-api-dev+metrics@google.com</owner> <summary> @@ -1088,7 +1088,7 @@ </histogram> <histogram name="Conversions.RegistrationsPerRedirectChain" - units="registrations" expires_after="2025-03-30"> + units="registrations" expires_after="2025-06-08"> <owner>linnan@chromium.org</owner> <owner>johnidel@chromium.org</owner> <owner>measurement-api-dev+metrics@google.com</owner> @@ -1099,7 +1099,7 @@ </histogram> <histogram name="Conversions.ReportRetrySucceedEventLevel" - enum="BooleanSuccess" expires_after="2025-03-30"> + enum="BooleanSuccess" expires_after="2025-06-08"> <owner>apaseltiner@chromium.org</owner> <owner>johnidel@chromium.org</owner> <owner>measurement-api-dev+metrics@google.com</owner> @@ -1121,7 +1121,7 @@ </histogram> <histogram name="Conversions.ReportsDeletedInDataClearOperation.Event" - units="conversions" expires_after="2025-03-30"> + units="conversions" expires_after="2025-06-08"> <owner>johnidel@chromium.org</owner> <owner>csharrison@chromium.org</owner> <owner>linnan@chromium.org</owner> @@ -1151,7 +1151,7 @@ </histogram> <histogram name="Conversions.ReportStatusEventLevel" - enum="ConversionReportStatus" expires_after="2025-03-30"> + enum="ConversionReportStatus" expires_after="2025-06-08"> <owner>linnan@chromium.org</owner> <owner>johnidel@chromium.org</owner> <owner>measurement-api-dev+metrics@google.com</owner> @@ -1190,7 +1190,7 @@ </histogram> <histogram name="Conversions.ScopesPer{Type}Registration" units="scopes" - expires_after="2025-03-30"> + expires_after="2025-06-08"> <owner>tquintanilla@chromium.org</owner> <owner>measurement-api-dev+metrics@google.com</owner> <summary> @@ -1304,7 +1304,7 @@ </histogram> <histogram name="Conversions.Storage.MigrationTime" units="ms" - expires_after="2025-03-09"> + expires_after="2025-06-08"> <owner>johnidel@chromium.org</owner> <owner>csharrison@chromium.org</owner> <summary> @@ -1377,7 +1377,7 @@ </histogram> <histogram name="Conversions.TimeFromConversionToReportSend" units="hours" - expires_after="2025-03-09"> + expires_after="2025-06-08"> <owner>johnidel@chromium.org</owner> <owner>csharrison@chromium.org</owner> <summary> @@ -1413,7 +1413,7 @@ </histogram> <histogram name="Conversions.TriggerTimeLessThanSourceTime" enum="Boolean" - expires_after="2025-03-09"> + expires_after="2025-06-08"> <owner>tquintanilla@chromium.org</owner> <owner>apaseltiner@chromium.org</owner> <owner>measurement-api-dev+metrics@google.com</owner> @@ -1544,7 +1544,7 @@ </histogram> <histogram name="Conversions.{ReportType}.NetworkConnectionTypeOnFailure" - enum="NetworkConnectionType" expires_after="2025-03-30"> + enum="NetworkConnectionType" expires_after="2025-06-08"> <owner>linnan@chromium.org</owner> <owner>johnidel@chromium.org</owner> <owner>measurement-api-dev+metrics@google.com</owner>
diff --git a/tools/metrics/histograms/metadata/autofill/histograms.xml b/tools/metrics/histograms/metadata/autofill/histograms.xml index 12aa7a57..5dbce4e 100644 --- a/tools/metrics/histograms/metadata/autofill/histograms.xml +++ b/tools/metrics/histograms/metadata/autofill/histograms.xml
@@ -908,7 +908,7 @@ <histogram name="Autofill.Autocomplete.NotOff.EditedAutofilledFieldAtSubmission2{AutofillFormType}" - enum="AutofilledFieldUserEditingStatus" expires_after="2025-03-30"> + enum="AutofilledFieldUserEditingStatus" expires_after="2025-06-08"> <owner>schwering@google.com</owner> <owner>chrome-autofill-alerts@google.com</owner> <summary> @@ -937,7 +937,7 @@ <histogram name="Autofill.Autocomplete.Off.EditedAutofilledFieldAtSubmission2{AutofillFormType}" - enum="AutofilledFieldUserEditingStatus" expires_after="2025-03-30"> + enum="AutofilledFieldUserEditingStatus" expires_after="2025-06-08"> <owner>schwering@google.com</owner> <owner>chrome-autofill-alerts@google.com</owner> <summary> @@ -951,7 +951,7 @@ </histogram> <histogram name="Autofill.Autocomplete.Off.FillingAcceptance.{FormType}" - enum="BooleanAutofillFillingAcceptance" expires_after="2025-03-30"> + enum="BooleanAutofillFillingAcceptance" expires_after="2025-06-08"> <owner>schwering@google.com</owner> <owner>chrome-autofill-alerts@google.com</owner> <summary> @@ -2119,7 +2119,7 @@ <histogram name="Autofill.Deduplication.ExistingProfiles.PercentageOfNonQuasiDuplicates.{MaxN}" - units="Percents" expires_after="2025-03-23"> + units="Percents" expires_after="2025-06-08"> <owner>koerber@chromium.org</owner> <owner>sygiet@google.com</owner> <owner>chrome-autofill-alerts@google.com</owner> @@ -2143,7 +2143,7 @@ <histogram name="Autofill.Deduplication.ExistingProfiles.QuasiDuplicateAdoption.{DuplicationRank}.QualityThreshold" - units="units" expires_after="2025-03-23"> + units="units" expires_after="2025-06-08"> <owner>koerber@chromium.org</owner> <owner>sygiet@google.com</owner> <owner>chrome-autofill-alerts@google.com</owner> @@ -2186,7 +2186,7 @@ <histogram name="Autofill.Deduplication.NewProfile.{Decision}.RankOfStoredQuasiDuplicateProfiles" - units="Rank" expires_after="2025-03-30"> + units="Rank" expires_after="2025-06-08"> <owner>koerber@chromium.org</owner> <owner>fleimgruber@chromium.org</owner> <owner>chrome-autofill-alerts@google.com</owner> @@ -2207,7 +2207,7 @@ <histogram name="Autofill.Deduplication.{Scenario}.QualityOfQuasiDuplicateToken.{DuplicationRank}.{Type}" - units="units" expires_after="2025-03-23"> + units="units" expires_after="2025-06-08"> <owner>koerber@chromium.org</owner> <owner>sygiet@google.com</owner> <owner>chrome-autofill-alerts@google.com</owner> @@ -2424,7 +2424,7 @@ <histogram name="Autofill.FastCheckout.CapabilitiesFetcher.CacheStateForIsTriggerFormSupported" enum="FastCheckoutCacheStateForIsTriggerFormSupported" - expires_after="2025-03-30"> + expires_after="2025-06-08"> <owner>bwolfgang@google.com</owner> <owner>jkeitel@google.com</owner> <owner>vizcay@google.com</owner> @@ -2436,7 +2436,7 @@ <histogram name="Autofill.FastCheckout.CapabilitiesFetcher.HttpResponseAndNetErrorCode" - enum="CombinedHttpResponseAndNetErrorCode" expires_after="2025-03-30"> + enum="CombinedHttpResponseAndNetErrorCode" expires_after="2025-06-08"> <owner>vizcay@google.com</owner> <owner>chrome-autofill-alerts@google.com</owner> <summary> @@ -2445,7 +2445,7 @@ </histogram> <histogram name="Autofill.FastCheckout.CapabilitiesFetcher.ParsingResult" - enum="FastCheckoutCapabilitiesParsingResult" expires_after="2025-03-30"> + enum="FastCheckoutCapabilitiesParsingResult" expires_after="2025-06-08"> <owner>bwolfgang@google.com</owner> <owner>jkeitel@google.com</owner> <owner>vizcay@google.com</owner> @@ -2455,7 +2455,7 @@ </histogram> <histogram name="Autofill.FastCheckout.CapabilitiesFetcher.ResponseTime" - units="ms" expires_after="2025-03-30"> + units="ms" expires_after="2025-06-08"> <owner>vizcay@google.com</owner> <owner>chrome-autofill-alerts@google.com</owner> <summary> @@ -2477,7 +2477,7 @@ </histogram> <histogram name="Autofill.FastCheckout.TriggerOutcome" - enum="FastCheckoutTriggerOutcome" expires_after="2025-03-30"> + enum="FastCheckoutTriggerOutcome" expires_after="2025-06-08"> <owner>bwolfgang@google.com</owner> <owner>jkeitel@google.com</owner> <owner>vizcay@google.com</owner> @@ -2840,7 +2840,7 @@ </histogram> <histogram name="Autofill.FormForest.GetBrowserFormOfRendererForm.Duration" - units="microseconds" expires_after="2025-03-30"> + units="microseconds" expires_after="2025-06-08"> <owner>schwering@google.com</owner> <owner>chrome-autofill-alerts@google.com</owner> <summary> @@ -2880,7 +2880,7 @@ </histogram> <histogram name="Autofill.FormForest.UpdateTreeOfRendererForm.Visits" - units="node-visits" expires_after="2025-03-30"> + units="node-visits" expires_after="2025-06-08"> <owner>schwering@google.com</owner> <owner>chrome-autofill-alerts@google.com</owner> <summary> @@ -3512,7 +3512,7 @@ </histogram> <histogram name="Autofill.Leipzig.FillingReadinessCategory" - enum="AutofillCategoryResolvedFillingReadiness" expires_after="2025-04-06"> + enum="AutofillCategoryResolvedFillingReadiness" expires_after="2025-06-08"> <owner>koerber@chromium.org</owner> <owner>fleimgruber@chromium.org</owner> <owner>chrome-autofill-alerts@google.com</owner> @@ -3771,7 +3771,7 @@ </histogram> <histogram name="Autofill.NumberOfDriversPerFactory" units="count" - expires_after="2025-04-06"> + expires_after="2025-06-08"> <owner>schwering@google.com</owner> <owner>jkeitel@google.com</owner> <owner>chrome-autofill-alerts@google.com</owner> @@ -4235,7 +4235,7 @@ <histogram name="Autofill.PaymentMethods.SettingsPage.StoredCreditCardCountBeforeCardAdded" - units="cards" expires_after="2025-04-06"> + units="cards" expires_after="2025-06-08"> <owner>darwinyang@google.com</owner> <owner>chrome-payments-team@google.com</owner> <summary> @@ -4250,7 +4250,7 @@ </histogram> <histogram name="Autofill.PaymentMethodsSettingsPage.AddCardClicked" - enum="Boolean" expires_after="2025-02-01"> + enum="Boolean" expires_after="2025-06-08"> <owner>npnavarro@google.com</owner> <owner>darwinyang@google.com</owner> <owner>chrome-payments-team@google.com</owner> @@ -4515,7 +4515,7 @@ </histogram> <histogram name="Autofill.ProfileImport.InaccessibleFieldsRemoved.ByFieldType" - enum="AutofillSettingsVisibleTypes" expires_after="2025-04-06"> + enum="AutofillSettingsVisibleTypes" expires_after="2025-06-08"> <owner>fleimgruber@google.com</owner> <owner>chrome-autofill-alerts@google.com</owner> <summary> @@ -4525,7 +4525,7 @@ </histogram> <histogram name="Autofill.ProfileImport.InaccessibleFieldsRemoved.Total" - enum="Boolean" expires_after="2025-04-06"> + enum="Boolean" expires_after="2025-06-08"> <owner>fleimgruber@google.com</owner> <owner>chrome-autofill-alerts@google.com</owner> <summary> @@ -4595,7 +4595,7 @@ </histogram> <histogram name="Autofill.ProfileImport.NewProfileEditedType" - enum="AutofillSettingsVisibleTypes" expires_after="2025-03-30"> + enum="AutofillSettingsVisibleTypes" expires_after="2025-06-08"> <owner>koerber@google.com</owner> <owner>src/components/autofill/OWNERS</owner> <summary> @@ -4639,7 +4639,7 @@ </histogram> <histogram name="Autofill.ProfileImport.StorageNewAddressIsSavedTo" - enum="AutofillProfileRecordType" expires_after="2025-04-06"> + enum="AutofillProfileRecordType" expires_after="2025-06-08"> <owner>amelies@google.com</owner> <owner>src/components/autofill/OWNERS</owner> <summary> @@ -4707,7 +4707,7 @@ </histogram> <histogram name="Autofill.ProfileImport.UpdateProfileDecision2.{UserGroup}" - enum="AutofillProfileImportDecision" expires_after="2025-03-30"> + enum="AutofillProfileImportDecision" expires_after="2025-06-08"> <owner>koerber@google.com</owner> <owner>src/components/autofill/OWNERS</owner> <summary> @@ -4740,7 +4740,7 @@ <histogram name="Autofill.ProfileImport.UpdateProfileNumberOfAffectedFields.{Decision}" - units="fields" expires_after="2025-03-30"> + units="fields" expires_after="2025-06-08"> <owner>koerber@google.com</owner> <owner>src/components/autofill/OWNERS</owner> <summary> @@ -5343,7 +5343,7 @@ </histogram> <histogram name="Autofill.Settings.ToggleUseThirdPartyFilling" enum="Boolean" - expires_after="2025-03-30"> + expires_after="2025-06-08"> <owner>friedrichh@chromium.org</owner> <owner>chrome-autofill-alerts@google.com</owner> <summary> @@ -7104,7 +7104,7 @@ </histogram> <histogram name="Autofill.WebView.Provider.PackageName" - enum="AutofillProviderPackageName" expires_after="2025-03-30"> + enum="AutofillProviderPackageName" expires_after="2025-06-08"> <owner>alexmitra@chromium.org</owner> <owner>src/android_webview/OWNERS</owner> <summary>
diff --git a/tools/metrics/histograms/metadata/blink/histograms.xml b/tools/metrics/histograms/metadata/blink/histograms.xml index 83d3836..fce43e0 100644 --- a/tools/metrics/histograms/metadata/blink/histograms.xml +++ b/tools/metrics/histograms/metadata/blink/histograms.xml
@@ -305,7 +305,7 @@ </histogram> <histogram name="Blink.Canvas.2DPrintingAsVector" enum="BooleanSuccess" - expires_after="2025-04-01"> + expires_after="2025-06-08"> <owner>fserb@chromium.org</owner> <owner>aaronhk@chromium.org</owner> <summary> @@ -335,7 +335,7 @@ </histogram> <histogram name="Blink.Canvas.GetImageData.WillReadFrequently" - enum="BooleanWillReadFrequently" expires_after="2025-04-01"> + enum="BooleanWillReadFrequently" expires_after="2025-06-08"> <owner>aaronhk@chromium.org</owner> <owner>junov@chromium.org</owner> <summary> @@ -344,7 +344,7 @@ </histogram> <histogram name="Blink.Canvas.GPUFallbackToCPU" - enum="CanvasGPUFallbackToCPUScenario" expires_after="2025-04-01"> + enum="CanvasGPUFallbackToCPUScenario" expires_after="2025-06-08"> <owner>aaronhk@chromium.org</owner> <owner>fserb@chromium.org</owner> <summary>Logs the occurrences of canvas fallback from GPU to CPU.</summary> @@ -360,7 +360,7 @@ </histogram> <histogram name="Blink.Canvas.HibernationEvents" enum="CanvasHibernationEvent" - expires_after="2025-04-01"> + expires_after="2025-06-08"> <owner>aaronhk@chromium.org</owner> <owner>fserb@chromium.org</owner> <summary> @@ -370,7 +370,7 @@ </histogram> <histogram name="Blink.Canvas.MaximumInflightResources" - units="canvas resources" expires_after="2025-04-01"> + units="canvas resources" expires_after="2025-06-08"> <owner>aaronhk@chromium.org</owner> <owner>fserb@chromium.org</owner> <summary> @@ -393,7 +393,7 @@ </histogram> <histogram name="Blink.Canvas.NumCanvasesPerPage" units="canvases" - expires_after="2025-04-01"> + expires_after="2025-06-08"> <owner>aaronhk@chromium.org</owner> <owner>fserb@chromium.org</owner> <summary> @@ -436,7 +436,7 @@ <histogram name="Blink.Canvas.RequestedImageMimeTypes{CanvasRequestedImageMimeTypeFunctions}" - enum="RequestedImageMimeType" expires_after="2025-04-01"> + enum="RequestedImageMimeType" expires_after="2025-06-08"> <owner>fserb@chromium.org</owner> <owner>aaronhk@chromium.org</owner> <summary> @@ -462,7 +462,7 @@ </histogram> <histogram name="Blink.Canvas.ResourceProviderType" - enum="CanvasResourceProviderType" expires_after="2025-04-01"> + enum="CanvasResourceProviderType" expires_after="2025-06-08"> <owner>aaronhk@chromium.org</owner> <owner>fserb@chromium.org</owner> <summary>Records the type of resource provider used for a canvas.</summary> @@ -478,7 +478,7 @@ </histogram> <histogram name="Blink.Canvas.SqrtNumberOfPixels" units="sqrt(pixels)" - expires_after="2025-04-01"> + expires_after="2025-06-08"> <owner>aaronhk@chromium.org</owner> <owner>fserb@chromium.org</owner> <summary> @@ -502,7 +502,7 @@ </histogram> <histogram name="Blink.Canvas.ToBlob.InitialEncodingDelay.{Type}" - units="microseconds" expires_after="2025-04-01"> + units="microseconds" expires_after="2025-06-08"> <owner>aaronhk@chromium.org</owner> <owner>fserb@chromium.org</owner> <summary> @@ -534,7 +534,7 @@ </histogram> <histogram name="Blink.Canvas.ToBlob.ScaledDuration{BlinkCanvasToBlobType}" - units="microseconds/sqrt(pixels)" expires_after="2025-04-01"> + units="microseconds/sqrt(pixels)" expires_after="2025-06-08"> <owner>fserb@chromium.org</owner> <owner>aaronhk@chromium.org</owner> <summary> @@ -559,7 +559,7 @@ </histogram> <histogram name="Blink.Canvas.ToBlob.TotalEncodingDelay.{Type}" - units="microseconds" expires_after="2025-04-01"> + units="microseconds" expires_after="2025-06-08"> <owner>aaronhk@chromium.org</owner> <owner>fserb@chromium.org</owner> <summary> @@ -595,7 +595,7 @@ <histogram name="Blink.Canvas.ToDataURLScaledDuration{BlinkCanvasToDataURLMimeType}" - units="microseconds/sqrt(pixels)" expires_after="2025-04-01"> + units="microseconds/sqrt(pixels)" expires_after="2025-06-08"> <owner>fserb@chromium.org</owner> <owner>aaronhk@chromium.org</owner> <summary> @@ -630,7 +630,7 @@ </histogram> <histogram name="Blink.Canvas.WebGLANGLEImplementation" - enum="WebGLANGLEImplementation" expires_after="2025-03-30"> + enum="WebGLANGLEImplementation" expires_after="2025-06-08"> <owner>zmo@chromium.org</owner> <owner>webgl-team@google.com</owner> <summary> @@ -726,7 +726,7 @@ </histogram> <histogram base="true" name="Blink.ContentDocumentUpdate.UpdateTime" - units="microseconds" expires_after="2025-03-30"> + units="microseconds" expires_after="2025-06-08"> <!-- Name completed by histogram_suffixes name="BlinkUpdateTimeSuffixes" --> <owner>pdr@chromium.org</owner> @@ -922,7 +922,7 @@ </histogram> <histogram name="Blink.DecodedImage.JpegDensity.KiBWeighted" - units="0.01 bits per pixel" expires_after="2025-03-09"> + units="0.01 bits per pixel" expires_after="2025-06-08"> <owner>jyrki@google.com</owner> <owner>compression-dev@google.com</owner> <summary> @@ -1062,7 +1062,7 @@ <histogram name="Blink.DocumentLoader.CreateParserPostCommit.Time.OutermostMainFrame.NewNavigation.IsHTTPOrHTTPS" - units="ms" expires_after="2025-03-30"> + units="ms" expires_after="2025-06-08"> <owner>chikamune@chromium.org</owner> <owner>chrome-loading@google.com</owner> <summary> @@ -2585,7 +2585,7 @@ </histogram> <histogram name="Blink.HTMLParsing.ChunkCount4" units="chunks" - expires_after="2025-04-06"> + expires_after="2025-06-08"> <owner>masonf@chromium.org</owner> <owner>dom-dev@google.com</owner> <summary> @@ -2644,7 +2644,7 @@ </histogram> <histogram name="Blink.HTMLParsing.ParsingTimeTotal4" units="microseconds" - expires_after="2025-04-06"> + expires_after="2025-06-08"> <owner>masonf@chromium.org</owner> <owner>dom-dev@google.com</owner> <summary> @@ -2727,7 +2727,7 @@ </histogram> <histogram name="Blink.HTMLParsing.TokensParsedTotal4" units="tokens" - expires_after="2025-04-06"> + expires_after="2025-06-08"> <owner>masonf@chromium.org</owner> <owner>dom-dev@google.com</owner> <summary> @@ -2882,7 +2882,7 @@ </histogram> <histogram base="true" name="Blink.JavascriptDocumentUpdate.UpdateTime" - units="microseconds" expires_after="2025-03-30"> + units="microseconds" expires_after="2025-06-08"> <!-- Name completed by histogram_suffixes name="BlinkUpdateTimeSuffixes" --> <owner>pdr@chromium.org</owner> @@ -2996,7 +2996,7 @@ </histogram> <histogram name="Blink.Layout.SVGImage.TotalTime.InOutermostMainFrame" - units="microseconds" expires_after="2025-03-30"> + units="microseconds" expires_after="2025-06-08"> <owner>chikamune@chromium.org</owner> <owner> src/third_party/blink/renderer/core/lcp_critical_path_predictor/OWNERS @@ -3485,7 +3485,7 @@ </histogram> <histogram name="Blink.LCPP.RecordedFontCount" units="count" - expires_after="2025-03-30"> + expires_after="2025-06-08"> <owner>yyanagisawa@chromium.org</owner> <owner> src/third_party/blink/renderer/core/lcp_critical_path_predictor/OWNERS @@ -3630,7 +3630,7 @@ </histogram> <histogram name="Blink.LCPP.RecordedFontUrlsMaxLength" units="bytes" - expires_after="2025-03-30"> + expires_after="2025-06-08"> <owner>yyanagisawa@chromium.org</owner> <owner> src/third_party/blink/renderer/core/lcp_critical_path_predictor/OWNERS @@ -3900,7 +3900,7 @@ </histogram> <histogram name="Blink.OffscreenCanvas.NewOffscreenCanvas" enum="Boolean" - expires_after="2025-04-01"> + expires_after="2025-06-08"> <owner>aaronhk@chromium.org</owner> <owner>fserb@chromium.org</owner> <summary> @@ -3987,7 +3987,7 @@ </histogram> <histogram name="Blink.PermissionElement.InvalidStyleReason" - enum="PermissionElementInvalidStyleReason" expires_after="2025-03-30"> + enum="PermissionElementInvalidStyleReason" expires_after="2025-06-08"> <owner>tungnh@chromium.org</owner> <owner>src/components/permissions/PERMISSIONS_OWNERS</owner> <summary> @@ -4437,7 +4437,7 @@ </histogram> <histogram base="true" name="Blink.ServiceDocumentUpdate.UpdateTime" - units="microseconds" expires_after="2025-03-30"> + units="microseconds" expires_after="2025-06-08"> <!-- Name completed by histogram_suffixes name="BlinkUpdateTimeSuffixes" --> <owner>pdr@chromium.org</owner> @@ -4469,7 +4469,7 @@ </histogram> <histogram name="Blink.Sms.Receive.CrossDeviceFailure" - enum="WebOTPCrossDeviceFailure" expires_after="2025-02-12"> + enum="WebOTPCrossDeviceFailure" expires_after="2025-06-08"> <owner>yigu@chromium.org</owner> <owner>web-identity-eng@google.com</owner> <summary> @@ -4850,7 +4850,7 @@ </histogram> <histogram name="Blink.UseCounter.File.Features" enum="FeatureObserver" - expires_after="2025-03-30"> + expires_after="2025-06-08"> <owner>yhirano@chromium.org</owner> <owner>mkwst@chromium.org</owner> <summary> @@ -4951,7 +4951,7 @@ </histogram> <histogram base="true" name="Blink.UserDrivenDocumentUpdate.UpdateTime" - units="microseconds" expires_after="2025-03-30"> + units="microseconds" expires_after="2025-06-08"> <!-- Name completed by histogram_suffixes name="BlinkUpdateTimeSuffixes" --> <owner>pdr@chromium.org</owner> @@ -5139,7 +5139,7 @@ </histogram> <histogram name="Blink.{Host}.{Heap}.{Context}" units="KB" - expires_after="2025-04-01"> + expires_after="2025-06-08"> <owner>junov@chromium.org</owner> <owner>fserb@chromium.org</owner> <owner>aaronhk@chromium.org</owner>
diff --git a/tools/metrics/histograms/metadata/bluetooth/histograms.xml b/tools/metrics/histograms/metadata/bluetooth/histograms.xml index 6a073054..bc105b1 100644 --- a/tools/metrics/histograms/metadata/bluetooth/histograms.xml +++ b/tools/metrics/histograms/metadata/bluetooth/histograms.xml
@@ -1990,7 +1990,7 @@ </histogram> <histogram name="Bluetooth.Web.GetCharacteristic.Characteristic" - enum="GATTCharacteristicHash" expires_after="2025-03-30"> + enum="GATTCharacteristicHash" expires_after="2025-06-08"> <owner>reillyg@chromium.org</owner> <owner>deviceapi-team@google.com</owner> <summary> @@ -2012,7 +2012,7 @@ </histogram> <histogram name="Bluetooth.Web.GetPrimaryService.Services" - enum="GATTServiceHash" expires_after="2025-03-30"> + enum="GATTServiceHash" expires_after="2025-06-08"> <owner>chengweih@chromium.org</owner> <owner>deviceapi-team@google.com</owner> <summary> @@ -2023,7 +2023,7 @@ </histogram> <histogram name="Bluetooth.Web.GetPrimaryServices.Services" - enum="GATTServiceHash" expires_after="2025-03-30"> + enum="GATTServiceHash" expires_after="2025-06-08"> <owner>chengweih@chromium.org</owner> <owner>deviceapi-team@google.com</owner> <summary> @@ -2057,7 +2057,7 @@ </histogram> <histogram name="Bluetooth.Web.RequestDevice.UnionOfServices.Services" - enum="GATTServiceHash" expires_after="2025-03-30"> + enum="GATTServiceHash" expires_after="2025-06-08"> <owner>chengweih@chromium.org</owner> <owner>deviceapi-team@google.com</owner> <summary>
diff --git a/tools/metrics/histograms/metadata/bookmarks/histograms.xml b/tools/metrics/histograms/metadata/bookmarks/histograms.xml index 69add7d1..025091b 100644 --- a/tools/metrics/histograms/metadata/bookmarks/histograms.xml +++ b/tools/metrics/histograms/metadata/bookmarks/histograms.xml
@@ -288,7 +288,7 @@ </histogram> <histogram name="Bookmarks.MobileBookmarkManager.FilterShown" - enum="MobileBookmarkManagerFilter" expires_after="2025-03-02"> + enum="MobileBookmarkManagerFilter" expires_after="2025-06-08"> <owner>wylieb@chromium.org</owner> <owner>chrome-collections@google.com</owner> <summary> @@ -412,7 +412,7 @@ </histogram> <histogram name="Bookmarks.ParentFolderType" enum="BookmarkFolderType" - expires_after="2025-03-30"> + expires_after="2025-06-08"> <owner>emshack@chromium.org</owner> <owner>chrome-desktop-ui-sea@google.com</owner> <summary>
diff --git a/tools/metrics/histograms/metadata/browser/histograms.xml b/tools/metrics/histograms/metadata/browser/histograms.xml index 7cd833c4..96fdc015 100644 --- a/tools/metrics/histograms/metadata/browser/histograms.xml +++ b/tools/metrics/histograms/metadata/browser/histograms.xml
@@ -67,7 +67,7 @@ </variants> <histogram name="Browser.Actions.PinnedActionsCount" units="actions" - expires_after="2025-03-30"> + expires_after="2025-06-08"> <owner>corising@chromium.org</owner> <owner>chrome-desktop-ui-sea@google.com</owner> <summary> @@ -100,7 +100,7 @@ </histogram> <histogram name="Browser.ERP.AppInstallTrackerDiskConsumption" units="bytes" - expires_after="2025-03-30"> + expires_after="2025-06-08"> <owner>vshenvi@google.com</owner> <owner>cros-reporting-team@google.com</owner> <summary> @@ -152,7 +152,7 @@ </histogram> <histogram name="Browser.ERP.DataLossErrorReason" - enum="DataLossErrorReasonBrowser" expires_after="2025-04-01"> + enum="DataLossErrorReasonBrowser" expires_after="2025-06-08"> <owner>lbaraz@chromium.org</owner> <owner>src/components/reporting/OWNERS</owner> <summary> @@ -164,7 +164,7 @@ </histogram> <histogram name="Browser.ERP.EnqueueFailureDestination" - enum="EnterpriseCloudReportingDestination" expires_after="2025-03-30"> + enum="EnterpriseCloudReportingDestination" expires_after="2025-06-08"> <owner>vshenvi@google.com</owner> <owner>cros-reporting-team@google.com</owner> <summary> @@ -175,7 +175,7 @@ </histogram> <histogram name="Browser.ERP.EnqueueSuccessDestination" - enum="EnterpriseCloudReportingDestination" expires_after="2025-03-30"> + enum="EnterpriseCloudReportingDestination" expires_after="2025-06-08"> <owner>vshenvi@google.com</owner> <owner>cros-reporting-team@google.com</owner> <summary> @@ -197,7 +197,7 @@ </histogram> <histogram name="Browser.ERP.EventEnqueueResult.{Destination}" - enum="EnterpriseCloudReportingStatusCode" expires_after="2025-03-20"> + enum="EnterpriseCloudReportingStatusCode" expires_after="2025-06-08"> <owner>lbaraz@chromium.org</owner> <owner>cros-reporting-team@google.com</owner> <summary> @@ -315,7 +315,7 @@ </histogram> <histogram name="Browser.ERP.MissiveClientDbusError" - enum="EnterpriseReportingMissiveClientDbusError" expires_after="2025-04-01"> + enum="EnterpriseReportingMissiveClientDbusError" expires_after="2025-06-08"> <owner>lbaraz@chromium.org</owner> <owner>src/components/reporting/OWNERS</owner> <summary> @@ -426,7 +426,7 @@ </histogram> <histogram name="Browser.ERP.TimeSpentRetryingEnqueueRecord" units="ms" - expires_after="2025-04-01"> + expires_after="2025-06-08"> <owner>lbaraz@chromium.org</owner> <owner>src/components/reporting/OWNERS</owner> <summary> @@ -437,7 +437,7 @@ </histogram> <histogram name="Browser.ERP.UnavailableErrorReason" - enum="UnavailableErrorReasonBrowser" expires_after="2025-04-01"> + enum="UnavailableErrorReasonBrowser" expires_after="2025-06-08"> <owner>lbaraz@chromium.org</owner> <owner>src/components/reporting/OWNERS</owner> <summary> @@ -567,7 +567,7 @@ </histogram> <histogram name="Browser.MainThreadsCongestion.LowMemory" units="janks" - expires_after="2025-03-30"> + expires_after="2025-06-08"> <owner>vovoy@chromium.org</owner> <owner>chromeos-memory@google.com</owner> <summary> @@ -1229,7 +1229,7 @@ </histogram> <histogram name="BrowserRenderProcessHost.MaxOutermostMainFrames" - units="frames" expires_after="2025-03-30"> + units="frames" expires_after="2025-06-08"> <owner>dtapuska@chromium.org</owner> <owner>chrome-loading@google.com</owner> <summary> @@ -1353,7 +1353,7 @@ </histogram> <histogram name="BrowserRenderProcessHost.SpareRendererDispatchResult" - enum="SpareRendererDispatchResult" expires_after="2025-03-09"> + enum="SpareRendererDispatchResult" expires_after="2025-06-08"> <owner>gjc@google.com</owner> <owner>chrome-loading@google.com</owner> <summary>
diff --git a/tools/metrics/histograms/metadata/browsing_topics/histograms.xml b/tools/metrics/histograms/metadata/browsing_topics/histograms.xml index 1c62cfc6..39a682ab 100644 --- a/tools/metrics/histograms/metadata/browsing_topics/histograms.xml +++ b/tools/metrics/histograms/metadata/browsing_topics/histograms.xml
@@ -23,7 +23,7 @@ <histograms> <histogram name="BrowsingTopics.ApiActionType" - enum="BrowsingTopicsApiActionType" expires_after="2025-03-30"> + enum="BrowsingTopicsApiActionType" expires_after="2025-06-08"> <owner>yaoxia@chromium.org</owner> <owner>jkarlin@chromium.org</owner> <summary> @@ -45,7 +45,7 @@ <histogram name="BrowsingTopics.EpochTopicsCalculation.DidNotOccurAtScheduledTime.DaysSinceSessionStart" - units="days" expires_after="2025-04-06"> + units="days" expires_after="2025-06-08"> <owner>yaoxia@chromium.org</owner> <owner>jkarlin@chromium.org</owner> <summary> @@ -58,7 +58,7 @@ <histogram name="BrowsingTopics.EpochTopicsCalculation.DidNotOccurAtScheduledTime.HoursSinceScheduledTime" - units="hours" expires_after="2025-04-06"> + units="hours" expires_after="2025-06-08"> <owner>yaoxia@chromium.org</owner> <owner>jkarlin@chromium.org</owner> <summary> @@ -281,7 +281,7 @@ </histogram> <histogram name="BrowsingTopics.Result.FilteredTopicCount" - enum="BrowsingTopicsNumberOfTopics" expires_after="2025-03-30"> + enum="BrowsingTopicsNumberOfTopics" expires_after="2025-06-08"> <owner>yaoxia@chromium.org</owner> <owner>jkarlin@chromium.org</owner> <summary>
diff --git a/tools/metrics/histograms/metadata/chrome/histograms.xml b/tools/metrics/histograms/metadata/chrome/histograms.xml index 3051e6f..3ad1c1f 100644 --- a/tools/metrics/histograms/metadata/chrome/histograms.xml +++ b/tools/metrics/histograms/metadata/chrome/histograms.xml
@@ -373,7 +373,7 @@ </histogram> <histogram name="ChromeColors.DynamicColorOnLoad" - enum="DynamicChromeColorsInfo" expires_after="2025-03-30"> + enum="DynamicChromeColorsInfo" expires_after="2025-06-08"> <owner>tiborg@chromium.org</owner> <owner>chrome-desktop-ntp@google.com</owner> <summary>
diff --git a/tools/metrics/histograms/metadata/chromeos/histograms.xml b/tools/metrics/histograms/metadata/chromeos/histograms.xml index 13fb08a..a0b4f98 100644 --- a/tools/metrics/histograms/metadata/chromeos/histograms.xml +++ b/tools/metrics/histograms/metadata/chromeos/histograms.xml
@@ -468,7 +468,7 @@ </histogram> <histogram name="ChromeOS.Camera.Effects.NumStillShotsTaken" units="captures" - expires_after="2025-02-10"> + expires_after="2025-06-08"> <owner>skyostil@chromium.org</owner> <owner>chromeos-camera-eng@google.com</owner> <summary> @@ -1084,7 +1084,7 @@ <histogram name="ChromeOS.CertProvisioning.Event{CertProvisioningProtocolVersion}.{CertProvisioningScope}" - enum="CertProvisioningEvent" expires_after="2025-04-01"> + enum="CertProvisioningEvent" expires_after="2025-06-08"> <owner>miersh@google.com</owner> <owner>gschwarz@google.com</owner> <summary> @@ -1114,7 +1114,7 @@ <histogram name="ChromeOS.CertProvisioning.Result{CertProvisioningProtocolVersion}.{CertProvisioningScope}" - enum="CertProvisioningWorkerState" expires_after="2025-04-01"> + enum="CertProvisioningWorkerState" expires_after="2025-06-08"> <owner>miersh@google.com</owner> <owner>gschwarz@google.com</owner> <summary> @@ -1201,7 +1201,7 @@ </histogram> <histogram name="ChromeOS.CWP.ParsePSICPU" enum="ChromeOSParsePSICPUStatus" - expires_after="2025-04-06"> + expires_after="2025-06-08"> <owner>shantuo@google.com</owner> <owner>cwp-team@google.com</owner> <summary> @@ -1384,7 +1384,7 @@ </histogram> <histogram name="ChromeOS.DiagnosticsUi.RoutineCount" units="routines" - expires_after="2025-03-30"> + expires_after="2025-06-08"> <owner>byronlee@google.com</owner> <owner>cros-tdm-tpe-eng@google.com</owner> <summary> @@ -1395,7 +1395,7 @@ </histogram> <histogram name="ChromeOS.DiagnosticsUi.{NavigationView}.OpenDuration" - units="ms" expires_after="2025-03-30"> + units="ms" expires_after="2025-06-08"> <owner>byronlee@google.com</owner> <owner>cros-tdm-tpe-eng@google.com</owner> <summary> @@ -2416,14 +2416,14 @@ </histogram> <histogram name="ChromeOS.Kcer.KcerPkcs12ImportEvent" - enum="KcerPkcs12ImportEvent" expires_after="2025-04-01"> + enum="KcerPkcs12ImportEvent" expires_after="2025-06-08"> <owner>miersh@google.com</owner> <owner>olsa@google.com</owner> <summary>Tracks events related to the import of PKCS#12 files.</summary> </histogram> <histogram name="ChromeOS.Kcer.Pkcs12Migration" - enum="KcerPkcs12MigrationUmaEvent" expires_after="2025-04-01"> + enum="KcerPkcs12MigrationUmaEvent" expires_after="2025-06-08"> <owner>miersh@google.com</owner> <owner>chromeos-commercial-networking@google.com</owner> <summary> @@ -2733,7 +2733,7 @@ </histogram> <histogram name="ChromeOS.MagicBoost.OptInCard.{OptInFeatures}" - enum="OptInCardAction" expires_after="2025-04-06"> + enum="OptInCardAction" expires_after="2025-06-08"> <owner>leandre@google.com</owner> <owner>cros-status-area-eng@google.com</owner> <summary> @@ -2761,7 +2761,7 @@ </histogram> <histogram name="ChromeOS.Mahi.ContentExtraction.TriggeringLatency" units="ms" - expires_after="2025-04-04"> + expires_after="2025-06-08"> <owner>thanhdng@chromium.org</owner> <owner>chrome-knowledge-eng@google.com</owner> <summary> @@ -2772,7 +2772,7 @@ </histogram> <histogram name="ChromeOS.Mahi.ContextMenuView.Activated" - enum="MahiContextMenuButtonType" expires_after="2025-04-06"> + enum="MahiContextMenuButtonType" expires_after="2025-06-08"> <owner>leandre@chromium.org</owner> <owner>cros-status-area-eng@google.com</owner> <summary> @@ -2792,7 +2792,7 @@ </histogram> <histogram name="ChromeOS.Mahi.ContextMenuView.ButtonClicked" - enum="MahiMenuButton" expires_after="2025-04-06"> + enum="MahiMenuButton" expires_after="2025-06-08"> <owner>leandre@chromium.org</owner> <owner>cros-status-area-eng@google.com</owner> <summary> @@ -2801,7 +2801,7 @@ </histogram> <histogram name="ChromeOS.Mahi.ContextMenuView.Distillable" - enum="BooleanDistillable" expires_after="2025-04-06"> + enum="BooleanDistillable" expires_after="2025-06-08"> <owner>leandre@chromium.org</owner> <owner>cros-status-area-eng@google.com</owner> <summary> @@ -3275,7 +3275,7 @@ </histogram> <histogram name="ChromeOS.Secagentd.AuthFactor.{EventType}" - enum="SecagentdAuthFactor" expires_after="2025-04-06"> + enum="SecagentdAuthFactor" expires_after="2025-06-08"> <owner>rborzello@google.com</owner> <owner>cros-enterprise-security@google.com</owner> <summary> @@ -3291,7 +3291,7 @@ </histogram> <histogram name="ChromeOS.Secagentd.Bootmode.Cros" enum="SecagentdBootmodeCros" - expires_after="2025-04-06"> + expires_after="2025-06-08"> <owner>rborzello@google.com</owner> <owner>cros-enterprise-security@google.com</owner> <summary> @@ -3303,7 +3303,7 @@ </histogram> <histogram name="ChromeOS.Secagentd.Bootmode.Uefi" enum="SecagentdBootmodeUefi" - expires_after="2025-04-06"> + expires_after="2025-06-08"> <owner>rborzello@google.com</owner> <owner>cros-enterprise-security@google.com</owner> <summary> @@ -3315,7 +3315,7 @@ </histogram> <histogram name="ChromeOS.Secagentd.Bpf.{Bpf}.AttachResult" - enum="SecagentdBpfAttachResult" expires_after="2025-04-06"> + enum="SecagentdBpfAttachResult" expires_after="2025-06-08"> <owner>rborzello@google.com</owner> <owner>cros-enterprise-security@google.com</owner> <summary> @@ -3331,7 +3331,7 @@ </histogram> <histogram name="ChromeOS.Secagentd.Cache" enum="SecagentdCache" - expires_after="2025-04-06"> + expires_after="2025-06-08"> <owner>rborzello@google.com</owner> <owner>cros-enterprise-security@google.com</owner> <summary> @@ -3343,7 +3343,7 @@ </histogram> <histogram name="ChromeOS.Secagentd.CacheFullness" units="%" - expires_after="2025-04-06"> + expires_after="2025-06-08"> <owner>rborzello@google.com</owner> <owner>cros-enterprise-security@google.com</owner> <summary> @@ -3353,7 +3353,7 @@ </histogram> <histogram name="ChromeOS.Secagentd.CommandLineLength" units="bytes" - expires_after="2025-04-06"> + expires_after="2025-06-08"> <owner>rborzello@google.com</owner> <owner>cros-enterprise-security@google.com</owner> <summary> @@ -3363,7 +3363,7 @@ </histogram> <histogram name="ChromeOS.Secagentd.Policy" enum="SecagentdPolicy" - expires_after="2025-04-06"> + expires_after="2025-06-08"> <owner>rborzello@google.com</owner> <owner>cros-enterprise-security@google.com</owner> <summary> @@ -3379,7 +3379,7 @@ </histogram> <histogram name="ChromeOS.Secagentd.Process.{EventType}Event" - enum="SecagentdProcessEvent" expires_after="2025-04-06"> + enum="SecagentdProcessEvent" expires_after="2025-06-08"> <owner>rborzello@google.com</owner> <owner>cros-enterprise-security@google.com</owner> <summary> @@ -3394,7 +3394,7 @@ </histogram> <histogram name="ChromeOS.Secagentd.Redaction" units="position" - expires_after="2025-04-06"> + expires_after="2025-06-08"> <owner>rborzello@google.com</owner> <owner>cros-enterprise-security@google.com</owner> <summary> @@ -3406,7 +3406,7 @@ </histogram> <histogram name="ChromeOS.Secagentd.SendMessageResult" - enum="SecagentdSendMessageResult" expires_after="2025-04-06"> + enum="SecagentdSendMessageResult" expires_after="2025-06-08"> <owner>rborzello@google.com</owner> <owner>cros-enterprise-security@google.com</owner> <summary> @@ -3439,7 +3439,7 @@ </histogram> <histogram name="ChromeOS.Secagentd.Tpm" enum="SecagentdTpm" - expires_after="2025-04-06"> + expires_after="2025-06-08"> <owner>rborzello@google.com</owner> <owner>cros-enterprise-security@google.com</owner> <summary> @@ -3522,7 +3522,7 @@ </histogram> <histogram name="ChromeOS.Settings.Device.Keyboard.AutoRepeatDelay.{State}" - units="ms" expires_after="2025-03-22"> + units="ms" expires_after="2025-06-08"> <owner>dpad@google.com</owner> <owner>cros-device-enablement@google.com</owner> <summary> @@ -3548,7 +3548,7 @@ </histogram> <histogram name="ChromeOS.Settings.Device.Keyboard.AutoRepeatInterval.{State}" - units="ms" expires_after="2025-03-22"> + units="ms" expires_after="2025-06-08"> <owner>dpad@google.com</owner> <owner>cros-device-enablement@google.com</owner> <summary> @@ -3803,7 +3803,7 @@ <histogram name="ChromeOS.Settings.Device.Touchpad.{TouchpadType}.{TouchpadSetting}.Changed" - enum="Boolean" expires_after="2025-03-22"> + enum="Boolean" expires_after="2025-06-08"> <owner>dpad@google.com</owner> <owner>cros-device-enablement@google.com</owner> <summary> @@ -3825,7 +3825,7 @@ <histogram name="ChromeOS.Settings.Device.Touchpad.{TouchpadType}.{TouchpadSetting}.Initial" - enum="Boolean" expires_after="2025-03-22"> + enum="Boolean" expires_after="2025-06-08"> <owner>dpad@google.com</owner> <owner>cros-device-enablement@google.com</owner> <summary> @@ -3907,7 +3907,7 @@ </histogram> <histogram name="ChromeOS.Settings.Device.{DeviceType}.SetSettingsSucceeded" - enum="Boolean" expires_after="2025-03-22"> + enum="Boolean" expires_after="2025-06-08"> <owner>dpad@google.com</owner> <owner>cros-device-enablement@google.com</owner> <summary> @@ -4238,7 +4238,7 @@ <histogram name="ChromeOS.Settings.Device.{Peripheral}.{PeripheralSetting}.Changed" - enum="Boolean" expires_after="2025-03-22"> + enum="Boolean" expires_after="2025-06-08"> <owner>dpad@google.com</owner> <owner>cros-device-enablement@google.com</owner> <summary> @@ -4259,7 +4259,7 @@ <histogram name="ChromeOS.Settings.Device.{Peripheral}.{PeripheralSetting}.Initial" - enum="Boolean" expires_after="2025-03-22"> + enum="Boolean" expires_after="2025-06-08"> <owner>dpad@google.com</owner> <owner>cros-device-enablement@google.com</owner> <summary> @@ -4280,7 +4280,7 @@ <histogram name="ChromeOS.Settings.Device.{Peripheral}.{SensitivityType}.Changed" - enum="PointerSensitivity" expires_after="2025-03-22"> + enum="PointerSensitivity" expires_after="2025-06-08"> <owner>dpad@google.com</owner> <owner>cros-device-enablement@google.com</owner> <summary> @@ -4299,7 +4299,7 @@ <histogram name="ChromeOS.Settings.Device.{Peripheral}.{SensitivityType}.Initial" - enum="PointerSensitivity" expires_after="2025-03-22"> + enum="PointerSensitivity" expires_after="2025-06-08"> <owner>dpad@google.com</owner> <owner>cros-device-enablement@google.com</owner> <summary> @@ -4318,7 +4318,7 @@ <histogram name="ChromeOS.Settings.Device.{Peripheral}.{SensitivityType}.{Difference}" - enum="PointerSensitivity" expires_after="2025-03-22"> + enum="PointerSensitivity" expires_after="2025-06-08"> <owner>dpad@google.com</owner> <owner>cros-device-enablement@google.com</owner> <summary> @@ -4578,7 +4578,7 @@ </histogram> <histogram name="ChromeOS.TelemetryExtension.RoutineSupportedStatusQuery" - enum="TelemetryExtensionRoutineCategory" expires_after="2025-03-30"> + enum="TelemetryExtensionRoutineCategory" expires_after="2025-06-08"> <owner>weiluanwang@google.com</owner> <owner>dennyh@google.com</owner> <owner>cros-tdm-tpe-eng@google.com</owner>
diff --git a/tools/metrics/histograms/metadata/chromeos_settings/histograms.xml b/tools/metrics/histograms/metadata/chromeos_settings/histograms.xml index 4afb719..7da46db4b 100644 --- a/tools/metrics/histograms/metadata/chromeos_settings/histograms.xml +++ b/tools/metrics/histograms/metadata/chromeos_settings/histograms.xml
@@ -163,7 +163,7 @@ </histogram> <histogram name="ChromeOS.Settings.Apps.DoNotDisturbOnOff" - enum="BooleanToggled" expires_after="2025-03-30"> + enum="BooleanToggled" expires_after="2025-06-08"> <owner>hsuregan@chromium.org</owner> <owner>jimmyxgong@chromium.org</owner> <summary> @@ -416,7 +416,7 @@ </histogram> <histogram name="ChromeOS.Settings.Display.{DisplayType}.Orientation" - enum="DisplaySettingsOrientationOption" expires_after="2025-03-23"> + enum="DisplaySettingsOrientationOption" expires_after="2025-06-08"> <owner>zhangwenyu@google.com</owner> <owner>cros-device-enablement@google.com</owner> <summary> @@ -431,7 +431,7 @@ <histogram name="ChromeOS.Settings.Display.{DisplayType}.UserOverrideDisplayDefaultSettings" - enum="DisplayDefaultSettingsMeasurement" expires_after="2025-03-31"> + enum="DisplayDefaultSettingsMeasurement" expires_after="2025-06-08"> <owner>zhangwenyu@google.com</owner> <owner>cros-device-enablement@google.com</owner> <summary> @@ -603,7 +603,7 @@ </histogram> <histogram name="ChromeOS.Settings.MagicBoost.Enabled" enum="BooleanToggled" - expires_after="2025-03-31"> + expires_after="2025-06-08"> <owner>alanlxl@google.com</owner> <owner>thanhdng@chromium.org</owner> <summary> @@ -613,7 +613,7 @@ </histogram> <histogram name="ChromeOS.Settings.MagicBoost.HelpMeReadEnabled" - enum="BooleanToggled" expires_after="2025-03-31"> + enum="BooleanToggled" expires_after="2025-06-08"> <owner>alanlxl@google.com</owner> <owner>thanhdng@chromium.org</owner> <summary> @@ -706,7 +706,7 @@ <histogram name="ChromeOS.Settings.NumUniqueSettingsChanged.DeviceLifetime2.{Time}" - units="Unique Setting(s) Changed" expires_after="2025-03-30"> + units="Unique Setting(s) Changed" expires_after="2025-06-08"> <owner>moteva@google.com</owner> <owner>wesokuhara@google.com</owner> <owner>cros-settings@google.com</owner> @@ -831,7 +831,7 @@ </histogram> <histogram name="ChromeOS.Settings.SearchRequests" - enum="OsSettingSearchRequestTypes" expires_after="2025-03-30"> + enum="OsSettingSearchRequestTypes" expires_after="2025-06-08"> <owner>wesokuhara@google.com</owner> <owner>xiaohuic@chromium.org</owner> <owner>cros-settings@google.com</owner> @@ -998,7 +998,7 @@ </histogram> <histogram name="ChromeOS.Settings.WindowOpenDuration" units="ms" - expires_after="2025-03-30"> + expires_after="2025-06-08"> <owner>wesokuhara@google.com</owner> <owner>xiaohuic@chromium.org</owner> <owner>cros-settings@google.com</owner>
diff --git a/tools/metrics/histograms/metadata/commerce/enums.xml b/tools/metrics/histograms/metadata/commerce/enums.xml index 04e591df..ebe3f62 100644 --- a/tools/metrics/histograms/metadata/commerce/enums.xml +++ b/tools/metrics/histograms/metadata/commerce/enums.xml
@@ -86,6 +86,12 @@ <int value="5" label="Update from recently viewed"/> </enum> +<enum name="CompareTableLoadStatus"> + <summary>The statuses of a compare table loading.</summary> + <int value="0" label="Success"/> + <int value="1" label="Failure"/> +</enum> + <!-- LINT.IfChange(DiscountClusterType) --> <enum name="DiscountClusterType">
diff --git a/tools/metrics/histograms/metadata/commerce/histograms.xml b/tools/metrics/histograms/metadata/commerce/histograms.xml index 7c46831..61f72191 100644 --- a/tools/metrics/histograms/metadata/commerce/histograms.xml +++ b/tools/metrics/histograms/metadata/commerce/histograms.xml
@@ -193,6 +193,13 @@ </summary> </histogram> +<histogram name="Commerce.Compare.Table.LoadStatus" + enum="CompareTableLoadStatus" expires_after="2025-05-18"> + <owner>yuezhanggg@chromium.org</owner> + <owner>chrome-shopping@google.com</owner> + <summary>Records the status of a comparison table load.</summary> +</histogram> + <histogram name="Commerce.Compare.Table.PercentageValidProducts2" units="%" expires_after="2025-05-11"> <owner>mdjones@chromium.org</owner> @@ -549,7 +556,7 @@ </histogram> <histogram name="Commerce.PriceDrops.{ManagementType}.NotificationReachedCap" - enum="Boolean" expires_after="2025-03-17"> + enum="Boolean" expires_after="2025-06-08"> <owner>zhiyuancai@chromium.org</owner> <owner>ayman@chromium.org</owner> <owner>chrome-shopping@google.com</owner> @@ -674,7 +681,7 @@ </histogram> <histogram name="Commerce.PriceTracking.DanglingUserSubscriptionCountAtStartup" - units="subscriptions" expires_after="2025-03-30"> + units="subscriptions" expires_after="2025-06-08"> <owner>ayman@chromium.org</owner> <owner>mdjones@chromium.org</owner> <owner>chrome-shopping@google.org</owner>
diff --git a/tools/metrics/histograms/metadata/compose/histograms.xml b/tools/metrics/histograms/metadata/compose/histograms.xml index c21ef30..b533a7d 100644 --- a/tools/metrics/histograms/metadata/compose/histograms.xml +++ b/tools/metrics/histograms/metadata/compose/histograms.xml
@@ -272,7 +272,7 @@ </histogram> <histogram name="Compose.TextElementUsage.LongField.EditingTime" units="ms" - expires_after="2025-04-06"> + expires_after="2025-06-08"> <owner>harringtond@chromium.org</owner> <owner>chrome-compose-frontend@google.com</owner> <summary>
diff --git a/tools/metrics/histograms/metadata/compositing/histograms.xml b/tools/metrics/histograms/metadata/compositing/histograms.xml index 15b8512..4519d1b 100644 --- a/tools/metrics/histograms/metadata/compositing/histograms.xml +++ b/tools/metrics/histograms/metadata/compositing/histograms.xml
@@ -137,7 +137,7 @@ </histogram> <histogram name="Compositing.DecodeLCPCandidateImage.{DecodeMethod}" - enum="Boolean" expires_after="2025-04-06"> + enum="Boolean" expires_after="2025-06-08"> <owner>mmocny@chromium.org</owner> <owner>paint-dev@chromium.org</owner> <summary> @@ -243,7 +243,7 @@ </histogram> <histogram name="Compositing.DirectRenderer.PartialSwap.TotalDamage" units="%" - expires_after="2025-03-30"> + expires_after="2025-06-08"> <owner>vasilyt@chromium.org</owner> <owner>petermcneeley@chromium.org</owner> <owner>chrome-gpu-metric-alerts@chromium.org</owner> @@ -320,7 +320,7 @@ </histogram> <histogram name="Compositing.Display.Draw.AverageOverdraw2" units="units" - expires_after="2025-03-30"> + expires_after="2025-06-08"> <owner>zoraiznaeem@chromium.org</owner> <owner>chrome-gpu-metric-alerts@chromium.org</owner> <summary> @@ -716,7 +716,7 @@ </histogram> <histogram name="Compositing.Renderer.LCDTextDisallowedReasonKPixels2.{DPI}" - enum="LCDTextDisallowedReason" expires_after="2025-04-06"> + enum="LCDTextDisallowedReason" expires_after="2025-06-08"> <owner>wangxianzhu@chromium.org</owner> <owner>paint-dev@chromium.org</owner> <summary> @@ -832,7 +832,7 @@ </histogram> <histogram name="Compositing.SurfaceAggregator.ExcessPixelsClipped" - units="pixels" expires_after="2025-03-30"> + units="pixels" expires_after="2025-06-08"> <owner>petermcneeley@chromium.org</owner> <owner>chrome-gpu-metric-alerts@chromium.org</owner> <summary> @@ -892,7 +892,7 @@ </histogram> <histogram name="Compositing.SurfaceManager.MarkForDestructionToDestroy" - units="ms" expires_after="2025-03-30"> + units="ms" expires_after="2025-06-08"> <owner>jonross@chromium.org</owner> <owner>chrome-gpu-metric-alerts@chromium.org</owner> <summary> @@ -941,7 +941,7 @@ </histogram> <histogram name="Compositing.VizBreakdownToPresentationUnexpected" - enum="VizBreakdown" expires_after="2025-03-30"> + enum="VizBreakdown" expires_after="2025-06-08"> <owner>jonross@chromium.org</owner> <owner>chrome-gpu-metric-alerts@chromium.org</owner> <summary> @@ -967,7 +967,7 @@ <histogram name="CompositorLatency.CompositorOnlyFrame{InteractionType}.{StageType}" - units="microseconds" expires_after="2025-03-30"> + units="microseconds" expires_after="2025-06-08"> <owner>jonross@chromium.org</owner> <owner>chrome-gpu-metric-alerts@chromium.org</owner> <summary> @@ -1213,7 +1213,7 @@ </histogram> <histogram name="Graphics.Smoothness.CheckerboardingNeedRaster4.AllSequences" - units="%" expires_after="2025-03-30"> + units="%" expires_after="2025-06-08"> <owner>wangxianzhu@chromium.org</owner> <owner>chrome-gpu-metric-alerts@chromium.org</owner> <summary> @@ -1261,7 +1261,7 @@ </histogram> <histogram name="Graphics.Smoothness.Checkerboarding{Version}.AllSequences" - units="%" expires_after="2025-03-30"> + units="%" expires_after="2025-06-08"> <owner>jonross@chromium.org</owner> <owner>chrome-gpu-metric-alerts@chromium.org</owner> <summary> @@ -1309,7 +1309,7 @@ <histogram name="Graphics.Smoothness.Checkerboarding{Version}.{Thread}{Sequence}" - units="%" expires_after="2025-03-30"> + units="%" expires_after="2025-06-08"> <owner>jonross@chromium.org</owner> <owner>chrome-gpu-metric-alerts@chromium.org</owner> <summary> @@ -1475,7 +1475,7 @@ <histogram name="Graphics.Smoothness.PercentDroppedFrames3.{Sequence}.1MinAfterResume" - units="%" expires_after="2025-04-06"> + units="%" expires_after="2025-06-08"> <owner>kawasin@google.com</owner> <owner>baseos-perf@google.com</owner> <summary>
diff --git a/tools/metrics/histograms/metadata/content/histograms.xml b/tools/metrics/histograms/metadata/content/histograms.xml index 2b7bd865..3c04d09a 100644 --- a/tools/metrics/histograms/metadata/content/histograms.xml +++ b/tools/metrics/histograms/metadata/content/histograms.xml
@@ -92,7 +92,7 @@ </histogram> <histogram name="ContentCapture.CaptureContentTime2" units="microseconds" - expires_after="2025-04-06"> + expires_after="2025-06-08"> <owner>wangxianzhu@chromium.org</owner> <owner>src/third_party/blink/renderer/core/content_capture/OWNERS</owner> <summary> @@ -104,7 +104,7 @@ </histogram> <histogram name="ContentCapture.SendContentTime" units="microseconds" - expires_after="2025-04-06"> + expires_after="2025-06-08"> <owner>wangxianzhu@chromium.org</owner> <owner>src/third_party/blink/renderer/core/content_capture/OWNERS</owner> <summary> @@ -116,14 +116,14 @@ </histogram> <histogram name="ContentCapture.SentContentCount2" units="count" - expires_after="2025-04-06"> + expires_after="2025-06-08"> <owner>wangxianzhu@chromium.org</owner> <owner>src/third_party/blink/renderer/core/content_capture/OWNERS</owner> <summary>The total number of content captures sent for a document.</summary> </histogram> <histogram name="ContentCapture.TaskDelayTimeInMs" units="ms" - expires_after="2025-04-06"> + expires_after="2025-06-08"> <owner>wangxianzhu@chromium.org</owner> <owner>src/third_party/blink/renderer/core/content_capture/OWNERS</owner> <summary> @@ -135,7 +135,7 @@ </histogram> <histogram name="ContentCapture.TaskRunsPerCapture" units="runs" - expires_after="2025-04-06"> + expires_after="2025-06-08"> <owner>wangxianzhu@chromium.org</owner> <owner>src/third_party/blink/renderer/core/content_capture/OWNERS</owner> <summary> @@ -165,7 +165,7 @@ </histogram> <histogram name="ContentNotifications.DismissAction" enum="Boolean" - expires_after="2025-04-06"> + expires_after="2025-06-08"> <owner>guiperez@google.com</owner> <owner>chrome-sherlock@google.com</owner> <summary>The user has dismissed a content notification.</summary> @@ -1515,7 +1515,7 @@ <histogram name="ContentSuggestions.Feed.UserJourney.{Surface}.{Status}Duration" - units="ms" expires_after="2025-04-06"> + units="ms" expires_after="2025-06-08"> <owner>harringtond@chromium.org</owner> <owner>carlosk@chromium.org</owner> <owner>feed@chromium.org</owner>
diff --git a/tools/metrics/histograms/metadata/cookie/histograms.xml b/tools/metrics/histograms/metadata/cookie/histograms.xml index fb5e2b9..3b773be 100644 --- a/tools/metrics/histograms/metadata/cookie/histograms.xml +++ b/tools/metrics/histograms/metadata/cookie/histograms.xml
@@ -247,7 +247,7 @@ </histogram> <histogram name="Cookie.CrossSiteRedirectType.{AccessType}" - enum="ContextRedirectTypeBug1221316" expires_after="2025-03-30"> + enum="ContextRedirectTypeBug1221316" expires_after="2025-06-08"> <owner>bingler@chromium.org</owner> <owner>miketaylr@chromium.org</owner> <summary> @@ -401,7 +401,7 @@ </histogram> <histogram name="Cookie.FirstPartySets.ComponentSetsNonfatalErrors" - units="sets" expires_after="2025-03-30"> + units="sets" expires_after="2025-06-08"> <owner>cfredric@chromium.org</owner> <owner>chrome-first-party-sets@chromium.org</owner> <summary> @@ -420,7 +420,7 @@ </histogram> <histogram name="Cookie.FirstPartySets.ComponentSetsParsedSuccessfully" - units="sets" expires_after="2025-03-30"> + units="sets" expires_after="2025-06-08"> <owner>cfredric@chromium.org</owner> <owner>chrome-first-party-sets@chromium.org</owner> <summary> @@ -521,7 +521,7 @@ </histogram> <histogram name="Cookie.FirstPartySets.ProcessedEntireComponent" - enum="BooleanSuccess" expires_after="2025-03-30"> + enum="BooleanSuccess" expires_after="2025-06-08"> <owner>cfredric@chromium.org</owner> <owner>chrome-first-party-sets@chromium.org</owner> <summary> @@ -837,7 +837,7 @@ </histogram> <histogram name="Cookie.Port.Read.{HostType}" enum="InterestingCookiePorts" - expires_after="2025-03-30"> + expires_after="2025-06-08"> <owner>bingler@chromium.org</owner> <owner>miketaylr@chromium.org</owner> <summary> @@ -890,7 +890,7 @@ </histogram> <histogram name="Cookie.Port.Set.{HostType}" enum="InterestingCookiePorts" - expires_after="2025-03-30"> + expires_after="2025-06-08"> <owner>bingler@chromium.org</owner> <owner>miketaylr@chromium.org</owner> <summary>
diff --git a/tools/metrics/histograms/metadata/cras/histograms.xml b/tools/metrics/histograms/metadata/cras/histograms.xml index 05ad3f71..012dd11 100644 --- a/tools/metrics/histograms/metadata/cras/histograms.xml +++ b/tools/metrics/histograms/metadata/cras/histograms.xml
@@ -244,7 +244,7 @@ </histogram> <histogram name="Cras.DeviceDspOffloadStatus{Device}" - enum="CrasDeviceDspOffloadStatus" expires_after="2025-03-30"> + enum="CrasDeviceDspOffloadStatus" expires_after="2025-06-08"> <owner>johnylin@chromium.org</owner> <owner>chromeos-audio@google.com</owner> <summary> @@ -426,7 +426,7 @@ </histogram> <histogram name="Cras.DlcManagerStatus.ElapsedTimeHistogramOnFailure.{DlcType}" - units="seconds" expires_after="2025-04-06"> + units="seconds" expires_after="2025-06-08"> <owner>cranelw@google.com</owner> <owner>chromeos-audio@google.com</owner> <summary> @@ -477,7 +477,7 @@ </histogram> <histogram name="Cras.ForceRespectUiGains" enum="BooleanEnabled" - expires_after="2025-03-30"> + expires_after="2025-06-08"> <owner>eddyhsu@chromium.org</owner> <owner>chromeos-audio-sw@google.com</owner> <summary> @@ -508,7 +508,7 @@ </histogram> <histogram name="Cras.HfpMicSuperResolutionStatus.{Device}" - enum="CrasHfpMicSuperResolutionStatus" expires_after="2025-03-30"> + enum="CrasHfpMicSuperResolutionStatus" expires_after="2025-06-08"> <owner>cranelw@google.com</owner> <owner>chromeos-audio@google.com</owner> <summary> @@ -613,7 +613,7 @@ </histogram> <histogram name="Cras.InputGainChanged" enum="AudioSettingsChangeSource" - expires_after="2025-03-30"> + expires_after="2025-06-08"> <owner>eddyhsu@chromium.org</owner> <owner>chromeos-audio-sw@google.com</owner> <summary> @@ -957,7 +957,7 @@ </histogram> <histogram name="Cras.StreamClientTypeInput" enum="CrasClientType" - expires_after="2025-04-06"> + expires_after="2025-06-08"> <owner>yuhsuan@chromium.org</owner> <owner>chromeos-audio@google.com</owner> <summary> @@ -967,7 +967,7 @@ </histogram> <histogram name="Cras.StreamClientTypeOutput" enum="CrasClientType" - expires_after="2025-04-06"> + expires_after="2025-06-08"> <owner>yuhsuan@chromium.org</owner> <owner>chromeos-audio@google.com</owner> <summary>
diff --git a/tools/metrics/histograms/metadata/cros/histograms.xml b/tools/metrics/histograms/metadata/cros/histograms.xml index 4eb4d1c..23dcab8a 100644 --- a/tools/metrics/histograms/metadata/cros/histograms.xml +++ b/tools/metrics/histograms/metadata/cros/histograms.xml
@@ -76,7 +76,7 @@ </histogram> <histogram name="CrosDisks.Error.Fuse.Start.archive" enum="FuseArchiveError" - expires_after="2025-03-01"> + expires_after="2025-06-08"> <owner>fdegros@chromium.org</owner> <owner>src/ui/file_manager/OWNERS</owner> <summary>
diff --git a/tools/metrics/histograms/metadata/cros_audio/histograms.xml b/tools/metrics/histograms/metadata/cros_audio/histograms.xml index d709c88..adc349c 100644 --- a/tools/metrics/histograms/metadata/cros_audio/histograms.xml +++ b/tools/metrics/histograms/metadata/cros_audio/histograms.xml
@@ -23,7 +23,7 @@ <histograms> <histogram name="ChromeOS.AudioSelection" enum="AudioSelectionEvents" - expires_after="2025-03-31"> + expires_after="2025-06-08"> <owner>zhangwenyu@google.com</owner> <owner>cros-device-enablement@google.com</owner> <summary>
diff --git a/tools/metrics/histograms/metadata/cros_ml/histograms.xml b/tools/metrics/histograms/metadata/cros_ml/histograms.xml index 5d3bf39..ff36479 100644 --- a/tools/metrics/histograms/metadata/cros_ml/histograms.xml +++ b/tools/metrics/histograms/metadata/cros_ml/histograms.xml
@@ -98,7 +98,7 @@ <histogram name="MachineLearningService.HandwritingModel.LoadModelResult.Event" enum="MachineLearningServiceLoadHandwritingModelResultEvent" - expires_after="2025-04-01"> + expires_after="2025-06-08"> <owner>amoylan@chromium.org</owner> <owner>alanlxl@chromium.org</owner> <summary> @@ -388,7 +388,7 @@ </histogram> <histogram name="MachineLearningService.WorkerProcessExitStatus" - units="exit status" expires_after="2025-03-01"> + units="exit status" expires_after="2025-06-08"> <owner>alanlxl@chromium.org</owner> <owner>amoylan@chromium.org</owner> <summary>
diff --git a/tools/metrics/histograms/metadata/crostini/histograms.xml b/tools/metrics/histograms/metadata/crostini/histograms.xml index 5472e019..da6e1619 100644 --- a/tools/metrics/histograms/metadata/crostini/histograms.xml +++ b/tools/metrics/histograms/metadata/crostini/histograms.xml
@@ -142,14 +142,14 @@ </histogram> <histogram name="Crostini.BackupTimeFailed" units="ms" - expires_after="2025-03-30"> + expires_after="2025-06-08"> <owner>denniskempin@google.com</owner> <owner>clumptini@google.com</owner> <summary>Time taken for failed backup.</summary> </histogram> <histogram name="Crostini.BackupTimeSuccess" units="ms" - expires_after="2025-03-30"> + expires_after="2025-06-08"> <owner>denniskempin@google.com</owner> <owner>clumptini@google.com</owner> <summary>Time taken for successful backup.</summary> @@ -204,7 +204,7 @@ </histogram> <histogram name="Crostini.DiskResize.Started" enum="BooleanAttempted" - expires_after="2025-04-06"> + expires_after="2025-06-08"> <owner>denniskempin@google.com</owner> <owner>clumptini@google.com</owner> <summary> @@ -272,7 +272,7 @@ </histogram> <histogram name="Crostini.InputMethodOnBlur" enum="InputMethodID2" - expires_after="2025-03-30"> + expires_after="2025-06-08"> <owner>timloh@chromium.org</owner> <owner>clumptini@google.com</owner> <summary>
diff --git a/tools/metrics/histograms/metadata/cryptohome/histograms.xml b/tools/metrics/histograms/metadata/cryptohome/histograms.xml index 992bd47..dea7627d 100644 --- a/tools/metrics/histograms/metadata/cryptohome/histograms.xml +++ b/tools/metrics/histograms/metadata/cryptohome/histograms.xml
@@ -525,7 +525,7 @@ </histogram> <histogram name="Cryptohome.TimeToPerformEphemeralMount" units="ms" - expires_after="2025-04-01"> + expires_after="2025-06-08"> <owner>sarthakkukreti@chromium.org</owner> <owner>cros-security-cryptohome+uma@google.com</owner> <summary>
diff --git a/tools/metrics/histograms/metadata/custom_tabs/histograms.xml b/tools/metrics/histograms/metadata/custom_tabs/histograms.xml index 400f249..a7aaf03 100644 --- a/tools/metrics/histograms/metadata/custom_tabs/histograms.xml +++ b/tools/metrics/histograms/metadata/custom_tabs/histograms.xml
@@ -81,7 +81,7 @@ </histogram> <histogram name="CustomTabs.AuthView.UrlParams" units="bit field" - expires_after="2025-04-06"> + expires_after="2025-06-08"> <owner>sinansahin@google.com</owner> <owner>chrome-connective-tissue@google.com</owner> <summary> @@ -131,7 +131,7 @@ </histogram> <histogram name="CustomTabs.Branding.BrandingCheckDuration" units="ms" - expires_after="2025-04-06"> + expires_after="2025-06-08"> <owner>wenyufu@chromium.org</owner> <owner>chrome-connective-tissue@google.com</owner> <summary> @@ -602,7 +602,7 @@ </histogram> <histogram name="CustomTabs.PartialCustomTabType" - enum="CustomTabsPartialCustomTabType" expires_after="2025-03-30"> + enum="CustomTabsPartialCustomTabType" expires_after="2025-06-08"> <owner>kgrosu@google.com</owner> <owner>chrome-connective-tissue@google.com</owner> <summary>
diff --git a/tools/metrics/histograms/metadata/dev/histograms.xml b/tools/metrics/histograms/metadata/dev/histograms.xml index 7a3800c..3627a135 100644 --- a/tools/metrics/histograms/metadata/dev/histograms.xml +++ b/tools/metrics/histograms/metadata/dev/histograms.xml
@@ -75,7 +75,7 @@ </histogram> <histogram name="DevTools.CSSHintShown" enum="DevToolsCSSHintShown" - expires_after="2025-03-09"> + expires_after="2025-06-08"> <owner>changhaohan@google.com</owner> <owner>mathiasb@google.com</owner> <owner>yangguo@google.com</owner> @@ -246,7 +246,7 @@ </histogram> <histogram name="DevTools.IssuesPanelIssueExpanded" - enum="DevToolsIssuesPanelIssueExpanded" expires_after="2025-04-06"> + enum="DevToolsIssuesPanelIssueExpanded" expires_after="2025-06-08"> <owner>bmeurer@google.com</owner> <owner>danilsomsikov@google.com</owner> <summary> @@ -255,7 +255,7 @@ </histogram> <histogram name="DevTools.IssuesPanelOpenedFrom" - enum="DevToolsIssuesPanelOpenedFrom" expires_after="2025-04-06"> + enum="DevToolsIssuesPanelOpenedFrom" expires_after="2025-06-08"> <owner>bmeurer@google.com</owner> <owner>danilsomsikov@google.com</owner> <summary> @@ -264,7 +264,7 @@ </histogram> <histogram name="DevTools.IssuesPanelResourceOpened" - enum="DevToolsIssuesPanelResourceOpened" expires_after="2025-04-06"> + enum="DevToolsIssuesPanelResourceOpened" expires_after="2025-06-08"> <owner>bmeurer@google.com</owner> <owner>danilsomsikov@google.com</owner> <summary> @@ -319,7 +319,7 @@ </histogram> <histogram name="DevTools.LighthouseCategoryUsed" - enum="DevToolsLighthouseCategoryUsed" expires_after="2025-03-30"> + enum="DevToolsLighthouseCategoryUsed" expires_after="2025-06-08"> <owner>asraine@google.com</owner> <owner>paulirish@google.com</owner> <owner>cjamcl@google.com</owner>
diff --git a/tools/metrics/histograms/metadata/download/histograms.xml b/tools/metrics/histograms/metadata/download/histograms.xml index 7918c69..ded22ce8 100644 --- a/tools/metrics/histograms/metadata/download/histograms.xml +++ b/tools/metrics/histograms/metadata/download/histograms.xml
@@ -166,7 +166,7 @@ <histogram name="Download.Bubble.Subpage.{DownloadDangerTypeString}.{ButtonType}ButtonActionTime" - units="ms" expires_after="2025-03-30"> + units="ms" expires_after="2025-06-08"> <owner>chlily@chromium.org</owner> <owner>chrome-counter-abuse-alerts@google.com</owner> <summary> @@ -186,7 +186,7 @@ </histogram> <histogram name="Download.Bubble.SubpageAction" - enum="DownloadBubbleSubpageAction" expires_after="2025-03-30"> + enum="DownloadBubbleSubpageAction" expires_after="2025-06-08"> <owner>chlily@chromium.org</owner> <owner>chrome-counter-abuse-alerts@google.com</owner> <summary> @@ -277,7 +277,7 @@ </histogram> <histogram name="Download.DangerousDialog.Events" - enum="DangerousDownloadDialogEvent" expires_after="2025-03-30"> + enum="DangerousDownloadDialogEvent" expires_after="2025-06-08"> <owner>qinmin@chromium.org</owner> <summary> Records user interactions with the dangerous download dialog on Android. @@ -287,7 +287,7 @@ </histogram> <histogram name="Download.DangerousDownloadInterstitial.Action" - enum="DangerousDownloadInterstitialAction" expires_after="2025-04-06"> + enum="DangerousDownloadInterstitialAction" expires_after="2025-06-08"> <owner>drubery@chromium.org</owner> <owner>chrome-counter-abuse-alerts@google.com</owner> <summary> @@ -299,7 +299,7 @@ <histogram name="Download.DangerousDownloadInterstitial.InteractionTime.{InteractionType}" - units="ms" expires_after="2025-04-06"> + units="ms" expires_after="2025-06-08"> <owner>drubery@chromium.org</owner> <owner>chrome-counter-abuse-alerts@google.com</owner> <summary> @@ -321,7 +321,7 @@ <histogram name="Download.DangerousDownloadInterstitial.SurveyResponse" enum="DangerousDownloadInterstitialSurveyOptions" - expires_after="2025-04-06"> + expires_after="2025-06-08"> <owner>drubery@chromium.org</owner> <owner>chrome-counter-abuse-alerts@google.com</owner> <summary> @@ -386,7 +386,7 @@ </histogram> <histogram name="Download.DuplicatePdfDownloadTriggered" - enum="BooleanOpenInline" expires_after="2025-03-30"> + enum="BooleanOpenInline" expires_after="2025-06-08"> <owner>qinmin@chromium.org</owner> <owner>clank-downloads@google.com</owner> <summary> @@ -544,7 +544,7 @@ </histogram> <histogram name="Download.IOSDownloadFileUI" enum="DownloadFileUI" - expires_after="2025-03-30"> + expires_after="2025-06-08"> <owner>sdefresne@chromium.org</owner> <owner>ewannpv@chromium.org</owner> <owner>mrefaat@chromium.org</owner> @@ -567,7 +567,7 @@ </histogram> <histogram name="Download.IOSDownloadMimeType" enum="DownloadMimeTypeResult" - expires_after="2025-03-30"> + expires_after="2025-06-08"> <owner>sdefresne@chromium.org</owner> <owner>ewannpv@chromium.org</owner> <owner>mrefaat@chromium.org</owner> @@ -701,7 +701,7 @@ </histogram> <histogram name="Download.OpenDownloads.PerProfileType" - enum="BrowserProfileType" expires_after="2025-03-30"> + enum="BrowserProfileType" expires_after="2025-06-08"> <owner>sideyilmaz@chromium.org</owner> <owner>chrome-incognito@google.com</owner> <summary> @@ -1063,7 +1063,7 @@ </histogram> <histogram name="Download.ShowedDownloadWarning.DownloadsPage" - enum="DownloadItem.DangerType" expires_after="2025-03-30"> + enum="DownloadItem.DangerType" expires_after="2025-06-08"> <owner>chlily@chromium.org</owner> <owner>chrome-counter-abuse-alerts@google.com</owner> <summary> @@ -1158,7 +1158,7 @@ </histogram> <histogram name="Download.UserValidatedDangerousDownload.DownloadsPage" - enum="DownloadItem.DangerType" expires_after="2025-03-30"> + enum="DownloadItem.DangerType" expires_after="2025-06-08"> <owner>chlily@chromium.org</owner> <owner>chrome-counter-abuse-alerts@google.com</owner> <summary> @@ -1213,7 +1213,7 @@ </histogram> <histogram name="Download.WebUi.DocumentLoadedInMainFrameTime" units="ms" - expires_after="2025-04-06"> + expires_after="2025-06-08"> <owner>awado@google.com</owner> <owner>jacastro@chromium.org</owner> <summary> @@ -1224,7 +1224,7 @@ </histogram> <histogram name="Download.WebUi.LoadCompletedInMainFrame" units="ms" - expires_after="2025-04-06"> + expires_after="2025-06-08"> <owner>awado@google.com</owner> <owner>jacastro@chromium.org</owner> <summary>
diff --git a/tools/metrics/histograms/metadata/enterprise/enums.xml b/tools/metrics/histograms/metadata/enterprise/enums.xml index cf121e8e..b8f91b18 100644 --- a/tools/metrics/histograms/metadata/enterprise/enums.xml +++ b/tools/metrics/histograms/metadata/enterprise/enums.xml
@@ -2190,6 +2190,7 @@ <int value="1316" label="PasswordManagerPasskeysEnabled"/> <int value="1317" label="FilePickerChooseFromDriveSettings"/> <int value="1318" label="LiveTranslateEnabled"/> + <int value="1319" label="DevicePowerBatteryChargingOptimization"/> </enum> <enum name="EnterprisePoliciesSources">
diff --git a/tools/metrics/histograms/metadata/enterprise/histograms.xml b/tools/metrics/histograms/metadata/enterprise/histograms.xml index c2999c81..9667042 100644 --- a/tools/metrics/histograms/metadata/enterprise/histograms.xml +++ b/tools/metrics/histograms/metadata/enterprise/histograms.xml
@@ -226,7 +226,7 @@ <histogram name="Enterprise.AutoEnrollmentControllerTimeout" enum="EnterpriseAutoEnrollmentControllerTimeoutReport" - expires_after="2025-04-06"> + expires_after="2025-06-08"> <owner>vsavu@google.com</owner> <owner>igorcov@chromium.org</owner> <owner>chromeos-commercial-remote-management@google.com</owner> @@ -483,7 +483,7 @@ <histogram name="Enterprise.ClientCertificate.Profile.CreateCertificate.Success.HasCert" - enum="BooleanSuccess" expires_after="2025-04-09"> + enum="BooleanSuccess" expires_after="2025-06-08"> <owner>seblalancette@chromium.org</owner> <owner>cbe-device-trust-eng@google.com</owner> <summary> @@ -493,7 +493,7 @@ </histogram> <histogram name="Enterprise.ClientCertificate.Profile.CreatePrivateKey.Source" - enum="CertificatePrivateKeySource" expires_after="2025-04-09"> + enum="CertificatePrivateKeySource" expires_after="2025-06-08"> <owner>seblalancette@chromium.org</owner> <owner>cbe-device-trust-eng@google.com</owner> <summary> @@ -562,7 +562,7 @@ <histogram name="Enterprise.ClientCertificate.Profile.{UploadScenario}.UploadCode" - enum="CombinedHttpResponseAndNetErrorCode" expires_after="2025-04-09"> + enum="CombinedHttpResponseAndNetErrorCode" expires_after="2025-06-08"> <owner>seblalancette@chromium.org</owner> <owner>cbe-device-trust-eng@google.com</owner> <summary> @@ -1125,7 +1125,7 @@ </histogram> <histogram name="Enterprise.DeviceTrust.Key.{Variant}Result" - enum="DTKeyRotationResult" expires_after="2025-03-20"> + enum="DTKeyRotationResult" expires_after="2025-06-08"> <owner>hmare@google.com</owner> <owner>rogerta@chromium.org</owner> <owner>seblalancette@chromium.org</owner> @@ -1235,7 +1235,7 @@ </histogram> <histogram name="Enterprise.DeviceTrust.Persistence.{Operation}.Error" - enum="DTKeyPersistenceError" expires_after="2025-03-20"> + enum="DTKeyPersistenceError" expires_after="2025-06-08"> <owner>hmare@google.com</owner> <owner>rogerta@chromium.org</owner> <owner>seblalancette@chromium.org</owner> @@ -1368,7 +1368,7 @@ </histogram> <histogram name="Enterprise.Dlp.CaptureModeInitBlocked" enum="BooleanBlocked" - expires_after="2025-04-06"> + expires_after="2025-06-08"> <owner>poromov@chromium.org</owner> <owner>chromeos-dlp@google.com</owner> <summary> @@ -1378,7 +1378,7 @@ </histogram> <histogram name="Enterprise.Dlp.CaptureModeInitWarned" enum="BooleanWarned" - expires_after="2025-04-06"> + expires_after="2025-06-08"> <owner>aidazolic@chromium.org</owner> <owner>chromeos-dlp@google.com</owner> <summary> @@ -1489,7 +1489,7 @@ </histogram> <histogram name="Enterprise.Dlp.Errors.FilesPolicySetup" enum="Boolean" - expires_after="2025-04-06"> + expires_after="2025-06-08"> <owner>accorsi@google.com</owner> <owner>chromeos-dlp@google.com</owner> <summary> @@ -1509,7 +1509,7 @@ </histogram> <histogram name="Enterprise.Dlp.FanotifyDeleteEventSupport" enum="Boolean" - expires_after="2025-04-06"> + expires_after="2025-06-08"> <owner>accorsi@google.com</owner> <owner>chromeos-dlp@google.com</owner> <summary> @@ -1518,7 +1518,7 @@ </histogram> <histogram name="Enterprise.Dlp.FanotifyMarkFilesystemSupport" enum="Boolean" - expires_after="2025-04-06"> + expires_after="2025-06-08"> <owner>accorsi@google.com</owner> <owner>chromeos-dlp@google.com</owner> <summary>Record whether the kernel supports fanotify delete events.</summary> @@ -1605,7 +1605,7 @@ </histogram> <histogram name="Enterprise.Dlp.FilesDaemonStarted" enum="Boolean" - expires_after="2025-04-06"> + expires_after="2025-06-08"> <owner>poromov@chromium.org</owner> <owner>chromeos-dlp@google.com</owner> <summary> @@ -1615,7 +1615,7 @@ </histogram> <histogram name="Enterprise.Dlp.FilesDefaultFileAccess" - enum="EnterpriseDlpFileAccessDefaultAction" expires_after="2025-04-06"> + enum="EnterpriseDlpFileAccessDefaultAction" expires_after="2025-06-08"> <owner>brinky@chromium.org</owner> <owner>chromeos-dlp@google.com</owner> <summary> @@ -2035,7 +2035,7 @@ </histogram> <histogram name="Enterprise.EnrolledDevicePolicyPresent" enum="Boolean" - expires_after="2025-04-06"> + expires_after="2025-06-08"> <owner>igorcov@chromium.org</owner> <owner>chromeos-commercial-remote-management@google.com</owner> <summary> @@ -2384,7 +2384,7 @@ </histogram> <histogram name="Enterprise.InstallAttributes.ValidOnEnrolledDevice" - enum="Boolean" expires_after="2025-04-06"> + enum="Boolean" expires_after="2025-06-08"> <owner>igorcov@chromium.org</owner> <owner>emaxx@chromium.org</owner> <owner>chromeos-commercial-remote-management@google.com</owner> @@ -2408,7 +2408,7 @@ </histogram> <histogram name="Enterprise.KeySignatureVerification" - enum="EnterpriseKeySignatureVerification" expires_after="2025-04-06"> + enum="EnterpriseKeySignatureVerification" expires_after="2025-06-08"> <owner>igorcov@chromium.org</owner> <owner>emaxx@chromium.org</owner> <owner>chromeos-commercial-remote-management@google.com</owner> @@ -2685,7 +2685,7 @@ </histogram> <histogram name="Enterprise.Policies" enum="EnterprisePolicies" - expires_after="2025-04-06"> + expires_after="2025-06-08"> <owner>vsavu@google.com</owner> <owner>asumaneev@google.com</owner> <owner>chromeos-commercial-remote-management@google.com</owner> @@ -2696,7 +2696,7 @@ </histogram> <histogram name="Enterprise.Policies.Sources" enum="EnterprisePoliciesSources" - expires_after="2025-04-06"> + expires_after="2025-06-08"> <owner>zmin@chromium.org</owner> <owner>igorruvinov@chromium.org</owner> <owner>chromeos-commercial-remote-management@google.com</owner> @@ -2838,7 +2838,7 @@ </histogram> <histogram name="Enterprise.PolicyUpdatePeriod.Device" units="days" - expires_after="2025-04-06"> + expires_after="2025-06-08"> <owner>rbock@google.com</owner> <owner>igorcov@chromium.org</owner> <owner>chromeos-commercial-remote-management@google.com</owner> @@ -2868,7 +2868,7 @@ </histogram> <histogram name="Enterprise.PolicyUserVerification" - enum="EnterprisePolicyUserVerification" expires_after="2025-04-06"> + enum="EnterprisePolicyUserVerification" expires_after="2025-06-08"> <owner>poromov@chromium.org</owner> <owner>chromeos-commercial-remote-management@google.com</owner> <summary>Tracking the results of policy user verification.</summary> @@ -3002,7 +3002,7 @@ <histogram name="Enterprise.ResumableRequest.{ResumableRequestCheckType}Check.{ContentAnalysisRequestType}.Duration" - units="ms" expires_after="2025-03-21"> + units="ms" expires_after="2025-06-08"> <owner>nancylanxiao@google.com</owner> <owner>domfc@chromium.org</owner> <owner>dpr-eng@google.com</owner> @@ -3554,7 +3554,7 @@ </histogram> <histogram name="Enterprise.UserPolicyChromeOS.InitialFetch.OAuth2Error" - enum="GoogleServiceAuthError" expires_after="2025-04-06"> + enum="GoogleServiceAuthError" expires_after="2025-06-08"> <owner>igorcov@chromium.org</owner> <owner>asumaneev@google.com</owner> <owner>chromeos-commercial-remote-management@google.com</owner> @@ -3568,7 +3568,7 @@ <histogram name="Enterprise.UserPolicyChromeOS.ReregistrationResult" enum="EnterpriseUserPolicyChromeOSReregistrationResult" - expires_after="2025-04-06"> + expires_after="2025-06-08"> <owner>hendrich@chromium.org</owner> <owner>rbock@google.com</owner> <owner>chromeos-commercial-remote-management@google.com</owner> @@ -3765,7 +3765,7 @@ </histogram> <histogram name="EnterpriseCheck.IsDomainJoined" enum="BooleanEnabled" - expires_after="2025-04-06"> + expires_after="2025-06-08"> <owner>pastarmovj@chromium.org</owner> <owner>rogerta@chromium.org</owner> <owner>zmin@chromium.org</owner>
diff --git a/tools/metrics/histograms/metadata/event/histograms.xml b/tools/metrics/histograms/metadata/event/histograms.xml index 6d0c1c0..54ad9d9c 100644 --- a/tools/metrics/histograms/metadata/event/histograms.xml +++ b/tools/metrics/histograms/metadata/event/histograms.xml
@@ -753,7 +753,7 @@ <histogram name="EventLatency.GestureScrollUpdate.{NonTouchscreenScrollInputType}.TotalLatency2" - units="microseconds" expires_after="2025-03-30"> + units="microseconds" expires_after="2025-06-08"> <owner>jonross@chromium.org</owner> <owner>chrome-gpu-metric-alerts@chromium.org</owner> <summary> @@ -898,7 +898,7 @@ </histogram> <histogram name="EventLatency.{ScrollEventType}.TotalLatency2" - units="microseconds" expires_after="2025-03-30"> + units="microseconds" expires_after="2025-06-08"> <owner>jonross@chromium.org</owner> <owner>chrome-gpu-metric-alerts@chromium.org</owner> <summary>
diff --git a/tools/metrics/histograms/metadata/extensions/enums.xml b/tools/metrics/histograms/metadata/extensions/enums.xml index 693990f..7823e384 100644 --- a/tools/metrics/histograms/metadata/extensions/enums.xml +++ b/tools/metrics/histograms/metadata/extensions/enums.xml
@@ -3389,6 +3389,19 @@ <int value="10" label="Open channel acked"/> <int value="11" label="Port disconnected before response"/> <int value="12" label="Channel closed before response"/> + <int value="13" + label="Channel not opened (source endpoint invalid/doesn't exist)"/> + <int value="14" + label="Channel not opened (opener port invalid/doesn't exist)"/> + <int value="15" + label="Channel not opened (source endpoint closed while channel open + in-flight)"/> + <int value="16" + label="Channel not opened (opener port closed while channel open + in-flight)"/> + <int value="17" + label="Channel not opened (extension uninstalled/disabled while channel + open in-flight)"/> </enum> <enum name="ReadDynamicRulesJSONStatus">
diff --git a/tools/metrics/histograms/metadata/extensions/histograms.xml b/tools/metrics/histograms/metadata/extensions/histograms.xml index 151c721e..9b337de 100644 --- a/tools/metrics/histograms/metadata/extensions/histograms.xml +++ b/tools/metrics/histograms/metadata/extensions/histograms.xml
@@ -374,7 +374,7 @@ <histogram name="Extensions.CommandLineWith{DeveloperModeState}{ExtensionState}" - units="count" expires_after="2025-03-30"> + units="count" expires_after="2025-06-08"> <owner>richche@google.com</owner> <owner>chrome-counter-abuse-alerts@google.com</owner> <summary> @@ -569,7 +569,7 @@ <histogram name="Extensions.ContentVerification.DidHashMismatchOnFetchCompleteMV2" - enum="Boolean" expires_after="2025-04-06"> + enum="Boolean" expires_after="2025-06-08"> <owner>rdevlin.cronin@chromium.org</owner> <owner>extensions-core@chromium.org</owner> <summary> @@ -639,7 +639,7 @@ <histogram name="Extensions.ContentVerification.VerifyFailedOnFileMV2{VerifiedFileType}" - enum="ContentVerifyJobResult" expires_after="2025-04-06"> + enum="ContentVerifyJobResult" expires_after="2025-06-08"> <owner>rdevlin.cronin@chromium.org</owner> <owner>extensions-core@chromium.org</owner> <summary> @@ -669,7 +669,7 @@ <histogram name="Extensions.ContentVerification.VerifyFailedOnFileMV3{VerifiedFileType}" - enum="ContentVerifyJobResult" expires_after="2025-04-06"> + enum="ContentVerifyJobResult" expires_after="2025-06-08"> <owner>rdevlin.cronin@chromium.org</owner> <owner>extensions-core@chromium.org</owner> <summary> @@ -683,7 +683,7 @@ </histogram> <histogram name="Extensions.ContentVerification.VerifyFailedOnFileTypeMV2" - enum="VerifiedFileType" expires_after="2025-04-06"> + enum="VerifiedFileType" expires_after="2025-06-08"> <owner>rdevlin.cronin@chromium.org</owner> <owner>extensions-core@chromium.org</owner> <summary> @@ -693,7 +693,7 @@ </histogram> <histogram name="Extensions.ContentVerification.VerifyFailedOnFileTypeMV3" - enum="VerifiedFileType" expires_after="2025-04-06"> + enum="VerifiedFileType" expires_after="2025-06-08"> <owner>rdevlin.cronin@chromium.org</owner> <owner>extensions-core@chromium.org</owner> <summary> @@ -715,7 +715,7 @@ </histogram> <histogram name="Extensions.ContentVerification.VerifyJobResultMV2" - enum="ContentVerifyJobResult" expires_after="2025-04-06"> + enum="ContentVerifyJobResult" expires_after="2025-06-08"> <owner>rdevlin.cronin@chromium.org</owner> <owner>extensions-core@chromium.org</owner> <summary> @@ -726,7 +726,7 @@ </histogram> <histogram name="Extensions.ContentVerification.VerifyJobResultMV3" - enum="ContentVerifyJobResult" expires_after="2025-04-06"> + enum="ContentVerifyJobResult" expires_after="2025-06-08"> <owner>rdevlin.cronin@chromium.org</owner> <owner>extensions-core@chromium.org</owner> <summary> @@ -2664,7 +2664,7 @@ </histogram> <histogram name="Extensions.Functions.ExtractJSCallStackElapsedTime" - units="microseconds" expires_after="2025-04-06"> + units="microseconds" expires_after="2025-06-08"> <owner>anunoy@chromium.org</owner> <owner>chrome-counter-abuse-alerts@google.com</owner> <summary> @@ -3779,7 +3779,7 @@ </histogram> <histogram name="Extensions.LoadTheme2" units="units" - expires_after="2025-03-30"> + expires_after="2025-06-08"> <owner>rdevlin.cronin@chromium.org</owner> <owner>extensions-core@chromium.org</owner> <summary> @@ -4885,7 +4885,7 @@ </histogram> <histogram name="Extensions.ServiceWorkerBackground.WorkerRegistrationState" - enum="Boolean" expires_after="2025-05-25"> + enum="Boolean" expires_after="2025-06-08"> <owner>jlulejian@chromium.org</owner> <owner>extensions-core@chromium.org</owner> <summary> @@ -4915,7 +4915,7 @@ <histogram name="Extensions.ServiceWorkerBackground.WorkerUnregistrationFailureStatus{UnregistrationType}" - enum="ServiceWorkerStatusCode" expires_after="2025-03-25"> + enum="ServiceWorkerStatusCode" expires_after="2025-06-08"> <owner>jlulejian@chromium.org</owner> <owner>extensions-core@chromium.org</owner> <summary> @@ -4944,7 +4944,7 @@ <histogram name="Extensions.ServiceWorkerBackground.WorkerUnregistrationState{UnregistrationType}" - enum="Boolean" expires_after="2025-03-30"> + enum="Boolean" expires_after="2025-06-08"> <owner>jlulejian@chromium.org</owner> <owner>extensions-core@chromium.org</owner> <summary>
diff --git a/tools/metrics/histograms/metadata/families/histograms.xml b/tools/metrics/histograms/metadata/families/histograms.xml index 28213180..4d1ea19 100644 --- a/tools/metrics/histograms/metadata/families/histograms.xml +++ b/tools/metrics/histograms/metadata/families/histograms.xml
@@ -361,7 +361,7 @@ <histogram name="FamilyLinkUser.BlockedSiteVerifyItsYouInterstitialState" enum="FamilyLinkUserReauthenticationInterstitialState" - expires_after="2025-03-23"> + expires_after="2025-06-08"> <owner>anthie@google.com</owner> <owner>ljjlee@google.com</owner> <owner>chrome-kids-eng@google.com</owner> @@ -663,7 +663,7 @@ </histogram> <histogram name="FamilyUser.WebFilterType.PerRecord" - enum="FamilyLinkWebFilterType" expires_after="2025-03-30"> + enum="FamilyLinkWebFilterType" expires_after="2025-06-08"> <owner>fernandex@chromium.org</owner> <owner>agawronska@chromium.org</owner> <owner>chrome-kids-eng@google.com</owner>
diff --git a/tools/metrics/histograms/metadata/fingerprint/histograms.xml b/tools/metrics/histograms/metadata/fingerprint/histograms.xml index 77b10e12..8b5055e2 100644 --- a/tools/metrics/histograms/metadata/fingerprint/histograms.xml +++ b/tools/metrics/histograms/metadata/fingerprint/histograms.xml
@@ -36,7 +36,7 @@ </histogram> <histogram name="Fingerprint.Auth.ScanResult" enum="FingerprintScanResult" - expires_after="2025-03-30"> + expires_after="2025-06-08"> <owner>emaamari@google.com</owner> <owner>tomhughes@chromium.org</owner> <owner>cros-lurs@google.com</owner> @@ -279,7 +279,7 @@ </histogram> <histogram name="Fingerprint.Unlock.AuthSuccessful" enum="BooleanSuccess" - expires_after="2025-03-30"> + expires_after="2025-06-08"> <owner>emaamari@google.com</owner> <owner>cros-lurs@google.com</owner> <summary> @@ -293,7 +293,7 @@ </histogram> <histogram name="Fingerprint.Unlock.EnrolledFingerCount" units="count" - expires_after="2025-03-30"> + expires_after="2025-06-08"> <owner>tomhughes@chromium.org</owner> <owner>chromeos-fingerprint@google.com</owner> <summary> @@ -310,7 +310,7 @@ </histogram> <histogram name="Fingerprint.Unlock.Match.PositiveMatchSecretCorrect" - enum="BooleanCorrect" expires_after="2025-03-30"> + enum="BooleanCorrect" expires_after="2025-06-08"> <owner>hesling@chromium.org</owner> <owner>chromeos-fingerprint@google.com</owner> <summary> @@ -397,7 +397,7 @@ </histogram> <histogram name="Fingerprint.Unlock.Result" enum="FingerprintUnlockResult" - expires_after="2025-03-30"> + expires_after="2025-06-08"> <owner>emaamari@google.com</owner> <owner>tomhughes@chromium.org</owner> <owner>cros-lurs@google.com</owner> @@ -409,7 +409,7 @@ </histogram> <histogram name="Fingerprint.Unlock.{Outcome}.Duration.{Interval}" units="ms" - expires_after="2025-03-30"> + expires_after="2025-06-08"> <owner>dawidn@google.com</owner> <owner>chromeos-fingerprint@google.com</owner> <summary> @@ -429,7 +429,7 @@ </histogram> <histogram name="Fingerprint.UnlockEnabled" enum="BooleanEnabled" - expires_after="2025-03-30"> + expires_after="2025-06-08"> <owner>tomhughes@chromium.org</owner> <owner>chromeos-fingerprint@google.com</owner> <summary> @@ -448,7 +448,7 @@ </histogram> <histogram name="Fingerprint.Updater.Reason" enum="FingerprintUpdaterReason" - expires_after="2025-03-30"> + expires_after="2025-06-08"> <owner>tomhughes@chromium.org</owner> <owner>hesling@chromium.org</owner> <owner>chromeos-fingerprint@google.com</owner> @@ -458,7 +458,7 @@ </histogram> <histogram name="Fingerprint.Updater.Status" enum="FingerprintUpdaterStatus" - expires_after="2025-03-30"> + expires_after="2025-06-08"> <owner>tomhughes@chromium.org</owner> <owner>hesling@chromium.org</owner> <owner>chromeos-fingerprint@google.com</owner>
diff --git a/tools/metrics/histograms/metadata/gcm/histograms.xml b/tools/metrics/histograms/metadata/gcm/histograms.xml index 2eed201..c53a051 100644 --- a/tools/metrics/histograms/metadata/gcm/histograms.xml +++ b/tools/metrics/histograms/metadata/gcm/histograms.xml
@@ -42,7 +42,7 @@ </summary> </histogram> -<histogram name="GCM.ClientStartDelay" units="ms" expires_after="2025-03-30"> +<histogram name="GCM.ClientStartDelay" units="ms" expires_after="2025-06-08"> <owner>rushans@google.com</owner> <owner>peter@chromium.org</owner> <summary> @@ -179,7 +179,7 @@ </histogram> <histogram name="GCM.SendWebPushMessageResult" enum="SendWebPushMessageResult" - expires_after="2025-03-09"> + expires_after="2025-06-08"> <owner>knollr@chromium.org</owner> <owner>peter@chromium.org</owner> <summary>
diff --git a/tools/metrics/histograms/metadata/geolocation/histograms.xml b/tools/metrics/histograms/metadata/geolocation/histograms.xml index 0e80feb..dff98a27 100644 --- a/tools/metrics/histograms/metadata/geolocation/histograms.xml +++ b/tools/metrics/histograms/metadata/geolocation/histograms.xml
@@ -23,7 +23,7 @@ <histograms> <histogram name="Geolocation.Android.LocationPermissionState" - enum="AndroidLocationPermissionState" expires_after="2025-03-30"> + enum="AndroidLocationPermissionState" expires_after="2025-06-08"> <owner>mattreynolds@chromium.org</owner> <owner>device-dev@chromium.org</owner> <summary> @@ -33,7 +33,7 @@ </histogram> <histogram name="Geolocation.CoreLocationProvider.Accuracy" units="meter" - expires_after="2025-03-30"> + expires_after="2025-06-08"> <owner>alvinji@chromium.org</owner> <owner>device-dev@chromium.org</owner> <summary>
diff --git a/tools/metrics/histograms/metadata/gpu/histograms.xml b/tools/metrics/histograms/metadata/gpu/histograms.xml index 9851dfef6..293cace 100644 --- a/tools/metrics/histograms/metadata/gpu/histograms.xml +++ b/tools/metrics/histograms/metadata/gpu/histograms.xml
@@ -469,7 +469,7 @@ </histogram> <histogram name="GPU.CanvasOopRaster.OopRasterAndGpuAcceleration" - enum="CanvasOopRasterAndGpuAcceleration" expires_after="2025-03-30"> + enum="CanvasOopRasterAndGpuAcceleration" expires_after="2025-06-08"> <owner>vasilyt@chromium.org</owner> <owner>nazabris@microsoft.com</owner> <owner>jochin@microsoft.com</owner> @@ -653,7 +653,7 @@ </histogram> <histogram name="GPU.DirectComposition.HardwareOverlaysSupported" - enum="BooleanOverlaySupported" expires_after="2025-03-30"> + enum="BooleanOverlaySupported" expires_after="2025-06-08"> <owner>magchen@chromium.org</owner> <owner>chrome-gpu-metric-alerts@chromium.org</owner> <summary> @@ -700,7 +700,7 @@ <histogram base="true" name="GPU.DirectComposition.SwapChainCreationResult3.SoftwareProtected.{SoftwareProtectedType}" - enum="Hresult" expires_after="2025-03-23"> + enum="Hresult" expires_after="2025-06-08"> <owner>magchen@chromium.org</owner> <owner>zmo@chromium.org</owner> <owner>chrome-gpu-metric-alerts@chromium.org</owner> @@ -716,7 +716,7 @@ <histogram base="true" name="GPU.DirectComposition.SwapChainCreationResult3.{GPUProtectedVideoType}" - enum="Hresult" expires_after="2025-03-23"> + enum="Hresult" expires_after="2025-06-08"> <owner>magchen@chromium.org</owner> <owner>zmo@chromium.org</owner> <owner>chrome-gpu-metric-alerts@chromium.org</owner> @@ -1287,7 +1287,7 @@ </histogram> <histogram name="GPU.PaintOpReader.DeserializationError" - enum="PaintOpDeserializationError" expires_after="2025-02-16"> + enum="PaintOpDeserializationError" expires_after="2025-06-08"> <owner>junov@chromium.org</owner> <owner>chrome-gpu-metric-alerts@chromium.org</owner> <summary> @@ -1321,7 +1321,7 @@ </histogram> <histogram name="GPU.Presentation.VSyncCallbackDelay" units="microseconds" - expires_after="2025-04-01"> + expires_after="2025-06-08"> <owner>magchen@chromium.org</owner> <owner>vmiura@chromium.org</owner> <owner>chrome-gpu-metric-alerts@chromium.org</owner> @@ -1431,7 +1431,7 @@ </histogram> <histogram name="GPU.SkiaBackendType" enum="SkiaBackendType" - expires_after="2025-04-06"> + expires_after="2025-06-08"> <owner>kylechar@chromium.org</owner> <owner>chrome-gpu-metric-alerts@google.com</owner> <summary> @@ -1587,7 +1587,7 @@ </histogram> <histogram name="GPU.WebGLDisplayType" enum="EGLDisplayType" - expires_after="2025-03-30"> + expires_after="2025-06-08"> <owner>geofflang@chromium.org</owner> <owner>chrome-gpu-metric-alerts@chromium.org</owner> <summary> @@ -1883,7 +1883,7 @@ </histogram> <histogram name="Viz.BeginFrameSource.VrrFrameCount" units="frames" - expires_after="2025-03-30"> + expires_after="2025-06-08"> <owner>aswolfers@chromium.org</owner> <owner>chromeos-gfx-compositor@chromium.org</owner> <summary> @@ -1894,7 +1894,7 @@ </histogram> <histogram name="Viz.BeginFrameSource.VSyncCallbackDelay" units="microseconds" - expires_after="2025-04-01"> + expires_after="2025-06-08"> <owner>magchen@chromium.org</owner> <owner>vmiura@chromium.org</owner> <owner>chrome-gpu-metric-alerts@chromium.org</owner>
diff --git a/tools/metrics/histograms/metadata/history/histograms.xml b/tools/metrics/histograms/metadata/history/histograms.xml index e0a92e9c..9a67d80 100644 --- a/tools/metrics/histograms/metadata/history/histograms.xml +++ b/tools/metrics/histograms/metadata/history/histograms.xml
@@ -329,7 +329,7 @@ </histogram> <histogram name="History.ClearBrowsingData.ImportantDialogShown" - enum="BooleanShown" expires_after="2025-03-30"> + enum="BooleanShown" expires_after="2025-06-08"> <owner>ayui@chromium.org</owner> <owner>chrome-owp-storage@google.com</owner> <component>1456716</component> @@ -343,7 +343,7 @@ </histogram> <histogram name="History.ClearBrowsingData.NumImportant" units="units" - expires_after="2025-03-09"> + expires_after="2025-06-08"> <owner>ayui@chromium.org</owner> <owner>chrome-owp-storage@google.com</owner> <component>1456716</component> @@ -407,7 +407,7 @@ </histogram> <histogram name="History.Clusters.Actions.DidMakeQuery" enum="BooleanQueried" - expires_after="2025-04-06"> + expires_after="2025-06-08"> <owner>mcrouse@chromium.org</owner> <owner>chrome-journeys@google.com</owner> <component>1457319</component> @@ -773,7 +773,7 @@ </histogram> <histogram name="History.Clusters.Backend.NumVisitsBelowFold" - units="number visits" expires_after="2025-04-06"> + units="number visits" expires_after="2025-06-08"> <owner>sophiechang@chromium.org</owner> <owner>chrome-journeys@google.com</owner> <component>1457319</component> @@ -1226,7 +1226,7 @@ </histogram> <histogram name="History.Clusters.KeywordCache.LoadCachesFromPrefs.Latency" - units="ms" expires_after="2025-03-30"> + units="ms" expires_after="2025-06-08"> <owner>pnoland@chromium.org</owner> <owner>chrome-journeys@google.com</owner> <component>1457319</component> @@ -1345,7 +1345,7 @@ <histogram name="History.Clusters.UIActions.RelatedSearch.{RelatedSearchAction}" - units="index" expires_after="2025-03-23"> + units="index" expires_after="2025-06-08"> <owner>mahmadi@chromium.org</owner> <owner>chrome-journeys@google.com</owner> <component>1457319</component> @@ -1417,7 +1417,7 @@ </histogram> <histogram name="History.Clusters.WebUISessionDuration" units="ms" - expires_after="2025-04-06"> + expires_after="2025-06-08"> <owner>manukh@chromium.org</owner> <owner>chrome-journeys@google.com</owner> <component>1457319</component> @@ -1822,7 +1822,7 @@ </histogram> <histogram name="History.Embeddings.DatabaseCachedPassageTryCount" - units="passages" expires_after="2025-03-30"> + units="passages" expires_after="2025-06-08"> <owner>orinj@chromium.org</owner> <owner>sophiechang@chromium.org</owner> <summary> @@ -2493,7 +2493,7 @@ </histogram> <histogram name="History.InitializationFailureStep" enum="HistoryInitStep" - expires_after="2025-04-06"> + expires_after="2025-06-08"> <owner>sky@chromium.org</owner> <owner>sdefresne@chromium.org</owner> <component>1456716</component> @@ -2506,7 +2506,7 @@ </histogram> <histogram name="History.InMemoryDBItemCount" units="typed URLs" - expires_after="2025-03-30"> + expires_after="2025-06-08"> <owner>sky@chromium.org</owner> <owner>mpearson@chromium.org</owner> <component>1456716</component> @@ -2645,7 +2645,7 @@ </histogram> <histogram name="History.TopSites.QueryFromHistoryTime" units="ms" - expires_after="2025-03-30"> + expires_after="2025-06-08"> <owner>mahmadi@chromium.org</owner> <owner>chrome-omnibox-team@google.com</owner> <summary>
diff --git a/tools/metrics/histograms/metadata/holding_space/histograms.xml b/tools/metrics/histograms/metadata/holding_space/histograms.xml index 61497b6..f81d7cb3 100644 --- a/tools/metrics/histograms/metadata/holding_space/histograms.xml +++ b/tools/metrics/histograms/metadata/holding_space/histograms.xml
@@ -236,7 +236,7 @@ <histogram name="HoldingSpace.Item.TotalCountV2.{type}.FileSystemType.{fs_type}" - units="items" expires_after="2025-02-10"> + units="items" expires_after="2025-06-08"> <owner>dmblack@google.com</owner> <owner>alexandrahill@google.com</owner> <summary>
diff --git a/tools/metrics/histograms/metadata/image/histograms.xml b/tools/metrics/histograms/metadata/image/histograms.xml index 466fa67d..a0eda5e 100644 --- a/tools/metrics/histograms/metadata/image/histograms.xml +++ b/tools/metrics/histograms/metadata/image/histograms.xml
@@ -475,7 +475,7 @@ </histogram> <histogram name="ImageFetcher.Events{ImageFetcherClients}" - enum="ImageFetcherEvent" expires_after="2025-03-23"> + enum="ImageFetcherEvent" expires_after="2025-06-08"> <owner>fgorski@chromium.org</owner> <owner>wylieb@chromium.org</owner> <summary> @@ -502,7 +502,7 @@ </histogram> <histogram name="ImageFetcher.ImageLoadFromCacheTime{ImageFetcherClients}" - units="ms" expires_after="2025-03-23"> + units="ms" expires_after="2025-06-08"> <owner>fgorski@chromium.org</owner> <owner>wylieb@chromium.org</owner> <summary>
diff --git a/tools/metrics/histograms/metadata/input/histograms.xml b/tools/metrics/histograms/metadata/input/histograms.xml index 57199a6..5bed3a9 100644 --- a/tools/metrics/histograms/metadata/input/histograms.xml +++ b/tools/metrics/histograms/metadata/input/histograms.xml
@@ -1893,7 +1893,7 @@ </histogram> <histogram name="InputMethod.StylusHandwriting.Gesture" - enum="StylusHandwritingGesture" expires_after="2025-03-30"> + enum="StylusHandwritingGesture" expires_after="2025-06-08"> <owner>peconn@chromium.org</owner> <owner>embedded-experience@google.com</owner> <summary> @@ -1924,7 +1924,7 @@ </histogram> <histogram name="InputMethod.StylusHandwriting.Triggered" - enum="StylusHandwritingApi" expires_after="2025-03-30"> + enum="StylusHandwritingApi" expires_after="2025-06-08"> <owner>peconn@chromium.org</owner> <owner>embedded-experience@google.com</owner> <summary>
diff --git a/tools/metrics/histograms/metadata/interstitial/histograms.xml b/tools/metrics/histograms/metadata/interstitial/histograms.xml index b65e015..5253af5 100644 --- a/tools/metrics/histograms/metadata/interstitial/histograms.xml +++ b/tools/metrics/histograms/metadata/interstitial/histograms.xml
@@ -80,7 +80,7 @@ </histogram> <histogram name="interstitial.CloseReason" enum="InterstitialCloseReason" - expires_after="2025-03-30"> + expires_after="2025-06-08"> <owner>xinghuilu@chromium.org</owner> <owner>chrome-counter-abuse-alerts@google.com</owner> <summary>
diff --git a/tools/metrics/histograms/metadata/invalidation/histograms.xml b/tools/metrics/histograms/metadata/invalidation/histograms.xml index 8a527796..63ddac4 100644 --- a/tools/metrics/histograms/metadata/invalidation/histograms.xml +++ b/tools/metrics/histograms/metadata/invalidation/histograms.xml
@@ -36,14 +36,14 @@ </histogram> <histogram name="FCMInvalidations.FailedSubscriptionsErrorCode" - enum="NetErrorCodes" expires_after="2025-04-06"> + enum="NetErrorCodes" expires_after="2025-06-08"> <owner>melandory@chromium.org</owner> <owner>treib@chromium.org</owner> <summary>Net error codes for failed subscription requests.</summary> </histogram> <histogram name="FCMInvalidations.FCMMessageStatus{FCMInvalidationSenders}" - enum="FCMInvalidationMessageStatus" expires_after="2025-04-06"> + enum="FCMInvalidationMessageStatus" expires_after="2025-06-08"> <owner>melandory@chromium.org</owner> <owner>treib@chromium.org</owner> <summary> @@ -62,7 +62,7 @@ </histogram> <histogram name="FCMInvalidations.InitialTokenRetrievalStatus" - enum="InstanceIDResult" expires_after="2025-04-06"> + enum="InstanceIDResult" expires_after="2025-06-08"> <owner>melandory@chromium.org</owner> <owner>treib@chromium.org</owner> <summary> @@ -71,7 +71,7 @@ </histogram> <histogram name="FCMInvalidations.SubscriptionRequestStatus" - enum="FCMInvalidationSubscriptionStatus" expires_after="2025-04-06"> + enum="FCMInvalidationSubscriptionStatus" expires_after="2025-06-08"> <owner>melandory@chromium.org</owner> <owner>treib@chromium.org</owner> <summary> @@ -81,7 +81,7 @@ </histogram> <histogram name="FCMInvalidations.SubscriptionResponseCode" - enum="HttpResponseCode" expires_after="2025-04-06"> + enum="HttpResponseCode" expires_after="2025-06-08"> <owner>melandory@chromium.org</owner> <owner>treib@chromium.org</owner> <summary> @@ -91,7 +91,7 @@ </histogram> <histogram name="FCMInvalidations.TokenStateOnRegistrationRequest2" - enum="TokenStateOnRegistrationRequest" expires_after="2025-04-06"> + enum="TokenStateOnRegistrationRequest" expires_after="2025-06-08"> <owner>melandory@chromium.org</owner> <owner>treib@chromium.org</owner> <summary>
diff --git a/tools/metrics/histograms/metadata/ios/histograms.xml b/tools/metrics/histograms/metadata/ios/histograms.xml index 1174d6f..71f00d5 100644 --- a/tools/metrics/histograms/metadata/ios/histograms.xml +++ b/tools/metrics/histograms/metadata/ios/histograms.xml
@@ -286,7 +286,7 @@ </histogram> <histogram name="IOS.BringAndroidTabs.ActionOnPrompt" - enum="IOSBringAndroidTabsPromptActionType" expires_after="2025-03-23"> + enum="IOSBringAndroidTabsPromptActionType" expires_after="2025-06-08"> <owner>hiramahmood@google.com</owner> <owner>ginnyhuang@chromium.org</owner> <owner>bling-get-set-up@google.com</owner> @@ -715,7 +715,7 @@ </histogram> <histogram name="IOS.CredentialExtension.IsEnabled.Startup" enum="Boolean" - expires_after="2025-04-06"> + expires_after="2025-06-08"> <owner>tmartino@chromium.org</owner> <owner>bling-transactions-eng@google.com</owner> <summary> @@ -762,7 +762,7 @@ </histogram> <histogram name="IOS.CredentialExtension.PasskeyUseCount" units="count" - expires_after="2025-04-06"> + expires_after="2025-06-08"> <owner>tmartino@chromium.org</owner> <owner>bling-transactions-eng@google.com</owner> <summary> @@ -784,7 +784,7 @@ </histogram> <histogram name="IOS.CredentialExtension.PasswordUseCount" units="count" - expires_after="2025-04-06"> + expires_after="2025-06-08"> <owner>tmartino@chromium.org</owner> <owner>bling-transactions-eng@google.com</owner> <summary> @@ -806,7 +806,7 @@ </histogram> <histogram name="IOS.CredentialExtension.QuickPasswordUseCount" units="count" - expires_after="2025-04-06"> + expires_after="2025-06-08"> <owner>tmartino@chromium.org</owner> <owner>bling-transactions-eng@google.com</owner> <summary> @@ -868,7 +868,7 @@ </histogram> <histogram name="IOS.CredentialExtension.ShowPasswordCount" units="count" - expires_after="2025-03-30"> + expires_after="2025-06-08"> <owner>tmartino@chromium.org</owner> <owner>bling-transactions-eng@google.com</owner> <summary> @@ -901,7 +901,7 @@ </histogram> <histogram name="IOS.CredentialProviderExtension.Promo.Impression{IsReminder}" - enum="IOSCredentialProviderPromoSource" expires_after="2025-04-06"> + enum="IOSCredentialProviderPromoSource" expires_after="2025-06-08"> <owner>huitingyu@google.com</owner> <owner>hiramahmood@google.com</owner> <summary> @@ -919,7 +919,7 @@ <histogram name="IOS.CredentialProviderExtension.Promo.{PromoSource}{IsReminder}" - enum="IOSCredentialProviderPromoAction" expires_after="2025-04-06"> + enum="IOSCredentialProviderPromoAction" expires_after="2025-06-08"> <owner>huitingyu@google.com</owner> <owner>hiramahmood@google.com</owner> <summary> @@ -942,7 +942,7 @@ </histogram> <histogram name="IOS.DefaultBrowserAbandonment{PeriodConsidered}" - enum="Boolean" expires_after="2025-03-30"> + enum="Boolean" expires_after="2025-06-08"> <owner>gujen@google.com</owner> <owner>bling-mony-pod@google.com</owner> <summary> @@ -969,7 +969,7 @@ </histogram> <histogram name="IOS.DefaultBrowserFullscreenTailoredPromoAllTabs" - enum="IOSDefaultBrowserFullscreenPromoAction" expires_after="2025-04-06"> + enum="IOSDefaultBrowserFullscreenPromoAction" expires_after="2025-06-08"> <owner>sebsg@chromium.org</owner> <owner>bling-get-set-up@google.com</owner> <summary> @@ -979,7 +979,7 @@ </histogram> <histogram name="IOS.DefaultBrowserFullscreenTailoredPromoMadeForIOS" - enum="IOSDefaultBrowserFullscreenPromoAction" expires_after="2025-04-06"> + enum="IOSDefaultBrowserFullscreenPromoAction" expires_after="2025-06-08"> <owner>sebsg@chromium.org</owner> <owner>bling-get-set-up@google.com</owner> <summary> @@ -989,7 +989,7 @@ </histogram> <histogram name="IOS.DefaultBrowserFullscreenTailoredPromoStaySafe" - enum="IOSDefaultBrowserFullscreenPromoAction" expires_after="2025-04-06"> + enum="IOSDefaultBrowserFullscreenPromoAction" expires_after="2025-06-08"> <owner>sebsg@chromium.org</owner> <owner>bling-get-set-up@google.com</owner> <summary> @@ -1010,7 +1010,7 @@ </histogram> <histogram name="IOS.DefaultBrowserPromo.FETAvailabilityOnFRE" - enum="BooleanAvailable" expires_after="2025-04-06"> + enum="BooleanAvailable" expires_after="2025-06-08"> <owner>gayane@google.com</owner> <owner>bling-mony-pod@google.com</owner> <summary> @@ -1063,7 +1063,7 @@ </histogram> <histogram name="IOS.DefaultBrowserPromo.NonModal.{PromoType}" - enum="IOSDefaultBrowserPromoNonModalAction" expires_after="2025-04-06"> + enum="IOSDefaultBrowserPromoNonModalAction" expires_after="2025-06-08"> <owner>sebsg@chromium.org</owner> <owner>bling-get-set-up@google.com</owner> <summary> @@ -1096,7 +1096,7 @@ </histogram> <histogram name="IOS.DefaultBrowserPromo.TailoredPromoDisplayCount" - units="count" expires_after="2025-04-06"> + units="count" expires_after="2025-06-08"> <owner>gayane@google.com</owner> <owner>bling-get-set-up@google.com</owner> <summary> @@ -1761,7 +1761,7 @@ </histogram> <histogram name="IOS.InactiveTabs.Settings.Threshold" - enum="InactiveTabsThresholdSettingType" expires_after="2025-03-30"> + enum="InactiveTabsThresholdSettingType" expires_after="2025-06-08"> <owner>alionadangla@chromium.org</owner> <owner>lpromero@chromium.org</owner> <summary>Logs the chosen inactive tab threshold at startup.</summary> @@ -1794,7 +1794,7 @@ </histogram> <histogram name="IOS.Incognito.GridStatus" enum="IOSIncognitoGridStatus" - expires_after="2025-03-30"> + expires_after="2025-06-08"> <owner>ddac@google.com</owner> <owner>chrome-kids-eng@google.com</owner> <summary> @@ -1804,7 +1804,7 @@ </summary> </histogram> -<histogram name="IOS.Incognito.TimeSpent" units="ms" expires_after="2025-03-30"> +<histogram name="IOS.Incognito.TimeSpent" units="ms" expires_after="2025-06-08"> <owner>olivierrobin@chromium.org</owner> <owner>qpubert@google.com</owner> <summary> @@ -1816,7 +1816,7 @@ </histogram> <histogram name="IOS.IncognitoInterstitial" - enum="IncognitoInterstitialActionType" expires_after="2025-03-30"> + enum="IncognitoInterstitialActionType" expires_after="2025-06-08"> <owner>qpubert@google.com</owner> <owner>djean@chromium.org</owner> <summary> @@ -1848,7 +1848,7 @@ </histogram> <histogram name="IOS.IncognitoLockOverlayInteraction" - enum="IncognitoLockOverlayInteractionType" expires_after="2025-03-31"> + enum="IncognitoLockOverlayInteractionType" expires_after="2025-06-08"> <owner>rubindl@chromium.org</owner> <owner>alimariam@google.com</owner> <owner>chrome-browser-privacy-team@google.com</owner> @@ -1952,7 +1952,7 @@ </histogram> <histogram name="IOS.IsEnabled.Password.BottomSheet" enum="Boolean" - expires_after="2025-03-30"> + expires_after="2025-06-08"> <owner>sugoi@chromium.org</owner> <owner>veronguyen@google.com</owner> <owner>tmartino@chromium.org</owner> @@ -2184,7 +2184,7 @@ </histogram> <histogram name="IOS.MagicStack.Module.Click.SafetyCheck" units="index" - expires_after="2025-03-30"> + expires_after="2025-06-08"> <owner>thegreenfrog@chromium.org</owner> <owner>bling-get-set-up@google.com</owner> <summary> @@ -2270,7 +2270,7 @@ </histogram> <histogram name="IOS.MagicStack.NTP.SegmentationRankingFetchTime" units="ms" - expires_after="2025-03-30"> + expires_after="2025-06-08"> <owner>thegreenfrog@chromium.org</owner> <owner>bling-get-set-up@google.com</owner> <summary> @@ -2289,7 +2289,7 @@ </histogram> <histogram name="IOS.MagicStack.Start.SegmentationRankingFetchTime" units="ms" - expires_after="2025-03-30"> + expires_after="2025-06-08"> <owner>thegreenfrog@chromium.org</owner> <owner>bling-get-set-up@google.com</owner> <summary> @@ -2845,7 +2845,7 @@ </histogram> <histogram name="IOS.Notifications.Tips.Sent" enum="IOSTipsNotificationType" - expires_after="2025-04-06"> + expires_after="2025-06-08"> <owner>scottyoder@chromium.org</owner> <owner>hiramahmood@google.com</owner> <summary> @@ -3041,7 +3041,7 @@ </histogram> <histogram name="IOS.Omnibox.SteadyStatePositionAtStartup.Selected" - enum="OmniboxPositionType" expires_after="2025-03-30"> + enum="OmniboxPositionType" expires_after="2025-06-08"> <owner>christianxu@chromium.org</owner> <owner>bling-team@google.com</owner> <summary> @@ -3321,7 +3321,7 @@ </histogram> <histogram name="IOS.PageLoadCount.Counts" - enum="IOSPageLoadCountNavigationType" expires_after="2025-03-30"> + enum="IOSPageLoadCountNavigationType" expires_after="2025-06-08"> <owner>gambard@chromium.org</owner> <owner>bling-team@google.com</owner> <summary>The number of navigation started events by navigation type.</summary> @@ -3359,14 +3359,14 @@ </histogram> <histogram name="IOS.ParcelTracking.OptIn.ActionOnPrompt" - enum="IOSParcelTrackingOptInActionOnPrompt" expires_after="2025-03-30"> + enum="IOSParcelTrackingOptInActionOnPrompt" expires_after="2025-06-08"> <owner>hiramahmood@google.com</owner> <owner>thegreenfrog@chromium.org</owner> <summary>Logs a user's action on the Parcel Tracking Opt-In prompt.</summary> </histogram> <histogram name="IOS.ParcelTracking.OptIn.Displayed" enum="Boolean" - expires_after="2025-03-30"> + expires_after="2025-06-08"> <owner>hiramahmood@google.com</owner> <owner>thegreenfrog@chromium.org</owner> <summary> @@ -3984,7 +3984,7 @@ </histogram> <histogram name="IOS.RestoreNavigationItemCount" units="rank" - expires_after="2025-03-30"> + expires_after="2025-06-08"> <owner>gambard@chromium.org</owner> <owner>justincohen@chromium.org</owner> <summary> @@ -4567,7 +4567,7 @@ </histogram> <histogram name="IOS.SetUpList.ItemDisplayed" enum="IOSSetUpListItemType" - expires_after="2025-03-30"> + expires_after="2025-06-08"> <owner>scottyoder@google.com</owner> <owner>bling-get-set-up@google.com</owner> <summary> @@ -4595,7 +4595,7 @@ </histogram> <histogram name="IOS.ShareExtension.ReceivedEntry" - enum="IOSShareExtensionReceivedEntryType" expires_after="2025-04-06"> + enum="IOSShareExtensionReceivedEntryType" expires_after="2025-06-08"> <owner>olivierrobin@chromium.org</owner> <owner>rkgibson@chromium.org</owner> <summary>Type of the item received from the iOS share extension.</summary> @@ -4612,7 +4612,7 @@ </histogram> <histogram name="IOS.ShareExtension.Source" - enum="IOSShareExtensionReceivedEntrySource" expires_after="2025-03-30"> + enum="IOSShareExtensionReceivedEntrySource" expires_after="2025-06-08"> <owner>olivierrobin@chromium.org</owner> <owner>rkgibson@chromium.org</owner> <summary> @@ -5078,7 +5078,7 @@ </histogram> <histogram name="IOS.TabSwitcher.TimeSpent" units="ms" - expires_after="2025-03-30"> + expires_after="2025-06-08"> <owner>alionadangla@chromium.org</owner> <owner>lpromero@chromium.org</owner> <owner>chromeleon@google.com</owner> @@ -5112,7 +5112,7 @@ </histogram> <histogram name="IOS.TextSelection.EntityDetection.DetectedEntityType" - enum="TextSelectionDetectedEntityType" expires_after="2025-04-06"> + enum="TextSelectionDetectedEntityType" expires_after="2025-06-08"> <owner>rajendrant@chromium.org</owner> <owner>sophiechang@chromium.org</owner> <summary> @@ -5267,7 +5267,7 @@ </histogram> <histogram name="IOS.Web.ErrorPagePresentationFailed" - enum="IOSErrorPagePresentationFailed" expires_after="2025-03-30"> + enum="IOSErrorPagePresentationFailed" expires_after="2025-06-08"> <owner>michaeldo@chromium.org</owner> <owner>bling-fundamentals@google.com</owner> <summary> @@ -5333,7 +5333,7 @@ </histogram> <histogram name="IOS.WebInspector.Enabled" enum="BooleanEnabled" - expires_after="2025-03-30"> + expires_after="2025-06-08"> <owner>michaeldo@chromium.org</owner> <owner>bling-fundamentals@google.com</owner> <summary> @@ -5475,7 +5475,7 @@ </histogram> <histogram name="IOS.{AppVersion}AppLaunchesPerSession" units="launches" - expires_after="2025-03-30"> + expires_after="2025-06-08"> <owner>michaeldo@chromium.org</owner> <owner>bling-team@google.com</owner> <summary>
diff --git a/tools/metrics/histograms/metadata/local/histograms.xml b/tools/metrics/histograms/metadata/local/histograms.xml index 94c3c67..556458b 100644 --- a/tools/metrics/histograms/metadata/local/histograms.xml +++ b/tools/metrics/histograms/metadata/local/histograms.xml
@@ -166,7 +166,7 @@ </histogram> <histogram name="LocalSearchService.{IndexId}ResponseStatus" - enum="LocalSearchServiceResponseStatus" expires_after="2025-04-06"> + enum="LocalSearchServiceResponseStatus" expires_after="2025-06-08"> <owner>chenjih@google.com</owner> <owner>laurencom@chromium.org</owner> <summary>
diff --git a/tools/metrics/histograms/metadata/login/histograms.xml b/tools/metrics/histograms/metadata/login/histograms.xml index 176d578..8eb4fd4 100644 --- a/tools/metrics/histograms/metadata/login/histograms.xml +++ b/tools/metrics/histograms/metadata/login/histograms.xml
@@ -149,7 +149,7 @@ </histogram> <histogram name="Login.IsTokenHandleInSyncWithRefreshToken" enum="Boolean" - expires_after="2025-04-06"> + expires_after="2025-06-08"> <owner>sinhak@chromium.org</owner> <owner>cros-lurs@google.com</owner> <summary>
diff --git a/tools/metrics/histograms/metadata/magic_stack/histograms.xml b/tools/metrics/histograms/metadata/magic_stack/histograms.xml index 50febdc..43f96f9 100644 --- a/tools/metrics/histograms/metadata/magic_stack/histograms.xml +++ b/tools/metrics/histograms/metadata/magic_stack/histograms.xml
@@ -217,7 +217,7 @@ <histogram name="MagicStack.Clank.NewTabPage.{HostSurfaceState}.Module.{ModuleType}.Build" - enum="ModulePosition" expires_after="2025-03-30"> + enum="ModulePosition" expires_after="2025-06-08"> <owner>hanxi@chromium.org</owner> <owner>xinyiji@chromium.org</owner> <summary> @@ -231,7 +231,7 @@ <histogram name="MagicStack.Clank.NewTabPage.{HostSurfaceState}.Module.{ModuleType}.Click" - enum="ModulePosition" expires_after="2025-03-23"> + enum="ModulePosition" expires_after="2025-06-08"> <owner>hanxi@chromium.org</owner> <owner>xinyiji@chromium.org</owner> <summary>
diff --git a/tools/metrics/histograms/metadata/media/histograms.xml b/tools/metrics/histograms/metadata/media/histograms.xml index 84abc8c..d3447c1 100644 --- a/tools/metrics/histograms/metadata/media/histograms.xml +++ b/tools/metrics/histograms/metadata/media/histograms.xml
@@ -446,7 +446,7 @@ </histogram> <histogram name="Media.Android.GetColorSpaceError" enum="BooleanError" - expires_after="2025-03-30"> + expires_after="2025-06-08"> <owner>vasilyt@chromium.org</owner> <owner>liberato@chromium.org</owner> <owner>media-dev-uma@chromium.org</owner> @@ -968,7 +968,7 @@ </histogram> <histogram name="Media.Audio.OutputDeviceAuthorizationTime" units="ms" - expires_after="2025-03-30"> + expires_after="2025-06-08"> <owner>guidou@chromium.org</owner> <owner>olka@chromium.org</owner> <owner>webrtc-audio-uma@google.com</owner> @@ -1039,7 +1039,7 @@ </histogram> <histogram name="Media.Audio.Processing.CaptureDelayVarianceMs" - units="ms squared" expires_after="2025-03-30"> + units="ms squared" expires_after="2025-06-08"> <owner>saza@chromium.org</owner> <owner>olka@chromium.org</owner> <owner>webrtc-audio-uma@google.com</owner> @@ -1086,7 +1086,7 @@ </histogram> <histogram name="Media.Audio.Processing.TotalDelayVarianceMs" - units="ms squared" expires_after="2025-03-30"> + units="ms squared" expires_after="2025-06-08"> <owner>saza@chromium.org</owner> <owner>olka@chromium.org</owner> <owner>webrtc-audio-uma@google.com</owner> @@ -1325,7 +1325,7 @@ </histogram> <histogram name="Media.Audio.{Type}.EarlyGlitchDetected" enum="BooleanDetected" - expires_after="2025-03-30"> + expires_after="2025-06-08"> <owner>olka@chromium.org</owner> <owner>saza@chromium.org</owner> <owner>webrtc-audio-uma@google.com</owner> @@ -1363,7 +1363,7 @@ </histogram> <histogram name="Media.Audio.{Type}.LargestGlitchMs2" units="ms" - expires_after="2025-03-30"> + expires_after="2025-06-08"> <owner>olka@chromium.org</owner> <owner>saza@chromium.org</owner> <owner>webrtc-audio-uma@google.com</owner> @@ -1382,7 +1382,7 @@ </histogram> <histogram name="Media.Audio.{Type}.LostFramesInMs2" units="ms" - expires_after="2025-03-30"> + expires_after="2025-06-08"> <owner>olka@chromium.org</owner> <owner>saza@chromium.org</owner> <owner>webrtc-audio-uma@google.com</owner> @@ -1477,7 +1477,7 @@ </histogram> <histogram name="Media.AudioCapturerMissedReadDeadlineBelow10s" units="misses" - expires_after="2025-03-30"> + expires_after="2025-06-08"> <owner>fhernqvist@google.com</owner> <owner>olka@chromium.org</owner> <owner>webrtc-audio-uma@google.com</owner> @@ -1498,14 +1498,14 @@ </histogram> <histogram name="Media.AudioCodecProfile.AAC" enum="AudioCodecProfile" - expires_after="2025-04-06"> + expires_after="2025-06-08"> <owner>dalecurtis@chromium.org</owner> <owner>media-dev-uma@chromium.org</owner> <summary>Audio codec profile used in HTML5 media for AAC playback.</summary> </histogram> <histogram name="Media.AudioDeviceConnectionStatus.{AudioDeviceType}" - enum="AudioDeviceConnectionStatus" expires_after="2025-04-06"> + enum="AudioDeviceConnectionStatus" expires_after="2025-06-08"> <owner>iwells@chromium.org</owner> <owner>clank-readaloud@google.com</owner> <summary> @@ -1834,7 +1834,7 @@ </histogram> <histogram name="Media.AutoPictureInPicture.PromptResultV2" - enum="MediaAutoPictureInPicturePromptResult" expires_after="2025-04-05"> + enum="MediaAutoPictureInPicturePromptResult" expires_after="2025-06-08"> <owner>steimel@chromium.org</owner> <owner>media-dev-uma@chromium.org</owner> <summary> @@ -2019,7 +2019,7 @@ </histogram> <histogram name="Media.CrosGlobalMediaControls.PinAction" enum="BooleanPinned" - expires_after="2025-03-30"> + expires_after="2025-06-08"> <owner>jazzhsue@chromium.org</owner> <owner>media-dev-uma@chromium.org</owner> <summary> @@ -2040,7 +2040,7 @@ </histogram> <histogram name="Media.CrosGlobalMediaControls.RepeatUsageInQuickSetting" - enum="BooleanIsRepeat" expires_after="2025-03-30"> + enum="BooleanIsRepeat" expires_after="2025-06-08"> <owner>jazzhsue@chromium.org</owner> <owner>media-dev-uma@chromium.org</owner> <summary> @@ -2051,7 +2051,7 @@ </histogram> <histogram name="Media.CrosGlobalMediaControls.RepeatUsageOnShelf" - enum="BooleanIsRepeat" expires_after="2025-03-30"> + enum="BooleanIsRepeat" expires_after="2025-06-08"> <owner>jazzhsue@chromium.org</owner> <owner>media-dev-uma@chromium.org</owner> <summary> @@ -2801,7 +2801,7 @@ </histogram> <histogram name="Media.EME.MediaFoundationCdm.LoadErrorCode" - enum="WinGetLastError" expires_after="2025-02-27"> + enum="WinGetLastError" expires_after="2025-06-08"> <owner>sangbaekpark@chromium.org</owner> <owner>media-dev-uma@chromium.org</owner> <summary> @@ -2839,7 +2839,7 @@ <histogram name="Media.EME.MediaFoundationCdm.Widevine.HardwareSecure.Initialize" - enum="Hresult" expires_after="2025-02-27"> + enum="Hresult" expires_after="2025-06-08"> <owner>xhwang@chromium.org</owner> <owner>media-dev-uma@chromium.org</owner> <summary> @@ -3604,7 +3604,7 @@ </histogram> <histogram name="Media.GlobalMediaControls.MediaItemUIUpdatedViewAction" - enum="MediaItemUIUpdatedViewAction" expires_after="2025-04-01"> + enum="MediaItemUIUpdatedViewAction" expires_after="2025-06-08"> <owner>yrw@chromium.org</owner> <owner>media-dev-uma@chromium.org</owner> <summary> @@ -4290,7 +4290,7 @@ </histogram> <histogram name="Media.MediaRecorder.Codec" enum="MediaRecorderCodec" - expires_after="2025-03-02"> + expires_after="2025-06-08"> <owner>clarissagarvey@chromium.org</owner> <owner>mcasas@chromium.org</owner> <summary> @@ -4594,7 +4594,7 @@ </histogram> <histogram name="Media.MojoVideoDecoder.ActiveInstances" units="units" - expires_after="2025-03-30"> + expires_after="2025-06-08"> <owner>sandersd@chromium.org</owner> <owner>media-dev-uma@chromium.org</owner> <summary> @@ -4733,7 +4733,7 @@ </histogram> <histogram name="Media.Notification.Cast.Count" units="count" - expires_after="2025-04-06"> + expires_after="2025-06-08"> <owner>muyaoxu@google.com</owner> <owner>openscreen-eng@google.com</owner> <owner>media-dev-uma@chromium.org</owner> @@ -4757,7 +4757,7 @@ </histogram> <histogram name="Media.Notification.Count" units="count" - expires_after="2025-04-06"> + expires_after="2025-06-08"> <owner>yrw@chromium.org</owner> <owner>media-dev-uma@chromium.org</owner> <summary> @@ -4778,7 +4778,7 @@ </histogram> <histogram name="Media.Notification.Source" enum="MediaNotificationSource" - expires_after="2025-04-06"> + expires_after="2025-06-08"> <owner>yrw@chromium.org</owner> <owner>media-dev-uma@chromium.org</owner> <summary> @@ -4789,7 +4789,7 @@ </histogram> <histogram name="Media.Notification.UserAction" enum="MediaSessionAction" - expires_after="2025-04-06"> + expires_after="2025-06-08"> <owner>yrw@chromium.org</owner> <owner>media-dev-uma@chromium.org</owner> <summary> @@ -5029,7 +5029,7 @@ </histogram> <histogram name="Media.Remoting.Compatibility" enum="RemotingCompatibility" - expires_after="2025-04-06"> + expires_after="2025-06-08"> <owner>muyaoxu@google.com</owner> <owner>openscreen-eng@google.com</owner> <summary> @@ -5152,7 +5152,7 @@ </histogram> <histogram name="Media.Remoting.VideoPixelRateSupport" - enum="RemotingVideoPixelRateSupport" expires_after="2025-04-06"> + enum="RemotingVideoPixelRateSupport" expires_after="2025-06-08"> <owner>muyaoxu@google.com</owner> <owner>openscreen-eng@google.com</owner> <summary> @@ -5700,7 +5700,7 @@ </histogram> <histogram name="Media.Ui.GetDisplayMedia.{Flow}.DialogDuration" units="ms" - expires_after="2025-03-30"> + expires_after="2025-06-08"> <owner>tovep@chromium.org</owner> <owner>eladalon@chromium.org</owner> <summary> @@ -6218,7 +6218,7 @@ </histogram> <histogram name="Media.VideoCapture.Start" enum="Boolean" - expires_after="2025-03-30"> + expires_after="2025-06-08"> <owner>toprice@chromium.org</owner> <owner>guidou@chromium.org</owner> <summary> @@ -6251,7 +6251,7 @@ </histogram> <histogram name="Media.VideoCapture.StartSourceSuccessLatency" units="ms" - expires_after="2025-03-30"> + expires_after="2025-06-08"> <owner>herre@google.com</owner> <owner>video-cmi-apis@google.com</owner> <summary> @@ -6956,7 +6956,7 @@ </histogram> <histogram name="MediaPreviews.UI.DeviceSelection.PageInfo.Camera.NumDevices" - units="devices" expires_after="2025-04-01"> + units="devices" expires_after="2025-06-08"> <owner>bryantchandler@chromium.org</owner> <owner>openscreen-eng@google.com</owner> <summary> @@ -6981,7 +6981,7 @@ <histogram name="MediaPreviews.UI.DeviceSelection.Permissions.Camera.NumDevices" - units="devices" expires_after="2025-04-01"> + units="devices" expires_after="2025-06-08"> <owner>bryantchandler@chromium.org</owner> <owner>openscreen-eng@google.com</owner> <summary> @@ -6993,7 +6993,7 @@ </histogram> <histogram name="MediaPreviews.UI.DeviceSelection.Permissions.Mic.NumDevices" - units="devices" expires_after="2025-04-01"> + units="devices" expires_after="2025-06-08"> <owner>bryantchandler@chromium.org</owner> <owner>openscreen-eng@google.com</owner> <summary> @@ -7005,7 +7005,7 @@ </histogram> <histogram name="MediaPreviews.UI.DeviceSelection.{UiLocation}.{Type}.Action" - enum="MediaPreviewDeviceSelectionUserAction" expires_after="2025-04-01"> + enum="MediaPreviewDeviceSelectionUserAction" expires_after="2025-06-08"> <owner>ahmedmoussa@google.com</owner> <owner>openscreen-eng@google.com</owner> <summary> @@ -7023,7 +7023,7 @@ </histogram> <histogram name="MediaPreviews.UI.PageInfo.Camera.NumInUseDevices" - units="devices" expires_after="2025-04-01"> + units="devices" expires_after="2025-06-08"> <owner>bryantchandler@chromium.org</owner> <owner>openscreen-eng@google.com</owner> <summary> @@ -7032,7 +7032,7 @@ </histogram> <histogram name="MediaPreviews.UI.PageInfo.Camera.PixelHeight" units="pixels" - expires_after="2025-04-01"> + expires_after="2025-06-08"> <owner>bryantchandler@chromium.org</owner> <owner>openscreen-eng@google.com</owner> <summary> @@ -7052,7 +7052,7 @@ </histogram> <histogram name="MediaPreviews.UI.Permissions.Camera.PixelHeight" - units="pixels" expires_after="2025-04-01"> + units="pixels" expires_after="2025-06-08"> <owner>bryantchandler@chromium.org</owner> <owner>openscreen-eng@google.com</owner> <summary> @@ -7062,7 +7062,7 @@ </histogram> <histogram name="MediaPreviews.UI.Preview.{UiLocation}.Video.ActualFPS" - units="fps" expires_after="2025-04-01"> + units="fps" expires_after="2025-06-08"> <owner>bryantchandler@chromium.org</owner> <owner>openscreen-eng@google.com</owner> <summary> @@ -7090,7 +7090,7 @@ </histogram> <histogram name="MediaPreviews.UI.Preview.{UiLocation}.Video.ExpectedFPS" - units="fps" expires_after="2025-04-01"> + units="fps" expires_after="2025-06-08"> <owner>bryantchandler@chromium.org</owner> <owner>openscreen-eng@google.com</owner> <summary> @@ -7105,7 +7105,7 @@ </histogram> <histogram name="MediaPreviews.UI.Preview.{UiLocation}.Video.RenderedPercent" - units="%" expires_after="2025-04-01"> + units="%" expires_after="2025-06-08"> <owner>bryantchandler@chromium.org</owner> <owner>openscreen-eng@google.com</owner> <summary> @@ -7181,7 +7181,7 @@ </histogram> <histogram name="MediaPreviews.UI.{UiLocation}.{Type}.Duration" units="s" - expires_after="2025-04-01"> + expires_after="2025-06-08"> <owner>ahmedmoussa@google.com</owner> <owner>openscreen-eng@google.com</owner> <summary> @@ -7255,7 +7255,7 @@ </histogram> <histogram name="MediaRouter.Cast.Discovery.SinkSource" - enum="MediaRouterCastSinkSource" expires_after="2025-04-01"> + enum="MediaRouterCastSinkSource" expires_after="2025-06-08"> <owner>muyaoxu@google.com</owner> <owner>openscreen-eng@google.com</owner> <summary>The source of discovery for a newly-created Cast sink.</summary> @@ -7337,14 +7337,14 @@ </histogram> <histogram name="MediaRouter.CastStreaming.Session.Launch" units="ms" - expires_after="2025-03-30"> + expires_after="2025-06-08"> <owner>muyaoxu@google.com</owner> <owner>openscreen-eng@google.com</owner> <summary>Total time to launch a Cast Streaming mirror session.</summary> </histogram> <histogram name="MediaRouter.CastStreaming.Session.Length" units="ms" - expires_after="2025-03-30"> + expires_after="2025-06-08"> <owner>muyaoxu@google.com</owner> <owner>openscreen-eng@google.com</owner> <summary> @@ -7373,14 +7373,14 @@ </histogram> <histogram name="MediaRouter.CastStreaming.Session.Length.Screen" units="ms" - expires_after="2025-03-30"> + expires_after="2025-06-08"> <owner>muyaoxu@google.com</owner> <owner>openscreen-eng@google.com</owner> <summary>Total length of a Cast Streaming Screen mirror session.</summary> </histogram> <histogram name="MediaRouter.CastStreaming.Session.Length.Tab" units="ms" - expires_after="2025-03-30"> + expires_after="2025-06-08"> <owner>muyaoxu@google.com</owner> <owner>openscreen-eng@google.com</owner> <summary> @@ -7673,7 +7673,7 @@ </histogram> <histogram name="MediaRouter.Ui.Device.Count" units="units" - expires_after="2025-03-30"> + expires_after="2025-06-08"> <owner>muyaoxu@google.com</owner> <owner>openscreen-eng@google.com</owner> <summary> @@ -7706,7 +7706,7 @@ </histogram> <histogram name="MediaRouter.Ui.PermissionRejectedViewAction" - enum="MediaRouterUiPermissionRejectedViewEvents" expires_after="2025-04-06"> + enum="MediaRouterUiPermissionRejectedViewEvents" expires_after="2025-06-08"> <owner>muyaoxu@google.com</owner> <owner>openscreen-eng@google.com</owner> <summary> @@ -7731,7 +7731,7 @@ </histogram> <histogram name="MediaRouter.WiredDisplay.AvailableDevicesCount" units="units" - expires_after="2025-04-06"> + expires_after="2025-06-08"> <owner>muyaoxu@google.com</owner> <owner>openscreen-eng@google.com</owner> <summary>
diff --git a/tools/metrics/histograms/metadata/memory/histograms.xml b/tools/metrics/histograms/metadata/memory/histograms.xml index c4d8241..969a05a 100644 --- a/tools/metrics/histograms/metadata/memory/histograms.xml +++ b/tools/metrics/histograms/metadata/memory/histograms.xml
@@ -226,7 +226,7 @@ </histogram> <histogram name="Memory.Browser.MemoryFootprint.Inactive" units="MB" - expires_after="2025-03-30"> + expires_after="2025-06-08"> <owner>justincohen@chromium.org</owner> <owner>bling-fundamentals@google.com</owner> <summary> @@ -254,7 +254,7 @@ </histogram> <histogram name="Memory.Browser.MemoryFootprint.OnBackground" units="MiB" - expires_after="2025-04-06"> + expires_after="2025-06-08"> <owner>justincohen@chromium.org</owner> <owner>bling-fundamentals@google.com</owner> <summary> @@ -532,7 +532,7 @@ </histogram> <histogram base="true" name="Memory.Experimental.Extension2.Small" units="KB" - expires_after="2025-03-23"> + expires_after="2025-06-08"> <!-- Name completed by histogram_suffixes name="ProcessMemoryAllocatorSmall2" --> <owner>erikchen@chromium.org</owner> @@ -1592,7 +1592,7 @@ </histogram> <histogram name="Memory.PartitionAlloc.PartitionRoot.ExtrasSize" units="bytes" - expires_after="2025-02-10"> + expires_after="2025-06-08"> <owner>keishi@chromium.org</owner> <owner>kdlee@chromium.org</owner> <summary> @@ -1655,7 +1655,7 @@ </histogram> <histogram name="Memory.PreFreeze2{Process}.Vulkan.{Timing}" units="MiB" - expires_after="2025-04-06"> + expires_after="2025-06-08"> <owner>thiabaud@google.com</owner> <owner>lizeb@google.com</owner> <summary> @@ -1938,7 +1938,7 @@ </histogram> <histogram name="Memory.StackSamplingProfiler.StackSampleSize2" units="KB" - expires_after="2025-03-30"> + expires_after="2025-06-08"> <owner>iby@chromium.org</owner> <owner>chromeos-data-eng@google.com</owner> <summary>
diff --git a/tools/metrics/histograms/metadata/mobile/histograms.xml b/tools/metrics/histograms/metadata/mobile/histograms.xml index db86842e..060c777 100644 --- a/tools/metrics/histograms/metadata/mobile/histograms.xml +++ b/tools/metrics/histograms/metadata/mobile/histograms.xml
@@ -425,7 +425,7 @@ </histogram> <histogram name="Mobile.Messages.Translate.Modal.Event" - enum="MobileMessagesTranslateModalEvent" expires_after="2025-03-30"> + enum="MobileMessagesTranslateModalEvent" expires_after="2025-06-08"> <owner>ginnyhuang@chromium.org</owner> <owner>thegreenfrog@chromium.org</owner> <summary> @@ -491,7 +491,7 @@ </histogram> <histogram name="Mobile.Share.{EntryPoint}.Actions" enum="IOSShareAction" - expires_after="2025-03-30"> + expires_after="2025-06-08"> <owner>dimich@chromium.org</owner> <owner>bling-team@google.com</owner> <owner>chrome-with-friends-robots@google.com</owner> @@ -648,7 +648,7 @@ </histogram> <histogram name="Mobile.SystemNotification.Permission.Change" - enum="BooleanEnabled" expires_after="2025-03-30"> + enum="BooleanEnabled" expires_after="2025-06-08"> <owner>salg@google.com</owner> <owner>shaktisahu@chromium.org</owner> <summary> @@ -660,7 +660,7 @@ <histogram name="Mobile.SystemNotification.Permission.OneTapUnsubscribe.DuplicatePreUnsubscribeRealDelay" - units="ms" expires_after="2025-03-30"> + units="ms" expires_after="2025-06-08"> <owner>engedy@chromium.org</owner> <owner>peter@chromium.org</owner> <summary> @@ -677,7 +677,7 @@ <histogram name="Mobile.SystemNotification.Permission.OneTapUnsubscribe.IsDuplicatePreUnsubscribe" - enum="Boolean" expires_after="2025-03-30"> + enum="Boolean" expires_after="2025-06-08"> <owner>engedy@chromium.org</owner> <summary> Records whether the origin was already in the provisionally unsubscribed @@ -689,7 +689,7 @@ <histogram name="Mobile.SystemNotification.Permission.OneTapUnsubscribe.PreUnsubscribePreNativeDuration" - units="ms" expires_after="2025-03-30"> + units="ms" expires_after="2025-06-08"> <owner>engedy@chromium.org</owner> <owner>peter@chromium.org</owner> <summary> @@ -707,7 +707,7 @@ <histogram name="Mobile.SystemNotification.Permission.OneTapUnsubscribe.PreUnsubscribePreNativeRealDuration" - units="ms" expires_after="2025-03-30"> + units="ms" expires_after="2025-06-08"> <owner>engedy@chromium.org</owner> <owner>peter@chromium.org</owner> <summary> @@ -725,7 +725,7 @@ <histogram name="Mobile.SystemNotification.Permission.OneTapUnsubscribe.SuspendedNotificationCount" - units="notifications" expires_after="2025-03-30"> + units="notifications" expires_after="2025-06-08"> <owner>engedy@chromium.org</owner> <summary> Records the number of notifications that were suspended, each time the user @@ -736,7 +736,7 @@ <histogram name="Mobile.SystemNotification.Permission.OneTapUnsubscribe.WasGlobalStatePreserved.{ForAction}" - enum="Boolean" expires_after="2025-03-30"> + enum="Boolean" expires_after="2025-06-08"> <owner>engedy@chromium.org</owner> <summary> Records whether the Java global state was preserved between the @@ -999,7 +999,7 @@ </histogram> <histogram name="MobileFre.NativeInitialized" units="ms" - expires_after="2025-03-30"> + expires_after="2025-06-08"> <owner>skym@chromium.org</owner> <owner>wenyufu@chromium.org</owner> <summary>
diff --git a/tools/metrics/histograms/metadata/na_cl/histograms.xml b/tools/metrics/histograms/metadata/na_cl/histograms.xml index 54fa3f20..985b90e 100644 --- a/tools/metrics/histograms/metadata/na_cl/histograms.xml +++ b/tools/metrics/histograms/metadata/na_cl/histograms.xml
@@ -49,7 +49,7 @@ </histogram> <histogram name="NaCl.EmbedderType" enum="NaClEmbedderTypeEnum" - expires_after="2025-03-31"> + expires_after="2025-06-08"> <owner>dschuff@chromium.org</owner> <owner>fabiansommer@chromium.org</owner> <summary> @@ -183,7 +183,7 @@ </histogram> <histogram name="NaCl.Perf.PNaClCache.IsHit" enum="PNaClTranslationCacheEnum" - expires_after="2025-03-31"> + expires_after="2025-06-08"> <owner>dschuff@chromium.org</owner> <owner>fabiansommer@chromium.org</owner> <summary>
diff --git a/tools/metrics/histograms/metadata/navigation/histograms.xml b/tools/metrics/histograms/metadata/navigation/histograms.xml index fe4cfaf..ed904c1 100644 --- a/tools/metrics/histograms/metadata/navigation/histograms.xml +++ b/tools/metrics/histograms/metadata/navigation/histograms.xml
@@ -191,7 +191,7 @@ <histogram name="BackForwardCache.AllSites.HistoryNavigationOutcome.BlocklistedFeature" - enum="WebSchedulerTrackedFeature" expires_after="2025-03-30"> + enum="WebSchedulerTrackedFeature" expires_after="2025-06-08"> <owner>fergal@chromium.org</owner> <owner>bfcache-dev@chromium.org</owner> <summary> @@ -245,7 +245,7 @@ <histogram name="BackForwardCache.AllSites.HistoryNavigationOutcome.NotRestoredReason" - enum="BackForwardCacheNotRestoredReason" expires_after="2025-03-30"> + enum="BackForwardCacheNotRestoredReason" expires_after="2025-06-08"> <owner>fergal@chromium.org</owner> <owner>bfcache-dev@chromium.org</owner> <summary> @@ -287,7 +287,7 @@ </histogram> <histogram name="BackForwardCache.Eviction.TimeUntilProcessKilled" units="ms" - expires_after="2025-03-30"> + expires_after="2025-06-08"> <owner>fergal@chromium.org</owner> <owner>bfcache-dev@chromium.org</owner> <summary> @@ -355,7 +355,7 @@ </histogram> <histogram name="BackForwardCache.HistoryNavigationOutcome.BlocklistedFeature" - enum="WebSchedulerTrackedFeature" expires_after="2025-03-30"> + enum="WebSchedulerTrackedFeature" expires_after="2025-06-08"> <owner>fergal@chromium.org</owner> <owner>bfcache-dev@chromium.org</owner> <summary> @@ -391,7 +391,7 @@ <histogram name="BackForwardCache.HistoryNavigationOutcome.DisabledForRenderFrameHostReason2" enum="BackForwardCacheDisabledForRenderFrameHostReason2" - expires_after="2025-03-30"> + expires_after="2025-06-08"> <owner>fergal@chromium.org</owner> <owner>bfcache-dev@chromium.org</owner> <summary> @@ -852,7 +852,7 @@ </histogram> <histogram name="Navigation.DeferSpeculativeRFHAction" - enum="DeferSpeculativeRFHAction" expires_after="2025-03-30"> + enum="DeferSpeculativeRFHAction" expires_after="2025-06-08"> <owner>gjc@google.com</owner> <owner>rakina@chromium.org</owner> <owner>chrome-navigation@google.com</owner> @@ -1005,7 +1005,7 @@ </histogram> <histogram name="Navigation.FencedFrameAutomaticBeaconEventType" - enum="FencedFrameAutomaticBeaconEventType" expires_after="2025-04-06"> + enum="FencedFrameAutomaticBeaconEventType" expires_after="2025-06-08"> <owner>lbrady@google.com</owner> <owner>shivanisha@chromium.org</owner> <owner>chrome-fenced-frames-core@google.com</owner> @@ -1117,7 +1117,7 @@ </histogram> <histogram name="Navigation.GetFrameHostForNavigation" units="ms" - expires_after="2025-04-06"> + expires_after="2025-06-08"> <owner>rakina@chromium.org</owner> <owner>chrome-security-architecture@google.com</owner> <summary> @@ -1813,7 +1813,7 @@ </histogram> <histogram name="Navigation.QueueTime.{Method}.{FrameType}" units="ms" - expires_after="2025-03-30"> + expires_after="2025-06-08"> <owner>cduvall@chromium.org</owner> <owner>jam@chromium.org</owner> <summary> @@ -1846,7 +1846,7 @@ </histogram> <histogram name="Navigation.RegisterNavigationThrottlesTime.{FrameType}" - units="ms" expires_after="2025-04-06"> + units="ms" expires_after="2025-06-08"> <owner>sisidovski@chromium.org</owner> <owner>chrome-loading@google.com</owner> <summary> @@ -1870,7 +1870,7 @@ </histogram> <histogram name="Navigation.RendererCommitDelay.{FrameType}" units="ms" - expires_after="2025-03-23"> + expires_after="2025-06-08"> <owner>cduvall@chromium.org</owner> <owner>jam@chromium.org</owner> <summary> @@ -1885,7 +1885,7 @@ </histogram> <histogram name="Navigation.RendererCommitProcessWaitTime.{FrameType}" - units="ms" expires_after="2025-03-23"> + units="ms" expires_after="2025-06-08"> <owner>cduvall@chromium.org</owner> <owner>jam@chromium.org</owner> <summary> @@ -1901,7 +1901,7 @@ </histogram> <histogram name="Navigation.RendererCommitQueueTime.{FrameType}" units="ms" - expires_after="2025-03-23"> + expires_after="2025-06-08"> <owner>cduvall@chromium.org</owner> <owner>jam@chromium.org</owner> <summary> @@ -1929,7 +1929,7 @@ <histogram name="Navigation.RendererRunLoopStartToFirstCommitNavigation2.{FrameType}" - units="ms" expires_after="2025-03-23"> + units="ms" expires_after="2025-06-08"> <owner>chikamune@chromium.org</owner> <owner>chrome-loading@google.com</owner> <summary> @@ -2012,7 +2012,7 @@ </histogram> <histogram name="Navigation.RequiresDedicatedProcess" - enum="NavigationRequiresDedicatedProcess" expires_after="2025-03-21"> + enum="NavigationRequiresDedicatedProcess" expires_after="2025-06-08"> <owner>alexmos@chromium.org</owner> <owner>lukasza@chromium.org</owner> <summary> @@ -2035,7 +2035,7 @@ </histogram> <histogram name="Navigation.SameDocumentNavigationWithScreenshot" - enum="Boolean" expires_after="2025-04-06"> + enum="Boolean" expires_after="2025-06-08"> <owner>khushalsagar@chromium.org</owner> <owner>liuwilliam@chromium.org</owner> <summary> @@ -2364,7 +2364,7 @@ <histogram name="Navigation.{InitiatorType}.WastedSpeculativeRFH.CrossOriginIsolationDiffers" - enum="Boolean" expires_after="2025-03-01"> + enum="Boolean" expires_after="2025-06-08"> <owner>rakina@chromium.org</owner> <owner>chrome-security-architecture@google.com</owner> <summary> @@ -2402,7 +2402,7 @@ <histogram name="Navigation.{InitiatorType}.WastedSpeculativeRFH.ReplacementRFHCreatedNewProcess" - enum="Boolean" expires_after="2025-03-01"> + enum="Boolean" expires_after="2025-06-08"> <owner>rakina@chromium.org</owner> <owner>chrome-security-architecture@google.com</owner> <summary> @@ -2422,7 +2422,7 @@ <histogram name="Navigation.{InitiatorType}.WastedSpeculativeRFH.WastedRFHLikelyCreatedNewProcess" - enum="Boolean" expires_after="2025-03-01"> + enum="Boolean" expires_after="2025-06-08"> <owner>rakina@chromium.org</owner> <owner>chrome-security-architecture@google.com</owner> <summary> @@ -2441,7 +2441,7 @@ </histogram> <histogram name="Navigation.{InitiatorType}.WastedSpeculativeRFHCase" - enum="WastedSpeculativeRFHCase" expires_after="2025-03-01"> + enum="WastedSpeculativeRFHCase" expires_after="2025-06-08"> <owner>rakina@chromium.org</owner> <owner>chrome-security-architecture@google.com</owner> <summary> @@ -2457,7 +2457,7 @@ </histogram> <histogram name="Navigation.{Stage}.{FrameType}" units="ms" - expires_after="2025-03-30"> + expires_after="2025-06-08"> <owner>cduvall@chromium.org</owner> <owner>sisidovski@chromium.org</owner> <owner>chrome-loading@google.com</owner> @@ -2481,7 +2481,7 @@ </histogram> <histogram name="Navigation.{Stage}ToCompositorCreation" units="ms" - expires_after="2025-03-30"> + expires_after="2025-06-08"> <owner>rakina@chromium.org</owner> <owner>bfcache-dev@chromium.org</owner> <summary> @@ -2506,7 +2506,7 @@ </histogram> <histogram name="NavigationSuggestion.Event2" enum="NavigationSuggestionEvent" - expires_after="2025-04-06"> + expires_after="2025-06-08"> <owner>meacer@chromium.org</owner> <owner>chrome-secure-web-and-net@chromium.org</owner> <summary> @@ -2523,7 +2523,7 @@ </histogram> <histogram name="NavigationSuggestion.Event2.Incognito" - enum="NavigationSuggestionEvent" expires_after="2025-04-06"> + enum="NavigationSuggestionEvent" expires_after="2025-06-08"> <owner>meacer@chromium.org</owner> <owner>chrome-secure-web-and-net@chromium.org</owner> <summary> @@ -2696,7 +2696,7 @@ <histogram name="Prerender.Experimental.ActivationIPCDelay{PreloadingTriggerType}" - units="ms" expires_after="2025-04-06"> + units="ms" expires_after="2025-06-08"> <owner>lingqi@chromium.org</owner> <owner>chrome-prerendering@google.com</owner> <summary>
diff --git a/tools/metrics/histograms/metadata/net/histograms.xml b/tools/metrics/histograms/metadata/net/histograms.xml index 9f717ff..19f2a4e 100644 --- a/tools/metrics/histograms/metadata/net/histograms.xml +++ b/tools/metrics/histograms/metadata/net/histograms.xml
@@ -234,7 +234,7 @@ </histogram> <histogram name="Crypto.TPMSupport2" enum="TPMSupport" - expires_after="2025-03-30"> + expires_after="2025-06-08"> <owner>agl@chromium.org</owner> <owner>davidben@chromium.org</owner> <owner>wfh@chromium.org</owner> @@ -283,7 +283,7 @@ <histogram name="Crypto.UnexportableKeys.BackgroundTaskQueueWaitDuration{Priority}" - units="ms" expires_after="2025-03-30"> + units="ms" expires_after="2025-06-08"> <owner>alexilin@chromium.org</owner> <owner>kristianm@chromium.org</owner> <summary> @@ -308,7 +308,7 @@ </histogram> <histogram name="Crypto.UnexportableKeys.BackgroundTaskResult{TaskType}" - enum="UnexportableKeyServiceResult" expires_after="2025-03-30"> + enum="UnexportableKeyServiceResult" expires_after="2025-06-08"> <owner>alexilin@chromium.org</owner> <owner>kristianm@chromium.org</owner> <summary> @@ -1105,7 +1105,7 @@ </histogram> <histogram name="Net.DNS.DnsTask.AdditionalHttps.Requested" - enum="UnsolicitedHttpsRecordStatus" expires_after="2025-03-09"> + enum="UnsolicitedHttpsRecordStatus" expires_after="2025-06-08"> <owner>awillia@chromium.org</owner> <owner>src/net/dns/OWNERS</owner> <summary> @@ -1138,7 +1138,7 @@ </histogram> <histogram name="Net.DNS.DnsTask.SvcbHttpsTransactionError" - enum="DNS.SvcbHttpsTransactionError" expires_after="2025-03-30"> + enum="DNS.SvcbHttpsTransactionError" expires_after="2025-06-08"> <owner>horo@chromium.org</owner> <owner>src/net/OWNERS</owner> <summary> @@ -1352,7 +1352,7 @@ </histogram> <histogram name="Net.DNS.HostCache.Erase{HostType}" enum="EraseReason" - expires_after="2025-03-02"> + expires_after="2025-06-08"> <owner>suzukikeita@chromium.org</owner> <owner>blink-network-stack@google.com</owner> <summary> @@ -1388,7 +1388,7 @@ </histogram> <histogram name="Net.DNS.HostCache.Lookup{HostType}" enum="LookupOutcome" - expires_after="2025-03-02"> + expires_after="2025-06-08"> <owner>suzukikeita@chromium.org</owner> <owner>blink-network-stack@google.com</owner> <summary> @@ -1704,7 +1704,7 @@ </histogram> <histogram name="Net.DNS.SystemTask.FailureTime" units="ms" - expires_after="2025-03-30"> + expires_after="2025-06-08"> <owner>horo@chromium.org</owner> <owner>src/net/OWNERS</owner> <summary> @@ -1715,7 +1715,7 @@ </histogram> <histogram name="Net.DNS.SystemTask.SuccessTime" units="ms" - expires_after="2025-03-30"> + expires_after="2025-06-08"> <owner>horo@chromium.org</owner> <owner>src/net/OWNERS</owner> <summary> @@ -1958,7 +1958,7 @@ </histogram> <histogram name="Net.HttpJob.BytesReceived2" units="bytes" - expires_after="2025-03-30"> + expires_after="2025-06-08"> <owner>ashleynewson@chromium.org</owner> <owner>src/android_webview/OWNERS</owner> <summary> @@ -1976,7 +1976,7 @@ </histogram> <histogram name="Net.HttpJob.BytesSent2" units="bytes" - expires_after="2025-03-30"> + expires_after="2025-06-08"> <owner>ashleynewson@chromium.org</owner> <owner>src/android_webview/OWNERS</owner> <summary> @@ -1991,7 +1991,7 @@ </histogram> <histogram name="Net.HttpJob.IpProtection.AllowListMatch.BytesReceived2" - units="bytes" expires_after="2025-03-30"> + units="bytes" expires_after="2025-06-08"> <owner>ashleynewson@chromium.org</owner> <owner>src/android_webview/OWNERS</owner> <summary> @@ -2026,7 +2026,7 @@ </histogram> <histogram name="Net.HttpJob.IpProtection.AllowListMatch.BytesSent2" - units="bytes" expires_after="2025-03-30"> + units="bytes" expires_after="2025-06-08"> <owner>ashleynewson@chromium.org</owner> <owner>src/android_webview/OWNERS</owner> <summary> @@ -2680,7 +2680,7 @@ </histogram> <histogram name="Net.PreconnectHSTSUpgradesUrl" - enum="HSTSRedirectUpgradeReason" expires_after="2025-04-06"> + enum="HSTSRedirectUpgradeReason" expires_after="2025-06-08"> <owner>bingler@chromium.org</owner> <owner>net-dev@chromium.org</owner> <summary> @@ -5116,7 +5116,7 @@ </histogram> <histogram name="Net.RestrictedCookieManager.CookiePartitionKeyOK" - enum="Boolean" expires_after="2025-03-30"> + enum="Boolean" expires_after="2025-06-08"> <owner>dylancutler@google.com</owner> <owner>src/net/cookies/OWNERS</owner> <summary> @@ -5130,7 +5130,7 @@ </histogram> <histogram name="Net.RestrictedCookieManager.GetCookiesString.Count30Seconds" - units="IPCs" expires_after="2025-03-30"> + units="IPCs" expires_after="2025-06-08"> <owner>carlscab@google.com</owner> <owner>olivierli@chromium.org</owner> <owner>woa-performance@google.com</owner> @@ -5557,7 +5557,7 @@ </histogram> <histogram name="Net.SpdySession.AlpsAcceptChEntries" enum="AcceptChEntries" - expires_after="2025-03-30"> + expires_after="2025-06-08"> <owner>bnc@chromium.org</owner> <owner>src/net/OWNERS</owner> <summary> @@ -5569,7 +5569,7 @@ </histogram> <histogram name="Net.SpdySession.AlpsDecoderStatus" enum="AlpsDecoderError" - expires_after="2025-03-30"> + expires_after="2025-06-08"> <owner>bnc@chromium.org</owner> <owner>src/net/OWNERS</owner> <summary> @@ -5592,7 +5592,7 @@ </histogram> <histogram name="Net.SpdySession.AlpsSettingParameterCount" units="parameters" - expires_after="2025-03-30"> + expires_after="2025-06-08"> <owner>bnc@chromium.org</owner> <owner>src/net/OWNERS</owner> <summary> @@ -5746,7 +5746,7 @@ </histogram> <histogram name="Net.SSL_Connection_Error_ECH" enum="NetErrorCodes" - expires_after="2025-04-06"> + expires_after="2025-06-08"> <owner>davidben@chromium.org</owner> <owner>trusty-transport@chromium.org</owner> <summary> @@ -6181,7 +6181,7 @@ </histogram> <histogram name="Net.WebSocket.ProtocolHeaderSize" units="bytes" - expires_after="2025-04-06"> + expires_after="2025-06-08"> <owner>ricea@chromium.org</owner> <owner>blink-network-stack@google.com</owner> <summary> @@ -6266,7 +6266,7 @@ <histogram name="Net.{ProtocolType}.GoogleSearch.SessionCreationInitiator{Used}" - enum="MultiplexedSessionCreationInitiator" expires_after="2025-03-02"> + enum="MultiplexedSessionCreationInitiator" expires_after="2025-06-08"> <owner>suzukikeita@chromium.org</owner> <owner>blink-network-stack@google.com</owner> <summary>
diff --git a/tools/metrics/histograms/metadata/network/histograms.xml b/tools/metrics/histograms/metadata/network/histograms.xml index 5c8a02f..9a8c607 100644 --- a/tools/metrics/histograms/metadata/network/histograms.xml +++ b/tools/metrics/histograms/metadata/network/histograms.xml
@@ -429,7 +429,7 @@ </histogram> <histogram name="Network.Ash.Cellular.ESim.PolicyInstall.NoAvailableProfiles" - enum="ESimPolicyInstallMethod" expires_after="2025-02-20"> + enum="ESimPolicyInstallMethod" expires_after="2025-06-08"> <owner>chadduffin@chromium.org</owner> <owner>cros-device-enablement@google.com</owner> <summary> @@ -622,7 +622,7 @@ </histogram> <histogram name="Network.Ash.Hotspot.SetConfig.OperationResult" - enum="HotspotSetConfigResult" expires_after="2025-02-20"> + enum="HotspotSetConfigResult" expires_after="2025-06-08"> <owner>jiajunz@google.com</owner> <owner>cros-device-enablement@google.com</owner> <summary> @@ -1817,7 +1817,7 @@ </histogram> <histogram name="Network.DnsProxy.Query.Failed{Stage}Duration" units="ms" - expires_after="2025-03-23"> + expires_after="2025-06-08"> <owner>garrick@chromium.org</owner> <owner>cros-network-metrics@google.com</owner> <summary> @@ -1904,7 +1904,7 @@ </histogram> <histogram name="Network.DnsProxy.{ProcessType}.Event" - enum="DnsProxy.ProcessEvent" expires_after="2025-03-23"> + enum="DnsProxy.ProcessEvent" expires_after="2025-06-08"> <owner>garrick@chromium.org</owner> <owner>cros-network-metrics@google.com</owner> <summary> @@ -2298,7 +2298,7 @@ </histogram> <histogram name="Network.SharedDictionary.CreateZstdSourceStreamWithDictionary" - units="microseconds" expires_after="2025-03-09"> + units="microseconds" expires_after="2025-06-08"> <owner>horo@chromium.org</owner> <owner>blink-network-stack@google.com</owner> <summary> @@ -2431,7 +2431,7 @@ </histogram> <histogram name="Network.Shill.Cellular.ConnectResult.{ApnType}" - enum="PlatformCellularConnectResult" expires_after="2025-03-30"> + enum="PlatformCellularConnectResult" expires_after="2025-06-08"> <owner>danielwinkler@google.com</owner> <owner>cros-network-metrics@google.com</owner> <summary> @@ -2465,7 +2465,7 @@ </histogram> <histogram name="Network.Shill.Cellular.EntitlementCheck" - enum="NetworkCellularEntitlementCheck" expires_after="2025-03-30"> + enum="NetworkCellularEntitlementCheck" expires_after="2025-06-08"> <owner>andrewlassalle@chromium.org</owner> <owner>cros-network-metrics@google.com</owner> <summary> @@ -3395,7 +3395,7 @@ </histogram> <histogram name="Network.Shill.Vpn.{VPNType}.IPv6IncludedRoutesLargestPrefix" - units="units" expires_after="2025-02-20"> + units="units" expires_after="2025-06-08"> <owner>jiejiang@chromium.org</owner> <owner>cros-device-enablement@google.com</owner> <owner>cros-network-metrics@google.com</owner> @@ -4994,7 +4994,7 @@ </histogram> <histogram name="NetworkService.IpProtection.GeoChangeTokenPresence" - enum="BooleanAvailable" expires_after="2025-02-09"> + enum="BooleanAvailable" expires_after="2025-06-08"> <owner>abhipatel@chromium.org</owner> <owner>src/chrome/browser/ip_protection/OWNERS</owner> <summary> @@ -5021,7 +5021,7 @@ </histogram> <histogram name="NetworkService.IpProtection.GetAuthTokenResult" - enum="BooleanSuccess" expires_after="2025-03-30"> + enum="BooleanSuccess" expires_after="2025-06-08"> <owner>djmitche@chromium.org</owner> <owner>ashleynewson@chromium.org</owner> <owner>src/android_webview/OWNERS</owner> @@ -5035,7 +5035,7 @@ </histogram> <histogram name="NetworkService.IpProtection.GetAuthTokenResultForGeo" - enum="IpProtectionGetAuthTokenResultForGeo" expires_after="2025-02-09"> + enum="IpProtectionGetAuthTokenResultForGeo" expires_after="2025-06-08"> <owner>abhipatel@chromium.org</owner> <owner>src/chrome/browser/ip_protection/OWNERS</owner> <summary> @@ -5118,7 +5118,7 @@ </histogram> <histogram name="NetworkService.IpProtection.ProxyAllowList.UpdateProcessTime" - units="ms" expires_after="2025-03-30"> + units="ms" expires_after="2025-06-08"> <owner>aakallam@chromium.org</owner> <owner>abhijithnair@chromium.org</owner> <owner>src/android_webview/OWNERS</owner> @@ -5131,7 +5131,7 @@ </histogram> <histogram name="NetworkService.IpProtection.ProxyAllowList.UpdateSuccess" - enum="BooleanSuccess" expires_after="2025-03-30"> + enum="BooleanSuccess" expires_after="2025-06-08"> <owner>aakallam@chromium.org</owner> <owner>abhijithnair@chromium.org</owner> <owner>src/android_webview/OWNERS</owner> @@ -5144,7 +5144,7 @@ </histogram> <histogram name="NetworkService.IpProtection.ProxyChainFallback" - enum="IpProtectionProxyChainId" expires_after="2025-03-30"> + enum="IpProtectionProxyChainId" expires_after="2025-06-08"> <owner>djmitche@chromium.org</owner> <owner>ashleynewson@chromium.org</owner> <owner>src/android_webview/OWNERS</owner> @@ -5343,7 +5343,7 @@ <histogram name="NetworkService.MaskedDomainList.NetworkServiceProxyAllowList.EstimatedMemoryUsageInKB" - units="KB" expires_after="2025-03-30"> + units="KB" expires_after="2025-06-08"> <owner>aakallam@chromium.org</owner> <owner>src/chrome/browser/ip_protection/OWNERS</owner> <summary> @@ -5353,7 +5353,7 @@ </histogram> <histogram name="NetworkService.MaskedDomainList.SizeInKB" units="KB" - expires_after="2025-03-30"> + expires_after="2025-06-08"> <owner>aakallam@chromium.org</owner> <owner>src/chrome/browser/ip_protection/OWNERS</owner> <summary> @@ -5499,7 +5499,7 @@ </histogram> <histogram name="NetworkService.TimeToGrantSharedDictionaryAccess" units="ms" - expires_after="2025-03-30"> + expires_after="2025-06-08"> <owner>horo@chromium.org</owner> <owner>src/net/extras/shared_dictionary/OWNERS</owner> <summary>
diff --git a/tools/metrics/histograms/metadata/new_tab_page/histograms.xml b/tools/metrics/histograms/metadata/new_tab_page/histograms.xml index 619132bc..da0afc620 100644 --- a/tools/metrics/histograms/metadata/new_tab_page/histograms.xml +++ b/tools/metrics/histograms/metadata/new_tab_page/histograms.xml
@@ -117,7 +117,7 @@ </histogram> <histogram name="NewTabPage.BackgroundService.Images.Headers.StatusCode" - units="HttpResponseCode" expires_after="2025-03-30"> + units="HttpResponseCode" expires_after="2025-06-08"> <owner>danpeng@google.com</owner> <owner>pauladedeji@google.com</owner> <owner>chrome-desktop-ntp@google.com</owner> @@ -947,7 +947,7 @@ </histogram> <histogram name="NewTabPage.MostVisited.DeciScore.{TileIndex}.Local" - units="deciscore" expires_after="2025-04-06"> + units="deciscore" expires_after="2025-06-08"> <owner>fredmello@chromium.org</owner> <owner>huangs@chromium.org</owner> <summary> @@ -1120,7 +1120,7 @@ </histogram> <histogram name="NewTabPage.Promos.MobilePromo.Dismiss" units="count" - expires_after="2025-03-31"> + expires_after="2025-06-08"> <owner>rkgibson@google.com</owner> <owner>bling-mony-pod@google.com</owner> <owner>chrome-desktop-ntp@google.com</owner> @@ -1131,7 +1131,7 @@ </histogram> <histogram name="NewTabPage.Promos.MobilePromo.DismissUndone" units="count" - expires_after="2025-03-31"> + expires_after="2025-06-08"> <owner>rkgibson@google.com</owner> <owner>bling-mony-pod@google.com</owner> <owner>chrome-desktop-ntp@google.com</owner> @@ -1142,7 +1142,7 @@ </histogram> <histogram name="NewTabPage.Promos.MobilePromo.Displayed" units="count" - expires_after="2025-03-31"> + expires_after="2025-06-08"> <owner>rkgibson@google.com</owner> <owner>bling-mony-pod@google.com</owner> <owner>chrome-desktop-ntp@google.com</owner> @@ -1155,7 +1155,7 @@ <histogram name="NewTabPage.Promos.MobilePromo.SegmentationPlatformQuery.{ResponseStatus}.Duration" - units="ms" expires_after="2025-03-31"> + units="ms" expires_after="2025-06-08"> <owner>rkgibson@google.com</owner> <owner>bling-mony-pod@google.com</owner> <owner>chrome-desktop-ntp@google.com</owner> @@ -1224,7 +1224,7 @@ </histogram> <histogram name="NewTabPage.SearchResumptionModule.Show" - enum="SearchResumptionModule.ModuleShowStatus" expires_after="2025-04-06"> + enum="SearchResumptionModule.ModuleShowStatus" expires_after="2025-06-08"> <owner>hanxi@chromium.org</owner> <owner>xinyiji@chromium.org</owner> <summary> @@ -1377,7 +1377,7 @@ </histogram> <histogram name="NewTabPage.TabResumption.VisitDismissIndex" units="index" - expires_after="2025-04-06"> + expires_after="2025-06-08"> <owner>mfacey@google.com</owner> <owner>romanarora@google.com</owner> <owner>chrome-desktop-ntp@google.com</owner>
diff --git a/tools/metrics/histograms/metadata/omnibox/histograms.xml b/tools/metrics/histograms/metadata/omnibox/histograms.xml index d3565b8..27395f2 100644 --- a/tools/metrics/histograms/metadata/omnibox/histograms.xml +++ b/tools/metrics/histograms/metadata/omnibox/histograms.xml
@@ -1662,7 +1662,7 @@ </histogram> <histogram name="Omnibox.SearchSuggest.Requests" - enum="SearchSuggestRequestEvent" expires_after="2025-03-30"> + enum="SearchSuggestRequestEvent" expires_after="2025-06-08"> <owner>mpearson@chromium.org</owner> <owner>jdonnelly@chromium.org</owner> <owner>cch@chromium.org</owner> @@ -1673,7 +1673,7 @@ </histogram> <histogram name="Omnibox.Shortcuts.NumberOfDuplicatesPerShortcutIterated" - units="matches" expires_after="2025-04-06"> + units="matches" expires_after="2025-06-08"> <owner>manukh@chromium.org</owner> <owner>chrome-omnibox-team@google.com</owner> <summary> @@ -2020,7 +2020,7 @@ <histogram name="Omnibox.SuggestionUsed.URL.Experimental.NavigationToFirstMeaningfulPaint" - units="ms" expires_after="2025-03-30"> + units="ms" expires_after="2025-06-08"> <owner>jdonnelly@chromium.org</owner> <owner>mpearson@chromium.org</owner> <owner>chrome-omnibox-team@google.com</owner> @@ -2090,7 +2090,7 @@ </histogram> <histogram name="Omnibox.SuggestRequestsSent" enum="SuggestRequestType" - expires_after="2025-04-06"> + expires_after="2025-06-08"> <owner>mahmadi@chromium.org</owner> <owner>chrome-omnibox-team@google.com</owner> <summary>
diff --git a/tools/metrics/histograms/metadata/oobe/histograms.xml b/tools/metrics/histograms/metadata/oobe/histograms.xml index 671ed9f..10b426ca 100644 --- a/tools/metrics/histograms/metadata/oobe/histograms.xml +++ b/tools/metrics/histograms/metadata/oobe/histograms.xml
@@ -470,7 +470,7 @@ </variants> <histogram name="OOBE.BootToOOBECompleted.{CompletedOobeFlowType}" units="ms" - expires_after="2025-03-30"> + expires_after="2025-06-08"> <owner>osamafathy@chromium.org</owner> <owner>cros-oobe@google.com</owner> <summary> @@ -485,7 +485,7 @@ </histogram> <histogram name="OOBE.BootToSignInCompleted" units="ms" - expires_after="2025-03-30"> + expires_after="2025-06-08"> <owner>alemate@chromium.org</owner> <owner>rsorokin@chromium.org</owner> <owner>cros-oac@google.com</owner> @@ -604,7 +604,7 @@ </histogram> <histogram name="OOBE.ConsolidatedConsentScreen.UserActions" - enum="ConsolidatedConsentScreenUserAction" expires_after="2025-03-30"> + enum="ConsolidatedConsentScreenUserAction" expires_after="2025-06-08"> <owner>osamafathy@google.com</owner> <owner>cros-oobe@google.com</owner> <summary> @@ -646,7 +646,7 @@ </histogram> <histogram name="OOBE.ConsumerUpdateScreen.IsMandatory" enum="Boolean" - expires_after="2025-03-30"> + expires_after="2025-06-08"> <owner>osamafathy@google.com</owner> <owner>cros-oobe@google.com</owner> <summary> @@ -658,7 +658,7 @@ </histogram> <histogram name="OOBE.ConsumerUpdateScreen.IsOptionalUpdateSkipped" - enum="Boolean" expires_after="2025-03-30"> + enum="Boolean" expires_after="2025-06-08"> <owner>osamafathy@google.com</owner> <owner>cros-oobe@google.com</owner> <summary> @@ -668,7 +668,7 @@ </histogram> <histogram name="OOBE.ConsumerUpdateScreen.SkipReason" - enum="OobeConsumerUpdateScreenSkippedReason" expires_after="2025-03-30"> + enum="OobeConsumerUpdateScreenSkippedReason" expires_after="2025-06-08"> <owner>osamafathy@google.com</owner> <owner>cros-oobe@google.com</owner> <summary> @@ -746,7 +746,7 @@ </summary> </histogram> -<histogram name="OOBE.GaiaLoginTime" units="ms" expires_after="2025-03-30"> +<histogram name="OOBE.GaiaLoginTime" units="ms" expires_after="2025-06-08"> <owner>dkuzmin@google.com</owner> <owner>cros-oac@google.com</owner> <summary> @@ -767,7 +767,7 @@ </histogram> <histogram name="OOBE.GaiaScreen.LoginRequests" enum="GaiaLoginVariant" - expires_after="2025-03-30"> + expires_after="2025-06-08"> <owner>dkuzmin@google.com</owner> <owner>rsorokin@google.com</owner> <owner>cros-oobe@google.com</owner> @@ -804,7 +804,7 @@ </histogram> <histogram name="OOBE.GaiaScreen.SuccessLoginRequests" enum="GaiaLoginVariant" - expires_after="2025-03-30"> + expires_after="2025-06-08"> <owner>dkuzmin@google.com</owner> <owner>rsorokin@google.com</owner> <owner>cros-oobe@google.com</owner> @@ -923,7 +923,7 @@ <histogram name="OOBE.MarketingOptInScreen.BackendConnector.{OOBEMarketingCountry}" - enum="MarketingOptInBackendConnectorEvent" expires_after="2025-03-30"> + enum="MarketingOptInBackendConnectorEvent" expires_after="2025-06-08"> <owner>dkuzmin@google.com</owner> <owner>cros-oobe@google.com</owner> <summary> @@ -936,7 +936,7 @@ </histogram> <histogram name="OOBE.MarketingOptInScreen.Event.{OOBEMarketingCountry}" - enum="MarketingOptInScreenEvent" expires_after="2025-04-06"> + enum="MarketingOptInScreenEvent" expires_after="2025-06-08"> <owner>dkuzmin@google.com</owner> <owner>cros-oobe@google.com</owner> <summary> @@ -1117,7 +1117,7 @@ </histogram> <histogram name="OOBE.PerksDiscoveryScreen.SelectedPerksPercentage" units="%" - expires_after="2025-04-06"> + expires_after="2025-06-08"> <owner>bchikhaoui@google.com</owner> <owner>bohdanty@google.com</owner> <owner>cros-oobe@google.com</owner> @@ -1139,7 +1139,7 @@ </histogram> <histogram name="OOBE.PersonalizedAppsScreen.SelectedAppIDs" units="appID" - expires_after="2025-04-06"> + expires_after="2025-06-08"> <owner>bohdanty@google.com</owner> <owner>cros-oobe@google.com</owner> <summary> @@ -1151,7 +1151,7 @@ <histogram name="OOBE.PersonalizedAppsScreen.SelectedAppsCount.{PersonalizedAppsType}" - units="apps" expires_after="2025-04-06"> + units="apps" expires_after="2025-06-08"> <owner>bohdanty@google.com</owner> <owner>cros-oobe@google.com</owner> <summary> @@ -1226,7 +1226,7 @@ </histogram> <histogram name="OOBE.RecommendApps.Screen.SelectedAppCount" units="apps" - expires_after="2025-03-30"> + expires_after="2025-06-08"> <owner>dkuzmin@google.com</owner> <owner>cros-oac@google.com</owner> <owner>chromesky-eng@google.com</owner> @@ -1315,7 +1315,7 @@ </histogram> <histogram name="OOBE.StepShownStatus.Multidevice-setup-screen.Skipped" - enum="OobeMultideviceScreenSkippedReason" expires_after="2025-03-30"> + enum="OobeMultideviceScreenSkippedReason" expires_after="2025-06-08"> <owner>bhartmire@google.com</owner> <owner>chromeos-cross-device-eng@google.com</owner> <summary> @@ -1472,7 +1472,7 @@ </histogram> <histogram name="OOBE.ThemeSelectionScreen.SelectedTheme" enum="SelectedTheme" - expires_after="2025-03-01"> + expires_after="2025-06-08"> <owner>osamafathy@google.com</owner> <owner>cros-oobe@google.com</owner> <summary> @@ -1482,7 +1482,7 @@ </histogram> <histogram name="OOBE.UpdateScreen.CheckTimeout" enum="Boolean" - expires_after="2025-03-01"> + expires_after="2025-06-08"> <owner>bchikhaoui@google.com</owner> <owner>cros-oobe@google.com</owner> <summary>Indicate if update screen exit with update check timeout.</summary> @@ -1511,7 +1511,7 @@ </histogram> <histogram name="OOBE.VersionUpdater.UpdateCheckDuration" units="ms" - expires_after="2025-02-10"> + expires_after="2025-06-08"> <owner>bchikhaoui@google.com</owner> <owner>cros-oobe@google.com</owner> <summary> @@ -1521,7 +1521,7 @@ </histogram> <histogram name="OOBE.VersionUpdater.UpdateCheckRetriesCount" units="retries" - expires_after="2025-02-10"> + expires_after="2025-06-08"> <owner>bchikhaoui@google.com</owner> <owner>cros-oobe@google.com</owner> <summary> @@ -1532,7 +1532,7 @@ <histogram name="OOBE.VersionUpdater.UpdateEngineOperation.{UpdateEngineOperationType}" - enum="UpdateEngineOperation" expires_after="2025-02-10"> + enum="UpdateEngineOperation" expires_after="2025-06-08"> <owner>bchikhaoui@google.com</owner> <owner>cros-oobe@google.com</owner> <summary> @@ -1590,7 +1590,7 @@ </histogram> <histogram name="OOBE.WelcomeScreen.AcceptChromeVoxHint" enum="BooleanEnabled" - expires_after="2025-03-30"> + expires_after="2025-06-08"> <owner>akihiroota@google.com</owner> <owner>cros-oac@google.com</owner> <summary>
diff --git a/tools/metrics/histograms/metadata/optimization/histograms.xml b/tools/metrics/histograms/metadata/optimization/histograms.xml index 91ebb5a..b9b1ca0 100644 --- a/tools/metrics/histograms/metadata/optimization/histograms.xml +++ b/tools/metrics/histograms/metadata/optimization/histograms.xml
@@ -448,7 +448,7 @@ <histogram name="OptimizationGuide.HintsFetcher.GetHintsRequest.FetchLatency.{RequestContext}" - units="ms" expires_after="2025-03-30"> + units="ms" expires_after="2025-06-08"> <owner>sophiechang@chromium.org</owner> <owner>mcrouse@chromium.org</owner> <summary> @@ -504,7 +504,7 @@ <histogram name="OptimizationGuide.HintsFetcher.GetHintsRequest.RequestStatus.{RequestContext}" - enum="OptimizationGuideFetcherRequestStatus" expires_after="2025-03-30"> + enum="OptimizationGuideFetcherRequestStatus" expires_after="2025-06-08"> <owner>mcrouse@chromium.org</owner> <owner>sophiechang@chromium.org</owner> <summary> @@ -609,7 +609,7 @@ </histogram> <histogram name="OptimizationGuide.IsPredictionModelValid.{OptimizationTarget}" - enum="BooleanValid" expires_after="2025-03-30"> + enum="BooleanValid" expires_after="2025-06-08"> <owner>mcrouse@chromium.org</owner> <owner>sophiechang@chromium.org</owner> <summary> @@ -645,7 +645,7 @@ <histogram name="OptimizationGuide.ModelExecution.FeatureCurrentlyEnabledResult.{ModelExecutionFeature}" - enum="FeatureCurrentlyEnabledResult" expires_after="2025-03-30"> + enum="FeatureCurrentlyEnabledResult" expires_after="2025-06-08"> <owner>tbansal@chromium.org</owner> <owner>sophiechang@chromium.org</owner> <summary> @@ -657,7 +657,7 @@ <histogram name="OptimizationGuide.ModelExecution.FeatureEnabledAtSettingsChange.{ModelExecutionFeature}" - enum="Boolean" expires_after="2025-03-30"> + enum="Boolean" expires_after="2025-06-08"> <owner>rajendrant@chromium.org</owner> <owner>sophiechang@chromium.org</owner> <summary> @@ -669,7 +669,7 @@ <histogram name="OptimizationGuide.ModelExecution.FeatureEnabledAtStartup.{ModelExecutionFeature}" - enum="Boolean" expires_after="2025-03-30"> + enum="Boolean" expires_after="2025-06-08"> <owner>rajendrant@chromium.org</owner> <owner>sophiechang@chromium.org</owner> <summary> @@ -718,7 +718,7 @@ <histogram name="OptimizationGuide.ModelExecution.OnDeviceContextTokensProcessed.{ModelExecutionFeature}" - units="tokens" expires_after="2025-02-16"> + units="tokens" expires_after="2025-06-08"> <owner>cduvall@chromium.org</owner> <owner>sophiechang@chromium.org</owner> <summary> @@ -905,7 +905,7 @@ <histogram name="OptimizationGuide.ModelExecution.OnDeviceResponseCompleteTime.{ModelExecutionFeature}" - units="ms" expires_after="2025-06-05"> + units="ms" expires_after="2025-06-08"> <owner>cduvall@chromium.org</owner> <owner>sophiechang@chromium.org</owner> <summary> @@ -954,7 +954,7 @@ <histogram name="OptimizationGuide.ModelExecution.Result.{ModelExecutionFeature}" - enum="Boolean" expires_after="2025-03-30"> + enum="Boolean" expires_after="2025-06-08"> <owner>rajendrant@chromium.org</owner> <owner>sophiechang@chromium.org</owner> <summary> @@ -966,7 +966,7 @@ <histogram name="OptimizationGuide.ModelExecution.ServerError.{ModelExecutionFeature}" - enum="OptimizationGuideModelExecutionError" expires_after="2025-03-30"> + enum="OptimizationGuideModelExecutionError" expires_after="2025-06-08"> <owner>rajendrant@chromium.org</owner> <owner>sophiechang@chromium.org</owner> <summary> @@ -979,7 +979,7 @@ <histogram name="OptimizationGuide.ModelExecution.SessionUsedRemoteExecution.{ModelExecutionFeature}" - enum="Boolean" expires_after="2025-03-30"> + enum="Boolean" expires_after="2025-06-08"> <owner>sophiechang@chromium.org</owner> <owner>rajendrant@chromium.org</owner> <summary> @@ -991,7 +991,7 @@ <histogram name="OptimizationGuide.ModelExecution.SettingsVisibilityResult.{ModelExecutionFeature}" - enum="FeaturesSettingsVisibilityResult" expires_after="2025-03-30"> + enum="FeaturesSettingsVisibilityResult" expires_after="2025-06-08"> <owner>tbansal@chromium.org</owner> <owner>sophiechang@chromium.org</owner> <summary> @@ -1017,7 +1017,7 @@ <histogram name="OptimizationGuide.ModelExecutionFetcher.FetchLatency.{ModelExecutionFeature}" - units="ms" expires_after="2025-03-30"> + units="ms" expires_after="2025-06-08"> <owner>sophiechang@chromium.org</owner> <owner>rajendrant@chromium.org</owner> <summary> @@ -1029,7 +1029,7 @@ </histogram> <histogram name="OptimizationGuide.ModelExecutionFetcher.NetErrorCode" - enum="NetErrorCodes" expires_after="2025-03-30"> + enum="NetErrorCodes" expires_after="2025-06-08"> <owner>sophiechang@chromium.org</owner> <owner>rajendrant@chromium.org</owner> <summary> @@ -1052,7 +1052,7 @@ </histogram> <histogram name="OptimizationGuide.ModelExecutionFetcher.Status" - enum="HttpResponseCode" expires_after="2025-03-30"> + enum="HttpResponseCode" expires_after="2025-06-08"> <owner>sophiechang@chromium.org</owner> <owner>rajendrant@chromium.org</owner> <summary> @@ -1076,7 +1076,7 @@ <histogram name="OptimizationGuide.ModelExecutor.ExecutionLatency.{OptimizationTarget}" - units="ms" expires_after="2025-03-30"> + units="ms" expires_after="2025-06-08"> <owner>mcrouse@chromium.org</owner> <owner>chrome-intelligence-core@google.com</owner> <summary> @@ -1090,7 +1090,7 @@ <histogram name="OptimizationGuide.ModelExecutor.ExecutionStatus.{OptimizationTarget}" - enum="OptimizationGuideExecutionStatus" expires_after="2025-03-30"> + enum="OptimizationGuideExecutionStatus" expires_after="2025-06-08"> <owner>robertogden@chromium.org</owner> <owner>chrome-intelligence-core@google.com</owner> <summary> @@ -1120,7 +1120,7 @@ <histogram name="OptimizationGuide.ModelExecutor.ExecutionThreadTimeMicroseconds.{OptimizationTarget}" - units="microseconds" expires_after="2025-03-23"> + units="microseconds" expires_after="2025-06-08"> <owner>sophiechang@chromium.org</owner> <owner>chrome-intelligence-core@google.com</owner> <summary> @@ -1134,7 +1134,7 @@ <histogram name="OptimizationGuide.ModelExecutor.ModelAvailableToLoad.{OptimizationTarget}" - enum="BooleanAvailable" expires_after="2025-03-30"> + enum="BooleanAvailable" expires_after="2025-06-08"> <owner>robertogden@chromium.org</owner> <owner>chrome-intelligence-core@google.com</owner> <summary> @@ -1236,7 +1236,7 @@ <histogram name="OptimizationGuide.ModelHandler.HandlerCreatedToModelAvailable.{OptimizationTarget}" - units="ms" expires_after="2025-03-30"> + units="ms" expires_after="2025-06-08"> <owner>sophiechang@chromium.org</owner> <owner>chrome-intelligence-core@google.com</owner> <summary> @@ -1249,7 +1249,7 @@ <histogram name="OptimizationGuide.ModelQuality.UserFeedback.{ModelExecutionFeature}" - enum="OptimizationGuideUserFeedback" expires_after="2025-03-30"> + enum="OptimizationGuideUserFeedback" expires_after="2025-06-08"> <owner>sophiechang@chromium.org</owner> <owner>sreejakshetty@chromium.org</owner> <summary> @@ -1271,7 +1271,7 @@ </histogram> <histogram name="OptimizationGuide.ModelQualityLogsUploaderService.Status" - enum="HttpResponseCode" expires_after="2025-04-06"> + enum="HttpResponseCode" expires_after="2025-06-08"> <owner>sophiechang@chromium.org</owner> <owner>sreejakshetty@chromium.org</owner> <summary> @@ -1295,7 +1295,7 @@ </histogram> <histogram name="OptimizationGuide.OptimizationFilterStatus.{OptimizationType}" - enum="OptimizationGuideOptimizationFilterStatus" expires_after="2025-03-30"> + enum="OptimizationGuideOptimizationFilterStatus" expires_after="2025-06-08"> <owner>mcrouse@chromium.org</owner> <owner>sophiechang@chromium.org</owner> <summary> @@ -1307,7 +1307,7 @@ </histogram> <histogram name="OptimizationGuide.OptimizationHintsComponent.MajorVersion2" - units="major version number" expires_after="M135"> + units="major version number" expires_after="2025-06-08"> <owner>sophiechang@chromium.org</owner> <owner>mcrouse@chromium.org</owner> <summary> @@ -1570,7 +1570,7 @@ <histogram name="OptimizationGuide.PredictionManager.ModelAvailableAtRegistration.{OptimizationTarget}" - enum="BooleanAvailable" expires_after="2025-03-30"> + enum="BooleanAvailable" expires_after="2025-06-08"> <owner>sophiechang@chromium.org</owner> <owner>mcrouse@chromium.org</owner> <summary> @@ -1663,7 +1663,7 @@ <histogram name="OptimizationGuide.PredictionModelDownloadManager.State.{OptimizationTarget}" enum="OptimizationGuidePredictionModelDownloadState" - expires_after="2025-03-30"> + expires_after="2025-06-08"> <owner>rajendrant@chromium.org</owner> <owner>sophiechang@chromium.org</owner> <summary> @@ -1746,7 +1746,7 @@ <histogram name="OptimizationGuide.PredictionModelFetcher.GetModelsResponse.Status.{OptimizationTarget}" - enum="HttpResponseCode" expires_after="2025-03-30"> + enum="HttpResponseCode" expires_after="2025-06-08"> <owner>mcrouse@chromium.org</owner> <owner>sophiechang@chromium.org</owner> <summary> @@ -1762,7 +1762,7 @@ <histogram name="OptimizationGuide.PredictionModelLoadedVersion.{OptimizationTarget}" - units="version number" expires_after="2025-03-30"> + units="version number" expires_after="2025-06-08"> <owner>mcrouse@chromium.org</owner> <owner>sophiechang@chromium.org</owner> <summary> @@ -1786,7 +1786,7 @@ <histogram name="OptimizationGuide.PredictionModelStore.ModelCount.{OptimizationTarget}" - units="counts" expires_after="2025-03-30"> + units="counts" expires_after="2025-06-08"> <owner>sophiechang@chromium.org</owner> <owner>rajendrant@chromium.org</owner> <summary> @@ -1822,7 +1822,7 @@ <histogram name="OptimizationGuide.PredictionModelStore.TotalDirectorySize.{OptimizationTarget}" - units="MB" expires_after="2025-03-30"> + units="MB" expires_after="2025-06-08"> <owner>sophiechang@chromium.org</owner> <owner>rajendrant@chromium.org</owner> <summary> @@ -1834,7 +1834,7 @@ <histogram name="OptimizationGuide.PredictionModelUpdateVersion.{OptimizationTarget}" - units="version number" expires_after="2025-03-30"> + units="version number" expires_after="2025-06-08"> <owner>mcrouse@chromium.org</owner> <owner>sophiechang@chromium.org</owner> <summary>
diff --git a/tools/metrics/histograms/metadata/others/histograms.xml b/tools/metrics/histograms/metadata/others/histograms.xml index 95058c6b..8f18329 100644 --- a/tools/metrics/histograms/metadata/others/histograms.xml +++ b/tools/metrics/histograms/metadata/others/histograms.xml
@@ -507,7 +507,7 @@ </histogram> <histogram name="Ads.InterestGroup.AtAuctionTotalSize.{Type}" units="KB" - expires_after="2025-03-23"> + expires_after="2025-06-08"> <owner>caraitto@chromium.org</owner> <owner>pauljensen@chromium.org</owner> <owner>privacy-sandbox-dev@chromium.org</owner> @@ -609,7 +609,7 @@ <histogram name="Ads.InterestGroup.Auction.BidderWorkletIsolateUsedHeapSizeKilobytes" - units="KB" expires_after="2025-04-06"> + units="KB" expires_after="2025-06-08"> <owner>abigailkatcoff@google.com</owner> <owner>privacy-sandbox-dev@chromium.org</owner> <summary> @@ -1206,7 +1206,7 @@ </histogram> <histogram name="Ads.InterestGroup.Auction.ReportWinTime" units="ms" - expires_after="2025-03-02"> + expires_after="2025-06-08"> <owner>qingxinwu@google.com</owner> <owner>privacy-sandbox-dev@chromium.org</owner> <summary> @@ -2551,7 +2551,7 @@ </histogram> <histogram name="BootTime.BrowserLaunchedAfterTPMOwn-Start" units="ms" - expires_after="2025-03-30"> + expires_after="2025-06-08"> <owner>alemate@chromium.org</owner> <owner>xiyuan@chromium.org</owner> <owner>cros-sw-perf@google.com</owner> @@ -2664,7 +2664,7 @@ </histogram> <histogram name="BootTime.OnAuthSuccessAfterLoginStarted" units="ms" - expires_after="2025-03-30"> + expires_after="2025-06-08"> <owner>alemate@chromium.org</owner> <owner>xiyuan@chromium.org</owner> <owner>cros-sw-perf@google.com</owner> @@ -2706,7 +2706,7 @@ </histogram> <histogram name="BootTime.TPMOwn-StartAfterUserProfileGotten" units="ms" - expires_after="2025-03-30"> + expires_after="2025-06-08"> <owner>alemate@chromium.org</owner> <owner>xiyuan@chromium.org</owner> <owner>cros-sw-perf@google.com</owner> @@ -2717,7 +2717,7 @@ </histogram> <histogram name="BootTime.UserProfileGottenAfterAuthSuccess" units="ms" - expires_after="2025-03-30"> + expires_after="2025-06-08"> <owner>alemate@chromium.org</owner> <owner>xiyuan@chromium.org</owner> <owner>cros-sw-perf@google.com</owner> @@ -3935,7 +3935,7 @@ </histogram> <histogram name="Drive.PushNotificationInitiallyEnabled" enum="BooleanEnabled" - expires_after="2025-03-30"> + expires_after="2025-06-08"> <owner>simmonsjosh@google.com</owner> <owner>src/ui/file_manager/OWNERS</owner> <summary> @@ -4669,7 +4669,7 @@ </histogram> <histogram name="Feedback.RedactionTool" enum="PIIType" - expires_after="2025-03-30"> + expires_after="2025-06-08"> <owner>nikj@google.com</owner> <owner>dpchromeos-core-eng@google.com</owner> <summary> @@ -4679,7 +4679,7 @@ </histogram> <histogram name="Feedback.RedactionTool.Caller" enum="RedactionToolCaller" - expires_after="2025-03-30"> + expires_after="2025-06-08"> <owner>rohkap@google.com</owner> <owner>dpchromeos-core-eng@google.com</owner> <summary> @@ -4705,7 +4705,7 @@ </histogram> <histogram name="Feedback.RedactionTool.TimeSpentRedacting" units="ms" - expires_after="2025-03-30"> + expires_after="2025-06-08"> <owner>cschlosser@chromium.org</owner> <owner>dpchromeos-core-eng@google.com</owner> <summary> @@ -4717,7 +4717,7 @@ </histogram> <histogram name="Feedback.RedactionTool.TimeSpentRedactingCrash" units="ms" - expires_after="2025-03-30"> + expires_after="2025-06-08"> <owner>cschlosser@chromium.org</owner> <owner>dpchromeos-core-eng@google.com</owner> <summary> @@ -4788,7 +4788,7 @@ </histogram> <histogram name="Feedback.TrustSafetySentiment.TriggerOccurred" - enum="TrustSafetySentimentFeatureArea" expires_after="2025-02-10"> + enum="TrustSafetySentimentFeatureArea" expires_after="2025-06-08"> <owner>sauski@google.com</owner> <owner>chrome-hats-eng@google.com</owner> <summary> @@ -5142,7 +5142,7 @@ </histogram> <histogram name="FirstRun.Sentinel.Created" enum="FirstRunSentinelResult" - expires_after="2025-04-01"> + expires_after="2025-06-08"> <owner>jlebel@chromium.org</owner> <owner>chrome-signin-team@google.com</owner> <summary> @@ -5271,7 +5271,7 @@ </histogram> <histogram name="Gamepad.KnownGamepadConnectedWithId" - enum="GamepadVendorProduct" expires_after="2025-03-30"> + enum="GamepadVendorProduct" expires_after="2025-06-08"> <owner>mattreynolds@chromium.org</owner> <owner>deviceapi-team@google.com</owner> <summary> @@ -5515,7 +5515,7 @@ </histogram> <histogram name="ImportantFile.FileReplaceResult{ImportantFileClients}" - enum="ImportantFileReplaceResult" expires_after="2025-03-09"> + enum="ImportantFileReplaceResult" expires_after="2025-06-08"> <owner>etienneb@chromium.org</owner> <owner>joenotcharles@chromium.org</owner> <summary> @@ -5540,7 +5540,7 @@ </histogram> <histogram name="ImportantFile.FileReplaceRetryCount2{ImportantFileClients}" - units="attempt count" expires_after="2025-03-09"> + units="attempt count" expires_after="2025-06-08"> <owner>etienneb@chromium.org</owner> <owner>joenotcharles@chromium.org</owner> <summary> @@ -5583,7 +5583,7 @@ <histogram name="Incognito.ClearBrowsingDataDialog.ActionType" enum="IncognitoClearBrowsingDataDialogActionType" - expires_after="2025-03-30"> + expires_after="2025-06-08"> <owner>roagarwal@chromium.org</owner> <owner>chrome-incognito@google.com</owner> <summary> @@ -5757,7 +5757,7 @@ </histogram> <histogram name="LoadingPredictor.IsSlowNetwork" enum="Boolean" - expires_after="2025-04-06"> + expires_after="2025-06-08"> <owner>chikamune@chromium.org</owner> <owner>chrome-loading@google.com</owner> <summary> @@ -6336,7 +6336,7 @@ </histogram> <histogram name="NQE.RTT.Error.IsZero" enum="Boolean" - expires_after="2025-04-06"> + expires_after="2025-06-08"> <owner>yyanagisawa@chromium.org</owner> <owner>chrome-loading@google.com</owner> <summary> @@ -6345,7 +6345,7 @@ </summary> </histogram> -<histogram name="NQE.RTT.Error.Negative" units="ms" expires_after="2025-04-06"> +<histogram name="NQE.RTT.Error.Negative" units="ms" expires_after="2025-06-08"> <owner>yyanagisawa@chromium.org</owner> <owner>chrome-loading@google.com</owner> <summary> @@ -6354,7 +6354,7 @@ </summary> </histogram> -<histogram name="NQE.RTT.Error.Positive" units="ms" expires_after="2025-04-06"> +<histogram name="NQE.RTT.Error.Positive" units="ms" expires_after="2025-06-08"> <owner>yyanagisawa@chromium.org</owner> <owner>chrome-loading@google.com</owner> <summary> @@ -6364,7 +6364,7 @@ </histogram> <histogram name="NQE.RTT.HittingThreshold.{Category}.FallbackSuccess" - enum="Boolean" expires_after="2025-04-06"> + enum="Boolean" expires_after="2025-06-08"> <owner>yyanagisawa@chromium.org</owner> <owner>chrome-loading@google.com</owner> <summary> @@ -6385,7 +6385,7 @@ </histogram> <histogram name="NQE.RTT.ObservationBufferLifeTime2.{Category}" units="ms" - expires_after="2025-04-06"> + expires_after="2025-06-08"> <owner>yyanagisawa@chromium.org</owner> <owner>chrome-loading@google.com</owner> <summary> @@ -6440,7 +6440,7 @@ </histogram> <histogram name="NQE.TransportRTT.OnECTComputation" units="ms" - expires_after="2025-03-30"> + expires_after="2025-06-08"> <owner>yyanagisawa@chromium.org</owner> <owner>chrome-loading@google.com</owner> <summary> @@ -7279,7 +7279,7 @@ </histogram> <histogram name="PageImageService.Android.SalientImageUrlFetchResult{ClientId}" - enum="SalientImageUrlFetchResult" expires_after="2025-03-23"> + enum="SalientImageUrlFetchResult" expires_after="2025-06-08"> <owner>hanxi@google.com</owner> <owner>huangs@google.com</owner> <owner>wylieb@google.com</owner> @@ -7320,7 +7320,7 @@ </histogram> <histogram name="PageImageService.Backend{ClientId}" - enum="PageImageServiceBackend" expires_after="2025-03-09"> + enum="PageImageServiceBackend" expires_after="2025-06-08"> <owner>wylieb@chromium.org</owner> <owner>chrome-journeys@google.com</owner> <component>1457319</component> @@ -7383,7 +7383,7 @@ </histogram> <histogram name="PaintHolding.InputTiming4" enum="PaintHoldingInputTiming" - expires_after="2025-03-02"> + expires_after="2025-06-08"> <owner>pdr@chromium.org</owner> <owner>paint-dev@chromium.org</owner> <summary> @@ -7848,7 +7848,7 @@ </histogram> <histogram name="ReadingList.WebUI.LoadCompletedTime" units="ms" - expires_after="2025-03-30"> + expires_after="2025-06-08"> <owner>corising@chromium.org</owner> <owner>chrome-desktop-ui-sea@google.com</owner> <summary> @@ -8033,7 +8033,7 @@ </histogram> <histogram name="RenderViewContextMenu.OpenLinkAsProfile" enum="OpenLinkAs" - expires_after="2025-03-30"> + expires_after="2025-06-08"> <owner>gabolvr@google.com</owner> <owner>droger@chromium.org</owner> <summary> @@ -8148,7 +8148,7 @@ </histogram> <histogram name="ReportingAndNEL.UnresponsiveRenderer.CrashReportOutcome" - enum="CrashRepHandlingOutcome" expires_after="2025-03-30"> + enum="CrashRepHandlingOutcome" expires_after="2025-06-08"> <owner>iclelland@chromium.org</owner> <owner>issackjohn@microsoft.com</owner> <owner>src/net/reporting/OWNERS</owner> @@ -9110,7 +9110,7 @@ </histogram> <histogram name="SSORecallPromo.AccountsAvailable" units="units" - expires_after="2025-04-01"> + expires_after="2025-06-08"> <owner>jlebel@chromium.org</owner> <owner>chrome-signin-team@google.com</owner> <summary> @@ -9183,7 +9183,7 @@ </histogram> <histogram name="SubresourceWebBundles.LoadResult" - enum="SubresourceWebBundleLoadResult" expires_after="2025-04-01"> + enum="SubresourceWebBundleLoadResult" expires_after="2025-06-08"> <owner>hayato@chromium.org</owner> <owner>webpackage-dev@chromium.org</owner> <summary>The result of loading subresource web bundles.</summary> @@ -10148,7 +10148,7 @@ </histogram> <histogram name="VoiceInteraction.DismissedEventSource" - enum="VoiceInteractionEventSource" expires_after="2025-03-30"> + enum="VoiceInteractionEventSource" expires_after="2025-06-08"> <owner>basiaz@google.com</owner> <owner>chrome-language@google.com</owner> <summary> @@ -10170,7 +10170,7 @@ </histogram> <histogram name="VoiceInteraction.FinishEventSource" - enum="VoiceInteractionEventSource" expires_after="2025-03-30"> + enum="VoiceInteractionEventSource" expires_after="2025-06-08"> <owner>basiaz@google.com</owner> <owner>chrome-language@google.com</owner> <summary> @@ -10213,7 +10213,7 @@ </histogram> <histogram name="WebContentsObserver.{Method}{FrameType}" units="ms" - expires_after="2025-04-06"> + expires_after="2025-06-08"> <owner>cduvall@chromium.org</owner> <owner>sisidovski@chromium.org</owner> <owner>chrome-loading@google.com</owner>
diff --git a/tools/metrics/histograms/metadata/page/histograms.xml b/tools/metrics/histograms/metadata/page/histograms.xml index ad2067d..178e27d3 100644 --- a/tools/metrics/histograms/metadata/page/histograms.xml +++ b/tools/metrics/histograms/metadata/page/histograms.xml
@@ -284,7 +284,7 @@ </histogram> <histogram name="PageActionController.Icon.CTR2" enum="PageActionCTREvent" - expires_after="2025-03-30"> + expires_after="2025-06-08"> <owner>emshack@chromium.org</owner> <owner>chrome-desktop-ui-sea@google.com</owner> <summary> @@ -300,7 +300,7 @@ </histogram> <histogram name="PageActionController.Icon.NumberActionsShownWhenClicked" - units="actions" expires_after="2025-03-30"> + units="actions" expires_after="2025-06-08"> <owner>emshack@chromium.org</owner> <owner>chrome-desktop-ui-sea@google.com</owner> <summary> @@ -310,7 +310,7 @@ </histogram> <histogram name="PageActionController.NumberActionsShown2" units="actions" - expires_after="2025-03-30"> + expires_after="2025-06-08"> <owner>emshack@chromium.org</owner> <owner>chrome-desktop-ui-sea@google.com</owner> <summary> @@ -321,7 +321,7 @@ </histogram> <histogram name="PageActionController.PagesWithActionsShown2" - enum="PageActionPageEvent" expires_after="2025-03-30"> + enum="PageActionPageEvent" expires_after="2025-06-08"> <owner>emshack@chromium.org</owner> <owner>chrome-desktop-ui-sea@google.com</owner> <summary> @@ -977,7 +977,7 @@ <histogram name="PageLoad.Clients.GoogleHomepage.DomainLookupTiming.NavigationToDomainLookupEnd.{NavigationCountType}{BrowserInitializationStatus}" - units="ms" expires_after="2025-04-06"> + units="ms" expires_after="2025-06-08"> <owner>suzukikeita@chromium.org</owner> <owner>chrome-loading@google.com</owner> <summary> @@ -1017,7 +1017,7 @@ <histogram name="PageLoad.Clients.GoogleHomepage.NavigationTiming.NavigationToConnectStart.{NavigationCountType}{BrowserInitializationStatus}" - units="ms" expires_after="2025-04-06"> + units="ms" expires_after="2025-06-08"> <owner>suzukikeita@chromium.org</owner> <owner>chrome-loading@google.com</owner> <summary> @@ -1037,7 +1037,7 @@ <histogram name="PageLoad.Clients.GoogleHomepage.ParseTiming.NavigationToParseStart.{NavigationCountType}{BrowserInitializationStatus}" - units="ms" expires_after="2025-04-06"> + units="ms" expires_after="2025-06-08"> <owner>suzukikeita@chromium.org</owner> <owner>chrome-loading@google.com</owner> <summary> @@ -1476,7 +1476,7 @@ <histogram name="PageLoad.Clients.GoogleSearch.SyntheticResponse.AllHeadersExpected" - enum="Boolean" expires_after="2025-02-12"> + enum="Boolean" expires_after="2025-06-08"> <owner>sisidovski@chromium.org</owner> <owner>chrome-loading@google.com</owner> <summary> @@ -1915,7 +1915,7 @@ <histogram name="PageLoad.Clients.PrivacySandboxAds.InteractiveTiming.FirstInputDelay4.{PrivacySandboxAdsApi}" - units="ms" expires_after="2025-03-30"> + units="ms" expires_after="2025-06-08"> <owner>linnan@chromium.org</owner> <owner>johnidel@chromium.org</owner> <owner>measurement-api-dev+metrics@google.com</owner> @@ -1941,7 +1941,7 @@ <histogram name="PageLoad.Clients.PrivacySandboxAds.PaintTiming.NavigationToFirstContentfulPaint.{PrivacySandboxAdsApi}" - units="ms" expires_after="2025-03-30"> + units="ms" expires_after="2025-06-08"> <owner>linnan@chromium.org</owner> <owner>johnidel@chromium.org</owner> <owner>measurement-api-dev+metrics@google.com</owner> @@ -1954,7 +1954,7 @@ <histogram name="PageLoad.Clients.PrivacySandboxAds.PaintTiming.NavigationToLargestContentfulPaint2.{PrivacySandboxAdsApi}" - units="ms" expires_after="2025-03-30"> + units="ms" expires_after="2025-06-08"> <owner>linnan@chromium.org</owner> <owner>johnidel@chromium.org</owner> <owner>measurement-api-dev+metrics@google.com</owner> @@ -2057,7 +2057,7 @@ </histogram> <histogram name="PageLoad.Clients.ThirdParty.Origins.CookieRead2" units="Count" - expires_after="2025-03-30"> + expires_after="2025-06-08"> <owner>jkarlin@chromium.org</owner> <owner>yaoxia@chromium.org</owner> <summary> @@ -2188,7 +2188,7 @@ <histogram name="PageLoad.Clients.Zstd.PaintTiming.NavigationToFirstContentfulPaint" - units="ms" expires_after="2025-04-06"> + units="ms" expires_after="2025-06-08"> <owner>nidhijaju@chromium.org</owner> <owner>blink-network-stack@google.com</owner> <summary> @@ -2202,7 +2202,7 @@ <histogram name="PageLoad.Clients.Zstd.PaintTiming.NavigationToLargestContentfulPaint" - units="ms" expires_after="2025-04-06"> + units="ms" expires_after="2025-06-08"> <owner>nidhijaju@chromium.org</owner> <owner>blink-network-stack@google.com</owner> <summary> @@ -2230,7 +2230,7 @@ </histogram> <histogram name="PageLoad.Clients.{Origin}.{MetricName}" units="ms" - expires_after="2025-03-30"> + expires_after="2025-06-08"> <owner>chikamune@chromium.org</owner> <owner>loading-dev@chromium.org</owner> <summary>{MetricName}, but recorded only for {Origin} navigations.</summary> @@ -2254,7 +2254,7 @@ <histogram name="PageLoad.Clients{ObservedNavigation}.Leakage2.AbandonReasonAt.{NavigationMilestone}{BackgroundSuffix}{HiddenSuffix}{IncognitoSuffix}{RTTBucketSuffix}" - enum="NavigationAbandonReasonEnum" expires_after="2025-03-23"> + enum="NavigationAbandonReasonEnum" expires_after="2025-06-08"> <owner>rakina@chromium.org</owner> <owner>chrome-loading@google.com</owner> <summary> @@ -2275,7 +2275,7 @@ <histogram name="PageLoad.Clients{ObservedNavigation}.Leakage2.LastMilestoneBeforeAbandon{NavigationAbandonReason}{BackgroundSuffix}{HiddenSuffix}{IncognitoSuffix}{RTTBucketSuffix}" - enum="NavigationMilestoneEnum2" expires_after="2025-03-23"> + enum="NavigationMilestoneEnum2" expires_after="2025-06-08"> <owner>rakina@chromium.org</owner> <owner>chrome-loading@google.com</owner> <summary> @@ -2315,7 +2315,7 @@ <histogram name="PageLoad.Clients{ObservedNavigation}.Leakage2.NavigationStartTo{NavigationMilestone}{BackgroundSuffix}{HiddenSuffix}{IncognitoSuffix}{RTTBucketSuffix}" - units="ms" expires_after="2025-03-23"> + units="ms" expires_after="2025-06-08"> <owner>rakina@chromium.org</owner> <owner>chrome-loading@google.com</owner> <summary> @@ -2341,7 +2341,7 @@ <histogram name="PageLoad.Clients{ObservedNavigation}.Leakage2.NavigationStart{BackgroundSuffix}{HiddenSuffix}{IncognitoSuffix}{RTTBucketSuffix}" - units="ms" expires_after="2025-03-23"> + units="ms" expires_after="2025-06-08"> <owner>rakina@chromium.org</owner> <owner>chrome-loading@google.com</owner> <summary> @@ -2403,7 +2403,7 @@ <histogram name="PageLoad.Clients{ObservedNavigation}.Leakage2.TimeToAbandonFromNavigationStart.{NavigationMilestone}{BackgroundSuffix}{HiddenSuffix}{IncognitoSuffix}{RTTBucketSuffix}" - units="ms" expires_after="2025-03-23"> + units="ms" expires_after="2025-06-08"> <owner>sisidovski@chromium.org</owner> <owner>chrome-loading@google.com</owner> <summary> @@ -2750,7 +2750,7 @@ <histogram name="PageLoad.Experimental.NavigationTiming.NavigationStartToFirstResponseStart" - units="ms" expires_after="2025-02-10"> + units="ms" expires_after="2025-06-08"> <owner>nhiroki@chromium.org</owner> <owner>chrome-loading@google.com</owner> <summary> @@ -2801,7 +2801,7 @@ <histogram name="PageLoad.Experimental.PageTiming.NavigationToFirstSubresourceLoadStart" - units="ms" expires_after="2025-03-30"> + units="ms" expires_after="2025-06-08"> <owner>cduvall@chromium.org</owner> <owner>jam@chromium.org</owner> <summary> @@ -2812,7 +2812,7 @@ <histogram name="PageLoad.Experimental.PageTiming.ResourceLoadTime.{RequestDestination}" - units="ms" expires_after="2025-03-30"> + units="ms" expires_after="2025-06-08"> <owner>cduvall@chromium.org</owner> <owner>jam@chromium.org</owner> <summary> @@ -2850,7 +2850,7 @@ </histogram> <histogram name="PageLoad.Experimental.PageVisitType2" enum="PageVisitType" - expires_after="2025-03-30"> + expires_after="2025-06-08"> <owner>toyoshim@chromium.org</owner> <owner>chrome-prerendering@google.com</owner> <summary> @@ -3186,7 +3186,7 @@ </histogram> <histogram name="PageLoad.InteractiveTiming.FirstInputTimestamp4" units="ms" - expires_after="2025-03-09"> + expires_after="2025-06-08"> <owner>sullivan@chromium.org</owner> <owner>speed-metrics-dev@chromium.org</owner> <summary> @@ -3274,7 +3274,7 @@ </histogram> <histogram name="PageLoad.InteractiveTiming.TimeToNextPaint" units="ms" - expires_after="2025-03-30"> + expires_after="2025-06-08"> <owner>iclelland@chromium.org</owner> <owner>speed-metrics-dev@chromium.org</owner> <summary> @@ -3379,7 +3379,7 @@ <histogram name="PageLoad.Internal.PaintTiming.LargestContentfulPaint.ContentType" - enum="LargestContentType" expires_after="2025-03-30"> + enum="LargestContentType" expires_after="2025-06-08"> <owner>iclelland@chromium.org</owner> <owner>speed-metrics-dev@chromium.org</owner> <summary> @@ -3476,7 +3476,7 @@ </histogram> <histogram name="PageLoad.Internal.SuppressedEventsBeforeMissingFirstPaint" - enum="Boolean" expires_after="2025-03-30"> + enum="Boolean" expires_after="2025-06-08"> <owner>mustaq@chromium.org</owner> <owner>blink-interactions-team@google.com</owner> <summary> @@ -3486,7 +3486,7 @@ </histogram> <histogram name="PageLoad.Internal.SuppressedEventsCountBeforePaint3" - units="count" expires_after="2025-03-30"> + units="count" expires_after="2025-06-08"> <owner>mustaq@chromium.org</owner> <owner>blink-interactions-team@google.com</owner> <summary> @@ -3506,7 +3506,7 @@ </histogram> <histogram name="PageLoad.Internal.SuppressedEventsTimingBeforePaint3" - units="ms" expires_after="2025-03-30"> + units="ms" expires_after="2025-06-08"> <owner>mustaq@chromium.org</owner> <owner>blink-interactions-team@google.com</owner> <summary> @@ -3532,7 +3532,7 @@ </histogram> <histogram name="PageLoad.Internal.SuppressedInteractionsCountBeforePaint3" - units="count" expires_after="2025-03-30"> + units="count" expires_after="2025-06-08"> <owner>mustaq@chromium.org</owner> <owner>blink-interactions-team@google.com</owner> <summary> @@ -3816,7 +3816,7 @@ <histogram name="PageLoad.PaintTiming.NavigationToFirstContentfulPaint.NonTabWebUI{WebUIName}" - units="ms" expires_after="2025-03-30"> + units="ms" expires_after="2025-06-08"> <owner>anthonyvd@chromium.org</owner> <owner>chrome-catan@chromium.org</owner> <summary> @@ -4012,7 +4012,7 @@ <histogram name="PageLoad.PaintTiming.NavigationToLargestContentfulPaint2.NonTabWebUI{WebUIName}" - units="ms" expires_after="2025-03-30"> + units="ms" expires_after="2025-06-08"> <owner>anthonyvd@chromium.org</owner> <owner>chrome-catan@chromium.org</owner> <summary>
diff --git a/tools/metrics/histograms/metadata/password/histograms.xml b/tools/metrics/histograms/metadata/password/histograms.xml index fdaf607..cf3d92f7 100644 --- a/tools/metrics/histograms/metadata/password/histograms.xml +++ b/tools/metrics/histograms/metadata/password/histograms.xml
@@ -167,7 +167,7 @@ </variants> <histogram name="KeyboardAccessory.AccessoryActionImpression" - enum="AccessoryAction" expires_after="2025-03-30"> + enum="AccessoryAction" expires_after="2025-06-08"> <owner>friedrichh@chromium.org</owner> <owner>ioanap@chromium.org</owner> <summary> @@ -177,7 +177,7 @@ </histogram> <histogram name="KeyboardAccessory.AccessoryActionSelected" - enum="AccessoryAction" expires_after="2025-03-30"> + enum="AccessoryAction" expires_after="2025-06-08"> <owner>friedrichh@chromium.org</owner> <owner>ioanap@chromium.org</owner> <summary> @@ -187,7 +187,7 @@ </histogram> <histogram name="KeyboardAccessory.AccessorySheetTriggered" - enum="AccessorySheetTrigger" expires_after="2025-03-30"> + enum="AccessorySheetTrigger" expires_after="2025-06-08"> <owner>friedrichh@chromium.org</owner> <owner>ioanap@chromium.org</owner> <summary> @@ -198,7 +198,7 @@ </histogram> <histogram name="KeyboardAccessory.AccessoryToggleClicked" - enum="AccessoryToggleType" expires_after="2025-03-30"> + enum="AccessoryToggleType" expires_after="2025-06-08"> <owner>ioanap@chromium.org</owner> <owner>friedrichh@chromium.org</owner> <summary> @@ -247,7 +247,7 @@ </histogram> <histogram name="KeyboardAccessory.SuggestionSelected.{AccessorySheetType}" - enum="AccessorySuggestionTypeV2" expires_after="2025-03-30"> + enum="AccessorySuggestionTypeV2" expires_after="2025-06-08"> <owner>friedrichh@chromium.org</owner> <owner>tchudakov@google.com</owner> <owner>chrome-autofill-alerts@google.com</owner> @@ -282,7 +282,7 @@ </histogram> <histogram name="PasswordBubble.AddUsernameBubble.UsernameAdded" - enum="BooleanYesNo" expires_after="2025-03-30"> + enum="BooleanYesNo" expires_after="2025-06-08"> <owner>sygiet@google.com</owner> <owner>vasilii@chromium.org</owner> <summary> @@ -323,7 +323,7 @@ </histogram> <histogram name="PasswordBubble.DisplayDisposition" - enum="PasswordBubbleDisplayDisposition" expires_after="2025-03-30"> + enum="PasswordBubbleDisplayDisposition" expires_after="2025-06-08"> <owner>vasilii@chromium.org</owner> <summary> When the password management bubble opened, what state was it in? @@ -383,7 +383,7 @@ </histogram> <histogram name="PasswordGeneration.Event" enum="PasswordGenerationEvent" - expires_after="2025-03-30"> + expires_after="2025-06-08"> <owner>kazinova@google.com</owner> <owner>vasilii@chromium.org</owner> <summary> @@ -705,7 +705,7 @@ </histogram> <histogram name="PasswordManager.AffiliationBackend.FirstFetchDelay" units="ms" - expires_after="2025-03-30"> + expires_after="2025-06-08"> <owner>vsemeniuk@google.com</owner> <owner>vasilii@chromium.org</owner> <summary> @@ -716,7 +716,7 @@ </histogram> <histogram name="PasswordManager.AffiliationBackend.SubsequentFetchDelay" - units="ms" expires_after="2025-03-30"> + units="ms" expires_after="2025-06-08"> <owner>vsemeniuk@google.com</owner> <owner>vasilii@chromium.org</owner> <summary> @@ -738,7 +738,7 @@ </histogram> <histogram name="PasswordManager.AffiliationDatabase.Error" - enum="SqliteLoggedResultCode" expires_after="2025-03-30"> + enum="SqliteLoggedResultCode" expires_after="2025-06-08"> <owner>vsemeniuk@google.com</owner> <owner>vasilii@chromium.org</owner> <summary> @@ -747,14 +747,14 @@ </histogram> <histogram name="PasswordManager.AffiliationDatabase.StoreResult" - enum="StoreAffiliationResult" expires_after="2025-03-30"> + enum="StoreAffiliationResult" expires_after="2025-06-08"> <owner>vsemeniuk@google.com</owner> <owner>vasilii@chromium.org</owner> <summary>The result of AffiliationDatabase::Store call.</summary> </histogram> <histogram name="PasswordManager.AffiliationFetcher.FailedToParseResponse" - enum="Boolean" expires_after="2025-03-30"> + enum="Boolean" expires_after="2025-06-08"> <owner>vsemeniuk@google.com</owner> <owner>vasilii@chromium.org</owner> <summary> @@ -764,7 +764,7 @@ </histogram> <histogram name="PasswordManager.AffiliationFetcher.FetchErrorCode" - enum="NetErrorCodes" expires_after="2025-03-30"> + enum="NetErrorCodes" expires_after="2025-06-08"> <owner>vsemeniuk@google.com</owner> <owner>vasilii@chromium.org</owner> <summary> @@ -775,7 +775,7 @@ </histogram> <histogram name="PasswordManager.AffiliationFetcher.FetchHttpResponseCode" - enum="HttpResponseCode" expires_after="2025-03-30"> + enum="HttpResponseCode" expires_after="2025-06-08"> <owner>vsemeniuk@google.com</owner> <owner>vasilii@chromium.org</owner> <summary> @@ -786,7 +786,7 @@ </histogram> <histogram name="PasswordManager.AffiliationFetcher.FetchResult" - enum="AffiliationFetchResult" expires_after="2025-03-30"> + enum="AffiliationFetchResult" expires_after="2025-06-08"> <owner>vsemeniuk@google.com</owner> <owner>vasilii@chromium.org</owner> <summary> @@ -825,7 +825,7 @@ </histogram> <histogram name="PasswordManager.AffiliationService.GetChangePasswordUsage" - enum="GetChangePasswordUrlMetric" expires_after="2025-03-30"> + enum="GetChangePasswordUrlMetric" expires_after="2025-06-08"> <owner>vsemeniuk@google.com</owner> <owner>vasilii@chromium.org</owner> <summary> @@ -857,7 +857,7 @@ </histogram> <histogram name="PasswordManager.ApplySyncChanges.UpdateLoginSyncError" - enum="PasswordUpdateLoginSyncError" expires_after="2025-03-30"> + enum="PasswordUpdateLoginSyncError" expires_after="2025-06-08"> <owner>mamir@chromium.org</owner> <owner>mastiz@chromium.org</owner> <summary> @@ -869,7 +869,7 @@ </histogram> <histogram name="PasswordManager.ApplySyncChangesState" - enum="PasswordApplyIncrementalSyncChangesState" expires_after="2025-03-30"> + enum="PasswordApplyIncrementalSyncChangesState" expires_after="2025-06-08"> <owner>mamir@chromium.org</owner> <owner>mastiz@chromium.org</owner> <summary> @@ -999,7 +999,7 @@ </histogram> <histogram name="PasswordManager.BubbleSuppression.AccountsInStatisticsTable2" - units="accounts" expires_after="2025-03-30"> + units="accounts" expires_after="2025-06-08"> <owner>kazinova@google.com</owner> <owner>vasilii@chromium.org</owner> <summary> @@ -1101,7 +1101,7 @@ </histogram> <histogram name="PasswordManager.BulkCheck.Time" units="ms" - expires_after="2025-03-30"> + expires_after="2025-06-08"> <owner>vasilii@chromium.org</owner> <owner>vsemeniuk@google.com</owner> <summary> @@ -1309,7 +1309,7 @@ <histogram name="PasswordManager.CredentialManager.{ProfileType}.GetIntent.APIError" - enum="PasswordStoreAndroidBackendAPIError" expires_after="2025-03-30"> + enum="PasswordStoreAndroidBackendAPIError" expires_after="2025-06-08"> <owner>ioanap@chromium.org</owner> <owner>izuzic@google.com</owner> <summary> @@ -1338,7 +1338,7 @@ <histogram name="PasswordManager.CredentialManager.{ProfileType}.GetIntent.Error" - enum="CredentialManagerError" expires_after="2025-03-30"> + enum="CredentialManagerError" expires_after="2025-06-08"> <owner>ioanap@chromium.org</owner> <owner>friedrichh@chromium.org</owner> <summary> @@ -1352,7 +1352,7 @@ <histogram name="PasswordManager.CredentialManager.{ProfileType}.GetIntent.Latency" - units="ms" expires_after="2025-03-30"> + units="ms" expires_after="2025-06-08"> <owner>ioanap@chromium.org</owner> <owner>friedrichh@chromium.org</owner> <summary> @@ -1367,7 +1367,7 @@ <histogram name="PasswordManager.CredentialManager.{ProfileType}.GetIntent.Success" - enum="BooleanSuccess" expires_after="2025-03-30"> + enum="BooleanSuccess" expires_after="2025-06-08"> <owner>ioanap@chromium.org</owner> <owner>friedrichh@chromium.org</owner> <summary> @@ -1380,7 +1380,7 @@ <histogram name="PasswordManager.CredentialManager.{ProfileType}.Launch.Success" - enum="BooleanSuccess" expires_after="2025-03-30"> + enum="BooleanSuccess" expires_after="2025-06-08"> <owner>ioanap@chromium.org</owner> <owner>friedrichh@chromium.org</owner> <summary> @@ -1481,7 +1481,7 @@ </histogram> <histogram name="PasswordManager.EditsInSaveBubble" - enum="PasswordManagerEditsInSaveBubbleEnum" expires_after="2025-03-30"> + enum="PasswordManagerEditsInSaveBubbleEnum" expires_after="2025-06-08"> <owner>vasilii@chromium.org</owner> <owner>kazinova@google.com</owner> <summary> @@ -1585,7 +1585,7 @@ </histogram> <histogram name="PasswordManager.FieldNameCollisionInVotes" enum="Boolean" - expires_after="2025-03-30"> + expires_after="2025-06-08"> <owner>kazinova@google.com</owner> <owner>khamutov@google.com</owner> <summary> @@ -1595,7 +1595,7 @@ </histogram> <histogram name="PasswordManager.FilledCredentialWasFromAndroidApp2" - enum="PasswordManagerFilledAndroidCredentials" expires_after="2025-03-30"> + enum="PasswordManagerFilledAndroidCredentials" expires_after="2025-06-08"> <owner>vsemeniuk@google.com</owner> <owner>vasilii@chromium.org</owner> <summary> @@ -1702,7 +1702,7 @@ </histogram> <histogram name="PasswordManager.FillSuggestionsIncludeAndroidAppCredentials" - enum="PasswordManagerOfferedAndroidCredentials" expires_after="2025-03-30"> + enum="PasswordManagerOfferedAndroidCredentials" expires_after="2025-06-08"> <owner>kazinova@google.com</owner> <owner>vasilii@chromium.org</owner> <summary> @@ -1960,7 +1960,7 @@ </histogram> <histogram name="PasswordManager.iOS.InfoBar.PasswordSave" enum="Boolean" - expires_after="2025-03-30"> + expires_after="2025-06-08"> <owner>djean@chromium.org</owner> <owner>sczs@google.com</owner> <summary> @@ -2000,7 +2000,7 @@ </histogram> <histogram name="PasswordManager.iOS.SurfaceVisit" - enum="PasswordManager.SurfaceVisit" expires_after="2025-03-31"> + enum="PasswordManager.SurfaceVisit" expires_after="2025-06-08"> <owner>eic@google.com</owner> <owner>bling-transactions@google.com</owner> <summary> @@ -2012,7 +2012,7 @@ </histogram> <histogram name="PasswordManager.IsPasswordProtected2" enum="Boolean" - expires_after="2025-03-30"> + expires_after="2025-06-08"> <owner>skrakowi@chromium.org</owner> <owner>chrome-counter-abuse-alerts@google.com</owner> <summary> @@ -2046,7 +2046,7 @@ </histogram> <histogram name="PasswordManager.JavaScriptOnlyValueInSubmittedForm" - enum="JavaScriptOnlyValueInPasswordForm" expires_after="2025-03-30"> + enum="JavaScriptOnlyValueInPasswordForm" expires_after="2025-06-08"> <owner>kazinova@google.com</owner> <owner>battre@chromium.org</owner> <summary> @@ -2074,7 +2074,7 @@ </histogram> <histogram name="PasswordManager.LeakDetection.Error" - enum="PasswordLeakDetectionError" expires_after="2025-03-30"> + enum="PasswordLeakDetectionError" expires_after="2025-06-08"> <owner>vsemeniuk@google.com</owner> <owner>vasilii@chromium.org</owner> <summary> @@ -2113,7 +2113,7 @@ </histogram> <histogram name="PasswordManager.LeakDetection.ObtainAccessTokenTime" - units="ms" expires_after="2025-03-30"> + units="ms" expires_after="2025-06-08"> <owner>vsemeniuk@google.com</owner> <owner>vasilii@chromium.org</owner> <summary> @@ -2153,7 +2153,7 @@ </histogram> <histogram name="PasswordManager.LocalUpmActivated" enum="Boolean" - expires_after="2025-04-06"> + expires_after="2025-06-08"> <owner>ioanap@chromium.org</owner> <owner>src/components/password_manager/OWNERS</owner> <summary> @@ -2208,7 +2208,7 @@ </histogram> <histogram name="PasswordManager.LoginDatabase.DeleteFromKeychain" - enum="ErrSecOSStatus" expires_after="2025-03-30"> + enum="ErrSecOSStatus" expires_after="2025-06-08"> <owner>vsemeniuk@google.com</owner> <owner>vasilii@chromium.org</owner> <summary> @@ -2315,7 +2315,7 @@ </histogram> <histogram name="PasswordManager.MediationOptional" - enum="CredentialManagerGetResult" expires_after="2025-03-30"> + enum="CredentialManagerGetResult" expires_after="2025-06-08"> <owner>kazinova@google.com</owner> <owner>vasilii@chromium.org</owner> <summary> @@ -2449,7 +2449,7 @@ </histogram> <histogram name="PasswordManager.ParserDetectedOtpFieldWithRegex" - enum="Boolean" expires_after="2025-03-30"> + enum="Boolean" expires_after="2025-06-08"> <owner>kazinova@google.com</owner> <owner>shaikhitdin@google.com</owner> <summary> @@ -2818,7 +2818,7 @@ </histogram> <histogram name="PasswordManager.PasswordReuse.PasswordFieldDetected" - enum="PasswordReusePasswordFieldDetected" expires_after="2025-03-30"> + enum="PasswordReusePasswordFieldDetected" expires_after="2025-06-08"> <owner>nwokedi@chromium.org</owner> <owner>chrome-counter-abuse-alerts@google.com</owner> <summary> @@ -2850,7 +2850,7 @@ </histogram> <histogram name="PasswordManager.PasswordSavingDisabledDueToGMSCoreError" - enum="Boolean" expires_after="2025-04-06"> + enum="Boolean" expires_after="2025-06-08"> <owner>vsemeniuk@google.com</owner> <owner>vasilii@chromium.org</owner> <summary> @@ -2963,7 +2963,7 @@ <histogram name="PasswordManager.PasswordSettingsMigrationFailed.{Setting}.APIError2" - enum="PasswordStoreAndroidBackendAPIError" expires_after="2025-04-06"> + enum="PasswordStoreAndroidBackendAPIError" expires_after="2025-06-08"> <owner>sygiet@google.com</owner> <owner>ioanap@chromium.org</owner> <summary> @@ -3026,7 +3026,7 @@ <histogram name="PasswordManager.PasswordSharingRecipients.FetchAccessTokenResult" - enum="GoogleServiceAuthError" expires_after="2025-03-30"> + enum="GoogleServiceAuthError" expires_after="2025-06-08"> <owner>rushans@google.com</owner> <owner>mamir@chromium.org</owner> <summary> @@ -3036,7 +3036,7 @@ </histogram> <histogram name="PasswordManager.PasswordSharingRecipients.ResponseOrErrorCode" - enum="CombinedHttpResponseAndNetErrorCode" expires_after="2025-03-30"> + enum="CombinedHttpResponseAndNetErrorCode" expires_after="2025-06-08"> <owner>rushans@google.com</owner> <owner>mamir@chromium.org</owner> <summary> @@ -3087,7 +3087,7 @@ <histogram name="PasswordManager.PasswordStore.{PasswordStoreBackendType}.AddLoginCalledOnStore" - enum="BooleanCalled" expires_after="2025-03-30"> + enum="BooleanCalled" expires_after="2025-06-08"> <owner>sygiet@google.com</owner> <owner>vasilii@chromium.org</owner> <summary> @@ -3099,7 +3099,7 @@ <histogram name="PasswordManager.PasswordStore.{PasswordStoreBackendType}.UpdateLoginCalledOnStore" - enum="BooleanCalled" expires_after="2025-03-30"> + enum="BooleanCalled" expires_after="2025-06-08"> <owner>sygiet@google.com</owner> <owner>vasilii@chromium.org</owner> <summary> @@ -3111,7 +3111,7 @@ <histogram name="PasswordManager.PasswordStoreAndroidBackend.Retry{Operation}.APIError" - enum="PasswordStoreAndroidBackendAPIError" expires_after="2025-03-30"> + enum="PasswordStoreAndroidBackendAPIError" expires_after="2025-06-08"> <owner>izuzic@google.com</owner> <owner>ioanap@chromium.org</owner> <summary> @@ -3125,7 +3125,7 @@ <histogram name="PasswordManager.PasswordStoreAndroidBackend.Retry{Operation}.Attempt" - units="Times" expires_after="2025-03-30"> + units="Times" expires_after="2025-06-08"> <owner>izuzic@google.com</owner> <owner>ioanap@chromium.org</owner> <summary> @@ -3141,7 +3141,7 @@ <histogram name="PasswordManager.PasswordStoreAndroidBackend.Retry{Operation}.CancelledAtAttempt" - units="Times" expires_after="2025-03-30"> + units="Times" expires_after="2025-06-08"> <owner>izuzic@google.com</owner> <owner>ioanap@chromium.org</owner> <summary> @@ -3155,7 +3155,7 @@ </histogram> <histogram name="PasswordManager.PasswordStoreAndroidBackend.{Type}.APIError" - enum="PasswordStoreAndroidBackendAPIError" expires_after="2025-04-06"> + enum="PasswordStoreAndroidBackendAPIError" expires_after="2025-06-08"> <owner>izuzic@google.com</owner> <owner>ioanap@chromium.org</owner> <summary> @@ -3167,7 +3167,7 @@ </histogram> <histogram name="PasswordManager.PasswordStoreAndroidBackend.{Type}.ErrorCode" - enum="PasswordStoreAndroidBackendError" expires_after="2025-04-06"> + enum="PasswordStoreAndroidBackendError" expires_after="2025-06-08"> <owner>izuzic@google.com</owner> <owner>ioanap@chromium.org</owner> <summary> @@ -3179,7 +3179,7 @@ </histogram> <histogram name="PasswordManager.PasswordStoreAndroidBackend.{Type}.Success" - enum="BooleanSuccess" expires_after="2025-04-06"> + enum="BooleanSuccess" expires_after="2025-06-08"> <owner>izuzic@google.com</owner> <owner>ioanap@chromium.org</owner> <summary> @@ -3191,7 +3191,7 @@ </histogram> <histogram name="PasswordManager.PasswordStoreAndroidBackend.{Type}.{Function}" - enum="PasswordStoreAndroidBackendRequestStatus" expires_after="2025-04-06"> + enum="PasswordStoreAndroidBackendRequestStatus" expires_after="2025-06-08"> <owner>izuzic@google.com</owner> <owner>ioanap@chromium.org</owner> <summary> @@ -3207,7 +3207,7 @@ <histogram name="PasswordManager.PasswordStoreAndroidBackend.{Type}.{Function}.APIError" - enum="PasswordStoreAndroidBackendAPIError" expires_after="2025-04-06"> + enum="PasswordStoreAndroidBackendAPIError" expires_after="2025-06-08"> <owner>izuzic@google.com</owner> <owner>ioanap@chromium.org</owner> <summary> @@ -3222,7 +3222,7 @@ <histogram name="PasswordManager.PasswordStoreAndroidBackend.{Type}.{Function}.ConnectionResultCode" enum="PasswordStoreAndroidBackendConnectionResultCode" - expires_after="2025-04-06"> + expires_after="2025-06-08"> <owner>izuzic@google.com</owner> <owner>ioanap@chromium.org</owner> <summary> @@ -3237,7 +3237,7 @@ <histogram name="PasswordManager.PasswordStoreAndroidBackend.{Type}.{Function}.ErrorCode" - enum="PasswordStoreAndroidBackendError" expires_after="2025-04-06"> + enum="PasswordStoreAndroidBackendError" expires_after="2025-06-08"> <owner>izuzic@google.com</owner> <owner>ioanap@chromium.org</owner> <summary> @@ -3264,7 +3264,7 @@ <histogram name="PasswordManager.PasswordStoreAndroidBackend.{Type}.{Function}.Latency" - units="ms" expires_after="2025-04-06"> + units="ms" expires_after="2025-06-08"> <owner>izuzic@google.com</owner> <owner>ioanap@chromium.org</owner> <summary> @@ -3279,7 +3279,7 @@ <histogram name="PasswordManager.PasswordStoreAndroidBackend.{Type}.{Function}.Success" - enum="BooleanSuccess" expires_after="2025-04-06"> + enum="BooleanSuccess" expires_after="2025-06-08"> <owner>izuzic@google.com</owner> <owner>ioanap@chromium.org</owner> <summary> @@ -3475,7 +3475,7 @@ </histogram> <histogram name="PasswordManager.PasswordSyncState3" enum="PasswordSyncState" - expires_after="2025-03-30"> + expires_after="2025-06-08"> <owner>kazinova@google.com</owner> <owner>vasilii@chromium.org</owner> <summary> @@ -3570,7 +3570,7 @@ </histogram> <histogram name="PasswordManager.PromoCard.ActionButtonClicked" - enum="PasswordManagerPromoCard" expires_after="2025-03-30"> + enum="PasswordManagerPromoCard" expires_after="2025-06-08"> <owner>vasilii@chromium.org</owner> <owner>vsemeniuk@google.com</owner> <summary> @@ -3580,7 +3580,7 @@ </histogram> <histogram name="PasswordManager.PromoCard.Shown" - enum="PasswordManagerPromoCard" expires_after="2025-03-30"> + enum="PasswordManagerPromoCard" expires_after="2025-06-08"> <owner>vasilii@chromium.org</owner> <owner>vsemeniuk@google.com</owner> <summary> @@ -3590,7 +3590,7 @@ </histogram> <histogram name="PasswordManager.ProvisionalSaveFailure2" - enum="ProvisionalSaveFailure" expires_after="2025-03-30"> + enum="ProvisionalSaveFailure" expires_after="2025-06-08"> <owner>kazinova@google.com</owner> <owner>vasilii@chromium.org</owner> <summary> @@ -3611,7 +3611,7 @@ </histogram> <histogram name="PasswordManager.RequestVerificationAsyncResult" - enum="AuthenticationResultStatusWin" expires_after="2025-03-30"> + enum="AuthenticationResultStatusWin" expires_after="2025-06-08"> <owner>sygiet@google.com</owner> <owner>vsemeniuk@google.com</owner> <summary> @@ -3622,7 +3622,7 @@ </histogram> <histogram name="PasswordManager.RequirementsSpecFetcher.HttpResponseCode" - enum="HttpResponseCode" expires_after="2025-03-30"> + enum="HttpResponseCode" expires_after="2025-06-08"> <owner>kazinova@google.com</owner> <owner>battre@chromium.org</owner> <summary> @@ -3659,7 +3659,7 @@ </histogram> <histogram name="PasswordManager.ReuseCheck.CheckedPasswords" units="passwords" - expires_after="2025-03-30"> + expires_after="2025-06-08"> <owner>vsemeniuk@google.com</owner> <owner>vasilii@chromium.org</owner> <summary> @@ -3732,7 +3732,7 @@ </histogram> <histogram name="PasswordManager.SaveUIDismissalReason.UsersWithNoCredentials" - enum="PasswordManagerUIDismissalReason" expires_after="2025-04-06"> + enum="PasswordManagerUIDismissalReason" expires_after="2025-06-08"> <owner>kazinova@google.com</owner> <owner>vasilii@chromium.org</owner> <summary> @@ -3838,7 +3838,7 @@ </histogram> <histogram name="PasswordManager.ShortcutMetric" - enum="PasswordManagerShortcutMetric" expires_after="2025-04-06"> + enum="PasswordManagerShortcutMetric" expires_after="2025-06-08"> <owner>vasilii@chromium.org</owner> <owner>vsemeniuk@google.com</owner> <summary> @@ -3913,7 +3913,7 @@ </histogram> <histogram name="PasswordManager.StoresUsedForFillingInLast7Days" - enum="PasswordManagerFillingSource" expires_after="2025-03-30"> + enum="PasswordManagerFillingSource" expires_after="2025-06-08"> <owner>mamir@chromium.org</owner> <owner>treib@chromium.org</owner> <summary> @@ -3980,7 +3980,7 @@ <histogram name="PasswordManager.SyncControllerDelegateNotifiesCredentialManager.APIErrorCode" - enum="CredentialManagerAPIError" expires_after="2025-03-30"> + enum="CredentialManagerAPIError" expires_after="2025-06-08"> <owner>kazinova@google.com</owner> <owner>ioanap@chromium.org</owner> <summary> @@ -3992,7 +3992,7 @@ <histogram name="PasswordManager.SyncControllerDelegateNotifiesCredentialManager.ErrorCode" - enum="PasswordStoreAndroidBackendError" expires_after="2025-03-30"> + enum="PasswordStoreAndroidBackendError" expires_after="2025-06-08"> <owner>kazinova@google.com</owner> <owner>ioanap@chromium.org</owner> <summary> @@ -4006,7 +4006,7 @@ <histogram name="PasswordManager.SyncControllerDelegateNotifiesCredentialManager.Success" - enum="Boolean" expires_after="2025-03-30"> + enum="Boolean" expires_after="2025-06-08"> <owner>kazinova@google.com</owner> <owner>ioanap@chromium.org</owner> <summary> @@ -4017,7 +4017,7 @@ </histogram> <histogram name="PasswordManager.SyncingAccountState3" - enum="PasswordManagerSyncingAccountState" expires_after="2025-03-30"> + enum="PasswordManagerSyncingAccountState" expires_after="2025-06-08"> <owner>kazinova@google.com</owner> <owner>vasilii@chromium.org</owner> <owner>chrome-password-manager-metrics-alerts@google.com</owner> @@ -4029,7 +4029,7 @@ </histogram> <histogram name="PasswordManager.SyncMetadataReadError2" - enum="PasswordSyncMetadataReadError" expires_after="2025-03-30"> + enum="PasswordSyncMetadataReadError" expires_after="2025-06-08"> <owner>mamir@chromium.org</owner> <owner>mastiz@chromium.org</owner> <summary> @@ -4050,7 +4050,7 @@ </histogram> <histogram name="PasswordManager.TimeBetweenStoreAndServer" units="ms" - expires_after="2025-03-30"> + expires_after="2025-06-08"> <owner>kazinova@google.com</owner> <owner>battre@chromium.org</owner> <summary> @@ -4178,7 +4178,7 @@ </histogram> <histogram name="PasswordManager.UI.OpenedPasswordDetailsWhileSearching" - enum="BooleanSuccess" expires_after="2025-04-06"> + enum="BooleanSuccess" expires_after="2025-06-08"> <owner>vsemeniuk@google.com</owner> <owner>vasilii@chromium.org</owner> <summary> @@ -4244,7 +4244,7 @@ <histogram name="PasswordManager.UnifiedPasswordManager.MigrationForLocalUsers.Latency" - units="ms" expires_after="2025-03-30"> + units="ms" expires_after="2025-06-08"> <owner>vsemeniuk@google.com</owner> <owner>friedrichh@chromium.org</owner> <summary> @@ -4302,7 +4302,7 @@ <histogram name="PasswordManager.UnifiedPasswordManager.MigrationForLocalUsers.Success" - enum="BooleanSuccess" expires_after="2025-03-30"> + enum="BooleanSuccess" expires_after="2025-06-08"> <owner>vsemeniuk@google.com</owner> <owner>friedrichh@chromium.org</owner> <summary> @@ -4396,7 +4396,7 @@ </histogram> <histogram name="PasswordManager.WeakCheck.PasswordScore" - enum="PasswordWeaknessScore" expires_after="2025-03-30"> + enum="PasswordWeaknessScore" expires_after="2025-06-08"> <owner>kazinova@google.com</owner> <owner>vasilii@chromium.org</owner> <summary> @@ -4406,7 +4406,7 @@ </histogram> <histogram name="PasswordManager.WeakCheck.SingleCheckTime" units="ms" - expires_after="2025-03-30"> + expires_after="2025-06-08"> <owner>jkeitel@google.com</owner> <owner>vasilii@chromium.org</owner> <summary> @@ -4475,7 +4475,7 @@ </histogram> <histogram name="PasswordManager.{Location}.AuthenticationTime2" units="ms" - expires_after="2025-04-06"> + expires_after="2025-06-08"> <owner>sygiet@google.com</owner> <owner>vasilii@chromium.org</owner> <summary> @@ -4683,7 +4683,7 @@ <histogram name="PasswordProtection.AttemptsToSavePasswordHashFromProfilePicker" - enum="BooleanSuccess" expires_after="2025-03-30"> + enum="BooleanSuccess" expires_after="2025-06-08"> <owner>nwokedi@chromium.org</owner> <owner>chrome-counter-abuse-alerts@google.com</owner> <summary> @@ -4870,7 +4870,7 @@ </histogram> <histogram name="PasswordProtection.RequestWithToken.{TriggerType}" - enum="BooleanSent" expires_after="2025-02-23"> + enum="BooleanSent" expires_after="2025-06-08"> <owner>nwokedi@chromium.org</owner> <owner>chrome-counter-abuse-alerts@google.com</owner> <summary>
diff --git a/tools/metrics/histograms/metadata/payment/histograms.xml b/tools/metrics/histograms/metadata/payment/histograms.xml index 30b350a..f8aacb9 100644 --- a/tools/metrics/histograms/metadata/payment/histograms.xml +++ b/tools/metrics/histograms/metadata/payment/histograms.xml
@@ -35,7 +35,7 @@ </histogram> <histogram name="PaymentRequest.CanMakePayment.CallAllowedByPref" - enum="Boolean" expires_after="2025-03-30"> + enum="Boolean" expires_after="2025-06-08"> <owner>smcgruer@chromium.org</owner> <owner>chrome-payments-team@google.com</owner> <summary> @@ -120,7 +120,7 @@ <histogram name="PaymentRequest.IsCanMakePaymentAllowedByPref.PaymentRequestConstruction.Once.DisabledReason" - enum="CanMakePaymentPreferenceSetter" expires_after="2025-04-06"> + enum="CanMakePaymentPreferenceSetter" expires_after="2025-06-08"> <owner>smcgruer@chromium.org</owner> <owner>chrome-payments-team@google.com</owner> <summary> @@ -138,7 +138,7 @@ </histogram> <histogram name="PaymentRequest.IsCanMakePaymentAllowedByPref.Startup" - enum="Boolean" expires_after="2025-04-06"> + enum="Boolean" expires_after="2025-06-08"> <owner>smcgruer@chromium.org</owner> <owner>chrome-payments-team@google.com</owner> <summary> @@ -150,7 +150,7 @@ <histogram name="PaymentRequest.IsCanMakePaymentAllowedByPref.Startup.DisabledReason" - enum="CanMakePaymentPreferenceSetter" expires_after="2025-04-06"> + enum="CanMakePaymentPreferenceSetter" expires_after="2025-06-08"> <owner>smcgruer@chromium.org</owner> <owner>chrome-payments-team@google.com</owner> <summary>
diff --git a/tools/metrics/histograms/metadata/pdf/histograms.xml b/tools/metrics/histograms/metadata/pdf/histograms.xml index 8bc49a5..3fe612f 100644 --- a/tools/metrics/histograms/metadata/pdf/histograms.xml +++ b/tools/metrics/histograms/metadata/pdf/histograms.xml
@@ -133,7 +133,7 @@ </histogram> <histogram name="PDF.LoadStatus2" enum="ChromePDFViewerLoadStatus" - expires_after="2025-03-30"> + expires_after="2025-06-08"> <owner>kmoon@chromium.org</owner> <owner>thestig@chromium.org</owner> <summary>
diff --git a/tools/metrics/histograms/metadata/performance_controls/histograms.xml b/tools/metrics/histograms/metadata/performance_controls/histograms.xml index d2c9bb6..b089d0d 100644 --- a/tools/metrics/histograms/metadata/performance_controls/histograms.xml +++ b/tools/metrics/histograms/metadata/performance_controls/histograms.xml
@@ -295,7 +295,7 @@ </histogram> <histogram name="PerformanceControls.MemorySaver.SettingsChangeExceptionList" - enum="MemorySaverModeExceptionListAction" expires_after="2025-02-10"> + enum="MemorySaverModeExceptionListAction" expires_after="2025-06-08"> <owner>charlesmeng@chromium.org</owner> <owner>chrome-performance-ui-sea@google.com</owner> <summary>
diff --git a/tools/metrics/histograms/metadata/performance_manager/histograms.xml b/tools/metrics/histograms/metadata/performance_manager/histograms.xml index 1d1c9c5..ae347ce 100644 --- a/tools/metrics/histograms/metadata/performance_manager/histograms.xml +++ b/tools/metrics/histograms/metadata/performance_manager/histograms.xml
@@ -361,7 +361,7 @@ </histogram> <histogram name="PerformanceManager.UserTuning.BatterySaverModeEnabledPercent" - units="%" expires_after="2025-03-30"> + units="%" expires_after="2025-06-08"> <owner>anthonyvd@chromium.org</owner> <owner>chrome-catan@google.com</owner> <summary> @@ -385,7 +385,7 @@ </histogram> <histogram name="PerformanceManager.UserTuning.MemorySaverModeEnabledPercent" - units="%" expires_after="2025-03-30"> + units="%" expires_after="2025-06-08"> <owner>anthonyvd@chromium.org</owner> <owner>chrome-catan@google.com</owner> <summary>
diff --git a/tools/metrics/histograms/metadata/permissions/histograms.xml b/tools/metrics/histograms/metadata/permissions/histograms.xml index 10e2c18..6ce68e18 100644 --- a/tools/metrics/histograms/metadata/permissions/histograms.xml +++ b/tools/metrics/histograms/metadata/permissions/histograms.xml
@@ -236,7 +236,7 @@ </histogram> <histogram name="Permissions.Action.{PermissionType}.CrossOriginFrame" - enum="PermissionAction" expires_after="2025-03-23"> + enum="PermissionAction" expires_after="2025-06-08"> <owner>tungnh@chromium.org</owner> <owner>src/components/permissions/PERMISSIONS_OWNERS</owner> <summary> @@ -420,7 +420,7 @@ </histogram> <histogram name="Permissions.CrowdDeny.SafeBrowsing.RequestDuration" units="ms" - expires_after="2025-04-06"> + expires_after="2025-06-08"> <owner>andypaicu@chromium.org</owner> <owner>engedy@chromium.org</owner> <owner>hkamila@chromium.org</owner> @@ -521,7 +521,7 @@ <histogram name="Permissions.Experimental.PrimaryMainNavigationFinished.{PermissionType}.TopLevelHeaderPolicy" - enum="PermissionsPolicyConfiguration" expires_after="2025-04-06"> + enum="PermissionsPolicyConfiguration" expires_after="2025-06-08"> <owner>tungnh@chromium.org</owner> <owner>src/components/permissions/PERMISSIONS_OWNERS</owner> <summary> @@ -1303,7 +1303,7 @@ </histogram> <histogram base="true" name="Permissions.Revocation.ElapsedTimeSinceGrant" - units="seconds" expires_after="2025-03-30"> + units="seconds" expires_after="2025-06-08"> <owner>engedy@chromium.org</owner> <owner>src/components/permissions/PERMISSIONS_OWNERS</owner> <summary> @@ -1313,7 +1313,7 @@ </histogram> <histogram name="Permissions.Revocation.Notifications.DidRecordUkm" - enum="Boolean" expires_after="2025-03-30"> + enum="Boolean" expires_after="2025-06-08"> <owner>engedy@chromium.org</owner> <owner>willxu@google.com</owner> <owner>src/components/permissions/PERMISSIONS_OWNERS</owner> @@ -1382,7 +1382,7 @@ </histogram> <histogram name="Permissions.Usage.ElapsedTimeSinceLastUsage.{PermissionType}" - units="ms" expires_after="2025-03-09"> + units="ms" expires_after="2025-06-08"> <owner>lyf@chromium.org</owner> <owner>elklm@chromium.org</owner> <owner>src/components/permissions/PERMISSIONS_OWNERS</owner> @@ -1498,7 +1498,7 @@ </histogram> <histogram name="WebsiteSettings.AllSitesAction2" - enum="WebSiteSettingsAllSitesAction2" expires_after="2025-03-30"> + enum="WebSiteSettingsAllSitesAction2" expires_after="2025-06-08"> <owner>sauski@google.com</owner> <owner>alimariam@google.com</owner> <summary> @@ -1539,7 +1539,7 @@ </histogram> <histogram name="WebsiteSettings.OriginInfo.PermissionChanged.Blocked" - enum="ContentType" expires_after="2025-04-06"> + enum="ContentType" expires_after="2025-06-08"> <owner>andypaicu@chromium.org</owner> <owner>engedy@chromium.org</owner> <owner>hkamila@chromium.org</owner>
diff --git a/tools/metrics/histograms/metadata/phonehub/histograms.xml b/tools/metrics/histograms/metadata/phonehub/histograms.xml index 759258d..383acdfa 100644 --- a/tools/metrics/histograms/metadata/phonehub/histograms.xml +++ b/tools/metrics/histograms/metadata/phonehub/histograms.xml
@@ -531,7 +531,7 @@ </histogram> <histogram name="PhoneHub.ScreenOn{BubbleEvent}" enum="PhoneHubScreen" - expires_after="2025-03-25"> + expires_after="2025-06-08"> <owner>jonmann@chromium.org</owner> <owner>chromeos-cross-device-eng@google.com</owner> <summary>
diff --git a/tools/metrics/histograms/metadata/platform/histograms.xml b/tools/metrics/histograms/metadata/platform/histograms.xml index 6f09b9cd..1d4e288 100644 --- a/tools/metrics/histograms/metadata/platform/histograms.xml +++ b/tools/metrics/histograms/metadata/platform/histograms.xml
@@ -687,7 +687,7 @@ </histogram> <histogram name="Platform.DlcService.InstallResult" - enum="DlcService.InstallResult" expires_after="2025-04-06"> + enum="DlcService.InstallResult" expires_after="2025-06-08"> <owner>kimjae@chromium.org</owner> <owner>chromeos-core-services@google.com</owner> <summary> @@ -962,7 +962,7 @@ </histogram> <histogram name="Platform.FlexPartitionSize.{Partition}" units="MiB" - expires_after="2025-03-30"> + expires_after="2025-06-08"> <owner>nicholasbishop@google.com</owner> <owner>chromeos-flex-eng@google.com</owner> <summary> @@ -1651,7 +1651,7 @@ </histogram> <histogram name="Platform.Missive.KeyDeliveryResult" - enum="EnterpriseCloudReportingStatusCode" expires_after="2025-03-30"> + enum="EnterpriseCloudReportingStatusCode" expires_after="2025-06-08"> <owner>lbaraz@chromium.org</owner> <owner>cros-reporting-team@google.com</owner> <summary> @@ -1661,7 +1661,7 @@ </histogram> <histogram name="Platform.Missive.MemoryUsage" units="0.1MiB" - expires_after="2025-04-06"> + expires_after="2025-06-08"> <owner>lbaraz@chromium.org</owner> <owner>cros-reporting-team@google.com</owner> <summary> @@ -1810,7 +1810,7 @@ </histogram> <histogram name="Platform.Modemfwd.ModemRecoveryState" - enum="ModemfwdModemRecoveryState" expires_after="2025-03-30"> + enum="ModemfwdModemRecoveryState" expires_after="2025-06-08"> <owner>ujjwalpande@google.com</owner> <owner>cros-device-enablement@google.com</owner> <summary>Report state of modem recovery operation.</summary>
diff --git a/tools/metrics/histograms/metadata/plus_addresses/histograms.xml b/tools/metrics/histograms/metadata/plus_addresses/histograms.xml index f88d621..0452206c 100644 --- a/tools/metrics/histograms/metadata/plus_addresses/histograms.xml +++ b/tools/metrics/histograms/metadata/plus_addresses/histograms.xml
@@ -71,7 +71,7 @@ </histogram> <histogram name="PlusAddresses.Blocklist.ParsingResult" - enum="PlusAddressBlocklistDataParsingResult" expires_after="2025-03-30"> + enum="PlusAddressBlocklistDataParsingResult" expires_after="2025-06-08"> <owner>jkeitel@google.com</owner> <owner>vizcay@google.com</owner> <owner>mreichhoff@chromium.org</owner> @@ -95,7 +95,7 @@ </histogram> <histogram name="PlusAddresses.NetworkRequest.{Type}.Latency" units="ms" - expires_after="2025-03-30"> + expires_after="2025-06-08"> <owner>jkeitel@google.com</owner> <owner>vizcay@google.com</owner> <owner>mreichhoff@chromium.org</owner>
diff --git a/tools/metrics/histograms/metadata/power/histograms.xml b/tools/metrics/histograms/metadata/power/histograms.xml index 5a83756..40486276 100644 --- a/tools/metrics/histograms/metadata/power/histograms.xml +++ b/tools/metrics/histograms/metadata/power/histograms.xml
@@ -493,7 +493,7 @@ </histogram> <histogram name="Power.AmbientLightOnResume" units="lux" - expires_after="2025-03-30"> + expires_after="2025-06-08"> <owner>bkersten@chromium.org</owner> <owner>slangley@chromium.org</owner> <summary> @@ -1783,7 +1783,7 @@ </summary> </histogram> -<histogram name="Power.SuspendDelay" units="seconds" expires_after="2025-03-30"> +<histogram name="Power.SuspendDelay" units="seconds" expires_after="2025-06-08"> <owner>niwa@chromium.org</owner> <owner>puthik@chromium.org</owner> <owner>chromeos-platform-power@google.com</owner>
diff --git a/tools/metrics/histograms/metadata/prefetch/histograms.xml b/tools/metrics/histograms/metadata/prefetch/histograms.xml index e4b0588..35deac7 100644 --- a/tools/metrics/histograms/metadata/prefetch/histograms.xml +++ b/tools/metrics/histograms/metadata/prefetch/histograms.xml
@@ -65,7 +65,7 @@ <histogram name="PrefetchProxy.AfterClick.BlockUntilHeadDuration2.{WasServed}.{SpeculationEagerness}" - units="ms" expires_after="2025-03-23"> + units="ms" expires_after="2025-06-08"> <owner>kouhei@chromium.org</owner> <owner>kenoss@chromium.org</owner> <owner>chrome-loading@chromium.org</owner> @@ -213,7 +213,7 @@ <histogram name="PrefetchProxy.AfterClick.PrefetchMatchingBlockedNavigationWithPrefetch.{SpeculationEagerness}" - enum="Boolean" expires_after="2025-03-23"> + enum="Boolean" expires_after="2025-06-08"> <owner>kouhei@chromium.org</owner> <owner>kenoss@chromium.org</owner> <owner>chrome-loading@chromium.org</owner> @@ -467,7 +467,7 @@ </histogram> <histogram name="PrefetchProxy.Prefetch.Mainframe.RespCode" - enum="HttpResponseCode" expires_after="2025-03-30"> + enum="HttpResponseCode" expires_after="2025-06-08"> <owner>kouhei@chromium.org</owner> <owner>chrome-loading@chromium.org</owner> <summary>
diff --git a/tools/metrics/histograms/metadata/printing/histograms.xml b/tools/metrics/histograms/metadata/printing/histograms.xml index 39c0e20..947f2795 100644 --- a/tools/metrics/histograms/metadata/printing/histograms.xml +++ b/tools/metrics/histograms/metadata/printing/histograms.xml
@@ -613,7 +613,7 @@ </histogram> <histogram name="PrintPreview.InitialDisplayTimeFirstPrint" units="ms" - expires_after="2025-03-30"> + expires_after="2025-06-08"> <owner>thestig@chromium.org</owner> <owner>awscreen@chromium.org</owner> <summary>
diff --git a/tools/metrics/histograms/metadata/privacy/histograms.xml b/tools/metrics/histograms/metadata/privacy/histograms.xml index 0954a28..e8bd67a 100644 --- a/tools/metrics/histograms/metadata/privacy/histograms.xml +++ b/tools/metrics/histograms/metadata/privacy/histograms.xml
@@ -284,7 +284,7 @@ </histogram> <histogram name="Privacy.CookieControlsActivated.PageRefreshCount" - units="count" expires_after="2025-04-06"> + units="count" expires_after="2025-06-08"> <owner>olesiamarukhno@google.com</owner> <owner>sauski@google.com</owner> <owner>kmg@google.com</owner> @@ -295,7 +295,7 @@ </histogram> <histogram name="Privacy.CookieControlsActivated.SaaRequested" - enum="BooleanEnabled" expires_after="2025-04-06"> + enum="BooleanEnabled" expires_after="2025-06-08"> <owner>olesiamarukhno@google.com</owner> <owner>sauski@google.com</owner> <owner>kmg@google.com</owner> @@ -306,7 +306,7 @@ </histogram> <histogram name="Privacy.CookieControlsActivated.SiteDataAccessType" - enum="ThirdPartySiteDataAccessType" expires_after="2025-03-30"> + enum="ThirdPartySiteDataAccessType" expires_after="2025-06-08"> <owner>olesiamarukhno@google.com</owner> <owner>sauski@google.com</owner> <owner>kmg@google.com</owner> @@ -318,7 +318,7 @@ </histogram> <histogram name="Privacy.CookieControlsActivated.SiteEngagementScore" - units="units" expires_after="2025-03-30"> + units="units" expires_after="2025-06-08"> <owner>olesiamarukhno@google.com</owner> <owner>sauski@google.com</owner> <owner>kmg@google.com</owner> @@ -376,7 +376,7 @@ <histogram name="Privacy.DeleteBrowsingData.Duration.TabsClosureAnimationDuration" - units="microseconds" expires_after="2025-03-09"> + units="microseconds" expires_after="2025-06-08"> <owner>fsenra@chromium.org</owner> <owner>alimariam@chromium.org</owner> <owner>chrome-browser-privacy-team@google.com</owner> @@ -391,7 +391,7 @@ <histogram name="Privacy.DeleteBrowsingData.Duration.TabsClosureAnimationStartDelay" - units="microseconds" expires_after="2025-03-09"> + units="microseconds" expires_after="2025-06-08"> <owner>fsenra@chromium.org</owner> <owner>alimariam@chromium.org</owner> <owner>chrome-browser-privacy-team@google.com</owner> @@ -423,7 +423,7 @@ </histogram> <histogram name="Privacy.DIPS.BounceCategory{DIPSRedirectType}{DIPSCookieMode}" - enum="DIPSRedirectCategory" expires_after="2025-03-23"> + enum="DIPSRedirectCategory" expires_after="2025-06-08"> <owner>rtarpine@chromium.org</owner> <owner>src/chrome/browser/dips/OWNERS</owner> <summary> @@ -440,7 +440,7 @@ </histogram> <histogram name="Privacy.DIPS.BounceStatusCode.{DIPSCachedResponseStatus}" - enum="HttpResponseCode" expires_after="2025-03-31"> + enum="HttpResponseCode" expires_after="2025-06-08"> <owner>liu@chromium.org</owner> <owner>src/chrome/browser/dips/OWNERS</owner> <summary> @@ -552,7 +552,7 @@ </histogram> <histogram name="Privacy.DIPS.DeletionLatency2" units="ms" - expires_after="2025-03-30"> + expires_after="2025-06-08"> <owner>wanderview@chromium.org</owner> <owner>src/chrome/browser/dips/OWNERS</owner> <summary> @@ -597,7 +597,7 @@ </histogram> <histogram name="Privacy.DIPS.ServerBounceChainDelay" units="ms" - expires_after="2025-03-31"> + expires_after="2025-06-08"> <owner>liu@chromium.org</owner> <owner>src/chrome/browser/dips/OWNERS</owner> <summary> @@ -608,7 +608,7 @@ </histogram> <histogram name="Privacy.DIPS.ServerBounceDelay" units="ms" - expires_after="2025-03-31"> + expires_after="2025-06-08"> <owner>liu@chromium.org</owner> <owner>src/chrome/browser/dips/OWNERS</owner> <summary> @@ -746,7 +746,7 @@ <histogram name="PrivacySandbox.ActivityTypeStorage.10MostRecentRecordsUserSegment2" enum="PrivacySandboxStorageUserSegmentByRecentActivity" - expires_after="2025-03-30"> + expires_after="2025-06-08"> <owner>jacobstanley@google.com</owner> <owner>koilos@google.com</owner> <summary> @@ -758,7 +758,7 @@ <histogram name="PrivacySandbox.ActivityTypeStorage.20MostRecentRecordsUserSegment2" enum="PrivacySandboxStorageUserSegmentByRecentActivity" - expires_after="2025-03-30"> + expires_after="2025-06-08"> <owner>jacobstanley@google.com</owner> <owner>koilos@google.com</owner> <summary> @@ -768,7 +768,7 @@ </histogram> <histogram name="PrivacySandbox.ActivityTypeStorage.DaysSinceOldestRecord" - units="days" expires_after="2025-03-30"> + units="days" expires_after="2025-06-08"> <owner>jacobstanley@google.com</owner> <owner>koilos@google.com</owner> <summary> @@ -779,7 +779,7 @@ <histogram name="PrivacySandbox.ActivityTypeStorage.Percentage.{ActivityTypeStoragePercentage}2" - units="%" expires_after="2025-03-30"> + units="%" expires_after="2025-06-08"> <owner>jacobstanley@google.com</owner> <owner>koilos@google.com</owner> <summary> @@ -964,7 +964,7 @@ </histogram> <histogram name="PrivacySandbox.AggregationService.ScheduledRequests.Status" - enum="AggregationServiceObserverReportStatus" expires_after="2025-03-30"> + enum="AggregationServiceObserverReportStatus" expires_after="2025-06-08"> <owner>alexmt@chromium.org</owner> <owner>linnan@chromium.org</owner> <summary> @@ -1132,7 +1132,7 @@ </histogram> <histogram name="PrivacySandbox.AggregationService.UnscheduledRequests.Status" - enum="AggregationServiceObserverReportStatus" expires_after="2025-03-30"> + enum="AggregationServiceObserverReportStatus" expires_after="2025-06-08"> <owner>alexmt@chromium.org</owner> <owner>linnan@chromium.org</owner> <summary> @@ -1438,16 +1438,6 @@ <token key="PSNotice" variants="PSNotice"/> </histogram> -<histogram name="PrivacySandbox.NoticeQueueState" enum="NoticeQueueState" - expires_after="2025-10-13"> - <owner>aashnas@google.com</owner> - <owner>koilos@google.com</owner> - <summary> - Records queueing related states for a notice. Logged for every notice - required for the active profile. - </summary> -</histogram> - <histogram name="PrivacySandbox.NoticeRequirement.IsVariationCountryEmpty" enum="Boolean" expires_after="2025-05-25"> <owner>chrstne@google.com</owner> @@ -1507,7 +1497,7 @@ <histogram name="PrivacySandbox.PrivateAggregation.Budgeter.EnoughBudgetForAnyValueIfNotEnoughOverall" - enum="Boolean" expires_after="2025-03-30"> + enum="Boolean" expires_after="2025-06-08"> <owner>alexmt@chromium.org</owner> <owner>dmcardle@chromium.org</owner> <summary> @@ -1524,7 +1514,7 @@ <histogram name="PrivacySandbox.PrivateAggregation.Budgeter.NumReportingOriginsStoredPerSite" - units="counts" expires_after="2025-03-30"> + units="counts" expires_after="2025-06-08"> <owner>alexmt@chromium.org</owner> <owner>linnan@chromium.org</owner> <owner>measurement-api-dev+metrics@google.com</owner>
diff --git a/tools/metrics/histograms/metadata/profile/histograms.xml b/tools/metrics/histograms/metadata/profile/histograms.xml index ae8bc2e..ef859048 100644 --- a/tools/metrics/histograms/metadata/profile/histograms.xml +++ b/tools/metrics/histograms/metadata/profile/histograms.xml
@@ -422,7 +422,7 @@ </histogram> <histogram name="Profile.NumberOfProfilesAtProfileInit" units="profiles" - expires_after="2025-02-02"> + expires_after="2025-06-08"> <owner>alexilin@chromium.org</owner> <owner>chrome-signin-team@google.com</owner> <summary> @@ -613,7 +613,7 @@ </summary> </histogram> -<histogram name="Profile.{Database}Size" units="MB" expires_after="2025-03-30"> +<histogram name="Profile.{Database}Size" units="MB" expires_after="2025-06-08"> <owner>etienneb@chromium.org</owner> <owner>gab@chromium.org</owner> <summary> @@ -723,7 +723,7 @@ </histogram> <histogram name="ProfilePicker.FirstRun.ExitStatus" enum="FirstRunExitStatus" - expires_after="2025-04-06"> + expires_after="2025-06-08"> <owner>dgn@chromium.org</owner> <owner>for-you-fre@google.com</owner> <summary> @@ -746,7 +746,7 @@ </histogram> <histogram name="ProfilePicker.FirstRun.OrganizationAvailableTiming" units="ms" - expires_after="2025-04-06"> + expires_after="2025-06-08"> <owner>dgn@chromium.org</owner> <owner>jyammine@google.com</owner> <owner>chrome-signin-team@google.com</owner>
diff --git a/tools/metrics/histograms/metadata/quick_answers/histograms.xml b/tools/metrics/histograms/metadata/quick_answers/histograms.xml index e7cf5df..b9f3aac6 100644 --- a/tools/metrics/histograms/metadata/quick_answers/histograms.xml +++ b/tools/metrics/histograms/metadata/quick_answers/histograms.xml
@@ -162,7 +162,7 @@ </histogram> <histogram name="QuickAnswers.FeatureEnabled" enum="BooleanEnabled" - expires_after="2025-02-01"> + expires_after="2025-06-08"> <owner>angelaxiao@chromium.org</owner> <owner>yawano@google.com</owner> <owner>croissant-eng@chromium.org</owner> @@ -327,7 +327,7 @@ <histogram name="QuickAnswers.V2.Consent.Duration{QuickAnswersV2ConsentResultType}" - units="ms" expires_after="2025-02-01"> + units="ms" expires_after="2025-06-08"> <owner>angelaxiao@chromium.org</owner> <owner>yawano@google.com</owner> <owner>croissant-eng@chromium.org</owner>
diff --git a/tools/metrics/histograms/metadata/quickstart/histograms.xml b/tools/metrics/histograms/metadata/quickstart/histograms.xml index d29c263e..ca7ad92 100644 --- a/tools/metrics/histograms/metadata/quickstart/histograms.xml +++ b/tools/metrics/histograms/metadata/quickstart/histograms.xml
@@ -24,7 +24,7 @@ <histogram name="QuickStart.AttestationCertificate.FailureReason" enum="QuickStartAttestationCertificateFetchFailureReason" - expires_after="2025-04-06"> + expires_after="2025-06-08"> <owner>sinhak@chromium.org</owner> <owner>hansenmichael@google.com</owner> <owner>chromeos-cross-device-eng@google.com</owner> @@ -48,7 +48,7 @@ </histogram> <histogram name="QuickStart.AttestationCertificate.FetchResult" - enum="BooleanSuccess" expires_after="2025-04-06"> + enum="BooleanSuccess" expires_after="2025-06-08"> <owner>sinhak@chromium.org</owner> <owner>hansenmichael@google.com</owner> <owner>chromeos-cross-device-eng@google.com</owner> @@ -61,7 +61,7 @@ </histogram> <histogram name="QuickStart.AuthenticationMethod" - enum="QuickStartAuthenticationMethod" expires_after="2025-04-06"> + enum="QuickStartAuthenticationMethod" expires_after="2025-06-08"> <owner>bhartmire@google.com</owner> <owner>hansenmichael@google.com</owner> <owner>chromeos-cross-device-eng@google.com</owner> @@ -85,7 +85,7 @@ </histogram> <histogram name="QuickStart.ChallengeBytes.FetchDuration" units="ms" - expires_after="2025-04-06"> + expires_after="2025-06-08"> <owner>sinhak@chromium.org</owner> <owner>bhartmire@google.com</owner> <owner>chromeos-cross-device-eng@google.com</owner> @@ -97,7 +97,7 @@ </histogram> <histogram name="QuickStart.ChallengeBytes.FetchResult" enum="BooleanSuccess" - expires_after="2025-04-06"> + expires_after="2025-06-08"> <owner>sinhak@chromium.org</owner> <owner>bhartmire@google.com</owner> <owner>chromeos-cross-device-eng@google.com</owner> @@ -235,7 +235,7 @@ </histogram> <histogram name="QuickStart.GaiaAuthentication.Duration" units="ms" - expires_after="2025-04-06"> + expires_after="2025-06-08"> <owner>sinhak@chromium.org</owner> <owner>bhartmire@google.com</owner> <owner>chromeos-cross-device-eng@google.com</owner> @@ -246,7 +246,7 @@ </histogram> <histogram name="QuickStart.GaiaAuthentication.Result" - enum="QuickStartGaiaAuthenticationResult" expires_after="2025-04-06"> + enum="QuickStartGaiaAuthenticationResult" expires_after="2025-06-08"> <owner>sinhak@chromium.org</owner> <owner>bhartmire@google.com</owner> <owner>chromeos-cross-device-eng@google.com</owner> @@ -258,7 +258,7 @@ </histogram> <histogram name="QuickStart.GaiaTransferResult" enum="BooleanSuccess" - expires_after="2025-04-06"> + expires_after="2025-06-08"> <owner>bhartmire@google.com</owner> <owner>joeantonetti@google.com</owner> <owner>chromeos-cross-device-eng@google.com</owner> @@ -269,7 +269,7 @@ </histogram> <histogram name="QuickStart.GaiaTransferResult.FailureReason" - enum="QuickStartGaiaTransferResultFailureReason" expires_after="2025-04-06"> + enum="QuickStartGaiaTransferResultFailureReason" expires_after="2025-06-08"> <owner>bhartmire@google.com</owner> <owner>joeantonetti@google.com</owner> <owner>chromeos-cross-device-eng@google.com</owner> @@ -280,7 +280,7 @@ </histogram> <histogram name="QuickStart.HandshakeResult.Duration" units="ms" - expires_after="2025-04-06"> + expires_after="2025-06-08"> <owner>bhartmire@google.com</owner> <owner>joeantonetti@google.com</owner> <owner>chromeos-cross-device-eng@google.com</owner> @@ -302,7 +302,7 @@ </histogram> <histogram name="QuickStart.HandshakeResult.Succeeded" enum="BooleanSuccess" - expires_after="2025-04-06"> + expires_after="2025-06-08"> <owner>bhartmire@google.com</owner> <owner>joeantonetti@google.com</owner> <owner>chromeos-cross-device-eng@google.com</owner> @@ -357,7 +357,7 @@ </histogram> <histogram name="QuickStart.MessageReceived.{MessageType}.ListenDuration" - units="ms" expires_after="2025-04-06"> + units="ms" expires_after="2025-06-08"> <owner>bhartmire@google.com</owner> <owner>joeantonetti@google.com</owner> <owner>chromeos-cross-device-eng@google.com</owner> @@ -379,7 +379,7 @@ </histogram> <histogram name="QuickStart.MessageReceived.{MessageType}.Succeeded" - enum="BooleanSuccess" expires_after="2025-04-06"> + enum="BooleanSuccess" expires_after="2025-06-08"> <owner>bhartmire@google.com</owner> <owner>joeantonetti@google.com</owner> <owner>chromeos-cross-device-eng@google.com</owner> @@ -475,7 +475,7 @@ </histogram> <histogram name="QuickStart.ScreenClosed.{ScreenName}.Reason" - enum="ScreenClosedReason" expires_after="2025-04-09"> + enum="ScreenClosedReason" expires_after="2025-06-08"> <owner>bhartmire@google.com</owner> <owner>chromeos-cross-device-eng@google.com</owner> <summary> @@ -581,7 +581,7 @@ </histogram> <histogram name="QuickStart.WifiTransferResult" enum="BooleanSuccess" - expires_after="2025-04-06"> + expires_after="2025-06-08"> <owner>bhartmire@google.com</owner> <owner>joeantonetti@google.com</owner> <owner>chromeos-cross-device-eng@google.com</owner> @@ -592,7 +592,7 @@ </histogram> <histogram name="QuickStart.WifiTransferResult.FailureReason" - enum="QuickStartWifiTransferResultFailureReason" expires_after="2025-04-06"> + enum="QuickStartWifiTransferResultFailureReason" expires_after="2025-06-08"> <owner>bhartmire@google.com</owner> <owner>joeantonetti@google.com</owner> <owner>chromeos-cross-device-eng@google.com</owner>
diff --git a/tools/metrics/histograms/metadata/quota/histograms.xml b/tools/metrics/histograms/metadata/quota/histograms.xml index 4cd6b44..85fce485 100644 --- a/tools/metrics/histograms/metadata/quota/histograms.xml +++ b/tools/metrics/histograms/metadata/quota/histograms.xml
@@ -78,7 +78,7 @@ </histogram> <histogram name="Quota.DatabaseSpecificError.{Statement}" - enum="SqliteLoggedResultCode" expires_after="2025-03-23"> + enum="SqliteLoggedResultCode" expires_after="2025-06-08"> <owner>estade@chromium.org</owner> <owner>chrome-owp-storage@google.com</owner> <summary>
diff --git a/tools/metrics/histograms/metadata/renderer/histograms.xml b/tools/metrics/histograms/metadata/renderer/histograms.xml index f4d6d2ba..588aeb6 100644 --- a/tools/metrics/histograms/metadata/renderer/histograms.xml +++ b/tools/metrics/histograms/metadata/renderer/histograms.xml
@@ -390,7 +390,7 @@ </histogram> <histogram name="Renderer.PaintPreview.Capture.MainFrameSuccess" - enum="BooleanSuccess" expires_after="2025-03-02"> + enum="BooleanSuccess" expires_after="2025-06-08"> <owner>ckitagawa@chromium.org</owner> <owner>fredmello@chromium.org</owner> <owner>chrome-fdt@google.com</owner> @@ -464,7 +464,7 @@ </histogram> <histogram name="Renderer.ProcessLifetime3{RendererHostedContentType}" - units="ms" expires_after="2025-04-06"> + units="ms" expires_after="2025-06-08"> <owner>fdoray@chromium.org</owner> <owner>olivierli@chromium.org</owner> <owner>catan-team@chromium.org</owner> @@ -490,7 +490,7 @@ </histogram> <histogram name="Renderer.RenderThreadImpl.Init" units="ms" - expires_after="2025-03-30"> + expires_after="2025-06-08"> <owner>jam@chromium.org</owner> <owner>sky@chromium.org</owner> <summary> @@ -500,7 +500,7 @@ </histogram> <histogram name="Renderer.Unresponsive.Reason{WidgetVisibility}" - enum="RendererIsUnresponsiveReason" expires_after="2025-04-06"> + enum="RendererIsUnresponsiveReason" expires_after="2025-06-08"> <owner>pmonette@chromium.org</owner> <owner>catan-team@chromium.org</owner> <summary> @@ -526,7 +526,7 @@ <histogram name="Renderer.Unresponsive.{UIElementVisible}.RenderProcessHostPriority" - enum="RenderProcessHostPriority" expires_after="2025-04-06"> + enum="RenderProcessHostPriority" expires_after="2025-06-08"> <owner>pmonette@chromium.org</owner> <owner>catan-team@chromium.org</owner> <summary>
diff --git a/tools/metrics/histograms/metadata/safe_browsing/histograms.xml b/tools/metrics/histograms/metadata/safe_browsing/histograms.xml index 13fab7b..6dee7ccd 100644 --- a/tools/metrics/histograms/metadata/safe_browsing/histograms.xml +++ b/tools/metrics/histograms/metadata/safe_browsing/histograms.xml
@@ -207,7 +207,7 @@ <histogram name="SafeBrowsing.AndroidTelemetry.DownloadDirectlyTriggeredByIntent" - enum="Boolean" expires_after="2025-04-06"> + enum="Boolean" expires_after="2025-06-08"> <owner>drubery@chromium.org</owner> <owner>chrome-counter-abuse-alerts@google.com</owner> <summary> @@ -254,7 +254,7 @@ </histogram> <histogram name="SafeBrowsing.AuthenticatedCookieResetEndpoint" - enum="SafeBrowsingAuthenticatedEndpoint" expires_after="2025-04-06"> + enum="SafeBrowsingAuthenticatedEndpoint" expires_after="2025-06-08"> <owner>drubery@chromium.org</owner> <owner>chrome-counter-abuse-alerts@google.com</owner> <summary> @@ -319,7 +319,7 @@ </histogram> <histogram name="SafeBrowsing.BrowserThrottle.IsAsyncCheckFasterThanSyncCheck" - enum="BooleanYesNo" expires_after="2025-03-30"> + enum="BooleanYesNo" expires_after="2025-06-08"> <owner>thefrog@chromium.org</owner> <owner>chrome-counter-abuse-alerts@google.com</owner> <summary> @@ -431,7 +431,7 @@ </histogram> <histogram name="SafeBrowsing.CheckUrl.IsDocumentCheckPrefetch" - enum="BooleanIsPrefetch" expires_after="2025-03-30"> + enum="BooleanIsPrefetch" expires_after="2025-06-08"> <owner>thefrog@chromium.org</owner> <owner>chrome-counter-abuse-alerts@google.com</owner> <summary> @@ -604,7 +604,7 @@ </histogram> <histogram name="SafeBrowsing.ClientSafeBrowsingReport.RequestHasToken" - enum="BooleanSent" expires_after="2025-03-02"> + enum="BooleanSent" expires_after="2025-06-08"> <owner>thefrog@chromium.org</owner> <owner>chrome-counter-abuse-alerts@google.com</owner> <summary> @@ -841,7 +841,7 @@ </histogram> <histogram name="SafeBrowsing.ExtensionPersister.WriteResult{Trigger}" - enum="BooleanSuccess" expires_after="2025-03-30"> + enum="BooleanSuccess" expires_after="2025-06-08"> <owner>psarouthakis@google.com</owner> <owner>chrome-counter-abuse-alerts@google.com</owner> <summary> @@ -1228,7 +1228,7 @@ </histogram> <histogram name="SafeBrowsing.GetReferringAppInfo.Duration" units="ms" - expires_after="2025-03-30"> + expires_after="2025-06-08"> <owner>nwokedi@chromium.org</owner> <owner>chrome-counter-abuse-alerts@google.com</owner> <summary> @@ -1238,7 +1238,7 @@ </histogram> <histogram name="SafeBrowsing.GmsSafeBrowsingApi.ApiExceptionStatusCode" - enum="SafeBrowsingApiExceptionStatusCode" expires_after="2025-03-30"> + enum="SafeBrowsingApiExceptionStatusCode" expires_after="2025-06-08"> <owner>xinghuilu@chromium.org</owner> <owner>chrome-counter-abuse-alerts@google.com</owner> <summary> @@ -1284,7 +1284,7 @@ </histogram> <histogram name="SafeBrowsing.GmsSafeBrowsingApi.HasUnknownExceptionType" - enum="BooleanSafeBrowsingApiUnknownException" expires_after="2025-03-30"> + enum="BooleanSafeBrowsingApiUnknownException" expires_after="2025-06-08"> <owner>xinghuilu@chromium.org</owner> <owner>chrome-counter-abuse-alerts@google.com</owner> <summary> @@ -1294,7 +1294,7 @@ </histogram> <histogram name="SafeBrowsing.GmsSafeBrowsingApi.IsAvailable{Protocol}" - enum="BooleanAvailable" expires_after="2025-03-30"> + enum="BooleanAvailable" expires_after="2025-06-08"> <owner>xinghuilu@chromium.org</owner> <owner>chrome-counter-abuse-alerts@google.com</owner> <summary> @@ -1339,7 +1339,7 @@ </histogram> <histogram name="SafeBrowsing.GmsSafeBrowsingApi.ResponseStatus{Protocol}" - enum="SafeBrowsingApiResponseStatus" expires_after="2025-03-30"> + enum="SafeBrowsingApiResponseStatus" expires_after="2025-06-08"> <owner>xinghuilu@chromium.org</owner> <owner>chrome-counter-abuse-alerts@google.com</owner> <summary> @@ -1352,7 +1352,7 @@ <histogram name="SafeBrowsing.GmsSafeBrowsingApi.ThreatAttributeCount{Protocol}" - units="entries" expires_after="2025-03-30"> + units="entries" expires_after="2025-06-08"> <owner>xinghuilu@chromium.org</owner> <owner>chrome-counter-abuse-alerts@google.com</owner> <summary> @@ -1376,7 +1376,7 @@ </histogram> <histogram name="SafeBrowsing.GmsSafeBrowsingApi.ThreatType2{Protocol}" - enum="SafeBrowsingApiThreatType" expires_after="2025-03-30"> + enum="SafeBrowsingApiThreatType" expires_after="2025-06-08"> <owner>xinghuilu@chromium.org</owner> <owner>chrome-counter-abuse-alerts@google.com</owner> <summary> @@ -1704,7 +1704,7 @@ </histogram> <histogram name="SafeBrowsing.HPRT.OhttpKeyService.FetchKeyTriggerReason" - enum="SafeBrowsingOhttpFetchKeyTriggerReason" expires_after="2025-03-30"> + enum="SafeBrowsingOhttpFetchKeyTriggerReason" expires_after="2025-06-08"> <owner>xinghuilu@chromium.org</owner> <owner>chrome-counter-abuse-alerts@google.com</owner> <summary> @@ -1717,7 +1717,7 @@ <histogram name="SafeBrowsing.HPRT.OhttpKeyService.FirstLookupResponseCodeFromCurrentKey" - enum="HttpResponseCode" expires_after="2025-03-30"> + enum="HttpResponseCode" expires_after="2025-06-08"> <owner>xinghuilu@chromium.org</owner> <owner>chrome-counter-abuse-alerts@google.com</owner> <summary> @@ -2771,7 +2771,7 @@ <histogram name="SafeBrowsing.SiteProtection.FamiliarityMetricDataFetchDuration.OffTheRecord" - units="ms" expires_after="2025-04-06"> + units="ms" expires_after="2025-06-08"> <owner>pkotwicz@chromium.org</owner> <owner>chrome-counter-abuse-core@google.com</owner> <summary> @@ -2818,7 +2818,7 @@ </histogram> <histogram name="SafeBrowsing.TailoredSecurity.IsRecoveryTriggered" - enum="Boolean" expires_after="2025-04-06"> + enum="Boolean" expires_after="2025-06-08"> <owner>awado@chromium.org</owner> <owner>chrome-safebrowsing-alerts@google.com</owner> <summary> @@ -3366,7 +3366,7 @@ </histogram> <histogram name="SafeBrowsing.V4Store.IsStoreValid" enum="BooleanValid" - expires_after="2025-03-30"> + expires_after="2025-06-08"> <owner>xinghuilu@chromium.org</owner> <owner>chrome-counter-abuse-alerts@google.com</owner> <summary>
diff --git a/tools/metrics/histograms/metadata/sb_client/histograms.xml b/tools/metrics/histograms/metadata/sb_client/histograms.xml index 626793e..0976281f 100644 --- a/tools/metrics/histograms/metadata/sb_client/histograms.xml +++ b/tools/metrics/histograms/metadata/sb_client/histograms.xml
@@ -265,7 +265,7 @@ </histogram> <histogram name="SBClientDownload.DownloadRequestResponseCode" - enum="HttpResponseCode" expires_after="2025-03-17"> + enum="HttpResponseCode" expires_after="2025-06-08"> <owner>drubery@chromium.org</owner> <owner>chrome-counter-abuse-alerts@google.com</owner> <owner>mattm@chromium.org</owner> @@ -408,7 +408,7 @@ <histogram name="SBClientDownload.Warning.DownloadHasUserGesture.{DangerType}.{Action}" - enum="BooleanHasUserGesture" expires_after="2025-01-26"> + enum="BooleanHasUserGesture" expires_after="2025-06-08"> <owner>xinghuilu@chromium.org</owner> <owner>chrome-counter-abuse-alerts@google.com</owner> <summary> @@ -445,7 +445,7 @@ </histogram> <histogram name="SBClientDownload.Warning.FileType.{DangerType}.{Action}" - enum="SBClientDownloadExtensions" expires_after="2025-03-30"> + enum="SBClientDownloadExtensions" expires_after="2025-06-08"> <owner>xinghuilu@chromium.org</owner> <owner>chrome-counter-abuse-alerts@google.com</owner> <summary> @@ -538,7 +538,7 @@ </histogram> <histogram name="SBClientPhishing.ApplyTfliteTime.Classify" units="ms" - expires_after="2025-03-30"> + expires_after="2025-06-08"> <owner>andysjlim@chromium.org</owner> <owner>chrome-counter-abuse-alerts@google.com</owner> <summary> @@ -616,7 +616,7 @@ </histogram> <histogram name="SBClientPhishing.ClientSideDetectionTypeRequest" - enum="ClientSideDetectionType" expires_after="2025-03-30"> + enum="ClientSideDetectionType" expires_after="2025-06-08"> <owner>andysjlim@chromium.org</owner> <owner>chrome-counter-abuse-alerts@google.com</owner> <summary>
diff --git a/tools/metrics/histograms/metadata/scheduler/histograms.xml b/tools/metrics/histograms/metadata/scheduler/histograms.xml index 0ce7ce9..f79394f9 100644 --- a/tools/metrics/histograms/metadata/scheduler/histograms.xml +++ b/tools/metrics/histograms/metadata/scheduler/histograms.xml
@@ -197,7 +197,7 @@ <histogram name="Scheduling.ThreadController.ActiveIntervalDuration.{Length}.{NamedThread}" - units="ms" expires_after="2025-03-30"> + units="ms" expires_after="2025-06-08"> <owner>olivierli@google.com</owner> <owner>etienneb@google.com</owner> <summary> @@ -228,7 +228,7 @@ <histogram name="Scheduling.ThreadController.ActiveIntervalOffCpuDuration.{Length}.{NamedThread}" - units="ms" expires_after="2025-03-30"> + units="ms" expires_after="2025-06-08"> <owner>olivierli@google.com</owner> <owner>etienneb@google.com</owner> <summary> @@ -259,7 +259,7 @@ <histogram name="Scheduling.ThreadController.ActiveIntervalOnCpuDuration.{Length}.{NamedThread}" - units="ms" expires_after="2025-03-30"> + units="ms" expires_after="2025-06-08"> <owner>olivierli@google.com</owner> <owner>etienneb@google.com</owner> <summary> @@ -273,7 +273,7 @@ <histogram name="Scheduling.ThreadController.ActiveIntervalOnCpuPercentage.Short.{NamedThread}" - units="%" expires_after="2025-03-30"> + units="%" expires_after="2025-06-08"> <owner>olivierli@google.com</owner> <owner>etienneb@google.com</owner> <summary> @@ -286,7 +286,7 @@ <histogram name="Scheduling.ThreadController.ActiveIntervalOnCpuPercentage.{Length}.{NamedThread}" - units="%" expires_after="2025-03-30"> + units="%" expires_after="2025-06-08"> <owner>olivierli@google.com</owner> <owner>etienneb@google.com</owner> <summary> @@ -377,7 +377,7 @@ <histogram name="Scheduling.ThreadController.IdleDuration.{Length}.{NamedThread}" - units="ms" expires_after="2025-03-30"> + units="ms" expires_after="2025-06-08"> <owner>olivierli@google.com</owner> <owner>etienneb@google.com</owner> <summary>
diff --git a/tools/metrics/histograms/metadata/search/histograms.xml b/tools/metrics/histograms/metadata/search/histograms.xml index 0c43eaa..33872ff0 100644 --- a/tools/metrics/histograms/metadata/search/histograms.xml +++ b/tools/metrics/histograms/metadata/search/histograms.xml
@@ -281,7 +281,7 @@ </histogram> <histogram name="Search.ChoiceReprompt{Category}" - enum="SearchEngineChoiceReprompt" expires_after="2025-04-06"> + enum="SearchEngineChoiceReprompt" expires_after="2025-06-08"> <owner>droger@chromium.org</owner> <owner>chrome-waffle-eng@google.com</owner> <summary> @@ -417,7 +417,7 @@ </histogram> <histogram name="Search.ChoiceWipeReason" enum="SearchEngineChoiceWipeReason" - expires_after="2025-04-06"> + expires_after="2025-06-08"> <owner>droger@chromium.org</owner> <owner>chrome-waffle-eng@google.com</owner> <summary> @@ -894,7 +894,7 @@ </histogram> <histogram name="Search.DefaultSearchProviderType2{Population}" - enum="OmniboxSearchEngineType" expires_after="2025-03-30"> + enum="OmniboxSearchEngineType" expires_after="2025-06-08"> <owner>mpearson@chromium.org</owner> <owner>ftirelo@chromium.org</owner> <summary> @@ -1454,7 +1454,7 @@ </histogram> <histogram name="Search.SaveGuestModeSelection" enum="BooleanYesNo" - expires_after="2025-04-06"> + expires_after="2025-06-08"> <owner>dullweber@chromium.org</owner> <owner>chrome-waffle-eng@google.com</owner> <summary>
diff --git a/tools/metrics/histograms/metadata/security/histograms.xml b/tools/metrics/histograms/metadata/security/histograms.xml index c0c1d9fd..a00e5f6 100644 --- a/tools/metrics/histograms/metadata/security/histograms.xml +++ b/tools/metrics/histograms/metadata/security/histograms.xml
@@ -163,7 +163,7 @@ </histogram> <histogram name="Security.GwpAsan.AllocatorOom.{Allocator}.{Process}" - units="allocations" expires_after="2025-04-06"> + units="allocations" expires_after="2025-06-08"> <owner>mpdenton@chromium.org</owner> <owner>kdlee@chromium.org</owner> <owner>memory-safety-dev@chromium.org</owner> @@ -418,7 +418,7 @@ </histogram> <histogram name="Security.PageInfo.AdPersonalizationRowShown" enum="Boolean" - expires_after="2025-02-16"> + expires_after="2025-06-08"> <owner>dullweber@chromium.org</owner> <owner>sauski@google.com</owner> <summary>
diff --git a/tools/metrics/histograms/metadata/segmentation_platform/histograms.xml b/tools/metrics/histograms/metadata/segmentation_platform/histograms.xml index 554d798..47233a84 100644 --- a/tools/metrics/histograms/metadata/segmentation_platform/histograms.xml +++ b/tools/metrics/histograms/metadata/segmentation_platform/histograms.xml
@@ -183,7 +183,7 @@ <histogram name="SegmentationPlatform.ClassificationRequest.TotalDuration.{SegmentationKey}" - units="ms" expires_after="2025-03-22"> + units="ms" expires_after="2025-06-08"> <owner>ritikagup@google.com</owner> <owner>chrome-segmentation-platform@google.com</owner> <summary> @@ -226,7 +226,7 @@ <histogram name="SegmentationPlatform.DefaultModelDelivery.Metadata.Validation.{ValidationPhase}.{SegmentationModel}" - enum="SegmentationPlatformValidationResult" expires_after="2025-03-22"> + enum="SegmentationPlatformValidationResult" expires_after="2025-06-08"> <owner>ritikagup@google.com</owner> <owner>chrome-segmentation-platform@google.com</owner> <summary> @@ -256,7 +256,7 @@ <histogram name="SegmentationPlatform.DefaultModelDelivery.SaveResult.{SegmentationModel}" - enum="BooleanSuccess" expires_after="2025-03-22"> + enum="BooleanSuccess" expires_after="2025-06-08"> <owner>ritikagup@google.com</owner> <owner>chrome-segmentation-platform@google.com</owner> <summary> @@ -271,7 +271,7 @@ <histogram name="SegmentationPlatform.DefaultModelDelivery.SegmentIdMatches.{SegmentationModel}" - enum="BooleanYesNo" expires_after="2025-03-22"> + enum="BooleanYesNo" expires_after="2025-06-08"> <owner>ritikagup@google.com</owner> <owner>chrome-segmentation-platform@google.com</owner> <summary> @@ -285,7 +285,7 @@ </histogram> <histogram name="SegmentationPlatform.DeviceCountByOsType.{OsType}" - units="devices" expires_after="2025-03-22"> + units="devices" expires_after="2025-06-08"> <owner>junzou@chromium.org</owner> <owner>ssid@chromium.org</owner> <owner>chrome-segmentation-team@google.com</owner> @@ -313,7 +313,7 @@ <histogram name="SegmentationPlatform.FeatureProcessing.Error.{SegmentationModel}" enum="SegmentationPlatformFeatureProcessingError" - expires_after="2025-03-22"> + expires_after="2025-06-08"> <owner>haileywang@chromium.org</owner> <owner>chrome-segmentation-platform@google.com</owner> <summary> @@ -402,7 +402,7 @@ </histogram> <histogram name="SegmentationPlatform.ModelAvailability.{SegmentationModel}" - enum="SegmentationModelAvailability" expires_after="2025-03-22"> + enum="SegmentationModelAvailability" expires_after="2025-06-08"> <owner>ssid@chromium.org</owner> <owner>chrome-segmentation-platform@google.com</owner> <summary> @@ -437,7 +437,7 @@ <histogram name="SegmentationPlatform.ModelDelivery.HasMetadata.{SegmentationModel}" - enum="BooleanYesNo" expires_after="2025-03-22"> + enum="BooleanYesNo" expires_after="2025-06-08"> <owner>nyquist@chromium.org</owner> <owner>shaktisahu@chromium.org</owner> <owner>chrome-segmentation-platform@google.com</owner> @@ -469,7 +469,7 @@ <histogram name="SegmentationPlatform.ModelDelivery.Metadata.Validation.{ValidationPhase}.{SegmentationModel}" - enum="SegmentationPlatformValidationResult" expires_after="2025-03-22"> + enum="SegmentationPlatformValidationResult" expires_after="2025-06-08"> <owner>nyquist@chromium.org</owner> <owner>shaktisahu@chromium.org</owner> <owner>chrome-segmentation-platform@google.com</owner> @@ -533,7 +533,7 @@ <histogram name="SegmentationPlatform.ModelExecution.DefaultProvider.Status.{SegmentationModel}" - enum="SegmentationPlatformModelExecutionStatus" expires_after="2025-03-22"> + enum="SegmentationPlatformModelExecutionStatus" expires_after="2025-06-08"> <owner>nyquist@chromium.org</owner> <owner>shaktisahu@chromium.org</owner> <owner>chrome-segmentation-platform@google.com</owner> @@ -547,7 +547,7 @@ <histogram name="SegmentationPlatform.ModelExecution.Duration.FeatureProcessing.{SegmentationModel}" - units="ms" expires_after="2025-03-22"> + units="ms" expires_after="2025-06-08"> <owner>nyquist@chromium.org</owner> <owner>shaktisahu@chromium.org</owner> <owner>chrome-segmentation-platform@google.com</owner> @@ -562,7 +562,7 @@ <histogram name="SegmentationPlatform.ModelExecution.Duration.Model.{SegmentationModel}.{ModelExecutionStatus}" - units="ms" expires_after="2025-03-22"> + units="ms" expires_after="2025-06-08"> <owner>nyquist@chromium.org</owner> <owner>shaktisahu@chromium.org</owner> <owner>chrome-segmentation-platform@google.com</owner> @@ -579,7 +579,7 @@ <histogram name="SegmentationPlatform.ModelExecution.Duration.Total.{SegmentationModel}.{ModelExecutionStatus}" - units="ms" expires_after="2025-03-22"> + units="ms" expires_after="2025-06-08"> <owner>nyquist@chromium.org</owner> <owner>shaktisahu@chromium.org</owner> <owner>chrome-segmentation-platform@google.com</owner> @@ -673,7 +673,7 @@ <histogram name="SegmentationPlatform.ModelExecution.ZeroValuePercent.{SegmentationModel}" - units="%" expires_after="2025-03-22"> + units="%" expires_after="2025-06-08"> <owner>nyquist@chromium.org</owner> <owner>shaktisahu@chromium.org</owner> <owner>chrome-segmentation-platform@google.com</owner> @@ -799,7 +799,7 @@ </histogram> <histogram name="SegmentationPlatform.Signals.ListeningCount.{SignalType}" - units="signals" expires_after="2025-03-22"> + units="signals" expires_after="2025-06-08"> <owner>nyquist@chromium.org</owner> <owner>shaktisahu@chromium.org</owner> <owner>chrome-segmentation-platform@google.com</owner> @@ -905,7 +905,7 @@ <histogram name="SegmentationPlatform.TrainingDataCollectionEvents.{SegmentationModel}" enum="SegmentationPlatformTrainingDataCollectionEvent" - expires_after="2025-03-22"> + expires_after="2025-06-08"> <owner>ssid@chromium.org</owner> <owner>qinmin@chromium.org</owner> <owner>chrome-segmentation-platform@google.com</owner> @@ -931,7 +931,7 @@ <histogram name="SegmentationPlatform.{SegmentationKey}.PostProcessing.TopLabel.Computed" - units="index" expires_after="2025-03-22"> + units="index" expires_after="2025-06-08"> <owner>shaktisahu@chromium.org</owner> <owner>chrome-segmentation-platform@google.com</owner> <summary> @@ -945,7 +945,7 @@ <histogram name="SegmentationPlatform.{SegmentationKey}.PostProcessing.TopLabel.Switched" - units="index" expires_after="2025-03-22"> + units="index" expires_after="2025-06-08"> <owner>shaktisahu@chromium.org</owner> <owner>chrome-segmentation-platform@google.com</owner> <summary>
diff --git a/tools/metrics/histograms/metadata/service/histograms.xml b/tools/metrics/histograms/metadata/service/histograms.xml index 4bb9090d..e3319f7 100644 --- a/tools/metrics/histograms/metadata/service/histograms.xml +++ b/tools/metrics/histograms/metadata/service/histograms.xml
@@ -1154,7 +1154,7 @@ <histogram name="ServiceWorker.OnBrowserStartup.FirstFindRegistrationForClientUrl.Time" - units="ms" expires_after="2025-04-06"> + units="ms" expires_after="2025-06-08"> <owner>chikamune@chromium.org</owner> <owner>chrome-worker@google.com</owner> <summary> @@ -1252,7 +1252,7 @@ </histogram> <histogram name="ServiceWorker.RouterEvaluator.ConditionDepth" units="count" - expires_after="2025-04-06"> + expires_after="2025-06-08"> <owner>yyanagisawa@chromium.org</owner> <owner>chrome-worker@google.com</owner> <summary> @@ -1301,7 +1301,7 @@ </histogram> <histogram name="ServiceWorker.RouterEvaluator.OrConditionWidth" units="count" - expires_after="2025-04-06"> + expires_after="2025-06-08"> <owner>yyanagisawa@chromium.org</owner> <owner>chrome-worker@google.com</owner> <summary> @@ -1903,7 +1903,7 @@ <histogram name="ServiceWorkerCache.{ServiceWorkerCacheClientType}.Scheduler.OperationDuration2" - units="ms" expires_after="2025-03-23"> + units="ms" expires_after="2025-06-08"> <owner>ayui@chromium.org</owner> <owner>chrome-owp-storage@google.com</owner> <summary> @@ -1917,7 +1917,7 @@ <histogram name="ServiceWorkerCache.{ServiceWorkerCacheClientType}.Scheduler.QueueDuration2" - units="ms" expires_after="2025-03-23"> + units="ms" expires_after="2025-06-08"> <owner>ayui@chromium.org</owner> <owner>chrome-owp-storage@google.com</owner> <summary> @@ -1931,7 +1931,7 @@ <histogram name="ServiceWorkerCache.{ServiceWorkerCacheClientType}.Scheduler.QueueLength" - units="operations" expires_after="2025-03-23"> + units="operations" expires_after="2025-06-08"> <owner>ayui@chromium.org</owner> <owner>chrome-owp-storage@google.com</owner> <summary> @@ -1972,7 +1972,7 @@ <histogram name="ServiceWorkerCache.{ServiceWorkerCacheSchedulerOpClientType}.Scheduler.QueueLength.{ServiceWorkerSchedulerOp}" - units="operations" expires_after="2025-03-23"> + units="operations" expires_after="2025-06-08"> <owner>ayui@chromium.org</owner> <owner>chrome-owp-storage@google.com</owner> <summary> @@ -1985,7 +1985,7 @@ </histogram> <histogram name="Worker.BrowserProcess.DevToolsCreateTime" units="ms" - expires_after="2025-04-01"> + expires_after="2025-06-08"> <owner>yyanagisawa@chromium.org</owner> <owner>chrome-worker@google.com</owner> <summary> @@ -1995,7 +1995,7 @@ </histogram> <histogram name="Worker.BrowserProcess.StartScriptLoadTime" units="ms" - expires_after="2025-04-01"> + expires_after="2025-06-08"> <owner>yyanagisawa@chromium.org</owner> <owner>chrome-worker@google.com</owner> <summary> @@ -2006,7 +2006,7 @@ </histogram> <histogram name="Worker.BrowserProcess.WorkerHostCreateTime" units="ms" - expires_after="2025-04-01"> + expires_after="2025-06-08"> <owner>yyanagisawa@chromium.org</owner> <owner>chrome-worker@google.com</owner> <summary> @@ -2017,7 +2017,7 @@ </histogram> <histogram name="Worker.DevTools.AgentHost.Size" units="count" - expires_after="2025-04-01"> + expires_after="2025-06-08"> <owner>yyanagisawa@chromium.org</owner> <owner>chrome-worker@google.com</owner> <summary> @@ -2056,7 +2056,7 @@ </histogram> <histogram name="Worker.TopLevelScript.LoadStartedTime" units="ms" - expires_after="2025-04-01"> + expires_after="2025-06-08"> <owner>yyanagisawa@chromium.org</owner> <owner>chrome-worker@google.com</owner> <summary> @@ -2080,7 +2080,7 @@ </histogram> <histogram name="Worker.TopLevelScript.WorkerHostCreatedTime" units="ms" - expires_after="2025-04-01"> + expires_after="2025-06-08"> <owner>yyanagisawa@chromium.org</owner> <owner>chrome-worker@google.com</owner> <summary>
diff --git a/tools/metrics/histograms/metadata/session/histograms.xml b/tools/metrics/histograms/metadata/session/histograms.xml index d211872..63e14b60 100644 --- a/tools/metrics/histograms/metadata/session/histograms.xml +++ b/tools/metrics/histograms/metadata/session/histograms.xml
@@ -1132,7 +1132,7 @@ </histogram> <histogram name="SessionRestore.ForegroundTabFirstPaint4" units="ms" - expires_after="2025-03-30"> + expires_after="2025-06-08"> <owner>joenotcharles@google.com</owner> <owner>catan-team@chromium.org</owner> <improvement direction="LOWER_IS_BETTER"/> @@ -1149,7 +1149,7 @@ </histogram> <histogram name="SessionRestore.ForegroundTabFirstPaint4.FinishReason" - enum="SessionRestoreFinishReason" expires_after="2025-03-30"> + enum="SessionRestoreFinishReason" expires_after="2025-06-08"> <owner>joenotcharles@google.com</owner> <owner>catan-team@chromium.org</owner> <summary>
diff --git a/tools/metrics/histograms/metadata/settings/histograms.xml b/tools/metrics/histograms/metadata/settings/histograms.xml index 3259a4f8..60a531c 100644 --- a/tools/metrics/histograms/metadata/settings/histograms.xml +++ b/tools/metrics/histograms/metadata/settings/histograms.xml
@@ -622,7 +622,7 @@ </histogram> <histogram name="Settings.SafetyCheck.UnusedSitePermissionsMigrationFail" - units="type" expires_after="2025-03-30"> + units="type" expires_after="2025-06-08"> <owner>alimariam@google.com</owner> <owner>sideyilmaz@chromium.org</owner> <owner>msramek@chromium.org</owner> @@ -719,7 +719,7 @@ </histogram> <histogram name="Settings.SafetyHub.AutorevokeUnusedSitePermissions.Changed" - enum="BooleanEnabled" expires_after="2025-04-06"> + enum="BooleanEnabled" expires_after="2025-06-08"> <owner>rubindl@google.com</owner> <owner>zalmashni@google.com</owner> <owner>chrome-browser-privacy-team@google.com</owner> @@ -743,7 +743,7 @@ </histogram> <histogram name="Settings.SafetyHub.Dashboard.Interactions" - enum="SafetyHubDashboardInteractions" expires_after="2025-04-06"> + enum="SafetyHubDashboardInteractions" expires_after="2025-06-08"> <owner>rubindl@google.com</owner> <owner>zalmashni@google.com</owner> <owner>chrome-browser-privacy-team@google.com</owner> @@ -957,7 +957,7 @@ </histogram> <histogram name="Settings.SafetyHub.{ModuleType}.{LifecycleEvent}" - enum="SafetyHubModuleState" expires_after="2025-04-06"> + enum="SafetyHubModuleState" expires_after="2025-06-08"> <owner>rubindl@google.com</owner> <owner>zalmashni@google.com</owner> <owner>chrome-browser-privacy-team@google.com</owner> @@ -1020,7 +1020,7 @@ </histogram> <histogram name="Settings.StartupPageLoadSettings2" enum="SessionStartupPref" - expires_after="2025-03-30"> + expires_after="2025-06-08"> <owner>mpearson@chromium.org</owner> <owner>tiborg@chromium.org</owner> <owner>chrome-desktop-ntp@google.com</owner>
diff --git a/tools/metrics/histograms/metadata/sharing/histograms.xml b/tools/metrics/histograms/metadata/sharing/histograms.xml index 7de2c2d..bc621c4 100644 --- a/tools/metrics/histograms/metadata/sharing/histograms.xml +++ b/tools/metrics/histograms/metadata/sharing/histograms.xml
@@ -301,7 +301,7 @@ </histogram> <histogram name="Sharing.PreparePreviewFaviconDuration" units="ms" - expires_after="2025-03-30"> + expires_after="2025-06-08"> <owner>wenyufu@chromium.org</owner> <owner>src/chrome/browser/share/OWNERS</owner> <summary> @@ -355,7 +355,7 @@ </histogram> <histogram name="Sharing.SendMessageResult" enum="SharingSendMessageResult" - expires_after="2025-03-30"> + expires_after="2025-06-08"> <!-- Name completed by histogram_suffixes SharingChannelType, SharingDevicePlatform, SharingMessage, and SharingPulseInterval. --> @@ -512,7 +512,7 @@ </histogram> <histogram name="Sharing.SmsFetcherAvailableDeviceCount" units="devices" - expires_after="2025-03-30"> + expires_after="2025-06-08"> <owner>yigu@chromium.org</owner> <owner>src/content/browser/sms/OWNERS</owner> <summary> @@ -523,7 +523,7 @@ </histogram> <histogram name="Sharing.SmsFetcherScreenOnAndUnlocked" enum="Boolean" - expires_after="2025-03-30"> + expires_after="2025-06-08"> <owner>yigu@chromium.org</owner> <owner>src/content/browser/sms/OWNERS</owner> <summary>
diff --git a/tools/metrics/histograms/metadata/signin/histograms.xml b/tools/metrics/histograms/metadata/signin/histograms.xml index ca879a9..e36c92e 100644 --- a/tools/metrics/histograms/metadata/signin/histograms.xml +++ b/tools/metrics/histograms/metadata/signin/histograms.xml
@@ -297,7 +297,7 @@ </histogram> <histogram name="Signin.AccountInPref.StartupState.{AccountType}" - enum="AccountStartupState" expires_after="2025-03-23"> + enum="AccountStartupState" expires_after="2025-06-08"> <owner>rsult@google.com</owner> <owner>droger@chromium.com</owner> <owner>chrome-signin-team@google.com</owner> @@ -338,7 +338,7 @@ </histogram> <histogram name="Signin.AccountPref.RemovedCount{SigninState}" units="accounts" - expires_after="2025-03-30"> + expires_after="2025-06-08"> <owner>droger@chromium.org</owner> <owner>rsult@google.com</owner> <owner>chrome-signin-team@google.com</owner> @@ -439,7 +439,7 @@ </histogram> <histogram name="Signin.AddAccountState" enum="SigninAndroidAddAccountState" - expires_after="2025-03-30"> + expires_after="2025-06-08"> <owner>triploblastic@chromium.org</owner> <owner>chrome-signin-team@google.com</owner> <summary> @@ -624,7 +624,7 @@ <histogram name="Signin.BoundSessionCredentials.CookieRotationGenerateAssertionDuration" - units="ms" expires_after="2025-03-30"> + units="ms" expires_after="2025-06-08"> <owner>alexilin@chromium.org</owner> <owner>msalama@chromium.org</owner> <owner>chrome-signin-team@google.com</owner> @@ -638,7 +638,7 @@ <histogram name="Signin.BoundSessionCredentials.CookieRotationGenerateAssertionResult.Attempt{Count}" enum="BoundSessionCredentialsCookieRotationGenerateAssertionResult" - expires_after="2025-03-30"> + expires_after="2025-06-08"> <owner>alexilin@chromium.org</owner> <owner>msalama@chromium.org</owner> <owner>chrome-signin-team@google.com</owner> @@ -678,7 +678,7 @@ </histogram> <histogram name="Signin.BoundSessionCredentials.CookieRotationNetError" - enum="NetErrorCodes" expires_after="2025-03-30"> + enum="NetErrorCodes" expires_after="2025-06-08"> <owner>alexilin@chromium.org</owner> <owner>msalama@chromium.org</owner> <owner>chrome-signin-team@google.com</owner> @@ -750,7 +750,7 @@ </histogram> <histogram name="Signin.BoundSessionCredentials.CookieRotationTotalDuration" - units="ms" expires_after="2025-03-30"> + units="ms" expires_after="2025-06-08"> <owner>alexilin@chromium.org</owner> <owner>msalama@chromium.org</owner> <owner>chrome-signin-team@google.com</owner> @@ -793,7 +793,7 @@ <histogram name="Signin.BoundSessionCredentials.DeferredRequestUnblockTrigger.{Result}" - enum="ResumeBlockedRequestsTrigger" expires_after="2025-03-30"> + enum="ResumeBlockedRequestsTrigger" expires_after="2025-06-08"> <owner>alexilin@chromium.org</owner> <owner>msalama@chromium.org</owner> <owner>chrome-signin-team@google.com</owner> @@ -814,7 +814,7 @@ </histogram> <histogram name="Signin.BoundSessionCredentials.Deferred{Type}RequestDelay" - units="ms" expires_after="2025-03-30"> + units="ms" expires_after="2025-06-08"> <owner>alexilin@chromium.org</owner> <owner>msalama@chromium.org</owner> <owner>chrome-signin-team@google.com</owner> @@ -833,7 +833,7 @@ </histogram> <histogram name="Signin.BoundSessionCredentials.ResumeThrottledRequestsTrigger" - enum="ResumeBlockedRequestsTrigger" expires_after="2025-03-30"> + enum="ResumeBlockedRequestsTrigger" expires_after="2025-06-08"> <owner>alexilin@chromium.org</owner> <owner>msalama@chromium.org</owner> <owner>chrome-signin-team@google.com</owner> @@ -859,7 +859,7 @@ <histogram name="Signin.BoundSessionCredentials.SessionRegistrationGenerateRegistrationTokenDuration" - units="ms" expires_after="2025-03-30"> + units="ms" expires_after="2025-06-08"> <owner>alexilin@chromium.org</owner> <owner>msalama@chromium.org</owner> <owner>chrome-signin-team@google.com</owner> @@ -874,7 +874,7 @@ <histogram name="Signin.BoundSessionCredentials.SessionRegistrationResult" enum="BoundSessionCredentialsSessionRegistrationResult" - expires_after="2025-03-30"> + expires_after="2025-06-08"> <owner>alexilin@chromium.org</owner> <owner>msalama@chromium.org</owner> <owner>chrome-signin-team@google.com</owner> @@ -914,7 +914,7 @@ </histogram> <histogram name="Signin.BoundSessionCredentials.SessionTerminationTrigger" - enum="SessionTerminationTrigger" expires_after="2025-03-30"> + enum="SessionTerminationTrigger" expires_after="2025-06-08"> <owner>alexilin@chromium.org</owner> <owner>msalama@chromium.org</owner> <owner>chrome-signin-team@google.com</owner> @@ -953,7 +953,7 @@ <histogram name="Signin.BoundSessionCredentials.ThrottledRequestsSuccessiveTimeout" - units="timeouts" expires_after="2025-03-30"> + units="timeouts" expires_after="2025-06-08"> <owner>alexilin@chromium.org</owner> <owner>msalama@chromium.org</owner> <owner>chrome-signin-team@google.com</owner> @@ -1197,7 +1197,7 @@ </histogram> <histogram name="Signin.Extensions.{ConsentLevel}{AccessPoint}" - units="extensions" expires_after="2025-03-30"> + units="extensions" expires_after="2025-06-08"> <owner>rsult@google.com</owner> <owner>droger@chromium.org</owner> <owner>chrome-signin-team@google.com</owner> @@ -1408,7 +1408,7 @@ </histogram> <histogram name="Signin.Intercept.BubbleDismissReason{Type}" - enum="SigninInterceptionDismissReason" expires_after="2025-04-06"> + enum="SigninInterceptionDismissReason" expires_after="2025-06-08"> <owner>rsult@google.com</owner> <owner>droger@chromium.org</owner> <summary> @@ -1656,7 +1656,7 @@ </histogram> <histogram name="Signin.IOSDeviceRestoreSentinelError" - enum="SigninIOSDeviceRestoreSentinelError" expires_after="2025-04-01"> + enum="SigninIOSDeviceRestoreSentinelError" expires_after="2025-06-08"> <owner>jlebel@chromium.org</owner> <owner>chrome-signin-team@google.com</owner> <summary> @@ -1666,7 +1666,7 @@ </histogram> <histogram name="Signin.IOSDeviceRestoreSentinelPathGenerated" - enum="BooleanSuccess" expires_after="2025-04-01"> + enum="BooleanSuccess" expires_after="2025-06-08"> <owner>jlebel@chromium.org</owner> <owner>chrome-signin-team@google.com</owner> <summary> @@ -1686,7 +1686,7 @@ </histogram> <histogram name="Signin.IOSGaiaCookieStateOnSignedInNavigation" - enum="GaiaCookieStateOnSignedInNavigation" expires_after="2025-04-01"> + enum="GaiaCookieStateOnSignedInNavigation" expires_after="2025-06-08"> <owner>jlebel@chromium.org</owner> <owner>msarda@chromium.org</owner> <owner>chrome-signin-team@google.com</owner> @@ -1799,7 +1799,7 @@ </histogram> <histogram name="Signin.LoadedIdentities.Duration" units="ms" - expires_after="2025-04-01"> + expires_after="2025-06-08"> <owner>jlebel@chromium.org</owner> <owner>msarda@chromium.org</owner> <owner>chrome-signin-team@google.com</owner> @@ -1812,7 +1812,7 @@ </histogram> <histogram name="Signin.LoadedIdentities.DurationPerIdentity" units="ms" - expires_after="2025-04-01"> + expires_after="2025-06-08"> <owner>jlebel@chromium.org</owner> <owner>msarda@chromium.org</owner> <owner>chrome-signin-team@google.com</owner> @@ -1977,7 +1977,7 @@ </histogram> <histogram name="Signin.OpenTabsCount.{ConsentLevel}" units="count" - expires_after="2025-04-06"> + expires_after="2025-06-08"> <owner>treib@chromium.org</owner> <owner>rsult@google.com</owner> <owner>droger@chromium.org</owner> @@ -2111,7 +2111,7 @@ </histogram> <histogram name="Signin.Reconciler.Trigger.{Operation}" - enum="SigninReconcilerTrigger" expires_after="2025-03-30"> + enum="SigninReconcilerTrigger" expires_after="2025-06-08"> <owner>droger@chromium.org</owner> <owner>msarda@chromium.org</owner> <owner>msalama@chromium.org</owner> @@ -2130,7 +2130,7 @@ </histogram> <histogram name="Signin.ReencryptTokensInDb" enum="Boolean" - expires_after="2025-04-06"> + expires_after="2025-06-08"> <owner>wfh@chromium.org</owner> <owner>chrome-signin-team@google.com</owner> <summary> @@ -2216,7 +2216,7 @@ </histogram> <histogram name="Signin.Settings.ChromeSignin.OnSignin" - enum="ChromeSigninUserChoice" expires_after="2025-04-06"> + enum="ChromeSigninUserChoice" expires_after="2025-06-08"> <owner>rsult@google.com</owner> <owner>droger@chromium.org</owner> <summary> @@ -2226,7 +2226,7 @@ </histogram> <histogram name="Signin.Settings.ChromeSigninSettingModification" - enum="ChromeSigninSettingModification" expires_after="2025-04-06"> + enum="ChromeSigninSettingModification" expires_after="2025-06-08"> <owner>rsult@google.com</owner> <owner>chrome-signin-team@google.com</owner> <summary> @@ -2379,7 +2379,7 @@ </histogram> <histogram name="Signin.SigninPending.InconsistentStateInvoked" - enum="BooleanHit" expires_after="2025-03-30"> + enum="BooleanHit" expires_after="2025-06-08"> <owner>amelies@google.com</owner> <owner>chrome-signin-team@google.com</owner> <summary> @@ -2458,7 +2458,7 @@ </histogram> <histogram name="Signin.SignoutAndClearDataFromManagedAccount" - enum="BooleanSignoutFromManagedAccount" expires_after="2025-04-06"> + enum="BooleanSignoutFromManagedAccount" expires_after="2025-06-08"> <owner>esalma@google.com</owner> <owner>chrome-signin-team@google.com</owner> <summary> @@ -2803,7 +2803,7 @@ </histogram> <histogram name="Signin.TokenTable.SetTokenResult" - enum="SigninTokenTableWriteTokenToDBResult" expires_after="2025-04-06"> + enum="SigninTokenTableWriteTokenToDBResult" expires_after="2025-06-08"> <owner>wfh@chromium.org</owner> <owner>chrome-signin-team@google.com</owner> <summary>
diff --git a/tools/metrics/histograms/metadata/stability/histograms.xml b/tools/metrics/histograms/metadata/stability/histograms.xml index 4811330..6f2ee45 100644 --- a/tools/metrics/histograms/metadata/stability/histograms.xml +++ b/tools/metrics/histograms/metadata/stability/histograms.xml
@@ -465,7 +465,7 @@ </histogram> <histogram name="Stability.IOS.PostCrashAction" enum="IOSPostCrashAction" - expires_after="2025-04-06"> + expires_after="2025-06-08"> <owner>justincohen@chromium.org</owner> <owner>bling-fundamentals@google.com</owner> <summary>
diff --git a/tools/metrics/histograms/metadata/startup/histograms.xml b/tools/metrics/histograms/metadata/startup/histograms.xml index 21f556504..47d81a7 100644 --- a/tools/metrics/histograms/metadata/startup/histograms.xml +++ b/tools/metrics/histograms/metadata/startup/histograms.xml
@@ -41,7 +41,7 @@ </histogram> <histogram name="Startup.Android.BrowserProcessCreationReason" - enum="ProcessCreationReason" expires_after="2025-03-30"> + enum="ProcessCreationReason" expires_after="2025-06-08"> <owner>mthiesse@chromium.org</owner> <owner>pasko@chromium.org</owner> <summary> @@ -67,7 +67,7 @@ </histogram> <histogram name="Startup.Android.Cold.FirstSafeBrowsingApiResponseTime2.Tabbed" - units="ms" expires_after="2025-03-30"> + units="ms" expires_after="2025-06-08"> <owner>xinghuilu@chromium.org</owner> <owner>nafisabedin@google.com</owner> <owner>chrome-counter-abuse-alerts@google.com</owner> @@ -185,7 +185,7 @@ <histogram name="Startup.Android.Cold.TimeToFirstNavigationCommit3.{ActivityType}" - units="ms" expires_after="2025-03-30"> + units="ms" expires_after="2025-06-08"> <owner>pasko@chromium.org</owner> <owner>agrieve@chromium.org</owner> <owner>nafisabedin@google.com</owner> @@ -437,7 +437,7 @@ </histogram> <histogram name="Startup.Android.DurationSinceLastBackgroundTime" units="ms" - expires_after="2025-03-30"> + expires_after="2025-06-08"> <owner>hanxi@chromium.org</owner> <owner>xinyiji@chromium.org</owner> <summary> @@ -546,7 +546,7 @@ </histogram> <histogram name="Startup.Android.IsLastVisibleTimeLogged" enum="Boolean" - expires_after="2025-03-30"> + expires_after="2025-06-08"> <owner>hanxi@chromium.org</owner> <owner>xinyiji@chromium.org</owner> <summary>
diff --git a/tools/metrics/histograms/metadata/storage/histograms.xml b/tools/metrics/histograms/metadata/storage/histograms.xml index 7e97378..b71ae4ca 100644 --- a/tools/metrics/histograms/metadata/storage/histograms.xml +++ b/tools/metrics/histograms/metadata/storage/histograms.xml
@@ -332,7 +332,7 @@ </histogram> <histogram name="IndexedDB.BackingStoreCloseDuration" units="ms" - expires_after="2025-03-30"> + expires_after="2025-06-08"> <owner>estade@chromium.org</owner> <owner>chrome-owp-storage@google.com</owner> <summary> @@ -344,7 +344,7 @@ </histogram> <histogram name="IndexedDB.ContextShutdownDuration" units="ms" - expires_after="2025-03-30"> + expires_after="2025-06-08"> <owner>estade@chromium.org</owner> <owner>chrome-owp-storage@google.com</owner> <summary> @@ -416,7 +416,7 @@ </histogram> <histogram name="LevelDBEnv.LockFileInUseByThisProcess" enum="Boolean" - expires_after="2025-03-30"> + expires_after="2025-06-08"> <owner>estade@chromium.org</owner> <owner>chrome-owp-storage@google.com</owner> <summary> @@ -998,7 +998,7 @@ </histogram> <histogram name="Storage.InterestGroup.AdProtoDeserializationTime" units="ms" - expires_after="2025-03-30"> + expires_after="2025-06-08"> <owner>caraitto@chromium.org</owner> <owner>pauljensen@chromium.org</owner> <summary> @@ -1053,7 +1053,7 @@ </histogram> <histogram name="Storage.InterestGroup.DBErrors" units="count" - expires_after="2025-03-30"> + expires_after="2025-06-08"> <owner>behamilton@google.com</owner> <owner>pauljensen@chromium.org</owner> <summary> @@ -1210,7 +1210,7 @@ </histogram> <histogram name="Storage.SharedStorage.AsyncIterator.EntriesQueuedCount" - units="Entries" expires_after="2025-04-06"> + units="Entries" expires_after="2025-06-08"> <owner>cammie@chromium.org</owner> <owner>yaoxia@chromium.org</owner> <owner>chrome-ads-histograms@google.com</owner> @@ -1221,7 +1221,7 @@ </histogram> <histogram name="Storage.SharedStorage.AsyncIterator.IteratedEntriesBenchmarks" - units="BenchmarksMet" expires_after="2025-04-06"> + units="BenchmarksMet" expires_after="2025-06-08"> <owner>cammie@chromium.org</owner> <owner>yaoxia@chromium.org</owner> <owner>chrome-ads-histograms@google.com</owner> @@ -1290,7 +1290,7 @@ <histogram name="Storage.SharedStorage.Database.FileBacked.BytesUsed.PerOrigin.Median" - units="B" expires_after="2025-04-06"> + units="B" expires_after="2025-06-08"> <owner>cammie@chromium.org</owner> <owner>yaoxia@chromium.org</owner> <owner>chrome-ads-histograms@google.com</owner> @@ -1353,7 +1353,7 @@ </histogram> <histogram name="Storage.SharedStorage.Database.FileBacked.BytesUsed.Total.KB" - units="KB" expires_after="2025-04-06"> + units="KB" expires_after="2025-06-08"> <owner>cammie@chromium.org</owner> <owner>yaoxia@chromium.org</owner> <owner>chrome-ads-histograms@google.com</owner> @@ -1388,7 +1388,7 @@ </histogram> <histogram name="Storage.SharedStorage.Database.FileBacked.FileSize.KB" - units="KB" expires_after="2025-04-06"> + units="KB" expires_after="2025-06-08"> <owner>cammie@chromium.org</owner> <owner>yaoxia@chromium.org</owner> <owner>chrome-ads-histograms@google.com</owner> @@ -1505,7 +1505,7 @@ </histogram> <histogram name="Storage.SharedStorage.Database.IsFileBacked" - enum="BooleanIsFileBacked" expires_after="2025-04-06"> + enum="BooleanIsFileBacked" expires_after="2025-06-08"> <owner>cammie@chromium.org</owner> <owner>yaoxia@chromium.org</owner> <owner>chrome-ads-histograms@google.com</owner> @@ -1529,7 +1529,7 @@ </histogram> <histogram name="Storage.SharedStorage.Document.Timing.AddModule" units="ms" - expires_after="2025-04-06"> + expires_after="2025-06-08"> <owner>cammie@chromium.org</owner> <owner>yaoxia@chromium.org</owner> <owner>chrome-ads-histograms@google.com</owner> @@ -1606,7 +1606,7 @@ </histogram> <histogram name="Storage.SharedStorage.Document.Timing.Run" units="ms" - expires_after="2025-04-06"> + expires_after="2025-06-08"> <owner>cammie@chromium.org</owner> <owner>yaoxia@chromium.org</owner> <owner>chrome-ads-histograms@google.com</owner> @@ -1620,7 +1620,7 @@ </histogram> <histogram name="Storage.SharedStorage.Document.Timing.Run.ExecutedInWorklet" - units="ms" expires_after="2025-04-06"> + units="ms" expires_after="2025-06-08"> <owner>cammie@chromium.org</owner> <owner>yaoxia@chromium.org</owner> <owner>chrome-ads-histograms@google.com</owner> @@ -1633,7 +1633,7 @@ </histogram> <histogram name="Storage.SharedStorage.Document.Timing.SelectURL" units="ms" - expires_after="2025-04-06"> + expires_after="2025-06-08"> <owner>cammie@chromium.org</owner> <owner>yaoxia@chromium.org</owner> <owner>chrome-ads-histograms@google.com</owner> @@ -1648,7 +1648,7 @@ <histogram name="Storage.SharedStorage.Document.Timing.SelectURL.ExecutedInWorklet" - units="ms" expires_after="2025-04-06"> + units="ms" expires_after="2025-06-08"> <owner>cammie@chromium.org</owner> <owner>yaoxia@chromium.org</owner> <owner>chrome-ads-histograms@google.com</owner> @@ -1664,7 +1664,7 @@ </histogram> <histogram name="Storage.SharedStorage.Document.Timing.Set" units="ms" - expires_after="2025-04-06"> + expires_after="2025-06-08"> <owner>cammie@chromium.org</owner> <owner>yaoxia@chromium.org</owner> <owner>chrome-ads-histograms@google.com</owner> @@ -1688,7 +1688,7 @@ <histogram name="Storage.SharedStorage.HeaderObserver.CreatedOpaqueOriginForPrefsCheck" - enum="Boolean" expires_after="2025-04-06"> + enum="Boolean" expires_after="2025-06-08"> <owner>cammie@chromium.org</owner> <owner>yaoxia@chromium.org</owner> <owner>chrome-ads-histograms@google.com</owner> @@ -1705,7 +1705,7 @@ <histogram name="Storage.SharedStorage.HeaderObserver.PermissionsPolicyDoubleCheckStatus" enum="SharedStorageHeaderObserverPermissionsPolicyDoubleCheckStatus" - expires_after="2025-04-06"> + expires_after="2025-06-08"> <owner>cammie@chromium.org</owner> <owner>yaoxia@chromium.org</owner> <owner>chrome-ads-histograms@google.com</owner> @@ -1876,7 +1876,7 @@ </histogram> <histogram name="Storage.SharedStorage.Worklet.DestroyedStatus" - enum="SharedStorageWorkletDestroyedStatus" expires_after="2025-04-06"> + enum="SharedStorageWorkletDestroyedStatus" expires_after="2025-06-08"> <owner>cammie@chromium.org</owner> <owner>yaoxia@chromium.org</owner> <owner>chrome-ads-histograms@google.com</owner> @@ -1903,7 +1903,7 @@ </histogram> <histogram name="Storage.SharedStorage.Worklet.NumPerPage" - units="WorkletsCreated" expires_after="2025-04-06"> + units="WorkletsCreated" expires_after="2025-06-08"> <owner>cammie@chromium.org</owner> <owner>yaoxia@chromium.org</owner> <owner>chrome-ads-histograms@google.com</owner> @@ -2011,7 +2011,7 @@ </histogram> <histogram name="Storage.SharedStorage.Worklet.Timing.Get" units="ms" - expires_after="2025-04-06"> + expires_after="2025-06-08"> <owner>cammie@chromium.org</owner> <owner>yaoxia@chromium.org</owner> <owner>chrome-ads-histograms@google.com</owner> @@ -2026,7 +2026,7 @@ <histogram name="Storage.SharedStorage.Worklet.Timing.KeepAliveEndedDueToOperationsFinished.KeepAliveDuration" - units="ms" expires_after="2025-04-06"> + units="ms" expires_after="2025-06-08"> <owner>cammie@chromium.org</owner> <owner>yaoxia@chromium.org</owner> <owner>chrome-ads-histograms@google.com</owner>
diff --git a/tools/metrics/histograms/metadata/subresource/histograms.xml b/tools/metrics/histograms/metadata/subresource/histograms.xml index 0ee3015..95d1122 100644 --- a/tools/metrics/histograms/metadata/subresource/histograms.xml +++ b/tools/metrics/histograms/metadata/subresource/histograms.xml
@@ -243,7 +243,7 @@ </histogram> <histogram name="SubresourceFilter.PageLoad.ActivationDecision" - enum="SubresourceFilterActivationDecision" expires_after="2025-04-06"> + enum="SubresourceFilterActivationDecision" expires_after="2025-06-08"> <owner>jkarlin@chromium.org</owner> <owner>chrome-ads-histograms@google.com</owner> <summary> @@ -353,7 +353,7 @@ </histogram> <histogram name="SubresourceFilter.PageLoad.SafeBrowsingDelay" units="ms" - expires_after="2025-03-30"> + expires_after="2025-06-08"> <owner>alexmt@chromium.org</owner> <owner>chrome-ads-histograms@google.com</owner> <summary>
diff --git a/tools/metrics/histograms/metadata/sync/histograms.xml b/tools/metrics/histograms/metadata/sync/histograms.xml index 5e3f915..d941ef6 100644 --- a/tools/metrics/histograms/metadata/sync/histograms.xml +++ b/tools/metrics/histograms/metadata/sync/histograms.xml
@@ -482,7 +482,7 @@ </histogram> <histogram name="Sync.CrossUserSharingInvalidKeyVersion.EmptyKeyPair" - enum="Boolean" expires_after="2025-03-30"> + enum="Boolean" expires_after="2025-06-08"> <owner>rushans@google.com</owner> <owner>mmoskvitin@google.com</owner> <summary> @@ -493,7 +493,7 @@ </histogram> <histogram name="Sync.CrossUserSharingInvalidKeyVersion.ExpectedVersion" - enum="Boolean" expires_after="2025-03-30"> + enum="Boolean" expires_after="2025-06-08"> <owner>rushans@google.com</owner> <owner>mmoskvitin@google.com</owner> <summary> @@ -587,7 +587,7 @@ </histogram> <histogram name="Sync.CryptographerReady" enum="SyncCryptographerReadyState" - expires_after="2025-04-06"> + expires_after="2025-06-08"> <owner>mmoskvitin@google.com</owner> <owner>mastiz@chromium.org</owner> <summary> @@ -698,7 +698,7 @@ </histogram> <histogram name="Sync.DataTypeConfigurationTime.{StorageType}{SyncDataType}" - units="ms" expires_after="2025-03-30"> + units="ms" expires_after="2025-06-08"> <owner>rushans@google.com</owner> <owner>mastiz@chromium.org</owner> <summary> @@ -765,7 +765,7 @@ </histogram> <histogram name="Sync.DataTypeMemoryKB{SyncDataType}" units="KB" - expires_after="2025-03-30"> + expires_after="2025-06-08"> <owner>mastiz@chromium.org</owner> <owner>rushans@google.com</owner> <summary> @@ -777,7 +777,7 @@ </histogram> <histogram name="Sync.DataTypeNumUnsyncedEntitiesOnModelReady{SyncDataType}" - units="entities" expires_after="2025-04-06"> + units="entities" expires_after="2025-06-08"> <owner>mmoskvitin@google.com</owner> <owner>treib@chromium.org</owner> <summary> @@ -873,7 +873,7 @@ </histogram> <histogram name="Sync.DataTypeUndecryptablePendingUpdatesDropped{SyncDataType}" - units="SyncEntity" expires_after="2025-03-30"> + units="SyncEntity" expires_after="2025-06-08"> <owner>mastiz@chromium.org</owner> <owner>src/components/sync/OWNERS</owner> <summary> @@ -915,7 +915,7 @@ </histogram> <histogram name="Sync.DataTypeUpdateDrop.{Reason}" enum="SyncDataTypes" - expires_after="2025-03-30"> + expires_after="2025-06-08"> <owner>treib@chromium.org</owner> <owner>rushans@google.com</owner> <summary> @@ -992,7 +992,7 @@ </histogram> <histogram name="Sync.EntitySizeOnCommit.Entity.SpecificsOnly{SyncDataType}" - units="bytes" expires_after="2025-04-01"> + units="bytes" expires_after="2025-06-08"> <owner>ankushkush@google.com</owner> <owner>treib@chromium.org</owner> <summary> @@ -1004,7 +1004,7 @@ </histogram> <histogram name="Sync.EntitySizeOnCommit.Entity.WithMetadata{SyncDataType}" - units="bytes" expires_after="2025-04-01"> + units="bytes" expires_after="2025-06-08"> <owner>ankushkush@google.com</owner> <owner>treib@chromium.org</owner> <summary> @@ -1016,7 +1016,7 @@ </histogram> <histogram name="Sync.EntitySizeOnCommit.Tombstone{SyncDataType}" units="bytes" - expires_after="2025-04-01"> + expires_after="2025-06-08"> <owner>ankushkush@google.com</owner> <owner>treib@chromium.org</owner> <summary> @@ -1078,7 +1078,7 @@ </histogram> <histogram name="Sync.History.IncomingSpecificsError" - enum="SyncHistorySpecificsError" expires_after="2025-04-06"> + enum="SyncHistorySpecificsError" expires_after="2025-06-08"> <owner>treib@chromium.org</owner> <owner>mastiz@chromium.org</owner> <summary> @@ -1423,7 +1423,7 @@ </histogram> <histogram name="Sync.PendingInvalidationStatus" - enum="PendingInvalidationStatus" expires_after="2025-03-30"> + enum="PendingInvalidationStatus" expires_after="2025-06-08"> <owner>shabdan@google.com</owner> <owner>rushans@google.com</owner> <summary> @@ -1555,7 +1555,7 @@ </histogram> <histogram name="Sync.SelectedTypesInTransportMode" enum="SyncDataTypes" - expires_after="2025-03-30"> + expires_after="2025-06-08"> <owner>treib@chromium.org</owner> <owner>mastiz@chromium.org</owner> <summary> @@ -1704,7 +1704,7 @@ </histogram> <histogram name="Sync.SyncErrorInfobarDisplayed" enum="SyncErrorInfobarTypes" - expires_after="2025-03-30"> + expires_after="2025-06-08"> <owner>jlebel@chromium.org</owner> <owner>chrome-signin-team@google.com</owner> <summary> @@ -1956,7 +1956,7 @@ </histogram> <histogram name="Sync.TrustedVaultDownloadKeysStatus" - enum="TrustedVaultDownloadKeysStatus" expires_after="2025-05-25"> + enum="TrustedVaultDownloadKeysStatus" expires_after="2025-06-08"> <owner>mmoskvitin@google.com</owner> <owner>mastiz@chromium.org</owner> <summary>
diff --git a/tools/metrics/histograms/metadata/tab/histograms.xml b/tools/metrics/histograms/metadata/tab/histograms.xml index 011f0d6..1a541a9 100644 --- a/tools/metrics/histograms/metadata/tab/histograms.xml +++ b/tools/metrics/histograms/metadata/tab/histograms.xml
@@ -107,7 +107,7 @@ </histogram> <histogram name="Discarding.DiscardingFocusedTab" enum="BooleanFocusedTab" - expires_after="2025-04-06"> + expires_after="2025-06-08"> <owner>kalutes@chromium.org</owner> <owner>cros-core-systems-perf@google.com</owner> <summary> @@ -117,7 +117,7 @@ </histogram> <histogram name="Discarding.DiscardingProtectedTab" enum="BooleanProtectedTab" - expires_after="2025-04-06"> + expires_after="2025-06-08"> <owner>kalutes@chromium.org</owner> <owner>cros-core-systems-perf@google.com</owner> <summary> @@ -127,7 +127,7 @@ </histogram> <histogram name="Discarding.DiscardLatency" units="ms" - expires_after="2025-04-06"> + expires_after="2025-06-08"> <owner>kalutes@chromium.org</owner> <owner>kawasin@chromium.org</owner> <owner>vovoy@chromium.org</owner> @@ -140,7 +140,7 @@ </histogram> <histogram name="Discarding.DiscardsDrivenByStaleSignal" units="tabs" - expires_after="2025-04-06"> + expires_after="2025-06-08"> <owner>kalutes@chromium.org</owner> <owner>vovoy@chromium.org</owner> <summary> @@ -187,7 +187,7 @@ </histogram> <histogram name="Discarding.ReclaimTargetAge" units="ms" - expires_after="2025-04-06"> + expires_after="2025-06-08"> <owner>kalutes@chromium.org</owner> <owner>vovoy@chromium.org</owner> <summary> @@ -235,7 +235,7 @@ </histogram> <histogram name="Tab.CloseAllTabsDialog.ClosedAllTabs.{CloseType}" - enum="Boolean" expires_after="2025-03-23"> + enum="Boolean" expires_after="2025-06-08"> <owner>ckitagawa@chromium.org</owner> <owner>fredmello@chromium.org</owner> <summary> @@ -283,7 +283,7 @@ </histogram> <histogram name="Tab.ExternalApplicationOpened{Cause}" - enum="ExternalLauncherOption" expires_after="2025-04-06"> + enum="ExternalLauncherOption" expires_after="2025-06-08"> <owner>olivierrobin@chromium.org</owner> <owner>bling-team@google.com</owner> <summary> @@ -315,7 +315,7 @@ </histogram> <histogram name="Tab.HasThemeColor" enum="BooleanPresent" - expires_after="2025-04-06"> + expires_after="2025-06-08"> <owner>gambard@chromium.org</owner> <owner>bling-team@google.com</owner> <summary> @@ -508,7 +508,7 @@ </histogram> <histogram name="Tab.Organization.Trigger.Outcome" - enum="TabOrganizationTriggerOutcome" expires_after="2025-03-30"> + enum="TabOrganizationTriggerOutcome" expires_after="2025-06-08"> <owner>tbergquist@chromium.org</owner> <owner>dpenning@chromium.org</owner> <owner>chrome-desktop-ui-sea@google.com</owner> @@ -714,7 +714,7 @@ </histogram> <histogram name="Tab.SwitchedToForegroundAge" units="ms" - expires_after="2025-03-30"> + expires_after="2025-06-08"> <owner>dtrainor@chromium.org</owner> <owner>ckitagawa@chroimum.org</owner> <summary> @@ -782,7 +782,7 @@ <histogram name="TabGroups.ParseSavedTabGroupDataEntries.ParseFailurePercentage" - units="%" expires_after="2025-04-06"> + units="%" expires_after="2025-06-08"> <owner>shaktisahu@chromium.org</owner> <owner>chrome-multiplayer-eng@google.com</owner> <summary> @@ -839,7 +839,7 @@ </histogram> <histogram name="TabGroups.SavedTabGroupPinnedCount" units="groups" - expires_after="2025-03-30"> + expires_after="2025-06-08"> <owner>dljames@chromium.org</owner> <owner>chrome-desktop-ui-sea@google.com</owner> <summary> @@ -993,7 +993,7 @@ </histogram> <histogram name="TabGroups.SpecificsToDataMigration.ParseFailurePercentage" - units="%" expires_after="2025-04-06"> + units="%" expires_after="2025-06-08"> <owner>shaktisahu@chromium.org</owner> <owner>chrome-multiplayer-eng@google.com</owner> <summary> @@ -1005,7 +1005,7 @@ </histogram> <histogram name="TabGroups.Sync.ActiveTabGroupCount.{NumberOfDays}Day" - units="groups" expires_after="2025-03-30"> + units="groups" expires_after="2025-06-08"> <owner>shaktisahu@chromium.org</owner> <owner>clank-tab-dev@google.com</owner> <summary> @@ -1050,7 +1050,7 @@ </histogram> <histogram name="TabGroups.Sync.ClosedTabGroupCount" units="groups" - expires_after="2025-03-30"> + expires_after="2025-06-08"> <owner>shaktisahu@chromium.org</owner> <owner>clank-tab-dev@google.com</owner> <summary> @@ -1073,7 +1073,7 @@ </histogram> <histogram name="TabGroups.Sync.GroupOpenedByUser.HasTitle" - enum="BooleanHasTitle" expires_after="2025-04-06"> + enum="BooleanHasTitle" expires_after="2025-06-08"> <owner>shaktisahu@chromium.org</owner> <owner>chrome-multiplayer-eng@google.com</owner> <summary> @@ -1097,7 +1097,7 @@ </histogram> <histogram name="TabGroups.Sync.OpenTabGroupCount" units="groups" - expires_after="2025-03-30"> + expires_after="2025-06-08"> <owner>shaktisahu@chromium.org</owner> <owner>clank-tab-dev@google.com</owner> <summary> @@ -1129,7 +1129,7 @@ </histogram> <histogram name="TabGroups.Sync.RemoteTabGroupCount" units="groups" - expires_after="2025-03-30"> + expires_after="2025-06-08"> <owner>shaktisahu@chromium.org</owner> <owner>clank-tab-dev@google.com</owner> <summary> @@ -1153,7 +1153,7 @@ </histogram> <histogram name="TabGroups.Sync.SavedTabGroupTabCount" units="tabs" - expires_after="2025-03-30"> + expires_after="2025-06-08"> <owner>shaktisahu@chromium.org</owner> <owner>clank-tab-dev@google.com</owner> <summary> @@ -1165,7 +1165,7 @@ </histogram> <histogram name="TabGroups.Sync.SavedTabGroupTabTimeSinceModification" - units="minutes" expires_after="2025-03-30"> + units="minutes" expires_after="2025-06-08"> <owner>shaktisahu@chromium.org</owner> <owner>clank-tab-dev@google.com</owner> <summary> @@ -1199,7 +1199,7 @@ </histogram> <histogram name="TabGroups.Sync.TabGroup.Closed.GroupCreateOrigin" - enum="DeviceType" expires_after="2025-04-06"> + enum="DeviceType" expires_after="2025-06-08"> <owner>shaktisahu@chromium.org</owner> <owner>chrome-multiplayer-eng@google.com</owner> <summary> @@ -1210,7 +1210,7 @@ </histogram> <histogram name="TabGroups.Sync.TabGroup.Closed.Reason" - enum="GroupClosingSource" expires_after="2025-03-30"> + enum="GroupClosingSource" expires_after="2025-06-08"> <owner>shaktisahu@chromium.org</owner> <owner>clank-tab-dev@google.com</owner> <summary> @@ -1221,7 +1221,7 @@ </histogram> <histogram name="TabGroups.Sync.TabGroup.Created.GroupCreateOrigin" - enum="DeviceType" expires_after="2025-04-06"> + enum="DeviceType" expires_after="2025-06-08"> <owner>shaktisahu@chromium.org</owner> <owner>chrome-multiplayer-eng@google.com</owner> <summary> @@ -1231,7 +1231,7 @@ </histogram> <histogram name="TabGroups.Sync.TabGroup.Opened.GroupCreateOrigin" - enum="DeviceType" expires_after="2025-04-06"> + enum="DeviceType" expires_after="2025-06-08"> <owner>shaktisahu@chromium.org</owner> <owner>chrome-multiplayer-eng@google.com</owner> <summary> @@ -1253,7 +1253,7 @@ </histogram> <histogram name="TabGroups.Sync.TabGroup.Removed.GroupCreateOrigin" - enum="DeviceType" expires_after="2025-04-06"> + enum="DeviceType" expires_after="2025-06-08"> <owner>shaktisahu@chromium.org</owner> <owner>chrome-multiplayer-eng@google.com</owner> <summary> @@ -1263,7 +1263,7 @@ </histogram> <histogram name="TabGroups.Sync.TabGroup.TabAdded.GroupCreateOrigin" - enum="DeviceType" expires_after="2025-04-06"> + enum="DeviceType" expires_after="2025-06-08"> <owner>shaktisahu@chromium.org</owner> <owner>chrome-multiplayer-eng@google.com</owner> <summary> @@ -1273,7 +1273,7 @@ </histogram> <histogram name="TabGroups.Sync.TabGroup.TabNavigated.GroupCreateOrigin" - enum="DeviceType" expires_after="2025-04-06"> + enum="DeviceType" expires_after="2025-06-08"> <owner>shaktisahu@chromium.org</owner> <owner>chrome-multiplayer-eng@google.com</owner> <summary> @@ -1283,7 +1283,7 @@ </histogram> <histogram name="TabGroups.Sync.TabGroup.TabRemoved.GroupCreateOrigin" - enum="DeviceType" expires_after="2025-04-06"> + enum="DeviceType" expires_after="2025-06-08"> <owner>shaktisahu@chromium.org</owner> <owner>chrome-multiplayer-eng@google.com</owner> <summary> @@ -1293,7 +1293,7 @@ </histogram> <histogram name="TabGroups.Sync.TabGroup.TabSelected.GroupCreateOrigin" - enum="DeviceType" expires_after="2025-04-06"> + enum="DeviceType" expires_after="2025-06-08"> <owner>shaktisahu@chromium.org</owner> <owner>chrome-multiplayer-eng@google.com</owner> <summary> @@ -1315,7 +1315,7 @@ </histogram> <histogram name="TabGroups.Sync.TabGroup.TabsReordered.GroupCreateOrigin" - enum="DeviceType" expires_after="2025-04-06"> + enum="DeviceType" expires_after="2025-06-08"> <owner>shaktisahu@chromium.org</owner> <owner>chrome-multiplayer-eng@google.com</owner> <summary> @@ -1336,7 +1336,7 @@ </histogram> <histogram name="TabGroups.Sync.TabGroup.UserInteracted.HasTitle" - enum="BooleanHasTitle" expires_after="2025-04-06"> + enum="BooleanHasTitle" expires_after="2025-06-08"> <owner>shaktisahu@chromium.org</owner> <owner>chrome-multiplayer-eng@google.com</owner> <summary> @@ -1347,7 +1347,7 @@ </histogram> <histogram name="TabGroups.Sync.TabGroup.VisualsChanged.GroupCreateOrigin" - enum="DeviceType" expires_after="2025-04-06"> + enum="DeviceType" expires_after="2025-06-08"> <owner>shaktisahu@chromium.org</owner> <owner>chrome-multiplayer-eng@google.com</owner> <summary> @@ -1492,7 +1492,7 @@ </histogram> <histogram name="TabGroups.UserGroupCount" units="groups" - expires_after="2025-03-30"> + expires_after="2025-06-08"> <owner>ckitagawa@chromium.org</owner> <owner>meiliang@chromium.org</owner> <summary> @@ -1532,7 +1532,7 @@ </histogram> <histogram name="TabGroups.{ConsentLevel}.{GroupsOrTabs}" units="count" - expires_after="2025-03-29"> + expires_after="2025-06-08"> <owner>treib@chromium.org</owner> <owner>shaktisahu@chromium.org</owner> <owner>clank-tab-dev@google.com</owner> @@ -1679,7 +1679,7 @@ </histogram> <histogram name="TabManager.Discarding.ReloadCount" units="Reloads" - expires_after="2025-03-30"> + expires_after="2025-06-08"> <owner>chrisha@chromium.org</owner> <owner>catan-team@chromium.org</owner> <summary> @@ -1813,7 +1813,7 @@ </summary> </histogram> -<histogram name="Tabs.CountAtResume2" units="tabs" expires_after="2025-03-30"> +<histogram name="Tabs.CountAtResume2" units="tabs" expires_after="2025-06-08"> <owner>marq@chromium.org</owner> <owner>olivierrobin@chromium.org</owner> <summary> @@ -1882,7 +1882,7 @@ </histogram> <histogram name="Tabs.Duplicates.Count.AllProfileWindows" units="tabs" - expires_after="2025-04-06"> + expires_after="2025-06-08"> <owner>emshack@chromium.org</owner> <owner>chrome-desktop-ui-sea@google.com</owner> <summary> @@ -1895,7 +1895,7 @@ </histogram> <histogram name="Tabs.Duplicates.Count.SingleWindow" units="tabs" - expires_after="2025-04-06"> + expires_after="2025-06-08"> <owner>emshack@chromium.org</owner> <owner>chrome-desktop-ui-sea@google.com</owner> <summary> @@ -1907,7 +1907,7 @@ </histogram> <histogram name="Tabs.Duplicates.Percentage.AllProfileWindows" units="%" - expires_after="2025-04-06"> + expires_after="2025-06-08"> <owner>emshack@chromium.org</owner> <owner>chrome-desktop-ui-sea@google.com</owner> <summary> @@ -1919,7 +1919,7 @@ </histogram> <histogram name="Tabs.Duplicates.Percentage.SingleWindow" units="%" - expires_after="2025-04-06"> + expires_after="2025-06-08"> <owner>emshack@chromium.org</owner> <owner>chrome-desktop-ui-sea@google.com</owner> <summary> @@ -2142,7 +2142,7 @@ </histogram> <histogram name="Tabs.PageLoad.TimeSinceCreated2" units="ms" - expires_after="2025-03-30"> + expires_after="2025-06-08"> <owner>emshack@chromium.org</owner> <owner>chrome-desktop-ui-sea@google.com</owner> <summary> @@ -2535,7 +2535,7 @@ </histogram> <histogram name="Tabs.Startup.RestoreDuration.{TabModelSelectorType}" - units="ms" expires_after="2025-03-30"> + units="ms" expires_after="2025-06-08"> <owner>ckitagawa@chromium.org</owner> <owner>clank-tab-dev@google.com</owner> <summary> @@ -2547,7 +2547,7 @@ </histogram> <histogram name="Tabs.Startup.RestoreDurationPerTab.{TabModelSelectorType}" - units="ms" expires_after="2025-03-30"> + units="ms" expires_after="2025-06-08"> <owner>ckitagawa@chromium.org</owner> <owner>clank-tab-dev@google.com</owner> <summary> @@ -2583,7 +2583,7 @@ </histogram> <histogram name="Tabs.Startup.TabCount2.{TabModelSelectorType}.{TabType}" - units="count" expires_after="2025-03-30"> + units="count" expires_after="2025-06-08"> <owner>davidjm@chromium.org</owner> <owner>nyquist@chromium.org</owner> <summary> @@ -3276,7 +3276,7 @@ </histogram> <histogram name="Tabs.TabState.FlatBufferDeserializeResult" - enum="TabStateFlatBufferDeserializeResult" expires_after="2025-04-06"> + enum="TabStateFlatBufferDeserializeResult" expires_after="2025-06-08"> <owner>davidjm@chromium.org</owner> <owner>clank-tab-dev@google.com</owner> <summary>
diff --git a/tools/metrics/histograms/metadata/translate/histograms.xml b/tools/metrics/histograms/metadata/translate/histograms.xml index aea97d9..d48ec8d 100644 --- a/tools/metrics/histograms/metadata/translate/histograms.xml +++ b/tools/metrics/histograms/metadata/translate/histograms.xml
@@ -102,7 +102,7 @@ </histogram> <histogram name="Translate.ApplicationStart.NeverTranslateLanguage" - enum="LocaleCodeISO639" expires_after="2025-03-30"> + enum="LocaleCodeISO639" expires_after="2025-06-08"> <owner>megjablon@google.com</owner> <owner>chrome-language@google.com</owner> <summary> @@ -116,7 +116,7 @@ </histogram> <histogram name="Translate.ApplicationStart.NeverTranslateLanguage.Count" - units="languages" expires_after="2025-03-30"> + units="languages" expires_after="2025-06-08"> <owner>megjablon@google.com</owner> <owner>chrome-language@google.com</owner> <summary> @@ -529,7 +529,7 @@ </histogram> <histogram name="Translate.PageLoad.Ranker.Decision" - enum="TranslateRankerDecision" expires_after="2025-03-30"> + enum="TranslateRankerDecision" expires_after="2025-06-08"> <owner>megjablon@google.com</owner> <owner>chrome-language@google.com</owner> <summary>
diff --git a/tools/metrics/histograms/metadata/trusted_vault/histograms.xml b/tools/metrics/histograms/metadata/trusted_vault/histograms.xml index 050585a..e7810aa 100644 --- a/tools/metrics/histograms/metadata/trusted_vault/histograms.xml +++ b/tools/metrics/histograms/metadata/trusted_vault/histograms.xml
@@ -142,7 +142,7 @@ <histogram name="TrustedVault.SecurityDomainServiceURLFetchResponse{Reason}{SecurityDomainId}" - enum="CombinedHttpResponseAndNetErrorCode" expires_after="2025-04-06"> + enum="CombinedHttpResponseAndNetErrorCode" expires_after="2025-06-08"> <owner>mastiz@chromium.org</owner> <owner>mmoskvitin@chromium.org</owner> <owner>martinkr@google.com</owner>
diff --git a/tools/metrics/histograms/metadata/ui/histograms.xml b/tools/metrics/histograms/metadata/ui/histograms.xml index d375d692..166a64c 100644 --- a/tools/metrics/histograms/metadata/ui/histograms.xml +++ b/tools/metrics/histograms/metadata/ui/histograms.xml
@@ -280,21 +280,6 @@ </summary> </histogram> -<histogram name="WebUI.ShownUrl" enum="WebUIUrlHashes" - expires_after="2025-05-25"> - <owner>kerenzhu@chromium.org</owner> - <owner>dpapad@chromium.org</owner> - <owner>chrome-webui@google.com</owner> - <summary> - WebUI URLs that are painted. Recorded on the first paint of a WebUI document - after navigation. This differs from WebUI.CreatedForUrl as it only logs - WebUIs that are actually painted and excludes those that are created but not - shown (e.g., opened in a background tab, or preloaded but never shown). - Caveat: this won't log on an iframe WebUI's subsequent navigations becuase - the paint event is emitted only once from the main frame. - </summary> -</histogram> - <histogram name="WebUI.TopChrome.Preload.Result" enum="WebUIPreloadResult" expires_after="2025-05-04"> <owner>kerenzhu@chromium.org</owner> @@ -309,7 +294,7 @@ </histogram> <histogram name="WebUI.TopChrome.RequestToFCP{WebUIName}" units="ms" - expires_after="2025-03-30"> + expires_after="2025-06-08"> <owner>kerenzhu@chromium.org</owner> <owner>chrome-webui-for-features@google.com</owner> <summary> @@ -347,7 +332,7 @@ </histogram> <histogram name="WebUICodeCache.FeatureEnabled" enum="Boolean" - expires_after="2025-03-30"> + expires_after="2025-06-08"> <owner>temao@chromium.org</owner> <owner>tluk@chromium.org</owner> <summary> @@ -357,7 +342,7 @@ </histogram> <histogram name="WebUITabStrip.CloseAction" enum="WebUITabStripCloseActions" - expires_after="2025-03-30"> + expires_after="2025-06-08"> <owner>collinbaker@chromium.org</owner> <owner>tluk@chromium.org</owner> <summary> @@ -368,7 +353,7 @@ </histogram> <histogram name="WebUITabStrip.CloseTabAction" - enum="WebUITabStripCloseTabActions" expires_after="2025-03-30"> + enum="WebUITabStripCloseTabActions" expires_after="2025-06-08"> <owner>johntlee@chromium.org</owner> <owner>dpapad@chromium.org</owner> <summary> @@ -407,7 +392,7 @@ </histogram> <histogram name="WebUITabStrip.OpenAction" enum="WebUITabStripOpenActions" - expires_after="2025-03-30"> + expires_after="2025-06-08"> <owner>collinbaker@chromium.org</owner> <owner>tluk@chromium.org</owner> <summary> @@ -418,7 +403,7 @@ </histogram> <histogram name="WebUITabStrip.OpenDuration" units="ms" - expires_after="2025-03-30"> + expires_after="2025-06-08"> <owner>collinbaker@chromium.org</owner> <owner>tluk@chromium.org</owner> <summary>
diff --git a/tools/metrics/histograms/metadata/uma/histograms.xml b/tools/metrics/histograms/metadata/uma/histograms.xml index 216334a..e0b437b 100644 --- a/tools/metrics/histograms/metadata/uma/histograms.xml +++ b/tools/metrics/histograms/metadata/uma/histograms.xml
@@ -59,7 +59,7 @@ </histogram> <histogram name="Histogram.MismatchedConstructionArguments" - enum="HistogramNameHash" expires_after="2025-03-30"> + enum="HistogramNameHash" expires_after="2025-06-08"> <owner>asvitkine@chromium.org</owner> <owner>src/base/metrics/OWNERS</owner> <summary> @@ -993,7 +993,7 @@ </histogram> <histogram name="UMA.TruncatedEvents.UserAction" units="events" - expires_after="2025-05-25"> + expires_after="2025-06-08"> <owner>rkaplow@chromium.org</owner> <owner>src/base/metrics/OWNERS</owner> <summary>
diff --git a/tools/metrics/histograms/metadata/update_engine/histograms.xml b/tools/metrics/histograms/metadata/update_engine/histograms.xml index 7640cd4..c23b3108 100644 --- a/tools/metrics/histograms/metadata/update_engine/histograms.xml +++ b/tools/metrics/histograms/metadata/update_engine/histograms.xml
@@ -152,7 +152,7 @@ </histogram> <histogram name="UpdateEngine.Attempt.PayloadSizeMiB" units="MiB" - expires_after="2025-03-30"> + expires_after="2025-06-08"> <owner>kimjae@chromium.org</owner> <owner>chromeos-core-services@google.com</owner> <summary>
diff --git a/tools/metrics/histograms/metadata/v8/histograms.xml b/tools/metrics/histograms/metadata/v8/histograms.xml index 2d68f561..ca2c0199 100644 --- a/tools/metrics/histograms/metadata/v8/histograms.xml +++ b/tools/metrics/histograms/metadata/v8/histograms.xml
@@ -162,7 +162,7 @@ </histogram> <histogram name="V8.CompileMicroSeconds" units="microseconds" - expires_after="M136"> + expires_after="2025-06-08"> <owner>marja@chromium.org</owner> <owner>v8-runtime@google.com</owner> <summary> @@ -188,7 +188,7 @@ </histogram> <histogram name="V8.CompileScriptMicroSeconds" units="microseconds" - expires_after="M136"> + expires_after="2025-06-08"> <owner>leszeks@chromium.org</owner> <owner>v8-runtime@google.com</owner> <summary> @@ -1826,7 +1826,7 @@ </histogram> <histogram name="V8.ProduceCodeCacheMicroseconds" units="microseconds" - expires_after="2025-04-06"> + expires_after="2025-06-08"> <owner>sisidovski@chromium.org</owner> <owner>chrome-worker@google.com</owner> <summary>
diff --git a/tools/metrics/histograms/metadata/variations/histograms.xml b/tools/metrics/histograms/metadata/variations/histograms.xml index 1a28dbab..fe77cae 100644 --- a/tools/metrics/histograms/metadata/variations/histograms.xml +++ b/tools/metrics/histograms/metadata/variations/histograms.xml
@@ -76,7 +76,7 @@ </histogram> <histogram name="Variations.ExtendedSafeMode.BeaconFileDeserializationError" - enum="JsonDeserializationError" expires_after="2025-03-30"> + enum="JsonDeserializationError" expires_after="2025-06-08"> <owner>caitlinfischer@google.com</owner> <owner>src/base/metrics/OWNERS</owner> <component>1456342</component> @@ -178,7 +178,7 @@ </histogram> <histogram name="Variations.FirstRun.SeedFetchTime" units="ms" - expires_after="2025-04-06"> + expires_after="2025-06-08"> <owner>asvitkine@chromium.org</owner> <owner>rkaplow@chromium.org</owner> <owner>src/base/metrics/OWNERS</owner> @@ -201,7 +201,7 @@ </histogram> <histogram name="Variations.ForcedFieldTrialsAtStartupForInternalsPage" - enum="Boolean" expires_after="2025-03-30"> + enum="Boolean" expires_after="2025-06-08"> <owner>harringtond@google.com</owner> <owner>src/base/metrics/OWNERS</owner> <summary>
diff --git a/tools/metrics/histograms/metadata/visited_url_ranking/histograms.xml b/tools/metrics/histograms/metadata/visited_url_ranking/histograms.xml index 81954cc..0a1346f9 100644 --- a/tools/metrics/histograms/metadata/visited_url_ranking/histograms.xml +++ b/tools/metrics/histograms/metadata/visited_url_ranking/histograms.xml
@@ -100,7 +100,7 @@ <histogram name="VisitedURLRanking.TransformType.{URLVisitAggregatesTransformType}.InOutPercentage" - units="%" expires_after="2025-03-22"> + units="%" expires_after="2025-06-08"> <owner>romanarora@chromium.org</owner> <owner>chrome-desktop-ntp@google.com</owner> <summary> @@ -155,7 +155,7 @@ <histogram name="VisitedURLRanking.TransformType.{URLVisitAggregatesTransformType}.Success" - enum="BooleanSuccess" expires_after="2025-03-22"> + enum="BooleanSuccess" expires_after="2025-06-08"> <owner>romanarora@chromium.org</owner> <owner>chrome-desktop-ntp@google.com</owner> <summary>
diff --git a/tools/metrics/histograms/metadata/web_apk/histograms.xml b/tools/metrics/histograms/metadata/web_apk/histograms.xml index 3790239..be95fde7 100644 --- a/tools/metrics/histograms/metadata/web_apk/histograms.xml +++ b/tools/metrics/histograms/metadata/web_apk/histograms.xml
@@ -115,7 +115,7 @@ </histogram> <histogram name="WebApk.Install.PathToInstall" enum="PwaInstallPath" - expires_after="2025-03-30"> + expires_after="2025-06-08"> <owner>finnur@chromium.org</owner> <owner>peter@chromium.org</owner> <owner>src/chrome/android/webapk/OWNERS</owner> @@ -141,7 +141,7 @@ </histogram> <histogram name="WebApk.InstallPrompt.SegmentationResult" - enum="SegmentationResult" expires_after="2025-04-06"> + enum="SegmentationResult" expires_after="2025-06-08"> <owner>eirage@chromium.org</owner> <owner>src/chrome/android/webapk/OWNERS</owner> <summary> @@ -172,7 +172,7 @@ </histogram> <histogram name="WebApk.Notification.Permission.Status2" enum="ContentSetting" - expires_after="2025-03-30"> + expires_after="2025-06-08"> <owner>hartmanng@chromium.org</owner> <owner>mvanouwerkerk@chromium.org</owner> <owner>src/chrome/android/webapk/OWNERS</owner> @@ -183,7 +183,7 @@ </histogram> <histogram name="WebApk.Notification.PermissionRequestResult" - enum="ContentSetting" expires_after="2025-03-30"> + enum="ContentSetting" expires_after="2025-06-08"> <owner>mvanouwerkerk@chromium.org</owner> <owner>peconn@chromium.org</owner> <owner>src/chrome/android/webapk/OWNERS</owner>
diff --git a/tools/metrics/histograms/metadata/web_core/histograms.xml b/tools/metrics/histograms/metadata/web_core/histograms.xml index 54161c6..369ffe8 100644 --- a/tools/metrics/histograms/metadata/web_core/histograms.xml +++ b/tools/metrics/histograms/metadata/web_core/histograms.xml
@@ -712,7 +712,7 @@ </histogram> <histogram name="WebCore.Scripts.V8CodeCacheMetadata.Get" - enum="V8CodeCacheGetMetadataType" expires_after="2025-03-30"> + enum="V8CodeCacheGetMetadataType" expires_after="2025-06-08"> <owner>marja@chromium.org</owner> <owner>v8-runtime@google.com</owner> <summary>
diff --git a/tools/metrics/histograms/metadata/web_rtc/histograms.xml b/tools/metrics/histograms/metadata/web_rtc/histograms.xml index 686c2b1..324f955 100644 --- a/tools/metrics/histograms/metadata/web_rtc/histograms.xml +++ b/tools/metrics/histograms/metadata/web_rtc/histograms.xml
@@ -1006,7 +1006,7 @@ </histogram> <histogram name="WebRTC.DataChannelCounters" enum="DataChannelCounters" - expires_after="2025-03-30"> + expires_after="2025-06-08"> <owner>orphis@chromium.org</owner> <owner>toprice@chromium.org</owner> <summary> @@ -1283,7 +1283,7 @@ </histogram> <histogram name="WebRTC.PeerConnection.DtlsFingerprintLegacySha1" - enum="Boolean" expires_after="2025-04-06"> + enum="Boolean" expires_after="2025-06-08"> <owner>hta@chromium.org</owner> <owner>webrtc-dev@chromium.org</owner> <owner>phancke@meta.com</owner>
diff --git a/tools/metrics/histograms/metadata/webauthn/histograms.xml b/tools/metrics/histograms/metadata/webauthn/histograms.xml index 2c2b8d2..02ac6204 100644 --- a/tools/metrics/histograms/metadata/webauthn/histograms.xml +++ b/tools/metrics/histograms/metadata/webauthn/histograms.xml
@@ -63,7 +63,7 @@ </histogram> <histogram name="WebAuthentication.Android.CredManPrepareRequest" - enum="CredManPrepareRequestEnum" expires_after="2025-03-30"> + enum="CredManPrepareRequestEnum" expires_after="2025-06-08"> <owner>derinel@google.com</owner> <owner>kenrb@chromium.org</owner> <summary> @@ -72,7 +72,7 @@ </histogram> <histogram name="WebAuthentication.Android.CredManPrepareRequestDuration" - units="ms" expires_after="2025-03-30"> + units="ms" expires_after="2025-06-08"> <owner>derinel@google.com</owner> <owner>kenrb@chromium.org</owner> <summary> @@ -83,7 +83,7 @@ <histogram name="WebAuthentication.Android.Fido2VsPasskeyCache.CredentialCountDifference" - units="passkeys" expires_after="2025-03-30"> + units="passkeys" expires_after="2025-06-08"> <owner>derinel@google.com</owner> <owner>chrome-webauthn@google.com</owner> <summary> @@ -94,7 +94,7 @@ </histogram> <histogram name="WebAuthentication.Android.Fido2VsPasskeyCache.Fido2FasterMs" - units="ms" expires_after="2025-03-30"> + units="ms" expires_after="2025-06-08"> <owner>derinel@google.com</owner> <owner>chrome-webauthn@google.com</owner> <summary> @@ -106,7 +106,7 @@ <histogram name="WebAuthentication.Android.Fido2VsPasskeyCache.PasskeyCacheFasterMs" - units="ms" expires_after="2025-03-30"> + units="ms" expires_after="2025-06-08"> <owner>derinel@google.com</owner> <owner>chrome-webauthn@google.com</owner> <summary> @@ -117,7 +117,7 @@ </histogram> <histogram name="WebAuthentication.Android.Fido2VsPasskeyCache.SuccessState" - enum="SuccessState" expires_after="2025-03-30"> + enum="SuccessState" expires_after="2025-06-08"> <owner>derinel@google.com</owner> <owner>chrome-webauthn@google.com</owner> <summary> @@ -126,7 +126,7 @@ </histogram> <histogram name="WebAuthentication.Android.NonDiscoverableCredentialsFound" - enum="Boolean" expires_after="2025-03-30"> + enum="Boolean" expires_after="2025-06-08"> <owner>derinel@google.com</owner> <owner>kenrb@chromium.org</owner> <summary> @@ -185,7 +185,7 @@ </histogram> <histogram name="WebAuthentication.ConditionalUiPasskeyCount" units="passkeys" - expires_after="2025-03-30"> + expires_after="2025-06-08"> <owner>kenrb@chromium.org</owner> <owner>nsatragno@chromium.org</owner> <owner>chrome-webauthn@google.com</owner> @@ -308,7 +308,7 @@ </histogram> <histogram name="WebAuthentication.IsUVPlatformAuthenticatorAvailable2" - enum="Boolean" expires_after="2025-03-30"> + enum="Boolean" expires_after="2025-06-08"> <owner>kenrb@chromium.org</owner> <owner>martinkr@google.com</owner> <summary>
diff --git a/tools/metrics/histograms/metadata/windows/histograms.xml b/tools/metrics/histograms/metadata/windows/histograms.xml index d79318b6..678edd7 100644 --- a/tools/metrics/histograms/metadata/windows/histograms.xml +++ b/tools/metrics/histograms/metadata/windows/histograms.xml
@@ -79,7 +79,7 @@ </histogram> <histogram name="Windows.Enclave.{Type}.Available" enum="BooleanAvailable" - expires_after="2025-03-30"> + expires_after="2025-06-08"> <owner>ajgo@chromium.org</owner> <owner>wfh@chromium.org</owner> <summary>
diff --git a/tools/metrics/ukm/ukm.xml b/tools/metrics/ukm/ukm.xml index c39246dd..6f4c20049 100644 --- a/tools/metrics/ukm/ukm.xml +++ b/tools/metrics/ukm/ukm.xml
@@ -7577,6 +7577,41 @@ </metric> </event> +<event name="DIPS.TrustIndicator.InFlowSuccessorInteraction"> + <owner>svend@google.com</owner> + <owner>dc-komics@google.com</owner> + <summary> + For this event to be emitted, a tab's primary main frame must be navigated + to at least four consecutive URLs A->B->C->D(->E…), A must + commit, the eTLD+1s for A and B must be different, and the navigation from + A->B must be content-initiated and not user-initiated. There must also be + a URL C or later (the "successor"), where all navigations in the + subchain B->…->successor are either server redirects or both + content-initiated and not user-initiated, all subchain URLs [B, …, + successor] have the same eTLD+1, the successor commits, and the successor + receives user interaction. There must also be another URL after the sucessor + in the navigation chain (the "flow end") that commits, where all + navigations in the subchain successor->…->flow end are + content-initiated or server redirects, all subchain URLs [successor, …, flow + end) (exclusive of flow end itself) have the same eTLD+1, and successor and + flow end have different eTLD+1s. + </summary> + <metric name="DidEntrypointAccessStorage"> + <summary> + Whether the entrypoint of the flow accessed browser storage (cookies, + etc.). + </summary> + </metric> + <metric name="SuccessorRedirectIndex"> + <summary> + What number redirect the page was that received the interaction, after the + entrypoint, including both client and server redirects. 1-indexed, so a + value of 1 means the URL was the destination of the first redirect from + the entrypoint. + </summary> + </metric> +</event> + <event name="DocumentCreated"> <owner>rakina@chromium.org</owner> <owner>navigation-dev@chromium.org</owner> @@ -19343,7 +19378,7 @@ <event name="RequestStorageAccessFor.RequestStorageResult"> <owner>selya@google.com</owner> - <owner>cfredric@google.com</owner> + <owner>cfredric@chromium.org</owner> <summary> Records invocations of document.requestStorageAccessFor and reasons the request was approved or rejected. Recorded for every call to the function, @@ -19356,6 +19391,27 @@ </metric> </event> +<event name="RequestStorageAccessFor.TopLevelStorageIsExemptionReason"> + <owner>selya@google.com</owner> + <owner>cfredric@chromium.org</owner> + <summary> + Tracks when a cookie is included in a network request due to the + ExemptionReason::kTopLevelStorageAccess. This state can only occur when a + request is cors-enabled and made from the top-level frame. Reads from + document.cookies (and requests that are not cors-enabled) are not included + because the value is always 0 and those are not recorded. Cookies that have + been written by document.cookies or network responses may be included if + subsequent request meets the requirments for kTopLevelStorageAccess. + </summary> + <metric name="NumberOfCookies"> + <summary> + Number of cookies where ExemptionReason::kTopLevelStorageAccess is the + reason a cookie is included in a given request. The value is rounded down + to the nearest exponential bucket with factor of 2.0. + </summary> + </metric> +</event> + <event name="Responsiveness.UserInteraction"> <owner>mmocny@chromium.org</owner> <owner>sullivan@chromium.org</owner>
diff --git a/tools/origin_trials/third_party/ed25519/OWNERS b/tools/origin_trials/third_party/ed25519/OWNERS index d927860..b3d2532 100644 --- a/tools/origin_trials/third_party/ed25519/OWNERS +++ b/tools/origin_trials/third_party/ed25519/OWNERS
@@ -1,3 +1,2 @@ -dhnishi@chromium.org iclelland@chromium.org mek@chromium.org
diff --git a/tools/perf/core/perfetto_binary_roller/binary_deps.json b/tools/perf/core/perfetto_binary_roller/binary_deps.json index 2051666..c490f59 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": "65a389507ac41af859ffe276f4d2b38f69e3e22e", - "full_remote_path": "chromium-telemetry/perfetto_binaries/trace_processor_shell/win/dc56fb8ac393d6300e01f03213412b3027a3b6a5/trace_processor_shell.exe" + "hash": "13349478244c7ae892c144cfc1bcdb68e996b25b", + "full_remote_path": "chromium-telemetry/perfetto_binaries/trace_processor_shell/win/fcccdd3940f8af65623a5ba999f82396ef672c41/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": "254c3ced673b152366453a55d5ddf7076f4e5d0e", - "full_remote_path": "chromium-telemetry/perfetto_binaries/trace_processor_shell/linux/036640bb9bd7a839e8fb200fe5dfe9772f4230a0/trace_processor_shell" + "hash": "8e4bf35243f043170535da42c25ad5b829636ffe", + "full_remote_path": "chromium-telemetry/perfetto_binaries/trace_processor_shell/linux/fcccdd3940f8af65623a5ba999f82396ef672c41/trace_processor_shell" } }, "power_profile.sql": {
diff --git a/tools/visual_debugger/app.html b/tools/visual_debugger/app.html index 5847af7..0e0f226 100644 --- a/tools/visual_debugger/app.html +++ b/tools/visual_debugger/app.html
@@ -252,7 +252,7 @@ <option id="100pct">100%</option> <option id="50pct">50%</option> <option id="200pct">200%</option> - <option id="freeCam" disabled>Free Camera</option> + <option id="freeCam">Free Camera</option> </select> </div> @@ -696,8 +696,9 @@ const viewerScale = document.querySelector("#viewerscale"); function scaleChanged() { - let selected = viewerScale.selectedOptions[0]; + const selected = viewerScale.selectedOptions[0]; if (selected.id != "freeCam") { + viewer.resetTranslation(); player.setViewerScale(viewerScale.value); zoom = parseInt(viewerScale.value); } @@ -712,8 +713,11 @@ canvas.addEventListener('wheel', function(e) { e.preventDefault(); var delta = e.deltaY; + const selected = viewerScale.selectedOptions[0]; - viewer.zoomToMouse(currentMouseX, currentMouseY, delta); + if (selected.id == "freeCam") { + viewer.zoomToMouse(currentMouseX, currentMouseY, delta); + } }, {passive:false}); }
diff --git a/tools/visual_debugger/frame.js b/tools/visual_debugger/frame.js index fe235f8..d38a05c4 100644 --- a/tools/visual_debugger/frame.js +++ b/tools/visual_debugger/frame.js
@@ -126,7 +126,7 @@ return this.drawCalls_.length + this.logs_.length; } - updateCanvasSize(canvas, context, scale, orientationDeg) { + updateCanvasSize(canvas, context, scale, orientationDeg, fcTransX, fcTransY) { // Swap canvas width/height for 90 or 270 deg rotations if (orientationDeg === 90 || orientationDeg === 270) { canvas.width = this.size_.height * scale; @@ -147,8 +147,8 @@ context.save(); context.fillStyle = "white"; context.fillRect( - padding, - padding, + fcTransX+padding, // Translate to account for freecam. + fcTransY+padding, // Translate to account for freecam. canvas.width - padding * 2, canvas.height - padding * 2 ); @@ -174,7 +174,7 @@ return filter; } - draw(canvas, context, scale, orientationDeg) { + draw(canvas, context, scale, orientationDeg, fcTransX, fcTransY) { // Look at global state of all threads and copy those states // to the current frame's threadID-to-state mapping. for (const threadId of Object.keys(this.threadMapping_)) { @@ -189,6 +189,10 @@ Thread.getThread(mappedThread.threadName).overrideFilters_; } + // Translate accordingly for freecam zoom based on mouse pos. + // Translation values initlaized to 0 when not in freecam mode. + context.translate(fcTransX, fcTransY); + // Generate a transform from frame space to canvas space. context.translate(canvas.width / 2, canvas.height / 2); if (orientationDeg === FlipEnum.HorizontalFlip.id) { @@ -384,8 +388,8 @@ this.currentFrameIndex_ = -1; this.viewScale = 1.0; this.viewOrientation = 0; - this.translationX = 0; - this.translationY = 0; + this.freeCamTranslationX = 0; + this.freeCamTranslationY = 0; } updateCurrentFrame() { @@ -399,11 +403,15 @@ frame.updateCanvasSize(this.canvas_, this.drawContext_, this.viewScale, - this.viewOrientation); + this.viewOrientation, + this.freeCamTranslationX, + this.freeCamTranslationY); frame.draw(this.canvas_, this.drawContext_, this.viewScale, - this.viewOrientation); + this.viewOrientation, + this.freeCamTranslationX, + this.freeCamTranslationY); } updateLogs_() { @@ -435,19 +443,25 @@ } } + resetTranslation() { + this.freeCamTranslationX = 0; + this.freeCamTranslationY = 0; + } + zoomToMouse(currentMouseX, currentMouseY, delta) { - var factor = 1.1; - if (delta > 0) { - factor = 0.9; - } - // this.translationX = currentMouseX; - // this.translationY = currentMouseY; - // this.updateCurrentFrame(); - this.viewScale *= factor; + const factor = delta < 0 ? 1.05 : 0.95; + + const newScale = this.viewScale * factor; + + // Adjust translation to keep the zoom centered around the mouse. + const worldMouseX = (currentMouseX - this.freeCamTranslationX) / this.viewScale; + const worldMouseY = (currentMouseY - this.freeCamTranslationY) / this.viewScale; + + this.freeCamTranslationX -= worldMouseX * (newScale - this.viewScale); + this.freeCamTranslationY -= worldMouseY * (newScale - this.viewScale); + + this.viewScale = newScale; this.updateCurrentFrame(); - // this.translationX = -currentMouseX; - // this.translationY = -currentMouseY; - // this.updateCurrentFrame(); } };
diff --git a/ui/android/BUILD.gn b/ui/android/BUILD.gn index 30c980a..8c71d00 100644 --- a/ui/android/BUILD.gn +++ b/ui/android/BUILD.gn
@@ -302,6 +302,7 @@ "java/src/org/chromium/ui/OverscrollRefreshHandler.java", "java/src/org/chromium/ui/UiSwitches.java", "java/src/org/chromium/ui/ViewProvider.java", + "java/src/org/chromium/ui/animation/AnimationHandler.java", "java/src/org/chromium/ui/animation/AnimationPerformanceTracker.java", "java/src/org/chromium/ui/animation/EmptyAnimationListener.java", "java/src/org/chromium/ui/base/ActivityIntentRequestTrackerDelegate.java",
diff --git a/ui/android/java/src/org/chromium/ui/animation/AnimationHandler.java b/ui/android/java/src/org/chromium/ui/animation/AnimationHandler.java new file mode 100644 index 0000000..6ec0743 --- /dev/null +++ b/ui/android/java/src/org/chromium/ui/animation/AnimationHandler.java
@@ -0,0 +1,64 @@ +// 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.ui.animation; + +import android.animation.Animator; +import android.animation.AnimatorListenerAdapter; + +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + +import java.util.Objects; + +/** + * Keeps track of animations. Helps to ensure only one instance of this Animation is running at a + * time. + */ +public class AnimationHandler { + + private @Nullable Animator mCurrentAnimator; + + /** Forces the completion of a possibly incomplete instance of the contained animation. */ + public void forceFinishAnimation() { + if (mCurrentAnimator != null) { + mCurrentAnimator.end(); + assert mCurrentAnimator == null; + } + } + + /** + * Starts the animation. Ensures that the previous instance of the animation is complete prior + * to starting said animation. + */ + public void startAnimation(@NonNull Animator animation) { + if (mCurrentAnimator != null) { + forceFinishAnimation(); + } + + assert mCurrentAnimator == null; + mCurrentAnimator = animation; + + clearCurrentAnimatorOnAnimationEnd(); + mCurrentAnimator.start(); + } + + /** Add a listener to the animator to help keep track of the animation is complete. */ + private void clearCurrentAnimatorOnAnimationEnd() { + assert mCurrentAnimator != null; + mCurrentAnimator.addListener( + new AnimatorListenerAdapter() { + @Override + public void onAnimationEnd(Animator animation) { + assert Objects.equals(animation, mCurrentAnimator); + mCurrentAnimator = null; + } + }); + } + + /** Checks if the animation is present. */ + public boolean isAnimationPresent() { + return mCurrentAnimator != null; + } +}
diff --git a/ui/base/interaction/element_tracker_mac.mm b/ui/base/interaction/element_tracker_mac.mm index 66c2277..d3321c9 100644 --- a/ui/base/interaction/element_tracker_mac.mm +++ b/ui/base/interaction/element_tracker_mac.mm
@@ -71,6 +71,7 @@ const auto it = elements_.find(identifier); if (it == elements_.end()) { LOG(ERROR) << "Element " << identifier << " activated after being hidden"; + return; } ui::ElementTracker::GetFrameworkDelegate()->NotifyElementActivated( it->second.get());
diff --git a/ui/ozone/platform/wayland/host/wayland_event_source.cc b/ui/ozone/platform/wayland/host/wayland_event_source.cc index 3e60cd2..d1d4ee3 100644 --- a/ui/ozone/platform/wayland/host/wayland_event_source.cc +++ b/ui/ozone/platform/wayland/host/wayland_event_source.cc
@@ -271,8 +271,10 @@ event.set_source_device_id(device_id); auto* focus = window_manager_->GetCurrentKeyboardFocusedWindow(); - if (!focus) + if (!focus) { + VLOG(1) << "Failed to dispatch key event. No focus surface."; return POST_DISPATCH_STOP_PROPAGATION; + } Event::DispatcherApi(&event).set_target(focus); @@ -304,12 +306,27 @@ return DispatchEvent(&event); } -void WaylandEventSource::OnSynthesizedKeyPressEvent(DomCode dom_code, +void WaylandEventSource::OnSynthesizedKeyPressEvent(WaylandWindow* window, + DomCode dom_code, base::TimeTicks timestamp) { + base::WeakPtr<WaylandWindow> prev_focused_window; + if (window) { + if (auto* prev = window_manager_->GetCurrentKeyboardFocusedWindow()) { + prev_focused_window = prev->AsWeakPtr(); + } + window_manager_->SetKeyboardFocusedWindow(window); + } + std::ignore = OnKeyboardKeyEvent(EventType::kKeyPressed, dom_code, /*repeat=*/false, /*serial=*/std::nullopt, timestamp, /*device_id=*/0, WaylandKeyboard::KeyEventKind::kKey); + + // The previously focused window may get destroyed as a side-effect of the + // above dispatched event, thus only restore focus here if it's still alive. + if (prev_focused_window) { + window_manager_->SetKeyboardFocusedWindow(prev_focused_window.get()); + } } void WaylandEventSource::OnPointerFocusChanged(
diff --git a/ui/ozone/platform/wayland/host/wayland_event_source.h b/ui/ozone/platform/wayland/host/wayland_event_source.h index 4701b2b..c7d30df 100644 --- a/ui/ozone/platform/wayland/host/wayland_event_source.h +++ b/ui/ozone/platform/wayland/host/wayland_event_source.h
@@ -102,7 +102,8 @@ base::TimeTicks timestamp, int device_id, WaylandKeyboard::KeyEventKind kind) override; - void OnSynthesizedKeyPressEvent(DomCode dom_code, + void OnSynthesizedKeyPressEvent(WaylandWindow* window, + DomCode dom_code, base::TimeTicks timestamp) override; // WaylandPointer::Delegate
diff --git a/ui/ozone/platform/wayland/host/wayland_input_method_context_unittest.cc b/ui/ozone/platform/wayland/host/wayland_input_method_context_unittest.cc index dbb339d..8cab31c 100644 --- a/ui/ozone/platform/wayland/host/wayland_input_method_context_unittest.cc +++ b/ui/ozone/platform/wayland/host/wayland_input_method_context_unittest.cc
@@ -306,7 +306,8 @@ last_event_timestamp_ = timestamp; return 0; } - void OnSynthesizedKeyPressEvent(DomCode dom_code, + void OnSynthesizedKeyPressEvent(WaylandWindow* window, + DomCode dom_code, base::TimeTicks timestamp) override {} base::TimeTicks last_event_timestamp() const { return last_event_timestamp_; }
diff --git a/ui/ozone/platform/wayland/host/wayland_keyboard.h b/ui/ozone/platform/wayland/host/wayland_keyboard.h index dbfdfcbc..f33fd5a 100644 --- a/ui/ozone/platform/wayland/host/wayland_keyboard.h +++ b/ui/ozone/platform/wayland/host/wayland_keyboard.h
@@ -168,7 +168,10 @@ base::TimeTicks timestamp, int device_id, WaylandKeyboard::KeyEventKind kind) = 0; - virtual void OnSynthesizedKeyPressEvent(DomCode dom_code, + // Dispatches a synthesized key event for `dom_code` and `timestamp`. Keyboard + // focus is temporarily transferred to `window` during this function. + virtual void OnSynthesizedKeyPressEvent(WaylandWindow* window, + DomCode dom_code, base::TimeTicks timestamp) = 0; protected:
diff --git a/ui/ozone/platform/wayland/host/wayland_window_drag_controller.cc b/ui/ozone/platform/wayland/host/wayland_window_drag_controller.cc index 1b065f70..1b12a75 100644 --- a/ui/ozone/platform/wayland/host/wayland_window_drag_controller.cc +++ b/ui/ozone/platform/wayland/host/wayland_window_drag_controller.cc
@@ -220,7 +220,7 @@ data_device_->StartDrag(*data_source_, *origin_window_, serial->value, /*icon_surface=*/nullptr, this); - pointer_grab_owner_ = origin_window_; + events_grabber_ = origin_window_; should_process_drag_motion_events_ = false; has_received_enter_ = false; nested_dispatcher_ = @@ -265,8 +265,7 @@ // snapped into a tab strip. So switch to |kAttached| state, store the focused // window as the pointer grabber and ask to quit the nested loop. state_ = State::kAttaching; - pointer_grab_owner_ = - window_manager_->GetCurrentPointerOrTouchFocusedWindow(); + events_grabber_ = window_manager_->GetCurrentPointerOrTouchFocusedWindow(); VLOG(1) << "Quiting Loop : StopDragging"; QuitLoop(); } @@ -567,8 +566,8 @@ should_cancel_drag = true; } - if (window == pointer_grab_owner_) { - pointer_grab_owner_ = nullptr; + if (window == events_grabber_) { + events_grabber_ = nullptr; } if (window == origin_window_) { @@ -615,7 +614,7 @@ void WaylandWindowDragController::HandleDropAndResetState( base::TimeTicks timestamp) { DCHECK(state_ == State::kDropped || state_ == State::kCancelled); - VLOG(1) << "Notifying drop. window=" << pointer_grab_owner_; + VLOG(1) << "Notifying drop. window=" << events_grabber_; // StopDragging() may get called in response to bogus input events, eg: // wl_pointer.button release, which would imply in multiple calls to this @@ -638,11 +637,12 @@ // wl_data_source.dnd_finished event. if (state_ == State::kCancelled && IsWindowDragProtocolAvailable()) { VLOG(1) << "Dispatching cancellation event."; - keyboard_delegate_->OnSynthesizedKeyPressEvent(DomCode::ESCAPE, timestamp); + keyboard_delegate_->OnSynthesizedKeyPressEvent(events_grabber_, + DomCode::ESCAPE, timestamp); } else { if (*drag_source_ == DragEventSource::kMouse) { - if (pointer_grab_owner_) { - pointer_delegate_->ReleasePressedPointerButtons(pointer_grab_owner_, + if (events_grabber_) { + pointer_delegate_->ReleasePressedPointerButtons(events_grabber_, timestamp); } } else { @@ -655,7 +655,7 @@ } } - pointer_grab_owner_ = nullptr; + events_grabber_ = nullptr; state_ = State::kIdle; drag_source_.reset(); } @@ -724,13 +724,13 @@ {State::kCancelled, "canceled"}, {State::kAttaching, "attaching"}}); - out << "WaylandWindowDragController:" - << " state=" << GetMapValueOrDefault(kStateToString, state_) + out << "WaylandWindowDragController:" << " state=" + << GetMapValueOrDefault(kStateToString, state_) << ", drag_offset=" << drag_offset_.ToString() << ", pointer_position=" << pointer_location_.ToString() << ", data_source=" << !!data_source_ << ", dragged_window=" << GetWindowName(dragged_window_.get()) - << ", pointer_grab_owner=" << GetWindowName(pointer_grab_owner_.get()) + << ", events_grabber=" << GetWindowName(events_grabber_.get()) << ", origin_window=" << GetWindowName(origin_window_.get()) << ", drag_target_window=" << GetWindowName(drag_target_window_.get()) << ", nested_dispatcher=" << !!nested_dispatcher_;
diff --git a/ui/ozone/platform/wayland/host/wayland_window_drag_controller.h b/ui/ozone/platform/wayland/host/wayland_window_drag_controller.h index 682bd49..f40dab2 100644 --- a/ui/ozone/platform/wayland/host/wayland_window_drag_controller.h +++ b/ui/ozone/platform/wayland/host/wayland_window_drag_controller.h
@@ -189,7 +189,7 @@ // Keeps track of the window that holds the pointer grab. i.e: the owner of // the surface that must receive the mouse release event upon drop. - raw_ptr<WaylandWindow> pointer_grab_owner_ = nullptr; + raw_ptr<WaylandWindow> events_grabber_ = nullptr; // The window where the DND session originated from. i.e: which had the // pointer focus when the session was initiated.
diff --git a/ui/ozone/platform/wayland/host/wayland_window_drag_controller_unittest.cc b/ui/ozone/platform/wayland/host/wayland_window_drag_controller_unittest.cc index fca70c83..68b3b11f 100644 --- a/ui/ozone/platform/wayland/host/wayland_window_drag_controller_unittest.cc +++ b/ui/ozone/platform/wayland/host/wayland_window_drag_controller_unittest.cc
@@ -1295,8 +1295,7 @@ // 4. Destroy the dragged window just after quitting move loop. const auto* dangling_window_ptr = window_.get(); window_.reset(); - EXPECT_NE(dangling_window_ptr, - TestApi(drag_controller()).pointer_grab_owner()); + EXPECT_NE(dangling_window_ptr, TestApi(drag_controller()).events_grabber()); EXPECT_EQ(State::kIdle, drag_controller_state()); // 5. Ensure no events are dispatched for drop. Which indirectly means that @@ -1579,7 +1578,7 @@ // Destroy the target window (which at this point should be the origin // window, grab owner and the target window). EXPECT_EQ(window_.get(), TestApi(drag_controller()).drag_target_window()); - EXPECT_EQ(window_.get(), TestApi(drag_controller()).pointer_grab_owner()); + EXPECT_EQ(window_.get(), TestApi(drag_controller()).events_grabber()); EXPECT_EQ(window_.get(), TestApi(drag_controller()).origin_window()); window_.reset(); EXPECT_FALSE(drag_controller()->IsActiveDragAndDropSession()); @@ -1641,7 +1640,7 @@ // Destroy the target window (which at this point should be the origin window, // grab owner and the target window). EXPECT_EQ(window_.get(), TestApi(drag_controller()).drag_target_window()); - EXPECT_EQ(window_.get(), TestApi(drag_controller()).pointer_grab_owner()); + EXPECT_EQ(window_.get(), TestApi(drag_controller()).events_grabber()); EXPECT_EQ(window_.get(), TestApi(drag_controller()).origin_window()); window_.reset(); EXPECT_FALSE(drag_controller()->IsActiveDragAndDropSession());
diff --git a/ui/ozone/platform/wayland/test/wayland_window_drag_controller_test_api.h b/ui/ozone/platform/wayland/test/wayland_window_drag_controller_test_api.h index 79acd85..7ebfb30 100644 --- a/ui/ozone/platform/wayland/test/wayland_window_drag_controller_test_api.h +++ b/ui/ozone/platform/wayland/test/wayland_window_drag_controller_test_api.h
@@ -38,7 +38,7 @@ WaylandWindow* drag_target_window() { return impl_->drag_target_window_; } WaylandWindow* dragged_window() { return impl_->dragged_window_; } WaylandWindow* origin_window() { return impl_->origin_window_; } - WaylandWindow* pointer_grab_owner() { return impl_->pointer_grab_owner_; } + WaylandWindow* events_grabber() { return impl_->events_grabber_; } const gfx::Vector2d& drag_offset() const { return impl_->drag_offset_; } bool has_received_enter() const { return impl_->has_received_enter_; }
diff --git a/ui/webui/examples/browser/ui/web/browser_page_handler.cc b/ui/webui/examples/browser/ui/web/browser_page_handler.cc index ef38f8e08..d419eff8 100644 --- a/ui/webui/examples/browser/ui/web/browser_page_handler.cc +++ b/ui/webui/examples/browser/ui/web/browser_page_handler.cc
@@ -48,14 +48,14 @@ void BrowserPageHandler::Navigate(int32_t guest_instance_id, const GURL& src) { auto* guest_view = WebView::FromInstanceID( - render_frame_host().GetProcess()->GetID(), guest_instance_id); + render_frame_host().GetProcess()->GetDeprecatedID(), guest_instance_id); content::NavigationController::LoadURLParams load_url_params(src); guest_view->GetController().LoadURLWithParams(load_url_params); } void BrowserPageHandler::GoBack(int32_t guest_instance_id) { auto* guest_view = WebView::FromInstanceID( - render_frame_host().GetProcess()->GetID(), guest_instance_id); + render_frame_host().GetProcess()->GetDeprecatedID(), guest_instance_id); auto& navigation_controller = guest_view->GetController(); if (navigation_controller.CanGoBack()) { navigation_controller.GoBack(); @@ -64,7 +64,7 @@ void BrowserPageHandler::GoForward(int32_t guest_instance_id) { auto* guest_view = WebView::FromInstanceID( - render_frame_host().GetProcess()->GetID(), guest_instance_id); + render_frame_host().GetProcess()->GetDeprecatedID(), guest_instance_id); auto& navigation_controller = guest_view->GetController(); if (navigation_controller.CanGoForward()) { navigation_controller.GoForward();
diff --git a/v8 b/v8 index 695231b..006e14d 160000 --- a/v8 +++ b/v8
@@ -1 +1 @@ -Subproject commit 695231b1cc11805d3f9f4e2e132d29e529212205 +Subproject commit 006e14d0efce81ddd439b2847e6095b3baae2c28