diff --git a/DEPS b/DEPS index 5ed2560..709974f 100644 --- a/DEPS +++ b/DEPS
@@ -304,11 +304,11 @@ # Three lines of non-changing comments so that # the commit queue can handle CLs rolling V8 # and whatever else without interference from each other. - 'src_internal_revision': '5b33d161ee383f02cb283692396eda2c1133ed81', + 'src_internal_revision': '6b8f06285faa0d9e7e9dbc8b30f6fe8f2c73df36', # 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': '19c1b735d46a1610fd259df3718e08ab766a5e47', + 'skia_revision': '6a50e5207dedc0ad967beb987c97a6c17b316dbf', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling V8 # and whatever else without interference from each other. @@ -324,7 +324,7 @@ # Three lines of non-changing comments so that # the commit queue can handle CLs rolling PDFium # and whatever else without interference from each other. - 'pdfium_revision': 'fecdb914f8f8190787bb203846948a3e3ab2297d', + 'pdfium_revision': '88235c1a90305beeae6f72924e072f93b65367e7', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling BoringSSL # and whatever else without interference from each other. @@ -399,7 +399,7 @@ # Three lines of non-changing comments so that # the commit queue can handle CLs rolling devtools-frontend # and whatever else without interference from each other. - 'devtools_frontend_revision': '230b10ef072c7ba15da9b3301a6c6bc54511bc12', + 'devtools_frontend_revision': 'fb2f1f877cd5e7c86bcbf681c271bb3171121ca2', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling libprotobuf-mutator # and whatever else without interference from each other. @@ -423,11 +423,11 @@ # Three lines of non-changing comments so that # the commit queue can handle CLs rolling feed # and whatever else without interference from each other. - 'dawn_revision': '1bab938a256ca5283e088a07c8bdd09f75128c57', + 'dawn_revision': 'ddc1dd344b11360f51b621506a363f297ae2aa8c', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling feed # and whatever else without interference from each other. - 'quiche_revision': 'eac20c9342bde3695ef61c07395a41c9c4c19cbd', + 'quiche_revision': '690aed3796de57c7f846b8f02dcb4569f0b95f07', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling ios_webkit # and whatever else without interference from each other. @@ -930,12 +930,12 @@ 'src/clank': { 'url': Var('chrome_git') + '/clank/internal/apps.git' + '@' + - 'e5b453e713be53b9c6b2b27df1206fd7ef4154cb', + '620d29ecf663bd64f394abe63a9dfcd074ccf82e', 'condition': 'checkout_android and checkout_src_internal', }, 'src/docs/website': { - 'url': Var('chromium_git') + '/website.git' + '@' + 'fea62e99e8250d5596ecbb806298b2e2fec4a6de', + 'url': Var('chromium_git') + '/website.git' + '@' + 'fdf176db7c68ede4eadb04ee288ecbf0352626eb', }, 'src/ios/third_party/earl_grey2/src': { @@ -1299,13 +1299,13 @@ }, 'src/third_party/depot_tools': - Var('chromium_git') + '/chromium/tools/depot_tools.git' + '@' + '4d9ad255f1ad7793ad1ed911d92cc8f5b387f492', + Var('chromium_git') + '/chromium/tools/depot_tools.git' + '@' + 'c9fb389f4b44e838b99e7c21cfd253b88c7920db', 'src/third_party/devtools-frontend/src': Var('chromium_git') + '/devtools/devtools-frontend' + '@' + Var('devtools_frontend_revision'), 'src/third_party/devtools-frontend-internal': { - 'url': Var('chrome_git') + '/devtools/devtools-internal.git' + '@' + 'ab9c61dadb8680f80be9ab710ba61fa3e88a05e7', + 'url': Var('chrome_git') + '/devtools/devtools-internal.git' + '@' + 'ab637d2bb43890b3a3fd4d3f83317e6e3bed42a8', 'condition': 'checkout_src_internal', }, @@ -2012,7 +2012,7 @@ Var('chromium_git') + '/external/github.com/gpuweb/cts.git' + '@' + '07855ae5dc6bf9a8c632cce1de54e6fd219b3c14', 'src/third_party/webrtc': - Var('webrtc_git') + '/src.git' + '@' + '84e90556aa3dae8fa7e71c1e476efd73b32a9c2e', + Var('webrtc_git') + '/src.git' + '@' + 'da648b596043e999975bbf7053b3294c9039738a', # 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. @@ -3984,7 +3984,7 @@ 'src/ash/webui/conch': { 'url': Var('chrome_git') + '/ash/webui/conch.git' + '@' + - 'afd1f4f33165cb3ee4cf55afbfbd5ecaa38b613f', + '51912b7cb18c609a443f5726c58701c570f46ce7', 'condition': 'checkout_src_internal and checkout_chromeos', }, @@ -4189,7 +4189,7 @@ 'src/components/optimization_guide/internal': { 'url': Var('chrome_git') + '/chrome/components/optimization_guide.git' + '@' + - '06178f2cd5e20152ad51fbb3d08a2ffaa876d031', + 'f07f78378f13920fd5ac75e3d50624ea7f6ef1b6', 'condition': 'checkout_src_internal', }, @@ -4249,7 +4249,7 @@ 'src/ios_internal': { 'url': Var('chrome_git') + '/chrome/ios_internal.git' + '@' + - 'c58e60df404af68ac4bcdb0d57ffe061d920a487', + '9d8a586929b508ef781d24be7a70173656952251', 'condition': 'checkout_ios and checkout_src_internal', },
diff --git a/ash/accelerators/accelerator_controller_impl.cc b/ash/accelerators/accelerator_controller_impl.cc index bdee1bac..12b28994 100644 --- a/ash/accelerators/accelerator_controller_impl.cc +++ b/ash/accelerators/accelerator_controller_impl.cc
@@ -25,6 +25,7 @@ #include "ash/public/cpp/accelerators.h" #include "ash/public/cpp/debug_delegate.h" #include "ash/shell.h" +#include "ash/system/input_device_settings/input_device_settings_notification_controller.h" #include "ash/system/power/power_button_controller.h" #include "ash/wm/mru_window_tracker.h" #include "ash/wm/screen_pinning_controller.h" @@ -44,6 +45,7 @@ #include "ui/base/accelerators/accelerator_manager.h" #include "ui/base/ui_base_features.h" #include "ui/display/screen.h" +#include "ui/events/ash/keyboard_capability.h" #include "ui/events/ash/keyboard_layout_util.h" #include "ui/events/event.h" #include "ui/events/event_constants.h" @@ -258,9 +260,20 @@ const ui::Accelerator& accelerator, const ui::Accelerator& previous_accelerator, const std::set<ui::KeyboardCode>& currently_pressed_keys, - const AcceleratorCapslockStateMachine& capslock_state_machine) { + const AcceleratorCapslockStateMachine& capslock_state_machine, + InputDeviceSettingsNotificationController* notification_controller) { if (base::FeatureList::IsEnabled(features::kShortcutStateMachines)) { - return capslock_state_machine.CanHandleCapsLock(); + if (capslock_state_machine.CanHandleCapsLock()) { + // Check if from modifier split keyboard. if not, show notification. + if (Shell::Get()->keyboard_capability()->HasFunctionKey( + accelerator.source_device_id())) { + CHECK(features::IsModifierSplitEnabled()); + notification_controller->ShowCapsLockRewritingNudge(); + return false; + } + return true; + } + return false; } // Iterate the set of pressed keys. If any redundant key is pressed, CapsLock @@ -694,6 +707,12 @@ for (size_t i = 0; i < kDeveloperAcceleratorDataLength; ++i) reserved_actions_.insert(kDeveloperAcceleratorData[i].action); } + + if (features::IsModifierSplitEnabled()) { + notification_controller_ = + std::make_unique<InputDeviceSettingsNotificationController>( + message_center::MessageCenter::Get()); + } } void AcceleratorControllerImpl::RegisterAccelerators( @@ -845,7 +864,7 @@ return CanHandleToggleCapsLock( accelerator, previous_accelerator, accelerator_history_->currently_pressed_keys(), - *capslock_state_machine_); + *capslock_state_machine_, notification_controller_.get()); case AcceleratorAction::kToggleClipboardHistory: return true; case AcceleratorAction::kEnableOrToggleDictation:
diff --git a/ash/accelerators/accelerator_controller_impl.h b/ash/accelerators/accelerator_controller_impl.h index 1c67343..9914625 100644 --- a/ash/accelerators/accelerator_controller_impl.h +++ b/ash/accelerators/accelerator_controller_impl.h
@@ -26,6 +26,7 @@ #include "ash/accessibility/ui/accessibility_confirmation_dialog.h" #include "ash/ash_export.h" #include "ash/public/cpp/accelerators.h" +#include "ash/system/input_device_settings/input_device_settings_notification_controller.h" #include "base/files/file_path.h" #include "base/gtest_prod_util.h" #include "base/memory/raw_ptr.h" @@ -293,6 +294,9 @@ // Please refer to the comment on |DebugInterfaceAsh| for the lifetime of this // pointer. raw_ptr<DebugDelegate> debug_delegate_ = nullptr; + + std::unique_ptr<InputDeviceSettingsNotificationController> + notification_controller_; }; } // namespace ash
diff --git a/ash/accelerators/accelerator_controller_unittest.cc b/ash/accelerators/accelerator_controller_unittest.cc index 703e372..4cc2b3c2 100644 --- a/ash/accelerators/accelerator_controller_unittest.cc +++ b/ash/accelerators/accelerator_controller_unittest.cc
@@ -43,6 +43,8 @@ #include "ash/system/keyboard_brightness_control_delegate.h" #include "ash/system/power/power_button_controller_test_api.h" #include "ash/system/status_area_widget_test_helper.h" +#include "ash/system/toast/anchored_nudge.h" +#include "ash/system/toast/anchored_nudge_manager_impl.h" #include "ash/system/unified/unified_system_tray.h" #include "ash/test/ash_test_base.h" #include "ash/test_media_client.h" @@ -94,6 +96,7 @@ #include "ui/display/screen.h" #include "ui/display/test/display_manager_test_api.h" #include "ui/events/devices/device_data_manager_test_api.h" +#include "ui/events/devices/keyboard_device.h" #include "ui/events/event.h" #include "ui/events/event_constants.h" #include "ui/events/event_sink.h" @@ -120,6 +123,8 @@ const ui::Accelerator accelerator; }; +constexpr char kCapsLockNoMatchNudgeId[] = "caps-lock-no-match-nudge-id"; + const PrefToAcceleratorEntry kAccessibilityAcceleratorMap[] = { { prefs::kAccessibilityHighContrastEnabled, @@ -1913,6 +1918,62 @@ std::make_pair<std::string, std::string>(kVolumeButtonRegionScreen, kVolumeButtonSideBottom)})); +TEST_F(AcceleratorControllerTest, ToggleCpasLockAcceleratorsWithFunctionKey) { + base::test::ScopedFeatureList feature_list; + feature_list.InitWithFeatures( + {features::kModifierSplit, features::kShortcutStateMachines, + features::kPeripheralNotification, features::kPeripheralCustomization, + features::kInputDeviceSettingsSplit}, + {}); + + auto reset = switches::SetIgnoreModifierSplitSecretKeyForTest(); + AnchoredNudgeManagerImpl* nudge_manager = + Shell::Get()->anchored_nudge_manager(); + ASSERT_TRUE(nudge_manager); + + const int kKeyboardDeviceId = 123; + const ui::KeyboardDevice keyboard( + kKeyboardDeviceId, ui::InputDeviceType::INPUT_DEVICE_INTERNAL, + /*name=*/"test keyboard with function key", + /*phys=*/"", + base::FilePath("/devices/platform/i8042/serio2/input/input1"), + /*vendor=*/-1, + /*product=*/-1, /*version=*/-1, + /*has_assistant_key=*/true, + /*has_function_key=*/true); + + // // Reset the state of the device manager. + ui::DeviceDataManagerTestApi().SetKeyboardDevices({keyboard}); + test_api_->SetCanHandleCapsLock(true); + + ImeControllerImpl* controller = Shell::Get()->ime_controller(); + TestImeControllerClient client; + controller->SetClient(&client); + EXPECT_EQ(0, client.set_caps_lock_count_); + + // Create an event with a keyboard that has function key. The controller + // shouldn't process the capsLock key event. + ui::KeyEvent press_event(ui::ET_KEY_PRESSED, ui::VKEY_LWIN, + /*flags=*/ui::EF_ALT_DOWN); + press_event.set_source_device_id(kKeyboardDeviceId); + const ui::Accelerator press_search_after_alt(press_event); + EXPECT_FALSE(ProcessInController(press_search_after_alt)); + + ui::KeyEvent release_event(ui::ET_KEY_RELEASED, ui::VKEY_LWIN, + /*flags=*/ui::EF_ALT_DOWN); + release_event.set_source_device_id(kKeyboardDeviceId); + const ui::Accelerator release_search_after_alt(release_event); + EXPECT_FALSE(ProcessInController(release_search_after_alt)); + + EXPECT_EQ(0, client.set_caps_lock_count_); + EXPECT_FALSE(controller->IsCapsLockEnabled()); + + // Notification showing caps lock blocked by function key should show up. + EXPECT_TRUE(nudge_manager->GetNudgeIfShown(kCapsLockNoMatchNudgeId)); + nudge_manager->Cancel(kCapsLockNoMatchNudgeId); + feature_list.Reset(); +} + // Tests the AcceleratorAction::kToggleCapsLock accelerator. TEST_F(AcceleratorControllerTest, ToggleCapsLockAccelerators) { base::test::ScopedFeatureList feature_list;
diff --git a/ash/components/arc/metrics/arc_metrics_service.cc b/ash/components/arc/metrics/arc_metrics_service.cc index 44e9a446..c10e322 100644 --- a/ash/components/arc/metrics/arc_metrics_service.cc +++ b/ash/components/arc/metrics/arc_metrics_service.cc
@@ -91,20 +91,6 @@ return ""; } -const char* LowLatencyStylusLibraryTypeToString( - mojom::LowLatencyStylusLibraryType library_type) { - switch (library_type) { - case mojom::LowLatencyStylusLibraryType::kUnsupported: - break; - case mojom::LowLatencyStylusLibraryType::kCPU: - return ".CPU"; - case mojom::LowLatencyStylusLibraryType::kGPU: - return ".GPU"; - } - NOTREACHED(); - return ""; -} - const char* DnsQueryToString(mojom::ArcDnsQuery query) { switch (query) { case mojom::ArcDnsQuery::OTHER_HOST_NAME: @@ -686,8 +672,7 @@ void ArcMetricsService::ReportLowLatencyStylusLibApiUsage( mojom::LowLatencyStylusLibApiId api_id) { - DCHECK_CALLED_ON_VALID_THREAD(thread_checker_); - UMA_HISTOGRAM_ENUMERATION("Arc.LowLatencyStylusLibraryApisCounter", api_id); + // Deprecated: This will be removed once all callers are removed. } void ArcMetricsService::ReportVpnServiceBuilderCompatApiUsage( @@ -699,12 +684,7 @@ void ArcMetricsService::ReportLowLatencyStylusLibPredictionTarget( mojom::LowLatencyStylusLibPredictionTargetPtr prediction_target) { - DCHECK_CALLED_ON_VALID_THREAD(thread_checker_); - base::UmaHistogramCounts100( - base::StrCat( - {"Arc.LowLatencyStylusLibrary.PredictionTarget", - LowLatencyStylusLibraryTypeToString(prediction_target->type)}), - prediction_target->target); + // Deprecated: This will be removed once all callers are removed. } void ArcMetricsService::ReportEntireFixupMetrics(base::TimeDelta duration,
diff --git a/ash/constants/ash_features.cc b/ash/constants/ash_features.cc index 609e71c..8d7f15a 100644 --- a/ash/constants/ash_features.cc +++ b/ash/constants/ash_features.cc
@@ -567,16 +567,6 @@ "CryptAuthV2Enrollment", base::FEATURE_ENABLED_BY_DEFAULT); -// Temporary flag, needed to interlace code and tast test changes, -// will be removed before M-121 branch. -// - if enabled, keeps the old flow where recovery screen performs -// authentication, updates password, and shows confirmation screen. -// - if disabled, recovery screen only performs authentication, and -// remaining steps are done by separate screens. -BASE_FEATURE(kCryptohomeRecoveryBeforeFlowSplit, - "CryptohomeRecoveryBeforeFlowSplit", - base::FEATURE_DISABLED_BY_DEFAULT); - // Controls the default value for the option to set up // cryptohome recovery presented for consumer users. // - if enabled, recovery would set up by default (opt-out mode) @@ -618,6 +608,12 @@ "DesksTemplates", base::FEATURE_DISABLED_BY_DEFAULT); +// Removes the portal detection at Chrome, and always relies on the result from +// shill. The removal is tracked at b/336931625. +BASE_FEATURE(kRemoveDetectPortalFromChrome, + "RemoveDetectPortalFromChrome", + base::FEATURE_DISABLED_BY_DEFAULT); + // Enables diacritics on longpress on the physical keyboard. BASE_FEATURE(kDiacriticsOnPhysicalKeyboardLongpress, "DiacriticsOnPhysicalKeyboardLongpress", @@ -851,7 +847,7 @@ // Enables RFC8925 (prefer IPv6-only on an IPv6-only-capable network). BASE_FEATURE(kEnableRFC8925, "EnableRFC8925", - base::FEATURE_DISABLED_BY_DEFAULT); + base::FEATURE_ENABLED_BY_DEFAULT); // If enabled, touchpad cards will be shown in the diagnostics app's input // section. @@ -972,11 +968,9 @@ base::FEATURE_DISABLED_BY_DEFAULT); // Enables extended updates opt-in functionality. -// TODO(b/322418004): Change to enabled by default once functionality is -// fully implemented. BASE_FEATURE(kExtendedUpdatesOptInFeature, "ExtendedUpdatesOptInFeature", - base::FEATURE_DISABLED_BY_DEFAULT); + base::FEATURE_ENABLED_BY_DEFAULT); // Enables policy that controls feature to allow Family Link accounts on school // owned devices. @@ -4211,6 +4205,10 @@ return chromeos::features::IsJellyEnabled(); } +bool IsRemoveDetectPortalFromChromeEnabled() { + return base::FeatureList::IsEnabled(kRemoveDetectPortalFromChrome); +} + bool IsPhoneHubCameraRollEnabled() { return base::FeatureList::IsEnabled(kPhoneHubCameraRoll); }
diff --git a/ash/constants/ash_features.h b/ash/constants/ash_features.h index 3773605..8a1ab083 100644 --- a/ash/constants/ash_features.h +++ b/ash/constants/ash_features.h
@@ -149,6 +149,8 @@ COMPONENT_EXPORT(ASH_CONSTANTS) BASE_DECLARE_FEATURE(kCryptauthAttestationSyncing); COMPONENT_EXPORT(ASH_CONSTANTS) BASE_DECLARE_FEATURE(kDesksTemplates); +COMPONENT_EXPORT(ASH_CONSTANTS) +BASE_DECLARE_FEATURE(kRemoveDetectPortalFromChrome); COMPONENT_EXPORT(ASH_CONSTANTS) BASE_DECLARE_FEATURE(kCrostiniDiskResizing); COMPONENT_EXPORT(ASH_CONSTANTS) BASE_DECLARE_FEATURE(kCrostiniGpuSupport); COMPONENT_EXPORT(ASH_CONSTANTS) BASE_DECLARE_FEATURE(kCrostiniResetLxdDb); @@ -167,8 +169,6 @@ COMPONENT_EXPORT(ASH_CONSTANTS) BASE_DECLARE_FEATURE(kCryptAuthV2DeviceSync); COMPONENT_EXPORT(ASH_CONSTANTS) BASE_DECLARE_FEATURE(kCryptAuthV2Enrollment); COMPONENT_EXPORT(ASH_CONSTANTS) -BASE_DECLARE_FEATURE(kCryptohomeRecoveryBeforeFlowSplit); -COMPONENT_EXPORT(ASH_CONSTANTS) BASE_DECLARE_FEATURE(kCryptohomeRecoveryByDefaultForConsumers); COMPONENT_EXPORT(ASH_CONSTANTS) BASE_DECLARE_FEATURE(kCryptohomeRecoveryByDefaultForEnterprise); @@ -962,6 +962,7 @@ COMPONENT_EXPORT(ASH_CONSTANTS) bool IsAmbientModeThrottleAnimationEnabled(); COMPONENT_EXPORT(ASH_CONSTANTS) bool IsApnRevampAndPoliciesEnabled(); COMPONENT_EXPORT(ASH_CONSTANTS) bool IsApnRevampEnabled(); +COMPONENT_EXPORT(ASH_CONSTANTS) bool IsRemoveDetectPortalFromChromeEnabled(); COMPONENT_EXPORT(ASH_CONSTANTS) bool IsAppNotificationsPageEnabled(); COMPONENT_EXPORT(ASH_CONSTANTS) bool IsArcFuseBoxFileSharingEnabled(); COMPONENT_EXPORT(ASH_CONSTANTS) bool IsArcInputOverlayAlphaV2Enabled();
diff --git a/ash/game_dashboard/game_dashboard_main_menu_view.cc b/ash/game_dashboard/game_dashboard_main_menu_view.cc index 8446b44c0..31d9265 100644 --- a/ash/game_dashboard/game_dashboard_main_menu_view.cc +++ b/ash/game_dashboard/game_dashboard_main_menu_view.cc
@@ -62,6 +62,7 @@ #include "ui/views/controls/button/image_button.h" #include "ui/views/controls/focus_ring.h" #include "ui/views/controls/highlight_path_generator.h" +#include "ui/views/controls/image_view.h" #include "ui/views/controls/label.h" #include "ui/views/layout/box_layout.h" #include "ui/views/layout/box_layout_view.h" @@ -273,26 +274,19 @@ public: FeatureHeader(bool is_enabled, const gfx::VectorIcon& icon, - const std::u16string& title) { + const std::u16string& title) + : vector_icon_(&icon) { auto* layout = SetLayoutManager(std::make_unique<views::BoxLayout>()); layout->set_cross_axis_alignment( views::BoxLayout::CrossAxisAlignment::kCenter); // Add icon. - auto* icon_container = AddChildView(std::make_unique<views::View>()); - icon_container->SetLayoutManager(std::make_unique<views::FillLayout>()); - icon_container->SetBackground(views::CreateThemedRoundedRectBackground( + icon_view_ = AddChildView(std::make_unique<views::ImageView>()); + icon_view_->SetBackground(views::CreateThemedRoundedRectBackground( cros_tokens::kCrosSysSystemOnBase, /*radius=*/12.0f)); - icon_container->SetBorder(views::CreateEmptyBorder(gfx::Insets::VH(6, 6))); - icon_container->SetProperty(views::kMarginsKey, - gfx::Insets::TLBR(0, 0, 0, 16)); - icon_container->AddChildView( - std::make_unique<views::ImageView>(ui::ImageModel::FromVectorIcon( - icon, - is_enabled ? cros_tokens::kCrosSysOnSurface - : cros_tokens::kCrosSysDisabled, - /*icon_size=*/20))); + icon_view_->SetBorder(views::CreateEmptyBorder(gfx::Insets::VH(6, 6))); + icon_view_->SetProperty(views::kMarginsKey, gfx::Insets::TLBR(0, 0, 0, 16)); // Add title and sub-title. auto* tag_container = @@ -304,30 +298,38 @@ layout->SetFlexForView(tag_container, /*flex=*/1); // Add title. - auto* feature_title = - tag_container->AddChildView(std::make_unique<views::Label>(title)); - feature_title->SetAutoColorReadabilityEnabled(false); - feature_title->SetEnabledColorId(is_enabled - ? cros_tokens::kCrosSysOnSurface - : cros_tokens::kCrosSysDisabled); - feature_title->SetFontList( - TypographyProvider::Get()->ResolveTypographyToken( - TypographyToken::kCrosTitle2)); - feature_title->SetHorizontalAlignment(gfx::ALIGN_LEFT); - feature_title->SetMultiLine(true); + title_ = tag_container->AddChildView(std::make_unique<views::Label>(title)); + title_->SetAutoColorReadabilityEnabled(false); + title_->SetFontList(TypographyProvider::Get()->ResolveTypographyToken( + TypographyToken::kCrosTitle2)); + title_->SetHorizontalAlignment(gfx::ALIGN_LEFT); + title_->SetMultiLine(true); // Add sub-title. - sub_title_ = tag_container->AddChildView(bubble_utils::CreateLabel( - TypographyToken::kCrosAnnotation2, u"", - is_enabled ? cros_tokens::kCrosSysOnSurfaceVariant - : cros_tokens::kCrosSysDisabled)); + sub_title_ = tag_container->AddChildView(std::make_unique<views::Label>()); + sub_title_->SetAutoColorReadabilityEnabled(false); + sub_title_->SetFontList(TypographyProvider::Get()->ResolveTypographyToken( + TypographyToken::kCrosAnnotation2)); sub_title_->SetHorizontalAlignment(gfx::ALIGN_LEFT); sub_title_->SetMultiLine(true); + + UpdateColors(is_enabled); } FeatureHeader(const FeatureHeader&) = delete; FeatureHeader& operator=(const FeatureHeader) = delete; ~FeatureHeader() override = default; + void UpdateColors(bool is_enabled) { + const auto color_id = is_enabled ? cros_tokens::kCrosSysOnSurface + : cros_tokens::kCrosSysDisabled; + icon_view_->SetImage(ui::ImageModel::FromVectorIcon(*vector_icon_, color_id, + /*icon_size=*/20)); + title_->SetEnabledColorId(color_id); + sub_title_->SetEnabledColorId(is_enabled + ? cros_tokens::kCrosSysOnSurfaceVariant + : cros_tokens::kCrosSysDisabled); + } + void UpdateSubtitle(const std::u16string& text) { // For multiline label, if the fixed width is not set, the preferred size is // re-calcuated based on previous label size as available size instead of @@ -342,6 +344,10 @@ } private: + const raw_ptr<const gfx::VectorIcon> vector_icon_; + + raw_ptr<views::ImageView> icon_view_ = nullptr; + raw_ptr<views::Label> title_ = nullptr; raw_ptr<views::Label> sub_title_ = nullptr; }; @@ -480,8 +486,6 @@ IDS_ASH_GAME_DASHBOARD_FEATURE_NOT_AVAILABLE_TOOLTIP)); } } else { - const bool is_feature_enabled = IsGameControlsFeatureEnabled(*flags); - UpdateSubtitle(/*is_game_controls_enabled=*/is_feature_enabled); // Add switch_button to enable or disable game controls. feature_switch_ = AddChildView(std::make_unique<Switch>(base::BindRepeating( @@ -489,15 +493,20 @@ base::Unretained(this)))); feature_switch_->SetProperty(views::kMarginsKey, gfx::Insets::TLBR(0, 8, 0, 18)); + const bool is_feature_enabled = IsGameControlsFeatureEnabled(*flags); feature_switch_->SetIsOn(is_feature_enabled); feature_switch_->SetTooltipText(l10n_util::GetStringUTF16( feature_switch_->GetIsOn() ? IDS_ASH_GAME_DASHBOARD_GC_FEATURE_SWITCH_TOOLTIPS_OFF : IDS_ASH_GAME_DASHBOARD_GC_FEATURE_SWITCH_TOOLTIPS_ON)); // Add arrow icon. - AddChildView( - std::make_unique<views::ImageView>(ui::ImageModel::FromVectorIcon( - kQuickSettingsRightArrowIcon, cros_tokens::kCrosSysOnSurface))); + arrow_icon_ = AddChildView(std::make_unique<views::ImageView>()); + + UpdateColors(is_feature_enabled); + SetFocusBehavior(is_feature_enabled ? FocusBehavior::ALWAYS + : FocusBehavior::ACCESSIBLE_ONLY); + + UpdateSubtitle(/*is_game_controls_enabled=*/is_feature_enabled); } } @@ -535,8 +544,12 @@ void OnSetUpButtonPressed() { EnableEditMode(); } void OnFeatureSwitchButtonPressed() { - const bool is_toggled = feature_switch_->GetIsOn(); - UpdateSubtitle(/*is_game_controls_enabled=*/is_toggled); + const bool is_switch_on = feature_switch_->GetIsOn(); + // When `feature_switch_` toggles on or off, it updates the colors but does + // not enable or disable this button. + UpdateColors(is_switch_on); + SetFocusBehavior(is_switch_on ? FocusBehavior::ALWAYS + : FocusBehavior::ACCESSIBLE_ONLY); auto* game_window = GetGameWindow(); game_window->SetProperty( @@ -546,14 +559,27 @@ static_cast<ArcGameControlsFlag>( /*enable_flag=*/ArcGameControlsFlag::kEnabled | ArcGameControlsFlag::kHint), - is_toggled)); + is_switch_on)); feature_switch_->SetTooltipText(l10n_util::GetStringUTF16( - feature_switch_->GetIsOn() - ? IDS_ASH_GAME_DASHBOARD_GC_FEATURE_SWITCH_TOOLTIPS_OFF - : IDS_ASH_GAME_DASHBOARD_GC_FEATURE_SWITCH_TOOLTIPS_ON)); + is_switch_on ? IDS_ASH_GAME_DASHBOARD_GC_FEATURE_SWITCH_TOOLTIPS_OFF + : IDS_ASH_GAME_DASHBOARD_GC_FEATURE_SWITCH_TOOLTIPS_ON)); main_menu_->UpdateGameControlsTile(); - RecordGameDashboardControlsFeatureToggleState(is_toggled); + UpdateSubtitle(/*is_game_controls_enabled=*/is_switch_on); + + RecordGameDashboardControlsFeatureToggleState(is_switch_on); + } + + void UpdateColors(bool enabled) { + SetBackground(views::CreateThemedRoundedRectBackground( + enabled ? cros_tokens::kCrosSysSystemOnBase + : cros_tokens::kCrosSysSystemOnBaseOpaque, + kGCDetailRowCorners)); + header_->UpdateColors(enabled); + CHECK(arrow_icon_); + arrow_icon_->SetImage(ui::ImageModel::FromVectorIcon( + kQuickSettingsRightArrowIcon, enabled ? cros_tokens::kCrosSysOnSurface + : cros_tokens::kCrosSysDisabled)); } void UpdateSubtitle(bool is_feature_enabled) { @@ -706,6 +732,7 @@ raw_ptr<FeatureHeader> header_ = nullptr; raw_ptr<PillButton> setup_button_ = nullptr; raw_ptr<Switch> feature_switch_ = nullptr; + raw_ptr<views::ImageView> arrow_icon_ = nullptr; // App name from the app where this view is anchored. std::string app_name_;
diff --git a/ash/picker/picker_controller.cc b/ash/picker/picker_controller.cc index 9332baf..0d651a7 100644 --- a/ash/picker/picker_controller.cc +++ b/ash/picker/picker_controller.cc
@@ -456,10 +456,11 @@ PickerSessionMetrics::SessionOutcome::kInsertedOrCopied); } -void PickerController::ShowEmojiPicker(ui::EmojiPickerCategory category) { +void PickerController::ShowEmojiPicker(ui::EmojiPickerCategory category, + std::u16string_view query) { ui::ShowEmojiPanelInSpecificMode(category, ui::EmojiPickerFocusBehavior::kAlwaysShow, - /*initial_query=*/""); + base::UTF16ToUTF8(query)); } void PickerController::ShowEditor(std::optional<std::string> preset_query_id,
diff --git a/ash/picker/picker_controller.h b/ash/picker/picker_controller.h index 1371e34..05146b3 100644 --- a/ash/picker/picker_controller.h +++ b/ash/picker/picker_controller.h
@@ -83,7 +83,8 @@ std::optional<PickerCategory> category, SearchResultsCallback callback) override; void InsertResultOnNextFocus(const PickerSearchResult& result) override; - void ShowEmojiPicker(ui::EmojiPickerCategory category) override; + void ShowEmojiPicker(ui::EmojiPickerCategory category, + std::u16string_view query) override; void ShowEditor(std::optional<std::string> preset_query_id, std::optional<std::string> freeform_text) override; void SetCapsLockEnabled(bool enabled) override;
diff --git a/ash/picker/picker_controller_unittest.cc b/ash/picker/picker_controller_unittest.cc index 95b1e3c3..97bd19e 100644 --- a/ash/picker/picker_controller_unittest.cc +++ b/ash/picker/picker_controller_unittest.cc
@@ -316,12 +316,12 @@ future; ui::SetShowEmojiKeyboardCallback(future.GetRepeatingCallback()); - controller.ShowEmojiPicker(ui::EmojiPickerCategory::kSymbols); + controller.ShowEmojiPicker(ui::EmojiPickerCategory::kSymbols, u"abc"); const auto& [category, focus_behavior, initial_query] = future.Get(); EXPECT_EQ(category, ui::EmojiPickerCategory::kSymbols); EXPECT_EQ(focus_behavior, ui::EmojiPickerFocusBehavior::kAlwaysShow); - EXPECT_EQ(initial_query, ""); + EXPECT_EQ(initial_query, "abc"); } TEST_F(PickerControllerTest, SetCapsLockEnabledToTrueTurnsOnCapsLock) {
diff --git a/ash/picker/views/picker_view.cc b/ash/picker/views/picker_view.cc index b543411..4aac1e46 100644 --- a/ash/picker/views/picker_view.cc +++ b/ash/picker/views/picker_view.cc
@@ -310,7 +310,7 @@ } session_metrics.SetOutcome( PickerSessionMetrics::SessionOutcome::kRedirected); - delegate_->ShowEmojiPicker(ui::EmojiPickerCategory::kEmojis); + delegate_->ShowEmojiPicker(ui::EmojiPickerCategory::kEmojis, query); return; }
diff --git a/ash/picker/views/picker_view_delegate.h b/ash/picker/views/picker_view_delegate.h index ddbca81..73eddf4 100644 --- a/ash/picker/views/picker_view_delegate.h +++ b/ash/picker/views/picker_view_delegate.h
@@ -57,7 +57,8 @@ virtual void InsertResultOnNextFocus(const PickerSearchResult& result) = 0; // Shows the Emoji Picker with `category`. - virtual void ShowEmojiPicker(ui::EmojiPickerCategory category) = 0; + virtual void ShowEmojiPicker(ui::EmojiPickerCategory category, + std::u16string_view query) = 0; // Shows the Editor. virtual void ShowEditor(std::optional<std::string> preset_query_id,
diff --git a/ash/picker/views/picker_view_unittest.cc b/ash/picker/views/picker_view_unittest.cc index 2794076..e5b7f31 100644 --- a/ash/picker/views/picker_view_unittest.cc +++ b/ash/picker/views/picker_view_unittest.cc
@@ -136,8 +136,9 @@ last_inserted_result_ = result; } - void ShowEmojiPicker(ui::EmojiPickerCategory category) override { - showed_emoji_picker_ = true; + void ShowEmojiPicker(ui::EmojiPickerCategory category, + std::u16string_view query) override { + emoji_picker_query_ = std::u16string(query); } void ShowEditor(std::optional<std::string> preset_query_id, std::optional<std::string> freeform_text) override { @@ -159,7 +160,9 @@ return last_inserted_result_; } - bool showed_emoji_picker() const { return showed_emoji_picker_; } + std::optional<std::u16string> emoji_picker_query() const { + return emoji_picker_query_; + } bool showed_editor() const { return showed_editor_; } std::optional<PickerCategory> requested_case_transformation_category() const { return requested_case_transformation_category_; @@ -171,7 +174,7 @@ MockPickerAssetFetcher asset_fetcher_; PickerSessionMetrics session_metrics_; std::optional<PickerSearchResult> last_inserted_result_; - bool showed_emoji_picker_ = false; + std::optional<std::u16string> emoji_picker_query_; bool showed_editor_ = false; std::optional<PickerCategory> requested_case_transformation_category_ = std::nullopt; @@ -784,7 +787,7 @@ LeftClickOn(GetFirstCategoryItemView(GetPickerViewFromWidget(*widget))); EXPECT_TRUE(widget->IsClosed()); - EXPECT_TRUE(delegate.showed_emoji_picker()); + EXPECT_THAT(delegate.emoji_picker_query(), Optional(Eq(u""))); } TEST_F(PickerViewTest, ShowsEditorWhenClickingOnEditor) { @@ -1069,6 +1072,36 @@ } TEST_F(PickerViewTest, + OpensEmojiPickerWithQueryCategorySearchWhenClickingOnSeeMoreResults) { + base::test::TestFuture<void> future; + FakePickerViewDelegate delegate({ + .search_function = base::BindLambdaForTesting( + [&](FakePickerViewDelegate::SearchResultsCallback callback) { + future.SetValue(); + callback.Run({ + PickerSearchResultsSection(PickerSectionType::kExpressions, {}, + /*has_more_results=*/true), + }); + }), + }); + auto widget = PickerWidget::Create(&delegate, kDefaultAnchorBounds); + widget->Show(); + PressAndReleaseKey(ui::KeyboardCode::VKEY_A, ui::EF_NONE); + ASSERT_TRUE(future.Wait()); + future.Clear(); + PickerView* view = GetPickerViewFromWidget(*widget); + views::View* trailing_link = view->search_results_view_for_testing() + .section_views_for_testing()[0] + ->title_trailing_link_for_testing(); + + ViewDrawnWaiter().Wait(trailing_link); + LeftClickOn(trailing_link); + + EXPECT_TRUE(widget->IsClosed()); + EXPECT_THAT(delegate.emoji_picker_query(), Optional(Eq(u"a"))); +} + +TEST_F(PickerViewTest, KeepsSearchFieldQueryTextAndFocusWhenClickingOnSeeMoreResults) { base::test::TestFuture<void> future; FakePickerViewDelegate delegate({
diff --git a/ash/picker/views/picker_widget_unittest.cc b/ash/picker/views/picker_widget_unittest.cc index 5d57c4b9..305016b 100644 --- a/ash/picker/views/picker_widget_unittest.cc +++ b/ash/picker/views/picker_widget_unittest.cc
@@ -40,7 +40,8 @@ std::optional<PickerCategory> category, SearchResultsCallback callback) override {} void InsertResultOnNextFocus(const PickerSearchResult& result) override {} - void ShowEmojiPicker(ui::EmojiPickerCategory category) override {} + void ShowEmojiPicker(ui::EmojiPickerCategory category, + std::u16string_view query) override {} void ShowEditor(std::optional<std::string> preset_query_id, std::optional<std::string> freeform_text) override {} void SetCapsLockEnabled(bool enabled) override {}
diff --git a/ash/system/input_device_settings/input_device_settings_controller_impl.cc b/ash/system/input_device_settings/input_device_settings_controller_impl.cc index 620569a..8b965ca 100644 --- a/ash/system/input_device_settings/input_device_settings_controller_impl.cc +++ b/ash/system/input_device_settings/input_device_settings_controller_impl.cc
@@ -990,12 +990,14 @@ pref_service->ClearPref(prefs::kEndRemappingNudgeShownCount); pref_service->ClearPref(prefs::kDeleteRemappingNudgeShownCount); pref_service->ClearPref(prefs::kInsertRemappingNudgeShownCount); + pref_service->ClearPref(prefs::kCapsLockRemappingNudgeShownCount); pref_service->ClearPref(prefs::kPageUpRemappingNudgeLastShown); pref_service->ClearPref(prefs::kPageDownRemappingNudgeLastShown); pref_service->ClearPref(prefs::kHomeRemappingNudgeLastShown); pref_service->ClearPref(prefs::kEndRemappingNudgeLastShown); pref_service->ClearPref(prefs::kDeleteRemappingNudgeLastShown); pref_service->ClearPref(prefs::kInsertRemappingNudgeLastShown); + pref_service->ClearPref(prefs::kCapsLockRemappingNudgeLastShown); } active_pref_service_ = pref_service; active_account_id_ = Shell::Get()->session_controller()->GetActiveAccountId();
diff --git a/ash/system/input_device_settings/input_device_settings_notification_controller.cc b/ash/system/input_device_settings/input_device_settings_notification_controller.cc index 0741a0b..e7c155b 100644 --- a/ash/system/input_device_settings/input_device_settings_notification_controller.cc +++ b/ash/system/input_device_settings/input_device_settings_notification_controller.cc
@@ -500,6 +500,10 @@ pref_registry->RegisterIntegerPref( prefs::kSixPackKeyInsertNotificationsRemaining, 3, user_prefs::PrefRegistrySyncable::SYNCABLE_OS_PREF); + pref_registry->RegisterIntegerPref(prefs::kCapsLockRemappingNudgeShownCount, + 0); + pref_registry->RegisterTimePref(prefs::kCapsLockRemappingNudgeLastShown, + base::Time()); pref_registry->RegisterListPref(prefs::kMiceWelcomeNotificationSeen); pref_registry->RegisterListPref( prefs::kGraphicsTabletsWelcomeNotificationSeen); @@ -1082,6 +1086,29 @@ } void InputDeviceSettingsNotificationController::ShowCapsLockRewritingNudge() { + if (!IsActiveUserSession()) { + return; + } + + CHECK(ash::Shell::HasInstance() && Shell::Get()->session_controller()); + PrefService* prefs = + Shell::Get()->session_controller()->GetActivePrefService(); + + const int shown_count = + prefs->GetInteger(prefs::kCapsLockRemappingNudgeShownCount); + const base::Time last_shown_time = + prefs->GetTime(prefs::kCapsLockRemappingNudgeLastShown); + // Do not show the nudge more than three times, or if it has already been + // shown in the past 24 hours. + const base::Time now = base::Time::Now(); + if ((shown_count >= kNudgeMaxShownCount) || + ((now - last_shown_time) < kNudgeTimeBetweenShown)) { + return; + } + + prefs->SetInteger(prefs::kCapsLockRemappingNudgeShownCount, shown_count + 1); + prefs->SetTime(prefs::kCapsLockRemappingNudgeLastShown, now); + AnchoredNudgeData nudge_data( kCapsLockNoMatchNudgeId, NudgeCatalogName::kCapsLockShortcutPressed, l10n_util::GetStringUTF16(
diff --git a/ash/system/input_device_settings/input_device_settings_notification_controller_unittest.cc b/ash/system/input_device_settings/input_device_settings_notification_controller_unittest.cc index a0b3e1b..f9003f0 100644 --- a/ash/system/input_device_settings/input_device_settings_notification_controller_unittest.cc +++ b/ash/system/input_device_settings/input_device_settings_notification_controller_unittest.cc
@@ -708,6 +708,28 @@ controller()->ShowCapsLockRewritingNudge(); EXPECT_TRUE(nudge_manager->GetNudgeIfShown(kCapsLockNoMatchNudgeId)); + CancelNudge(kCapsLockNoMatchNudgeId); + + // Call caps lock nudge again before 24 hours, the nudge should not show. + controller()->ShowCapsLockRewritingNudge(); + EXPECT_FALSE(nudge_manager->GetNudgeIfShown(kCapsLockNoMatchNudgeId)); + + // Pretend caps lock was called before 24 hours, should show nudge again. + Shell::Get()->session_controller()->GetActivePrefService()->SetTime( + prefs::kCapsLockRemappingNudgeLastShown, + base::Time::Now() - base::Hours(24)); + controller()->ShowCapsLockRewritingNudge(); + EXPECT_TRUE(nudge_manager->GetNudgeIfShown(kCapsLockNoMatchNudgeId)); + CancelNudge(kCapsLockNoMatchNudgeId); + + // Pretend caps lock nudge was called 3 times, should not show nudge again. + Shell::Get()->session_controller()->GetActivePrefService()->SetTime( + prefs::kCapsLockRemappingNudgeLastShown, + base::Time::Now() - base::Hours(24)); + Shell::Get()->session_controller()->GetActivePrefService()->SetInteger( + prefs::kCapsLockRemappingNudgeShownCount, 3u); + controller()->ShowCapsLockRewritingNudge(); + EXPECT_FALSE(nudge_manager->GetNudgeIfShown(kCapsLockNoMatchNudgeId)); } TEST_F(InputDeviceSettingsNotificationControllerTest,
diff --git a/ash/system/input_device_settings/input_device_settings_pref_names.h b/ash/system/input_device_settings/input_device_settings_pref_names.h index 355d582..831ceea9 100644 --- a/ash/system/input_device_settings/input_device_settings_pref_names.h +++ b/ash/system/input_device_settings/input_device_settings_pref_names.h
@@ -142,6 +142,8 @@ "settings.keyboard.delete_key_remapping_nudge_shown_count"; inline constexpr char kInsertRemappingNudgeShownCount[] = "settings.keyboard.insert_key_remapping_nudge_shown_count"; +inline constexpr char kCapsLockRemappingNudgeShownCount[] = + "settings.keyboard.caps_lock_remapping_nudge_shown_count"; inline constexpr char kPageUpRemappingNudgeLastShown[] = "settings.keyboard.page_up_key_remapping_nudge_last_shown"; inline constexpr char kPageDownRemappingNudgeLastShown[] = @@ -154,6 +156,8 @@ "settings.keyboard.delete_key_remapping_nudge_last_shown"; inline constexpr char kInsertRemappingNudgeLastShown[] = "settings.keyboard.insert_key_remapping_nudge_last_shown"; +inline constexpr char kCapsLockRemappingNudgeLastShown[] = + "settings.keyboard.caps_lock_remapping_nudge_last_shown"; // Mouse settings dictionary keys. inline constexpr char kMouseSettingSwapRight[] = "swap_right";
diff --git a/ash/webui/camera_app_ui/BUILD.gn b/ash/webui/camera_app_ui/BUILD.gn index e3fd54e..a0b1387 100644 --- a/ash/webui/camera_app_ui/BUILD.gn +++ b/ash/webui/camera_app_ui/BUILD.gn
@@ -118,6 +118,14 @@ ] } +mojom("ocr") { + sources = [ "ocr.mojom" ] + + deps = [ "//ui/gfx/geometry/mojom" ] + + webui_module_path = "/ash/webui/camera_app_ui" +} + mojom("mojo_bindings") { sources = [ "camera_app_helper.mojom", @@ -126,12 +134,14 @@ ] deps = [ + ":ocr", "//ash/components/arc/mojom:camera_intent", "//chromeos/services/machine_learning/public/mojom:document_scanner_param_types", "//media/capture/video/chromeos/mojom:system_event_monitor", "//ui/gfx/geometry/mojom", "//url/mojom:url_mojom_gurl", ] + webui_module_path = "/ash/webui/camera_app_ui" }
diff --git a/ash/webui/camera_app_ui/camera_app_helper.mojom b/ash/webui/camera_app_ui/camera_app_helper.mojom index 51132e5..4fa6e9a 100644 --- a/ash/webui/camera_app_ui/camera_app_helper.mojom +++ b/ash/webui/camera_app_ui/camera_app_helper.mojom
@@ -6,6 +6,7 @@ import "ash/components/arc/mojom/camera_intent.mojom"; import "ash/webui/camera_app_ui/events_sender.mojom"; +import "ash/webui/camera_app_ui/ocr.mojom"; import "ash/webui/camera_app_ui/types.mojom"; import "chromeos/services/machine_learning/public/mojom/document_scanner_param_types.mojom"; import "media/capture/video/chromeos/mojom/system_event_monitor.mojom"; @@ -314,4 +315,7 @@ // Returns the first page of a PDF as a JPEG. RenderPdfAsJpeg(array<uint8> pdf_data) => (array<uint8> jpeg_data); + + // Performs OCR on the image and returns the OCR result. + PerformOcr(array<uint8> jpeg_data) => (OcrResult ocr_result); };
diff --git a/ash/webui/camera_app_ui/camera_app_helper_impl.cc b/ash/webui/camera_app_ui/camera_app_helper_impl.cc index ed88a8a..10a6112 100644 --- a/ash/webui/camera_app_ui/camera_app_helper_impl.cc +++ b/ash/webui/camera_app_ui/camera_app_helper_impl.cc
@@ -640,4 +640,9 @@ camera_app_ui_->delegate()->RenderPdfAsJpeg(pdf_data, std::move(callback)); } +void CameraAppHelperImpl::PerformOcr(const std::vector<uint8_t>& jpeg_data, + PerformOcrCallback callback) { + camera_app_ui_->delegate()->PerformOcr(jpeg_data, std::move(callback)); +} + } // namespace ash
diff --git a/ash/webui/camera_app_ui/camera_app_helper_impl.h b/ash/webui/camera_app_ui/camera_app_helper_impl.h index b09be8a..628021c 100644 --- a/ash/webui/camera_app_ui/camera_app_helper_impl.h +++ b/ash/webui/camera_app_ui/camera_app_helper_impl.h
@@ -118,6 +118,8 @@ SetScreenLockedMonitorCallback callback) override; void RenderPdfAsJpeg(const std::vector<uint8_t>& pdf_data, RenderPdfAsJpegCallback callback) override; + void PerformOcr(const std::vector<uint8_t>& jpeg_data, + PerformOcrCallback callback) override; private: void CheckExternalScreenState();
diff --git a/ash/webui/camera_app_ui/camera_app_ui_delegate.h b/ash/webui/camera_app_ui/camera_app_ui_delegate.h index af6d209..94d87d4 100644 --- a/ash/webui/camera_app_ui/camera_app_ui_delegate.h +++ b/ash/webui/camera_app_ui/camera_app_ui_delegate.h
@@ -8,6 +8,7 @@ #include <optional> #include <string> +#include "ash/webui/camera_app_ui/ocr.mojom-forward.h" #include "base/files/file_path.h" #include "base/functional/callback.h" @@ -144,6 +145,11 @@ virtual void Searchify( const std::vector<uint8_t>& pdf, base::OnceCallback<void(const std::vector<uint8_t>&)> callback) = 0; + + // Performs OCR on the image and returns the OCR result. + virtual void PerformOcr( + const std::vector<uint8_t>& jpeg_data, + base::OnceCallback<void(camera_app::mojom::OcrResultPtr)> callback) = 0; }; } // namespace ash
diff --git a/ash/webui/camera_app_ui/ocr.mojom b/ash/webui/camera_app_ui/ocr.mojom new file mode 100644 index 0000000..961f8c58 --- /dev/null +++ b/ash/webui/camera_app_ui/ocr.mojom
@@ -0,0 +1,51 @@ +// 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 ash.camera_app.mojom; + +import "ui/gfx/geometry/mojom/geometry.mojom"; + +// Writing direction of a word. +enum WordDirection { + kLeftToRight, + kRightToLeft, +}; + +// OCR result for a given image. +struct OcrResult { + array<Line> lines; +}; + + +// Text line with associated bounding box. +struct Line { + // Words in the text line. + array<Word> words; + + // Text line in UTF-8 format. + string text; + + // Line bounding box relative to the original image. + gfx.mojom.Rect bounding_box; + + // Rotation angle (in degrees, clockwise) of the line bounding box about its + // top-left corner. + float bounding_box_angle; +}; + +// Word with associated bounding box. +struct Word { + // A single word in UTF-8 format. + string text; + + // Word bounding box relative to the original image. + gfx.mojom.Rect bounding_box; + + // Rotation angle (in degrees, clockwise) of the word bounding box about its + // top-left corner. + float bounding_box_angle; + + // The direction of the script contained in the word. + WordDirection direction; +};
diff --git a/ash/webui/camera_app_ui/resources/BUILD.gn b/ash/webui/camera_app_ui/resources/BUILD.gn index bd298f8..7d481f1 100644 --- a/ash/webui/camera_app_ui/resources/BUILD.gn +++ b/ash/webui/camera_app_ui/resources/BUILD.gn
@@ -45,6 +45,7 @@ "ash/components/arc/mojom/camera_intent.mojom-webui.ts", "ash/webui/camera_app_ui/camera_app_helper.mojom-webui.ts", "ash/webui/camera_app_ui/events_sender.mojom-webui.ts", + "ash/webui/camera_app_ui/ocr.mojom-webui.ts", "ash/webui/camera_app_ui/types.mojom-webui.ts", "chromeos/services/machine_learning/public/mojom/document_scanner_param_types.mojom-webui.ts", "media/capture/mojom/image_capture.mojom-webui.ts", @@ -60,6 +61,7 @@ mojo_files_deps = [ "//ash/components/arc/mojom:camera_intent_ts__generator", "//ash/webui/camera_app_ui:mojo_bindings_ts__generator", + "//ash/webui/camera_app_ui:ocr_ts__generator", "//chromeos/services/machine_learning/public/mojom:document_scanner_param_types_ts__generator", "//media/capture/mojom:image_capture_ts__generator", "//media/capture/video/chromeos/mojom:cros_camera_common_ts__generator",
diff --git a/ash/webui/camera_app_ui/resources/js/local_dev_overrides.ts b/ash/webui/camera_app_ui/resources/js/local_dev_overrides.ts index 175a65d..7cd5f36 100644 --- a/ash/webui/camera_app_ui/resources/js/local_dev_overrides.ts +++ b/ash/webui/camera_app_ui/resources/js/local_dev_overrides.ts
@@ -17,6 +17,7 @@ import { EventsSenderRemote, LidState, + OcrResult, ScreenState, StorageMonitorStatus, ToteMetricFormat, @@ -182,6 +183,10 @@ return new Blob(); } + override async performOcr(_jpeg: Blob): Promise<OcrResult> { + return {lines: []}; + } + /* eslint-enable @typescript-eslint/require-await */ }
diff --git a/ash/webui/camera_app_ui/resources/js/mojo/chrome_helper.ts b/ash/webui/camera_app_ui/resources/js/mojo/chrome_helper.ts index c0832e47..c334367 100644 --- a/ash/webui/camera_app_ui/resources/js/mojo/chrome_helper.ts +++ b/ash/webui/camera_app_ui/resources/js/mojo/chrome_helper.ts
@@ -23,6 +23,7 @@ FileMonitorResult, LidState, LidStateMonitorCallbackRouter, + OcrResult, Rotation, ScreenLockedMonitorCallbackRouter, ScreenState, @@ -242,6 +243,8 @@ abstract renderPdfAsImage(pdf: Blob): Promise<Blob>; + abstract performOcr(jpeg: Blob): Promise<OcrResult>; + /** * Creates a new instance of ChromeHelper if it is not set. Returns the * existing instance. @@ -516,4 +519,11 @@ const {jpegData} = await this.remote.renderPdfAsJpeg(numArray); return new Blob([new Uint8Array(jpegData)], {type: MimeType.JPEG}); } + + override async performOcr(jpeg: Blob): Promise<OcrResult> { + const buffer = new Uint8Array(await jpeg.arrayBuffer()); + const numArray = castToNumberArray(buffer); + const {ocrResult} = await this.remote.performOcr(numArray); + return ocrResult; + } }
diff --git a/ash/webui/camera_app_ui/resources/js/mojo/type.ts b/ash/webui/camera_app_ui/resources/js/mojo/type.ts index a2da91e..ef90df7 100644 --- a/ash/webui/camera_app_ui/resources/js/mojo/type.ts +++ b/ash/webui/camera_app_ui/resources/js/mojo/type.ts
@@ -57,6 +57,9 @@ CaptureEventParams, EventsSenderRemote, } from '../../mojom/ash/webui/camera_app_ui/events_sender.mojom-webui.js'; +export type { + OcrResult, +} from '../../mojom/ash/webui/camera_app_ui/ocr.mojom-webui.js'; export { WifiEapMethod, WifiEapPhase2Method,
diff --git a/ash/webui/camera_app_ui/resources/utils/cca/commands/dev.py b/ash/webui/camera_app_ui/resources/utils/cca/commands/dev.py index 5d4b867..57f3767 100644 --- a/ash/webui/camera_app_ui/resources/utils/cca/commands/dev.py +++ b/ash/webui/camera_app_ui/resources/utils/cca/commands/dev.py
@@ -183,6 +183,7 @@ mojo_files = [ "camera_app_helper.mojom", "events_sender.mojom", + "ocr.mojom", "types.mojom", ] # TODO(pihsun): This doesn't handle possible enum name collision
diff --git a/ash/webui/conch b/ash/webui/conch index afd1f4f..51912b7 160000 --- a/ash/webui/conch +++ b/ash/webui/conch
@@ -1 +1 @@ -Subproject commit afd1f4f33165cb3ee4cf55afbfbd5ecaa38b613f +Subproject commit 51912b7cb18c609a443f5726c58701c570f46ce7
diff --git a/ash/wm/desks/templates/saved_desk_unittest.cc b/ash/wm/desks/templates/saved_desk_unittest.cc index aafec711..189db4e 100644 --- a/ash/wm/desks/templates/saved_desk_unittest.cc +++ b/ash/wm/desks/templates/saved_desk_unittest.cc
@@ -383,8 +383,9 @@ ASSERT_TRUE(overview_grid->IsShowingSavedDeskLibrary()); } - void SetDisableAppIdCheckForSavedDesks(bool disabled) { - OverviewController::Get()->disable_app_id_check_for_saved_desks_ = disabled; + void SetDisableAppIdCheckForSavedDesks(bool should_disable) { + OverviewController::Get() + ->set_disable_app_id_check_for_saved_desks_for_test(should_disable); } SkBitmap GetBitmapWithInnerRoundedRect(gfx::Size size,
diff --git a/ash/wm/overview/overview_controller.h b/ash/wm/overview/overview_controller.h index 0f905062..550f803 100644 --- a/ash/wm/overview/overview_controller.h +++ b/ash/wm/overview/overview_controller.h
@@ -74,6 +74,18 @@ // created and owned by Shell. static OverviewController* Get(); + OverviewSession* overview_session() { return overview_session_.get(); } + + bool disable_app_id_check_for_saved_desks() const { + return disable_app_id_check_for_saved_desks_; + } + + bool is_continuous_scroll_in_progress() const { + return is_continuous_scroll_in_progress_; + } + + bool windows_have_snapshot() const { return windows_have_snapshot_; } + // Starts/Ends overview with `type`. Returns true if enter or exit overview // successful. Depending on `type` the enter/exit animation will look // different. `start_action`/`end_action` is used by UMA to record the reasons @@ -136,14 +148,10 @@ aura::Window* gained_active, aura::Window* lost_active) override {} - OverviewSession* overview_session() { return overview_session_.get(); } - - bool disable_app_id_check_for_saved_desks() const { - return disable_app_id_check_for_saved_desks_; - } - - bool is_continuous_scroll_in_progress() const { - return is_continuous_scroll_in_progress_; + void set_disable_app_id_check_for_saved_desks_for_test( + bool disable_app_id_check_for_saved_desks) { + disable_app_id_check_for_saved_desks_ = + disable_app_id_check_for_saved_desks; } void set_occlusion_pause_duration_for_start_for_test( @@ -157,14 +165,11 @@ delayed_animation_task_delay_ = delta; } - bool windows_have_snapshot() const { return windows_have_snapshot_; } - void set_windows_have_snapshot_for_test(bool windows_have_snapshot) { windows_have_snapshot_ = windows_have_snapshot; } private: - friend class SavedDeskTest; // Toggle overview mode. Depending on |type| the enter/exit animation will // look different.
diff --git a/ash/wm/overview/overview_drop_target.cc b/ash/wm/overview/overview_drop_target.cc index fe96622..27989f5 100644 --- a/ash/wm/overview/overview_drop_target.cc +++ b/ash/wm/overview/overview_drop_target.cc
@@ -79,6 +79,10 @@ item_widget_->GetWindowBoundsInScreen().Contains(location_in_screen)); } +void OverviewDropTarget::HideForSavedDeskLibrary(bool animate) {} + +void OverviewDropTarget::RevertHideForSavedDeskLibrary(bool animate) {} + aura::Window* OverviewDropTarget::GetWindow() { return nullptr; } @@ -161,10 +165,6 @@ void OverviewDropTarget::OnStartingAnimationComplete() {} -void OverviewDropTarget::HideForSavedDeskLibrary(bool animate) {} - -void OverviewDropTarget::RevertHideForSavedDeskLibrary(bool animate) {} - void OverviewDropTarget::CloseWindows() {} void OverviewDropTarget::Restack() {}
diff --git a/ash/wm/overview/overview_drop_target.h b/ash/wm/overview/overview_drop_target.h index 46f51e4..745b699 100644 --- a/ash/wm/overview/overview_drop_target.h +++ b/ash/wm/overview/overview_drop_target.h
@@ -30,6 +30,8 @@ void UpdateBackgroundVisibility(const gfx::Point& location_in_screen); // OverviewItemBase: + void HideForSavedDeskLibrary(bool animate) override; + void RevertHideForSavedDeskLibrary(bool animate) override; aura::Window* GetWindow() override; std::vector<raw_ptr<aura::Window, VectorExperimental>> GetWindows() override; bool HasVisibleOnAllDesksWindow() override; @@ -55,8 +57,6 @@ void PrepareForOverview() override; void SetShouldUseSpawnAnimation(bool value) override; void OnStartingAnimationComplete() override; - void HideForSavedDeskLibrary(bool animate) override; - void RevertHideForSavedDeskLibrary(bool animate) override; void CloseWindows() override; void Restack() override; void StartDrag() override;
diff --git a/ash/wm/overview/overview_group_item.cc b/ash/wm/overview/overview_group_item.cc index 4d128920..529d2329 100644 --- a/ash/wm/overview/overview_group_item.cc +++ b/ash/wm/overview/overview_group_item.cc
@@ -73,6 +73,22 @@ OverviewGroupItem::~OverviewGroupItem() = default; +void OverviewGroupItem::HideForSavedDeskLibrary(bool animate) { + for (const auto& item : overview_items_) { + item->HideForSavedDeskLibrary(animate); + } + + OverviewItemBase::HideForSavedDeskLibrary(animate); +} + +void OverviewGroupItem::RevertHideForSavedDeskLibrary(bool animate) { + for (const auto& item : overview_items_) { + item->RevertHideForSavedDeskLibrary(animate); + } + + OverviewItemBase::RevertHideForSavedDeskLibrary(animate); +} + aura::Window* OverviewGroupItem::GetWindow() { // TODO(michelefan): `GetWindow()` will be replaced by `GetWindows()` in a // follow-up cl. @@ -331,10 +347,6 @@ } } -void OverviewGroupItem::HideForSavedDeskLibrary(bool animate) {} - -void OverviewGroupItem::RevertHideForSavedDeskLibrary(bool animate) {} - void OverviewGroupItem::CloseWindows() { for (const auto& overview_item : overview_items_) { overview_item->CloseWindows();
diff --git a/ash/wm/overview/overview_group_item.h b/ash/wm/overview/overview_group_item.h index 7794c77e..afea8099 100644 --- a/ash/wm/overview/overview_group_item.h +++ b/ash/wm/overview/overview_group_item.h
@@ -39,6 +39,8 @@ ~OverviewGroupItem() override; // OverviewItemBase: + void HideForSavedDeskLibrary(bool animate) override; + void RevertHideForSavedDeskLibrary(bool animate) override; aura::Window* GetWindow() override; std::vector<raw_ptr<aura::Window, VectorExperimental>> GetWindows() override; bool HasVisibleOnAllDesksWindow() override; @@ -64,8 +66,6 @@ void PrepareForOverview() override; void SetShouldUseSpawnAnimation(bool value) override; void OnStartingAnimationComplete() override; - void HideForSavedDeskLibrary(bool animate) override; - void RevertHideForSavedDeskLibrary(bool animate) override; void CloseWindows() override; void Restack() override; void StartDrag() override;
diff --git a/ash/wm/overview/overview_item.cc b/ash/wm/overview/overview_item.cc index 63c9070..9db73a4b 100644 --- a/ash/wm/overview/overview_item.cc +++ b/ash/wm/overview/overview_item.cc
@@ -263,6 +263,38 @@ : OVERVIEW_ANIMATION_RESTORE_WINDOW_ZERO; } +void OverviewItem::HideForSavedDeskLibrary(bool animate) { + OverviewItemBase::HideForSavedDeskLibrary(animate); + + auto* window = GetWindow(); + + // To hide the window, we will set its layer opacity to 0. This would + // normally also hide the window from the mini view, which we don't want. By + // setting a property on the window, we can force it to stay visible. + window->SetProperty(kForceVisibleInMiniViewKey, true); + + for (aura::Window* transient_child : GetTransientTreeIterator(window)) { + // This is needed for the split view divider, which can be a transient child + // of the window. The visibility of the divider is explicitly controlled by + // the owning snap group, and we should not fade it out here. See the bug in + // http://b/335301800 for more details. + if (!transient_child->TargetVisibility()) { + continue; + } + + transient_child->SetProperty(kForceVisibleInMiniViewKey, true); + PerformFadeOutLayer(transient_child->layer(), animate, base::DoNothing()); + } +} + +void OverviewItem::RevertHideForSavedDeskLibrary(bool animate) { + OverviewItemBase::RevertHideForSavedDeskLibrary(animate); + + for (aura::Window* transient_child : GetTransientTreeIterator(GetWindow())) { + PerformFadeInLayer(transient_child->layer(), animate); + } +} + aura::Window* OverviewItem::GetWindow() { return transform_window_.window(); } @@ -656,62 +688,6 @@ UpdateCannotSnapWarningVisibility(/*animate=*/true); } -void OverviewItem::HideForSavedDeskLibrary(bool animate) { - // To hide the window, we will set its layer opacity to 0. This would normally - // also hide the window from the mini view, which we don't want. By setting a - // property on the window, we can force it to stay visible. - GetWindow()->SetProperty(kForceVisibleInMiniViewKey, true); - - // Temporarily hide this window in overview, so that dark/light theme change - // does not reset the layer visible. If `animate` is false, the callback will - // not run in `PerformFadeOutLayer`. Thus, here we make sure the window is - // also hidden in that case. - DCHECK(item_widget_); - hide_window_in_overview_callback_.Reset(base::BindOnce( - &OverviewItem::HideWindowInOverview, weak_ptr_factory_.GetWeakPtr())); - PerformFadeOutLayer(item_widget_->GetLayer(), animate, - hide_window_in_overview_callback_.callback()); - if (!animate) { - // Cancel the callback if we are going to run it directly. - hide_window_in_overview_callback_.Cancel(); - HideWindowInOverview(); - } - - for (aura::Window* transient_child : GetTransientTreeIterator(GetWindow())) { - transient_child->SetProperty(kForceVisibleInMiniViewKey, true); - PerformFadeOutLayer(transient_child->layer(), animate, base::DoNothing()); - } - - item_widget_event_blocker_ = - std::make_unique<aura::ScopedWindowEventTargetingBlocker>( - item_widget_->GetNativeWindow()); - - HideCannotSnapWarning(animate); -} - -void OverviewItem::RevertHideForSavedDeskLibrary(bool animate) { - // This might run before `HideForSavedDeskLibrary()`, thus cancel the - // callback to prevent such case. - hide_window_in_overview_callback_.Cancel(); - - // Restore and show the window back to overview. - ShowWindowInOverview(); - - // `item_widget_` may be null during shutdown if the window is minimized. - if (item_widget_) { - PerformFadeInLayer(item_widget_->GetLayer(), animate); - } - - for (aura::Window* transient_child : - GetTransientTreeIterator(transform_window_.window())) { - PerformFadeInLayer(transient_child->layer(), animate); - } - - item_widget_event_blocker_.reset(); - - UpdateCannotSnapWarningVisibility(animate); -} - void OverviewItem::CloseWindows() { RefreshShadowVisuals(/*shadow_visible=*/false); @@ -1449,27 +1425,4 @@ return windows; } -void OverviewItem::HideWindowInOverview() { - ScopedOverviewHideWindows* hide_windows = - overview_session_->hide_windows_for_saved_desks_grid(); - DCHECK(hide_windows); - - // Hide the overview item window. - if (item_widget_ && !hide_windows->HasWindow(item_widget_->GetNativeWindow())) - hide_windows->AddWindow(item_widget_->GetNativeWindow()); -} - -void OverviewItem::ShowWindowInOverview() { - ScopedOverviewHideWindows* hide_windows = - overview_session_->hide_windows_for_saved_desks_grid(); - DCHECK(hide_windows); - - // Show the overview item window. - if (item_widget_ && - hide_windows->HasWindow(item_widget_->GetNativeWindow())) { - hide_windows->RemoveWindow(item_widget_->GetNativeWindow(), - /*show_window=*/true); - } -} - } // namespace ash
diff --git a/ash/wm/overview/overview_item.h b/ash/wm/overview/overview_item.h index 93c079f..86c61b24 100644 --- a/ash/wm/overview/overview_item.h +++ b/ash/wm/overview/overview_item.h
@@ -93,6 +93,8 @@ OverviewAnimationType GetExitTransformAnimationType() const; // OverviewItemBase: + void HideForSavedDeskLibrary(bool animate) override; + void RevertHideForSavedDeskLibrary(bool animate) override; aura::Window* GetWindow() override; std::vector<raw_ptr<aura::Window, VectorExperimental>> GetWindows() override; bool HasVisibleOnAllDesksWindow() override; @@ -118,8 +120,6 @@ void PrepareForOverview() override; void SetShouldUseSpawnAnimation(bool value) override; void OnStartingAnimationComplete() override; - void HideForSavedDeskLibrary(bool animate) override; - void RevertHideForSavedDeskLibrary(bool animate) override; void CloseWindows() override; void Restack() override; void StartDrag() override; @@ -209,9 +209,6 @@ void CloseButtonPressed(); - void HideWindowInOverview(); - void ShowWindowInOverview(); - // Returns the list of windows that we want to slide up or down when swiping // on the shelf in tablet mode. aura::Window::Windows GetWindowsForHomeGesture(); @@ -226,11 +223,6 @@ // single item or `OverviewGroupItem` for group item. const raw_ptr<WindowDestructionDelegate> window_destruction_delegate_; - // Used to block events from reaching the item widget when the overview item - // has been hidden. - std::unique_ptr<aura::ScopedWindowEventTargetingBlocker> - item_widget_event_blocker_; - // True if running SetItemBounds. This prevents recursive calls resulting from // the bounds update when calling ::wm::RecreateWindowLayers to copy // a window layer for display on another monitor. @@ -267,10 +259,6 @@ std::optional<aura::WindowOcclusionTracker::ScopedForceVisible> scoped_force_visible_; - // Cancellable callback to ensure that we are not going to hide the window - // after reverting the hide. - base::CancelableOnceClosure hide_window_in_overview_callback_; - base::WeakPtrFactory<OverviewItem> weak_ptr_factory_{this}; };
diff --git a/ash/wm/overview/overview_item_base.cc b/ash/wm/overview/overview_item_base.cc index 5d655cf..02116cbd 100644 --- a/ash/wm/overview/overview_item_base.cc +++ b/ash/wm/overview/overview_item_base.cc
@@ -10,6 +10,7 @@ #include "ash/shell.h" #include "ash/style/rounded_label_widget.h" #include "ash/wm/desks/desks_util.h" +#include "ash/wm/desks/templates/saved_desk_animations.h" #include "ash/wm/overview/overview_constants.h" #include "ash/wm/overview/overview_controller.h" #include "ash/wm/overview/overview_grid.h" @@ -237,6 +238,51 @@ } } +void OverviewItemBase::HideForSavedDeskLibrary(bool animate) { + // Temporarily hide this window in overview, so that dark/light theme change + // does not reset the layer visible. If `animate` is false, the callback will + // not run in `PerformFadeOutLayer`. Thus, here we make sure the window is + // also hidden in that case. + DCHECK(item_widget_); + hide_window_in_overview_callback_.Reset(base::BindOnce( + &OverviewItemBase::HideItemWidgetWindow, weak_ptr_factory_.GetWeakPtr())); + PerformFadeOutLayer(item_widget_->GetLayer(), animate, + hide_window_in_overview_callback_.callback()); + if (!animate) { + // Cancel the callback if we are going to run it directly. + hide_window_in_overview_callback_.Cancel(); + HideItemWidgetWindow(); + } + + item_widget_event_blocker_ = + std::make_unique<aura::ScopedWindowEventTargetingBlocker>( + item_widget_->GetNativeWindow()); + + // TODO(http://b/339108996): Determine how to inform users when a group item + // cannot be snapped. + HideCannotSnapWarning(animate); +} + +void OverviewItemBase::RevertHideForSavedDeskLibrary(bool animate) { + // This might run before `HideForSavedDeskLibrary()`, thus cancel the + // callback to prevent such case. + hide_window_in_overview_callback_.Cancel(); + + // Restore and show the window back to overview. + ShowItemWidgetWindow(); + + // `item_widget_` may be null during shutdown if the window is minimized. + if (item_widget_) { + PerformFadeInLayer(item_widget_->GetLayer(), animate); + } + + item_widget_event_blocker_.reset(); + + // TODO(http://b/339108996): Determine how to inform users when a group item + // cannot be snapped. + UpdateCannotSnapWarningVisibility(animate); +} + views::Widget::InitParams OverviewItemBase::CreateOverviewItemWidgetParams( aura::Window* parent_window, const std::string& widget_name, @@ -269,6 +315,31 @@ } } +void OverviewItemBase::HideItemWidgetWindow() { + ScopedOverviewHideWindows* hide_windows = + overview_session_->hide_windows_for_saved_desks_grid(); + DCHECK(hide_windows); + + // Hide the overview item window. + if (item_widget_ && + !hide_windows->HasWindow(item_widget_->GetNativeWindow())) { + hide_windows->AddWindow(item_widget_->GetNativeWindow()); + } +} + +void OverviewItemBase::ShowItemWidgetWindow() { + ScopedOverviewHideWindows* hide_windows = + overview_session_->hide_windows_for_saved_desks_grid(); + DCHECK(hide_windows); + + // Show the overview item window. + if (item_widget_ && + hide_windows->HasWindow(item_widget_->GetNativeWindow())) { + hide_windows->RemoveWindow(item_widget_->GetNativeWindow(), + /*show_window=*/true); + } +} + void OverviewItemBase::HandlePressEvent(const gfx::PointF& location_in_screen, bool from_touch_gesture, OverviewItemBase* event_source_item) {
diff --git a/ash/wm/overview/overview_item_base.h b/ash/wm/overview/overview_item_base.h index 311f0db79..c4d8ff8f 100644 --- a/ash/wm/overview/overview_item_base.h +++ b/ash/wm/overview/overview_item_base.h
@@ -13,6 +13,7 @@ #include "ash/style/system_shadow.h" #include "ash/wm/overview/event_handler_delegate.h" #include "ash/wm/overview/overview_types.h" +#include "base/cancelable_callback.h" #include "base/memory/raw_ptr.h" #include "ui/aura/window.h" #include "ui/events/event.h" @@ -61,23 +62,6 @@ OverviewSession* overview_session, OverviewGrid* overview_grid); - // Returns true if `this` is currently being dragged. - bool IsDragItem() const; - - // Refreshes visuals of the `shadow_` by setting the visibility and updating - // the bounds. - void RefreshShadowVisuals(bool shadow_visible); - - // Updates the type for the `shadow_` while being dragged and dropped. - void UpdateShadowTypeForDrag(bool is_dragging); - - // If in tablet mode, maybe forward events to `OverviewGridEventHandler` as we - // might want to process scroll events on `this`. `event_source_item` - // specifies the sender of the event. - void HandleGestureEventForTabletModeLayout( - ui::GestureEvent* event, - OverviewItemBase* event_source_item); - void set_should_animate_when_entering(bool should_animate) { should_animate_when_entering_ = should_animate; } @@ -128,6 +112,35 @@ return should_use_spawn_animation_; } + // Returns true if `this` is currently being dragged. + bool IsDragItem() const; + + // Refreshes visuals of the `shadow_` by setting the visibility and updating + // the bounds. + void RefreshShadowVisuals(bool shadow_visible); + + // Updates the type for the `shadow_` while being dragged and dropped. + void UpdateShadowTypeForDrag(bool is_dragging); + + // If in tablet mode, maybe forward events to `OverviewGridEventHandler` as we + // might want to process scroll events on `this`. `event_source_item` + // specifies the sender of the event. + void HandleGestureEventForTabletModeLayout( + ui::GestureEvent* event, + OverviewItemBase* event_source_item); + + // Hides the overview item. This is used to hide any overview items that may + // be present when entering the saved desk library. Animates `item_widget_` + // and the windows in the transient tree to 0 opacity if `animate` is true, + // otherwise just sets them to 0 opacity. + virtual void HideForSavedDeskLibrary(bool animate); + + // Re-shows overview items that were hidden by the saved desk library. Called + // when exiting the saved desk library and going back to the overview grid. + // Fades the overview items in if `animate` is true, otherwise shows them + // immediately. + virtual void RevertHideForSavedDeskLibrary(bool animate); + // Returns the window associated with this, which can be a single window or // a list of windows. // TODO(michelefan): This is temporarily added to reduce the scope of the @@ -219,18 +232,6 @@ // if there was no starting animation to do any necessary visual changes. virtual void OnStartingAnimationComplete() = 0; - // Hides the overview item. This is used to hide any overview items that may - // be present when entering the saved desk library. Animates `item_widget_` - // and the windows in the transient tree to 0 opacity if `animate` is true, - // otherwise just sets them to 0 opacity. - virtual void HideForSavedDeskLibrary(bool animate) = 0; - - // Re-shows overview items that were hidden by the saved desk library. Called - // when exiting the saved desk library and going back to the overview grid. - // Fades the overview items in if `animate` is true, otherwise shows them - // immediately. - virtual void RevertHideForSavedDeskLibrary(bool animate) = 0; - // Closes window(s) hosted by `this`. virtual void CloseWindows() = 0; @@ -409,6 +410,9 @@ private: friend class OverviewTestBase; + void HideItemWidgetWindow(); + void ShowItemWidgetWindow(); + // TODO(sammiequon): Current events go from `OverviewItemView` to // `EventHandlerDelegate` to `OverviewSession` to // `OverviewWindowDragController`. We may be able to shorten this pipeline. @@ -423,6 +427,17 @@ void HandleTapEvent(const gfx::PointF& location_in_screen, OverviewItemBase* event_source_item); void HandleGestureEndEvent(); + + // Cancellable callback to ensure that we are not going to hide the window + // after reverting the hide. + base::CancelableOnceClosure hide_window_in_overview_callback_; + + // Used to block events from reaching the item widget when the overview item + // has been hidden. + std::unique_ptr<aura::ScopedWindowEventTargetingBlocker> + item_widget_event_blocker_; + + base::WeakPtrFactory<OverviewItemBase> weak_ptr_factory_{this}; }; } // namespace ash
diff --git a/ash/wm/snap_group/snap_group_unittest.cc b/ash/wm/snap_group/snap_group_unittest.cc index 05cb54f..252843c 100644 --- a/ash/wm/snap_group/snap_group_unittest.cc +++ b/ash/wm/snap_group/snap_group_unittest.cc
@@ -4991,6 +4991,81 @@ EXPECT_TRUE(w1->TargetVisibility()); } +// Tests that accessing the saved desks library after creating a Snap Group does +// not result in a crash, and the Snap Group is successfully restored upon +// exiting overview mode. See regression at http://b/335301800. +TEST_F(SnapGroupDesksTest, SaveDeskForSnapGroupWithAnotherSavedDesk) { + OverviewController* overview_controller = OverviewController::Get(); + + // Explicitly disable `disable_app_id_check_for_saved_desks_` otherwise "Save + // desk for later" button will be disabled. + overview_controller->set_disable_app_id_check_for_saved_desks_for_test(true); + + // Create `w0` and save `w0` in a saved desk by activing "Save desk for later" + // button in Overview. + std::unique_ptr<aura::Window> w0( + CreateAppWindow(gfx::Rect(10, 10, 500, 300))); + + overview_controller->StartOverview(OverviewStartAction::kOverviewButton); + OverviewSession* overview_session = overview_controller->overview_session(); + ASSERT_TRUE(overview_session); + + auto* root_window = Shell::GetPrimaryRootWindow(); + OverviewGrid* overview_grid = GetOverviewGridForRoot(root_window); + ASSERT_TRUE(overview_grid); + ASSERT_EQ(1u, overview_grid->window_list().size()); + + auto* save_for_later_button = overview_grid->GetSaveDeskForLaterButton(); + ASSERT_TRUE(save_for_later_button); + base::RunLoop().RunUntilIdle(); + LeftClickOn(save_for_later_button); + + auto* desks_bar_view = overview_grid->desks_bar_view(); + ASSERT_TRUE(desks_bar_view); + + auto* library_button = desks_bar_view->library_button(); + ASSERT_TRUE(library_button); + + overview_controller->EndOverview(OverviewEndAction::kOverviewButton); + + // Create a Snap Group and enter Overview again, click on the library button + // on the virtual desks bar and verify that there is no crash. + std::unique_ptr<aura::Window> w1(CreateAppWindow()); + std::unique_ptr<aura::Window> w2(CreateAppWindow()); + SnapTwoTestWindows(w1.get(), w2.get()); + + overview_controller->StartOverview(OverviewStartAction::kOverviewButton); + ASSERT_TRUE(overview_session); + + overview_grid = GetOverviewGridForRoot(root_window); + desks_bar_view = overview_grid->desks_bar_view(); + ASSERT_TRUE(desks_bar_view); + + library_button = desks_bar_view->library_button(); + ASSERT_TRUE(library_button); + + auto* overview_group_item = GetOverviewItemForWindow(w1.get()); + ASSERT_TRUE(overview_group_item); + ASSERT_FALSE(snap_group_divider()->divider_widget()->IsVisible()); + + const auto cached_group_item_bounds = overview_group_item->target_bounds(); + + LeftClickOn(library_button); + + // Click the point outside of `cached_group_item_bounds` will exit Overview + // and bring back the Snap Group. + auto* event_generator = GetEventGenerator(); + const gfx::Point click_point = gfx::ToRoundedPoint( + cached_group_item_bounds.bottom_right() + gfx::Vector2d(20, 0)); + event_generator->MoveMouseTo(click_point); + + event_generator->ClickLeftButton(); + EXPECT_FALSE(IsInOverviewSession()); + UnionBoundsEqualToWorkAreaBounds(w1.get(), w2.get(), snap_group_divider()); + + overview_controller->set_disable_app_id_check_for_saved_desks_for_test(false); +} + // ----------------------------------------------------------------------------- // SnapGroupWindowCycleTest:
diff --git a/base/trace_event/memory_infra_background_allowlist.cc b/base/trace_event/memory_infra_background_allowlist.cc index 84088f2..524bc70 100644 --- a/base/trace_event/memory_infra_background_allowlist.cc +++ b/base/trace_event/memory_infra_background_allowlist.cc
@@ -268,6 +268,8 @@ "v8/main/heap/read_only_space", "v8/main/heap/shared_large_object_space", "v8/main/heap/shared_space", + "v8/main/heap/shared_trusted_large_object_space", + "v8/main/heap/shared_trusted_space", "v8/main/heap/trusted_space", "v8/main/heap/trusted_large_object_space", "v8/main/malloc", @@ -286,6 +288,8 @@ "v8/utility/heap/read_only_space", "v8/utility/heap/shared_large_object_space", "v8/utility/heap/shared_space", + "v8/utility/heap/shared_trusted_large_object_space", + "v8/utility/heap/shared_trusted_space", "v8/utility/heap/trusted_space", "v8/utility/heap/trusted_large_object_space", "v8/utility/malloc", @@ -304,6 +308,8 @@ "v8/workers/heap/read_only_space/isolate_0x?", "v8/workers/heap/shared_large_object_space/isolate_0x?", "v8/workers/heap/shared_space/isolate_0x?", + "v8/workers/heap/shared_trusted_large_object_space/isolate_0x?", + "v8/workers/heap/shared_trusted_space/isolate_0x?", "v8/workers/heap/trusted_space/isolate_0x?", "v8/workers/heap/trusted_large_object_space/isolate_0x?", "v8/workers/malloc/isolate_0x?",
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/password_manager/settings/CredentialManagerIntegrationTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/password_manager/settings/CredentialManagerIntegrationTest.java index 9208e29..83f9831 100644 --- a/chrome/android/javatests/src/org/chromium/chrome/browser/password_manager/settings/CredentialManagerIntegrationTest.java +++ b/chrome/android/javatests/src/org/chromium/chrome/browser/password_manager/settings/CredentialManagerIntegrationTest.java
@@ -6,18 +6,25 @@ import static androidx.test.espresso.Espresso.onView; import static androidx.test.espresso.action.ViewActions.click; +import static androidx.test.espresso.matcher.ViewMatchers.hasDescendant; +import static androidx.test.espresso.matcher.ViewMatchers.withId; import static androidx.test.espresso.matcher.ViewMatchers.withText; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; +import static org.chromium.ui.test.util.ViewUtils.onViewWaiting; + import android.app.PendingIntent; import android.content.Context; import android.content.Intent; +import android.view.View; import androidx.test.core.app.ApplicationProvider; -import androidx.test.filters.MediumTest; +import androidx.test.espresso.contrib.RecyclerViewActions; +import androidx.test.filters.LargeTest; +import org.hamcrest.Matcher; import org.junit.Before; import org.junit.Rule; import org.junit.Test; @@ -78,13 +85,14 @@ } @Test - @MediumTest + @LargeTest @Restriction({ DeviceRestriction.RESTRICTION_TYPE_NON_AUTO, GmsCoreVersionRestriction.RESTRICTION_TYPE_VERSION_GE_22W30 }) public void testUseCredentialManagerFromChromeSettings() { mSettingsActivityTestRule.startSettingsActivity(); + scrollToSetting(withText(R.string.password_manager_settings_title)); onView(withText(R.string.password_manager_settings_title)).perform(click()); // Verify that success callback was called. @@ -92,4 +100,27 @@ // Verify that failure callback was not called. assertEquals(0, mFailureCallbackHelper.getCallCount()); } + + @Test + @LargeTest + @Restriction({ + DeviceRestriction.RESTRICTION_TYPE_NON_AUTO, + GmsCoreVersionRestriction.RESTRICTION_TYPE_VERSION_GE_22W30 + }) + public void testUseCredentialManagerFromSafetyCheck() { + mSettingsActivityTestRule.startSettingsActivity(); + scrollToSetting(withText(R.string.prefs_safety_check)); + onView(withText(R.string.prefs_safety_check)).perform(click()); + onViewWaiting(withText(R.string.safety_check_passwords_local_title)).perform(click()); + + // Verify that success callback was called. + assertNotNull(mSuccessCallbackHelper.getOnlyPayloadBlocking()); + // Verify that failure callback was not called. + assertEquals(0, mFailureCallbackHelper.getCallCount()); + } + + private void scrollToSetting(Matcher<View> matcher) { + onView(withId(R.id.recycler_view)) + .perform(RecyclerViewActions.scrollTo(hasDescendant(matcher))); + } }
diff --git a/chrome/android/junit/src/org/chromium/chrome/browser/bookmarks/BookmarkManagerCoordinatorTest.java b/chrome/android/junit/src/org/chromium/chrome/browser/bookmarks/BookmarkManagerCoordinatorTest.java index b3208fa..63b17338 100644 --- a/chrome/android/junit/src/org/chromium/chrome/browser/bookmarks/BookmarkManagerCoordinatorTest.java +++ b/chrome/android/junit/src/org/chromium/chrome/browser/bookmarks/BookmarkManagerCoordinatorTest.java
@@ -58,7 +58,8 @@ }) @EnableFeatures({ SyncFeatureMap.ENABLE_BOOKMARK_FOLDERS_FOR_ACCOUNT_STORAGE, - ChromeFeatureList.ANDROID_IMPROVED_BOOKMARKS + ChromeFeatureList.ANDROID_IMPROVED_BOOKMARKS, + ChromeFeatureList.REPLACE_SYNC_PROMOS_WITH_SIGN_IN_PROMOS }) public class BookmarkManagerCoordinatorTest { @Rule public MockitoRule mMockitoRule = MockitoJUnit.rule();
diff --git a/chrome/android/junit/src/org/chromium/chrome/browser/bookmarks/BookmarkManagerMediatorTest.java b/chrome/android/junit/src/org/chromium/chrome/browser/bookmarks/BookmarkManagerMediatorTest.java index 5f0a061..b4209c1 100644 --- a/chrome/android/junit/src/org/chromium/chrome/browser/bookmarks/BookmarkManagerMediatorTest.java +++ b/chrome/android/junit/src/org/chromium/chrome/browser/bookmarks/BookmarkManagerMediatorTest.java
@@ -144,7 +144,8 @@ @Config(shadows = {ShadowPostTask.class}) @EnableFeatures({ SyncFeatureMap.ENABLE_BOOKMARK_FOLDERS_FOR_ACCOUNT_STORAGE, - ChromeFeatureList.ANDROID_IMPROVED_BOOKMARKS + ChromeFeatureList.ANDROID_IMPROVED_BOOKMARKS, + ChromeFeatureList.REPLACE_SYNC_PROMOS_WITH_SIGN_IN_PROMOS }) public class BookmarkManagerMediatorTest { private static final GURL EXAMPLE_URL = JUnitTestGURLs.EXAMPLE_URL; @@ -981,7 +982,10 @@ } @Test - @DisableFeatures(SyncFeatureMap.ENABLE_BOOKMARK_FOLDERS_FOR_ACCOUNT_STORAGE) + @DisableFeatures({ + SyncFeatureMap.ENABLE_BOOKMARK_FOLDERS_FOR_ACCOUNT_STORAGE, + ChromeFeatureList.REPLACE_SYNC_PROMOS_WITH_SIGN_IN_PROMOS + }) public void testBuildImprovedBookmarkRow_Folder_Visual() { finishLoading(); mMediator.openFolder(mFolderId1); @@ -1306,7 +1310,10 @@ } @Test - @DisableFeatures(SyncFeatureMap.ENABLE_BOOKMARK_FOLDERS_FOR_ACCOUNT_STORAGE) + @DisableFeatures({ + SyncFeatureMap.ENABLE_BOOKMARK_FOLDERS_FOR_ACCOUNT_STORAGE, + ChromeFeatureList.REPLACE_SYNC_PROMOS_WITH_SIGN_IN_PROMOS + }) public void testParentFolderUpdatedWhenChildDeleted() { finishLoading();
diff --git a/chrome/app/chromeos_strings.grdp b/chrome/app/chromeos_strings.grdp index 971ad02..a80b386e 100644 --- a/chrome/app/chromeos_strings.grdp +++ b/chrome/app/chromeos_strings.grdp
@@ -1744,9 +1744,6 @@ Turn on </message> - <message name="IDS_LOGIN_CRYPTOHOME_RECOVERY_SUCCESS_TITLE" desc="The title message when Cryptohome recovery succeeded."> - Your password has been updated - </message> <message name="IDS_LOGIN_CRYPTOHOME_RECOVERY_SETUP_ERROR_TITLE" desc="The title message when Cryptohome recovery setup failed."> Failed to enable local data recovery </message> @@ -1759,24 +1756,12 @@ <message name="IDS_LOGIN_CRYPTOHOME_RECOVERY_SETUP_SKIP_BUTTON" desc="Label for the skip button to skip the Cryptohome recovery setup flow."> Skip </message> - <message name="IDS_LOGIN_CRYPTOHOME_RECOVERY_ERROR_TITLE" desc="The title message when Cryptohome recovery failed."> - Failed to recover local data - </message> <message name="IDS_LOGIN_CRYPTOHOME_RECOVERY_REAUTH_NOTIFICATION_TITLE" desc="The title message when reauth is required during Cryptohome recovery."> Your password has changed since the last time you signed in </message> <message name="IDS_LOGIN_CRYPTOHOME_RECOVERY_REAUTH_NOTIFICATION_SUBTITLE" desc="The subtitle message when reauth is required during Cryptohome recovery."> Enter your Google Account password again on the next screen to finish recovery </message> - <message name="IDS_LOGIN_CRYPTOHOME_RECOVERY_MANUAL_RECOVERY_BUTTON" desc="Label for the button to enter old password when Cryptohome recovery failed."> - Enter the old password - </message> - <message name="IDS_LOGIN_CRYPTOHOME_RECOVERY_RETRY_BUTTON" desc="Label for the button to retry when Cryptohome recovery failed."> - Retry - </message> - <message name="IDS_LOGIN_CRYPTOHOME_RECOVERY_DONE_BUTTON" desc="Label for the done button to finish the Cryptohome recovery flow."> - Done - </message> <message name="IDS_LOGIN_GENERIC_RETRY_BUTTON" desc="Label for the button to retry operation during login process."> Retry </message>
diff --git a/chrome/app/chromeos_strings_grdp/IDS_LOGIN_CRYPTOHOME_RECOVERY_DONE_BUTTON.png.sha1 b/chrome/app/chromeos_strings_grdp/IDS_LOGIN_CRYPTOHOME_RECOVERY_DONE_BUTTON.png.sha1 deleted file mode 100644 index 896f30f..0000000 --- a/chrome/app/chromeos_strings_grdp/IDS_LOGIN_CRYPTOHOME_RECOVERY_DONE_BUTTON.png.sha1 +++ /dev/null
@@ -1 +0,0 @@ -af5d4bff240d254ee0db10275168a5abc08d96ae \ No newline at end of file
diff --git a/chrome/app/chromeos_strings_grdp/IDS_LOGIN_CRYPTOHOME_RECOVERY_ERROR_TITLE.png.sha1 b/chrome/app/chromeos_strings_grdp/IDS_LOGIN_CRYPTOHOME_RECOVERY_ERROR_TITLE.png.sha1 deleted file mode 100644 index e023e00c..0000000 --- a/chrome/app/chromeos_strings_grdp/IDS_LOGIN_CRYPTOHOME_RECOVERY_ERROR_TITLE.png.sha1 +++ /dev/null
@@ -1 +0,0 @@ -cb90531e510c0c8cdd45d965bb4a1fd869807493 \ No newline at end of file
diff --git a/chrome/app/chromeos_strings_grdp/IDS_LOGIN_CRYPTOHOME_RECOVERY_MANUAL_RECOVERY_BUTTON.png.sha1 b/chrome/app/chromeos_strings_grdp/IDS_LOGIN_CRYPTOHOME_RECOVERY_MANUAL_RECOVERY_BUTTON.png.sha1 deleted file mode 100644 index e023e00c..0000000 --- a/chrome/app/chromeos_strings_grdp/IDS_LOGIN_CRYPTOHOME_RECOVERY_MANUAL_RECOVERY_BUTTON.png.sha1 +++ /dev/null
@@ -1 +0,0 @@ -cb90531e510c0c8cdd45d965bb4a1fd869807493 \ No newline at end of file
diff --git a/chrome/app/chromeos_strings_grdp/IDS_LOGIN_CRYPTOHOME_RECOVERY_RETRY_BUTTON.png.sha1 b/chrome/app/chromeos_strings_grdp/IDS_LOGIN_CRYPTOHOME_RECOVERY_RETRY_BUTTON.png.sha1 deleted file mode 100644 index e023e00c..0000000 --- a/chrome/app/chromeos_strings_grdp/IDS_LOGIN_CRYPTOHOME_RECOVERY_RETRY_BUTTON.png.sha1 +++ /dev/null
@@ -1 +0,0 @@ -cb90531e510c0c8cdd45d965bb4a1fd869807493 \ No newline at end of file
diff --git a/chrome/app/chromeos_strings_grdp/IDS_LOGIN_CRYPTOHOME_RECOVERY_SUCCESS_TITLE.png.sha1 b/chrome/app/chromeos_strings_grdp/IDS_LOGIN_CRYPTOHOME_RECOVERY_SUCCESS_TITLE.png.sha1 deleted file mode 100644 index 896f30f..0000000 --- a/chrome/app/chromeos_strings_grdp/IDS_LOGIN_CRYPTOHOME_RECOVERY_SUCCESS_TITLE.png.sha1 +++ /dev/null
@@ -1 +0,0 @@ -af5d4bff240d254ee0db10275168a5abc08d96ae \ No newline at end of file
diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc index ac42eaa..196f7fb 100644 --- a/chrome/browser/about_flags.cc +++ b/chrome/browser/about_flags.cc
@@ -8984,6 +8984,12 @@ FEATURE_VALUE_TYPE(features::kDefaultPassthroughCommandDecoder)}, #endif // BUILDFLAG(ENABLE_VALIDATING_COMMAND_DECODER) +#if !BUILDFLAG(IS_ANDROID) + {"use-screen2x-v2", flag_descriptions::kUseScreen2xV2Name, + flag_descriptions::kUseScreen2xV2Description, kOsDesktop, + FEATURE_VALUE_TYPE(features::kUseScreen2xV2)}, +#endif + #if BUILDFLAG(IS_CHROMEOS_ASH) {"focus-follows-cursor", flag_descriptions::kFocusFollowsCursorName, flag_descriptions::kFocusFollowsCursorDescription, kOsCrOS,
diff --git a/chrome/browser/apps/app_service/media_access_browsertest.cc b/chrome/browser/apps/app_service/media_access_browsertest.cc index f9e88e66..803e974 100644 --- a/chrome/browser/apps/app_service/media_access_browsertest.cc +++ b/chrome/browser/apps/app_service/media_access_browsertest.cc
@@ -351,8 +351,8 @@ ~MediaAccessWebAppsTest() override = default; std::string CreateWebApp(const GURL& url) const { - auto web_app_info = std::make_unique<web_app::WebAppInstallInfo>(); - web_app_info->start_url = url; + auto web_app_info = + web_app::WebAppInstallInfo::CreateWithStartUrlForTesting(url); web_app_info->scope = url; return web_app::test::InstallWebApp(browser()->profile(), std::move(web_app_info));
diff --git a/chrome/browser/apps/app_service/metrics/app_platform_metrics_browsertest.cc b/chrome/browser/apps/app_service/metrics/app_platform_metrics_browsertest.cc index dd1e470..af4895c 100644 --- a/chrome/browser/apps/app_service/metrics/app_platform_metrics_browsertest.cc +++ b/chrome/browser/apps/app_service/metrics/app_platform_metrics_browsertest.cc
@@ -29,8 +29,8 @@ AppId InstallWebApp(const GURL& start_url, blink::mojom::DisplayMode display_mode, web_app::mojom::UserDisplayMode user_display_mode) { - auto web_app_info = std::make_unique<web_app::WebAppInstallInfo>(); - web_app_info->start_url = start_url; + auto web_app_info = + web_app::WebAppInstallInfo::CreateWithStartUrlForTesting(start_url); web_app_info->scope = start_url.GetWithoutFilename(); web_app_info->display_mode = display_mode; web_app_info->user_display_mode = user_display_mode;
diff --git a/chrome/browser/apps/app_service/metrics/website_metrics_browsertest.cc b/chrome/browser/apps/app_service/metrics/website_metrics_browsertest.cc index 7e2bc84..4a685e4e 100644 --- a/chrome/browser/apps/app_service/metrics/website_metrics_browsertest.cc +++ b/chrome/browser/apps/app_service/metrics/website_metrics_browsertest.cc
@@ -170,8 +170,8 @@ webapps::AppId InstallWebApp( const std::string& start_url, web_app::mojom::UserDisplayMode user_display_mode) { - auto info = std::make_unique<web_app::WebAppInstallInfo>(); - info->start_url = GURL(start_url); + auto info = web_app::WebAppInstallInfo::CreateWithStartUrlForTesting( + GURL(start_url)); info->user_display_mode = user_display_mode; auto app_id = web_app::test::InstallWebApp(profile(), std::move(info)); return app_id;
diff --git a/chrome/browser/apps/app_service/notifications_browsertest.cc b/chrome/browser/apps/app_service/notifications_browsertest.cc index 7db29b5..c19e2cc 100644 --- a/chrome/browser/apps/app_service/notifications_browsertest.cc +++ b/chrome/browser/apps/app_service/notifications_browsertest.cc
@@ -268,8 +268,8 @@ } std::string CreateWebApp(const GURL& url, const GURL& scope) const { - auto web_app_info = std::make_unique<web_app::WebAppInstallInfo>(); - web_app_info->start_url = url; + auto web_app_info = + web_app::WebAppInstallInfo::CreateWithStartUrlForTesting(url); web_app_info->scope = scope; std::string app_id = web_app::test::InstallWebApp(browser()->profile(), std::move(web_app_info));
diff --git a/chrome/browser/apps/app_service/publishers/publisher_unittest.cc b/chrome/browser/apps/app_service/publishers/publisher_unittest.cc index 2979be6..675112a 100644 --- a/chrome/browser/apps/app_service/publishers/publisher_unittest.cc +++ b/chrome/browser/apps/app_service/publishers/publisher_unittest.cc
@@ -314,9 +314,9 @@ std::string CreateWebApp(const std::string& app_name) { const GURL kAppUrl(kUrl); - auto web_app_info = std::make_unique<web_app::WebAppInstallInfo>(); + auto web_app_info = + web_app::WebAppInstallInfo::CreateWithStartUrlForTesting(kAppUrl); web_app_info->title = base::UTF8ToUTF16(app_name); - web_app_info->start_url = kAppUrl; web_app_info->scope = kAppUrl; web_app_info->user_display_mode = web_app::mojom::UserDisplayMode::kStandalone;
diff --git a/chrome/browser/apps/app_service/webapk/webapk_install_task_unittest.cc b/chrome/browser/apps/app_service/webapk/webapk_install_task_unittest.cc index 3f8a4ec..e15b3ab 100644 --- a/chrome/browser/apps/app_service/webapk/webapk_install_task_unittest.cc +++ b/chrome/browser/apps/app_service/webapk/webapk_install_task_unittest.cc
@@ -44,8 +44,8 @@ const std::u16string kTestAppTitle = u"Test App"; std::unique_ptr<web_app::WebAppInstallInfo> BuildDefaultWebAppInfo() { - auto app_info = std::make_unique<web_app::WebAppInstallInfo>(); - app_info->start_url = GURL(kTestAppUrl); + auto app_info = web_app::WebAppInstallInfo::CreateWithStartUrlForTesting( + GURL(kTestAppUrl)); app_info->scope = GURL(kTestAppUrl); app_info->title = kTestAppTitle; app_info->manifest_url = GURL(kTestManifestUrl); @@ -255,8 +255,8 @@ } TEST_F(WebApkInstallTaskTest, NoIconInManifest) { - auto app_info = std::make_unique<web_app::WebAppInstallInfo>(); - app_info->start_url = GURL(kTestAppUrl); + auto app_info = web_app::WebAppInstallInfo::CreateWithStartUrlForTesting( + GURL(kTestAppUrl)); app_info->scope = GURL(kTestAppUrl); app_info->title = kTestAppTitle; app_info->manifest_url = GURL(kTestManifestUrl);
diff --git a/chrome/browser/apps/app_service/webapk/webapk_manager_unittest.cc b/chrome/browser/apps/app_service/webapk/webapk_manager_unittest.cc index 9e47870..bcb1061c 100644 --- a/chrome/browser/apps/app_service/webapk/webapk_manager_unittest.cc +++ b/chrome/browser/apps/app_service/webapk/webapk_manager_unittest.cc
@@ -43,9 +43,10 @@ constexpr char kTestWebApkPackageName[] = "org.chromium.webapk.some_package"; const std::u16string kTestAppTitle = u"Test App"; -std::unique_ptr<web_app::WebAppInstallInfo> BuildDefaultWebAppInfo() { - auto app_info = std::make_unique<web_app::WebAppInstallInfo>(); - app_info->start_url = GURL(kTestAppUrl); +std::unique_ptr<web_app::WebAppInstallInfo> BuildDefaultWebAppInfo( + GURL app_url = GURL(kTestAppUrl)) { + auto app_info = + web_app::WebAppInstallInfo::CreateWithStartUrlForTesting(app_url); app_info->scope = GURL(kTestAppUrl); app_info->title = kTestAppTitle; app_info->manifest_url = GURL(kTestManifestUrl); @@ -179,8 +180,8 @@ // Does not install web apps without a Share Target definition. TEST_F(WebApkManagerTest, NoShareTarget) { - auto app_info = std::make_unique<web_app::WebAppInstallInfo>(); - app_info->start_url = GURL(kTestAppUrl); + auto app_info = web_app::WebAppInstallInfo::CreateWithStartUrlForTesting( + GURL(kTestAppUrl)); app_info->title = kTestAppTitle; auto app_id = web_app::test::InstallWebApp(profile(), std::move(app_info)); @@ -193,9 +194,9 @@ // has a WebAPK installed, only install a new WebAPK for the other app. TEST_F(WebApkManagerTest, IgnoresAlreadyInstalledWebApkOnStartup) { auto app_info_1 = BuildDefaultWebAppInfo(); - auto app_info_2 = BuildDefaultWebAppInfo(); - // Change the start_url so that the two apps have different IDs. - app_info_2->start_url = GURL(base::StrCat({kTestAppUrl, "/app_2"})); + // Change the manifest_id so that the two apps have different IDs. + auto app_info_2 = + BuildDefaultWebAppInfo(GURL(base::StrCat({kTestAppUrl, "/app_2"}))); auto app_id_1 = web_app::test::InstallWebApp(profile(), std::move(app_info_1)); @@ -214,8 +215,8 @@ } TEST_F(WebApkManagerTest, RemovesIneligibleWebApkOnStartup) { - auto app_info = std::make_unique<web_app::WebAppInstallInfo>(); - app_info->start_url = GURL(kTestAppUrl); + auto app_info = web_app::WebAppInstallInfo::CreateWithStartUrlForTesting( + GURL(kTestAppUrl)); app_info->title = kTestAppTitle; auto app_id = web_app::test::InstallWebApp(profile(), std::move(app_info)); @@ -284,9 +285,9 @@ TEST_F(WebApkManagerTest, QueuesPendingUpdateOnStartup) { auto app_info_1 = BuildDefaultWebAppInfo(); - auto app_info_2 = BuildDefaultWebAppInfo(); - // Change the start_url so that the two apps have different IDs. - app_info_2->start_url = GURL(base::StrCat({kTestAppUrl, "/app_2"})); + // Change the manifest_id so that the two apps have different IDs. + auto app_info_2 = + BuildDefaultWebAppInfo(GURL(base::StrCat({kTestAppUrl, "/app_2"}))); auto app_id_1 = web_app::test::InstallWebApp(profile(), std::move(app_info_1));
diff --git a/chrome/browser/apps/browser_instance/browser_app_instance_tracker_browsertest.cc b/chrome/browser/apps/browser_instance/browser_app_instance_tracker_browsertest.cc index 55a36af8..f339794 100644 --- a/chrome/browser/apps/browser_instance/browser_app_instance_tracker_browsertest.cc +++ b/chrome/browser/apps/browser_instance/browser_app_instance_tracker_browsertest.cc
@@ -285,8 +285,8 @@ webapps::AppId InstallWebApp( const std::string& start_url, web_app::mojom::UserDisplayMode user_display_mode) { - auto info = std::make_unique<web_app::WebAppInstallInfo>(); - info->start_url = GURL(start_url); + auto info = web_app::WebAppInstallInfo::CreateWithStartUrlForTesting( + GURL(start_url)); info->user_display_mode = user_display_mode; Profile* profile = ProfileManager::GetPrimaryUserProfile(); auto app_id = web_app::test::InstallWebApp(profile, std::move(info));
diff --git a/chrome/browser/ash/BUILD.gn b/chrome/browser/ash/BUILD.gn index 9a4a1453..388e913 100644 --- a/chrome/browser/ash/BUILD.gn +++ b/chrome/browser/ash/BUILD.gn
@@ -1591,6 +1591,8 @@ "input_method/editor_consent_enums.h", "input_method/editor_consent_store.cc", "input_method/editor_consent_store.h", + "input_method/editor_context.cc", + "input_method/editor_context.h", "input_method/editor_event_proxy.cc", "input_method/editor_event_proxy.h", "input_method/editor_event_sink.h", @@ -1654,6 +1656,8 @@ "input_method/input_method_settings.h", "input_method/input_method_syncer.cc", "input_method/input_method_syncer.h", + "input_method/input_methods_by_language.cc", + "input_method/input_methods_by_language.h", "input_method/japanese/japanese_legacy_config.cc", "input_method/japanese/japanese_legacy_config.h", "input_method/japanese/japanese_prefs.cc", @@ -4142,6 +4146,7 @@ "//ash/strings", "//ash/style", "//ash/webui/camera_app_ui:document_scanning", + "//ash/webui/camera_app_ui:ocr", "//ash/webui/camera_app_ui/resources/strings", "//ash/webui/common:sea_pen", "//ash/webui/connectivity_diagnostics/resources:resources", @@ -5815,6 +5820,7 @@ "input_method/input_method_persistence_unittest.cc", "input_method/input_method_quick_settings_helpers_unittest.cc", "input_method/input_method_settings_unittest.cc", + "input_method/input_methods_by_language_unittest.cc", "input_method/japanese/japanese_legacy_config_unittest.cc", "input_method/japanese/japanese_prefs_unittest.cc", "input_method/japanese/japanese_settings_unittest.cc",
diff --git a/chrome/browser/ash/app_list/app_service/app_service_context_menu_browsertest.cc b/chrome/browser/ash/app_list/app_service/app_service_context_menu_browsertest.cc index a82c723..25238c7 100644 --- a/chrome/browser/ash/app_list/app_service/app_service_context_menu_browsertest.cc +++ b/chrome/browser/ash/app_list/app_service/app_service_context_menu_browsertest.cc
@@ -58,8 +58,9 @@ GTEST_SKIP(); } Profile* profile = browser()->profile(); - auto web_app_install_info = std::make_unique<web_app::WebAppInstallInfo>(); - web_app_install_info->start_url = GURL("https://example.org"); + auto web_app_install_info = + web_app::WebAppInstallInfo::CreateWithStartUrlForTesting( + GURL("https://example.org")); webapps::AppId app_id = web_app::test::InstallWebApp(profile, std::move(web_app_install_info));
diff --git a/chrome/browser/ash/app_list/app_service/app_service_shortcut_item_browsertest.cc b/chrome/browser/ash/app_list/app_service/app_service_shortcut_item_browsertest.cc index b086225..ee85cdb 100644 --- a/chrome/browser/ash/app_list/app_service/app_service_shortcut_item_browsertest.cc +++ b/chrome/browser/ash/app_list/app_service/app_service_shortcut_item_browsertest.cc
@@ -100,8 +100,8 @@ std::string CreateWebApp(const GURL& app_url, const std::u16string& app_name) { // Create web app. - auto web_app_info = std::make_unique<web_app::WebAppInstallInfo>(); - web_app_info->start_url = app_url; + auto web_app_info = + web_app::WebAppInstallInfo::CreateWithStartUrlForTesting(app_url); web_app_info->title = app_name; web_app_info->scope = app_url; auto web_app_id = web_app::test::InstallWebApp(
diff --git a/chrome/browser/ash/app_list/chrome_app_list_model_updater_browsertest.cc b/chrome/browser/ash/app_list/chrome_app_list_model_updater_browsertest.cc index 7587170..0975d42 100644 --- a/chrome/browser/ash/app_list/chrome_app_list_model_updater_browsertest.cc +++ b/chrome/browser/ash/app_list/chrome_app_list_model_updater_browsertest.cc
@@ -442,8 +442,8 @@ // Simluate installation of an app pinned to shelf by default after initial // sync data is merged: app with web_app::kMessagesAppId ID. - auto messages_info = std::make_unique<web_app::WebAppInstallInfo>(); - messages_info->start_url = GURL("https://messages.google.com/web/"); + auto messages_info = web_app::WebAppInstallInfo::CreateWithStartUrlForTesting( + GURL("https://messages.google.com/web/")); messages_info->display_mode = blink::mojom::DisplayMode::kMinimalUi; web_app::test::InstallWebApp(profile(), std::move(messages_info));
diff --git a/chrome/browser/ash/app_mode/web_app/web_kiosk_app_data_browsertest.cc b/chrome/browser/ash/app_mode/web_app/web_kiosk_app_data_browsertest.cc index 8f112f70..a8ab9e7 100644 --- a/chrome/browser/ash/app_mode/web_app/web_kiosk_app_data_browsertest.cc +++ b/chrome/browser/ash/app_mode/web_app/web_kiosk_app_data_browsertest.cc
@@ -245,9 +245,9 @@ EXPECT_EQ(app_data.GetLaunchableUrl(), GURL(kAppUrl)); // `start_url` is treated as launchable URL if the app has been installed. - web_app::WebAppInstallInfo app_info; - app_info.start_url = GURL(kStartUrl); - app_data.UpdateFromWebAppInfo(app_info); + auto app_info = + web_app::WebAppInstallInfo::CreateWithStartUrlForTesting(GURL(kStartUrl)); + app_data.UpdateFromWebAppInfo(*app_info); app_data.LoadFromCache(); WaitForAppDataChange(1); EXPECT_EQ(app_data.status(), WebKioskAppData::Status::kInstalled); @@ -265,12 +265,12 @@ EXPECT_EQ(app_data.GetLaunchableUrl(), GURL(kAppUrl)); EXPECT_TRUE(app_data.icon().isNull()); - web_app::WebAppInstallInfo app_info; - app_info.start_url = GURL(kStartUrl); - app_info.title = kAppTitle16; - PopulateIcon(&app_info, kIconExampleUrl1); + auto app_info = + web_app::WebAppInstallInfo::CreateWithStartUrlForTesting(GURL(kStartUrl)); + app_info->title = kAppTitle16; + PopulateIcon(app_info.get(), kIconExampleUrl1); - app_data.UpdateFromWebAppInfo(app_info); + app_data.UpdateFromWebAppInfo(*app_info); } IN_PROC_BROWSER_TEST_F(WebKioskAppDataTest,
diff --git a/chrome/browser/ash/app_mode/web_app/web_kiosk_app_manager_unittest.cc b/chrome/browser/ash/app_mode/web_app/web_kiosk_app_manager_unittest.cc index dccc7ac..2926a4f48 100644 --- a/chrome/browser/ash/app_mode/web_app/web_kiosk_app_manager_unittest.cc +++ b/chrome/browser/ash/app_mode/web_app/web_kiosk_app_manager_unittest.cc
@@ -290,8 +290,8 @@ TEST_F(WebKioskAppManagerTest, ShouldNotUpdateAppInfoForPlaceholders) { // Install app as placeholder. - auto app_info = std::make_unique<web_app::WebAppInstallInfo>(); - app_info->start_url = GURL(kAppLaunchUrl); + auto app_info = web_app::WebAppInstallInfo::CreateWithStartUrlForTesting( + GURL(kAppLaunchUrl)); app_info->scope = GURL(kAppInstallUrl); app_info->title = u"placeholder_title"; app_info->is_placeholder = true;
diff --git a/chrome/browser/ash/app_mode/web_app/web_kiosk_app_service_launcher_unittest.cc b/chrome/browser/ash/app_mode/web_app/web_kiosk_app_service_launcher_unittest.cc index a795abb..cff301b4 100644 --- a/chrome/browser/ash/app_mode/web_app/web_kiosk_app_service_launcher_unittest.cc +++ b/chrome/browser/ash/app_mode/web_app/web_kiosk_app_service_launcher_unittest.cc
@@ -172,10 +172,11 @@ CreateWebAppWithManifest(); InstallAppInternal(/*install_app_as_placeholder=*/false); - web_app::WebAppInstallInfo info; - info.start_url = GURL(kAppLaunchUrl); - info.title = kAppTitle; - app_manager_->UpdateAppByAccountId(account_id_, info); + GURL start_url(kAppLaunchUrl); + auto info = + web_app::WebAppInstallInfo::CreateWithStartUrlForTesting(start_url); + info->title = kAppTitle; + app_manager_->UpdateAppByAccountId(account_id_, *info); } bool IsAppInstalleAsPlaceholder() {
diff --git a/chrome/browser/ash/app_restore/full_restore_app_launch_handler_browsertest.cc b/chrome/browser/ash/app_restore/full_restore_app_launch_handler_browsertest.cc index b25e6eed..5e29a43f 100644 --- a/chrome/browser/ash/app_restore/full_restore_app_launch_handler_browsertest.cc +++ b/chrome/browser/ash/app_restore/full_restore_app_launch_handler_browsertest.cc
@@ -292,8 +292,9 @@ } void CreateWebApp() { - auto web_app_install_info = std::make_unique<web_app::WebAppInstallInfo>(); - web_app_install_info->start_url = GURL("https://example.org"); + auto web_app_install_info = + web_app::WebAppInstallInfo::CreateWithStartUrlForTesting( + GURL("https://example.org")); web_app::test::InstallWebApp(profile(), std::move(web_app_install_info)); }
diff --git a/chrome/browser/ash/apps/apk_web_app_installer_browsertest.cc b/chrome/browser/ash/apps/apk_web_app_installer_browsertest.cc index 5a7cda5..e47ac73 100644 --- a/chrome/browser/ash/apps/apk_web_app_installer_browsertest.cc +++ b/chrome/browser/ash/apps/apk_web_app_installer_browsertest.cc
@@ -66,8 +66,8 @@ std::unique_ptr<web_app::WebAppInstallInfo> CreateWebAppInstallInfo( const GURL& url) { - auto web_app_install_info = std::make_unique<web_app::WebAppInstallInfo>(); - web_app_install_info->start_url = url; + auto web_app_install_info = + web_app::WebAppInstallInfo::CreateWithStartUrlForTesting(url); web_app_install_info->title = u"App Title"; web_app_install_info->theme_color = SK_ColorBLUE; web_app_install_info->scope = url.Resolve("scope");
diff --git a/chrome/browser/ash/chrome_browser_main_parts_ash.cc b/chrome/browser/ash/chrome_browser_main_parts_ash.cc index ee8190a..87a6cc59 100644 --- a/chrome/browser/ash/chrome_browser_main_parts_ash.cc +++ b/chrome/browser/ash/chrome_browser_main_parts_ash.cc
@@ -309,7 +309,8 @@ return; } if (base::CommandLine::ForCurrentProcess()->HasSwitch( - ::switches::kTestType)) { + ::switches::kTestType) || + features::IsRemoveDetectPortalFromChromeEnabled()) { network_portal_detector::SetNetworkPortalDetector( new NetworkPortalDetectorStub()); } else { @@ -870,7 +871,7 @@ bluetooth_log_controller_ = std::make_unique<ash::BluetoothLogController>( user_manager::UserManager::Get()); - // Enable per-user metrics support as soon as user_manager is created. + // Enable per-user metrics support as soon as user_manager is created. g_browser_process->metrics_service()->InitPerUserMetrics(); ScreenLocker::InitClass();
diff --git a/chrome/browser/ash/drive/drive_integration_service.cc b/chrome/browser/ash/drive/drive_integration_service.cc index 3bab3b33..3ea0f88 100644 --- a/chrome/browser/ash/drive/drive_integration_service.cc +++ b/chrome/browser/ash/drive/drive_integration_service.cc
@@ -50,6 +50,7 @@ #include "chrome/common/pref_names.h" #include "chromeos/ash/components/drivefs/drivefs_bootstrap.h" #include "chromeos/ash/components/drivefs/drivefs_pinning_manager.h" +#include "chromeos/ash/components/drivefs/mojom/drivefs.mojom-shared.h" #include "chromeos/ash/components/drivefs/mojom/notifications.mojom.h" #include "chromeos/components/drivefs/mojom/drivefs_native_messaging.mojom.h" #include "chromeos/constants/chromeos_features.h" @@ -1379,6 +1380,23 @@ drivefs::mojom::MirrorSyncStatus status) { mirroring_enabled_ = (status == drivefs::mojom::MirrorSyncStatus::kSuccess); if (mirroring_enabled_) { + // Add ~/MyFiles as sync root by default. + const base::FilePath my_files_path = + file_manager::util::GetMyFilesFolderForProfile(profile_); + ToggleSyncForPath( + my_files_path, drivefs::mojom::MirrorPathStatus::kStart, + base::BindOnce(&DriveIntegrationService::OnMyFilesSyncRootAdded, + weak_ptr_factory_.GetWeakPtr())); + } +} + +void DriveIntegrationService::OnMyFilesSyncRootAdded(drive::FileError status) { + if (status != drive::FILE_ERROR_OK) { + LOG(ERROR) << "Add sync root for ~/MyFiles failed: " << status; + // We need to turn off the Pref which will turn off the toggle in Settings + // UI, so users can turn it on again to add MyFiles next time. + GetPrefs()->SetBoolean(prefs::kDriveFsEnableMirrorSync, false); + } else { for (Observer& observer : observers_) { DCHECK_EQ(observer.GetService(), this); observer.OnMirroringEnabled(); @@ -1386,6 +1404,42 @@ } } +void DriveIntegrationService::OnGetSyncPathsForRemovingAllRoots( + drive::FileError status, + const std::vector<::base::FilePath>& paths) { + // If the GetSyncPaths fails or there's no sync roots, we toggle the syncing + // off directly. + if (status != drive::FILE_ERROR_OK || paths.size() == 0) { + ToggleMirroring( + false, + base::BindOnce(&DriveIntegrationService::OnDisableMirroringStatusUpdate, + weak_ptr_factory_.GetWeakPtr())); + return; + } + + number_of_sync_roots_to_remove_ = paths.size(); + for (const base::FilePath& path : paths) { + ToggleSyncForPath( + path, drivefs::mojom::MirrorPathStatus::kStop, + base::BindOnce(&DriveIntegrationService::OnSyncRootRemoved, + weak_ptr_factory_.GetWeakPtr(), path)); + } +} + +void DriveIntegrationService::OnSyncRootRemoved(const base::FilePath& path, + drive::FileError status) { + LOG_IF(ERROR, status != drive::FILE_ERROR_OK) + << "Failed to remove Sync root: " << path; + // Even the removal fails we still proceed to turn the syncing off. + number_of_sync_roots_to_remove_--; + if (number_of_sync_roots_to_remove_ == 0) { + ToggleMirroring( + false, + base::BindOnce(&DriveIntegrationService::OnDisableMirroringStatusUpdate, + weak_ptr_factory_.GetWeakPtr())); + } +} + void DriveIntegrationService::OnDisableMirroringStatusUpdate( drivefs::mojom::MirrorSyncStatus status) { if (status == drivefs::mojom::MirrorSyncStatus::kSuccess) { @@ -1746,10 +1800,10 @@ base::BindOnce(&DriveIntegrationService::OnEnableMirroringStatusUpdate, weak_ptr_factory_.GetWeakPtr())); } else { - ToggleMirroring( - false, - base::BindOnce(&DriveIntegrationService::OnDisableMirroringStatusUpdate, - weak_ptr_factory_.GetWeakPtr())); + // Remove all sync root before disabling mirror sync. + GetSyncingPaths(base::BindOnce( + &DriveIntegrationService::OnGetSyncPathsForRemovingAllRoots, + weak_ptr_factory_.GetWeakPtr())); } }
diff --git a/chrome/browser/ash/drive/drive_integration_service.h b/chrome/browser/ash/drive/drive_integration_service.h index 12e7a89..daa627a 100644 --- a/chrome/browser/ash/drive/drive_integration_service.h +++ b/chrome/browser/ash/drive/drive_integration_service.h
@@ -468,7 +468,12 @@ std::optional<std::vector<drivefs::mojom::QueryItemPtr>> items); void OnEnableMirroringStatusUpdate(drivefs::mojom::MirrorSyncStatus status); + void OnMyFilesSyncRootAdded(drive::FileError status); + void OnGetSyncPathsForRemovingAllRoots( + drive::FileError status, + const std::vector<::base::FilePath>& paths); + void OnSyncRootRemoved(const base::FilePath& path, drive::FileError status); void OnDisableMirroringStatusUpdate(drivefs::mojom::MirrorSyncStatus status); // Toggle syncing for |path| if the the directory exists. @@ -510,6 +515,9 @@ bool is_online_ = true; bool remount_when_online_ = false; + // -1 means no sync roots to remove. + int number_of_sync_roots_to_remove_ = -1; + // Custom mount point name that can be injected for testing in constructor. std::string mount_point_name_; base::FilePath cache_root_directory_;
diff --git a/chrome/browser/ash/drive/drive_integration_service_browsertest.cc b/chrome/browser/ash/drive/drive_integration_service_browsertest.cc index 9759b61c..7953357 100644 --- a/chrome/browser/ash/drive/drive_integration_service_browsertest.cc +++ b/chrome/browser/ash/drive/drive_integration_service_browsertest.cc
@@ -2,9 +2,14 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. +#include "chrome/browser/ash/drive/drive_integration_service.h" + +#include <vector> + #include "ash/constants/ash_features.h" #include "ash/constants/ash_switches.h" #include "base/command_line.h" +#include "base/files/file_path.h" #include "base/files/file_util.h" #include "base/files/scoped_temp_dir.h" #include "base/run_loop.h" @@ -12,9 +17,10 @@ #include "base/test/gmock_callback_support.h" #include "base/test/mock_callback.h" #include "base/test/scoped_feature_list.h" +#include "base/test/test_future.h" #include "base/threading/thread_restrictions.h" -#include "chrome/browser/ash/drive/drive_integration_service.h" #include "chrome/browser/ash/drive/drive_integration_service_browser_test_base.h" +#include "chrome/browser/ash/file_manager/path_util.h" #include "chrome/browser/profiles/profile.h" #include "chrome/browser/profiles/profile_manager.h" #include "chrome/browser/ui/browser.h" @@ -32,11 +38,13 @@ #include "mojo/public/cpp/bindings/pending_remote.h" #include "mojo/public/cpp/bindings/receiver.h" #include "mojo/public/cpp/bindings/remote.h" +#include "storage/browser/file_system/external_mount_points.h" namespace drive { using ::base::test::RunClosure; using ::base::test::RunOnceCallback; +using ::base::test::TestFuture; using testing::_; using DriveIntegrationServiceBrowserTest = @@ -341,23 +349,25 @@ ~DriveIntegrationBrowserTestWithMirrorSyncEnabled() override {} - void ToggleMirrorSync(bool status) { - DriveMirrorSyncStatusObserver observer(status); + void SetUpOnMainThread() override { MockGetSyncingPaths(); } + + void ToggleMirrorSync(bool status, bool expect_fail = false) { + DriveMirrorSyncStatusObserver observer(expect_fail ? !status : status); Profile* const profile = browser()->profile(); observer.Observe(DriveIntegrationServiceFactory::FindForProfile(profile)); PrefService* const prefs = profile->GetPrefs(); prefs->SetBoolean(prefs::kDriveFsEnableMirrorSync, status); observer.WaitForStatusChange(); - EXPECT_EQ(prefs->GetBoolean(prefs::kDriveFsEnableMirrorSync), status); + EXPECT_EQ(prefs->GetBoolean(prefs::kDriveFsEnableMirrorSync), + expect_fail ? !status : status); } - void AddSyncingPath(const base::FilePath& path) { + void MockGetSyncingPaths() { drivefs::FakeDriveFs* fake_drivefs = GetFakeDriveFsForProfile(browser()->profile()); - std::vector<base::FilePath> return_paths{path}; - EXPECT_CALL(*fake_drivefs, GetSyncingPaths(_)) - .WillOnce(RunOnceCallback<0>(drive::FileError::FILE_ERROR_OK, - std::move(return_paths))); + ON_CALL(*fake_drivefs, GetSyncingPaths(_)) + .WillByDefault(testing::Invoke( + fake_drivefs, &drivefs::FakeDriveFs::GetSyncingPathsForTesting)); } private: @@ -391,6 +401,44 @@ // Enable mirroring and ensure the integration service has it enabled. ToggleMirrorSync(true); EXPECT_TRUE(drive_service->IsMirroringEnabled()); + + // Check MyFiles is being added as sync path. + TestFuture<drive::FileError, const std::vector<base::FilePath>&> future; + const base::FilePath my_files_path = + file_manager::util::GetMyFilesFolderForProfile(browser()->profile()); + + drive_service->GetSyncingPaths(future.GetCallback()); + + EXPECT_EQ(future.Get<0>(), drive::FILE_ERROR_OK); + EXPECT_THAT(future.Get<1>(), testing::ElementsAre(my_files_path)); +} + +IN_PROC_BROWSER_TEST_F(DriveIntegrationBrowserTestWithMirrorSyncEnabled, + EnableMirrorSyncWithNonExistMyFiles) { + Profile* profile = browser()->profile(); + auto* drive_service = DriveIntegrationServiceFactory::FindForProfile(profile); + + // Replace MyFiles mount point to something not exist. + base::ScopedAllowBlockingForTesting allow_blocking; + base::ScopedTempDir temp_dir; + EXPECT_TRUE(temp_dir.CreateUniqueTempDir()); + const base::FilePath my_files_dir = temp_dir.GetPath().Append("NotExist"); + storage::ExternalMountPoints::GetSystemInstance()->RevokeAllFileSystems(); + storage::ExternalMountPoints::GetSystemInstance()->RegisterFileSystem( + file_manager::util::GetDownloadsMountPointName(profile), + storage::kFileSystemTypeLocal, storage::FileSystemMountOption(), + my_files_dir); + + // Enable mirroring with non existed MyFiles won't turn the sync on. + ToggleMirrorSync(true, true); + EXPECT_FALSE(drive_service->IsMirroringEnabled()); + + // Check nothing is added as sync path. + drivefs::FakeDriveFs* fake_drivefs = GetFakeDriveFsForProfile(profile); + TestFuture<drive::FileError, const std::vector<base::FilePath>&> future; + fake_drivefs->GetSyncingPathsForTesting(future.GetCallback()); + + EXPECT_THAT(future.Get<1>(), testing::IsEmpty()); } IN_PROC_BROWSER_TEST_F(DriveIntegrationBrowserTestWithMirrorSyncEnabled, @@ -404,12 +452,20 @@ EXPECT_FALSE(drive_service->IsMirroringEnabled()); // Enable mirror syncing. + TestFuture<drive::FileError, const std::vector<base::FilePath>&> future1; ToggleMirrorSync(true); EXPECT_TRUE(drive_service->IsMirroringEnabled()); + drive_service->GetSyncingPaths(future1.GetCallback()); + const base::FilePath my_files_path = + file_manager::util::GetMyFilesFolderForProfile(browser()->profile()); + EXPECT_THAT(future1.Get<1>(), testing::ElementsAre(my_files_path)); // Disable mirroring and ensure the integration service has it disabled. + TestFuture<drive::FileError, const std::vector<base::FilePath>&> future2; ToggleMirrorSync(false); EXPECT_FALSE(drive_service->IsMirroringEnabled()); + drive_service->GetSyncingPaths(future2.GetCallback()); + EXPECT_THAT(future2.Get<1>(), testing::IsEmpty()); } IN_PROC_BROWSER_TEST_F(DriveIntegrationBrowserTestWithMirrorSyncEnabled, @@ -519,20 +575,21 @@ } { + TestFuture<drive::FileError> toggle_sync_future; base::FilePath sync_path = temp_dir.GetPath(); - AddSyncingPath(sync_path); + drive_service->ToggleSyncForPath(sync_path, + drivefs::mojom::MirrorPathStatus::kStart, + toggle_sync_future.GetCallback()); + EXPECT_EQ(toggle_sync_future.Get(), drive::FILE_ERROR_OK); - base::RunLoop run_loop; - auto quit_closure = run_loop.QuitClosure(); - drive_service->GetSyncingPaths(base::BindLambdaForTesting( - [quit_closure, sync_path](drive::FileError status, - const std::vector<base::FilePath>& paths) { - EXPECT_EQ(drive::FILE_ERROR_OK, status); - EXPECT_EQ(1u, paths.size()); - EXPECT_EQ(sync_path, paths[0]); - quit_closure.Run(); - })); - run_loop.Run(); + TestFuture<drive::FileError, const std::vector<base::FilePath>&> + get_syncing_path_future; + drive_service->GetSyncingPaths(get_syncing_path_future.GetCallback()); + const base::FilePath my_files_path = + file_manager::util::GetMyFilesFolderForProfile(browser()->profile()); + EXPECT_EQ(get_syncing_path_future.Get<0>(), drive::FILE_ERROR_OK); + EXPECT_THAT(get_syncing_path_future.Get<1>(), + testing::ElementsAre(my_files_path, sync_path)); } {
diff --git a/chrome/browser/ash/file_manager/file_tasks_browsertest.cc b/chrome/browser/ash/file_manager/file_tasks_browsertest.cc index 2bedea1..21c97e3 100644 --- a/chrome/browser/ash/file_manager/file_tasks_browsertest.cc +++ b/chrome/browser/ash/file_manager/file_tasks_browsertest.cc
@@ -713,8 +713,8 @@ } IN_PROC_BROWSER_TEST_P(FileTasksBrowserTest, ExecuteWebApp) { - auto web_app_info = std::make_unique<web_app::WebAppInstallInfo>(); - web_app_info->start_url = GURL("https://www.example.com/"); + auto web_app_info = web_app::WebAppInstallInfo::CreateWithStartUrlForTesting( + GURL("https://www.example.com/")); web_app_info->scope = GURL("https://www.example.com/"); apps::FileHandler handler; handler.action = GURL("https://www.example.com/handle_file");
diff --git a/chrome/browser/ash/file_system_provider/cloud_file_system.cc b/chrome/browser/ash/file_system_provider/cloud_file_system.cc index 101fa04..54e6d2f 100644 --- a/chrome/browser/ash/file_system_provider/cloud_file_system.cc +++ b/chrome/browser/ash/file_system_provider/cloud_file_system.cc
@@ -558,6 +558,9 @@ file_handle, OpenedCloudFile(file_path, mode, GetVersionTag(metadata.get()), GetCloudSize(metadata.get()))); + } else if (result == base::File::FILE_ERROR_NOT_FOUND) { + // The file doesn't exist on the FSP, evict it from the cache. + content_cache_->Evict(file_path); } std::move(callback).Run(file_handle, result, std::move(metadata)); }
diff --git a/chrome/browser/ash/file_system_provider/cloud_file_system_unittest.cc b/chrome/browser/ash/file_system_provider/cloud_file_system_unittest.cc index 9950cffd..925527d 100644 --- a/chrome/browser/ash/file_system_provider/cloud_file_system_unittest.cc +++ b/chrome/browser/ash/file_system_provider/cloud_file_system_unittest.cc
@@ -491,5 +491,33 @@ base::File::FILE_ERROR_NOT_FOUND); } +TEST_F(FileSystemProviderCloudFileSystemTest, + NotFoundFromOpenFileEvictsCachedFile) { + // Underlying FakeProvidedFileSystem is (always) initialised with fake file + // with kFakeFilePath. + const base::FilePath fake_file_path(kFakeFilePath); + auto [mock_content_cache, cloud_file_system] = + CreateMockContentCacheAndCloudFileSystem(); + + // The file won't be evicted after the successful `OpenFile` request. + EXPECT_CALL(*mock_content_cache, Evict(fake_file_path)).Times(0); + OpenFileFuture open_file_future1; + cloud_file_system->OpenFile(fake_file_path, OPEN_FILE_MODE_READ, + open_file_future1.GetRepeatingCallback()); + EXPECT_EQ(open_file_future1.Get<base::File::Error>(), base::File::FILE_OK); + + // Remove the entry from the underlying FSP, this should result in a + // base::File::FILE_ERROR_NOT_FOUND on the `OpenFile` request. + DeleteEntryOnFakeFileSystem(fake_file_path); + + // The file will be evicted after the unsuccessful `OpenFile` request. + EXPECT_CALL(*mock_content_cache, Evict(fake_file_path)).Times(1); + OpenFileFuture open_file_future2; + cloud_file_system->OpenFile(fake_file_path, OPEN_FILE_MODE_READ, + open_file_future2.GetRepeatingCallback()); + EXPECT_EQ(open_file_future2.Get<base::File::Error>(), + base::File::FILE_ERROR_NOT_FOUND); +} + } // namespace } // namespace ash::file_system_provider
diff --git a/chrome/browser/ash/input_method/editor_context.cc b/chrome/browser/ash/input_method/editor_context.cc new file mode 100644 index 0000000..b3c6787 --- /dev/null +++ b/chrome/browser/ash/input_method/editor_context.cc
@@ -0,0 +1,76 @@ +// 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/input_method/editor_context.h" + +#include "ash/constants/app_types.h" +#include "chrome/browser/ash/input_method/text_field_contextual_info_fetcher.h" +#include "ui/base/ime/text_input_type.h" +#include "url/gurl.h" + +namespace ash::input_method { + +EditorContext::EditorContext(Observer* observer, std::string_view country_code) + : observer_(observer), active_country_code_(country_code) {} + +EditorContext::~EditorContext() = default; + +void EditorContext::OnInputContextUpdated( + const TextInputMethod::InputContext& input_context, + const TextFieldContextualInfo& text_field_contextual_info) { + input_type_ = input_context.type; + app_type_ = text_field_contextual_info.app_type; + active_url_ = text_field_contextual_info.tab_url; + app_id_ = text_field_contextual_info.app_key; + observer_->OnContextUpdated(); +} + +void EditorContext::OnActivateIme(std::string_view engine_id) { + active_engine_id_ = engine_id; + observer_->OnContextUpdated(); +} + +void EditorContext::OnTabletModeUpdated(bool is_enabled) { + tablet_mode_enabled_ = is_enabled; + observer_->OnContextUpdated(); +} + +void EditorContext::OnTextSelectionLengthChanged(size_t text_length) { + selected_text_length_ = text_length; + observer_->OnContextUpdated(); +} + +bool EditorContext::InTabletMode() { + return tablet_mode_enabled_; +} + +std::string_view EditorContext::active_country_code() { + return active_country_code_; +} + +std::string_view EditorContext::active_engine_id() { + return active_engine_id_; +} + +ui::TextInputType EditorContext::input_type() { + return input_type_; +} + +ash::AppType EditorContext::app_type() { + return app_type_; +} + +std::string_view EditorContext::app_id() { + return app_id_; +} + +GURL EditorContext::active_url() { + return active_url_; +} + +size_t EditorContext::selected_text_length() { + return selected_text_length_; +} + +} // namespace ash::input_method
diff --git a/chrome/browser/ash/input_method/editor_context.h b/chrome/browser/ash/input_method/editor_context.h new file mode 100644 index 0000000..86ae1f5 --- /dev/null +++ b/chrome/browser/ash/input_method/editor_context.h
@@ -0,0 +1,68 @@ +// 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_ASH_INPUT_METHOD_EDITOR_CONTEXT_H_ +#define CHROME_BROWSER_ASH_INPUT_METHOD_EDITOR_CONTEXT_H_ + +#include "ash/constants/app_types.h" +#include "chrome/browser/ash/input_method/text_field_contextual_info_fetcher.h" +#include "ui/base/ime/ash/text_input_method.h" +#include "ui/base/ime/text_input_type.h" +#include "url/gurl.h" + +namespace ash::input_method { + +// Holds any "interesting" context for the Editor feature. This includes; the +// currently active input method, size of the currently selected text, among +// other tidbits. +class EditorContext { + public: + class Observer { + public: + virtual ~Observer() = default; + + virtual void OnContextUpdated() = 0; + }; + + EditorContext(Observer* observer, std::string_view country_code); + ~EditorContext(); + + void OnInputContextUpdated( + const TextInputMethod::InputContext& input_context, + const TextFieldContextualInfo& text_field_contextual_info); + + void OnActivateIme(std::string_view engine_id); + + void OnTabletModeUpdated(bool tablet_mode_enabled); + + void OnTextSelectionLengthChanged(size_t new_length); + + bool InTabletMode(); + + // Getters + std::string_view active_country_code(); + std::string_view active_engine_id(); + ui::TextInputType input_type(); + ash::AppType app_type(); + std::string_view app_id(); + GURL active_url(); + size_t selected_text_length(); + + private: + // Not owned by this class + raw_ptr<Observer> observer_; + + std::string active_country_code_; + std::string active_engine_id_; + ui::TextInputType input_type_ = ui::TEXT_INPUT_TYPE_NONE; + ash::AppType app_type_ = ash::AppType::NON_APP; + std::string app_id_; + GURL active_url_; + bool tablet_mode_enabled_ = false; + size_t selected_text_length_ = 0; +}; + +} // namespace ash::input_method + +#endif // CHROME_BROWSER_ASH_INPUT_METHOD_EDITOR_CONTEXT_H_
diff --git a/chrome/browser/ash/input_method/editor_helpers.cc b/chrome/browser/ash/input_method/editor_helpers.cc index 92caf81..dbc7c8bc 100644 --- a/chrome/browser/ash/input_method/editor_helpers.cc +++ b/chrome/browser/ash/input_method/editor_helpers.cc
@@ -5,6 +5,7 @@ #include <string> #include "base/containers/fixed_flat_set.h" +#include "chrome/browser/browser_process.h" #include "ui/gfx/range/range.h" namespace ash::input_method { @@ -32,4 +33,10 @@ return end - start; } +std::string GetSystemLocale() { + return g_browser_process != nullptr + ? g_browser_process->GetApplicationLocale() + : ""; +} + } // namespace ash::input_method
diff --git a/chrome/browser/ash/input_method/editor_helpers.h b/chrome/browser/ash/input_method/editor_helpers.h index 648f8fde..d23ebfc1 100644 --- a/chrome/browser/ash/input_method/editor_helpers.h +++ b/chrome/browser/ash/input_method/editor_helpers.h
@@ -13,6 +13,8 @@ size_t NonWhitespaceAndSymbolsLength(const std::u16string& text, gfx::Range selection_range); +std::string GetSystemLocale(); + } // namespace ash::input_method #endif // CHROME_BROWSER_ASH_INPUT_METHOD_EDITOR_HELPERS_H_
diff --git a/chrome/browser/ash/input_method/editor_mediator.cc b/chrome/browser/ash/input_method/editor_mediator.cc index 2e84207..37f1da09 100644 --- a/chrome/browser/ash/input_method/editor_mediator.cc +++ b/chrome/browser/ash/input_method/editor_mediator.cc
@@ -30,14 +30,15 @@ EditorMediator::EditorMediator(Profile* profile, std::string_view country_code) : profile_(profile), panel_manager_(this), + editor_context_(this, country_code), editor_switch_( - std::make_unique<EditorSwitch>(this, profile, country_code)), + std::make_unique<EditorSwitch>(this, profile, &editor_context_)), metrics_recorder_( std::make_unique<EditorMetricsRecorder>(GetEditorOpportunityMode())), consent_store_( std::make_unique<EditorConsentStore>(profile->GetPrefs(), metrics_recorder_.get())) { - editor_switch_->OnTabletModeUpdated( + editor_context_.OnTabletModeUpdated( display::Screen::GetScreen()->InTabletMode()); } @@ -94,6 +95,10 @@ panel_manager_.BindReceiver(std::move(pending_receiver)); } +void EditorMediator::OnContextUpdated() { + editor_switch_->OnContextUpdated(); +} + void EditorMediator::OnFocus(int context_id) { if (mako_bubble_coordinator_.IsShowingUI() || panel_manager_.IsEditorMenuVisible()) { @@ -120,16 +125,16 @@ } void EditorMediator::OnActivateIme(std::string_view engine_id) { - editor_switch_->OnActivateIme(engine_id); + editor_context_.OnActivateIme(engine_id); } void EditorMediator::OnDisplayTabletStateChanged(display::TabletState state) { switch (state) { case display::TabletState::kInClamshellMode: - editor_switch_->OnTabletModeUpdated(/*tablet_mode_enabled=*/false); + editor_context_.OnTabletModeUpdated(/*tablet_mode_enabled=*/false); break; case display::TabletState::kEnteringTabletMode: - editor_switch_->OnTabletModeUpdated(/*tablet_mode_enabled=*/true); + editor_context_.OnTabletModeUpdated(/*tablet_mode_enabled=*/true); if (mako_bubble_coordinator_.IsShowingUI()) { mako_bubble_coordinator_.CloseUI(); } @@ -209,7 +214,7 @@ size_t selected_length = NonWhitespaceAndSymbolsLength( surrounding_text_.text, surrounding_text_.selection_range); - editor_switch_->OnTextSelectionLengthChanged(selected_length); + editor_context_.OnTextSelectionLengthChanged(selected_length); if (editor_event_proxy_ != nullptr) { editor_event_proxy_->OnSurroundingTextChanged( @@ -225,7 +230,7 @@ void EditorMediator::OnTextFieldContextualInfoChanged( const TextFieldContextualInfo& info) { - editor_switch_->OnInputContextUpdated( + editor_context_.OnInputContextUpdated( IMEBridge::Get()->GetCurrentInputContext(), info); if (system_actuator_ != nullptr) {
diff --git a/chrome/browser/ash/input_method/editor_mediator.h b/chrome/browser/ash/input_method/editor_mediator.h index ebfef583..f0841c1 100644 --- a/chrome/browser/ash/input_method/editor_mediator.h +++ b/chrome/browser/ash/input_method/editor_mediator.h
@@ -36,9 +36,10 @@ // This includes all current (and future) trigger points, providing the required // plumbing to broker mojo connections from WebUIs and other clients, and // providing an overall unified interface for the backend of the project. -class EditorMediator : public EditorEventSink, +class EditorMediator : public EditorContext::Observer, + public EditorEventSink, public EditorPanelManager::Delegate, - public EditorSwitch::Delegate, + public EditorSwitch::Observer, public EditorSystemActuator::System, public display::DisplayObserver, public KeyedService { @@ -57,6 +58,9 @@ mojo::PendingReceiver<crosapi::mojom::EditorPanelManager> pending_receiver); + // EditorContext::Observer + void OnContextUpdated() override; + // EditorEventSink overrides void OnFocus(int context_id) override; void OnBlur() override; @@ -91,7 +95,7 @@ void CloseUI() override; size_t GetSelectedTextLength() override; - // EditorSwitch::Delegate overrides + // EditorSwitch::Observer overrides void OnEditorModeChanged(const EditorMode& mode) override; // KeyedService overrides @@ -130,6 +134,7 @@ EditorPanelManager panel_manager_; MakoBubbleCoordinator mako_bubble_coordinator_; + EditorContext editor_context_; std::unique_ptr<EditorSwitch> editor_switch_; std::unique_ptr<EditorMetricsRecorder> metrics_recorder_;
diff --git a/chrome/browser/ash/input_method/editor_switch.cc b/chrome/browser/ash/input_method/editor_switch.cc index 7d7fd00..2376e2b 100644 --- a/chrome/browser/ash/input_method/editor_switch.cc +++ b/chrome/browser/ash/input_method/editor_switch.cc
@@ -11,6 +11,7 @@ #include "chrome/browser/ash/file_manager/app_id.h" #include "chrome/browser/ash/input_method/editor_consent_enums.h" #include "chrome/browser/ash/input_method/editor_identity_utils.h" +#include "chrome/browser/ash/input_method/input_methods_by_language.h" #include "chrome/browser/ash/input_method/url_utils.h" #include "chrome/browser/ash/login/demo_mode/demo_session.h" #include "chrome/browser/ash/profiles/profile_helper.h" @@ -100,59 +101,6 @@ return combined; } -const std::vector<std::string>& EnglishInputMethods() { - static const base::NoDestructor<std::vector<std::string>> input_methods({ - "xkb:ca:eng:eng", // Canada - "xkb:gb::eng", // UK - "xkb:gb:extd:eng", // UK Extended - "xkb:gb:dvorak:eng", // UK Dvorak - "xkb:in::eng", // India - "xkb:pk::eng", // Pakistan - "xkb:us:altgr-intl:eng", // US Extended - "xkb:us:colemak:eng", // US Colemak - "xkb:us:dvorak:eng", // US Dvorak - "xkb:us:dvp:eng", // US Programmer Dvorak - "xkb:us:intl_pc:eng", // US Intl (PC) - "xkb:us:intl:eng", // US Intl - "xkb:us:workman-intl:eng", // US Workman Intl - "xkb:us:workman:eng", // US Workman - "xkb:us::eng", // US - "xkb:za:gb:eng" // South Africa - }); - return *input_methods; -} - -const std::vector<std::string>& FrenchInputMethods() { - static const base::NoDestructor<std::vector<std::string>> input_methods({ - "xkb:be::fra", // French (Belgium) - "xkb:ca::fra", // French (Canada) - "xkb:ca:multix:fra", // French (Canada) with multilingual keyboard - "xkb:fr::fra", // French (France) - "xkb:fr:bepo:fra", // French (France) with bepo keyboard - "xkb:ch:fr:fra", // French (Switzerland) - }); - return *input_methods; -} - -const std::vector<std::string>& GermanInputMethods() { - static const base::NoDestructor<std::vector<std::string>> input_methods({ - "xkb:be::ger", // German (Belgium) - "xkb:de::ger", // German (Germany) - "xkb:de:neo:ger", // German (Germany) with neo keyboard - "xkb:ch::ger", // German (Switzerland) - }); - return *input_methods; -} - -const std::vector<std::string>& JapaneseInputMethods() { - static const base::NoDestructor<std::vector<std::string>> input_methods({ - "xkb:jp::jpn", // Alphanumeric with Japanese keyboard - "nacl_mozc_us", // Japanese with US keyboard - "nacl_mozc_jp", // Japanese - }); - return *input_methods; -} - const std::vector<std::string>& AllowedInputMethods() { static const base::NoDestructor<std::vector<std::string>> input_methods( base::FeatureList::IsEnabled(features::kOrcaInternationalize) @@ -308,13 +256,14 @@ g_browser_process->GetApplicationLocale()) == "en"; } -EditorSwitch::EditorSwitch(Delegate* delegate, +EditorSwitch::EditorSwitch(Observer* observer, Profile* profile, - std::string_view country_code) - : delegate_(delegate), + EditorContext* context) + : observer_(observer), profile_(profile), - country_code_(country_code), - ime_allowlist_(GetAllowedInputMethodEngines()) {} + context_(context), + ime_allowlist_(GetAllowedInputMethodEngines()), + last_known_editor_mode_(GetEditorMode()) {} EditorSwitch::~EditorSwitch() = default; @@ -333,14 +282,16 @@ return base::FeatureList::IsEnabled(ash::features::kOrcaSupportDemoMode) && ash::DemoSession::IsDeviceInDemoMode() - ? IsAllowedForUseInDemoMode(country_code_) - : IsAllowedForUseInNonDemoMode(profile_, country_code_); + ? IsAllowedForUseInDemoMode(context_->active_country_code()) + : IsAllowedForUseInNonDemoMode(profile_, + context_->active_country_code()); } EditorOpportunityMode EditorSwitch::GetEditorOpportunityMode() const { - if (IsAllowedForUse() && IsInputTypeAllowed(input_type_)) { - return text_length_ > 0 ? EditorOpportunityMode::kRewrite - : EditorOpportunityMode::kWrite; + if (IsAllowedForUse() && IsInputTypeAllowed(context_->input_type())) { + return context_->selected_text_length() > 0 + ? EditorOpportunityMode::kRewrite + : EditorOpportunityMode::kWrite; } return EditorOpportunityMode::kNone; } @@ -349,7 +300,7 @@ std::vector<EditorBlockedReason> blocked_reasons; if (base::FeatureList::IsEnabled(chromeos::features::kOrca)) { - if (!IsCountryAllowed(country_code_)) { + if (!IsCountryAllowed(context_->active_country_code())) { blocked_reasons.push_back( EditorBlockedReason::kBlockedByUnsupportedRegion); } @@ -384,31 +335,32 @@ blocked_reasons.push_back(EditorBlockedReason::kBlockedBySetting); } - if (!IsTriggerableFromTextLength(text_length_)) { + if (!IsTriggerableFromTextLength(context_->selected_text_length())) { blocked_reasons.push_back(EditorBlockedReason::kBlockedByTextLength); } - if (!IsUrlAllowed(profile_, url_)) { + if (!IsUrlAllowed(profile_, context_->active_url())) { blocked_reasons.push_back(EditorBlockedReason::kBlockedByUrl); } - if (!IsAppAllowed(profile_, app_id_)) { + if (!IsAppAllowed(profile_, context_->app_id())) { blocked_reasons.push_back(EditorBlockedReason::kBlockedByApp); } - if (!IsAppTypeAllowed(app_type_)) { + if (!IsAppTypeAllowed(context_->app_type())) { blocked_reasons.push_back(EditorBlockedReason::kBlockedByAppType); } - if (!IsInputMethodEngineAllowed(ime_allowlist_, active_engine_id_)) { + if (!IsInputMethodEngineAllowed(ime_allowlist_, + context_->active_engine_id())) { blocked_reasons.push_back(EditorBlockedReason::kBlockedByInputMethod); } - if (!IsInputTypeAllowed(input_type_)) { + if (!IsInputTypeAllowed(context_->input_type())) { blocked_reasons.push_back(EditorBlockedReason::kBlockedByInputType); } - if (tablet_mode_enabled_) { + if (context_->InTabletMode()) { blocked_reasons.push_back(EditorBlockedReason::kBlockedByInvalidFormFactor); } @@ -428,14 +380,18 @@ profile_->GetPrefs()->GetInteger(prefs::kOrcaConsentStatus)); return IsAllowedForUse() && - IsInputMethodEngineAllowed(ime_allowlist_, active_engine_id_) && - IsInputTypeAllowed(input_type_) && IsAppTypeAllowed(app_type_) && + IsInputMethodEngineAllowed(ime_allowlist_, + context_->active_engine_id()) && + IsInputTypeAllowed(context_->input_type()) && + IsAppTypeAllowed(context_->app_type()) && IsTriggerableFromConsentStatus(current_consent_status) && - IsUrlAllowed(profile_, url_) && IsAppAllowed(profile_, app_id_) && - !net::NetworkChangeNotifier::IsOffline() && !tablet_mode_enabled_ && + IsUrlAllowed(profile_, context_->active_url()) && + IsAppAllowed(profile_, context_->app_id()) && + !net::NetworkChangeNotifier::IsOffline() && + !context_->InTabletMode() && // user pref value profile_->GetPrefs()->GetBoolean(prefs::kOrcaEnabled) && - text_length_ <= kTextLengthMaxLimit && + context_->selected_text_length() <= kTextLengthMaxLimit && (!base::FeatureList::IsEnabled(features::kOrcaOnlyInEnglishLocales) || IsSystemInEnglishLanguage()); } @@ -451,47 +407,19 @@ if (current_consent_status == ConsentStatus::kPending || current_consent_status == ConsentStatus::kUnset) { return EditorMode::kConsentNeeded; - } else if (text_length_ > 0) { + } else if (context_->selected_text_length() > 0) { return EditorMode::kRewrite; } else { return EditorMode::kWrite; } } -void EditorSwitch::OnInputContextUpdated( - const TextInputMethod::InputContext& input_context, - const TextFieldContextualInfo& text_field_contextual_info) { - EditorMode prev_mode = GetEditorMode(); - input_type_ = input_context.type; - app_type_ = text_field_contextual_info.app_type; - url_ = text_field_contextual_info.tab_url; - app_id_ = text_field_contextual_info.app_key; - MaybeNotifyEditorModeChanged(prev_mode); -} - -void EditorSwitch::OnActivateIme(std::string_view engine_id) { - EditorMode prev_mode = GetEditorMode(); - active_engine_id_ = engine_id; - MaybeNotifyEditorModeChanged(prev_mode); -} - -void EditorSwitch::OnTabletModeUpdated(bool is_enabled) { - EditorMode prev_mode = GetEditorMode(); - tablet_mode_enabled_ = is_enabled; - MaybeNotifyEditorModeChanged(prev_mode); -} - -void EditorSwitch::OnTextSelectionLengthChanged(size_t text_length) { - EditorMode prev_mode = GetEditorMode(); - text_length_ = text_length; - MaybeNotifyEditorModeChanged(prev_mode); -} - -void EditorSwitch::MaybeNotifyEditorModeChanged(const EditorMode& prev_mode) { - EditorMode new_mode = GetEditorMode(); - if (prev_mode != new_mode) { - delegate_->OnEditorModeChanged(new_mode); +void EditorSwitch::OnContextUpdated() { + EditorMode current_mode = GetEditorMode(); + if (current_mode != last_known_editor_mode_) { + observer_->OnEditorModeChanged(current_mode); } + last_known_editor_mode_ = current_mode; } } // namespace ash::input_method
diff --git a/chrome/browser/ash/input_method/editor_switch.h b/chrome/browser/ash/input_method/editor_switch.h index f920202..c19436f 100644 --- a/chrome/browser/ash/input_method/editor_switch.h +++ b/chrome/browser/ash/input_method/editor_switch.h
@@ -8,7 +8,7 @@ #include "ash/constants/app_types.h" #include "chrome/browser/ash/input_method/editor_consent_enums.h" #include "chrome/browser/ash/input_method/editor_consent_store.h" -#include "chrome/browser/ash/input_method/text_field_contextual_info_fetcher.h" +#include "chrome/browser/ash/input_method/editor_context.h" #include "chrome/browser/profiles/profile.h" #include "ui/base/ime/ash/text_input_method.h" @@ -19,16 +19,12 @@ // should be popped up given a particular input context. class EditorSwitch { public: - class Delegate { + class Observer { public: virtual void OnEditorModeChanged(const EditorMode& mode) = 0; }; - // country_code in the lowercase ISO 3166-1 alpha-2 format to determine - // the country where the device is situated. - EditorSwitch(Delegate* delegate, - Profile* profile, - std::string_view country_code); + EditorSwitch(Observer* observer, Profile* profile, EditorContext* context); EditorSwitch(const EditorSwitch&) = delete; EditorSwitch& operator=(const EditorSwitch&) = delete; ~EditorSwitch(); @@ -36,43 +32,27 @@ // Determines if the feature trace is ever allowed to be visible. bool IsAllowedForUse() const; - // Handles the change in input context. - void OnInputContextUpdated( - const TextInputMethod::InputContext& input_context, - const TextFieldContextualInfo& text_field_contextual_info); - - void OnActivateIme(std::string_view engine_id); - - void OnTabletModeUpdated(bool tablet_mode_enabled); - - void OnTextSelectionLengthChanged(size_t new_length); - EditorMode GetEditorMode() const; EditorOpportunityMode GetEditorOpportunityMode() const; std::vector<EditorBlockedReason> GetBlockedReasons() const; + void OnContextUpdated(); + private: // Determines if the feature can be triggered from an input context. If it is // not allowed for use, then returns false. bool CanBeTriggered() const; - void MaybeNotifyEditorModeChanged(const EditorMode& prev_mode); - - raw_ptr<Delegate> delegate_; + raw_ptr<Observer> observer_; raw_ptr<Profile> profile_; - - std::string country_code_; - std::string active_engine_id_; - ui::TextInputType input_type_ = ui::TEXT_INPUT_TYPE_NONE; - ash::AppType app_type_ = ash::AppType::NON_APP; - std::string app_id_; - GURL url_; - bool tablet_mode_enabled_ = false; - size_t text_length_ = 0; + raw_ptr<EditorContext> context_; const std::vector<std::string> ime_allowlist_; + + // Used to determine when Observer::OnEditorModeChanged should be called. + EditorMode last_known_editor_mode_; }; } // namespace ash::input_method
diff --git a/chrome/browser/ash/input_method/editor_switch_unittest.cc b/chrome/browser/ash/input_method/editor_switch_unittest.cc index baabb5ea..ef0af89 100644 --- a/chrome/browser/ash/input_method/editor_switch_unittest.cc +++ b/chrome/browser/ash/input_method/editor_switch_unittest.cc
@@ -11,6 +11,7 @@ #include "base/test/scoped_feature_list.h" #include "base/types/cxx23_to_underlying.h" #include "chrome/browser/ash/input_method/editor_consent_enums.h" +#include "chrome/browser/ash/input_method/editor_context.h" #include "chrome/browser/ash/input_method/editor_identity_utils.h" #include "chrome/browser/policy/profile_policy_connector.h" #include "chrome/browser/signin/identity_manager_factory.h" @@ -39,9 +40,15 @@ const char kAllowedTestUrl[] = "https://allowed.testurl.com/allowed/path"; -class FakeEditorSwitchDelegate : public EditorSwitch::Delegate { +class FakeEditorContextObserver : public EditorContext::Observer { public: - // EditorSwitch::Delegate overrides + // EditorContext::Observer overrides + void OnContextUpdated() override {} +}; + +class FakeEditorSwitchObserver : public EditorSwitch::Observer { + public: + // EditorSwitch::Observer overrides void OnEditorModeChanged(const EditorMode& mode) override {} }; @@ -165,13 +172,15 @@ feature_list.InitWithFeatures(/*enabled_features=*/test_case.enabled_flags, /*disabled_features=*/test_case.disabled_flags); - TestingProfile profile_; - profile_.GetProfilePolicyConnector()->OverrideIsManagedForTesting( + TestingProfile profile; + profile.GetProfilePolicyConnector()->OverrideIsManagedForTesting( test_case.is_managed); - FakeEditorSwitchDelegate delegate; - EditorSwitch editor_switch(/*delegate=*/&delegate, - /*profile=*/&profile_, - /*country_code=*/test_case.country_code); + FakeEditorContextObserver context_observer; + FakeEditorSwitchObserver switch_observer; + EditorContext context(&context_observer, test_case.country_code); + EditorSwitch editor_switch(/*observer=*/&switch_observer, + /*profile=*/&profile, + /*context=*/&context); EXPECT_EQ(editor_switch.IsAllowedForUse(), test_case.expected_availability); } @@ -509,10 +518,12 @@ std::unique_ptr<TestingProfile> profile = CreateTestingProfile(test_case.email); - FakeEditorSwitchDelegate delegate; - EditorSwitch editor_switch(/*delegate=*/&delegate, + FakeEditorContextObserver context_observer; + FakeEditorSwitchObserver switch_observer; + EditorContext context(&context_observer, kAllowedTestCountry); + EditorSwitch editor_switch(/*observer=*/&switch_observer, /*profile=*/profile.get(), - /*country_code=*/kAllowedTestCountry); + /*context=*/&context); auto mock_notifier = net::test::MockNetworkChangeNotifier::Create(); profile->GetProfilePolicyConnector()->OverrideIsManagedForTesting(false); @@ -522,13 +533,13 @@ profile->GetPrefs()->SetBoolean(prefs::kOrcaEnabled, test_case.user_pref); profile->GetPrefs()->SetInteger( prefs::kOrcaConsentStatus, base::to_underlying(test_case.consent_status)); - editor_switch.OnTabletModeUpdated(test_case.is_in_tablet_mode); - editor_switch.OnActivateIme(test_case.active_engine_id); - editor_switch.OnInputContextUpdated( + context.OnTabletModeUpdated(test_case.is_in_tablet_mode); + context.OnActivateIme(test_case.active_engine_id); + context.OnInputContextUpdated( TextInputMethod::InputContext(test_case.input_type), CreateFakeTextFieldContextualInfo(test_case.app_type, test_case.url, test_case.app_id)); - editor_switch.OnTextSelectionLengthChanged(test_case.num_chars_selected); + context.OnTextSelectionLengthChanged(test_case.num_chars_selected); ASSERT_TRUE(editor_switch.IsAllowedForUse()); EXPECT_EQ(editor_switch.GetEditorMode(), test_case.expected_editor_mode); @@ -599,10 +610,12 @@ std::unique_ptr<TestingProfile> profile = CreateTestingProfile("testuser@gmail.com"); - FakeEditorSwitchDelegate delegate; - EditorSwitch editor_switch(/*delegate=*/&delegate, + FakeEditorContextObserver context_observer; + FakeEditorSwitchObserver switch_observer; + EditorContext context(&context_observer, kAllowedTestCountry); + EditorSwitch editor_switch(/*observer=*/&switch_observer, /*profile=*/profile.get(), - /*country_code=*/kAllowedTestCountry); + /*context=*/&context); auto mock_notifier = net::test::MockNetworkChangeNotifier::Create(); profile->GetProfilePolicyConnector()->OverrideIsManagedForTesting(false); @@ -611,12 +624,12 @@ profile->GetPrefs()->SetBoolean(prefs::kOrcaEnabled, true); profile->GetPrefs()->SetInteger( prefs::kOrcaConsentStatus, base::to_underlying(ConsentStatus::kApproved)); - editor_switch.OnTabletModeUpdated(false); - editor_switch.OnActivateIme(engine_id); - editor_switch.OnInputContextUpdated( + context.OnTabletModeUpdated(false); + context.OnActivateIme(engine_id); + context.OnInputContextUpdated( TextInputMethod::InputContext(ui::TEXT_INPUT_TYPE_TEXT), CreateFakeTextFieldContextualInfo(AppType::BROWSER, kAllowedTestUrl, "")); - editor_switch.OnTextSelectionLengthChanged(0); + context.OnTextSelectionLengthChanged(0); EXPECT_TRUE(editor_switch.IsAllowedForUse()); EXPECT_EQ(editor_switch.GetEditorMode(), expected_mode); @@ -682,10 +695,12 @@ std::unique_ptr<TestingProfile> profile = CreateTestingProfile("testuser@gmail.com"); - FakeEditorSwitchDelegate delegate; - EditorSwitch editor_switch(/*delegate=*/&delegate, + FakeEditorContextObserver context_observer; + FakeEditorSwitchObserver switch_observer; + EditorContext context(&context_observer, kAllowedTestCountry); + EditorSwitch editor_switch(/*observer=*/&switch_observer, /*profile=*/profile.get(), - /*country_code=*/kAllowedTestCountry); + /*context=*/&context); auto mock_notifier = net::test::MockNetworkChangeNotifier::Create(); profile->GetProfilePolicyConnector()->OverrideIsManagedForTesting(false); @@ -694,12 +709,12 @@ profile->GetPrefs()->SetBoolean(prefs::kOrcaEnabled, true); profile->GetPrefs()->SetInteger( prefs::kOrcaConsentStatus, base::to_underlying(ConsentStatus::kApproved)); - editor_switch.OnTabletModeUpdated(false); - editor_switch.OnActivateIme(engine_id); - editor_switch.OnInputContextUpdated( + context.OnTabletModeUpdated(false); + context.OnActivateIme(engine_id); + context.OnInputContextUpdated( TextInputMethod::InputContext(ui::TEXT_INPUT_TYPE_TEXT), CreateFakeTextFieldContextualInfo(AppType::BROWSER, kAllowedTestUrl, "")); - editor_switch.OnTextSelectionLengthChanged(0); + context.OnTextSelectionLengthChanged(0); EXPECT_TRUE(editor_switch.IsAllowedForUse()); EXPECT_EQ(editor_switch.GetEditorMode(), expected_mode);
diff --git a/chrome/browser/ash/input_method/editor_text_query_provider.cc b/chrome/browser/ash/input_method/editor_text_query_provider.cc index f3ecfb18..d268025 100644 --- a/chrome/browser/ash/input_method/editor_text_query_provider.cc +++ b/chrome/browser/ash/input_method/editor_text_query_provider.cc
@@ -11,6 +11,7 @@ #include "base/notreached.h" #include "base/strings/strcat.h" #include "base/values.h" +#include "chrome/browser/ash/input_method/editor_helpers.h" #include "chrome/browser/ash/input_method/editor_metrics_recorder.h" #include "chrome/browser/manta/manta_service_factory.h" #include "chromeos/ash/services/orca/public/mojom/orca_service.mojom.h" @@ -89,8 +90,12 @@ } orca::mojom::TextQueryErrorPtr ConvertErrorResponse(manta::MantaStatus status) { - return orca::mojom::TextQueryError::New(ConvertErrorCode(status.status_code), - status.message); + // In case the system locale mismatches the locale returned in the response, + // returns a generic error. + + return orca::mojom::TextQueryError::New( + ConvertErrorCode(status.status_code), + /*message=*/GetSystemLocale() == status.locale ? status.message : ""); } std::vector<orca::mojom::TextQueryResultPtr> ParseSuccessResponse(
diff --git a/chrome/browser/ash/input_method/input_methods_by_language.cc b/chrome/browser/ash/input_method/input_methods_by_language.cc new file mode 100644 index 0000000..60bf1c46 --- /dev/null +++ b/chrome/browser/ash/input_method/input_methods_by_language.cc
@@ -0,0 +1,86 @@ +// 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/input_method/input_methods_by_language.h" + +#include <algorithm> +#include <string> +#include <vector> + +#include "base/containers/contains.h" +#include "base/no_destructor.h" + +namespace ash::input_method { + +const std::vector<std::string>& EnglishInputMethods() { + static const base::NoDestructor<std::vector<std::string>> input_methods({ + "xkb:ca:eng:eng", // Canada + "xkb:gb::eng", // UK + "xkb:gb:extd:eng", // UK Extended + "xkb:gb:dvorak:eng", // UK Dvorak + "xkb:in::eng", // India + "xkb:pk::eng", // Pakistan + "xkb:us:altgr-intl:eng", // US Extended + "xkb:us:colemak:eng", // US Colemak + "xkb:us:dvorak:eng", // US Dvorak + "xkb:us:dvp:eng", // US Programmer Dvorak + "xkb:us:intl_pc:eng", // US Intl (PC) + "xkb:us:intl:eng", // US Intl + "xkb:us:workman-intl:eng", // US Workman Intl + "xkb:us:workman:eng", // US Workman + "xkb:us::eng", // US + "xkb:za:gb:eng" // South Africa + }); + return *input_methods; +} + +const std::vector<std::string>& FrenchInputMethods() { + static const base::NoDestructor<std::vector<std::string>> input_methods({ + "xkb:be::fra", // French (Belgium) + "xkb:ca::fra", // French (Canada) + "xkb:ca:multix:fra", // French (Canada) with multilingual keyboard + "xkb:fr::fra", // French (France) + "xkb:fr:bepo:fra", // French (France) with bepo keyboard + "xkb:ch:fr:fra", // French (Switzerland) + }); + return *input_methods; +} + +const std::vector<std::string>& GermanInputMethods() { + static const base::NoDestructor<std::vector<std::string>> input_methods({ + "xkb:be::ger", // German (Belgium) + "xkb:de::ger", // German (Germany) + "xkb:de:neo:ger", // German (Germany) with neo keyboard + "xkb:ch::ger", // German (Switzerland) + }); + return *input_methods; +} + +const std::vector<std::string>& JapaneseInputMethods() { + static const base::NoDestructor<std::vector<std::string>> input_methods({ + "xkb:jp::jpn", // Alphanumeric with Japanese keyboard + "nacl_mozc_us", // Japanese with US keyboard + "nacl_mozc_jp", // Japanese + }); + return *input_methods; +} + +LanguageCategory InputMethodToLanguageCategory( + const std::string& input_method) { + if (base::Contains(EnglishInputMethods(), input_method)) { + return LanguageCategory::kEnglish; + } + if (base::Contains(FrenchInputMethods(), input_method)) { + return LanguageCategory::kFrench; + } + if (base::Contains(GermanInputMethods(), input_method)) { + return LanguageCategory::kGerman; + } + if (base::Contains(JapaneseInputMethods(), input_method)) { + return LanguageCategory::kJapanese; + } + return LanguageCategory::kOther; +} + +} // namespace ash::input_method
diff --git a/chrome/browser/ash/input_method/input_methods_by_language.h b/chrome/browser/ash/input_method/input_methods_by_language.h new file mode 100644 index 0000000..287d239 --- /dev/null +++ b/chrome/browser/ash/input_method/input_methods_by_language.h
@@ -0,0 +1,33 @@ +// 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_ASH_INPUT_METHOD_INPUT_METHODS_BY_LANGUAGE_H_ +#define CHROME_BROWSER_ASH_INPUT_METHOD_INPUT_METHODS_BY_LANGUAGE_H_ + +#include <string> +#include <vector> + +namespace ash::input_method { + +enum LanguageCategory { + kEnglish, + kFrench, + kGerman, + kJapanese, + kOther, +}; + +const std::vector<std::string>& EnglishInputMethods(); + +const std::vector<std::string>& FrenchInputMethods(); + +const std::vector<std::string>& GermanInputMethods(); + +const std::vector<std::string>& JapaneseInputMethods(); + +LanguageCategory InputMethodToLanguageCategory(const std::string& input_method); + +} // namespace ash::input_method + +#endif // CHROME_BROWSER_ASH_INPUT_METHOD_INPUT_METHODS_BY_LANGUAGE_H_
diff --git a/chrome/browser/ash/input_method/input_methods_by_language_unittest.cc b/chrome/browser/ash/input_method/input_methods_by_language_unittest.cc new file mode 100644 index 0000000..fde030e --- /dev/null +++ b/chrome/browser/ash/input_method/input_methods_by_language_unittest.cc
@@ -0,0 +1,69 @@ +// 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/input_method/input_methods_by_language.h" + +#include <utility> + +#include "testing/gmock/include/gmock/gmock.h" +#include "testing/gtest/include/gtest/gtest.h" + +namespace ash::input_method { +namespace { + +using ::testing::TestWithParam; + +using LanguageCategoryTestCase = std::pair<std::string, LanguageCategory>; +using MapToLanguageCategoryTest = TestWithParam<LanguageCategoryTestCase>; + +INSTANTIATE_TEST_SUITE_P( + InputMethodsByLanguage, + MapToLanguageCategoryTest, + testing::ValuesIn<LanguageCategoryTestCase>({ + // English + {"xkb:ca:eng:eng", LanguageCategory::kEnglish}, + {"xkb:gb::eng", LanguageCategory::kEnglish}, + {"xkb:gb:extd:eng", LanguageCategory::kEnglish}, + {"xkb:gb:dvorak:eng", LanguageCategory::kEnglish}, + {"xkb:in::eng", LanguageCategory::kEnglish}, + {"xkb:pk::eng", LanguageCategory::kEnglish}, + {"xkb:us:altgr-intl:eng", LanguageCategory::kEnglish}, + {"xkb:us:colemak:eng", LanguageCategory::kEnglish}, + {"xkb:us:dvorak:eng", LanguageCategory::kEnglish}, + {"xkb:us:dvp:eng", LanguageCategory::kEnglish}, + {"xkb:us:intl_pc:eng", LanguageCategory::kEnglish}, + {"xkb:us:intl:eng", LanguageCategory::kEnglish}, + {"xkb:us:workman-intl:eng", LanguageCategory::kEnglish}, + {"xkb:us:workman:eng", LanguageCategory::kEnglish}, + {"xkb:us::eng", LanguageCategory::kEnglish}, + {"xkb:za:gb:eng", LanguageCategory::kEnglish}, + // French + {"xkb:be::fra", LanguageCategory::kFrench}, + {"xkb:ca::fra", LanguageCategory::kFrench}, + {"xkb:ca:multix:fra", LanguageCategory::kFrench}, + {"xkb:fr::fra", LanguageCategory::kFrench}, + {"xkb:fr:bepo:fra", LanguageCategory::kFrench}, + {"xkb:ch:fr:fra", LanguageCategory::kFrench}, + // German + {"xkb:be::ger", LanguageCategory::kGerman}, + {"xkb:de::ger", LanguageCategory::kGerman}, + {"xkb:de:neo:ger", LanguageCategory::kGerman}, + {"xkb:ch::ger", LanguageCategory::kGerman}, + // Japanese + {"xkb:jp::jpn", LanguageCategory::kJapanese}, + {"nacl_mozc_us", LanguageCategory::kJapanese}, + {"nacl_mozc_jp", LanguageCategory::kJapanese}, + // Dutch + {"xkb:be::nld", LanguageCategory::kOther}, + {"xkb:us:intl_pc:nld", LanguageCategory::kOther}, + {"xkb:us:intl:nld", LanguageCategory::kOther}, + })); + +TEST_P(MapToLanguageCategoryTest, IsCorrectCategory) { + const auto& [input_method, category] = GetParam(); + + EXPECT_EQ(InputMethodToLanguageCategory(input_method), category); +} +} // namespace +} // namespace ash::input_method
diff --git a/chrome/browser/ash/login/password_change_browsertest.cc b/chrome/browser/ash/login/password_change_browsertest.cc index d873cf3..f2606e39 100644 --- a/chrome/browser/ash/login/password_change_browsertest.cc +++ b/chrome/browser/ash/login/password_change_browsertest.cc
@@ -7,7 +7,6 @@ #include <string> #include <utility> -#include "ash/constants/ash_features.h" #include "ash/public/cpp/login_screen_test_api.h" #include "base/auto_reset.h" #include "base/files/file_path.h" @@ -73,11 +72,6 @@ using AuthOp = FakeUserDataAuthClient::Operation; -bool HasPasswordConfirmationPage() { - return !base::FeatureList::IsEnabled( - ash::features::kCryptohomeRecoveryBeforeFlowSplit); -} - } // namespace class PasswordChangeTestBase : public LoginManagerTest { @@ -182,11 +176,9 @@ test_user_info_.auth_config.online_password); test::PasswordChangedSubmitOldPassword(); - if (HasPasswordConfirmationPage()) { - test::CreatePasswordUpdateNoticePageWaiter()->Wait(); - test::PasswordUpdateNoticeExpectDone(); - test::PasswordUpdateNoticeDoneAction(); - } + test::CreatePasswordUpdateNoticePageWaiter()->Wait(); + test::PasswordUpdateNoticeExpectDone(); + test::PasswordUpdateNoticeDoneAction(); // User session should start, and whole OOBE screen is expected to be hidden. OobeWindowVisibilityWaiter(false).Wait(); @@ -213,11 +205,9 @@ nullptr, ui::VKEY_RETURN, false /* control */, false /* shift */, false /* alt */, false /* command */)); - if (HasPasswordConfirmationPage()) { - test::CreatePasswordUpdateNoticePageWaiter()->Wait(); - test::PasswordUpdateNoticeExpectDone(); - test::PasswordUpdateNoticeDoneAction(); - } + test::CreatePasswordUpdateNoticePageWaiter()->Wait(); + test::PasswordUpdateNoticeExpectDone(); + test::PasswordUpdateNoticeDoneAction(); // User session should start, and whole OOBE screen is expected to be hidden, OobeWindowVisibilityWaiter(false).Wait(); @@ -249,11 +239,9 @@ test_user_info_.auth_config.online_password); test::PasswordChangedSubmitOldPassword(); - if (HasPasswordConfirmationPage()) { - test::CreatePasswordUpdateNoticePageWaiter()->Wait(); - test::PasswordUpdateNoticeExpectDone(); - test::PasswordUpdateNoticeDoneAction(); - } + test::CreatePasswordUpdateNoticePageWaiter()->Wait(); + test::PasswordUpdateNoticeExpectDone(); + test::PasswordUpdateNoticeDoneAction(); // User session should start, and whole OOBE screen is expected to be hidden. OobeWindowVisibilityWaiter(false).Wait(); @@ -313,11 +301,9 @@ test_user_info_.auth_config.online_password); test::PasswordChangedSubmitOldPassword(); - if (HasPasswordConfirmationPage()) { - test::CreatePasswordUpdateNoticePageWaiter()->Wait(); - test::PasswordUpdateNoticeExpectDone(); - test::PasswordUpdateNoticeDoneAction(); - } + test::CreatePasswordUpdateNoticePageWaiter()->Wait(); + test::PasswordUpdateNoticeExpectDone(); + test::PasswordUpdateNoticeDoneAction(); // User session should start, and whole OOBE screen is expected to be hidden, OobeWindowVisibilityWaiter(false).Wait();
diff --git a/chrome/browser/ash/login/screens/gesture_navigation_screen.cc b/chrome/browser/ash/login/screens/gesture_navigation_screen.cc index 8111b5a..5af4f59 100644 --- a/chrome/browser/ash/login/screens/gesture_navigation_screen.cc +++ b/chrome/browser/ash/login/screens/gesture_navigation_screen.cc
@@ -18,19 +18,6 @@ #include "ui/display/screen.h" namespace ash { -namespace { - -constexpr const char kUserActionExitPressed[] = "exit"; -constexpr const char kUserActionSkip[] = "skip"; -constexpr const char kUserActionGesturePageChange[] = "gesture-page-change"; - -// The name used for each page on the gesture navigation screen. -constexpr const char kGestureIntroPage[] = "gestureIntro"; -constexpr const char kGestureHomePage[] = "gestureHome"; -constexpr const char kGestureOverviewPage[] = "gestureOverview"; -constexpr const char kGestureBackPage[] = "gestureBack"; - -} // namespace // static std::string GestureNavigationScreen::GetResultString(Result result) { @@ -51,6 +38,7 @@ const ScreenExitCallback& exit_callback) : BaseScreen(GestureNavigationScreenView::kScreenId, OobeScreenPriority::DEFAULT), + OobeMojoBinder(this), view_(std::move(view)), exit_callback_(exit_callback) { DCHECK(view_); @@ -58,12 +46,6 @@ GestureNavigationScreen::~GestureNavigationScreen() = default; -void GestureNavigationScreen::GesturePageChange(const std::string& new_page) { - page_times_[current_page_] += base::TimeTicks::Now() - start_time_; - start_time_ = base::TimeTicks::Now(); - current_page_ = new_page; -} - bool GestureNavigationScreen::MaybeSkip(WizardContext& context) { AccessibilityManager* accessibility_manager = AccessibilityManager::Get(); if (context.skip_post_login_screens_for_tests || @@ -91,7 +73,7 @@ void GestureNavigationScreen::ShowImpl() { // Begin keeping track of current page and start time for the page shown time // metrics. - current_page_ = kGestureIntroPage; + current_page_ = GesturePages::kIntro; start_time_ = base::TimeTicks::Now(); context()->is_gesture_navigation_screen_was_shown = true; if (view_) { @@ -101,37 +83,32 @@ void GestureNavigationScreen::HideImpl() {} -void GestureNavigationScreen::OnUserAction(const base::Value::List& args) { - const std::string& action_id = args[0].GetString(); - if (action_id == kUserActionExitPressed) { - RecordPageShownTimeMetrics(); - exit_callback_.Run(Result::NEXT); - return; - } - if (action_id == kUserActionSkip) { - exit_callback_.Run(Result::SKIP); - return; - } - if (action_id == kUserActionGesturePageChange) { - CHECK_EQ(args.size(), 2u); - const std::string& new_page = args[1].GetString(); - GesturePageChange(new_page); - return; - } - BaseScreen::OnUserAction(args); +void GestureNavigationScreen::OnPageChange(GesturePages new_page) { + page_times_[current_page_] += base::TimeTicks::Now() - start_time_; + start_time_ = base::TimeTicks::Now(); + current_page_ = new_page; +} + +void GestureNavigationScreen::OnSkipClicked() { + exit_callback_.Run(Result::SKIP); +} + +void GestureNavigationScreen::OnExitClicked() { + RecordPageShownTimeMetrics(); + exit_callback_.Run(Result::NEXT); } void GestureNavigationScreen::RecordPageShownTimeMetrics() { page_times_[current_page_] += base::TimeTicks::Now() - start_time_; UmaHistogramMediumTimes("OOBE.GestureNavigationScreen.PageShownTime.Intro", - page_times_[kGestureIntroPage]); + page_times_[GesturePages::kIntro]); UmaHistogramMediumTimes("OOBE.GestureNavigationScreen.PageShownTime.Home", - page_times_[kGestureHomePage]); + page_times_[GesturePages::kHome]); UmaHistogramMediumTimes("OOBE.GestureNavigationScreen.PageShownTime.Overview", - page_times_[kGestureOverviewPage]); + page_times_[GesturePages::kOverview]); UmaHistogramMediumTimes("OOBE.GestureNavigationScreen.PageShownTime.Back", - page_times_[kGestureBackPage]); + page_times_[GesturePages::kBack]); } } // namespace ash
diff --git a/chrome/browser/ash/login/screens/gesture_navigation_screen.h b/chrome/browser/ash/login/screens/gesture_navigation_screen.h index 50203d27..f354166 100644 --- a/chrome/browser/ash/login/screens/gesture_navigation_screen.h +++ b/chrome/browser/ash/login/screens/gesture_navigation_screen.h
@@ -12,14 +12,21 @@ #include "base/memory/weak_ptr.h" #include "base/time/time.h" #include "chrome/browser/ash/login/screens/base_screen.h" +#include "chrome/browser/ash/login/screens/oobe_mojo_binder.h" +#include "chrome/browser/ui/webui/ash/login/mojom/screens_common.mojom.h" namespace ash { class GestureNavigationScreenView; // The OOBE screen dedicated to gesture navigation education. -class GestureNavigationScreen : public BaseScreen { +class GestureNavigationScreen + : public BaseScreen, + public screens_common::mojom::GestureNavigationPageHandler, + public OobeMojoBinder< + screens_common::mojom::GestureNavigationPageHandler> { public: + using TView = GestureNavigationScreenView; enum class Result { NEXT, SKIP, NOT_APPLICABLE }; static std::string GetResultString(Result result); @@ -40,9 +47,6 @@ return exit_callback_; } - // Called when the currently shown page is changed. - void GesturePageChange(const std::string& new_page); - // BaseScreen: bool MaybeSkip(WizardContext& context) override; @@ -50,21 +54,25 @@ // BaseScreen: void ShowImpl() override; void HideImpl() override; - void OnUserAction(const base::Value::List& args) override; private: // Record metrics for the elapsed time that each page was shown for. void RecordPageShownTimeMetrics(); + // screens_common::mojom::GestureNavigationPageHandler: + void OnPageChange(GesturePages page) override; + void OnSkipClicked() override; + void OnExitClicked() override; + base::WeakPtr<GestureNavigationScreenView> view_; ScreenExitCallback exit_callback_; // Used to keep track of the current elapsed time that each page has been // shown for. - std::map<std::string, base::TimeDelta> page_times_; + std::map<GesturePages, base::TimeDelta> page_times_; // The current page that is shown on the gesture navigation screen. - std::string current_page_; + GesturePages current_page_; // The starting time for the most recently shown page. base::TimeTicks start_time_;
diff --git a/chrome/browser/ash/login/screens/osauth/cryptohome_recovery_screen.cc b/chrome/browser/ash/login/screens/osauth/cryptohome_recovery_screen.cc index efbe79b..6a5b06b8 100644 --- a/chrome/browser/ash/login/screens/osauth/cryptohome_recovery_screen.cc +++ b/chrome/browser/ash/login/screens/osauth/cryptohome_recovery_screen.cc
@@ -9,10 +9,8 @@ #include <string> #include <utility> -#include "ash/constants/ash_features.h" #include "ash/public/cpp/reauth_reason.h" #include "base/check.h" -#include "base/feature_list.h" #include "base/functional/bind.h" #include "base/location.h" #include "base/logging.h" @@ -39,13 +37,7 @@ namespace { -constexpr char kUserActionDone[] = "done"; -constexpr char kUserActionRetry[] = "retry"; -constexpr char kUserActionEnterOldPassword[] = "enter-old-password"; constexpr char kUserActionReauth[] = "reauth"; -// The time difference between the timeout on the screen, and Auth Session -// expiry. -const base::TimeDelta kTimeoutDiff = base::Seconds(10); } // namespace @@ -55,18 +47,8 @@ std::string CryptohomeRecoveryScreen::GetResultString(Result result) { // LINT.IfChange(UsageMetrics) switch (result) { - case Result::kObsoleteSucceeded: - return "Succeeded"; case Result::kGaiaLogin: return "GaiaLogin"; - case Result::kObsoleteManualRecovery: - return "ManualRecovery"; - case Result::kObsoleteRetry: - return "Retry"; - case Result::kObsoleteNoRecoveryFactor: - return "NoRecoveryFactor"; - case Result::kObsoleteTimeout: - return "Timeout"; case Result::kAuthenticated: return "Authenticated"; case Result::kError: @@ -107,17 +89,7 @@ void CryptohomeRecoveryScreen::OnUserAction(const base::Value::List& args) { const std::string& action_id = args[0].GetString(); - if (action_id == kUserActionDone) { - exit_callback_.Run(Result::kObsoleteSucceeded); - } else if (action_id == kUserActionRetry) { - // TODO(b/257073746): We probably want to differentiate between retry with - // or without login. - RecordReauthReason(context()->user_context->GetAccountId(), - ReauthReason::kCryptohomeRecovery); - exit_callback_.Run(Result::kObsoleteRetry); - } else if (action_id == kUserActionEnterOldPassword) { - exit_callback_.Run(Result::kObsoleteManualRecovery); - } else if (action_id == kUserActionReauth) { + if (action_id == kUserActionReauth) { exit_callback_.Run(Result::kGaiaLogin); } else { BaseScreen::OnUserAction(args); @@ -131,11 +103,6 @@ LOG(ERROR) << "Failed to get auth factors configuration, code " << error->get_cryptohome_error(); context()->user_context = std::move(user_context); - if (base::FeatureList::IsEnabled( - ash::features::kCryptohomeRecoveryBeforeFlowSplit)) { - view_->OnRecoveryFailed(); - return; - } context()->osauth_error = WizardContext::OSAuthErrorKind::kFatal; exit_callback_.Run(Result::kError); return; @@ -151,11 +118,6 @@ if (was_reauth_proof_token_missing_) { LOG(ERROR) << "Reauth proof token is still missing after the second attempt"; - if (base::FeatureList::IsEnabled( - ash::features::kCryptohomeRecoveryBeforeFlowSplit)) { - view_->OnRecoveryFailed(); - return; - } context()->osauth_error = WizardContext::OSAuthErrorKind::kFatal; exit_callback_.Run(Result::kError); return; @@ -176,12 +138,6 @@ base::BindOnce(&CryptohomeRecoveryScreen::OnAuthenticateWithRecovery, weak_ptr_factory_.GetWeakPtr())); } else { - if (base::FeatureList::IsEnabled( - ash::features::kCryptohomeRecoveryBeforeFlowSplit)) { - context()->user_context = std::move(user_context); - exit_callback_.Run(Result::kObsoleteNoRecoveryFactor); - return; - } CHECK(user_context->HasAuthFactorsConfiguration()); const auto& auth_config = user_context->GetAuthFactorsConfiguration(); @@ -207,11 +163,6 @@ LOG(ERROR) << "Failed to authenticate with recovery, " << error->ToDebugString(); context()->user_context = std::move(user_context); - if (base::FeatureList::IsEnabled( - ash::features::kCryptohomeRecoveryBeforeFlowSplit)) { - view_->OnRecoveryFailed(); - return; - } context()->osauth_error = WizardContext::OSAuthErrorKind::kRecoveryAuthenticationFailed; exit_callback_.Run(Result::kError); @@ -241,36 +192,11 @@ return; } - if (!base::FeatureList::IsEnabled( - ash::features::kCryptohomeRecoveryBeforeFlowSplit)) { - // Get AuthFactorsConfiguration again, as it was cleared after - // rotation. - auth_factor_editor_.GetAuthFactorsConfiguration( - std::move(user_context), - base::BindOnce(&CryptohomeRecoveryScreen::OnRefreshFactorsConfiguration, - weak_ptr_factory_.GetWeakPtr())); - return; - } - - std::string key_label; - auto* password_factor = - user_context->GetAuthFactorsData().FindOnlinePasswordFactor(); - DCHECK(password_factor); - key_label = password_factor->ref().label().value(); - - if (!user_context->HasReplacementKey()) { - // Assume that there was an attempt to use the key, so it is was already - // hashed. - DCHECK(user_context->GetKey()->GetKeyType() != - Key::KEY_TYPE_PASSWORD_PLAIN); - // Make sure that the key has correct label. - user_context->GetKey()->SetLabel(key_label); - user_context->SaveKeyForReplacement(); - } - - auth_factor_editor_.ReplaceContextKey( + // Get AuthFactorsConfiguration again, as it was cleared after + // rotation. + auth_factor_editor_.GetAuthFactorsConfiguration( std::move(user_context), - base::BindOnce(&CryptohomeRecoveryScreen::OnReplaceContextKey, + base::BindOnce(&CryptohomeRecoveryScreen::OnRefreshFactorsConfiguration, weak_ptr_factory_.GetWeakPtr())); } @@ -290,33 +216,4 @@ exit_callback_.Run(Result::kAuthenticated); } -void CryptohomeRecoveryScreen::OnReplaceContextKey( - std::unique_ptr<UserContext> user_context, - std::optional<AuthenticationError> error) { - context()->user_context = std::move(user_context); - if (error.has_value()) { - LOG(ERROR) << "Failed to replace context key, code " - << error->get_cryptohome_error(); - view_->OnRecoveryFailed(); - return; - } - VLOG(1) << "User data is successfully recovered"; - view_->OnRecoverySucceeded(); - - auto delta = context()->user_context->GetSessionLifetime() - - base::Time::Now() - kTimeoutDiff; - if (!delta.is_positive()) { - OnAuthSessionExpired(); - return; - } - expiration_timer_ = std::make_unique<base::OneShotTimer>(); - expiration_timer_->Start(FROM_HERE, delta, this, - &CryptohomeRecoveryScreen::OnAuthSessionExpired); -} - -void CryptohomeRecoveryScreen::OnAuthSessionExpired() { - LOG(WARNING) << "Exiting due to expired Auth Session."; - exit_callback_.Run(Result::kObsoleteTimeout); -} - } // namespace ash
diff --git a/chrome/browser/ash/login/screens/osauth/cryptohome_recovery_screen.h b/chrome/browser/ash/login/screens/osauth/cryptohome_recovery_screen.h index 4a60617..c834a6d9 100644 --- a/chrome/browser/ash/login/screens/osauth/cryptohome_recovery_screen.h +++ b/chrome/browser/ash/login/screens/osauth/cryptohome_recovery_screen.h
@@ -28,12 +28,6 @@ public: using TView = CryptohomeRecoveryScreenView; enum class Result { - kObsoleteSucceeded, - kObsoleteManualRecovery, - kObsoleteRetry, - kObsoleteNoRecoveryFactor, - kObsoleteTimeout, - kGaiaLogin, kAuthenticated, kError,
diff --git a/chrome/browser/ash/login/screens/osauth/cryptohome_recovery_screen_browsertest.cc b/chrome/browser/ash/login/screens/osauth/cryptohome_recovery_screen_browsertest.cc index ec08203..657f9c5 100644 --- a/chrome/browser/ash/login/screens/osauth/cryptohome_recovery_screen_browsertest.cc +++ b/chrome/browser/ash/login/screens/osauth/cryptohome_recovery_screen_browsertest.cc
@@ -5,10 +5,8 @@ #include <optional> #include <utility> -#include "ash/constants/ash_features.h" #include "ash/public/cpp/login_screen_test_api.h" #include "base/check.h" -#include "base/feature_list.h" #include "base/functional/bind.h" #include "base/run_loop.h" #include "base/test/test_future.h" @@ -44,18 +42,7 @@ namespace ash { namespace { - -const test::UIPath kReauthNotificationStep = {"cryptohome-recovery", - "reauthNotificationDialog"}; -const test::UIPath kRetryButton = {"cryptohome-recovery", "retryButton"}; -const test::UIPath kReauthButton = {"cryptohome-recovery", "reauthButton"}; - const char kNewPassword[] = "new user password"; - -bool IsOldFlow() { - return base::FeatureList::IsEnabled( - ash::features::kCryptohomeRecoveryBeforeFlowSplit); -} } // namespace class CryptohomeRecoveryScreenTestBase : public OobeBaseTest { @@ -215,21 +202,12 @@ SetUpExitCallback(); SetGaiaScreenCredentials(test_user_.account_id, kNewPassword); - if (!IsOldFlow()) { - WaitForScreenExit(); - EXPECT_EQ(result_.value(), - CryptohomeRecoveryScreen::Result::kAuthenticated); - } + WaitForScreenExit(); + EXPECT_EQ(result_.value(), CryptohomeRecoveryScreen::Result::kAuthenticated); test::RecoveryPasswordUpdatedPageWaiter()->Wait(); test::RecoveryPasswordUpdatedProceedAction(); - if (IsOldFlow()) { - WaitForScreenExit(); - EXPECT_EQ(result_.value(), - CryptohomeRecoveryScreen::Result::kObsoleteSucceeded); - } - OobeWindowVisibilityWaiter(false).Wait(); login_manager_mixin_.WaitForActiveSession(); EXPECT_TRUE(IsMounted()); @@ -253,24 +231,14 @@ OobeScreenWaiter(CryptohomeRecoveryScreenView::kScreenId).Wait(); WaitForScreenExit(); - if (IsOldFlow()) { - EXPECT_EQ(result_.value(), - CryptohomeRecoveryScreen::Result::kObsoleteNoRecoveryFactor); - OobeScreenWaiter(GaiaPasswordChangedView::kScreenId).Wait(); - } else { - EXPECT_EQ(result_.value(), - CryptohomeRecoveryScreen::Result::kFallbackOnline); - OobeScreenWaiter(EnterOldPasswordScreenView::kScreenId).Wait(); - } + EXPECT_EQ(result_.value(), CryptohomeRecoveryScreen::Result::kFallbackOnline); + OobeScreenWaiter(EnterOldPasswordScreenView::kScreenId).Wait(); EXPECT_FALSE(IsMounted()); } // Verifies that right reset password screen is shows and we goto Useronboarding // flow. IN_PROC_BROWSER_TEST_F(CryptohomeRecoveryScreenNoRecoveryTest, ResetSuccess) { - if (IsOldFlow()) { - GTEST_SKIP(); - } SetupFakeGaia(test_user_); OpenGaiaDialog(test_user_.account_id); @@ -321,131 +289,13 @@ SetUpExitCallback(); SetGaiaScreenCredentials(test_user_.account_id, kNewPassword); - if (IsOldFlow()) { - test::RecoveryErrorPageWaiter()->Wait(); - test::RecoveryErrorExpectFallback(); - test::RecoveryErrorFallbackAction(); + WaitForScreenExit(); + EXPECT_EQ(result_.value(), CryptohomeRecoveryScreen::Result::kError); - WaitForScreenExit(); - EXPECT_EQ(result_.value(), - CryptohomeRecoveryScreen::Result::kObsoleteManualRecovery); - } else { - WaitForScreenExit(); - EXPECT_EQ(result_.value(), CryptohomeRecoveryScreen::Result::kError); - } test::CreateOldPasswordEnterPageWaiter()->Wait(); EXPECT_FALSE(IsMounted()); } -// Verifies that we could retry when there is error during recovery. -IN_PROC_BROWSER_TEST_F(CryptohomeRecoveryScreenTest, RetryAfterError) { - // Ignore this test after Recovery screen split, it became responsibility - // of another screen. - if (!IsOldFlow()) { - return; - } - - SetupFakeGaia(test_user_); - fake_recovery_service_.SetErrorResponse("/v1/cryptorecovery", - net::HTTP_BAD_REQUEST); - - OpenGaiaDialog(test_user_.account_id); - SetUpExitCallback(); - SetGaiaScreenCredentials(test_user_.account_id, kNewPassword); - - test::RecoveryErrorPageWaiter()->Wait(); - test::OobeJS().ClickOnPath(kRetryButton); - - WaitForScreenExit(); - EXPECT_EQ(result_.value(), CryptohomeRecoveryScreen::Result::kObsoleteRetry); - - fake_recovery_service_.SetErrorResponse("/v1/cryptorecovery", net::HTTP_OK); - - OobeScreenWaiter(GaiaView::kScreenId).Wait(); - SetGaiaScreenCredentials(test_user_.account_id, kNewPassword); - - test::RecoveryPasswordUpdatedPageWaiter()->Wait(); - test::RecoveryPasswordUpdatedProceedAction(); - - WaitForScreenExit(); - EXPECT_EQ(result_.value(), - CryptohomeRecoveryScreen::Result::kObsoleteSucceeded); - - OobeWindowVisibilityWaiter(false).Wait(); - login_manager_mixin_.WaitForActiveSession(); - EXPECT_TRUE(IsMounted()); -} - -// Verifies that user is asked to sign in again when reauth token is not present -// when password change is detected. -IN_PROC_BROWSER_TEST_F(CryptohomeRecoveryScreenTest, - MissingReauthTokenDuringRecovery) { - // Ignore this test after Recovery screen split, logic responsibility - // of another test. - if (!IsOldFlow()) { - return; - } - SetupFakeGaia(test_user_); - - // Entering the add person flow with an existing account. Reauth token was not - // fetched in this case. - EXPECT_FALSE(LoginScreenTestApi::IsOobeDialogVisible()); - ASSERT_TRUE(LoginScreenTestApi::ClickAddUserButton()); - OobeScreenWaiter(UserCreationView::kScreenId).Wait(); - EXPECT_TRUE(LoginScreenTestApi::IsOobeDialogVisible()); - - SetUpExitCallback(); - SetGaiaScreenCredentials(test_user_.account_id, kNewPassword); - - OobeScreenWaiter(CryptohomeRecoveryScreenView::kScreenId).Wait(); - test::OobeJS().CreateVisibilityWaiter(true, kReauthNotificationStep)->Wait(); - test::OobeJS().ClickOnPath(kReauthButton); - - WaitForScreenExit(); - EXPECT_EQ(result_.value(), CryptohomeRecoveryScreen::Result::kGaiaLogin); - - OobeScreenWaiter(GaiaView::kScreenId).Wait(); - SetGaiaScreenCredentials(test_user_.account_id, kNewPassword); - - test::RecoveryPasswordUpdatedPageWaiter()->Wait(); - test::RecoveryPasswordUpdatedProceedAction(); - - WaitForScreenExit(); - EXPECT_EQ(result_.value(), - CryptohomeRecoveryScreen::Result::kObsoleteSucceeded); - - OobeWindowVisibilityWaiter(false).Wait(); - login_manager_mixin_.WaitForActiveSession(); - EXPECT_TRUE(IsMounted()); -} - -// Recovery is cancelled after timeout. -IN_PROC_BROWSER_TEST_F(CryptohomeRecoveryScreenTest, CancelledOnTimeout) { - // Ignore this test after Recovery screen split, it became responsibility - // of another screen. - if (!IsOldFlow()) { - return; - } - SetupFakeGaia(test_user_); - - OpenGaiaDialog(test_user_.account_id); - EXPECT_EQ(LoginDisplayHost::default_host() - ->GetWizardContext() - ->gaia_config.gaia_path, - WizardContext::GaiaPath::kReauth); - SetUpExitCallback(); - SetGaiaScreenCredentials(test_user_.account_id, kNewPassword); - - test::RecoveryPasswordUpdatedPageWaiter()->Wait(); - ASSERT_TRUE(FireExpirationTimer()); - - WaitForScreenExit(); - EXPECT_EQ(result_.value(), - CryptohomeRecoveryScreen::Result::kObsoleteTimeout); - EXPECT_FALSE(LoginScreenTestApi::IsOobeDialogVisible()); - EXPECT_FALSE(IsMounted()); -} - class CryptohomeRecoveryScreenChildTest : public CryptohomeRecoveryScreenTestBase { public: @@ -496,21 +346,12 @@ SetUpExitCallback(); SetGaiaScreenCredentials(test_user_.account_id, kNewPassword); - if (!IsOldFlow()) { - WaitForScreenExit(); - EXPECT_EQ(result_.value(), - CryptohomeRecoveryScreen::Result::kAuthenticated); - } + WaitForScreenExit(); + EXPECT_EQ(result_.value(), CryptohomeRecoveryScreen::Result::kAuthenticated); test::RecoveryPasswordUpdatedPageWaiter()->Wait(); test::RecoveryPasswordUpdatedProceedAction(); - if (IsOldFlow()) { - WaitForScreenExit(); - EXPECT_EQ(result_.value(), - CryptohomeRecoveryScreen::Result::kObsoleteSucceeded); - } - OobeWindowVisibilityWaiter(false).Wait(); login_manager_mixin_.WaitForActiveSession(); } @@ -533,15 +374,9 @@ OobeScreenWaiter(CryptohomeRecoveryScreenView::kScreenId).Wait(); WaitForScreenExit(); - if (IsOldFlow()) { - EXPECT_EQ(result_.value(), - CryptohomeRecoveryScreen::Result::kObsoleteNoRecoveryFactor); - OobeScreenWaiter(GaiaPasswordChangedView::kScreenId).Wait(); - } else { - EXPECT_EQ(result_.value(), - CryptohomeRecoveryScreen::Result::kFallbackOnline); - OobeScreenWaiter(EnterOldPasswordScreenView::kScreenId).Wait(); - } + + EXPECT_EQ(result_.value(), CryptohomeRecoveryScreen::Result::kFallbackOnline); + OobeScreenWaiter(EnterOldPasswordScreenView::kScreenId).Wait(); } } // namespace ash
diff --git a/chrome/browser/ash/login/screens/osauth/password_selection_screen_browsertest.cc b/chrome/browser/ash/login/screens/osauth/password_selection_screen_browsertest.cc index 8bfcf227..6786590 100644 --- a/chrome/browser/ash/login/screens/osauth/password_selection_screen_browsertest.cc +++ b/chrome/browser/ash/login/screens/osauth/password_selection_screen_browsertest.cc
@@ -239,7 +239,14 @@ EXPECT_EQ(result_.value(), PasswordSelectionScreen::Result::NOT_APPLICABLE); } -IN_PROC_BROWSER_TEST_F(PasswordSelectionScreenTest, RecoveryLocalPassword) { +// TODO(crbug.com/337379954): Flaky on linux-chromeos-chrome. +#if BUILDFLAG(IS_CHROMEOS_ASH) +#define MAYBE_RecoveryLocalPassword DISABLED_RecoveryLocalPassword +#else +#define MAYBE_RecoveryLocalPassword RecoveryLocalPassword +#endif +IN_PROC_BROWSER_TEST_F(PasswordSelectionScreenTest, + MAYBE_RecoveryLocalPassword) { StartLogin(); auto user_context = BorrowUserContext(); LoginDisplayHost::default_host()
diff --git a/chrome/browser/ash/login/test/auth_ui_utils.cc b/chrome/browser/ash/login/test/auth_ui_utils.cc index c8d140e..5a7e182 100644 --- a/chrome/browser/ash/login/test/auth_ui_utils.cc +++ b/chrome/browser/ash/login/test/auth_ui_utils.cc
@@ -43,13 +43,6 @@ constexpr UIPath kGaiaSigninPrimaryButton = { "gaia-signin", "signin-frame-dialog", "primary-action-button"}; -constexpr UIPath kPasswordStep = {"gaia-password-changed", "passwordStep"}; -constexpr UIPath kOldPasswordInput = {"gaia-password-changed", - "oldPasswordInput"}; -constexpr UIPath kSendPasswordButton = {"gaia-password-changed", "next"}; -constexpr UIPath kForgotPasswordButton = {"gaia-password-changed", - "forgotPasswordButton"}; - constexpr UIPath kEnterOldPasswordInputStep = {"enter-old-password", "passwordStep"}; constexpr UIPath kEnterOldPasswordInput = {"enter-old-password", @@ -59,13 +52,6 @@ constexpr UIPath kEnterOldPasswordForgotButton = {"enter-old-password", "forgotPasswordButton"}; -constexpr UIPath kForgotPasswordStep = {"gaia-password-changed", - "forgotPassword"}; -constexpr UIPath kForgotCancel = {"gaia-password-changed", "cancelForgot"}; - -constexpr UIPath kTryAgainRecovery = {"gaia-password-changed", "backButton"}; -constexpr UIPath kProceedAnyway = {"gaia-password-changed", "proceedAnyway"}; - constexpr UIPath kDataLossWarningElement = {"local-data-loss-warning"}; // TODO: why don't we have it? constexpr UIPath kDataLossWarningCancel = {"local-data-loss-warning", "cancel"}; @@ -77,13 +63,6 @@ constexpr UIPath kDataLossWarningReset = {"local-data-loss-warning", "powerwash"}; -constexpr UIPath kRecoverySuccessStep = {"cryptohome-recovery", - "successDialog"}; -constexpr UIPath kRecoveryDoneButton = {"cryptohome-recovery", "doneButton"}; -constexpr UIPath kRecoveryErrorStep = {"cryptohome-recovery", "errorDialog"}; -constexpr UIPath kRecoveryManualRecoveryButton = {"cryptohome-recovery", - "manualRecoveryButton"}; - constexpr UIPath kRecoveryReauthNotificationStep = {"cryptohome-recovery", "reauthNotificationDialog"}; constexpr UIPath kRecoveryReauthButton = {"cryptohome-recovery", @@ -107,11 +86,6 @@ const UIPath kFirstOnboardingScreen = {"consolidated-consent"}; -bool IsOldFlow() { - return base::FeatureList::IsEnabled( - ash::features::kCryptohomeRecoveryBeforeFlowSplit); -} - } // namespace class LoginScreenAuthSurface : public FullScreenAuthSurface { @@ -404,12 +378,6 @@ // ---------------------------------------------------------- std::unique_ptr<test::TestConditionWaiter> CreateOldPasswordEnterPageWaiter() { - if (IsOldFlow()) { - return std::make_unique<CompositeWaiter>( - std::make_unique<OobeWindowVisibilityWaiter>(true), - std::make_unique<OobeScreenWaiter>(GaiaPasswordChangedView::kScreenId), - OobeJS().CreateVisibilityWaiter(true, kPasswordStep)); - } return std::make_unique<CompositeWaiter>( std::make_unique<OobeWindowVisibilityWaiter>(true), std::make_unique<OobeScreenWaiter>( @@ -418,46 +386,24 @@ } void PasswordChangedTypeOldPassword(const std::string& text) { - if (IsOldFlow()) { - test::OobeJS().TypeIntoPath(text, kOldPasswordInput); - return; - } test::OobeJS().TypeIntoPath(text, kEnterOldPasswordInput); } void PasswordChangedSubmitOldPassword() { - if (IsOldFlow()) { - test::OobeJS().ClickOnPath(kSendPasswordButton); - return; - } test::OobeJS().ClickOnPath(kEnterOldPasswordProceedButton); } std::unique_ptr<test::TestConditionWaiter> PasswordChangedInvalidPasswordFeedback() { - if (IsOldFlow()) { - return test::OobeJS().CreateWaiter( - test::GetOobeElementPath(kOldPasswordInput) + ".invalid"); - } return test::OobeJS().CreateWaiter( test::GetOobeElementPath(kEnterOldPasswordInput) + ".invalid"); } void PasswordChangedForgotPasswordAction() { - if (IsOldFlow()) { - test::OobeJS().ClickOnPath(kForgotPasswordButton); - return; - } test::OobeJS().ClickOnPath(kEnterOldPasswordForgotButton); } std::unique_ptr<test::TestConditionWaiter> LocalDataLossWarningPageWaiter() { - if (IsOldFlow()) { - return std::make_unique<CompositeWaiter>( - std::make_unique<OobeWindowVisibilityWaiter>(true), - std::make_unique<OobeScreenWaiter>(GaiaPasswordChangedView::kScreenId), - OobeJS().CreateVisibilityWaiter(true, kForgotPasswordStep)); - } return std::make_unique<CompositeWaiter>( std::make_unique<OobeWindowVisibilityWaiter>(true), std::make_unique<OobeScreenWaiter>( @@ -466,26 +412,14 @@ } void LocalDataLossWarningPageCancelAction() { - if (IsOldFlow()) { - test::OobeJS().ClickOnPath(kForgotCancel); - return; - } test::OobeJS().ClickOnPath(kDataLossWarningCancel); } void LocalDataLossWarningPageGoBackAction() { - if (IsOldFlow()) { - test::OobeJS().ClickOnPath(kTryAgainRecovery); - return; - } test::OobeJS().ClickOnPath(kDataLossWarningBack); } void LocalDataLossWarningPageRemoveAction() { - if (IsOldFlow()) { - test::OobeJS().ClickOnPath(kProceedAnyway); - return; - } test::OobeJS().ClickOnPath(kDataLossWarningRemove); } @@ -494,18 +428,10 @@ } void LocalDataLossWarningPageExpectGoBack() { - if (IsOldFlow()) { - test::OobeJS().ExpectVisiblePath(kTryAgainRecovery); - return; - } test::OobeJS().ExpectVisiblePath(kDataLossWarningBack); } void LocalDataLossWarningPageExpectRemove() { - if (IsOldFlow()) { - test::OobeJS().ExpectVisiblePath(kProceedAnyway); - return; - } test::OobeJS().ExpectVisiblePath(kDataLossWarningRemove); } @@ -571,13 +497,6 @@ } std::unique_ptr<test::TestConditionWaiter> RecoveryPasswordUpdatedPageWaiter() { - if (IsOldFlow()) { - return std::make_unique<CompositeWaiter>( - std::make_unique<OobeWindowVisibilityWaiter>(true), - std::make_unique<OobeScreenWaiter>( - CryptohomeRecoveryScreenView::kScreenId), - OobeJS().CreateVisibilityWaiter(true, kRecoverySuccessStep)); - } return CreatePasswordUpdateNoticePageWaiter(); } @@ -589,39 +508,17 @@ } void RecoveryPasswordUpdatedProceedAction() { - if (IsOldFlow()) { - test::OobeJS().ClickOnPath(kRecoveryDoneButton); - return; - } + // TODO(b/315829727): inline this and other now-one-line-methods. PasswordUpdateNoticeDoneAction(); } std::unique_ptr<test::TestConditionWaiter> RecoveryErrorPageWaiter() { - if (IsOldFlow()) { - return std::make_unique<CompositeWaiter>( - std::make_unique<OobeWindowVisibilityWaiter>(true), - std::make_unique<OobeScreenWaiter>( - CryptohomeRecoveryScreenView::kScreenId), - OobeJS().CreateVisibilityWaiter(true, kRecoveryErrorStep)); - } return std::make_unique<CompositeWaiter>( std::make_unique<OobeWindowVisibilityWaiter>(true), std::make_unique<OobeScreenWaiter>( ash::OSAuthErrorScreenView::kScreenId)); } -void RecoveryErrorExpectFallback() { - CHECK(IsOldFlow()); - test::OobeJS().ExpectVisiblePath(kRecoveryManualRecoveryButton); - return; -} - -void RecoveryErrorFallbackAction() { - CHECK(IsOldFlow()); - test::OobeJS().ClickOnPath(kRecoveryManualRecoveryButton); - return; -} - std::unique_ptr<test::TestConditionWaiter> UserOnboardingWaiter() { return std::make_unique<CompositeWaiter>( std::make_unique<OobeWindowVisibilityWaiter>(true),
diff --git a/chrome/browser/ash/login/wizard_controller.cc b/chrome/browser/ash/login/wizard_controller.cc index 6ba069b1..4fbe9fb 100644 --- a/chrome/browser/ash/login/wizard_controller.cc +++ b/chrome/browser/ash/login/wizard_controller.cc
@@ -1051,6 +1051,7 @@ GetLoginDisplayHost()->StartSignInScreen(); } +// TODO(b/315829727): remove now unused codepath. void WizardController::ShowGaiaPasswordChangedScreen( std::unique_ptr<UserContext> user_context) { wizard_context_->user_context = std::move(user_context); @@ -1772,9 +1773,6 @@ OnScreenExit(CryptohomeRecoveryScreenView::kScreenId, CryptohomeRecoveryScreen::GetResultString(result)); switch (result) { - case CryptohomeRecoveryScreen::Result::kObsoleteSucceeded: - LoginAuthenticatedWithContext(std::move(wizard_context_->user_context)); - break; case CryptohomeRecoveryScreen::Result::kAuthenticated: { switch (wizard_context_->knowledge_factor_setup.auth_setup_flow) { case WizardContext::AuthChangeFlow::kInitialSetup: @@ -1790,17 +1788,12 @@ } } case CryptohomeRecoveryScreen::Result::kGaiaLogin: - case CryptohomeRecoveryScreen::Result::kObsoleteRetry: // TODO(b/257073746): We probably want to differentiate between retry with // or without login. wizard_context_->gaia_config.prefilled_account = wizard_context_->user_context->GetAccountId(); AdvanceToScreen(GaiaView::kScreenId); break; - case CryptohomeRecoveryScreen::Result::kObsoleteManualRecovery: - case CryptohomeRecoveryScreen::Result::kObsoleteNoRecoveryFactor: - ShowGaiaPasswordChangedScreen(std::move(wizard_context_->user_context)); - break; case CryptohomeRecoveryScreen::Result::kFallbackOnline: ShowEnterOldPasswordScreen(); break; @@ -1822,9 +1815,6 @@ return; } } - case CryptohomeRecoveryScreen::Result::kObsoleteTimeout: - ShowLoginScreen(); - break; case CryptohomeRecoveryScreen::Result::kError: ShowOSAuthErrorScreen(); break;
diff --git a/chrome/browser/ash/login/wizard_controller.h b/chrome/browser/ash/login/wizard_controller.h index fdfba08d..1d8ed60 100644 --- a/chrome/browser/ash/login/wizard_controller.h +++ b/chrome/browser/ash/login/wizard_controller.h
@@ -339,6 +339,7 @@ void ShowChoobeScreen(); void ShowTouchpadScrollScreen(); void ShowDisplaySizeScreen(); + // TODO(b/315829727): remove now unused codepath. void ShowGaiaPasswordChangedScreen(std::unique_ptr<UserContext> user_context); void ShowDrivePinningScreen(); void ShowGaiaInfoScreen();
diff --git a/chrome/browser/ash/net/network_portal_detector_impl_unittest.cc b/chrome/browser/ash/net/network_portal_detector_impl_unittest.cc index 4b3afd8..f735855 100644 --- a/chrome/browser/ash/net/network_portal_detector_impl_unittest.cc +++ b/chrome/browser/ash/net/network_portal_detector_impl_unittest.cc
@@ -8,6 +8,7 @@ #include <memory> #include <vector> +#include "ash/constants/ash_features.h" #include "base/command_line.h" #include "base/compiler_specific.h" #include "base/functional/bind.h" @@ -21,6 +22,7 @@ #include "base/run_loop.h" #include "base/strings/stringprintf.h" #include "base/test/metrics/histogram_tester.h" +#include "base/test/scoped_feature_list.h" #include "chrome/browser/ash/login/users/fake_chrome_user_manager.h" #include "chrome/browser/ash/net/network_portal_detector_test_utils.h" #include "chrome/test/base/testing_browser_process.h" @@ -77,6 +79,11 @@ : test_profile_manager_(TestingBrowserProcess::GetGlobal()) {} void SetUp() override { + // This test is only necessary when kRemoveDetectPortalFromChrome is + // disabled. + scoped_feature_list_.InitAndDisableFeature( + features::kRemoveDetectPortalFromChrome); + FakeChromeUserManager* user_manager = new FakeChromeUserManager(); user_manager_enabler_ = std::make_unique<user_manager::ScopedUserManager>( base::WrapUnique(user_manager)); @@ -257,6 +264,7 @@ } content::BrowserTaskEnvironment task_environment_; + base::test::ScopedFeatureList scoped_feature_list_; std::unique_ptr<NetworkHandlerTestHelper> network_handler_test_helper_; raw_ptr<Profile> profile_ = nullptr; std::unique_ptr<NetworkPortalDetectorImpl> network_portal_detector_;
diff --git a/chrome/browser/ash/policy/reporting/metrics_reporting/apps/app_events_observer_browsertest.cc b/chrome/browser/ash/policy/reporting/metrics_reporting/apps/app_events_observer_browsertest.cc index bfb5547..25f8066 100644 --- a/chrome/browser/ash/policy/reporting/metrics_reporting/apps/app_events_observer_browsertest.cc +++ b/chrome/browser/ash/policy/reporting/metrics_reporting/apps/app_events_observer_browsertest.cc
@@ -107,8 +107,8 @@ // Helper that installs a standalone webapp with the specified start url. ::webapps::AppId InstallStandaloneWebApp(const GURL& start_url) { - auto web_app_info = std::make_unique<web_app::WebAppInstallInfo>(); - web_app_info->start_url = start_url; + auto web_app_info = + web_app::WebAppInstallInfo::CreateWithStartUrlForTesting(start_url); web_app_info->scope = start_url.GetWithoutFilename(); web_app_info->display_mode = ::blink::mojom::DisplayMode::kStandalone; web_app_info->user_display_mode =
diff --git a/chrome/browser/ash/policy/reporting/metrics_reporting/apps/app_usage_telemetry_sampler_browsertest.cc b/chrome/browser/ash/policy/reporting/metrics_reporting/apps/app_usage_telemetry_sampler_browsertest.cc index f107c55..8f8e488 100644 --- a/chrome/browser/ash/policy/reporting/metrics_reporting/apps/app_usage_telemetry_sampler_browsertest.cc +++ b/chrome/browser/ash/policy/reporting/metrics_reporting/apps/app_usage_telemetry_sampler_browsertest.cc
@@ -158,8 +158,8 @@ // Helper that installs a standalone webapp with the specified start url. ::webapps::AppId InstallStandaloneWebApp(const GURL& start_url) { - auto web_app_info = std::make_unique<web_app::WebAppInstallInfo>(); - web_app_info->start_url = start_url; + auto web_app_info = + web_app::WebAppInstallInfo::CreateWithStartUrlForTesting(start_url); web_app_info->scope = start_url.GetWithoutFilename(); web_app_info->display_mode = ::blink::mojom::DisplayMode::kStandalone; web_app_info->user_display_mode =
diff --git a/chrome/browser/ash/system_web_apps/apps/camera_app/chrome_camera_app_ui_delegate.cc b/chrome/browser/ash/system_web_apps/apps/camera_app/chrome_camera_app_ui_delegate.cc index ec7eba7..16209a4a 100644 --- a/chrome/browser/ash/system_web_apps/apps/camera_app/chrome_camera_app_ui_delegate.cc +++ b/chrome/browser/ash/system_web_apps/apps/camera_app/chrome_camera_app_ui_delegate.cc
@@ -8,6 +8,7 @@ #include <vector> #include "ash/constants/ash_features.h" +#include "ash/webui/camera_app_ui/ocr.mojom.h" #include "ash/webui/camera_app_ui/url_constants.h" #include "ash/webui/settings/public/constants/routes.mojom.h" #include "base/feature_list.h" @@ -63,11 +64,8 @@ #include "mojo/public/cpp/bindings/remote.h" #include "mojo/public/cpp/bindings/remote_set.h" #include "third_party/blink/public/mojom/mediastream/media_stream.mojom.h" -#include "third_party/skia/include/core/SkBitmap.h" -#include "third_party/skia/include/core/SkData.h" -#include "third_party/skia/include/core/SkStream.h" -#include "third_party/skia/include/encode/SkJpegEncoder.h" #include "ui/chromeos/styles/cros_styles.h" +#include "ui/gfx/codec/jpeg_codec.h" #include "ui/gfx/geometry/size.h" #include "ui/gfx/native_widget_types.h" #include "url/gurl.h" @@ -319,14 +317,9 @@ mojo::RemoteSetElementId pdf_service_id, mojo::RemoteSetElementId pdf_thumbnailer_id, const SkBitmap& bitmap) { - SkDynamicMemoryWStream stream; - if (SkJpegEncoder::Encode(&stream, bitmap.pixmap(), {}) && - stream.bytesWritten()) { - sk_sp<SkData> jpeg_data = stream.detachAsData(); - ConsumeGotThumbnailCallback( - std::vector<uint8_t>(jpeg_data->bytes(), - jpeg_data->bytes() + jpeg_data->size()), - pdf_thumbnailer_id); + std::vector<uint8_t> jpeg_data; + if (gfx::JPEGCodec::Encode(bitmap, /*quality=*/100, &jpeg_data)) { + ConsumeGotThumbnailCallback(std::move(jpeg_data), pdf_thumbnailer_id); } else { LOG(ERROR) << "Failed to encode bitmap to JPEG"; ConsumeGotThumbnailCallback({}, pdf_thumbnailer_id); @@ -745,6 +738,45 @@ pdf_service_manager_->Searchify(pdf, std::move(callback)); } +void ChromeCameraAppUIDelegate::PerformOcr( + const std::vector<uint8_t>& jpeg_data, + base::OnceCallback<void(ash::camera_app::mojom::OcrResultPtr)> callback) { + std::unique_ptr<SkBitmap> bitmap = + gfx::JPEGCodec::Decode(jpeg_data.data(), jpeg_data.size()); + optical_character_recognizer_->PerformOCR( + std::move(*bitmap), + base::BindOnce( + [](base::OnceCallback<void(ash::camera_app::mojom::OcrResultPtr)> + callback, + screen_ai::mojom::VisualAnnotationPtr annotation) { + auto result = ash::camera_app::mojom::OcrResult::New(); + for (const auto& line_box : annotation->lines) { + auto line = ash::camera_app::mojom::Line::New(); + line->text = line_box->text_line; + line->bounding_box = std::move(line_box->bounding_box); + line->bounding_box_angle = line_box->bounding_box_angle; + for (const auto& word_box : line_box->words) { + auto word = ash::camera_app::mojom::Word::New(); + word->bounding_box = std::move(word_box->bounding_box); + word->bounding_box_angle = word_box->bounding_box_angle; + word->text = word_box->word; + if (word_box->direction == + screen_ai::mojom::Direction::DIRECTION_RIGHT_TO_LEFT) { + word->direction = + ash::camera_app::mojom::WordDirection::kRightToLeft; + } else { + word->direction = + ash::camera_app::mojom::WordDirection::kLeftToRight; + } + line->words.push_back(std::move(word)); + } + result->lines.push_back(std::move(line)); + } + std::move(callback).Run(std::move(result)); + }, + std::move(callback))); +} + ash::CameraAppUIDelegate::WifiConfig::WifiConfig() = default; ash::CameraAppUIDelegate::WifiConfig::WifiConfig(
diff --git a/chrome/browser/ash/system_web_apps/apps/camera_app/chrome_camera_app_ui_delegate.h b/chrome/browser/ash/system_web_apps/apps/camera_app/chrome_camera_app_ui_delegate.h index f882385..04a864c 100644 --- a/chrome/browser/ash/system_web_apps/apps/camera_app/chrome_camera_app_ui_delegate.h +++ b/chrome/browser/ash/system_web_apps/apps/camera_app/chrome_camera_app_ui_delegate.h
@@ -209,6 +209,9 @@ void Searchify( const std::vector<uint8_t>& pdf, base::OnceCallback<void(const std::vector<uint8_t>&)> callback) override; + void PerformOcr(const std::vector<uint8_t>& jpeg_data, + base::OnceCallback<void(ash::camera_app::mojom::OcrResultPtr)> + callback) override; private: base::FilePath GetMyFilesFolder();
diff --git a/chrome/browser/ash/system_web_apps/system_web_app_manager_unittest.cc b/chrome/browser/ash/system_web_apps/system_web_app_manager_unittest.cc index 82fa77139..29240e2 100644 --- a/chrome/browser/ash/system_web_apps/system_web_app_manager_unittest.cc +++ b/chrome/browser/ash/system_web_apps/system_web_app_manager_unittest.cc
@@ -58,8 +58,7 @@ std::unique_ptr<web_app::WebAppInstallInfo> GetWebAppInstallInfo( const GURL& url) { std::unique_ptr<web_app::WebAppInstallInfo> info = - std::make_unique<web_app::WebAppInstallInfo>(); - info->start_url = url; + web_app::WebAppInstallInfo::CreateWithStartUrlForTesting(url); info->scope = url.GetWithoutFilename(); info->title = u"Web App"; return info;
diff --git a/chrome/browser/ash/system_web_apps/test_support/test_system_web_app_installation.cc b/chrome/browser/ash/system_web_apps/test_support/test_system_web_app_installation.cc index df24642..4072362 100644 --- a/chrome/browser/ash/system_web_apps/test_support/test_system_web_app_installation.cc +++ b/chrome/browser/ash/system_web_apps/test_support/test_system_web_app_installation.cc
@@ -752,8 +752,8 @@ SystemWebAppWindowConfig window_config) { auto* delegate = new UnittestingSystemAppDelegate( type, "Test App", app_url, base::BindLambdaForTesting([=]() { - auto info = std::make_unique<web_app::WebAppInstallInfo>(); - info->start_url = app_url; + auto info = + web_app::WebAppInstallInfo::CreateWithStartUrlForTesting(app_url); info->scope = app_url.DeprecatedGetOriginAsURL(); info->title = u"Test System App"; info->theme_color = 0xFF00FF00;
diff --git a/chrome/browser/chromeos/app_mode/kiosk_browser_session_unittest.cc b/chrome/browser/chromeos/app_mode/kiosk_browser_session_unittest.cc index da1b419..efaa61e5 100644 --- a/chrome/browser/chromeos/app_mode/kiosk_browser_session_unittest.cc +++ b/chrome/browser/chromeos/app_mode/kiosk_browser_session_unittest.cc
@@ -275,8 +275,7 @@ std::unique_ptr<web_app::WebAppInstallInfo> GetWebAppInstallInfo( const GURL& url) { std::unique_ptr<web_app::WebAppInstallInfo> info = - std::make_unique<web_app::WebAppInstallInfo>(); - info->start_url = url; + web_app::WebAppInstallInfo::CreateWithStartUrlForTesting(url); info->scope = url.GetWithoutFilename(); info->title = u"Web App"; return info;
diff --git a/chrome/browser/extensions/api/crash_report_private/crash_report_private_apitest.cc b/chrome/browser/extensions/api/crash_report_private/crash_report_private_apitest.cc index b43f6ad..b6090f9 100644 --- a/chrome/browser/extensions/api/crash_report_private/crash_report_private_apitest.cc +++ b/chrome/browser/extensions/api/crash_report_private/crash_report_private_apitest.cc
@@ -328,8 +328,8 @@ ASSERT_TRUE(embedded_test_server()->Started()); // Create and launch a test web app, opens in an app window. GURL start_url = embedded_test_server()->GetURL("/test_app.html"); - auto web_app_info = std::make_unique<web_app::WebAppInstallInfo>(); - web_app_info->start_url = start_url; + auto web_app_info = + web_app::WebAppInstallInfo::CreateWithStartUrlForTesting(start_url); webapps::AppId app_id = web_app::test::InstallWebApp(profile(), std::move(web_app_info)); Browser* app_browser = web_app::LaunchWebAppBrowserAndWait(profile(), app_id);
diff --git a/chrome/browser/flag-metadata.json b/chrome/browser/flag-metadata.json index a8ed883e..1bdb0523 100644 --- a/chrome/browser/flag-metadata.json +++ b/chrome/browser/flag-metadata.json
@@ -8447,6 +8447,11 @@ "expiry_milestone": 135 }, { + "name": "use-screen2x-v2", + "owners": [ "rhalavati@chromium.org", "//ui/accessibility/OWNERS" ], + "expiry_milestone": 136 + }, + { "name": "use-search-click-for-right-click", "owners": [ "zentaro@chromium.org", "jimmyxgong@chromium.org", "cros-peripherals@google.com" ], "expiry_milestone": 130
diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc index 7c6fd00..827e626 100644 --- a/chrome/browser/flag_descriptions.cc +++ b/chrome/browser/flag_descriptions.cc
@@ -5142,6 +5142,9 @@ "Enables a mitigation during web app install on CrOS for syncing " "user_display_mode: kStandalone to non-CrOS devices."; +const char kUseScreen2xV2Name[] = "Use Screen2x V2"; +const char kUseScreen2xV2Description[] = "Uses version 2 of Screen2x library."; + const char kWebAppSystemMediaControlsWinName[] = "Web App System Media Controls on Windows"; const char kWebAppSystemMediaControlsWinDescription[] =
diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h index 2269350..853dcae9 100644 --- a/chrome/browser/flag_descriptions.h +++ b/chrome/browser/flag_descriptions.h
@@ -3010,6 +3010,9 @@ extern const char kUserDisplayModeSyncStandaloneMitigationName[]; extern const char kUserDisplayModeSyncStandaloneMitigationDescription[]; +extern const char kUseScreen2xV2Name[]; +extern const char kUseScreen2xV2Description[]; + extern const char kWebAppSystemMediaControlsWinName[]; extern const char kWebAppSystemMediaControlsWinDescription[];
diff --git a/chrome/browser/lacros/app_mode/web_kiosk_installer_lacros_unittest.cc b/chrome/browser/lacros/app_mode/web_kiosk_installer_lacros_unittest.cc index 6effcf9..6a7e0e52 100644 --- a/chrome/browser/lacros/app_mode/web_kiosk_installer_lacros_unittest.cc +++ b/chrome/browser/lacros/app_mode/web_kiosk_installer_lacros_unittest.cc
@@ -35,7 +35,6 @@ const char kAppInstallUrl[] = "https://example.com"; const char kAppLaunchUrl[] = "https://example.com/launch"; const char kManifestUrl[] = "https://example.com/manifest.json"; -const char16_t kAppTitle[] = u"app-title"; std::optional<webapps::AppId> app_id() { return web_app::GenerateAppId(/*manifest_id=*/std::nullopt, @@ -117,10 +116,6 @@ void InstallApp() { CreateWebAppWithManifest(); InstallAppInternal(/*install_app_as_placeholder=*/false); - - web_app::WebAppInstallInfo info; - info.start_url = GURL(kAppLaunchUrl); - info.title = kAppTitle; } webapps::AppId CreateWebAppWithManifest() {
diff --git a/chrome/browser/lacros/browser_launcher_browsertest.cc b/chrome/browser/lacros/browser_launcher_browsertest.cc index 72f135a6..276fef8 100644 --- a/chrome/browser/lacros/browser_launcher_browsertest.cc +++ b/chrome/browser/lacros/browser_launcher_browsertest.cc
@@ -44,8 +44,8 @@ namespace { webapps::AppId InstallPWA(Profile* profile, const GURL& start_url) { - auto web_app_info = std::make_unique<web_app::WebAppInstallInfo>(); - web_app_info->start_url = start_url; + auto web_app_info = + web_app::WebAppInstallInfo::CreateWithStartUrlForTesting(start_url); web_app_info->scope = start_url.GetWithoutFilename(); web_app_info->user_display_mode = web_app::mojom::UserDisplayMode::kStandalone;
diff --git a/chrome/browser/lacros/lacros_apps_publisher_browsertest.cc b/chrome/browser/lacros/lacros_apps_publisher_browsertest.cc index f248c29..097ac2c6 100644 --- a/chrome/browser/lacros/lacros_apps_publisher_browsertest.cc +++ b/chrome/browser/lacros/lacros_apps_publisher_browsertest.cc
@@ -190,8 +190,8 @@ ASSERT_TRUE(embedded_test_server()->Start()); GURL url = embedded_test_server()->GetURL("app.com", "/ssl/google.html"); - auto web_app_info = std::make_unique<web_app::WebAppInstallInfo>(); - web_app_info->start_url = url; + auto web_app_info = + web_app::WebAppInstallInfo::CreateWithStartUrlForTesting(url); web_app_info->scope = url; auto app_id = web_app::test::InstallWebApp(browser()->profile(), std::move(web_app_info));
diff --git a/chrome/browser/lacros/lacros_extension_apps_publisher_browsertest.cc b/chrome/browser/lacros/lacros_extension_apps_publisher_browsertest.cc index 3cdf276..d5a5e963 100644 --- a/chrome/browser/lacros/lacros_extension_apps_publisher_browsertest.cc +++ b/chrome/browser/lacros/lacros_extension_apps_publisher_browsertest.cc
@@ -425,8 +425,8 @@ ASSERT_TRUE(embedded_test_server()->Start()); GURL url = embedded_test_server()->GetURL("app.com", "/ssl/google.html"); - auto web_app_info = std::make_unique<web_app::WebAppInstallInfo>(); - web_app_info->start_url = url; + auto web_app_info = + web_app::WebAppInstallInfo::CreateWithStartUrlForTesting(url); web_app_info->scope = url; auto app_id = web_app::test::InstallWebApp(browser()->profile(), std::move(web_app_info));
diff --git a/chrome/browser/lens/core/mojom/text.mojom b/chrome/browser/lens/core/mojom/text.mojom index 78f9cc2..406c02c 100644 --- a/chrome/browser/lens/core/mojom/text.mojom +++ b/chrome/browser/lens/core/mojom/text.mojom
@@ -33,10 +33,10 @@ // Required. The text in a plain text, which can be an empty string. string plain_text; - // Required. The text separator that should be appended after this word when + // Optional. The text separator that should be appended after this word when // it is concatenated with the subsequent word in the same or next - // line/paragraph into a single-line string. Can be an empty string. - string text_separator; + // line/paragraph into a single-line string. + string? text_separator; // Optional. The geometry of the word. Geometry? geometry;
diff --git a/chrome/browser/media/webrtc/get_all_screens_media_browsertest.cc b/chrome/browser/media/webrtc/get_all_screens_media_browsertest.cc index 9c27d0c5..6d82742 100644 --- a/chrome/browser/media/webrtc/get_all_screens_media_browsertest.cc +++ b/chrome/browser/media/webrtc/get_all_screens_media_browsertest.cc
@@ -678,8 +678,8 @@ } webapps::AppId InstallPWA(Profile* profile, const GURL& start_url) { - auto web_app_info = std::make_unique<web_app::WebAppInstallInfo>(); - web_app_info->start_url = start_url; + auto web_app_info = + web_app::WebAppInstallInfo::CreateWithStartUrlForTesting(start_url); web_app_info->scope = start_url.GetWithoutFilename(); web_app_info->user_display_mode = web_app::mojom::UserDisplayMode::kStandalone;
diff --git a/chrome/browser/notifications/chrome_ash_message_center_client_browsertest.cc b/chrome/browser/notifications/chrome_ash_message_center_client_browsertest.cc index 490d952..4b487be 100644 --- a/chrome/browser/notifications/chrome_ash_message_center_client_browsertest.cc +++ b/chrome/browser/notifications/chrome_ash_message_center_client_browsertest.cc
@@ -64,8 +64,9 @@ } std::string InstallTestPWA() { - auto web_app_install_info = std::make_unique<web_app::WebAppInstallInfo>(); - web_app_install_info->start_url = GURL(kUrlString); + auto web_app_install_info = + web_app::WebAppInstallInfo::CreateWithStartUrlForTesting( + GURL(kUrlString)); web_app_install_info->display_mode = blink::mojom::DisplayMode::kMinimalUi; Profile* profile = browser()->profile();
diff --git a/chrome/browser/policy/test/system_features_policy_browsertest.cc b/chrome/browser/policy/test/system_features_policy_browsertest.cc index f4c5d20..ff21ca0 100644 --- a/chrome/browser/policy/test/system_features_policy_browsertest.cc +++ b/chrome/browser/policy/test/system_features_policy_browsertest.cc
@@ -157,8 +157,8 @@ } void InstallPWA(const GURL& app_url, const char* app_id) { - auto web_app_info = std::make_unique<web_app::WebAppInstallInfo>(); - web_app_info->start_url = app_url; + auto web_app_info = + web_app::WebAppInstallInfo::CreateWithStartUrlForTesting(app_url); web_app_info->scope = app_url.GetWithoutFilename(); webapps::AppId installed_app_id = web_app::test::InstallWebApp( browser()->profile(), std::move(web_app_info));
diff --git a/chrome/browser/renderer_context_menu/render_view_context_menu_browsertest.cc b/chrome/browser/renderer_context_menu/render_view_context_menu_browsertest.cc index b913e76..689a098 100644 --- a/chrome/browser/renderer_context_menu/render_view_context_menu_browsertest.cc +++ b/chrome/browser/renderer_context_menu/render_view_context_menu_browsertest.cc
@@ -323,8 +323,8 @@ AppId InstallTestWebApp(const GURL& start_url, web_app::mojom::UserDisplayMode display_mode = web_app::mojom::UserDisplayMode::kStandalone) { - auto web_app_info = std::make_unique<web_app::WebAppInstallInfo>(); - web_app_info->start_url = start_url; + auto web_app_info = + web_app::WebAppInstallInfo::CreateWithStartUrlForTesting(start_url); web_app_info->scope = start_url; web_app_info->title = u"Test app 🐐"; web_app_info->description = u"Test description 🐐";
diff --git a/chrome/browser/resources/ash/settings/BUILD.gn b/chrome/browser/resources/ash/settings/BUILD.gn index 22420ff9..c5506d0 100644 --- a/chrome/browser/resources/ash/settings/BUILD.gn +++ b/chrome/browser/resources/ash/settings/BUILD.gn
@@ -365,6 +365,7 @@ "common/setting_id_param_util.ts", "common/types.ts", "controls/v2/pref_control_mixin_internal.ts", + "os_apps_page/app_management_page/privacy_hub_mixin.ts", "os_files_page/google_drive_browser_proxy.ts", "os_files_page/one_drive_browser_proxy.ts", "crostini_page/crostini_browser_proxy.ts",
diff --git a/chrome/browser/resources/ash/settings/os_apps_page/app_management_page/arc_detail_view.html b/chrome/browser/resources/ash/settings/os_apps_page/app_management_page/arc_detail_view.html index e56040c0..71f8b28 100644 --- a/chrome/browser/resources/ash/settings/os_apps_page/app_management_page/arc_detail_view.html +++ b/chrome/browser/resources/ash/settings/os_apps_page/app_management_page/arc_detail_view.html
@@ -34,7 +34,8 @@ app="[[app_]]" icon="[[item.icon]]" permission-label="[[i18n(item.labelId)]]" - permission-type="[[item.type]]"> + permission-type="[[item.type]]" + prefs="{{prefs}}"> </app-management-read-only-permission-item> </template>
diff --git a/chrome/browser/resources/ash/settings/os_apps_page/app_management_page/permission_item.ts b/chrome/browser/resources/ash/settings/os_apps_page/app_management_page/permission_item.ts index 24824a33..ad700bb 100644 --- a/chrome/browser/resources/ash/settings/os_apps_page/app_management_page/permission_item.ts +++ b/chrome/browser/resources/ash/settings/os_apps_page/app_management_page/permission_item.ts
@@ -16,13 +16,13 @@ import {loadTimeData} from 'chrome://resources/js/load_time_data.js'; import {PolymerElement} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js'; -import {GeolocationAccessLevel} from '../../os_privacy_page/privacy_hub_geolocation_subpage.js'; - import {getTemplate} from './permission_item.html.js'; +import {PrivacyHubMixin} from './privacy_hub_mixin.js'; import {AppManagementToggleRowElement} from './toggle_row.js'; import {getPermissionDescriptionString} from './util.js'; -const AppManagementPermissionItemElementBase = PrefsMixin(PolymerElement); +const AppManagementPermissionItemElementBase = + PrivacyHubMixin(PrefsMixin(PolymerElement)); export class AppManagementPermissionItemElement extends AppManagementPermissionItemElementBase { @@ -317,38 +317,11 @@ } } - private isSensorBlocked_(permissionType: PermissionTypeIndex| - undefined): boolean { - if (permissionType === undefined || !this.prefs) { - return false; - } - - switch (PermissionType[permissionType]) { - case PermissionType.kCamera: - return !this.getPref('ash.user.camera_allowed').value; - case PermissionType.kLocation: - return loadTimeData.getBoolean( - 'privacyHubLocationAccessControlEnabled') && - this.getPref<GeolocationAccessLevel>( - 'ash.user.geolocation_access_level') - .value !== GeolocationAccessLevel.ALLOWED; - case PermissionType.kMicrophone: - return !this.getPref('ash.user.microphone_allowed').value; - case PermissionType.kContacts: - case PermissionType.kStorage: - case PermissionType.kNotifications: - case PermissionType.kPrinting: - return false; - default: - assertNotReached(); - } - } - private getPermissionDescriptionString_( app: App|undefined, permissionType: PermissionTypeIndex|undefined): string { return getPermissionDescriptionString( - app, permissionType, this.isSensorBlocked_(permissionType)); + app, permissionType, this.isSensorBlocked(permissionType)); } private launchAllowSensorAccessDialog_(e: CustomEvent): void {
diff --git a/chrome/browser/resources/ash/settings/os_apps_page/app_management_page/privacy_hub_mixin.ts b/chrome/browser/resources/ash/settings/os_apps_page/app_management_page/privacy_hub_mixin.ts new file mode 100644 index 0000000..4a61b4f --- /dev/null +++ b/chrome/browser/resources/ash/settings/os_apps_page/app_management_page/privacy_hub_mixin.ts
@@ -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. + +/** + * @fileoverview Contains utilities related to privacy hub sensor access + * controls. + */ + +import {assertNotReached} from '//resources/js/assert.js'; +import type {PolymerElement} from '//resources/polymer/v3_0/polymer/polymer_bundled.min.js'; +import {dedupingMixin} from '//resources/polymer/v3_0/polymer/polymer_bundled.min.js'; +import {PrefsMixin} from '/shared/settings/prefs/prefs_mixin.js'; +import {PermissionType} from 'chrome://resources/cr_components/app_management/app_management.mojom-webui.js'; +import {PermissionTypeIndex} from 'chrome://resources/cr_components/app_management/permission_constants.js'; +import {loadTimeData} from 'chrome://resources/js/load_time_data.js'; + +import {GeolocationAccessLevel} from '../../os_privacy_page/privacy_hub_geolocation_subpage.js'; + +type Constructor<T> = new (...args: any[]) => T; + +export interface PrivacyHubMixinInterface { + isSensorBlocked(permissionType: PermissionTypeIndex|undefined): boolean; +} + +export const PrivacyHubMixin = dedupingMixin( + <T extends Constructor<PolymerElement>>(superClass: T): T& + Constructor<PrivacyHubMixinInterface> => { + const superClassBase = PrefsMixin(superClass); + + class PrivacyHubMixin extends superClassBase implements + PrivacyHubMixinInterface { + // Access to Camera, Microphone and Location can be blocked system wide + // from privacy hub. This function returns true if the relevant sensor + // is blocked. + isSensorBlocked(permissionType: PermissionTypeIndex| + undefined): boolean { + if (permissionType === undefined || !this.prefs) { + return false; + } + + switch (PermissionType[permissionType]) { + case PermissionType.kCamera: + return !this.getPref('ash.user.camera_allowed').value; + case PermissionType.kLocation: + return loadTimeData.getBoolean( + 'privacyHubLocationAccessControlEnabled') && + this.getPref<GeolocationAccessLevel>( + 'ash.user.geolocation_access_level') + .value !== GeolocationAccessLevel.ALLOWED; + case PermissionType.kMicrophone: + return !this.getPref('ash.user.microphone_allowed').value; + case PermissionType.kContacts: + case PermissionType.kStorage: + case PermissionType.kNotifications: + case PermissionType.kPrinting: + case PermissionType.kFileHandling: + return false; + default: + assertNotReached(); + } + } + } + return PrivacyHubMixin; + });
diff --git a/chrome/browser/resources/ash/settings/os_apps_page/app_management_page/read_only_permission_item.html b/chrome/browser/resources/ash/settings/os_apps_page/app_management_page/read_only_permission_item.html index 04bf4457..35c01383 100644 --- a/chrome/browser/resources/ash/settings/os_apps_page/app_management_page/read_only_permission_item.html +++ b/chrome/browser/resources/ash/settings/os_apps_page/app_management_page/read_only_permission_item.html
@@ -23,13 +23,27 @@ find permission elements. --> <div id="label" class="permission-name">[[permissionLabel]]</div> - <div id="description" class="permission-state secondary-text"> - [[getPermissionDescriptionString_(app, permissionType)]] - </div> + <localized-link + id="permissionDescription" + class="permission-state secondary-text" + localized-string="[[getPermissionDescriptionString_(app, + permissionType, prefs.ash.user.camera_allowed.value, + prefs.ash.user.microphone_allowed.value, + prefs.ash.user.geolocation_access_level.value)]]" + on-link-clicked="launchAllowSensorAccessDialog_"> + </localized-link> </div> </div> <template is="dom-if" if="[[isManaged_(app, permissionType)]]"> <cr-policy-indicator indicator-type="devicePolicy"> </cr-policy-indicator> </template> + <template is="dom-if" if="[[showAllowSensorAccessDialog_]]" restamp> + <settings-privacy-hub-allow-sensor-access-dialog + id="dialog" + prefs="{{prefs}}" + permission-type="[[permissionType]]" + on-close="onAllowSensorAccessDialogClose_"> + </settings-privacy-hub-allow-sensor-access-dialog> + </template> </template>
diff --git a/chrome/browser/resources/ash/settings/os_apps_page/app_management_page/read_only_permission_item.ts b/chrome/browser/resources/ash/settings/os_apps_page/app_management_page/read_only_permission_item.ts index bc91015a..52b63cf 100644 --- a/chrome/browser/resources/ash/settings/os_apps_page/app_management_page/read_only_permission_item.ts +++ b/chrome/browser/resources/ash/settings/os_apps_page/app_management_page/read_only_permission_item.ts
@@ -3,19 +3,23 @@ // found in the LICENSE file. import 'chrome://resources/ash/common/cr_elements/policy/cr_policy_indicator.js'; +import '../../os_privacy_page/privacy_hub_allow_sensor_access_dialog.js'; +import {assert} from '//resources/js/assert.js'; +import {PrefsMixin} from '/shared/settings/prefs/prefs_mixin.js'; import {I18nMixin} from 'chrome://resources/ash/common/cr_elements/i18n_mixin.js'; import {App} from 'chrome://resources/cr_components/app_management/app_management.mojom-webui.js'; import {PermissionTypeIndex} from 'chrome://resources/cr_components/app_management/permission_constants.js'; import {getPermission} from 'chrome://resources/cr_components/app_management/util.js'; -import {assert} from 'chrome://resources/js/assert.js'; +import {loadTimeData} from 'chrome://resources/js/load_time_data.js'; import {PolymerElement} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js'; +import {PrivacyHubMixin} from './privacy_hub_mixin.js'; import {getTemplate} from './read_only_permission_item.html.js'; import {getPermissionDescriptionString} from './util.js'; const AppManagementReadOnlyPermissionItemElementBase = - I18nMixin(PolymerElement); + PrivacyHubMixin(PrefsMixin(I18nMixin(PolymerElement))); export class AppManagementReadOnlyPermissionItemElement extends AppManagementReadOnlyPermissionItemElementBase { @@ -55,6 +59,11 @@ computed: 'computeAvailable_(app, permissionType)', reflectToAttribute: true, }, + + showAllowSensorAccessDialog_: { + type: Boolean, + value: false, + }, }; } @@ -63,6 +72,7 @@ permissionType: PermissionTypeIndex; icon: string; private available_: boolean; + private showAllowSensorAccessDialog_: boolean; private computeAvailable_( app: App|undefined, @@ -77,8 +87,10 @@ private getPermissionDescriptionString_( app: App|undefined, permissionType: PermissionTypeIndex|undefined): string { - return getPermissionDescriptionString( - app, permissionType, /*isSensorBlocked=*/ false); + const isSensorBlocked = + loadTimeData.getBoolean('privacyHubAppPermissionsV2Enabled') && + this.isSensorBlocked(permissionType); + return getPermissionDescriptionString(app, permissionType, isSensorBlocked); } private isManaged_( @@ -93,6 +105,17 @@ return permission.isManaged; } + + private launchAllowSensorAccessDialog_(e: CustomEvent): void { + e.detail.event.preventDefault(); + e.stopPropagation(); + + this.showAllowSensorAccessDialog_ = true; + } + + private onAllowSensorAccessDialogClose_(): void { + this.showAllowSensorAccessDialog_ = false; + } } declare global {
diff --git a/chrome/browser/resources/ash/settings/os_settings.ts b/chrome/browser/resources/ash/settings/os_settings.ts index 39144d0..df8a1f3 100644 --- a/chrome/browser/resources/ash/settings/os_settings.ts +++ b/chrome/browser/resources/ash/settings/os_settings.ts
@@ -219,6 +219,7 @@ export {AndroidAppsBrowserProxy, AndroidAppsBrowserProxyImpl} from './os_apps_page/android_apps_browser_proxy.js'; export {AppManagementFileHandlingItemElement} from './os_apps_page/app_management_page/file_handling_item.js'; export {PluginVmBrowserProxy, PluginVmBrowserProxyImpl} from './os_apps_page/app_management_page/plugin_vm_page/plugin_vm_browser_proxy.js'; +export {AppManagementReadOnlyPermissionItemElement} from './os_apps_page/app_management_page/read_only_permission_item.js'; export {AppManagementSupportedLinksItemElement} from './os_apps_page/app_management_page/supported_links_item.js'; export {AppManagementToggleRowElement} from './os_apps_page/app_management_page/toggle_row.js'; export {setAppNotificationProviderForTesting} from './os_apps_page/app_notifications_page/mojo_interface_provider.js';
diff --git a/chrome/browser/resources/chromeos/login/screens/common/gesture_navigation.ts b/chrome/browser/resources/chromeos/login/screens/common/gesture_navigation.ts index beaf0e03..d4e2de2 100644 --- a/chrome/browser/resources/chromeos/login/screens/common/gesture_navigation.ts +++ b/chrome/browser/resources/chromeos/login/screens/common/gesture_navigation.ts
@@ -21,10 +21,11 @@ import {OobeAdaptiveDialog} from '../../components/dialogs/oobe_adaptive_dialog.js'; import {OobeI18nMixin, OobeI18nMixinInterface} from '../../components/mixins/oobe_i18n_mixin.js'; import type {OobeCrLottie} from '../../components/oobe_cr_lottie.js'; +import {GestureNavigationPageHandler_GesturePages, GestureNavigationPageHandlerRemote} from '../../mojom-webui/screens_common.mojom-webui.js'; +import {OobeScreensFactoryBrowserProxy} from '../../oobe_screens_factory_proxy.js'; import {getTemplate} from './gesture_navigation.html.js'; - /** * Enum to represent each page in the gesture navigation screen. */ @@ -35,16 +36,6 @@ BACK = 'gestureBack', } -/** - * Available user actions. - */ -enum UserAction { - SKIP = 'skip', - EXIT = 'exit', - PAGE_CHANGE = 'gesture-page-change', -} - - export const GestureScreenElementBase = mixinBehaviors( [LoginScreenBehavior, MultiStepBehavior], @@ -67,19 +58,20 @@ return {}; } + private handler: GestureNavigationPageHandlerRemote; + constructor() { super(); + this.handler = new GestureNavigationPageHandlerRemote(); + OobeScreensFactoryBrowserProxy.getInstance() + .screenFactory.createGestureNavigationPageHandler( + this.handler.$.bindNewPipeAndPassReceiver()); } override get UI_STEPS() { return GesturePage; } - - override get EXTERNAL_API(): string[] { - return []; - } - // eslint-disable-next-line @typescript-eslint/naming-convention override defaultUIStep(): GesturePage { return GesturePage.INTRO; @@ -94,7 +86,7 @@ * This is the 'on-tap' event handler for the skip button. */ private onSkip_(): void { - this.userActed(UserAction.SKIP); + this.handler.onSkipClicked(); } /** @@ -116,7 +108,7 @@ // report exit. Keep the currentPage_ value so the UI does not get // updated until the next screen is shown. this.setPlayCurrentScreenAnimation(false); - this.userActed(UserAction.EXIT); + this.handler.onExitClicked(); break; } } @@ -145,8 +137,25 @@ private setCurrentPage_(newPage: GesturePage): void { this.setPlayCurrentScreenAnimation(false); this.setUIStep(newPage); - this.userActed([UserAction.PAGE_CHANGE, newPage]); this.setPlayCurrentScreenAnimation(true); + switch (this.uiStep) { + case GesturePage.INTRO: + this.handler.onPageChange( + GestureNavigationPageHandler_GesturePages.kIntro); + break; + case GesturePage.HOME: + this.handler.onPageChange( + GestureNavigationPageHandler_GesturePages.kHome); + break; + case GesturePage.OVERVIEW: + this.handler.onPageChange( + GestureNavigationPageHandler_GesturePages.kOverview); + break; + case GesturePage.BACK: + this.handler.onPageChange( + GestureNavigationPageHandler_GesturePages.kBack); + break; + } } /**
diff --git a/chrome/browser/resources/chromeos/login/screens/osauth/cryptohome_recovery.html b/chrome/browser/resources/chromeos/login/screens/osauth/cryptohome_recovery.html index eae3460..95d0c84 100644 --- a/chrome/browser/resources/chromeos/login/screens/osauth/cryptohome_recovery.html +++ b/chrome/browser/resources/chromeos/login/screens/osauth/cryptohome_recovery.html
@@ -8,45 +8,6 @@ <iron-icon slot="icon" icon="oobe-32:googleg"></iron-icon> </oobe-loading-dialog> -<oobe-adaptive-dialog id="successDialog" role="dialog" for-step="done" - aria-label$="[[i18nDynamic(locale, 'cryptohomeRecoverySuccessTitle')]]"> - <iron-icon slot="icon" icon="oobe-32:lock"></iron-icon> - <h1 slot="title"> - [[i18nDynamic(locale, 'cryptohomeRecoverySuccessTitle')]] - </h1> - <div slot="content" class="flex layout vertical center center-justified"> - <iron-icon icon="oobe-illos:pin-illustration-illo" - class="illustration-jelly"> - </iron-icon> - </div> - <div slot="bottom-buttons"> - <oobe-text-button id="doneButton" inverse on-click="onDone" - class="focus-on-show" text-key="cryptohomeRecoveryDoneButton"> - </oobe-text-button> - </div> -</oobe-adaptive-dialog> - -<oobe-adaptive-dialog id="errorDialog" role="dialog" for-step="error" - aria-label$="[[i18nDynamic(locale, 'cryptohomeRecoveryErrorTitle')]]"> - <iron-icon slot="icon" icon="oobe-32:googleg"></iron-icon> - <h1 slot="title"> - [[i18nDynamic(locale, 'cryptohomeRecoveryErrorTitle')]] - </h1> - <div slot="content" class="flex layout vertical center center-justified"> - <iron-icon icon="oobe-illos:error-illo" class="illustration-jelly"> - </iron-icon> - </div> - <div slot="bottom-buttons"> - <oobe-text-button id="manualRecoveryButton" - on-click="onGoToManualRecovery" - text-key="cryptohomeRecoveryManualRecoveryButton"> - </oobe-text-button> - <oobe-text-button id="retryButton" on-click="onRetry" - text-key="cryptohomeRecoveryRetryButton"> - </oobe-text-button> - </div> -</oobe-adaptive-dialog> - <oobe-adaptive-dialog id="reauthNotificationDialog" role="dialog" for-step="reauth-notification" aria-label$="[[i18nDynamic(locale,
diff --git a/chrome/browser/resources/chromeos/login/screens/osauth/cryptohome_recovery.ts b/chrome/browser/resources/chromeos/login/screens/osauth/cryptohome_recovery.ts index 294c67f..d488e7c 100644 --- a/chrome/browser/resources/chromeos/login/screens/osauth/cryptohome_recovery.ts +++ b/chrome/browser/resources/chromeos/login/screens/osauth/cryptohome_recovery.ts
@@ -21,8 +21,6 @@ // eslint-disable-next-line @typescript-eslint/naming-convention enum CryptohomeRecoveryUIState { LOADING = 'loading', - DONE = 'done', - ERROR = 'error', REAUTH_NOTIFICATION = 'reauth-notification', } @@ -78,8 +76,6 @@ override get EXTERNAL_API(): string[] { return [ - 'onRecoverySucceeded', - 'onRecoveryFailed', 'showReauthNotification', ]; } @@ -102,22 +98,6 @@ } /** - * Called when Cryptohome recovery succeeded. - */ - onRecoverySucceeded(): void { - this.setUIStep(CryptohomeRecoveryUIState.DONE); - this.disabled = false; - } - - /** - * Called when Cryptohome recovery failed. - */ - onRecoveryFailed(): void { - this.setUIStep(CryptohomeRecoveryUIState.ERROR); - this.disabled = false; - } - - /** * Shows a reauth required message when there's no reauth proof token. */ showReauthNotification(): void { @@ -126,39 +106,6 @@ } /** - * Enter old password button click handler. - */ - private onGoToManualRecovery(): void { - if (this.disabled) { - return; - } - this.disabled = true; - this.userActed('enter-old-password'); - } - - /** - * Retry button click handler. - */ - private onRetry(): void { - if (this.disabled) { - return; - } - this.disabled = true; - this.userActed('retry'); - } - - /** - * Done button click handler. - */ - private onDone(): void { - if (this.disabled) { - return; - } - this.disabled = true; - this.userActed('done'); - } - - /** * Click handler for the next button on the reauth notification screen. */ private onReauthButtonClicked(): void {
diff --git a/chrome/browser/resources/lens/overlay/text_layer.ts b/chrome/browser/resources/lens/overlay/text_layer.ts index fb14b4c8..c947961 100644 --- a/chrome/browser/resources/lens/overlay/text_layer.ts +++ b/chrome/browser/resources/lens/overlay/text_layer.ts
@@ -46,6 +46,11 @@ CenterRotatedBox_CoordinateType.kNormalized; } +// Return the text separator if there is one, else returns a space. +function getTextSeparator(word: Word): string { + return word.textSeparator ? word.textSeparator : ' '; +} + export interface TextLayerElement { $: { wordsContainer: DomRepeat, @@ -421,7 +426,7 @@ return selectedWords .map((word, index) => { return word.plainText + - (index < selectedWords.length - 1 ? word.textSeparator : ''); + (index < selectedWords.length - 1 ? getTextSeparator(word) : ''); }) .join(''); }
diff --git a/chrome/browser/resources/side_panel/read_anything/language_menu.html b/chrome/browser/resources/side_panel/read_anything/language_menu.html index 30022a0..6731401c 100644 --- a/chrome/browser/resources/side_panel/read_anything/language_menu.html +++ b/chrome/browser/resources/side_panel/read_anything/language_menu.html
@@ -1,11 +1,11 @@ -<style include="cr-hidden-style cr-icons"> +<style include="cr-icons"> #languageMenu::part(dialog) { min-width: 304px; width: auto; margin-left: var(--sp-body-padding); margin-right: var(--sp-body-padding); height: fit-content; - background-color: var(--color-menu-background); + background: var(--color-side-panel-content-background); } cr-icon { @@ -43,7 +43,6 @@ background-color: transparent; border: none; width: 100%; - color: var(--color-sys-on-surface-subtle); } .dropdown-line {
diff --git a/chrome/browser/resources/side_panel/read_anything/language_menu.ts b/chrome/browser/resources/side_panel/read_anything/language_menu.ts index 0767652ee..942a0fc 100644 --- a/chrome/browser/resources/side_panel/read_anything/language_menu.ts +++ b/chrome/browser/resources/side_panel/read_anything/language_menu.ts
@@ -2,7 +2,6 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -import '//resources/cr_elements/cr_hidden_style.css.js'; import '//resources/cr_elements/cr_icon_button/cr_icon_button.js'; import '//resources/cr_elements/cr_icons.css.js'; import '//resources/cr_elements/icons.html.js';
diff --git a/chrome/browser/screen_ai/optical_character_recognizer_browsertest.cc b/chrome/browser/screen_ai/optical_character_recognizer_browsertest.cc index 5c3ce0f..19f57f1c 100644 --- a/chrome/browser/screen_ai/optical_character_recognizer_browsertest.cc +++ b/chrome/browser/screen_ai/optical_character_recognizer_browsertest.cc
@@ -162,14 +162,12 @@ base::test::ScopedFeatureList feature_list_; }; -// TODO(crbug.com/327181467): This test was flaky as it takes more time on -// slower machines to initialize OCR. Enable it with a higher time-out -// threshold. -IN_PROC_BROWSER_TEST_P(OpticalCharacterRecognizerTest, DISABLED_Create) { +IN_PROC_BROWSER_TEST_P(OpticalCharacterRecognizerTest, Create) { scoped_refptr<screen_ai::OpticalCharacterRecognizer> ocr = screen_ai::OpticalCharacterRecognizer::Create(browser()->profile()); base::RunLoop run_loop; - WaitForStatus(ocr, &run_loop, /*remaining_tries=*/10); + // This step can be slow. + WaitForStatus(ocr, &run_loop, /*remaining_tries=*/25); run_loop.Run(); EXPECT_TRUE(ocr->StatusAvailableForTesting());
diff --git a/chrome/browser/search_engine_choice/search_engine_choice_dialog_browsertest.cc b/chrome/browser/search_engine_choice/search_engine_choice_dialog_browsertest.cc index 8e2f88a..ec6f916c 100644 --- a/chrome/browser/search_engine_choice/search_engine_choice_dialog_browsertest.cc +++ b/chrome/browser/search_engine_choice/search_engine_choice_dialog_browsertest.cc
@@ -121,8 +121,8 @@ }; webapps::AppId InstallPWA(Profile* profile, const GURL& start_url) { - auto web_app_info = std::make_unique<web_app::WebAppInstallInfo>(); - web_app_info->start_url = start_url; + auto web_app_info = + web_app::WebAppInstallInfo::CreateWithStartUrlForTesting(start_url); web_app_info->scope = start_url.GetWithoutFilename(); web_app_info->user_display_mode = web_app::mojom::UserDisplayMode::kStandalone;
diff --git a/chrome/browser/sessions/app_session_restore_lacros_browsertest.cc b/chrome/browser/sessions/app_session_restore_lacros_browsertest.cc index ab3c6e24..f258e23 100644 --- a/chrome/browser/sessions/app_session_restore_lacros_browsertest.cc +++ b/chrome/browser/sessions/app_session_restore_lacros_browsertest.cc
@@ -42,8 +42,8 @@ } webapps::AppId InstallPWA(Profile* profile, const GURL& start_url) { - auto web_app_info = std::make_unique<web_app::WebAppInstallInfo>(); - web_app_info->start_url = start_url; + auto web_app_info = + web_app::WebAppInstallInfo::CreateWithStartUrlForTesting(start_url); web_app_info->scope = start_url.GetWithoutFilename(); web_app_info->user_display_mode = web_app::mojom::UserDisplayMode::kStandalone;
diff --git a/chrome/browser/sessions/session_restore_browsertest.cc b/chrome/browser/sessions/session_restore_browsertest.cc index 9652d3e..3386d6d6 100644 --- a/chrome/browser/sessions/session_restore_browsertest.cc +++ b/chrome/browser/sessions/session_restore_browsertest.cc
@@ -3443,8 +3443,8 @@ } webapps::AppId InstallPWA(Profile* profile, const GURL& start_url) { - auto web_app_info = std::make_unique<web_app::WebAppInstallInfo>(); - web_app_info->start_url = start_url; + auto web_app_info = + web_app::WebAppInstallInfo::CreateWithStartUrlForTesting(start_url); web_app_info->scope = start_url.GetWithoutFilename(); web_app_info->user_display_mode = web_app::mojom::UserDisplayMode::kStandalone; @@ -3456,8 +3456,8 @@ blink::Manifest::TabStrip tab_strip; tab_strip.home_tab = blink::Manifest::HomeTabParams(); - auto web_app_info = std::make_unique<web_app::WebAppInstallInfo>(); - web_app_info->start_url = start_url; + auto web_app_info = + web_app::WebAppInstallInfo::CreateWithStartUrlForTesting(start_url); web_app_info->scope = start_url.GetWithoutFilename(); web_app_info->user_display_mode = web_app::mojom::UserDisplayMode::kStandalone;
diff --git a/chrome/browser/signin/dice_web_signin_interceptor_browsertest.cc b/chrome/browser/signin/dice_web_signin_interceptor_browsertest.cc index 0012e5f..2ad1a1a 100644 --- a/chrome/browser/signin/dice_web_signin_interceptor_browsertest.cc +++ b/chrome/browser/signin/dice_web_signin_interceptor_browsertest.cc
@@ -1088,8 +1088,8 @@ // Install web app Profile* profile = browser()->profile(); const GURL kWebAppURL("http://www.webapp.com"); - auto web_app_info = std::make_unique<web_app::WebAppInstallInfo>(); - web_app_info->start_url = kWebAppURL; + auto web_app_info = + web_app::WebAppInstallInfo::CreateWithStartUrlForTesting(kWebAppURL); web_app_info->scope = kWebAppURL.GetWithoutFilename(); web_app_info->user_display_mode = web_app::mojom::UserDisplayMode::kStandalone;
diff --git a/chrome/browser/ssl/ssl_browsertest.cc b/chrome/browser/ssl/ssl_browsertest.cc index 4dbe84bd..c70b5e3 100644 --- a/chrome/browser/ssl/ssl_browsertest.cc +++ b/chrome/browser/ssl/ssl_browsertest.cc
@@ -1288,8 +1288,8 @@ class SSLUITestWithWebApps : public SSLUITest { public: Browser* InstallAndOpenTestWebApp(const GURL& start_url) { - auto web_app_info = std::make_unique<web_app::WebAppInstallInfo>(); - web_app_info->start_url = start_url; + auto web_app_info = + web_app::WebAppInstallInfo::CreateWithStartUrlForTesting(start_url); web_app_info->scope = start_url.GetWithoutFilename(); web_app_info->title = u"Test app"; web_app_info->description = u"Test description";
diff --git a/chrome/browser/ssl/ssl_fenced_frame_browsertest.cc b/chrome/browser/ssl/ssl_fenced_frame_browsertest.cc index 695baab..bd6c1c8 100644 --- a/chrome/browser/ssl/ssl_fenced_frame_browsertest.cc +++ b/chrome/browser/ssl/ssl_fenced_frame_browsertest.cc
@@ -55,8 +55,8 @@ protected: Browser* InstallAndOpenTestWebApp(const GURL& start_url) { - auto web_app_info = std::make_unique<web_app::WebAppInstallInfo>(); - web_app_info->start_url = start_url; + auto web_app_info = + web_app::WebAppInstallInfo::CreateWithStartUrlForTesting(start_url); web_app_info->scope = start_url.GetWithoutFilename(); web_app_info->title = u"Test app"; web_app_info->description = u"Test description";
diff --git a/chrome/browser/ui/android/signin/java/src/org/chromium/chrome/browser/ui/signin/SyncPromoController.java b/chrome/browser/ui/android/signin/java/src/org/chromium/chrome/browser/ui/signin/SyncPromoController.java index 2cddfb4..17b050b 100644 --- a/chrome/browser/ui/android/signin/java/src/org/chromium/chrome/browser/ui/signin/SyncPromoController.java +++ b/chrome/browser/ui/android/signin/java/src/org/chromium/chrome/browser/ui/signin/SyncPromoController.java
@@ -114,8 +114,6 @@ private static final int NTP_SYNC_PROMO_INCREASE_SHOW_COUNT_AFTER_MINUTE = 30; private static final String SYNC_ANDROID_NTP_PROMO_MAX_IMPRESSIONS = "SyncAndroidNTPPromoMaxImpressions"; - private static final Set<Integer> HISTORY_SYNC_DEDICATED_ACCESS_POINTS = - Set.of(SigninAccessPoint.RECENT_TABS); @VisibleForTesting static final String GMAIL_DOMAIN = "gmail.com"; /** Strings used for promo shown count histograms. */ @@ -205,6 +203,10 @@ } private static boolean canShowSettingsPromo() { + if (ChromeFeatureList.isEnabled( + ChromeFeatureList.REPLACE_SYNC_PROMOS_WITH_SIGN_IN_PROMOS)) { + return false; + } SharedPreferencesManager preferencesManager = ChromeSharedPreferences.getInstance(); boolean isPromoDismissed = preferencesManager.readBoolean( @@ -261,8 +263,14 @@ mImpressionUserActionName = "Signin_Impression_FromBookmarkManager"; mSyncPromoDismissedPreferenceTracker = ChromePreferenceKeys.SIGNIN_PROMO_BOOKMARKS_DECLINED; - mTitleStringId = R.string.sync_promo_title_bookmarks; - mDescriptionStringId = R.string.sync_promo_description_bookmarks; + if (ChromeFeatureList.isEnabled( + ChromeFeatureList.REPLACE_SYNC_PROMOS_WITH_SIGN_IN_PROMOS)) { + mTitleStringId = R.string.signin_promo_title_bookmarks; + mDescriptionStringId = R.string.signin_promo_description_bookmarks; + } else { + mTitleStringId = R.string.sync_promo_title_bookmarks; + mDescriptionStringId = R.string.sync_promo_description_bookmarks; + } mHistoryOptInMode = SigninAndHistoryOptInCoordinator.HistoryOptInMode.NONE; // TODO(b/332704829): Move delegate creation outside of this constructor. mDelegate = @@ -417,6 +425,17 @@ } private boolean canShowBookmarkPromo() { + if (ChromeFeatureList.isEnabled( + ChromeFeatureList.REPLACE_SYNC_PROMOS_WITH_SIGN_IN_PROMOS)) { + assert SyncFeatureMap.isEnabled( + SyncFeatureMap.ENABLE_BOOKMARK_FOLDERS_FOR_ACCOUNT_STORAGE); + if (IdentityServicesProvider.get() + .getIdentityManager(mProfile) + .hasPrimaryAccount(ConsentLevel.SIGNIN)) { + return false; + } + } + SyncService syncService = SyncServiceFactory.getForProfile(mProfile); if (SyncFeatureMap.isEnabled(SyncFeatureMap.ENABLE_BOOKMARK_FOLDERS_FOR_ACCOUNT_STORAGE) && syncService @@ -597,8 +616,18 @@ view.getTitle().setText(mTitleStringId); view.getDescription().setText(mDescriptionStringId); + IdentityManager identityManager = + IdentityServicesProvider.get().getIdentityManager(mProfile); + SigninManager signinManager = IdentityServicesProvider.get().getSigninManager(mProfile); + List<CoreAccountInfo> accounts = + AccountManagerFacadeProvider.getInstance().getCoreAccountInfos().getResult(); + PrefService prefService = UserPrefs.get(mProfile); + boolean shouldLaunchSigninFlow = + shouldLaunchSigninFlow( + mAccessPoint, identityManager, signinManager, accounts, prefService); view.getPrimaryButton().setText(mDelegate.getTextForPrimaryButton(context, null)); - view.getPrimaryButton().setOnClickListener(v -> signinWithNewAccount(context)); + view.getPrimaryButton() + .setOnClickListener(v -> signinWithNewAccount(context, shouldLaunchSigninFlow)); view.getSecondaryButton().setVisibility(View.GONE); } @@ -618,20 +647,17 @@ List<CoreAccountInfo> accounts = AccountManagerFacadeProvider.getInstance().getCoreAccountInfos().getResult(); PrefService prefService = UserPrefs.get(mProfile); - boolean launchBookmarksSigninFlow = - shouldLaunchBookmarksSigninFlow( + boolean shouldLaunchSigninFlow = + shouldLaunchSigninFlow( mAccessPoint, identityManager, signinManager, accounts, prefService); - if (launchBookmarksSigninFlow) { + if (!ChromeFeatureList.isEnabled(ChromeFeatureList.REPLACE_SYNC_PROMOS_WITH_SIGN_IN_PROMOS) + && shouldLaunchSigninFlow + && mAccessPoint == SigninAccessPoint.BOOKMARK_MANAGER) { view.getDescription().setText(R.string.signin_promo_description_bookmarks); } // The bookmarks manager has different conditions for displaying the new flow. view.getPrimaryButton() - .setOnClickListener( - v -> - signinWithDefaultAccount( - context, - launchBookmarksSigninFlow - || shouldLaunchDedicatedSigninAndHistorySyncFlow())); + .setOnClickListener(v -> signinWithDefaultAccount(context, shouldLaunchSigninFlow)); view.getPrimaryButton().setText(mDelegate.getTextForPrimaryButton(context, mProfileData)); if (identityManager.hasPrimaryAccount(ConsentLevel.SIGNIN)) { view.getSecondaryButton().setVisibility(View.GONE); @@ -645,37 +671,34 @@ view.getSecondaryButton().setText(R.string.signin_promo_choose_another_account); view.getSecondaryButton() .setOnClickListener( - v -> - signinWithNotDefaultAccount( - context, - launchBookmarksSigninFlow - || shouldLaunchDedicatedSigninAndHistorySyncFlow())); + v -> signinWithNotDefaultAccount(context, shouldLaunchSigninFlow)); view.getSecondaryButton().setVisibility(View.VISIBLE); } } - private void signinWithNewAccount(Context context) { + private void signinWithNewAccount(Context context, boolean launchSigninFlow) { recordShowCountHistogram(UserAction.CONTINUED); - if (shouldLaunchDedicatedSigninAndHistorySyncFlow()) { - mSigninAndHistoryOptInActivityLauncher.launchActivityForHistorySyncDedicatedFlow( - context, - mProfile, - mBottomSheetStrings, - SigninAndHistoryOptInCoordinator.NoAccountSigninMode.ADD_ACCOUNT, - SigninAndHistoryOptInCoordinator.WithAccountSigninMode - .DEFAULT_ACCOUNT_BOTTOM_SHEET, - mAccessPoint); - } else if (ChromeFeatureList.isEnabled( - ChromeFeatureList.REPLACE_SYNC_PROMOS_WITH_SIGN_IN_PROMOS)) { - mSigninAndHistoryOptInActivityLauncher.launchActivityIfAllowed( - context, - mProfile, - mBottomSheetStrings, - SigninAndHistoryOptInCoordinator.NoAccountSigninMode.ADD_ACCOUNT, - SigninAndHistoryOptInCoordinator.WithAccountSigninMode - .DEFAULT_ACCOUNT_BOTTOM_SHEET, - mHistoryOptInMode, - mAccessPoint); + if (launchSigninFlow) { + if (mAccessPoint == SigninAccessPoint.RECENT_TABS) { + mSigninAndHistoryOptInActivityLauncher.launchActivityForHistorySyncDedicatedFlow( + context, + mProfile, + mBottomSheetStrings, + SigninAndHistoryOptInCoordinator.NoAccountSigninMode.ADD_ACCOUNT, + SigninAndHistoryOptInCoordinator.WithAccountSigninMode + .DEFAULT_ACCOUNT_BOTTOM_SHEET, + mAccessPoint); + } else { + mSigninAndHistoryOptInActivityLauncher.launchActivityIfAllowed( + context, + mProfile, + mBottomSheetStrings, + SigninAndHistoryOptInCoordinator.NoAccountSigninMode.ADD_ACCOUNT, + SigninAndHistoryOptInCoordinator.WithAccountSigninMode + .DEFAULT_ACCOUNT_BOTTOM_SHEET, + mHistoryOptInMode, + mAccessPoint); + } } else { mSyncConsentActivityLauncher.launchActivityForPromoAddAccountFlow( context, mAccessPoint); @@ -684,25 +707,27 @@ private void signinWithDefaultAccount(Context context, boolean launchSigninFlow) { recordShowCountHistogram(UserAction.CONTINUED); - if (shouldLaunchDedicatedSigninAndHistorySyncFlow()) { - mSigninAndHistoryOptInActivityLauncher.launchActivityForHistorySyncDedicatedFlow( - context, - mProfile, - mBottomSheetStrings, - SigninAndHistoryOptInCoordinator.NoAccountSigninMode.ADD_ACCOUNT, - SigninAndHistoryOptInCoordinator.WithAccountSigninMode - .DEFAULT_ACCOUNT_BOTTOM_SHEET, - mAccessPoint); - } else if (launchSigninFlow) { - mSigninAndHistoryOptInActivityLauncher.launchActivityIfAllowed( - context, - mProfile, - mBottomSheetStrings, - SigninAndHistoryOptInCoordinator.NoAccountSigninMode.ADD_ACCOUNT, - SigninAndHistoryOptInCoordinator.WithAccountSigninMode - .DEFAULT_ACCOUNT_BOTTOM_SHEET, - mHistoryOptInMode, - mAccessPoint); + if (launchSigninFlow) { + if (mAccessPoint == SigninAccessPoint.RECENT_TABS) { + mSigninAndHistoryOptInActivityLauncher.launchActivityForHistorySyncDedicatedFlow( + context, + mProfile, + mBottomSheetStrings, + SigninAndHistoryOptInCoordinator.NoAccountSigninMode.ADD_ACCOUNT, + SigninAndHistoryOptInCoordinator.WithAccountSigninMode + .DEFAULT_ACCOUNT_BOTTOM_SHEET, + mAccessPoint); + } else { + mSigninAndHistoryOptInActivityLauncher.launchActivityIfAllowed( + context, + mProfile, + mBottomSheetStrings, + SigninAndHistoryOptInCoordinator.NoAccountSigninMode.ADD_ACCOUNT, + SigninAndHistoryOptInCoordinator.WithAccountSigninMode + .DEFAULT_ACCOUNT_BOTTOM_SHEET, + mHistoryOptInMode, + mAccessPoint); + } } else { mSyncConsentActivityLauncher.launchActivityForPromoDefaultFlow( context, mAccessPoint, mProfileData.getAccountEmail()); @@ -711,25 +736,27 @@ private void signinWithNotDefaultAccount(Context context, boolean launchSigninFlow) { recordShowCountHistogram(UserAction.CONTINUED); - if (shouldLaunchDedicatedSigninAndHistorySyncFlow()) { - mSigninAndHistoryOptInActivityLauncher.launchActivityForHistorySyncDedicatedFlow( - context, - mProfile, - mBottomSheetStrings, - SigninAndHistoryOptInCoordinator.NoAccountSigninMode.ADD_ACCOUNT, - SigninAndHistoryOptInCoordinator.WithAccountSigninMode - .CHOOSE_ACCOUNT_BOTTOM_SHEET, - mAccessPoint); - } else if (launchSigninFlow) { - mSigninAndHistoryOptInActivityLauncher.launchActivityIfAllowed( - context, - mProfile, - mBottomSheetStrings, - SigninAndHistoryOptInCoordinator.NoAccountSigninMode.ADD_ACCOUNT, - SigninAndHistoryOptInCoordinator.WithAccountSigninMode - .CHOOSE_ACCOUNT_BOTTOM_SHEET, - mHistoryOptInMode, - mAccessPoint); + if (launchSigninFlow) { + if (mAccessPoint == SigninAccessPoint.RECENT_TABS) { + mSigninAndHistoryOptInActivityLauncher.launchActivityForHistorySyncDedicatedFlow( + context, + mProfile, + mBottomSheetStrings, + SigninAndHistoryOptInCoordinator.NoAccountSigninMode.ADD_ACCOUNT, + SigninAndHistoryOptInCoordinator.WithAccountSigninMode + .CHOOSE_ACCOUNT_BOTTOM_SHEET, + mAccessPoint); + } else { + mSigninAndHistoryOptInActivityLauncher.launchActivityIfAllowed( + context, + mProfile, + mBottomSheetStrings, + SigninAndHistoryOptInCoordinator.NoAccountSigninMode.ADD_ACCOUNT, + SigninAndHistoryOptInCoordinator.WithAccountSigninMode + .CHOOSE_ACCOUNT_BOTTOM_SHEET, + mHistoryOptInMode, + mAccessPoint); + } } else { mSyncConsentActivityLauncher.launchActivityForPromoChooseAccountFlow( context, mAccessPoint, mProfileData.getAccountEmail()); @@ -774,12 +801,6 @@ RecordUserAction.record(mImpressionUserActionName); } - private boolean shouldLaunchDedicatedSigninAndHistorySyncFlow() { - return ChromeFeatureList.isEnabled( - ChromeFeatureList.REPLACE_SYNC_PROMOS_WITH_SIGN_IN_PROMOS) - && HISTORY_SYNC_DEDICATED_ACCESS_POINTS.contains(mAccessPoint); - } - public static void setPrefSigninPromoDeclinedBookmarksForTests(boolean isDeclined) { ChromeSharedPreferences.getInstance() .writeBoolean(ChromePreferenceKeys.SIGNIN_PROMO_BOOKMARKS_DECLINED, isDeclined); @@ -790,12 +811,19 @@ } @VisibleForTesting - static boolean shouldLaunchBookmarksSigninFlow( + static boolean shouldLaunchSigninFlow( @SigninAccessPoint int accessPoint, IdentityManager identityManager, SigninManager signinManager, @Nullable List<CoreAccountInfo> accounts, PrefService prefService) { + if (ChromeFeatureList.isEnabled( + ChromeFeatureList.REPLACE_SYNC_PROMOS_WITH_SIGN_IN_PROMOS)) { + assert SyncFeatureMap.isEnabled( + SyncFeatureMap.ENABLE_BOOKMARK_FOLDERS_FOR_ACCOUNT_STORAGE); + return true; + } + if (!SyncFeatureMap.isEnabled(SyncFeatureMap.ENABLE_BOOKMARK_FOLDERS_FOR_ACCOUNT_STORAGE)) { return false; }
diff --git a/chrome/browser/ui/android/signin/junit/src/org/chromium/chrome/browser/ui/signin/SyncPromoControllerTest.java b/chrome/browser/ui/android/signin/junit/src/org/chromium/chrome/browser/ui/signin/SyncPromoControllerTest.java index 0dfd5d9..111fb06 100644 --- a/chrome/browser/ui/android/signin/junit/src/org/chromium/chrome/browser/ui/signin/SyncPromoControllerTest.java +++ b/chrome/browser/ui/android/signin/junit/src/org/chromium/chrome/browser/ui/signin/SyncPromoControllerTest.java
@@ -57,6 +57,7 @@ @DisableFeatures({ ChromeFeatureList.FORCE_DISABLE_EXTENDED_SYNC_PROMOS, ChromeFeatureList.SYNC_ANDROID_LIMIT_NTP_PROMO_IMPRESSIONS, + ChromeFeatureList.REPLACE_SYNC_PROMOS_WITH_SIGN_IN_PROMOS, }) @EnableFeatures(SyncFeatureMap.ENABLE_BOOKMARK_FOLDERS_FOR_ACCOUNT_STORAGE) public class SyncPromoControllerTest { @@ -495,15 +496,31 @@ } @Test - @EnableFeatures(SyncFeatureMap.ENABLE_BOOKMARK_FOLDERS_FOR_ACCOUNT_STORAGE) - public void shouldLaunchBookmarksSigninFlowReturnsTrue() { + @EnableFeatures(ChromeFeatureList.REPLACE_SYNC_PROMOS_WITH_SIGN_IN_PROMOS) + public void shouldLaunchBookmarksSigninFlowReturnsTrue_UnoFeatureEnabled() { doReturn(false).when(mIdentityManager).hasPrimaryAccount(ConsentLevel.SIGNIN); doReturn(SyncPromoController.GMAIL_DOMAIN) .when(mSigninManager) .extractDomainName(anyString()); Assert.assertTrue( - SyncPromoController.shouldLaunchBookmarksSigninFlow( + SyncPromoController.shouldLaunchSigninFlow( + SigninAccessPoint.BOOKMARK_MANAGER, + mIdentityManager, + mSigninManager, + List.of(mAccountManagerTestRule.addAccount("test@gmail.com")), + mPrefService)); + } + + @Test + public void shouldLaunchBookmarksSigninFlowReturnsTrue_AccountStorageFeatureEnabled() { + doReturn(false).when(mIdentityManager).hasPrimaryAccount(ConsentLevel.SIGNIN); + doReturn(SyncPromoController.GMAIL_DOMAIN) + .when(mSigninManager) + .extractDomainName(anyString()); + + Assert.assertTrue( + SyncPromoController.shouldLaunchSigninFlow( SigninAccessPoint.BOOKMARK_MANAGER, mIdentityManager, mSigninManager, @@ -513,14 +530,14 @@ @Test @DisableFeatures(SyncFeatureMap.ENABLE_BOOKMARK_FOLDERS_FOR_ACCOUNT_STORAGE) - public void shouldLaunchBookmarksSigninFlowReturnsFalse_FeatureDisabled() { + public void shouldLaunchBookmarksSigninFlowReturnsFalse_AccountStorageFeatureDisabled() { doReturn(false).when(mIdentityManager).hasPrimaryAccount(ConsentLevel.SIGNIN); doReturn(SyncPromoController.GMAIL_DOMAIN) .when(mSigninManager) .extractDomainName(anyString()); Assert.assertFalse( - SyncPromoController.shouldLaunchBookmarksSigninFlow( + SyncPromoController.shouldLaunchSigninFlow( SigninAccessPoint.BOOKMARK_MANAGER, mIdentityManager, mSigninManager, @@ -537,7 +554,7 @@ .extractDomainName(anyString()); Assert.assertFalse( - SyncPromoController.shouldLaunchBookmarksSigninFlow( + SyncPromoController.shouldLaunchSigninFlow( SigninAccessPoint.NTP_FEED_TOP_PROMO, mIdentityManager, mSigninManager, @@ -554,7 +571,7 @@ .extractDomainName(anyString()); Assert.assertFalse( - SyncPromoController.shouldLaunchBookmarksSigninFlow( + SyncPromoController.shouldLaunchSigninFlow( SigninAccessPoint.BOOKMARK_MANAGER, mIdentityManager, mSigninManager, @@ -572,7 +589,7 @@ .extractDomainName(anyString()); Assert.assertFalse( - SyncPromoController.shouldLaunchBookmarksSigninFlow( + SyncPromoController.shouldLaunchSigninFlow( SigninAccessPoint.BOOKMARK_MANAGER, mIdentityManager, mSigninManager, @@ -587,7 +604,7 @@ doReturn("nongmail.com").when(mSigninManager).extractDomainName(anyString()); Assert.assertFalse( - SyncPromoController.shouldLaunchBookmarksSigninFlow( + SyncPromoController.shouldLaunchSigninFlow( SigninAccessPoint.BOOKMARK_MANAGER, mIdentityManager, mSigninManager, @@ -604,7 +621,7 @@ .extractDomainName(anyString()); Assert.assertFalse( - SyncPromoController.shouldLaunchBookmarksSigninFlow( + SyncPromoController.shouldLaunchSigninFlow( SigninAccessPoint.BOOKMARK_MANAGER, mIdentityManager, mSigninManager, @@ -621,7 +638,7 @@ .extractDomainName(anyString()); Assert.assertFalse( - SyncPromoController.shouldLaunchBookmarksSigninFlow( + SyncPromoController.shouldLaunchSigninFlow( SigninAccessPoint.BOOKMARK_MANAGER, mIdentityManager, mSigninManager,
diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd index 6f1f784..3f007c8 100644 --- a/chrome/browser/ui/android/strings/android_chrome_strings.grd +++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd
@@ -3414,6 +3414,9 @@ <message name="IDS_SYNC_PROMO_DESCRIPTION_BOOKMARKS" desc="This string is the body of a card that appears when the user opens Chrome's bookmarks; the user may be signed in to Chrome, but isn't syncing their Chrome data. The headline above this string is 'Get all your bookmarks'. There's no character limit but try to keep the translation under 120 characters." meaning="This message means that the user can get the bookmarks from their computer on their phone, and their phone's bookmarks on their computer. We want users to read this card and tap the 'Continue' button and turn on sync. The tone should be inviting."> Sync to get your bookmarks from your other devices </message> + <message name="IDS_SIGNIN_PROMO_TITLE_BOOKMARKS" desc="This string is the headline of a card that appears when the user opens Chrome's bookmarks; the user may be signed in to Chrome, but isn't syncing their Chrome data. The line below this string is 'Sync to get your bookmarks from your other devices'. [CHAR_LIMIT=70]" meaning="This headline means that the user can get the bookmarks from their computer on their phone, and their phone's bookmarks on their computer. We want users to read this card and tap the 'Continue' button and sign-in. The tone should be inviting."> + Get all your bookmarks + </message> <message name="IDS_SIGNIN_PROMO_DESCRIPTION_BOOKMARKS" desc="This string is the body of a card that appears when the user opens Chrome's bookmarks; the user is signed out of Chrome. The headline above this string is 'Get all your bookmarks'. There's no character limit but try to keep the translation under 120 characters." meaning="This message means that the user can get the bookmarks from their computer on their phone, and their phone's bookmarks on their computer. We want users to read this card and tap the 'Continue' button and sign-in. The tone should be inviting."> Sign in to get your bookmarks and more from your other devices </message>
diff --git a/chrome/browser/ui/android/strings/android_chrome_strings_grd/IDS_SIGNIN_PROMO_TITLE_BOOKMARKS.png.sha1 b/chrome/browser/ui/android/strings/android_chrome_strings_grd/IDS_SIGNIN_PROMO_TITLE_BOOKMARKS.png.sha1 new file mode 100644 index 0000000..27ee5e68 --- /dev/null +++ b/chrome/browser/ui/android/strings/android_chrome_strings_grd/IDS_SIGNIN_PROMO_TITLE_BOOKMARKS.png.sha1
@@ -0,0 +1 @@ +e4f91839c0b7464682a8c46ad9de547c1d488e17 \ No newline at end of file
diff --git a/chrome/browser/ui/ash/arc_open_url_delegate_impl_browsertest.cc b/chrome/browser/ui/ash/arc_open_url_delegate_impl_browsertest.cc index 5a09b39..7f49bed 100644 --- a/chrome/browser/ui/ash/arc_open_url_delegate_impl_browsertest.cc +++ b/chrome/browser/ui/ash/arc_open_url_delegate_impl_browsertest.cc
@@ -150,8 +150,8 @@ const GURL app_url = https_server().GetURL(GetAppUrlHost(), GetAppUrlPath()); // InstallTestWebApp() but with a ShareTarget definition added. - auto web_app_info = std::make_unique<web_app::WebAppInstallInfo>(); - web_app_info->start_url = app_url; + auto web_app_info = + web_app::WebAppInstallInfo::CreateWithStartUrlForTesting(app_url); web_app_info->scope = https_server().GetURL(GetAppUrlHost(), GetAppScopePath()); web_app_info->title = base::UTF8ToUTF16(GetAppName());
diff --git a/chrome/browser/ui/ash/desks/desks_client_browsertest.cc b/chrome/browser/ui/ash/desks/desks_client_browsertest.cc index 9903cdc2..3a24b06 100644 --- a/chrome/browser/ui/ash/desks/desks_client_browsertest.cc +++ b/chrome/browser/ui/ash/desks/desks_client_browsertest.cc
@@ -586,8 +586,8 @@ } Browser* InstallAndLaunchPWA(const GURL& start_url, bool launch_in_browser) { - auto web_app_info = std::make_unique<web_app::WebAppInstallInfo>(); - web_app_info->start_url = start_url; + auto web_app_info = + web_app::WebAppInstallInfo::CreateWithStartUrlForTesting(start_url); web_app_info->scope = start_url.GetWithoutFilename(); if (!launch_in_browser) { web_app_info->user_display_mode =
diff --git a/chrome/browser/ui/ash/shelf/app_service/app_service_app_window_browsertest.cc b/chrome/browser/ui/ash/shelf/app_service/app_service_app_window_browsertest.cc index 4e40fbc..f70f3637 100644 --- a/chrome/browser/ui/ash/shelf/app_service/app_service_app_window_browsertest.cc +++ b/chrome/browser/ui/ash/shelf/app_service/app_service_app_window_browsertest.cc
@@ -581,8 +581,8 @@ // |SetUpWebApp()| must be called after |SetUpOnMainThread()| to make sure // the Network Service process has been setup properly. std::string CreateWebApp() const { - auto web_app_info = std::make_unique<web_app::WebAppInstallInfo>(); - web_app_info->start_url = GetAppURL(); + auto web_app_info = + web_app::WebAppInstallInfo::CreateWithStartUrlForTesting(GetAppURL()); web_app_info->scope = GetAppURL().GetWithoutFilename(); std::string app_id = web_app::test::InstallWebApp(browser()->profile(),
diff --git a/chrome/browser/ui/ash/shelf/app_service/app_service_shelf_context_menu_browsertest.cc b/chrome/browser/ui/ash/shelf/app_service/app_service_shelf_context_menu_browsertest.cc index faaf1dc..510e6a8b 100644 --- a/chrome/browser/ui/ash/shelf/app_service/app_service_shelf_context_menu_browsertest.cc +++ b/chrome/browser/ui/ash/shelf/app_service/app_service_shelf_context_menu_browsertest.cc
@@ -121,8 +121,9 @@ Profile* profile = browser()->profile(); base::UserActionTester user_action_tester; - auto web_app_install_info = std::make_unique<web_app::WebAppInstallInfo>(); - web_app_install_info->start_url = GURL("https://example.org"); + auto web_app_install_info = + web_app::WebAppInstallInfo::CreateWithStartUrlForTesting( + GURL("https://example.org")); web_app_install_info->display_mode = blink::mojom::DisplayMode::kMinimalUi; webapps::AppId app_id = web_app::test::InstallWebApp(profile, std::move(web_app_install_info)); @@ -165,8 +166,9 @@ Profile* profile = browser()->profile(); base::UserActionTester user_action_tester; - auto web_app_install_info = std::make_unique<web_app::WebAppInstallInfo>(); - web_app_install_info->start_url = GURL("https://example.org"); + auto web_app_install_info = + web_app::WebAppInstallInfo::CreateWithStartUrlForTesting( + GURL("https://example.org")); web_app_install_info->display_mode = blink::mojom::DisplayMode::kMinimalUi; webapps::AppId app_id = web_app::test::InstallWebApp(profile, std::move(web_app_install_info)); @@ -198,8 +200,9 @@ Profile* profile = browser()->profile(); base::UserActionTester user_action_tester; - auto web_app_install_info = std::make_unique<web_app::WebAppInstallInfo>(); - web_app_install_info->start_url = GURL("https://example.org"); + auto web_app_install_info = + web_app::WebAppInstallInfo::CreateWithStartUrlForTesting( + GURL("https://example.org")); webapps::AppId app_id = web_app::test::InstallWebApp(profile, std::move(web_app_install_info)); @@ -224,8 +227,9 @@ } Profile* profile = browser()->profile(); - auto web_app_install_info = std::make_unique<web_app::WebAppInstallInfo>(); - web_app_install_info->start_url = GURL("https://example.org"); + auto web_app_install_info = + web_app::WebAppInstallInfo::CreateWithStartUrlForTesting( + GURL("https://example.org")); webapps::AppId app_id = web_app::test::InstallWebApp(profile, std::move(web_app_install_info)); @@ -282,8 +286,9 @@ Profile* profile = browser()->profile(); base::UserActionTester user_action_tester; - auto web_app_install_info = std::make_unique<web_app::WebAppInstallInfo>(); - web_app_install_info->start_url = GURL("https://example.org"); + auto web_app_install_info = + web_app::WebAppInstallInfo::CreateWithStartUrlForTesting( + GURL("https://example.org")); web_app_install_info->display_mode = blink::mojom::DisplayMode::kStandalone; web_app_install_info->display_override = {blink::mojom::DisplayMode::kTabbed}; webapps::AppId app_id = @@ -326,8 +331,9 @@ Profile* profile = browser()->profile(); base::UserActionTester user_action_tester; - auto web_app_install_info = std::make_unique<web_app::WebAppInstallInfo>(); - web_app_install_info->start_url = GURL("https://example.org"); + auto web_app_install_info = + web_app::WebAppInstallInfo::CreateWithStartUrlForTesting( + GURL("https://example.org")); web_app_install_info->display_mode = blink::mojom::DisplayMode::kStandalone; web_app_install_info->display_override = {blink::mojom::DisplayMode::kTabbed}; webapps::AppId app_id =
diff --git a/chrome/browser/ui/ash/shelf/app_service/web_app_shelf_browsertest.cc b/chrome/browser/ui/ash/shelf/app_service/web_app_shelf_browsertest.cc index a6bcf9a..b2d5ee15 100644 --- a/chrome/browser/ui/ash/shelf/app_service/web_app_shelf_browsertest.cc +++ b/chrome/browser/ui/ash/shelf/app_service/web_app_shelf_browsertest.cc
@@ -37,8 +37,8 @@ webapps::AppId InstallTestWebApp( const GURL& start_url, web_app::mojom::UserDisplayMode user_display_mode) { - auto web_app_info = std::make_unique<web_app::WebAppInstallInfo>(); - web_app_info->start_url = start_url; + auto web_app_info = + web_app::WebAppInstallInfo::CreateWithStartUrlForTesting(start_url); web_app_info->user_display_mode = user_display_mode; const webapps::AppId app_id = web_app::test::InstallWebApp(profile(), std::move(web_app_info));
diff --git a/chrome/browser/ui/ash/shelf/chrome_shelf_controller_browsertest.cc b/chrome/browser/ui/ash/shelf/chrome_shelf_controller_browsertest.cc index 1cb4416..0b65107 100644 --- a/chrome/browser/ui/ash/shelf/chrome_shelf_controller_browsertest.cc +++ b/chrome/browser/ui/ash/shelf/chrome_shelf_controller_browsertest.cc
@@ -468,8 +468,8 @@ } webapps::AppId InstallWebApp(const GURL& start_url) { - auto web_app_info = std::make_unique<web_app::WebAppInstallInfo>(); - web_app_info->start_url = start_url; + auto web_app_info = + web_app::WebAppInstallInfo::CreateWithStartUrlForTesting(start_url); web_app_info->scope = start_url.GetWithoutFilename(); return web_app::test::InstallWebApp(browser()->profile(), std::move(web_app_info)); @@ -2568,8 +2568,8 @@ IN_PROC_BROWSER_TEST_F(ShelfWebAppBrowserTest, WebAppPolicyUpdate) { // Install web app. GURL app_url = GURL("https://example.org/"); - auto web_app_info = std::make_unique<web_app::WebAppInstallInfo>(); - web_app_info->start_url = app_url; + auto web_app_info = + web_app::WebAppInstallInfo::CreateWithStartUrlForTesting(app_url); web_app_info->scope = app_url; web_app_info->title = u"Example"; webapps::AppId app_id = @@ -3115,8 +3115,8 @@ std::string CreateWebApp(const GURL& app_url, const std::u16string& app_name) { // Create web app. - auto web_app_info = std::make_unique<web_app::WebAppInstallInfo>(); - web_app_info->start_url = app_url; + auto web_app_info = + web_app::WebAppInstallInfo::CreateWithStartUrlForTesting(app_url); web_app_info->title = app_name; web_app_info->scope = app_url; auto web_app_id = web_app::test::InstallWebApp(
diff --git a/chrome/browser/ui/ash/shelf/chrome_shelf_controller_unittest.cc b/chrome/browser/ui/ash/shelf/chrome_shelf_controller_unittest.cc index 4c0003e..6d1902af 100644 --- a/chrome/browser/ui/ash/shelf/chrome_shelf_controller_unittest.cc +++ b/chrome/browser/ui/ash/shelf/chrome_shelf_controller_unittest.cc
@@ -1240,9 +1240,9 @@ } void AddWebApp(const std::string& web_app_id) { - auto web_app_info = std::make_unique<web_app::WebAppInstallInfo>(); - - web_app_info->start_url = GetWebAppUrl(web_app_id); + auto web_app_info = + web_app::WebAppInstallInfo::CreateWithStartUrlForTesting( + GetWebAppUrl(web_app_id)); webapps::AppId installed_app_id = web_app::test::InstallWebApp(profile(), std::move(web_app_info)); @@ -1254,8 +1254,9 @@ webapps::AppId InstallExternalWebApp( const GURL& start_url, const std::optional<GURL>& install_url = {}) { - auto web_app_info = std::make_unique<web_app::WebAppInstallInfo>(); - web_app_info->start_url = GURL(start_url); + auto web_app_info = + web_app::WebAppInstallInfo::CreateWithStartUrlForTesting( + GURL(start_url)); web_app_info->install_url = GURL(install_url ? *install_url : start_url); const webapps::AppId expected_web_app_id = web_app::GenerateAppId( /*manifest_id=*/std::nullopt, web_app_info->start_url); @@ -3506,8 +3507,8 @@ // * the primary user has a test app pinned to shelf, and // * secondary user has a tab with the URL associated with the app open (but // does not have the app installed). - auto web_app_info = std::make_unique<web_app::WebAppInstallInfo>(); - web_app_info->start_url = GURL(kWebAppUrl); + auto web_app_info = web_app::WebAppInstallInfo::CreateWithStartUrlForTesting( + GURL(kWebAppUrl)); webapps::AppId installed_app_id = web_app::test::InstallWebApp(profile(), std::move(web_app_info)); PinAppWithIDToShelf(installed_app_id);
diff --git a/chrome/browser/ui/ash/shelf/standalone_window_migration_nudge_browsertest.cc b/chrome/browser/ui/ash/shelf/standalone_window_migration_nudge_browsertest.cc index e61146d9..eeef49f 100644 --- a/chrome/browser/ui/ash/shelf/standalone_window_migration_nudge_browsertest.cc +++ b/chrome/browser/ui/ash/shelf/standalone_window_migration_nudge_browsertest.cc
@@ -41,8 +41,8 @@ webapps::AppId CreateWebApp(const GURL& app_url, const std::u16string& app_name, web_app::mojom::UserDisplayMode display_mode) { - auto web_app_info = std::make_unique<web_app::WebAppInstallInfo>(); - web_app_info->start_url = app_url; + auto web_app_info = + web_app::WebAppInstallInfo::CreateWithStartUrlForTesting(app_url); web_app_info->title = app_name; web_app_info->user_display_mode = display_mode;
diff --git a/chrome/browser/ui/extensions/hosted_app_browsertest.cc b/chrome/browser/ui/extensions/hosted_app_browsertest.cc index c6d637e..7425a3a 100644 --- a/chrome/browser/ui/extensions/hosted_app_browsertest.cc +++ b/chrome/browser/ui/extensions/hosted_app_browsertest.cc
@@ -219,8 +219,8 @@ base::StringPrintf(kAppDotComManifest, start_url.spec().c_str())); SetupApp(test_app_dir.UnpackedPath()); } else { - auto web_app_info = std::make_unique<web_app::WebAppInstallInfo>(); - web_app_info->start_url = start_url; + auto web_app_info = + web_app::WebAppInstallInfo::CreateWithStartUrlForTesting(start_url); web_app_info->scope = start_url.GetWithoutFilename(); web_app_info->user_display_mode = web_app::mojom::UserDisplayMode::kStandalone;
diff --git a/chrome/browser/ui/startup/startup_browser_creator_browsertest.cc b/chrome/browser/ui/startup/startup_browser_creator_browsertest.cc index dba6893..2e7e707 100644 --- a/chrome/browser/ui/startup/startup_browser_creator_browsertest.cc +++ b/chrome/browser/ui/startup/startup_browser_creator_browsertest.cc
@@ -1737,8 +1737,8 @@ webapps::AppId InstallPWAWithName(Profile* profile, const GURL& start_url, const std::string& app_name) { - auto web_app_info = std::make_unique<web_app::WebAppInstallInfo>(); - web_app_info->start_url = start_url; + auto web_app_info = + web_app::WebAppInstallInfo::CreateWithStartUrlForTesting(start_url); web_app_info->scope = start_url.GetWithoutFilename(); web_app_info->user_display_mode = web_app::mojom::UserDisplayMode::kStandalone; @@ -1964,8 +1964,8 @@ #if !BUILDFLAG(IS_CHROMEOS) webapps::AppId InstallPWA(Profile* profile, const GURL& start_url) { - auto web_app_info = std::make_unique<web_app::WebAppInstallInfo>(); - web_app_info->start_url = start_url; + auto web_app_info = + web_app::WebAppInstallInfo::CreateWithStartUrlForTesting(start_url); web_app_info->scope = start_url.GetWithoutFilename(); web_app_info->user_display_mode = web_app::mojom::UserDisplayMode::kStandalone; @@ -2189,8 +2189,8 @@ // Install web app set to open as a standalone window. { std::unique_ptr<web_app::WebAppInstallInfo> info = - std::make_unique<web_app::WebAppInstallInfo>(); - info->start_url = GURL(kStartUrl); + web_app::WebAppInstallInfo::CreateWithStartUrlForTesting( + GURL(kStartUrl)); info->title = kAppName; info->user_display_mode = web_app::mojom::UserDisplayMode::kStandalone; base::test::TestFuture<const webapps::AppId&, webapps::InstallResultCode> @@ -2579,8 +2579,8 @@ const std::vector<apps::ProtocolHandlerInfo>& protocol_handlers, const std::vector<apps::FileHandler>& file_handlers = {}) { std::unique_ptr<web_app::WebAppInstallInfo> info = - std::make_unique<web_app::WebAppInstallInfo>(); - info->start_url = GURL(kStartUrl); + web_app::WebAppInstallInfo::CreateWithStartUrlForTesting( + GURL(kStartUrl)); info->title = kAppName; info->user_display_mode = web_app::mojom::UserDisplayMode::kStandalone; info->protocol_handlers = protocol_handlers;
diff --git a/chrome/browser/ui/startup/startup_browser_creator_impl.h b/chrome/browser/ui/startup/startup_browser_creator_impl.h index 943ccce..f9892e4 100644 --- a/chrome/browser/ui/startup/startup_browser_creator_impl.h +++ b/chrome/browser/ui/startup/startup_browser_creator_impl.h
@@ -31,7 +31,6 @@ namespace internals { GURL GetTriggeredResetSettingsURL(); -GURL GetWelcomePageURL(); } // namespace internals // Assists launching the application and appending the initial tabs for a
diff --git a/chrome/browser/ui/startup/startup_browser_creator_impl_unittest.cc b/chrome/browser/ui/startup/startup_browser_creator_impl_unittest.cc index a303ac4..e18ccc9c5 100644 --- a/chrome/browser/ui/startup/startup_browser_creator_impl_unittest.cc +++ b/chrome/browser/ui/startup/startup_browser_creator_impl_unittest.cc
@@ -6,7 +6,6 @@ #include "base/command_line.h" #include "build/build_config.h" -#include "build/chromeos_buildflags.h" #include "chrome/browser/prefs/session_startup_pref.h" #include "chrome/browser/ui/startup/startup_tab_provider.h" #include "chrome/common/url_constants.h" @@ -38,13 +37,6 @@ // tab and return true. For options not passed, the adder will return false. explicit FakeStartupTabProvider(uint32_t options) : options_(options) {} - StartupTabs GetOnboardingTabs(Profile* profile) const override { - StartupTabs tabs; - if (options_ & kOnboardingTabs) - tabs.emplace_back(GURL("https://onboarding")); - return tabs; - } - StartupTabs GetDistributionFirstRunTabs( StartupBrowserCreator* browser_creator) const override { StartupTabs tabs;
diff --git a/chrome/browser/ui/startup/startup_tab_provider.cc b/chrome/browser/ui/startup/startup_tab_provider.cc index 507a804d7..e27c4f5 100644 --- a/chrome/browser/ui/startup/startup_tab_provider.cc +++ b/chrome/browser/ui/startup/startup_tab_provider.cc
@@ -155,33 +155,6 @@ } // namespace -StartupTabs StartupTabProviderImpl::GetOnboardingTabs(Profile* profile) const { -// Chrome OS has its own welcome flow provided by OOBE. -#if BUILDFLAG(IS_CHROMEOS_ASH) - return StartupTabs(); -#else - if (!profile || base::FeatureList::IsEnabled(kForYouFre)) { - return StartupTabs(); - } - - StandardOnboardingTabsParams standard_params; - standard_params.is_first_run = first_run::IsChromeFirstRun(); - PrefService* prefs = profile->GetPrefs(); - standard_params.has_seen_welcome_page = - prefs && prefs->GetBoolean(prefs::kHasSeenWelcomePage); - standard_params.is_signin_allowed = - SyncServiceFactory::IsSyncAllowed(profile); - if (auto* identity_manager = IdentityManagerFactory::GetForProfile(profile)) { - standard_params.is_signed_in = - identity_manager->HasPrimaryAccount(signin::ConsentLevel::kSync); - } - standard_params.is_child_account = profile->IsChild(); - standard_params.is_force_signin_enabled = signin_util::IsForceSigninEnabled(); - - return GetStandardOnboardingTabsForState(standard_params); -#endif // BUILDFLAG(IS_CHROMEOS_ASH) -} - StartupTabs StartupTabProviderImpl::GetDistributionFirstRunTabs( StartupBrowserCreator* browser_creator) const { if (!browser_creator) @@ -287,41 +260,6 @@ #endif // !BUILDFLAG(IS_ANDROID) -#if BUILDFLAG(ENABLE_DICE_SUPPORT) -// static -bool StartupTabProviderImpl::CanShowWelcome(bool is_signin_allowed, - bool is_child_account, - bool is_force_signin_enabled) { - return is_signin_allowed && !is_child_account && !is_force_signin_enabled; -} - -// static -bool StartupTabProviderImpl::ShouldShowWelcomeForOnboarding( - bool has_seen_welcome_page, - bool is_signed_in) { - return !has_seen_welcome_page && !is_signed_in; -} -#endif - -// static -StartupTabs StartupTabProviderImpl::GetStandardOnboardingTabsForState( - const StandardOnboardingTabsParams& params) { - StartupTabs tabs; - -#if BUILDFLAG(ENABLE_DICE_SUPPORT) - DCHECK(!base::FeatureList::IsEnabled(kForYouFre)); - - if (CanShowWelcome(params.is_signin_allowed, params.is_child_account, - params.is_force_signin_enabled) && - ShouldShowWelcomeForOnboarding(params.has_seen_welcome_page, - params.is_signed_in)) { - tabs.emplace_back(GetWelcomePageUrl(!params.is_first_run)); - } -#endif - - return tabs; -} - // static StartupTabs StartupTabProviderImpl::GetInitialPrefsTabsForState( bool is_first_run, @@ -329,7 +267,6 @@ // Constants: Magic words used by initial preferences files in place of a URL // host to indicate that internal pages should appear on first run. static constexpr char kNewTabUrlHost[] = "new_tab_page"; - static constexpr char kWelcomePageUrlHost[] = "welcome_page"; StartupTabs tabs; if (is_first_run) { @@ -337,15 +274,6 @@ for (GURL url : first_run_tabs) { if (url.host_piece() == kNewTabUrlHost) { url = GURL(chrome::kChromeUINewTabURL); - } else if (url.host_piece() == kWelcomePageUrlHost) { -#if BUILDFLAG(ENABLE_DICE_SUPPORT) - if (base::FeatureList::IsEnabled(kForYouFre)) { - // Do not show the in-tab welcome experience when the FRE is enabled. - continue; - } else { - url = GetWelcomePageUrl(false); - } -#endif } tabs.emplace_back(url); } @@ -453,16 +381,6 @@ #endif -#if BUILDFLAG(ENABLE_DICE_SUPPORT) -// static -GURL StartupTabProviderImpl::GetWelcomePageUrl(bool use_later_run_variant) { - GURL url(chrome::kChromeUIWelcomeURL); - return use_later_run_variant - ? net::AppendQueryParameter(url, "variant", "everywhere") - : url; -} -#endif - // static void StartupTabProviderImpl::AddIncompatibleApplicationsUrl(StartupTabs* tabs) { #if BUILDFLAG(IS_WIN) && BUILDFLAG(GOOGLE_CHROME_BRANDING)
diff --git a/chrome/browser/ui/startup/startup_tab_provider.h b/chrome/browser/ui/startup/startup_tab_provider.h index ea83c174..c50fc47 100644 --- a/chrome/browser/ui/startup/startup_tab_provider.h +++ b/chrome/browser/ui/startup/startup_tab_provider.h
@@ -36,10 +36,6 @@ // faking in unit tests. class StartupTabProvider { public: - // Gathers relevant system state and returns any tabs which should be - // shown according to onboarding/first run policy. - virtual StartupTabs GetOnboardingTabs(Profile* profile) const = 0; - // Gathers URLs from a initial preferences file indicating first run logic // specific to this distribution. Transforms any such URLs per policy and // returns them. Also clears the value of first_run_urls_ in the provided @@ -101,15 +97,6 @@ class StartupTabProviderImpl : public StartupTabProvider { public: - struct StandardOnboardingTabsParams { - bool is_first_run = false; - bool has_seen_welcome_page = false; - bool is_signin_allowed = false; - bool is_signed_in = false; - bool is_child_account = false; - bool is_force_signin_enabled = false; - }; - StartupTabProviderImpl() = default; StartupTabProviderImpl(const StartupTabProviderImpl&) = delete; StartupTabProviderImpl& operator=(const StartupTabProviderImpl&) = delete; @@ -119,23 +106,6 @@ // system state relating to making those policy decisions. Exposed for // testing. -#if BUILDFLAG(ENABLE_DICE_SUPPORT) - // Returns true if showing the standard welcome page is permissible. - static bool CanShowWelcome(bool is_signin_allowed, - bool is_supervised_user, - bool is_force_signin_enabled); - - // Returns true if the standard welcome page should be shown in a tab. This - // should only be used following a positive result from CanShowWelcome. - static bool ShouldShowWelcomeForOnboarding(bool has_seen_welcome_page, - bool is_signed_in); -#endif - - // Determines which tabs should be shown according to onboarding/first - // run policy. - static StartupTabs GetStandardOnboardingTabsForState( - const StandardOnboardingTabsParams& params); - // Processes first run URLs specified in initial preferences file, replacing // any "magic word" URL hosts with appropriate URLs. static StartupTabs GetInitialPrefsTabsForState( @@ -183,15 +153,6 @@ const StartupTabs& other_startup_tabs); #endif -#if BUILDFLAG(ENABLE_DICE_SUPPORT) - // Gets the URL for the Welcome page. If |use_later_run_variant| is true, a - // URL parameter will be appended so as to access the variant page used when - // onboarding occurs after the first Chrome execution (e.g., when creating an - // additional profile). - // TODO(hcarmona): it might be possible to deprecate use_later_run_variant. - static GURL GetWelcomePageUrl(bool use_later_run_variant); -#endif - // In branded Windows builds, adds the URL for the Incompatible Applications // subpage of the Chrome settings. static void AddIncompatibleApplicationsUrl(StartupTabs* tabs); @@ -201,7 +162,6 @@ static GURL GetTriggeredResetSettingsUrl(); // StartupTabProvider: - StartupTabs GetOnboardingTabs(Profile* profile) const override; StartupTabs GetDistributionFirstRunTabs( StartupBrowserCreator* browser_creator) const override; StartupTabs GetResetTriggerTabs(Profile* profile) const override;
diff --git a/chrome/browser/ui/startup/startup_tab_provider_unittest.cc b/chrome/browser/ui/startup/startup_tab_provider_unittest.cc index f4c22487..14a90db 100644 --- a/chrome/browser/ui/startup/startup_tab_provider_unittest.cc +++ b/chrome/browser/ui/startup/startup_tab_provider_unittest.cc
@@ -4,15 +4,11 @@ #include "chrome/browser/ui/startup/startup_tab_provider.h" -#include "base/test/scoped_feature_list.h" #include "build/build_config.h" -#include "build/chromeos_buildflags.h" #include "chrome/browser/prefs/session_startup_pref.h" #include "chrome/browser/search_engines/template_url_service_factory.h" #include "chrome/common/webui_url_constants.h" #include "chrome/test/base/testing_profile.h" -#include "components/search_engines/template_url_service.h" -#include "components/signin/public/base/signin_switches.h" #include "content/public/test/browser_task_environment.h" #include "testing/gtest/include/gtest/gtest.h" #include "url/gurl.h" @@ -23,9 +19,6 @@ #include "extensions/common/extension_builder.h" #endif // !BUILDFLAG(IS_ANDROID) -using StandardOnboardingTabsParams = - StartupTabProviderImpl::StandardOnboardingTabsParams; - #if BUILDFLAG(IS_WIN) #define CMD_ARG(x) L##x #else @@ -46,46 +39,6 @@ EXPECT_EQ(output[1].type, StartupTab::Type::kNormal); } -#if BUILDFLAG(ENABLE_DICE_SUPPORT) -TEST(StartupTabProviderTest, GetInitialPrefsTabsForState_WelcomeWithoutFre) { - base::test::ScopedFeatureList scoped_feature_list; - scoped_feature_list.InitAndDisableFeature(kForYouFre); - ASSERT_FALSE(base::FeatureList::IsEnabled(kForYouFre)); - std::vector<GURL> input = {GURL(u"https://new_tab_page"), - GURL(u"https://www.google.com"), - GURL(u"https://welcome_page")}; - - StartupTabs output = - StartupTabProviderImpl::GetInitialPrefsTabsForState(true, input); - - ASSERT_EQ(3U, output.size()); - EXPECT_EQ(GURL(chrome::kChromeUINewTabURL), output[0].url); - EXPECT_EQ(output[0].type, StartupTab::Type::kNormal); - EXPECT_EQ(input[1], output[1].url); - EXPECT_EQ(output[1].type, StartupTab::Type::kNormal); - EXPECT_EQ(StartupTabProviderImpl::GetWelcomePageUrl(false), output[2].url); - EXPECT_EQ(output[2].type, StartupTab::Type::kNormal); -} - -TEST(StartupTabProviderTest, GetInitialPrefsTabsForState_WelcomeWithFre) { - base::test::ScopedFeatureList scoped_feature_list{kForYouFre}; - ASSERT_TRUE(base::FeatureList::IsEnabled(kForYouFre)); - - std::vector<GURL> input = {GURL(u"https://new_tab_page"), - GURL(u"https://www.google.com"), - GURL(u"https://welcome_page")}; - - StartupTabs output = - StartupTabProviderImpl::GetInitialPrefsTabsForState(true, input); - - ASSERT_EQ(2U, output.size()); - EXPECT_EQ(GURL(chrome::kChromeUINewTabURL), output[0].url); - EXPECT_EQ(output[0].type, StartupTab::Type::kNormal); - EXPECT_EQ(input[1], output[1].url); - EXPECT_EQ(output[1].type, StartupTab::Type::kNormal); -} -#endif - TEST(StartupTabProviderTest, GetInitialPrefsTabsForState_FirstRunOnly) { std::vector<GURL> input = {GURL(u"https://www.google.com")}; @@ -225,25 +178,6 @@ ASSERT_TRUE(output.empty()); } -TEST(StartupTabProviderTest, IncognitoProfile) { - content::BrowserTaskEnvironment task_environment; - TestingProfile profile; - Profile* incognito = profile.GetPrimaryOTRProfile(/*create_if_needed=*/true); - StartupTabs output = StartupTabProviderImpl().GetOnboardingTabs(incognito); - EXPECT_TRUE(output.empty()); -} - -#if BUILDFLAG(ENABLE_DICE_SUPPORT) -TEST(StartupTabProviderTest, ForYouFreEnabled) { - base::test::ScopedFeatureList scoped_feature_list{kForYouFre}; - content::BrowserTaskEnvironment task_environment; - TestingProfile profile; - - StartupTabs output = StartupTabProviderImpl().GetOnboardingTabs(&profile); - ASSERT_EQ(0U, output.size()); -} -#endif - TEST(StartupTabProviderTest, GetCommandLineTabs) { content::BrowserTaskEnvironment task_environment; TestingProfile profile;
diff --git a/chrome/browser/ui/views/apps/app_dialog/app_uninstall_dialog_view_browsertest.cc b/chrome/browser/ui/views/apps/app_dialog/app_uninstall_dialog_view_browsertest.cc index b12c471..94fc00f7 100644 --- a/chrome/browser/ui/views/apps/app_dialog/app_uninstall_dialog_view_browsertest.cc +++ b/chrome/browser/ui/views/apps/app_dialog/app_uninstall_dialog_view_browsertest.cc
@@ -189,8 +189,8 @@ } void CreateApp() { - auto web_app_info = std::make_unique<web_app::WebAppInstallInfo>(); - web_app_info->start_url = GetAppURL(); + auto web_app_info = + web_app::WebAppInstallInfo::CreateWithStartUrlForTesting(GetAppURL()); web_app_info->scope = GetAppURL().GetWithoutFilename(); app_id_ = web_app::test::InstallWebApp(browser()->profile(), @@ -365,8 +365,9 @@ std::u16string sub_app_name = u"Sub App " + base::UTF8ToUTF16(app_name); sub_apps_expected.emplace(sub_app_name); - auto web_app_info = std::make_unique<web_app::WebAppInstallInfo>(); - web_app_info->start_url = parent_app_url.Resolve("/sub-app-" + app_name); + GURL start_url = parent_app_url.Resolve("/sub-app-" + app_name); + auto web_app_info = + web_app::WebAppInstallInfo::CreateWithStartUrlForTesting(start_url); web_app_info->parent_app_id = parent_app_id; web_app_info->title = sub_app_name; web_app_info->parent_app_manifest_id = parent_app_url;
diff --git a/chrome/browser/ui/views/autofill/popup/popup_base_view.cc b/chrome/browser/ui/views/autofill/popup/popup_base_view.cc index 9e636dbf..67e5c4b 100644 --- a/chrome/browser/ui/views/autofill/popup/popup_base_view.cc +++ b/chrome/browser/ui/views/autofill/popup/popup_base_view.cc
@@ -301,7 +301,10 @@ // the form control itself. NotifyAccessibilityEvent(ax::mojom::Event::kMenuPopupEnd, true); NotifyAccessibilityEvent(ax::mojom::Event::kMenuEnd, true); - GetViewAccessibility().EndPopupFocusOverride(); + + if (!CanActivate()) { + GetViewAccessibility().EndPopupFocusOverride(); + } // Also fire an accessible focus event on what currently has focus, // typically the widget associated with this popup. @@ -343,13 +346,18 @@ is_ax_menu_start_event_fired_ = true; } - selected_view.GetViewAccessibility().SetPopupFocusOverride(); + // Activatable popup's controls (e.g. the search bar input) get real focus, so + // that there is no need to use `Set/EndPopupFocusOverride()`. + if (!CanActivate()) { + selected_view.GetViewAccessibility().SetPopupFocusOverride(); + } #if DCHECK_IS_ON() constexpr auto kDerivedClasses = base::MakeFixedFlatSet<std::string_view>( {"PopupSuggestionView", "PopupPasswordSuggestionView", "PopupFooterView", "PopupSeparatorView", "PopupWarningView", "PopupBaseView", "PasswordGenerationPopupViewViews::GeneratedPasswordBox", "PopupRowView", - "PopupRowContentView", "EditPasswordRow", "MdTextButton"}); + "PopupRowContentView", "EditPasswordRow", "MdTextButton", + "ViewForTesting"}); DCHECK(kDerivedClasses.contains(selected_view.GetClassName())) << "If you add a new derived class from AutofillPopupRowView, add it " "here and to onSelection(evt) in "
diff --git a/chrome/browser/ui/views/autofill/popup/popup_base_view_browsertest.cc b/chrome/browser/ui/views/autofill/popup/popup_base_view_browsertest.cc index eabad01..af8f0c3 100644 --- a/chrome/browser/ui/views/autofill/popup/popup_base_view_browsertest.cc +++ b/chrome/browser/ui/views/autofill/popup/popup_base_view_browsertest.cc
@@ -21,6 +21,8 @@ #include "content/public/test/browser_test.h" #include "testing/gmock/include/gmock/gmock.h" #include "testing/gtest/include/gtest/gtest.h" +#include "ui/accessibility/platform/ax_platform_node.h" +#include "ui/base/metadata/metadata_impl_macros.h" #include "ui/events/event_utils.h" #include "ui/gfx/geometry/point.h" #include "ui/gfx/geometry/point_conversions.h" @@ -28,6 +30,7 @@ #include "ui/gfx/geometry/rect_f.h" #include "ui/gfx/geometry/vector2d.h" #include "ui/views/test/views_test_base.h" +#include "ui/views/view.h" #include "ui/views/widget/widget.h" namespace autofill { @@ -39,7 +42,9 @@ class MockAutofillPopupViewDelegate : public AutofillPopupViewDelegate { public: - MockAutofillPopupViewDelegate() = default; + MockAutofillPopupViewDelegate() { + EXPECT_CALL(*this, element_bounds()).WillRepeatedly(ReturnRef(bounds_)); + } ~MockAutofillPopupViewDelegate() override = default; MOCK_METHOD(void, Hide, (SuggestionHidingReason), (override)); @@ -58,6 +63,7 @@ } private: + gfx::RectF bounds_; base::WeakPtrFactory<MockAutofillPopupViewDelegate> weak_ptr_factory_{this}; }; @@ -83,20 +89,25 @@ EXPECT_CALL(mock_delegate_, GetWebContents()) .WillRepeatedly(Return(web_contents)); EXPECT_CALL(mock_delegate_, ViewDestroyed()); - - view_ = new PopupBaseView(mock_delegate_.GetWeakPtr(), - views::Widget::GetWidgetForNativeWindow( - browser()->window()->GetNativeWindow())); } void TearDownOnMainThread() override { view_ = nullptr; } - void ShowView() { view_->DoShow(); } + void ShowView(views::Widget::InitParams::Activatable activatable = + views::Widget::InitParams::Activatable::kDefault) { + view_ = new PopupBaseView(mock_delegate_.GetWeakPtr(), + views::Widget::GetWidgetForNativeWindow( + browser()->window()->GetNativeWindow()), + activatable); + view_->DoShow(); + } protected: testing::NiceMock<MockAutofillPopupViewDelegate> mock_delegate_; raw_ptr<PopupBaseView> view_ = nullptr; + PopupBaseView* view() { return view_; } + private: test::AutofillBrowserTestEnvironment autofill_test_environment_; base::test::ScopedFeatureList feature_list_; @@ -121,6 +132,39 @@ EXPECT_EQ(expected_point, display_point); } +// In this test on Linux and ChromeOS, `GetPopupFocusOverride()` always returns +// `nullptr` as `gfx::NativeViewAccessible` is not created for every view there. +// Disabling this test doesn't reduce coverage because the functionality is not +// platform specific, but rathen the test check method is. +#if !BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS_LACROS) && \ + !BUILDFLAG(IS_CHROMEOS) +class ViewForTesting : public views::View { + METADATA_HEADER(ViewForTesting, views::View) +}; +BEGIN_METADATA(ViewForTesting) +END_METADATA + +IN_PROC_BROWSER_TEST_F(PopupBaseViewBrowsertest, + FocusOverrideIsSetForNonActivatableWidget) { + ShowView(views::Widget::InitParams::Activatable::kNo); + + ViewForTesting item; + view()->NotifyAXSelection(item); + + EXPECT_NE(ui::AXPlatformNode::GetPopupFocusOverride(), nullptr); +} +IN_PROC_BROWSER_TEST_F(PopupBaseViewBrowsertest, + FocusOverrideIsNotSetForActivatableWidget) { + ShowView(views::Widget::InitParams::Activatable::kYes); + + ViewForTesting item; + view()->NotifyAXSelection(item); + + EXPECT_EQ(ui::AXPlatformNode::GetPopupFocusOverride(), nullptr); +} +#endif // BUILDFLAG(IS_LINUX) && !BUILDFLAG(IS_CHROMEOS_LACROS) && + // !BUILDFLAG(IS_CHROMEOS) + struct ProminentPopupTestParams { bool is_feature_enabled; int expected_left_offset;
diff --git a/chrome/browser/ui/views/extensions/extension_uninstall_dialog_view_browsertest.cc b/chrome/browser/ui/views/extensions/extension_uninstall_dialog_view_browsertest.cc index 05e52898..d303744d 100644 --- a/chrome/browser/ui/views/extensions/extension_uninstall_dialog_view_browsertest.cc +++ b/chrome/browser/ui/views/extensions/extension_uninstall_dialog_view_browsertest.cc
@@ -221,8 +221,8 @@ web_app::OsIntegrationTestOverrideBlockingRegistration>(); } const GURL start_url = GURL("https://test.com/"); - auto web_app_info = std::make_unique<web_app::WebAppInstallInfo>(); - web_app_info->start_url = start_url; + auto web_app_info = + web_app::WebAppInstallInfo::CreateWithStartUrlForTesting(start_url); web_app_info->scope = start_url; web_app_info->user_display_mode = web_app::mojom::UserDisplayMode::kStandalone;
diff --git a/chrome/browser/ui/views/frame/browser_frame_browsertest.cc b/chrome/browser/ui/views/frame/browser_frame_browsertest.cc index 180bc95..9cd052f 100644 --- a/chrome/browser/ui/views/frame/browser_frame_browsertest.cc +++ b/chrome/browser/ui/views/frame/browser_frame_browsertest.cc
@@ -87,8 +87,8 @@ // Verifies that the web app is loaded with initial bounds. IN_PROC_BROWSER_TEST_F(BrowserFrameTest, WebAppsHasBoundsOnOpen) { - auto web_app_info = std::make_unique<web_app::WebAppInstallInfo>(); - web_app_info->start_url = GURL("http://example.org/"); + auto web_app_info = web_app::WebAppInstallInfo::CreateWithStartUrlForTesting( + GURL("http://example.org/")); webapps::AppId app_id = web_app::test::InstallWebApp(browser()->profile(), std::move(web_app_info));
diff --git a/chrome/browser/ui/views/frame/browser_frame_view_browsertest_win.cc b/chrome/browser/ui/views/frame/browser_frame_view_browsertest_win.cc index 3e21809f..6ec28f4 100644 --- a/chrome/browser/ui/views/frame/browser_frame_view_browsertest_win.cc +++ b/chrome/browser/ui/views/frame/browser_frame_view_browsertest_win.cc
@@ -156,8 +156,8 @@ } void InstallAndLaunchWebApp() { - auto web_app_info = std::make_unique<web_app::WebAppInstallInfo>(); - web_app_info->start_url = GetStartURL(); + auto web_app_info = + web_app::WebAppInstallInfo::CreateWithStartUrlForTesting(GetStartURL()); web_app_info->scope = GetStartURL().GetWithoutFilename(); if (theme_color_) { web_app_info->theme_color = *theme_color_; @@ -285,8 +285,8 @@ std::vector<blink::mojom::DisplayMode> display_overrides = { blink::mojom::DisplayMode::kWindowControlsOverlay}; - auto web_app_info = std::make_unique<web_app::WebAppInstallInfo>(); - web_app_info->start_url = start_url; + auto web_app_info = + web_app::WebAppInstallInfo::CreateWithStartUrlForTesting(start_url); web_app_info->scope = start_url.GetWithoutFilename(); web_app_info->display_mode = blink::mojom::DisplayMode::kStandalone; web_app_info->user_display_mode =
diff --git a/chrome/browser/ui/views/frame/browser_non_client_frame_view_chromeos_browsertest.cc b/chrome/browser/ui/views/frame/browser_non_client_frame_view_chromeos_browsertest.cc index d4e6eb5..0a8c90e 100644 --- a/chrome/browser/ui/views/frame/browser_non_client_frame_view_chromeos_browsertest.cc +++ b/chrome/browser/ui/views/frame/browser_non_client_frame_view_chromeos_browsertest.cc
@@ -518,8 +518,8 @@ // |SetUpWebApp()| must be called after |SetUpOnMainThread()| to make sure // the Network Service process has been setup properly. void SetUpWebApp() { - auto web_app_info = std::make_unique<web_app::WebAppInstallInfo>(); - web_app_info->start_url = GetAppURL(); + auto web_app_info = + web_app::WebAppInstallInfo::CreateWithStartUrlForTesting(GetAppURL()); web_app_info->scope = GetAppURL().GetWithoutFilename(); web_app_info->display_mode = blink::mojom::DisplayMode::kStandalone; web_app_info->theme_color = GetThemeColor(); @@ -1720,8 +1720,8 @@ } const GURL app_url = test_server_->GetURL("app.com", "/ssl/google.html"); - auto web_app_info = std::make_unique<web_app::WebAppInstallInfo>(); - web_app_info->start_url = app_url; + auto web_app_info = + web_app::WebAppInstallInfo::CreateWithStartUrlForTesting(app_url); web_app_info->scope = app_url.GetWithoutFilename(); web_app_info->theme_color = SK_ColorWHITE; web_app_info->dark_mode_theme_color = SK_ColorBLACK;
diff --git a/chrome/browser/ui/views/frame/immersive_mode_controller_chromeos_browsertest.cc b/chrome/browser/ui/views/frame/immersive_mode_controller_chromeos_browsertest.cc index 7202002..a77f190 100644 --- a/chrome/browser/ui/views/frame/immersive_mode_controller_chromeos_browsertest.cc +++ b/chrome/browser/ui/views/frame/immersive_mode_controller_chromeos_browsertest.cc
@@ -55,8 +55,8 @@ ASSERT_TRUE(https_server_.Start()); const GURL app_url = GetAppUrl(); - auto web_app_info = std::make_unique<web_app::WebAppInstallInfo>(); - web_app_info->start_url = app_url; + auto web_app_info = + web_app::WebAppInstallInfo::CreateWithStartUrlForTesting(app_url); web_app_info->scope = app_url.GetWithoutFilename(); web_app_info->theme_color = SK_ColorBLUE;
diff --git a/chrome/browser/ui/views/frame/opaque_browser_frame_view_browsertest.cc b/chrome/browser/ui/views/frame/opaque_browser_frame_view_browsertest.cc index d245286..7043dc6 100644 --- a/chrome/browser/ui/views/frame/opaque_browser_frame_view_browsertest.cc +++ b/chrome/browser/ui/views/frame/opaque_browser_frame_view_browsertest.cc
@@ -82,8 +82,8 @@ bool InstallAndLaunchWebApp( std::optional<SkColor> theme_color = std::nullopt) { - auto web_app_info = std::make_unique<web_app::WebAppInstallInfo>(); - web_app_info->start_url = GetAppURL(); + auto web_app_info = + web_app::WebAppInstallInfo::CreateWithStartUrlForTesting(GetAppURL()); web_app_info->scope = GetAppURL().GetWithoutFilename(); web_app_info->theme_color = theme_color; @@ -284,8 +284,8 @@ .LoadWindowControlsOverlayTestPageWithDataAndGetURL( embedded_test_server(), &temp_dir_); - auto web_app_info = std::make_unique<web_app::WebAppInstallInfo>(); - web_app_info->start_url = start_url; + auto web_app_info = + web_app::WebAppInstallInfo::CreateWithStartUrlForTesting(start_url); web_app_info->scope = start_url.GetWithoutFilename(); web_app_info->display_mode = blink::mojom::DisplayMode::kStandalone; web_app_info->user_display_mode =
diff --git a/chrome/browser/ui/views/location_bar/custom_tab_bar_view_browsertest.cc b/chrome/browser/ui/views/location_bar/custom_tab_bar_view_browsertest.cc index f349a58..658ff24 100644 --- a/chrome/browser/ui/views/location_bar/custom_tab_bar_view_browsertest.cc +++ b/chrome/browser/ui/views/location_bar/custom_tab_bar_view_browsertest.cc
@@ -207,8 +207,8 @@ } void InstallPWA(const GURL& start_url) { - auto web_app_info = std::make_unique<web_app::WebAppInstallInfo>(); - web_app_info->start_url = start_url; + auto web_app_info = + web_app::WebAppInstallInfo::CreateWithStartUrlForTesting(start_url); web_app_info->scope = start_url.GetWithoutFilename(); web_app_info->user_display_mode = web_app::mojom::UserDisplayMode::kStandalone; @@ -216,8 +216,8 @@ } void InstallBookmark(const GURL& start_url) { - auto web_app_info = std::make_unique<web_app::WebAppInstallInfo>(); - web_app_info->start_url = start_url; + auto web_app_info = + web_app::WebAppInstallInfo::CreateWithStartUrlForTesting(start_url); web_app_info->scope = start_url.DeprecatedGetOriginAsURL(); web_app_info->user_display_mode = web_app::mojom::UserDisplayMode::kStandalone;
diff --git a/chrome/browser/ui/views/profiles/first_run_flow_controller_dice.cc b/chrome/browser/ui/views/profiles/first_run_flow_controller_dice.cc index 218be4b..e3e1044a 100644 --- a/chrome/browser/ui/views/profiles/first_run_flow_controller_dice.cc +++ b/chrome/browser/ui/views/profiles/first_run_flow_controller_dice.cc
@@ -7,6 +7,7 @@ #include <memory> #include <utility> +#include "base/command_line.h" #include "base/functional/bind.h" #include "base/functional/callback.h" #include "base/functional/callback_forward.h" @@ -20,6 +21,7 @@ #include "chrome/browser/enterprise/util/managed_browser_utils.h" #include "chrome/browser/policy/cloud/user_policy_signin_service.h" #include "chrome/browser/policy/cloud/user_policy_signin_service_factory.h" +#include "chrome/browser/prefs/incognito_mode_prefs.h" #include "chrome/browser/profiles/profile.h" #include "chrome/browser/search_engine_choice/search_engine_choice_dialog_service.h" #include "chrome/browser/search_engine_choice/search_engine_choice_dialog_service_factory.h" @@ -49,6 +51,16 @@ const signin_metrics::AccessPoint kAccessPoint = signin_metrics::AccessPoint::ACCESS_POINT_FOR_YOU_FRE; +enum class ShowDefaultBrowserStep { + // The default browser step should be shown as appropriate. + kYes, + // The default browser step should be skipped. + kNo, + // The default browser step should be shown even if we normally should skip + // it, example because of policies or the current default state. + kForce +}; + bool IsDefaultBrowserDisabledByPolicy() { const PrefService::Preference* pref = g_browser_process->local_state()->FindPreference( @@ -172,9 +184,9 @@ void Show(base::OnceCallback<void(bool success)> step_shown_callback, bool reset_state) override { CHECK(reset_state); - WithDefaultBrowserStep show_screen = ShouldShowScreen(); + const ShowDefaultBrowserStep show_screen = ShouldShowScreen(); - if (show_screen == WithDefaultBrowserStep::kNo) { + if (show_screen == ShowDefaultBrowserStep::kNo) { // Forward the callback since the step is skipped. std::move(step_completed_callback_).Run(std::move(step_shown_callback)); return; @@ -191,7 +203,7 @@ // If the feature is set to forced, show the step even if it's already // the default browser. - if (show_screen == WithDefaultBrowserStep::kForced) { + if (show_screen == ShowDefaultBrowserStep::kForce) { std::move(show_default_browser_screen_callback_).Run(); return; } @@ -297,7 +309,7 @@ } } - WithDefaultBrowserStep ShouldShowScreen() { + ShowDefaultBrowserStep ShouldShowScreen() const { bool should_show_default_browser_step = // Check for policies. !IsDefaultBrowserDisabledByPolicy() && @@ -305,21 +317,22 @@ shell_integration::CanSetAsDefaultBrowser(); if (!should_show_default_browser_step) { - return WithDefaultBrowserStep::kNo; + return ShowDefaultBrowserStep::kNo; } - // If the feature is enabled, the default browser step should be shown only - // on Windows. If it's forced, it should be shown on the other platforms for - // testing. + // The default browser step should be shown only on Windows. We only show it + // on Windows because we display a dialog before the FRE on MacOS and Linux + // to ask the user about the default browser. If it's forced, it should be + // shown on the other platforms for testing. #if BUILDFLAG(IS_WIN) - return kForYouFreWithDefaultBrowserStep.Get(); + return ShowDefaultBrowserStep::kYes; #else // Non-Windows platforms should not show this unless forced (e.g. // command line) - bool force_default_browser_step = kForYouFreWithDefaultBrowserStep.Get() == - WithDefaultBrowserStep::kForced; - return force_default_browser_step ? WithDefaultBrowserStep::kForced - : WithDefaultBrowserStep::kNo; + base::CommandLine* command_line = base::CommandLine::ForCurrentProcess(); + return command_line->HasSwitch(switches::kForceFreDefaultBrowserStep) + ? ShowDefaultBrowserStep::kForce + : ShowDefaultBrowserStep::kNo; #endif // BUILDFLAG(IS_WIN) }
diff --git a/chrome/browser/ui/views/profiles/first_run_interactive_uitest.cc b/chrome/browser/ui/views/profiles/first_run_interactive_uitest.cc index 8bc0732..ef97c1eb 100644 --- a/chrome/browser/ui/views/profiles/first_run_interactive_uitest.cc +++ b/chrome/browser/ui/views/profiles/first_run_interactive_uitest.cc
@@ -80,7 +80,6 @@ struct TestParam { std::string test_suffix; - bool with_default_browser_step = false; bool with_search_engine_choice_step = false; bool with_privacy_sandbox_enabled = false; }; @@ -92,13 +91,8 @@ // Permutations of supported parameters. const TestParam kTestParams[] = { {.test_suffix = "Default"}, - {.test_suffix = "WithDefaultBrowserStep", - .with_default_browser_step = true}, {.test_suffix = "WithSearchEngineChoiceStep", .with_search_engine_choice_step = true}, - {.test_suffix = "WithDefaultBrowserAndSearchEngineChoiceSteps", - .with_default_browser_step = true, - .with_search_engine_choice_step = true}, {.test_suffix = "WithSearchEngineChoiceAndPrivacySandboxEnabled", .with_search_engine_choice_step = true, .with_privacy_sandbox_enabled = true}, @@ -265,10 +259,6 @@ FirstRunParameterizedInteractiveUiTest() { std::vector<base::test::FeatureRefAndParams> enabled_features_and_params; std::vector<base::test::FeatureRef> disabled_features; - enabled_features_and_params.push_back( - {kForYouFre, - {{kForYouFreWithDefaultBrowserStep.name, - WithDefaultBrowserStep() ? "forced" : "no"}}}); if (WithSearchEngineChoiceStep()) { scoped_chrome_build_override_ = std::make_unique<base::AutoReset<bool>>( @@ -301,6 +291,10 @@ // Change the country to belgium so that the search engine choice test works // as intended. command_line->AppendSwitchASCII(switches::kSearchEngineChoiceCountry, "BE"); + + // The default browser step is normally only shown on Windows. If it's + // forced, it should be shown on the other platforms for testing. + command_line->AppendSwitch(switches::kForceFreDefaultBrowserStep); } void SetUp() override { @@ -331,10 +325,6 @@ } } - bool WithDefaultBrowserStep() const { - return GetParam().with_default_browser_step; - } - bool WithSearchEngineChoiceStep() const { return GetParam().with_search_engine_choice_step; } @@ -526,8 +516,7 @@ If([&] { return WithSearchEngineChoiceStep(); }, CompleteSearchEngineChoiceStep()), - If([&] { return WithDefaultBrowserStep(); }, - CompleteDefaultBrowserStep())); + CompleteDefaultBrowserStep()); WaitForPickerClosed(); @@ -547,11 +536,9 @@ "Signin.SyncOptIn.Completed", signin_metrics::AccessPoint::ACCESS_POINT_FOR_YOU_FRE, 1); - if (WithDefaultBrowserStep()) { - histogram_tester().ExpectUniqueSample( - "ProfilePicker.FirstRun.DefaultBrowser", - DefaultBrowserChoice::kClickSetAsDefault, 1); - } + histogram_tester().ExpectUniqueSample( + "ProfilePicker.FirstRun.DefaultBrowser", + DefaultBrowserChoice::kClickSetAsDefault, 1); if (WithSearchEngineChoiceStep()) { histogram_tester().ExpectBucketCount( @@ -627,8 +614,8 @@ If([&] { return WithSearchEngineChoiceStep(); }, CompleteSearchEngineChoiceStep()), - If([&] { return WithDefaultBrowserStep(); }, - CompleteDefaultBrowserStep())); + + CompleteDefaultBrowserStep()); // Wait for the picker to be closed and deleted. WaitForPickerClosed(); @@ -768,8 +755,8 @@ If([&] { return WithSearchEngineChoiceStep(); }, CompleteSearchEngineChoiceStep()), - If([&] { return WithDefaultBrowserStep(); }, - CompleteDefaultBrowserStep())); + + CompleteDefaultBrowserStep()); WaitForPickerClosed(); EXPECT_TRUE(proceed_future.Get()); @@ -838,8 +825,8 @@ If([&] { return WithSearchEngineChoiceStep(); }, CompleteSearchEngineChoiceStep()), - If([&] { return WithDefaultBrowserStep(); }, - CompleteDefaultBrowserStep())); + + CompleteDefaultBrowserStep()); // Wait for the picker to be closed and deleted. WaitForPickerClosed();
diff --git a/chrome/browser/ui/views/profiles/profile_menu_view_browsertest.cc b/chrome/browser/ui/views/profiles/profile_menu_view_browsertest.cc index eef6f88..ba1ccb7 100644 --- a/chrome/browser/ui/views/profiles/profile_menu_view_browsertest.cc +++ b/chrome/browser/ui/views/profiles/profile_menu_view_browsertest.cc
@@ -83,6 +83,7 @@ #include "components/sync/service/sync_user_settings.h" #include "components/sync/test/fake_server_network_resources.h" #include "components/user_education/common/feature_promo_controller.h" +#include "components/webapps/common/web_app_id.h" #include "content/public/browser/navigation_entry.h" #include "content/public/test/browser_test.h" #include "content/public/test/test_navigation_observer.h" @@ -162,10 +163,9 @@ const char kPasswordManagerPWAUrl[] = "chrome://password-manager/?source=pwa"; std::unique_ptr<web_app::WebAppInstallInfo> CreatePasswordManagerWebAppInfo() { - auto web_app_info = std::make_unique<web_app::WebAppInstallInfo>(); - web_app_info->start_url = GURL(kPasswordManagerPWAUrl); + auto web_app_info = std::make_unique<web_app::WebAppInstallInfo>( + webapps::ManifestId(kPasswordManagerId), GURL(kPasswordManagerPWAUrl)); web_app_info->title = u"Password Manager"; - web_app_info->manifest_id = GURL(kPasswordManagerId); return web_app_info; }
diff --git a/chrome/browser/ui/views/tabs/tab_drag_controller_interactive_uitest.cc b/chrome/browser/ui/views/tabs/tab_drag_controller_interactive_uitest.cc index d54454f7..a790989f 100644 --- a/chrome/browser/ui/views/tabs/tab_drag_controller_interactive_uitest.cc +++ b/chrome/browser/ui/views/tabs/tab_drag_controller_interactive_uitest.cc
@@ -3064,8 +3064,8 @@ // browser window will be a normal browser window or an app window. IN_PROC_BROWSER_TEST_P(DetachTabWithUrlControlledByWebApp, TearOffWebApp) { // Install tabbed web app. - auto web_app_info = std::make_unique<web_app::WebAppInstallInfo>(); - web_app_info->start_url = GURL("https://www.example.com"); + auto web_app_info = web_app::WebAppInstallInfo::CreateWithStartUrlForTesting( + GURL("https://www.example.com")); web_app_info->title = u"A tabbed web app"; web_app_info->user_display_mode = web_app::mojom::UserDisplayMode::kStandalone; @@ -3123,8 +3123,9 @@ } webapps::AppId InstallMockApp(bool add_home_tab) { - auto web_app_info = std::make_unique<web_app::WebAppInstallInfo>(); - web_app_info->start_url = GURL("https://www.example.com"); + auto web_app_info = + web_app::WebAppInstallInfo::CreateWithStartUrlForTesting( + GURL("https://www.example.com")); web_app_info->title = u"A tabbed web app"; web_app_info->user_display_mode = web_app::mojom::UserDisplayMode::kStandalone;
diff --git a/chrome/browser/ui/web_applications/web_app_dialog_utils.cc b/chrome/browser/ui/web_applications/web_app_dialog_utils.cc index 346826ae..1296811 100644 --- a/chrome/browser/ui/web_applications/web_app_dialog_utils.cc +++ b/chrome/browser/ui/web_applications/web_app_dialog_utils.cc
@@ -66,7 +66,7 @@ // which it may not be. Icon purpose also needs to be considered. apps::IconInfo GetIcon(const std::vector<apps::IconInfo>& manifest_icons) { for (const auto& icon_info : manifest_icons) { - if (icon_info.square_size_px > ash::app_install::kIconSize) { + if (icon_info.square_size_px.value_or(0) > ash::app_install::kIconSize) { return icon_info; } } @@ -100,7 +100,7 @@ base::UTF16ToUTF8(web_app_info->title), web_app_info->start_url.GetWithEmptyPath(), base::UTF16ToUTF8(web_app_info->description), icon.url, - icon.square_size_px.has_value() ? icon.square_size_px.value() : 0, + icon.square_size_px.value_or(0), icon.purpose == apps::IconInfo::Purpose::kMaskable, std::move(dialog_screenshots), base::BindOnce(
diff --git a/chrome/browser/ui/webui/ash/app_install/app_install_page_handler.cc b/chrome/browser/ui/webui/ash/app_install/app_install_page_handler.cc index f2eb3c2c..5d60c36 100644 --- a/chrome/browser/ui/webui/ash/app_install/app_install_page_handler.cc +++ b/chrome/browser/ui/webui/ash/app_install/app_install_page_handler.cc
@@ -53,7 +53,7 @@ AppInstallPageHandler::AppInstallPageHandler( Profile* profile, - AppInstallDialogArgs dialog_args, + std::optional<AppInstallDialogArgs> dialog_args, CloseDialogCallback close_dialog_callback, mojo::PendingReceiver<mojom::PageHandler> pending_page_handler) : profile_{profile}, @@ -74,26 +74,20 @@ AppInstallPageHandler::~AppInstallPageHandler() = default; void AppInstallPageHandler::GetDialogArgs(GetDialogArgsCallback callback) { - std::move(callback).Run(absl::visit( - base::Overloaded( - [&](const AppInfoArgs& app_info_args) { - return mojom::DialogArgs::NewAppInfoArgs(mojom::AppInfoArgs::New( - app_info_args.data.Clone(), - app_info_actions_receiver_.BindNewPipeAndPassRemote())); - }, - [&](const NoAppErrorArgs& no_app_error_args) { - return mojom::DialogArgs::NewNoAppErrorArgs( - mojom::NoAppErrorArgs::New()); - }, - [&](const ConnectionErrorArgs& connection_error_args) { - return mojom::DialogArgs::NewConnectionErrorActions( - connection_error_actions_receiver_.BindNewPipeAndPassRemote()); - }), - dialog_args_)); + if (!dialog_args_.has_value()) { + pending_dialog_args_callbacks_.push_back(std::move(callback)); + return; + } + + std::move(callback).Run(ConvertDialogArgsToMojom(dialog_args_.value())); } void AppInstallPageHandler::CloseDialog() { - if (auto* app_info_args = absl::get_if<AppInfoArgs>(&dialog_args_)) { + if (!dialog_args_.has_value()) { + return; + } + + if (auto* app_info_args = absl::get_if<AppInfoArgs>(&dialog_args_.value())) { if (app_info_args->dialog_accepted_callback) { base::RecordAction( base::UserMetricsAction("ChromeOS.AppInstallDialog.Cancelled")); @@ -117,7 +111,11 @@ } void AppInstallPageHandler::InstallApp(InstallAppCallback callback) { - AppInfoArgs& app_info_args = absl::get<AppInfoArgs>(dialog_args_); + if (!dialog_args_.has_value()) { + return; + } + + AppInfoArgs& app_info_args = absl::get<AppInfoArgs>(dialog_args_.value()); base::RecordAction( base::UserMetricsAction("ChromeOS.AppInstallDialog.Installed")); @@ -133,12 +131,25 @@ std::move(app_info_args.dialog_accepted_callback).Run(true); } +void AppInstallPageHandler::SetDialogArgs(AppInstallDialogArgs dialog_args) { + CHECK(!dialog_args_.has_value()); + dialog_args_ = std::move(dialog_args); + for (GetDialogArgsCallback& callback : pending_dialog_args_callbacks_) { + std::move(callback).Run(ConvertDialogArgsToMojom(dialog_args_.value())); + } + pending_dialog_args_callbacks_.clear(); +} + void AppInstallPageHandler::OnInstallComplete( bool success, std::optional<base::OnceCallback<void(bool accepted)>> retry_callback) { + if (!dialog_args_.has_value()) { + return; + } + if (!success) { CHECK(retry_callback.has_value()); - absl::get<AppInfoArgs>(dialog_args_).dialog_accepted_callback = + absl::get<AppInfoArgs>(dialog_args_.value()).dialog_accepted_callback = std::move(retry_callback.value()); } if (install_app_callback_) { @@ -147,8 +158,12 @@ } void AppInstallPageHandler::LaunchApp() { + if (!dialog_args_.has_value()) { + return; + } + std::optional<std::string> app_id = apps_util::GetAppWithPackageId( - &*profile_, absl::get<AppInfoArgs>(dialog_args_).package_id); + &*profile_, absl::get<AppInfoArgs>(dialog_args_.value()).package_id); if (!app_id.has_value()) { mojo::ReportBadMessage("Unable to launch app without an app_id."); return; @@ -160,11 +175,35 @@ } void AppInstallPageHandler::TryAgain() { + if (!dialog_args_.has_value()) { + return; + } + base::OnceClosure& callback = - absl::get<ConnectionErrorArgs>(dialog_args_).try_again_callback; + absl::get<ConnectionErrorArgs>(dialog_args_.value()).try_again_callback; if (callback) { std::move(callback).Run(); } } +mojom::DialogArgsPtr AppInstallPageHandler::ConvertDialogArgsToMojom( + const AppInstallDialogArgs& dialog_args) { + return absl::visit( + base::Overloaded( + [&](const AppInfoArgs& app_info_args) { + return mojom::DialogArgs::NewAppInfoArgs(mojom::AppInfoArgs::New( + app_info_args.data.Clone(), + app_info_actions_receiver_.BindNewPipeAndPassRemote())); + }, + [&](const NoAppErrorArgs& no_app_error_args) { + return mojom::DialogArgs::NewNoAppErrorArgs( + mojom::NoAppErrorArgs::New()); + }, + [&](const ConnectionErrorArgs& connection_error_args) { + return mojom::DialogArgs::NewConnectionErrorActions( + connection_error_actions_receiver_.BindNewPipeAndPassRemote()); + }), + dialog_args); +} + } // namespace ash::app_install
diff --git a/chrome/browser/ui/webui/ash/app_install/app_install_page_handler.h b/chrome/browser/ui/webui/ash/app_install/app_install_page_handler.h index 2185cea..e7e1435 100644 --- a/chrome/browser/ui/webui/ash/app_install/app_install_page_handler.h +++ b/chrome/browser/ui/webui/ash/app_install/app_install_page_handler.h
@@ -32,7 +32,7 @@ using CloseDialogCallback = base::OnceCallback<void()>; explicit AppInstallPageHandler( Profile* profile, - AppInstallDialogArgs dialog_args, + std::optional<AppInstallDialogArgs> dialog_args, CloseDialogCallback close_dialog_callback, mojo::PendingReceiver<mojom::PageHandler> pending_page_handler); @@ -41,6 +41,7 @@ ~AppInstallPageHandler() override; + void SetDialogArgs(AppInstallDialogArgs dialog_args); void OnInstallComplete( bool success, std::optional<base::OnceCallback<void(bool accepted)>> retry_callback); @@ -57,8 +58,12 @@ void TryAgain() override; private: + mojom::DialogArgsPtr ConvertDialogArgsToMojom( + const AppInstallDialogArgs& dialog_args); + raw_ptr<Profile> profile_; - AppInstallDialogArgs dialog_args_; + std::optional<AppInstallDialogArgs> dialog_args_; + std::vector<GetDialogArgsCallback> pending_dialog_args_callbacks_; InstallAppCallback install_app_callback_; CloseDialogCallback close_dialog_callback_; mojo::Receiver<mojom::PageHandler> page_handler_receiver_;
diff --git a/chrome/browser/ui/webui/ash/app_install/app_install_ui.cc b/chrome/browser/ui/webui/ash/app_install/app_install_ui.cc index 14e8ae2..af8afc7 100644 --- a/chrome/browser/ui/webui/ash/app_install/app_install_ui.cc +++ b/chrome/browser/ui/webui/ash/app_install/app_install_ui.cc
@@ -74,7 +74,11 @@ AppInstallDialogUI::~AppInstallDialogUI() = default; void AppInstallDialogUI::SetDialogArgs(AppInstallDialogArgs dialog_args) { - dialog_args_ = std::move(dialog_args); + if (page_handler_) { + page_handler_->SetDialogArgs(std::move(dialog_args)); + } else { + dialog_args_ = std::move(dialog_args); + } } void AppInstallDialogUI::SetInstallComplete( @@ -103,7 +107,7 @@ void AppInstallDialogUI::CreatePageHandler( mojo::PendingReceiver<mojom::PageHandler> receiver) { page_handler_ = std::make_unique<AppInstallPageHandler>( - Profile::FromWebUI(web_ui()), std::move(dialog_args_).value(), + Profile::FromWebUI(web_ui()), std::move(dialog_args_), base::BindOnce(&AppInstallDialogUI::CloseDialog, base::Unretained(this)), std::move(receiver)); }
diff --git a/chrome/browser/ui/webui/ash/cloud_upload/cloud_upload_dialog_browsertest.cc b/chrome/browser/ui/webui/ash/cloud_upload/cloud_upload_dialog_browsertest.cc index 709aa981..57c3e1f 100644 --- a/chrome/browser/ui/webui/ash/cloud_upload/cloud_upload_dialog_browsertest.cc +++ b/chrome/browser/ui/webui/ash/cloud_upload/cloud_upload_dialog_browsertest.cc
@@ -112,8 +112,9 @@ for (int i = 0; i < n; ++i) { std::string start_url = "https://www.example" + base::NumberToString(i) + ".com"; - auto web_app_info = std::make_unique<web_app::WebAppInstallInfo>(); - web_app_info->start_url = GURL(start_url); + auto web_app_info = + web_app::WebAppInstallInfo::CreateWithStartUrlForTesting( + GURL(start_url)); web_app_info->scope = GURL(start_url); apps::FileHandler handler; std::string url = start_url + "/handle_file";
diff --git a/chrome/browser/ui/webui/ash/login/cryptohome_recovery_screen_handler.cc b/chrome/browser/ui/webui/ash/login/cryptohome_recovery_screen_handler.cc index 684bd0f9..dfbf4447 100644 --- a/chrome/browser/ui/webui/ash/login/cryptohome_recovery_screen_handler.cc +++ b/chrome/browser/ui/webui/ash/login/cryptohome_recovery_screen_handler.cc
@@ -19,34 +19,16 @@ void CryptohomeRecoveryScreenHandler::DeclareLocalizedValues( ::login::LocalizedValuesBuilder* builder) { - builder->Add("cryptohomeRecoverySuccessTitle", - IDS_LOGIN_CRYPTOHOME_RECOVERY_SUCCESS_TITLE); - builder->Add("cryptohomeRecoveryErrorTitle", - IDS_LOGIN_CRYPTOHOME_RECOVERY_ERROR_TITLE); builder->Add("cryptohomeRecoveryReauthNotificationTitle", IDS_LOGIN_CRYPTOHOME_RECOVERY_REAUTH_NOTIFICATION_TITLE); builder->Add("cryptohomeRecoveryReauthNotificationSubtitle", IDS_LOGIN_CRYPTOHOME_RECOVERY_REAUTH_NOTIFICATION_SUBTITLE); - builder->Add("cryptohomeRecoveryManualRecoveryButton", - IDS_LOGIN_CRYPTOHOME_RECOVERY_MANUAL_RECOVERY_BUTTON); - builder->Add("cryptohomeRecoveryRetryButton", - IDS_LOGIN_CRYPTOHOME_RECOVERY_RETRY_BUTTON); - builder->Add("cryptohomeRecoveryDoneButton", - IDS_LOGIN_CRYPTOHOME_RECOVERY_DONE_BUTTON); } void CryptohomeRecoveryScreenHandler::Show() { ShowInWebUI(); } -void CryptohomeRecoveryScreenHandler::OnRecoverySucceeded() { - CallExternalAPI("onRecoverySucceeded"); -} - -void CryptohomeRecoveryScreenHandler::OnRecoveryFailed() { - CallExternalAPI("onRecoveryFailed"); -} - void CryptohomeRecoveryScreenHandler::ShowReauthNotification() { CallExternalAPI("showReauthNotification"); }
diff --git a/chrome/browser/ui/webui/ash/login/cryptohome_recovery_screen_handler.h b/chrome/browser/ui/webui/ash/login/cryptohome_recovery_screen_handler.h index 25bae15..c0a3ec5 100644 --- a/chrome/browser/ui/webui/ash/login/cryptohome_recovery_screen_handler.h +++ b/chrome/browser/ui/webui/ash/login/cryptohome_recovery_screen_handler.h
@@ -24,12 +24,6 @@ // Shows the contents of the screen. virtual void Show() = 0; - // Shows the recovery succeeded message. - virtual void OnRecoverySucceeded() = 0; - - // Shows the recovery failed message. - virtual void OnRecoveryFailed() = 0; - // Shows the reauth required message when there's no reauth proof token. virtual void ShowReauthNotification() = 0; @@ -55,8 +49,6 @@ private: // CryptohomeRecoveryScreenView void Show() override; - void OnRecoverySucceeded() override; - void OnRecoveryFailed() override; void ShowReauthNotification() override; base::WeakPtr<CryptohomeRecoveryScreenView> AsWeakPtr() override;
diff --git a/chrome/browser/ui/webui/ash/login/mojom/screens_common.mojom b/chrome/browser/ui/webui/ash/login/mojom/screens_common.mojom index 90b6fb1..6d48dd80 100644 --- a/chrome/browser/ui/webui/ash/login/mojom/screens_common.mojom +++ b/chrome/browser/ui/webui/ash/login/mojom/screens_common.mojom
@@ -26,6 +26,28 @@ SetRequiredSpaceInfo(mojo_base.mojom.String16 required_space ,mojo_base.mojom.String16 free_space); }; +// Interface for the gesture navigation screen. Lives in the browser process. +// A renderer uses this to invoke methods that are implemented in +// the browser process. +interface GestureNavigationPageHandler { + // Describes the steps of gesture navigation pages. + enum GesturePages { + kIntro = 0, + kHome = 1, + kOverview = 2, + kBack = 3, + }; + + // Emits a Page change event with the gesture page. + OnPageChange(GesturePages page); + + // Emits a Next button clicked. + OnSkipClicked(); + + // Emits a Exit Button clicked. + OnExitClicked(); +}; + // Interface for the gaia info screen. Lives in the browser process. // A renderer uses this to invoke methods that are implemented in // the browser process.
diff --git a/chrome/browser/ui/webui/ash/login/mojom/screens_factory.mojom b/chrome/browser/ui/webui/ash/login/mojom/screens_factory.mojom index 837a8e3..2657678 100644 --- a/chrome/browser/ui/webui/ash/login/mojom/screens_factory.mojom +++ b/chrome/browser/ui/webui/ash/login/mojom/screens_factory.mojom
@@ -19,6 +19,11 @@ CreateDrivePinningScreenHandler( pending_remote<ash.screens_common.mojom.DrivePinningPage> page, pending_receiver<ash.screens_common.mojom.DrivePinningPageHandler> handler); + // Creates a GestureNavigationPageHandler and + // connects it up to the GestureNavigationPage. + CreateGestureNavigationPageHandler( + pending_receiver<ash.screens_common.mojom.GestureNavigationPageHandler> + handler); // Creates a GaiaInfoPageHandler and connects it up to the GaiaInfoPage. CreateGaiaInfoScreenHandler(
diff --git a/chrome/browser/ui/webui/ash/login/oobe_screens_handler_factory.cc b/chrome/browser/ui/webui/ash/login/oobe_screens_handler_factory.cc index b7e920d7..8ffe962 100644 --- a/chrome/browser/ui/webui/ash/login/oobe_screens_handler_factory.cc +++ b/chrome/browser/ui/webui/ash/login/oobe_screens_handler_factory.cc
@@ -14,6 +14,7 @@ #include "chrome/browser/ui/webui/ash/login/consumer_update_screen_handler.h" #include "chrome/browser/ui/webui/ash/login/drive_pinning_screen_handler.h" #include "chrome/browser/ui/webui/ash/login/gaia_info_screen_handler.h" +#include "chrome/browser/ui/webui/ash/login/gesture_navigation_screen_handler.h" #include "chrome/browser/ui/webui/ash/login/lacros_data_backward_migration_screen_handler.h" #include "chrome/browser/ui/webui/ash/login/mojom/screens_common.mojom.h" #include "chrome/browser/ui/webui/ash/login/mojom/screens_factory.mojom.h" @@ -61,6 +62,16 @@ drive_pinning->BindRemoteAndReceiver(std::move(page), std::move(receiver)); } +void OobeScreensHandlerFactory::CreateGestureNavigationPageHandler( + mojo::PendingReceiver<screens_common::mojom::GestureNavigationPageHandler> + receiver) { + CHECK(WizardController::default_controller()); + GestureNavigationScreen* gesture_navigation = + WizardController::default_controller() + ->GetScreen<GestureNavigationScreen>(); + gesture_navigation->BindReceiver(std::move(receiver)); +} + void OobeScreensHandlerFactory::CreateGaiaInfoScreenHandler( mojo::PendingRemote<screens_common::mojom::GaiaInfoPage> page, mojo::PendingReceiver<screens_common::mojom::GaiaInfoPageHandler>
diff --git a/chrome/browser/ui/webui/ash/login/oobe_screens_handler_factory.h b/chrome/browser/ui/webui/ash/login/oobe_screens_handler_factory.h index 271fd5f..3f69545 100644 --- a/chrome/browser/ui/webui/ash/login/oobe_screens_handler_factory.h +++ b/chrome/browser/ui/webui/ash/login/oobe_screens_handler_factory.h
@@ -39,6 +39,9 @@ mojo::PendingRemote<screens_common::mojom::DrivePinningPage> page, mojo::PendingReceiver<screens_common::mojom::DrivePinningPageHandler> receiver) override; + void CreateGestureNavigationPageHandler( + mojo::PendingReceiver<screens_common::mojom::GestureNavigationPageHandler> + receiver) override; void CreateGaiaInfoScreenHandler( mojo::PendingRemote<screens_common::mojom::GaiaInfoPage> page,
diff --git a/chrome/browser/ui/webui/ash/manage_mirrorsync/manage_mirrorsync_dialog_browsertest.cc b/chrome/browser/ui/webui/ash/manage_mirrorsync/manage_mirrorsync_dialog_browsertest.cc index 7971d59..9a4794a 100644 --- a/chrome/browser/ui/webui/ash/manage_mirrorsync/manage_mirrorsync_dialog_browsertest.cc +++ b/chrome/browser/ui/webui/ash/manage_mirrorsync/manage_mirrorsync_dialog_browsertest.cc
@@ -184,6 +184,12 @@ storage::kFileSystemTypeLocal, storage::FileSystemMountOption(), my_files_dir_); + // Turning on MirrorSync requires MyFiles to exist first. + { + base::ScopedAllowBlockingForTesting allow_blocking; + base::CreateDirectory(my_files_dir_); + } + // Toggle the MirrorSync preference to enable / disable the feature. { DriveMirrorSyncStatusObserver observer(enabled);
diff --git a/chrome/browser/ui/webui/intro/intro_ui.cc b/chrome/browser/ui/webui/intro/intro_ui.cc index dc5f243..0cbf83d 100644 --- a/chrome/browser/ui/webui/intro/intro_ui.cc +++ b/chrome/browser/ui/webui/intro/intro_ui.cc
@@ -35,21 +35,6 @@ #if BUILDFLAG(ENABLE_DICE_SUPPORT) int title_id = IDS_FRE_SIGN_IN_TITLE_0; - int default_browser_title_id; - int default_browser_subtitle_id; - switch (kForYouFreDefaultBrowserVariant.Get()) { - case DefaultBrowserVariant::kCurrent: { - default_browser_title_id = IDS_FRE_DEFAULT_BROWSER_TITLE; - default_browser_subtitle_id = IDS_FRE_DEFAULT_BROWSER_SUBTITLE; - break; - } - case DefaultBrowserVariant::kNew: { - default_browser_title_id = IDS_FRE_DEFAULT_BROWSER_TITLE_NEW; - default_browser_subtitle_id = IDS_FRE_DEFAULT_BROWSER_SUBTITLE_NEW; - break; - } - } - int backupCardDescription = base::FeatureList::IsEnabled(switches::kExplicitBrowserSigninUIOnDesktop) ? IDS_UNO_FRE_BACKUP_CARD_DESCRIPTION @@ -79,8 +64,8 @@ {"acceptSignInButtonTitle", IDS_FRE_ACCEPT_SIGN_IN_BUTTON_TITLE}, {"productLogoAltText", IDS_SHORT_PRODUCT_LOGO_ALT_TEXT}, // Strings for default browser promo subpage. - {"defaultBrowserTitle", default_browser_title_id}, - {"defaultBrowserSubtitle", default_browser_subtitle_id}, + {"defaultBrowserTitle", IDS_FRE_DEFAULT_BROWSER_TITLE_NEW}, + {"defaultBrowserSubtitle", IDS_FRE_DEFAULT_BROWSER_SUBTITLE_NEW}, {"defaultBrowserIllustrationAltText", IDS_FRE_DEFAULT_BROWSER_ILLUSTRATION_ALT_TEXT}, {"defaultBrowserSetAsDefault", IDS_FRE_DEFAULT_BROWSER_SET_AS_DEFAULT},
diff --git a/chrome/build/android-arm32.pgo.txt b/chrome/build/android-arm32.pgo.txt index a3fd5e7..c854e7a 100644 --- a/chrome/build/android-arm32.pgo.txt +++ b/chrome/build/android-arm32.pgo.txt
@@ -1 +1 @@ -chrome-android32-main-1715039966-08eb647a2305244ee63f6b163267ce155ba506ab-a9dc5f3d1de565d109b15b763b0f606dc240c1e0.profdata +chrome-android32-main-1715061348-eeadc61172488720ca7b9d7802f1f2f43c31e157-974d107e4e5cbade7c0f7ede9127ab07641e8cef.profdata
diff --git a/chrome/build/android-arm64.pgo.txt b/chrome/build/android-arm64.pgo.txt index a882f6c..2f8f8a6 100644 --- a/chrome/build/android-arm64.pgo.txt +++ b/chrome/build/android-arm64.pgo.txt
@@ -1 +1 @@ -chrome-android64-main-1714989444-bd283582b59cd499b71ba473dbb73283dc7014e9-27ba269c2b2d0e7b260bc10ae9ac74bcde46e884.profdata +chrome-android64-main-1715039966-4faceb4c71a66fa21c64d27628adfa7cd68bda7b-a9dc5f3d1de565d109b15b763b0f606dc240c1e0.profdata
diff --git a/chrome/build/linux.pgo.txt b/chrome/build/linux.pgo.txt index 8a326b0..c586e56 100644 --- a/chrome/build/linux.pgo.txt +++ b/chrome/build/linux.pgo.txt
@@ -1 +1 @@ -chrome-linux-main-1715039966-c8a94d52562103be3baebc4427dcf9e776c12580-a9dc5f3d1de565d109b15b763b0f606dc240c1e0.profdata +chrome-linux-main-1715061348-7f667676f930b42fe03b47b4ea07949eb0ad71a2-974d107e4e5cbade7c0f7ede9127ab07641e8cef.profdata
diff --git a/chrome/build/mac-arm.pgo.txt b/chrome/build/mac-arm.pgo.txt index 11ec7715..18618e3 100644 --- a/chrome/build/mac-arm.pgo.txt +++ b/chrome/build/mac-arm.pgo.txt
@@ -1 +1 @@ -chrome-mac-arm-main-1715046999-2f56ca1d973023bc0ae3f1af77870597c5f5a533-641880d4666441afee264be7ebcfac73f66a0d9d.profdata +chrome-mac-arm-main-1715068359-eef3d259db683f900b6a48bd3b41d8d3e540b019-f28d59839051eb5e07ad77e54761edb9cc9371fa.profdata
diff --git a/chrome/build/win-arm64.pgo.txt b/chrome/build/win-arm64.pgo.txt index 952ea57..24644cc 100644 --- a/chrome/build/win-arm64.pgo.txt +++ b/chrome/build/win-arm64.pgo.txt
@@ -1 +1 @@ -chrome-win-arm64-main-1715039966-142448d6fe33dc96bc7feb4eb434c9f2094010b2-a9dc5f3d1de565d109b15b763b0f606dc240c1e0.profdata +chrome-win-arm64-main-1715061348-9e525c44c9dcc7821f0a168eb3d51676ed9aba7d-974d107e4e5cbade7c0f7ede9127ab07641e8cef.profdata
diff --git a/chrome/build/win32.pgo.txt b/chrome/build/win32.pgo.txt index 2236774..df98b42 100644 --- a/chrome/build/win32.pgo.txt +++ b/chrome/build/win32.pgo.txt
@@ -1 +1 @@ -chrome-win32-main-1715029116-6ad402fc923aa326664c5b28a36c32b461e6c014-80d69f1b85330436764ed0d9f9a41df249e7a10e.profdata +chrome-win32-main-1715050601-53367db54d1bdf7cb3dbf9d10d124cb91250fdf1-ad615e4ff6bc7bc246331d104b5d17a7cb58a087.profdata
diff --git a/chrome/build/win64.pgo.txt b/chrome/build/win64.pgo.txt index 283d3fd..ffaa1c30 100644 --- a/chrome/build/win64.pgo.txt +++ b/chrome/build/win64.pgo.txt
@@ -1 +1 @@ -chrome-win64-main-1715029116-d8e41da1f792c24a4958dcd867b999c3b057c115-80d69f1b85330436764ed0d9f9a41df249e7a10e.profdata +chrome-win64-main-1715050601-f3d8f477d141180c95b89d7f60af8542bfb0fadc-ad615e4ff6bc7bc246331d104b5d17a7cb58a087.profdata
diff --git a/chrome/test/chromedriver/capabilities.cc b/chrome/test/chromedriver/capabilities.cc index 27d8baf3..103bd88b 100644 --- a/chrome/test/chromedriver/capabilities.cc +++ b/chrome/test/chromedriver/capabilities.cc
@@ -1118,7 +1118,7 @@ parser_map["strictFileInteractability"] = base::BindRepeating(&ParseBoolean, &strict_file_interactability); parser_map["webSocketUrl"] = - base::BindRepeating(&ParseBoolean, &webSocketUrl); + base::BindRepeating(&ParseBoolean, &web_socket_url); if (!w3c_compliant) { // TODO(https://crbug.com/chromedriver/2596): "unexpectedAlertBehaviour" is // legacy name of "unhandledPromptBehavior", remove when we stop supporting
diff --git a/chrome/test/chromedriver/capabilities.h b/chrome/test/chromedriver/capabilities.h index 12e4f92..6f52221 100644 --- a/chrome/test/chromedriver/capabilities.h +++ b/chrome/test/chromedriver/capabilities.h
@@ -193,7 +193,7 @@ std::set<WebViewInfo::Type> window_types; - bool webSocketUrl = false; + bool web_socket_url = false; }; bool GetChromeOptionsDictionary(const base::Value::Dict& params,
diff --git a/chrome/test/chromedriver/chrome/chrome_android_impl.cc b/chrome/test/chromedriver/chrome/chrome_android_impl.cc index 38b63bd..7426e6e 100644 --- a/chrome/test/chromedriver/chrome/chrome_android_impl.cc +++ b/chrome/test/chromedriver/chrome/chrome_android_impl.cc
@@ -22,13 +22,15 @@ devtools_event_listeners, std::optional<MobileDevice> mobile_device, std::string page_load_strategy, - std::unique_ptr<Device> device) + std::unique_ptr<Device> device, + bool autoaccept_beforeunload) : ChromeImpl(std::move(browser_info), std::move(window_types), std::move(websocket_client), std::move(devtools_event_listeners), std::move(mobile_device), - page_load_strategy), + page_load_strategy, + autoaccept_beforeunload), device_(std::move(device)) {} ChromeAndroidImpl::~ChromeAndroidImpl() = default;
diff --git a/chrome/test/chromedriver/chrome/chrome_android_impl.h b/chrome/test/chromedriver/chrome/chrome_android_impl.h index 28e469ef..b4562a4 100644 --- a/chrome/test/chromedriver/chrome/chrome_android_impl.h +++ b/chrome/test/chromedriver/chrome/chrome_android_impl.h
@@ -23,7 +23,8 @@ devtools_event_listeners, std::optional<MobileDevice> mobile_device, std::string page_load_strategy, - std::unique_ptr<Device> device); + std::unique_ptr<Device> device, + bool autoaccept_beforeunload); ~ChromeAndroidImpl() override; // Overridden from Chrome:
diff --git a/chrome/test/chromedriver/chrome/chrome_desktop_impl.cc b/chrome/test/chromedriver/chrome/chrome_desktop_impl.cc index 95136e2..09f6ca7d 100644 --- a/chrome/test/chromedriver/chrome/chrome_desktop_impl.cc +++ b/chrome/test/chromedriver/chrome/chrome_desktop_impl.cc
@@ -85,13 +85,15 @@ const base::CommandLine& command, base::ScopedTempDir* user_data_dir, base::ScopedTempDir* extension_dir, - bool network_emulation_enabled) + bool network_emulation_enabled, + bool autoaccept_beforeunload) : ChromeImpl(std::move(browser_info), std::move(window_types), std::move(websocket_client), std::move(devtools_event_listeners), std::move(mobile_device), - page_load_strategy), + page_load_strategy, + autoaccept_beforeunload), process_(std::move(process)), command_(command), network_connection_enabled_(network_emulation_enabled), @@ -165,9 +167,9 @@ if (status.IsError()) return status; std::unique_ptr<WebViewImpl> web_view_tmp = - WebViewImpl::CreateTopLevelWebView(id, w3c_compliant, &browser_info_, - std::move(client), mobile_device, - page_load_strategy()); + WebViewImpl::CreateTopLevelWebView( + id, w3c_compliant, &browser_info_, std::move(client), mobile_device, + page_load_strategy(), autoaccept_beforeunload_); status = web_view_tmp->AttachTo(devtools_websocket_client_.get()); if (status.IsError()) { return status;
diff --git a/chrome/test/chromedriver/chrome/chrome_desktop_impl.h b/chrome/test/chromedriver/chrome/chrome_desktop_impl.h index 84061d6..d549b82e 100644 --- a/chrome/test/chromedriver/chrome/chrome_desktop_impl.h +++ b/chrome/test/chromedriver/chrome/chrome_desktop_impl.h
@@ -35,7 +35,8 @@ const base::CommandLine& command, base::ScopedTempDir* user_data_dir, base::ScopedTempDir* extension_dir, - bool network_emulation_enabled); + bool network_emulation_enabled, + bool autoaccept_beforeunload); ~ChromeDesktopImpl() override; // Waits for a page with the given URL to appear and finish loading.
diff --git a/chrome/test/chromedriver/chrome/chrome_impl.cc b/chrome/test/chromedriver/chrome/chrome_impl.cc index 8d4c303..edf2737e8 100644 --- a/chrome/test/chromedriver/chrome/chrome_impl.cc +++ b/chrome/test/chromedriver/chrome/chrome_impl.cc
@@ -183,7 +183,7 @@ } else { web_views_.push_back(WebViewImpl::CreateTopLevelWebView( view.id, w3c_compliant, &browser_info_, std::move(client), - mobile_device_, page_load_strategy_)); + mobile_device_, page_load_strategy_, autoaccept_beforeunload_)); } status = web_views_.back()->AttachTo(devtools_websocket_client_.get()); if (status.IsError()) { @@ -689,11 +689,13 @@ std::vector<std::unique_ptr<DevToolsEventListener>> devtools_event_listeners, std::optional<MobileDevice> mobile_device, - std::string page_load_strategy) + std::string page_load_strategy, + bool autoaccept_beforeunload) : mobile_device_(std::move(mobile_device)), browser_info_(std::move(browser_info)), window_types_(std::move(window_types)), devtools_websocket_client_(std::move(websocket_client)), + autoaccept_beforeunload_(autoaccept_beforeunload), devtools_event_listeners_(std::move(devtools_event_listeners)), page_load_strategy_(page_load_strategy) { window_types_.insert(WebViewInfo::kPage);
diff --git a/chrome/test/chromedriver/chrome/chrome_impl.h b/chrome/test/chromedriver/chrome/chrome_impl.h index 37a7bd7f..b806a07 100644 --- a/chrome/test/chromedriver/chrome/chrome_impl.h +++ b/chrome/test/chromedriver/chrome/chrome_impl.h
@@ -96,7 +96,8 @@ std::vector<std::unique_ptr<DevToolsEventListener>> devtools_event_listeners, std::optional<MobileDevice> mobile_device, - std::string page_load_strategy); + std::string page_load_strategy, + bool autoaccept_beforeunload); virtual Status QuitImpl() = 0; Status CloseTarget(const std::string& id); @@ -118,6 +119,7 @@ BrowserInfo browser_info_; std::set<WebViewInfo::Type> window_types_; std::unique_ptr<DevToolsClient> devtools_websocket_client_; + bool autoaccept_beforeunload_ = false; private: static Status PermissionNameToChromePermissions(
diff --git a/chrome/test/chromedriver/chrome/chrome_remote_impl.cc b/chrome/test/chromedriver/chrome/chrome_remote_impl.cc index ec6ce22..b3e4342 100644 --- a/chrome/test/chromedriver/chrome/chrome_remote_impl.cc +++ b/chrome/test/chromedriver/chrome/chrome_remote_impl.cc
@@ -18,13 +18,15 @@ std::vector<std::unique_ptr<DevToolsEventListener>> devtools_event_listeners, std::optional<MobileDevice> mobile_device, - std::string page_load_strategy) + std::string page_load_strategy, + bool autoaccept_beforeunload) : ChromeImpl(std::move(browser_info), std::move(window_types), std::move(websocket_client), std::move(devtools_event_listeners), std::move(mobile_device), - page_load_strategy) {} + page_load_strategy, + autoaccept_beforeunload) {} ChromeRemoteImpl::~ChromeRemoteImpl() = default;
diff --git a/chrome/test/chromedriver/chrome/chrome_remote_impl.h b/chrome/test/chromedriver/chrome/chrome_remote_impl.h index 4c21c80..4a56a355 100644 --- a/chrome/test/chromedriver/chrome/chrome_remote_impl.h +++ b/chrome/test/chromedriver/chrome/chrome_remote_impl.h
@@ -21,7 +21,8 @@ std::vector<std::unique_ptr<DevToolsEventListener>> devtools_event_listeners, std::optional<MobileDevice> mobile_device, - std::string page_load_strategy); + std::string page_load_strategy, + bool autoaccept_beforeunload); ~ChromeRemoteImpl() override; // Overridden from Chrome.
diff --git a/chrome/test/chromedriver/chrome/devtools_client_impl.cc b/chrome/test/chromedriver/chrome/devtools_client_impl.cc index 18c04c2..fcc8707 100644 --- a/chrome/test/chromedriver/chrome/devtools_client_impl.cc +++ b/chrome/test/chromedriver/chrome/devtools_client_impl.cc
@@ -47,6 +47,9 @@ const char kNoNodeForBackendNodeIdError[] = "No node found for given backend id"; const char kNoNodeWithGivenIdFoundError[] = "No node with given id found"; +const char kExecutionContextWasDestroyed[] = "Execution context was destroyed."; +const char kInspectedTargetNavigatedOrClosed[] = + "Inspected target navigated or closed"; static constexpr int kSessionNotFoundInspectorCode = -32001; static constexpr int kCdpMethodNotFoundCode = -32601; @@ -1061,7 +1064,8 @@ crashed_ = true; return Status(kTabCrashed); } - if (event.method == "Page.javascriptDialogOpening") { + if ((owner_ && owner_->GetJavaScriptDialogManager()->IsDialogOpen()) || + (!owner_ && event.method == "Page.javascriptDialogOpening")) { // A command may have opened the dialog, which will block the response. // To find out which one (if any), do a round trip with a simple command // to the renderer and afterwards see if any of the commands still haven't @@ -1388,6 +1392,11 @@ // The error message that arises during DOM.resolveNode code. // This means that the node with given BackendNodeId is not found. return Status{kNoSuchElement, error_message}; + } else if (error_message == kExecutionContextWasDestroyed || + error_message == kInspectedTargetNavigatedOrClosed) { + // The error messages that arise if navigation was started by the + // asynchronous script before the script execution was finished.. + return Status{kNavigationDetectedByRemoteEnd, error_message}; } std::optional<int> error_code = error_dict->FindInt("code"); if (error_code == kInvalidParamsInspectorCode) {
diff --git a/chrome/test/chromedriver/chrome/javascript_dialog_manager.cc b/chrome/test/chromedriver/chrome/javascript_dialog_manager.cc index 600cd61..8a77e13 100644 --- a/chrome/test/chromedriver/chrome/javascript_dialog_manager.cc +++ b/chrome/test/chromedriver/chrome/javascript_dialog_manager.cc
@@ -7,8 +7,9 @@ #include "chrome/test/chromedriver/chrome/devtools_client.h" #include "chrome/test/chromedriver/chrome/status.h" -JavaScriptDialogManager::JavaScriptDialogManager(DevToolsClient* client) - : client_(client) { +JavaScriptDialogManager::JavaScriptDialogManager(DevToolsClient* client, + bool autoaccept_beforeunload) + : client_(client), autoaccept_beforeunload_(autoaccept_beforeunload) { client_->AddListener(this); } @@ -95,6 +96,10 @@ "dialog event missing or invalid 'defaultPrompt'"); } prompt_text_ = *prompt_text; + + if (*type == "beforeunload" && autoaccept_beforeunload_) { + return HandleDialog(true, nullptr); + } } else if (method == "Page.javascriptDialogClosed") { // Inspector only sends this event when all dialogs have been closed. // Clear the unhandled queue in case the user closed a dialog manually.
diff --git a/chrome/test/chromedriver/chrome/javascript_dialog_manager.h b/chrome/test/chromedriver/chrome/javascript_dialog_manager.h index 416d1cd..a0fcfba 100644 --- a/chrome/test/chromedriver/chrome/javascript_dialog_manager.h +++ b/chrome/test/chromedriver/chrome/javascript_dialog_manager.h
@@ -18,7 +18,8 @@ // Tracks the opening and closing of JavaScript dialogs (e.g., alerts). class JavaScriptDialogManager : public DevToolsEventListener { public: - explicit JavaScriptDialogManager(DevToolsClient* client); + explicit JavaScriptDialogManager(DevToolsClient* client, + bool autoaccept_beforeunload); JavaScriptDialogManager(const JavaScriptDialogManager&) = delete; JavaScriptDialogManager& operator=(const JavaScriptDialogManager&) = delete; @@ -49,6 +50,8 @@ std::list<std::string> dialog_type_queue_; std::string prompt_text_; + + bool autoaccept_beforeunload_ = false; }; #endif // CHROME_TEST_CHROMEDRIVER_CHROME_JAVASCRIPT_DIALOG_MANAGER_H_
diff --git a/chrome/test/chromedriver/chrome/javascript_dialog_manager_unittest.cc b/chrome/test/chromedriver/chrome/javascript_dialog_manager_unittest.cc index 29385f6..1c374de 100644 --- a/chrome/test/chromedriver/chrome/javascript_dialog_manager_unittest.cc +++ b/chrome/test/chromedriver/chrome/javascript_dialog_manager_unittest.cc
@@ -17,7 +17,7 @@ TEST(JavaScriptDialogManager, NoDialog) { StubDevToolsClient client; - JavaScriptDialogManager manager(&client); + JavaScriptDialogManager manager(&client, true); std::string message("HI"); ASSERT_EQ(kNoSuchAlert, manager.GetDialogMessage(&message).code()); ASSERT_FALSE(manager.IsDialogOpen()); @@ -27,7 +27,7 @@ TEST(JavaScriptDialogManager, HandleDialogPassesParams) { RecorderDevToolsClient client; - JavaScriptDialogManager manager(&client); + JavaScriptDialogManager manager(&client, true); base::Value::Dict params; params.Set("message", "hi"); params.Set("type", "prompt"); @@ -45,7 +45,7 @@ TEST(JavaScriptDialogManager, HandleDialogNullPrompt) { RecorderDevToolsClient client; - JavaScriptDialogManager manager(&client); + JavaScriptDialogManager manager(&client, true); base::Value::Dict params; params.Set("message", "hi"); params.Set("type", "prompt"); @@ -60,7 +60,7 @@ TEST(JavaScriptDialogManager, ReconnectClearsStateAndSendsEnable) { RecorderDevToolsClient client; - JavaScriptDialogManager manager(&client); + JavaScriptDialogManager manager(&client, true); base::Value::Dict params; params.Set("message", "hi"); params.Set("type", "alert"); @@ -122,7 +122,7 @@ TEST(JavaScriptDialogManager, OneDialog) { FakeDevToolsClient client; - JavaScriptDialogManager manager(&client); + JavaScriptDialogManager manager(&client, true); base::Value::Dict params; params.Set("message", "hi"); params.Set("type", "alert"); @@ -150,7 +150,7 @@ TEST(JavaScriptDialogManager, TwoDialogs) { FakeDevToolsClient client; - JavaScriptDialogManager manager(&client); + JavaScriptDialogManager manager(&client, true); base::Value::Dict params; params.Set("message", "1"); params.Set("type", "confirm"); @@ -189,7 +189,7 @@ TEST(JavaScriptDialogManager, OneDialogManualClose) { StubDevToolsClient client; BrowserInfo browser_info; - JavaScriptDialogManager manager(&client); + JavaScriptDialogManager manager(&client, true); base::Value::Dict params; params.Set("message", "hi"); params.Set("type", "alert"); @@ -215,3 +215,50 @@ ASSERT_EQ(kNoSuchAlert, manager.GetDialogMessage(&message).code()); ASSERT_EQ(kNoSuchAlert, manager.HandleDialog(false, nullptr).code()); } + +TEST(JavaScriptDialogManager, BeforeunloadIsAutoAccepted) { + FakeDevToolsClient client; + JavaScriptDialogManager manager(&client, true); + base::Value::Dict params; + params.Set("message", "hi"); + params.Set("type", "beforeunload"); + params.Set("defaultPrompt", ""); + ASSERT_FALSE(manager.IsDialogOpen()); + std::string message; + ASSERT_EQ(kNoSuchAlert, manager.GetDialogMessage(&message).code()); + + client.set_closing_count(1); + ASSERT_EQ( + kOk, + manager.OnEvent(&client, "Page.javascriptDialogOpening", params).code()); + + ASSERT_FALSE(manager.IsDialogOpen()); + ASSERT_EQ(kNoSuchAlert, manager.GetDialogMessage(&message).code()); + ASSERT_EQ(kNoSuchAlert, manager.HandleDialog(false, nullptr).code()); +} + +TEST(JavaScriptDialogManager, AlertAndBeforeunloadAreAutoAccepted) { + FakeDevToolsClient client; + JavaScriptDialogManager manager(&client, true); + base::Value::Dict params; + params.Set("message", "1"); + params.Set("type", "alert"); + params.Set("defaultPrompt", ""); + ASSERT_EQ( + kOk, + manager.OnEvent(&client, "Page.javascriptDialogOpening", params).code()); + params.Set("message", "2"); + params.Set("type", "beforeunload"); + // If a beforeunload dialog is detected all the previous dialogs are + // auto-accepted because a navigation has started after after their + // appearance. + client.set_closing_count(1); + ASSERT_EQ( + kOk, + manager.OnEvent(&client, "Page.javascriptDialogOpening", params).code()); + + ASSERT_FALSE(manager.IsDialogOpen()); + std::string message; + ASSERT_EQ(kNoSuchAlert, manager.GetDialogMessage(&message).code()); + ASSERT_EQ(kNoSuchAlert, manager.HandleDialog(false, nullptr).code()); +}
diff --git a/chrome/test/chromedriver/chrome/navigation_tracker_unittest.cc b/chrome/test/chromedriver/chrome/navigation_tracker_unittest.cc index 7b5377e..2f7965f9 100644 --- a/chrome/test/chromedriver/chrome/navigation_tracker_unittest.cc +++ b/chrome/test/chromedriver/chrome/navigation_tracker_unittest.cc
@@ -131,8 +131,8 @@ DevToolsClient* client_ptr = client_uptr.get(); WebViewImpl web_view(client_ptr->GetId(), true, nullptr, &browser_info, std::move(client_uptr), std::nullopt, - PageLoadStrategy::kNormal); - JavaScriptDialogManager dialog_manager(client_ptr); + PageLoadStrategy::kNormal, true); + JavaScriptDialogManager dialog_manager(client_ptr, true); NavigationTracker tracker(client_ptr, &web_view, &dialog_manager); base::Value::Dict params; @@ -159,8 +159,8 @@ DevToolsClient* client_ptr = client_uptr.get(); WebViewImpl web_view(client_ptr->GetId(), true, nullptr, &browser_info, std::move(client_uptr), std::nullopt, - PageLoadStrategy::kNormal); - JavaScriptDialogManager dialog_manager(client_ptr); + PageLoadStrategy::kNormal, true); + JavaScriptDialogManager dialog_manager(client_ptr, true); NavigationTracker tracker(client_ptr, &web_view, &dialog_manager); base::Value::Dict params; @@ -188,8 +188,8 @@ DevToolsClient* client_ptr = client_uptr.get(); WebViewImpl web_view(client_ptr->GetId(), true, nullptr, &browser_info, std::move(client_uptr), std::nullopt, - PageLoadStrategy::kNormal); - JavaScriptDialogManager dialog_manager(client_ptr); + PageLoadStrategy::kNormal, true); + JavaScriptDialogManager dialog_manager(client_ptr, true); NavigationTracker tracker(client_ptr, &web_view, &dialog_manager); base::Value::Dict params; @@ -241,8 +241,8 @@ DevToolsClient* client_ptr = client_uptr.get(); WebViewImpl web_view(client_ptr->GetId(), true, nullptr, &browser_info, std::move(client_uptr), std::nullopt, - PageLoadStrategy::kNormal); - JavaScriptDialogManager dialog_manager(client_ptr); + PageLoadStrategy::kNormal, true); + JavaScriptDialogManager dialog_manager(client_ptr, true); NavigationTracker tracker(client_ptr, NavigationTracker::kNotLoading, &web_view, &dialog_manager); @@ -263,7 +263,7 @@ std::make_unique<DeterminingLoadStateDevToolsClient>( false, false, std::string(), &dict); DevToolsClient* client_ptr = client_uptr.get(); - JavaScriptDialogManager dialog_manager(client_ptr); + JavaScriptDialogManager dialog_manager(client_ptr, true); EvaluateScriptWebView web_view(kOk); NavigationTracker tracker(client_ptr, &web_view, &dialog_manager); @@ -314,7 +314,7 @@ std::make_unique<DeterminingLoadStateDevToolsClient>( false, false, std::string(), &dict); DevToolsClient* client_ptr = client_uptr.get(); - JavaScriptDialogManager dialog_manager(client_ptr); + JavaScriptDialogManager dialog_manager(client_ptr, true); EvaluateScriptWebView web_view(kOk); NavigationTracker tracker(client_ptr, &web_view, &dialog_manager); @@ -353,7 +353,7 @@ std::make_unique<DeterminingLoadStateDevToolsClient>( false, false, std::string(), &dict); DevToolsClient* client_ptr = client_uptr.get(); - JavaScriptDialogManager dialog_manager(client_ptr); + JavaScriptDialogManager dialog_manager(client_ptr, true); EvaluateScriptWebView web_view(kOk); NavigationTracker tracker(client_ptr, &web_view, &dialog_manager); @@ -423,8 +423,8 @@ DevToolsClient* client_ptr = client_uptr.get(); WebViewImpl web_view(client_ptr->GetId(), true, nullptr, &browser_info, std::move(client_uptr), std::nullopt, - PageLoadStrategy::kNormal); - JavaScriptDialogManager dialog_manager(client_ptr); + PageLoadStrategy::kNormal, true); + JavaScriptDialogManager dialog_manager(client_ptr, true); NavigationTracker tracker(client_ptr, &web_view, &dialog_manager); bool is_pending; @@ -441,8 +441,8 @@ DevToolsClient* client_ptr = client_uptr.get(); WebViewImpl web_view(client_ptr->GetId(), true, nullptr, &browser_info, std::move(client_uptr), std::nullopt, - PageLoadStrategy::kNormal); - JavaScriptDialogManager dialog_manager(client_ptr); + PageLoadStrategy::kNormal, true); + JavaScriptDialogManager dialog_manager(client_ptr, true); NavigationTracker tracker(client_ptr, &web_view, &dialog_manager); ASSERT_NO_FATAL_FAILURE(AssertPendingState(&tracker, true)); @@ -454,7 +454,7 @@ std::make_unique<DeterminingLoadStateDevToolsClient>( false, true, std::string(), &dict); DevToolsClient* client_ptr = client_uptr.get(); - JavaScriptDialogManager dialog_manager(client_ptr); + JavaScriptDialogManager dialog_manager(client_ptr, true); EvaluateScriptWebView web_view(kOk); NavigationTracker tracker(client_ptr, &web_view, &dialog_manager); @@ -470,8 +470,8 @@ DevToolsClient* client_ptr = client_uptr.get(); WebViewImpl web_view(client_ptr->GetId(), true, nullptr, &browser_info, std::move(client_uptr), std::nullopt, - PageLoadStrategy::kNormal); - JavaScriptDialogManager dialog_manager(client_ptr); + PageLoadStrategy::kNormal, true); + JavaScriptDialogManager dialog_manager(client_ptr, true); NavigationTracker tracker(client_ptr, &web_view, &dialog_manager); base::Value::Dict params; @@ -487,7 +487,7 @@ std::make_unique<DeterminingLoadStateDevToolsClient>( false, true, std::string(), &dict); DevToolsClient* client_ptr = client_uptr.get(); - JavaScriptDialogManager dialog_manager(client_ptr); + JavaScriptDialogManager dialog_manager(client_ptr, true); EvaluateScriptWebView web_view(kOk); NavigationTracker tracker(client_ptr, NavigationTracker::kNotLoading, &web_view, &dialog_manager); @@ -509,7 +509,7 @@ std::make_unique<DeterminingLoadStateDevToolsClient>( false, true, std::string(), &dict); DevToolsClient* client_ptr = client_uptr.get(); - JavaScriptDialogManager dialog_manager(client_ptr); + JavaScriptDialogManager dialog_manager(client_ptr, true); EvaluateScriptWebView web_view(kOk); NavigationTracker tracker(client_ptr, NavigationTracker::kNotLoading, &web_view, &dialog_manager); @@ -532,7 +532,7 @@ std::make_unique<DeterminingLoadStateDevToolsClient>( false, true, std::string(), &dict); DevToolsClient* client_ptr = client_uptr.get(); - JavaScriptDialogManager dialog_manager(client_ptr); + JavaScriptDialogManager dialog_manager(client_ptr, true); EvaluateScriptWebView web_view(kOk); NavigationTracker tracker(client_ptr, NavigationTracker::kNotLoading, &web_view, &dialog_manager); @@ -573,8 +573,8 @@ DevToolsClient* client_ptr = client_uptr.get(); WebViewImpl web_view(client_ptr->GetId(), true, nullptr, &browser_info, std::move(client_uptr), std::nullopt, - PageLoadStrategy::kNormal); - JavaScriptDialogManager dialog_manager(client_ptr); + PageLoadStrategy::kNormal, true); + JavaScriptDialogManager dialog_manager(client_ptr, true); NavigationTracker tracker(client_ptr, &web_view, &dialog_manager); bool is_pending;
diff --git a/chrome/test/chromedriver/chrome/status.cc b/chrome/test/chromedriver/chrome/status.cc index 3ef992b..67556a9 100644 --- a/chrome/test/chromedriver/chrome/status.cc +++ b/chrome/test/chromedriver/chrome/status.cc
@@ -76,6 +76,8 @@ return "no such shadow root"; case kDetachedShadowRoot: return "detached shadow root"; + case kNavigationDetectedByRemoteEnd: + return "navigation detected by remote end"; default: return "<unknown>"; }
diff --git a/chrome/test/chromedriver/chrome/status.h b/chrome/test/chromedriver/chrome/status.h index f881b7a..65e4157 100644 --- a/chrome/test/chromedriver/chrome/status.h +++ b/chrome/test/chromedriver/chrome/status.h
@@ -44,6 +44,7 @@ kTabCrashed, kTargetDetached, kUnexpectedAlertOpen_Keep, + kNavigationDetectedByRemoteEnd, }; // Represents a WebDriver status, which may be an error or ok.
diff --git a/chrome/test/chromedriver/chrome/web_view_impl.cc b/chrome/test/chromedriver/chrome/web_view_impl.cc index 3343f4c..d46ea59 100644 --- a/chrome/test/chromedriver/chrome/web_view_impl.cc +++ b/chrome/test/chromedriver/chrome/web_view_impl.cc
@@ -373,10 +373,11 @@ const BrowserInfo* browser_info, std::unique_ptr<DevToolsClient> client, std::optional<MobileDevice> mobile_device, - std::string page_load_strategy) { + std::string page_load_strategy, + bool autoaccept_beforeunload) { return std::make_unique<WebViewImpl>( id, w3c_compliant, nullptr, browser_info, std::move(client), - std::move(mobile_device), page_load_strategy); + std::move(mobile_device), page_load_strategy, autoaccept_beforeunload); } WebViewImpl::WebViewImpl(const std::string& id, @@ -407,7 +408,8 @@ const BrowserInfo* browser_info, std::unique_ptr<DevToolsClient> client, std::optional<MobileDevice> mobile_device, - std::string page_load_strategy) + std::string page_load_strategy, + bool autoaccept_beforeunload) : id_(id), w3c_compliant_(w3c_compliant), browser_info_(browser_info), @@ -416,7 +418,8 @@ parent_(parent), client_(std::move(client)), frame_tracker_(new FrameTracker(client_.get(), this)), - dialog_manager_(new JavaScriptDialogManager(client_.get())), + dialog_manager_( + new JavaScriptDialogManager(client_.get(), autoaccept_beforeunload)), mobile_emulation_override_manager_( new MobileEmulationOverrideManager(client_.get(), std::move(mobile_device), @@ -426,7 +429,8 @@ network_conditions_override_manager_( new NetworkConditionsOverrideManager(client_.get())), heap_snapshot_taker_(new HeapSnapshotTaker(client_.get())), - is_service_worker_(false) { + is_service_worker_(false), + autoaccept_beforeunload_(autoaccept_beforeunload) { // Downloading in headless mode requires the setting of // Browser.setDownloadBehavior. This is handled by the // DownloadDirectoryOverrideManager, which is only instantiated @@ -481,7 +485,7 @@ std::make_unique<DevToolsClientImpl>(session_id, session_id); std::unique_ptr<WebViewImpl> child = std::make_unique<WebViewImpl>( target_id, w3c_compliant_, this, browser_info_, std::move(child_client), - std::nullopt, ""); + std::nullopt, "", autoaccept_beforeunload_); const WebViewImpl* root_view = this; while (root_view->parent_ != nullptr) { root_view = root_view->parent_; @@ -1378,7 +1382,8 @@ Status status{kOk}; while (keep_waiting) { status = client_->HandleEventsUntil(not_pending_navigation, timeout); - keep_waiting = status.code() == kNoSuchExecutionContext; + keep_waiting = status.code() == kNoSuchExecutionContext || + status.code() == kNavigationDetectedByRemoteEnd; } if (status.code() == kTimeout && stop_load_on_timeout) { VLOG(0) << "Timed out. Stopping navigation..."; @@ -1394,7 +1399,8 @@ new_status = client_->HandleEventsUntil( not_pending_navigation, Timeout(base::Seconds(kWaitForNavigationStopSeconds))); - keep_waiting = new_status.code() == kNoSuchExecutionContext; + keep_waiting = new_status.code() == kNoSuchExecutionContext || + new_status.code() == kNavigationDetectedByRemoteEnd; } navigation_tracker_->set_timed_out(false); if (new_status.IsError()) @@ -1733,61 +1739,33 @@ async_args.Append(true); std::unique_ptr<base::Value> tmp; Timeout local_timeout(timeout); + std::unique_ptr<base::Value> query_value; Status status = CallFunctionWithTimeout(frame, kExecuteAsyncScriptScript, - async_args, timeout, &tmp); - if (status.IsError()) + async_args, timeout, &query_value); + if (status.IsError()) { return status; - - const char kDocUnloadError[] = "document unloaded while waiting for result"; - std::string kQueryResult = base::StringPrintf( - "function() {" - " var info = document.$chrome_asyncScriptInfo;" - " if (!info)" - " return {status: %d, value: '%s'};" - " var result = info.result;" - " if (!result)" - " return {status: 0};" - " delete info.result;" - " return result;" - "}", - kJavaScriptError, - kDocUnloadError); - const base::TimeDelta kOneHundredMs = base::Milliseconds(100); - - while (true) { - base::Value::List no_args; - std::unique_ptr<base::Value> query_value; - status = CallFunction(frame, kQueryResult, no_args, &query_value); - if (status.IsError()) { - if (status.code() == kNoSuchFrame) - return Status(kJavaScriptError, kDocUnloadError); - return status; - } - - base::Value::Dict* result_info = query_value->GetIfDict(); - if (!result_info) - return Status(kUnknownError, "async result info is not a dictionary"); - std::optional<int> status_code = result_info->FindInt("status"); - if (!status_code) - return Status(kUnknownError, "async result info has no int 'status'"); - if (*status_code != kOk) { - const std::string* message = result_info->FindString("value"); - return Status(static_cast<StatusCode>(*status_code), - message ? *message : ""); - } - - if (base::Value* value = result_info->Find("value")) { - *result = base::Value::ToUniquePtrValue(value->Clone()); - return Status(kOk); - } - - // Since async-scripts return immediately, need to time period here instead. - if (local_timeout.IsExpired()) - return Status(kTimeout); - - base::PlatformThread::Sleep( - std::min(kOneHundredMs, local_timeout.GetRemainingTime())); } + + base::Value::Dict* result_info = query_value->GetIfDict(); + if (!result_info) { + return Status(kUnknownError, "async result info is not a dictionary"); + } + std::optional<int> status_code = result_info->FindInt("status"); + if (!status_code) { + return Status(kUnknownError, "async result info has no int 'status'"); + } + if (*status_code != kOk) { + const std::string* message = result_info->FindString("value"); + return Status(static_cast<StatusCode>(*status_code), + message ? *message : ""); + } + base::Value* value = result_info->Find("value"); + if (!value) { + return Status{kJavaScriptError, + "no value field in Reuntime.callFunctionOn result"}; + } + *result = base::Value::ToUniquePtrValue(value->Clone()); + return Status(kOk); } void WebViewImpl::SetFrame(const std::string& new_frame_id) {
diff --git a/chrome/test/chromedriver/chrome/web_view_impl.h b/chrome/test/chromedriver/chrome/web_view_impl.h index c705bb80..9b53ae0 100644 --- a/chrome/test/chromedriver/chrome/web_view_impl.h +++ b/chrome/test/chromedriver/chrome/web_view_impl.h
@@ -43,14 +43,16 @@ const BrowserInfo* browser_info, std::unique_ptr<DevToolsClient> client, std::optional<MobileDevice> mobile_device, - std::string page_load_strategy); + std::string page_load_strategy, + bool autoaccept_beforeunload); WebViewImpl(const std::string& id, const bool w3c_compliant, const WebViewImpl* parent, const BrowserInfo* browser_info, std::unique_ptr<DevToolsClient> client, std::optional<MobileDevice> mobile_device, - std::string page_load_strategy); + std::string page_load_strategy, + bool autoaccept_beforeunload); ~WebViewImpl() override; std::unique_ptr<WebViewImpl> CreateChild(const std::string& session_id, const std::string& target_id) const; @@ -270,6 +272,7 @@ std::unique_ptr<CastTracker> cast_tracker_; std::unique_ptr<FedCmTracker> fedcm_tracker_; bool is_service_worker_; + bool autoaccept_beforeunload_ = false; }; // Responsible for locking a WebViewImpl and its associated data structure to
diff --git a/chrome/test/chromedriver/chrome/web_view_impl_unittest.cc b/chrome/test/chromedriver/chrome/web_view_impl_unittest.cc index 0d91820..5fcbfd2 100644 --- a/chrome/test/chromedriver/chrome/web_view_impl_unittest.cc +++ b/chrome/test/chromedriver/chrome/web_view_impl_unittest.cc
@@ -467,7 +467,7 @@ BrowserInfo browser_info; WebViewImpl level1(client_ptr->GetId(), true, nullptr, &browser_info, std::move(client_uptr), std::nullopt, - PageLoadStrategy::kEager); + PageLoadStrategy::kEager, true); EXPECT_TRUE(socket_holder.ConnectSocket()); EXPECT_TRUE(StatusOk(client_ptr->SetSocket(socket_holder.Wrapper()))); std::string sessionid = "2"; @@ -493,7 +493,7 @@ BrowserInfo browser_info; WebViewImpl parent_view(client_ptr->GetId(), true, nullptr, &browser_info, std::move(client_uptr), std::nullopt, - PageLoadStrategy::kEager); + PageLoadStrategy::kEager, true); EXPECT_TRUE(socket_holder.ConnectSocket()); EXPECT_TRUE(StatusOk(client_ptr->SetSocket(socket_holder.Wrapper()))); ASSERT_FALSE(parent_view.IsNonBlocking()); @@ -515,7 +515,7 @@ BrowserInfo browser_info; WebViewImpl parent_view(client_ptr->GetId(), true, nullptr, &browser_info, std::move(client_uptr), std::nullopt, - PageLoadStrategy::kNone); + PageLoadStrategy::kNone, true); EXPECT_TRUE(socket_holder.ConnectSocket()); EXPECT_TRUE(StatusOk(client_ptr->SetSocket(socket_holder.Wrapper()))); std::string sessionid = "2"; @@ -535,7 +535,7 @@ BrowserInfo browser_info; WebViewImpl parent_view(client_ptr->GetId(), true, nullptr, &browser_info, std::move(client_uptr), std::nullopt, - PageLoadStrategy::kNone); + PageLoadStrategy::kNone, true); EXPECT_TRUE(socket_holder.ConnectSocket()); EXPECT_TRUE(StatusOk(client_ptr->SetSocket(socket_holder.Wrapper()))); std::string sessionid = "2"; @@ -558,7 +558,7 @@ BrowserInfo browser_info; WebViewImpl parent_view(client_ptr->GetId(), true, nullptr, &browser_info, std::move(client_uptr), std::nullopt, - PageLoadStrategy::kNormal); + PageLoadStrategy::kNormal, true); EXPECT_TRUE(socket_holder.ConnectSocket()); EXPECT_TRUE(StatusOk(client_ptr->SetSocket(socket_holder.Wrapper()))); std::string sessionid = "2"; @@ -578,7 +578,7 @@ BrowserInfo browser_info; WebViewImpl view(client_ptr->GetId(), true, nullptr, &browser_info, std::move(client_uptr), std::nullopt, - PageLoadStrategy::kEager); + PageLoadStrategy::kEager, true); std::string samesite = "Strict"; base::Value::Dict dict; dict.Set("success", true); @@ -595,7 +595,7 @@ BrowserInfo browser_info; WebViewImpl view(client_ptr->GetId(), true, nullptr, &browser_info, std::move(client_uptr), std::nullopt, - PageLoadStrategy::kEager); + PageLoadStrategy::kEager, true); { // Good 1 base::Value::Dict node_ref; @@ -647,7 +647,7 @@ BrowserInfo browser_info; WebViewImpl view(client_ptr->GetId(), true, nullptr, &browser_info, std::move(client_uptr), std::nullopt, - PageLoadStrategy::kEager); + PageLoadStrategy::kEager, true); { // Good 1 base::Value::Dict node_ref; @@ -696,7 +696,7 @@ BrowserInfo browser_info; WebViewImpl view(client_ptr->GetId(), false, nullptr, &browser_info, std::move(client_uptr), std::nullopt, - PageLoadStrategy::kEager); + PageLoadStrategy::kEager, true); { base::Value::Dict node_ref; node_ref.Set(kElementKey, ElementReference("root", "root_loader", 25)); @@ -723,7 +723,7 @@ std::make_unique<FakeDevToolsClient>("root"); client_uptr->SetResult(GenerateResponse(4321)); WebViewImpl view("root", true, nullptr, &browser_info, std::move(client_uptr), - std::nullopt, PageLoadStrategy::kEager); + std::nullopt, PageLoadStrategy::kEager, true); view.GetFrameTracker()->SetContextIdForFrame("root", "irrelevant"); view.GetFrameTracker()->SetContextIdForFrame("good", "irrelevant"); { @@ -761,7 +761,7 @@ std::make_unique<FakeDevToolsClient>("good"); client_uptr->SetResult(GenerateResponse(4321)); WebViewImpl view("good", true, nullptr, &browser_info, std::move(client_uptr), - std::nullopt, PageLoadStrategy::kEager); + std::nullopt, PageLoadStrategy::kEager, true); view.GetFrameTracker()->SetContextIdForFrame("root", "irrelevant"); view.GetFrameTracker()->SetContextIdForFrame("good", "irrelevant"); { @@ -799,7 +799,7 @@ std::make_unique<FakeDevToolsClient>("root"); FakeDevToolsClient* client_ptr = client_uptr.get(); WebViewImpl view("root", true, nullptr, &browser_info, std::move(client_uptr), - std::nullopt, PageLoadStrategy::kEager); + std::nullopt, PageLoadStrategy::kEager, true); view.GetFrameTracker()->SetContextIdForFrame("root", "irrelevant"); view.GetFrameTracker()->SetContextIdForFrame("good", "irrelevant"); view.GetFrameTracker()->SetContextIdForFrame("bad", "irrelevant"); @@ -891,7 +891,7 @@ BrowserInfo browser_info; WebViewImpl view(client_ptr->GetId(), true, nullptr, &browser_info, std::move(client_uptr), std::nullopt, - PageLoadStrategy::kEager); + PageLoadStrategy::kEager, true); FedCmTracker* tracker = nullptr; Status status = view.GetFedCmTracker(&tracker); EXPECT_TRUE(StatusOk(status)); @@ -907,7 +907,7 @@ client_ptr = client_uptr.get(); view = std::make_unique<WebViewImpl>( "root", IsW3C(), nullptr, &browser_info, std::move(client_uptr), - std::nullopt, PageLoadStrategy::kEager); + std::nullopt, PageLoadStrategy::kEager, true); view->GetFrameTracker()->SetContextIdForFrame("root", "irrelevant"); view->GetFrameTracker()->SetContextIdForFrame("good", "irrelevant"); view->GetFrameTracker()->SetContextIdForFrame("bad", "irrelevant"); @@ -1104,7 +1104,7 @@ BrowserInfo browser_info; WebViewImpl view("root", true, nullptr, &browser_info, std::move(client_uptr), - std::nullopt, PageLoadStrategy::kEager); + std::nullopt, PageLoadStrategy::kEager, true); view.GetFrameTracker()->SetContextIdForFrame("root", "irrelevant"); std::unique_ptr<base::Value> result; @@ -1145,7 +1145,7 @@ BrowserInfo browser_info; WebViewImpl view("root", true, nullptr, &browser_info, std::move(client_uptr), - std::nullopt, PageLoadStrategy::kEager); + std::nullopt, PageLoadStrategy::kEager, true); view.GetFrameTracker()->SetContextIdForFrame("root", "irrelevant"); std::unique_ptr<base::Value> result; @@ -1183,7 +1183,7 @@ BrowserInfo browser_info; WebViewImpl view("root", true, nullptr, &browser_info, std::move(client_uptr), - std::nullopt, PageLoadStrategy::kEager); + std::nullopt, PageLoadStrategy::kEager, true); view.GetFrameTracker()->SetContextIdForFrame("root", "irrelevant"); std::unique_ptr<base::Value> result;
diff --git a/chrome/test/chromedriver/chrome_launcher.cc b/chrome/test/chromedriver/chrome_launcher.cc index a559362..7ee02f56 100644 --- a/chrome/test/chromedriver/chrome_launcher.cc +++ b/chrome/test/chromedriver/chrome_launcher.cc
@@ -253,7 +253,7 @@ // disable throttling all together. // TODO(crbug.com/chromedriver/4762): Remove after the Mapper is moved away // from the tab. - if (capabilities.webSocketUrl) { + if (capabilities.web_socket_url) { switches.SetSwitch("disable-background-timer-throttling"); } @@ -447,7 +447,8 @@ chrome = std::make_unique<ChromeRemoteImpl>( browser_info, capabilities.window_types, std::move(devtools_websocket_client), std::move(devtools_event_listeners), - capabilities.mobile_device, capabilities.page_load_strategy); + capabilities.mobile_device, capabilities.page_load_strategy, + !capabilities.web_socket_url); return Status(kOk); } @@ -759,20 +760,18 @@ std::move(devtools_event_listeners), capabilities.mobile_device, capabilities.page_load_strategy, std::move(process), command, &user_data_dir_temp_dir, &extension_dir, - capabilities.network_emulation_enabled); + capabilities.network_emulation_enabled, !capabilities.web_socket_url); if (!capabilities.extension_load_timeout.is_zero()) { - for (size_t i = 0; i < extension_bg_pages.size(); ++i) { - VLOG(0) << "Waiting for extension bg page load: " - << extension_bg_pages[i]; + for (const std::string& url : extension_bg_pages) { + VLOG(0) << "Waiting for extension bg page load: " << url; std::unique_ptr<WebView> web_view; status = chrome_desktop->WaitForPageToLoad( - extension_bg_pages[i], capabilities.extension_load_timeout, &web_view, - w3c_compliant); + url, capabilities.extension_load_timeout, &web_view, w3c_compliant); if (status.IsError()) { - return Status(kSessionNotCreated, - "failed to wait for extension background page to load: " + - extension_bg_pages[i], - status); + return Status( + kSessionNotCreated, + "failed to wait for extension background page to load: " + url, + status); } } } @@ -847,7 +846,7 @@ browser_info, capabilities.window_types, std::move(devtools_websocket_client), std::move(devtools_event_listeners), capabilities.mobile_device, capabilities.page_load_strategy, - std::move(device)); + std::move(device), !capabilities.web_socket_url); return Status(kOk); } @@ -907,21 +906,19 @@ std::move(devtools_event_listeners), capabilities.mobile_device, capabilities.page_load_strategy, std::move(dummy_process), command, &user_data_dir_temp_dir, &extension_dir, - capabilities.network_emulation_enabled); + capabilities.network_emulation_enabled, !capabilities.web_socket_url); if (!capabilities.extension_load_timeout.is_zero()) { - for (size_t i = 0; i < extension_bg_pages.size(); ++i) { - VLOG(0) << "Waiting for extension bg page load: " - << extension_bg_pages[i]; + for (const std::string& url : extension_bg_pages) { + VLOG(0) << "Waiting for extension bg page load: " << url; std::unique_ptr<WebView> web_view; status = chrome_impl->WaitForPageToLoad( - extension_bg_pages[i], capabilities.extension_load_timeout, &web_view, - w3c_compliant); + url, capabilities.extension_load_timeout, &web_view, w3c_compliant); if (status.IsError()) { - return Status(kSessionNotCreated, - "failed to wait for extension background page to load: " + - extension_bg_pages[i], - status); + return Status( + kSessionNotCreated, + "failed to wait for extension background page to load: " + url, + status); } } }
diff --git a/chrome/test/chromedriver/js/execute_async_script.js b/chrome/test/chromedriver/js/execute_async_script.js index a0735e6b..a210c48 100644 --- a/chrome/test/chromedriver/js/execute_async_script.js +++ b/chrome/test/chromedriver/js/execute_async_script.js
@@ -14,23 +14,6 @@ }; /** - * Dictionary key for asynchronous script info. - * @const - */ -var ASYNC_INFO_KEY = '$chrome_asyncScriptInfo'; - -/** -* Return the information of asynchronous script execution. -* -* @return {Object<?>} Information of asynchronous script execution. -*/ -function getAsyncScriptInfo() { - if (!(ASYNC_INFO_KEY in document)) - document[ASYNC_INFO_KEY] = {'id': 0}; - return document[ASYNC_INFO_KEY]; -} - -/** * Execute the given script and save its asynchronous result. * * If script1 finishes after script2 is executed, then script1's result will be @@ -46,61 +29,46 @@ * exception occurs during the script, and an additional error callback will * be supplied to the script. */ -function executeAsyncScript(script, args, isUserSupplied) { - let resolveHandle; - let rejectHandle; +async function executeAsyncScript(script, args, isUserSupplied) { const Promise = window.cdc_adoQpoasnfa76pfcZLmcfl_Promise || window.Promise; - var promise = new Promise((resolve, reject) => { - resolveHandle = resolve; - rejectHandle = reject; - }); - const info = getAsyncScriptInfo(); - info.id++; - delete info.result; - const id = info.id; - function isThenable(value) { return typeof value === 'object' && typeof value.then === 'function'; } - function report(status, value) { - if (id != info.id) - return; - info.id++; - // Undefined value is skipped when the object is converted to JSON. - // Replace it with null so we don't lose the value. - if (value === undefined) - value = null; - info.result = {status: status, value: value}; - } function reportValue(value) { - report(StatusCode.OK, value); + return {status: StatusCode.OK, value: value}; } - function reportScriptError(error) { + function reportError(error) { var code = isUserSupplied ? StatusCode.JAVASCRIPT_ERROR : (error.code || StatusCode.UNKNOWN_ERROR); var message = error.message; if (error.stack) { message += "\nJavaScript stack:\n" + error.stack; } - report(code, message); + return {status: code, value: message}; } - promise.then(reportValue).catch(reportScriptError); - args.push(resolveHandle); - if (!isUserSupplied) - args.push(rejectHandle); - try { - const scriptResult = new Function(script).apply(null, args); - // The return value is only considered if it is a promise. - if (isThenable(scriptResult)) { - const resolvedPromise = Promise.resolve(scriptResult); - resolvedPromise.then((value) => { - // Must be thenable if user-supplied. - if (!isUserSupplied || isThenable(value)) - resolveHandle(value); - }) - .catch(rejectHandle); + var promise = new Promise((resolve, reject) => { + args.push(resolve); + if (!isUserSupplied) { + args.push(reject); } - } catch (error) { - rejectHandle(error); - } + try { + let scriptResult = new Function(script).apply(null, args); + if (isThenable(scriptResult)) { + const resolvedPromise = Promise.resolve(scriptResult); + resolvedPromise.then((value) => { + // Must be thenable if user-supplied. + if (!isUserSupplied || isThenable(value)) + resolve(value); + }) + .catch(reject); + } + } catch (error) { + reject(error); + } + }); + return await promise.then((result) => { + return reportValue(result); + }).catch((error) => { + return reportError(error); + }); }
diff --git a/chrome/test/chromedriver/js/execute_async_script_test.html b/chrome/test/chromedriver/js/execute_async_script_test.html index 1c4ff5d..30aa597 100644 --- a/chrome/test/chromedriver/js/execute_async_script_test.html +++ b/chrome/test/chromedriver/js/execute_async_script_test.html
@@ -4,117 +4,73 @@ <script src='execute_async_script.js'></script> <script> -function resetAsyncScriptInfo() { - delete document[ASYNC_INFO_KEY]; -} - -function waitForResultToPopulate(callback) { - const info = getAsyncScriptInfo(); - setTimeout(() => { - if (info.result) - callback(info); - else - waitForResultToPopulate(callback); - }, 10); -} - function testUserScriptThrows(runner) { - resetAsyncScriptInfo(); - executeAsyncScript('f(123);', [], true); - waitForResultToPopulate((info) => { - assertEquals(StatusCode.JAVASCRIPT_ERROR, info.result.status); + executeAsyncScript('f(123);', [], true).then((result)=>{ + assertEquals(StatusCode.JAVASCRIPT_ERROR, result.status); runner.continueTesting(); - }); - runner.waitForAsync(); + }); + runner.waitForAsync("StatusCode.JAVASCRIPT_ERROR"); } function testScriptThrows(runner) { - resetAsyncScriptInfo(); - executeAsyncScript('f(123);', [], false); - waitForResultToPopulate((info) => { - assertEquals(StatusCode.UNKNOWN_ERROR, info.result.status); + executeAsyncScript('f(123);', [], false).then((result)=>{ + assertEquals(StatusCode.UNKNOWN_ERROR, result.status); runner.continueTesting(); - }); - runner.waitForAsync(); + }); + runner.waitForAsync("StatusCode.UNKNOWN_ERROR"); } function testUserScriptWithArgs(runner) { - resetAsyncScriptInfo(); - - var injectedArgs = null; + let injectedArgs = null; function captureArguments(args) { injectedArgs = args; } // Pass function captureArguments as the first argument. It is used to capture // the injected arguments to the following script. - var script = + const script = 'var args = arguments; args[0](args); args[args.length - 1](args[1]);'; - var script_args = [captureArguments, 1]; - executeAsyncScript(script, script_args, true); - waitForResultToPopulate((info) => { - assertEquals(3, injectedArgs.length); - assertEquals(captureArguments, injectedArgs[0]); - assertEquals(1, injectedArgs[1]); + const script_args = [captureArguments, 1]; + executeAsyncScript(script, script_args, true) + .then((result)=>{ + assertEquals(3, injectedArgs.length); + assertEquals(captureArguments, injectedArgs[0]); + assertEquals(1, injectedArgs[1]); - assertEquals(0, info.result.status); - assertEquals(1, info.result.value); - assertEquals(2, info.id); - runner.continueTesting(); - }); - runner.waitForAsync(); + assertEquals(0, result.status); + assertEquals(1, result.value); + runner.continueTesting(); + }); + runner.waitForAsync("arguments are captured"); } function testNonUserScriptCallback(runner) { - resetAsyncScriptInfo(); - executeAsyncScript('arguments[1](arguments[0])', [33], false); - waitForResultToPopulate((info) => { - assertEquals(0, info.result.status); - assertEquals(33, info.result.value); - runner.continueTesting(); - }); - runner.waitForAsync(); + executeAsyncScript('arguments[1](arguments[0])', [33], false) + .then((result)=>{ + assertEquals(0, result.status); + assertEquals(33, result.value); + runner.continueTesting(); + }); + runner.waitForAsync('user script callback'); } function testNonUserScriptCustomError(runner) { - resetAsyncScriptInfo(); - executeAsyncScript('arguments[2](new Error("ERR"))', [33], false); - waitForResultToPopulate((info) => { - assertEquals(StatusCode.UNKNOWN_ERROR, info.result.status); - assertEquals(0, info.result.value.indexOf('ERR')); - runner.continueTesting(); - }); - runner.waitForAsync(); + executeAsyncScript('arguments[2](new Error("ERR"))', [33], false) + .then((result)=>{ + assertEquals(StatusCode.UNKNOWN_ERROR, result.status); + assertEquals(0, result.value.indexOf('ERR')); + runner.continueTesting(); + }); + runner.waitForAsync("custom error"); } function testNonUserScriptCustomErrorCode(runner) { - resetAsyncScriptInfo(); executeAsyncScript('var e = new Error("ERR"); e.code = 111; arguments[1](e)', - [], false); - waitForResultToPopulate((info) => { - assertEquals(111, info.result.status); - assertEquals(0, info.result.value.indexOf('ERR')); - runner.continueTesting(); + [], false).then((result)=>{ + assertEquals(111, result.status); + assertEquals(0, result.value.indexOf('ERR')); + runner.continueTesting(); }); - runner.waitForAsync(); -} - -function testFirstScriptFinishAfterSecondScriptExecute(runner) { - resetAsyncScriptInfo(); - - executeAsyncScript( - 'var f = arguments[0]; setTimeout(function(){ f(1); }, 100000);', []); - var info = getAsyncScriptInfo(); - assert(!info.hasOwnProperty('result')); - assertEquals(1, info.id); - - executeAsyncScript('var fn = arguments[0]; fn(2);', []); - waitForResultToPopulate((info) => { - assertEquals(0, info.result.status); - assertEquals(2, info.result.value); - assertEquals(3, info.id); - runner.continueTesting(); - }); - runner.waitForAsync(); + runner.waitForAsync("custom error with custom error code"); } </script>
diff --git a/chrome/test/chromedriver/log_replay/chrome_replay_impl.cc b/chrome/test/chromedriver/log_replay/chrome_replay_impl.cc index 722bf4c..ed2676cf 100644 --- a/chrome/test/chromedriver/log_replay/chrome_replay_impl.cc +++ b/chrome/test/chromedriver/log_replay/chrome_replay_impl.cc
@@ -20,7 +20,8 @@ const base::CommandLine& command, base::ScopedTempDir* user_data_dir, base::ScopedTempDir* extension_dir, - bool network_emulation_enabled) + bool network_emulation_enabled, + bool autoaccept_beforeunload) : ChromeDesktopImpl(std::move(browser_info), std::move(window_types), std::move(websocket_client), @@ -31,7 +32,8 @@ command, user_data_dir, extension_dir, - network_emulation_enabled) {} + network_emulation_enabled, + autoaccept_beforeunload) {} ChromeReplayImpl::~ChromeReplayImpl() = default;
diff --git a/chrome/test/chromedriver/log_replay/chrome_replay_impl.h b/chrome/test/chromedriver/log_replay/chrome_replay_impl.h index 43d743b..2848163 100644 --- a/chrome/test/chromedriver/log_replay/chrome_replay_impl.h +++ b/chrome/test/chromedriver/log_replay/chrome_replay_impl.h
@@ -28,7 +28,8 @@ const base::CommandLine& command, base::ScopedTempDir* user_data_dir, base::ScopedTempDir* extension_dir, - bool network_emulation_enabled); + bool network_emulation_enabled, + bool autoaccept_beforeunload); ~ChromeReplayImpl() override; // A no-op: all this does in DesktopChromeImpl is kill the Chrome process.
diff --git a/chrome/test/chromedriver/navigation_tracker_integrationtest.cc b/chrome/test/chromedriver/navigation_tracker_integrationtest.cc index ad6b94c4..ca50ea1 100644 --- a/chrome/test/chromedriver/navigation_tracker_integrationtest.cc +++ b/chrome/test/chromedriver/navigation_tracker_integrationtest.cc
@@ -173,7 +173,7 @@ ASSERT_TRUE(StatusOk(status)); WebViewImpl web_view(view_info->id, true, nullptr, &browser_info_, std::move(client), std::nullopt, - PageLoadStrategy::kNormal); + PageLoadStrategy::kNormal, true); web_view.AttachTo(browser_client_.get()); http_server_.SetDataForPath("test.html", "<span>DONE!</span>");
diff --git a/chrome/test/chromedriver/server/http_handler.cc b/chrome/test/chromedriver/server/http_handler.cc index 8fd52ea..d6f13e17 100644 --- a/chrome/test/chromedriver/server/http_handler.cc +++ b/chrome/test/chromedriver/server/http_handler.cc
@@ -1528,7 +1528,9 @@ default: DCHECK(false); // Examples of unexpected codes: - // * kChromeNotReachable - kSessionNotCreated must be returned instead + // * kChromeNotReachable: kSessionNotCreated must be returned instead; + // * kNavigationDetectedByRemoteEnd: kUnknownError must be returned + // instead. response = std::make_unique<net::HttpServerResponseInfo>( net::HTTP_INTERNAL_SERVER_ERROR); break;
diff --git a/chrome/test/chromedriver/session.h b/chrome/test/chromedriver/session.h index c38f01f..d337d457 100644 --- a/chrome/test/chromedriver/session.h +++ b/chrome/test/chromedriver/session.h
@@ -114,7 +114,7 @@ const std::string id; bool w3c_compliant; - bool webSocketUrl = false; + bool web_socket_url = false; bool quit; bool detach; bool awaiting_bidi_response = false;
diff --git a/chrome/test/chromedriver/session_commands.cc b/chrome/test/chromedriver/session_commands.cc index 4b36413f..7b38fa1b 100644 --- a/chrome/test/chromedriver/session_commands.cc +++ b/chrome/test/chromedriver/session_commands.cc
@@ -259,7 +259,7 @@ caps.Set("hasTouchScreen", session->chrome->HasTouchScreen()); } - if (session->webSocketUrl) { + if (session->web_socket_url) { caps.Set("webSocketUrl", "ws://" + session->host + "/session/" + session->id); } @@ -300,7 +300,7 @@ // |session| will own the |CommandListener|s. session->command_listeners.swap(command_listeners); - if (session->webSocketUrl) { + if (session->web_socket_url) { // Suffixes used with the client channels. std::string client_suffixes[] = {Session::kChannelSuffix, Session::kNoChannelSuffix, @@ -350,7 +350,7 @@ *value = std::make_unique<base::Value>(session->capabilities->Clone()); } - if (session->webSocketUrl) { + if (session->web_socket_url) { WebView* web_view = nullptr; status = session->GetTargetWindow(&web_view); if (status.IsError()) @@ -457,7 +457,7 @@ session->script_timeout = capabilities->script_timeout; session->strict_file_interactability = capabilities->strict_file_interactability; - session->webSocketUrl = capabilities->webSocketUrl; + session->web_socket_url = capabilities->web_socket_url; Log::Level driver_level = Log::kWarning; if (capabilities->logging_prefs.count(WebDriverLog::kDriverType)) driver_level = capabilities->logging_prefs[WebDriverLog::kDriverType]; @@ -776,7 +776,7 @@ if (status.IsError()) return status; bool is_last_web_view = web_view_ids.size() == 1u; - if (session->webSocketUrl) { + if (session->web_socket_url) { is_last_web_view = web_view_ids.size() <= 2u; } web_view_ids.clear(); @@ -850,7 +850,7 @@ if (status.IsError()) return status; - if (session->webSocketUrl) { + if (session->web_socket_url) { auto it = base::ranges::find(web_view_ids, session->bidi_mapper_web_view_id); if (it != web_view_ids.end()) {
diff --git a/chrome/test/chromedriver/test/run_py_tests.py b/chrome/test/chromedriver/test/run_py_tests.py index 6ab046d..7dea4d3 100755 --- a/chrome/test/chromedriver/test/run_py_tests.py +++ b/chrome/test/chromedriver/test/run_py_tests.py
@@ -1169,6 +1169,24 @@ with self.assertRaises(chromedriver.DetachedShadowRoot): self._driver.ExecuteScript("return true;", shadow) + def testExecuteAsyncScriptWithResolve(self): + self.assertEqual( + 10, + self._driver.ExecuteAsyncScript( + 'arguments[0](10)')) + self.assertEqual( + 'one', + self._driver.ExecuteAsyncScript( + 'arguments[0]("one")')) + self.assertEqual( + 0.123, + self._driver.ExecuteAsyncScript( + 'arguments[0](0.123)')) + self.assertEqual( + [1, 2.2, 'three'], + self._driver.ExecuteAsyncScript( + 'arguments[0]([1, 2.2, "three"])')) + def testExecuteAsyncScript(self): self._driver.SetTimeouts({'script': 3000}) self.assertRaises( @@ -2452,8 +2470,32 @@ self._driver.ExecuteScript('window.onbeforeunload=function(){return true}') self._driver.FindElement('tag name', 'body').Click() self._driver.GoBack() - self.assertTrue(self._driver.IsAlertOpen()) - self._driver.HandleAlert(True) + self.assertFalse(self._driver.IsAlertOpen()) + + def testAlertHandlingOnNavigation(self): + self._driver.Load(self.GetHttpUrlForFile('/chromedriver/page_test.html')) + self._driver.ExecuteScript('window.onbeforeunload=function(){return true}') + self._driver.FindElement('tag name', 'body').Click() + self._driver.ExecuteAsyncScript(''' + const [url, resolve] = arguments; + window.location.href = url; + resolve(url); + ''', self.GetHttpUrlForFile('/chromedriver/empty.html')) + self.assertFalse(self._driver.IsAlertOpen()) + + def testAlertHandlingOnNavigationNoResolve(self): + self._driver.Load(self.GetHttpUrlForFile('/chromedriver/page_test.html')) + self._driver.ExecuteScript('window.onbeforeunload=function(){return true}') + self._driver.FindElement('tag name', 'body').Click() + self._driver.SetTimeouts({'script': 100}) + + # The following script never calls resolve. Therefore it times out. + with self.assertRaises(chromedriver.ScriptTimeout): + self._driver.ExecuteAsyncScript(''' + const [url, resolve] = arguments; + window.location.href = url; + ''', self.GetHttpUrlForFile('/chromedriver/empty.html')) + self.assertFalse(self._driver.IsAlertOpen()) def testRefresh(self): @@ -2485,10 +2527,7 @@ self._driver.ExecuteScript('window.onbeforeunload=function(){return true}') self._driver.FindElement('tag name', 'body').Click() self._driver.Refresh() - self.assertTrue(self._driver.IsAlertOpen()) - self.assertRaises(chromedriver.UnsupportedOperation, - self._driver.HandleAlert, - True, 'textToOnBeforeUnload') + self.assertFalse(self._driver.IsAlertOpen()) def testAlertOnNewWindow(self): self._driver.Load(self.GetHttpUrlForFile('/chromedriver/empty.html')) @@ -5641,6 +5680,16 @@ self._CheckPageLoadTimeout(self._driver.GoForward) self.assertEqual(self._initial_url, self._driver.GetCurrentUrl()) + def testHistoryNavigationAndLoadWithPageLoadTimeout(self): + # Allow the page to load for the first time. + self._handler.send_response_event.set() + self._LoadHangingUrl() + self.assertTrue(self._handler.request_received_event.wait(1)) + + self._driver.GoBack() + self._CheckPageLoadTimeout(self._LoadHangingUrl) + self.assertEqual(self._initial_url, self._driver.GetCurrentUrl()) + def testRefreshWithPageLoadTimeout(self): # Allow the page to load for the first time. self._handler.send_response_event.set()
diff --git a/chrome/test/chromedriver/window_commands.cc b/chrome/test/chromedriver/window_commands.cc index ea5802062..3160862 100644 --- a/chrome/test/chromedriver/window_commands.cc +++ b/chrome/test/chromedriver/window_commands.cc
@@ -816,9 +816,15 @@ Status status = web_view->CallUserSyncScript(session->GetCurrentFrameId(), script, *args, session->script_timeout, value); - if (status.code() == kTimeout) - return Status(kScriptTimeout); - return status; + switch (status.code()) { + case kTimeout: + // Navigation has happened during script execution. Further wait would lead + // to timeout. + case kNavigationDetectedByRemoteEnd: + return Status(kScriptTimeout); + default: + return status; + } } Status ExecuteExecuteAsyncScript(Session* session, @@ -842,9 +848,15 @@ Status status = web_view->CallUserAsyncFunction( session->GetCurrentFrameId(), "async function(){" + script + "}", *args, session->script_timeout, value); - if (status.code() == kTimeout) - return Status(kScriptTimeout); - return status; + switch (status.code()) { + case kTimeout: + // Navigation has happened during script execution. Further wait would lead + // to timeout. + case kNavigationDetectedByRemoteEnd: + return Status(kScriptTimeout); + default: + return status; + } } Status ExecuteNewWindow(Session* session,
diff --git a/chrome/test/chromeos/standalone_browser_test_controller.cc b/chrome/test/chromeos/standalone_browser_test_controller.cc index 164be3354..6a51e0b8 100644 --- a/chrome/test/chromeos/standalone_browser_test_controller.cc +++ b/chrome/test/chromeos/standalone_browser_test_controller.cc
@@ -298,8 +298,9 @@ base::StrCat({chrome::kIsolatedAppScheme, url::kStandardSchemeSeparator, parent_app_id})); - auto info = std::make_unique<web_app::WebAppInstallInfo>(); - info->start_url = parent_app_url.Resolve(sub_app_path); + GURL start_url = parent_app_url.Resolve(sub_app_path); + auto info = + web_app::WebAppInstallInfo::CreateWithStartUrlForTesting(start_url); info->parent_app_id = parent_app_id; info->parent_app_manifest_id = parent_app_url; info->title = u"Sub App";
diff --git a/chrome/test/data/webui/chromeos/settings/os_apps_page/app_management_page/arc_detail_view_test.ts b/chrome/test/data/webui/chromeos/settings/os_apps_page/app_management_page/arc_detail_view_test.ts index c84e41d7..469847c 100644 --- a/chrome/test/data/webui/chromeos/settings/os_apps_page/app_management_page/arc_detail_view_test.ts +++ b/chrome/test/data/webui/chromeos/settings/os_apps_page/app_management_page/arc_detail_view_test.ts
@@ -5,18 +5,36 @@ import 'chrome://os-settings/lazy_load.js'; import {AppManagementArcDetailViewElement} from 'chrome://os-settings/lazy_load.js'; -import {AppManagementStore, CrToggleElement, updateSelectedAppId} from 'chrome://os-settings/os_settings.js'; +import {AppManagementReadOnlyPermissionItemElement, AppManagementStore, CrButtonElement, CrToggleElement, GeolocationAccessLevel, LocalizedLinkElement, updateSelectedAppId} from 'chrome://os-settings/os_settings.js'; import {AppType, PermissionType, TriState} from 'chrome://resources/cr_components/app_management/app_management.mojom-webui.js'; import {PermissionTypeIndex} from 'chrome://resources/cr_components/app_management/permission_constants.js'; import {createBoolPermission, createTriStatePermission} from 'chrome://resources/cr_components/app_management/permission_util.js'; import {getPermissionValueBool} from 'chrome://resources/cr_components/app_management/util.js'; import {loadTimeData} from 'chrome://resources/js/load_time_data.js'; -import {assertEquals, assertFalse, assertTrue} from 'chrome://webui-test/chai_assert.js'; -import {flushTasks} from 'chrome://webui-test/polymer_test_util.js'; +import {assertEquals, assertFalse, assertNull, assertTrue} from 'chrome://webui-test/chai_assert.js'; +import {flushTasks, waitAfterNextRender} from 'chrome://webui-test/polymer_test_util.js'; import {FakePageHandler} from '../../app_management/fake_page_handler.js'; import {getPermissionCrToggleByType, getPermissionItemByType, isHidden, isHiddenByDomIf, replaceBody, replaceStore, setupFakeHandler} from '../../app_management/test_util.js'; +function getFakePrefs() { + return { + 'ash': { + 'user': { + 'camera_allowed': { + value: true, + }, + 'microphone_allowed': { + value: true, + }, + 'geolocation_access_level': { + value: GeolocationAccessLevel.ALLOWED, + }, + }, + }, + }; +} + // TODO(b/270728282) - remove "as" cast once getPermissionCrToggleByType() // becomes a TS function. suite('<app-management-arc-detail-view>', () => { @@ -66,6 +84,7 @@ arcPermissionView = document.createElement('app-management-arc-detail-view'); + arcPermissionView.prefs = getFakePrefs(); replaceBody(arcPermissionView); await flushTasks(); }); @@ -189,6 +208,12 @@ }); }); + function getPermissionDescriptionString(permissionItem: Element): string { + return permissionItem.shadowRoot! + .querySelector<LocalizedLinkElement>( + '#permissionDescription')!.localizedString.toString(); + } + suite('Read-only permissions', () => { setup(async () => { loadTimeData.overrideValues( @@ -197,6 +222,7 @@ // Re-render with the new loadTimeData. arcPermissionView = document.createElement('app-management-arc-detail-view'); + arcPermissionView.prefs = getFakePrefs(); replaceBody(arcPermissionView); await flushTasks(); }); @@ -215,9 +241,7 @@ 'app-management-read-only-permission-item', locationItem.tagName.toLowerCase()); - let description = locationItem.shadowRoot!.querySelector('#description'); - assertTrue(!!description); - assertEquals('Allowed', description.textContent!.trim()); + assertEquals('Allowed', getPermissionDescriptionString(locationItem)); // Simulate the permission being changed by the OS, and verify that the // description text updates. @@ -228,9 +252,7 @@ /*is_managed=*/ false)); await flushTasks(); - description = locationItem.shadowRoot!.querySelector('#description'); - assertTrue(!!description); - assertEquals('Denied', description.textContent!.trim()); + assertEquals('Denied', getPermissionDescriptionString(locationItem)); }); test('Tri-state permission display', async () => { @@ -244,9 +266,7 @@ /*is_managed=*/ false)); await flushTasks(); - let description = locationItem.shadowRoot!.querySelector('#description'); - assertTrue(!!description); - assertEquals('Allowed', description.textContent!.trim()); + assertEquals('Allowed', getPermissionDescriptionString(locationItem)); fakeHandler.setPermission( arcPermissionView.get('app_').id, @@ -255,9 +275,8 @@ /*is_managed=*/ false)); await flushTasks(); - description = locationItem.shadowRoot!.querySelector('#description'); - assertTrue(!!description); - assertEquals('Ask every time', description.textContent!.trim()); + assertEquals( + 'Ask every time', getPermissionDescriptionString(locationItem)); fakeHandler.setPermission( arcPermissionView.get('app_').id, @@ -266,12 +285,9 @@ /*is_managed=*/ false)); await flushTasks(); - description = locationItem.shadowRoot!.querySelector('#description'); - assertTrue(!!description); - assertEquals('Denied', description.textContent!.trim()); + assertEquals('Denied', getPermissionDescriptionString(locationItem)); }); - test('Permission display with detail', async () => { const permission = createBoolPermission( PermissionType.kLocation, /*value=*/ true, @@ -284,18 +300,16 @@ const locationItem = getPermissionItemByType(arcPermissionView, 'kLocation'); - let description = locationItem.shadowRoot!.querySelector('#description'); - assertTrue(!!description); - assertTrue(description.textContent!.includes('While in use')); + assertTrue(getPermissionDescriptionString(locationItem) + .includes('While in use')); permission.value.boolValue = false; fakeHandler.setPermission(arcPermissionView.get('app_').id, permission); await flushTasks(); - description = locationItem.shadowRoot!.querySelector('#description'); - assertTrue(!!description); - assertFalse(description.textContent!.includes('While in use')); + assertFalse(getPermissionDescriptionString(locationItem) + .includes('While in use')); }); test('Managed permission has policy indicator', async () => { @@ -326,4 +340,140 @@ !!locationItem.shadowRoot!.querySelector('cr-policy-indicator')); }); }); + + suite( + 'System wide sensor access control from read-only permission items', + () => { + setup(async () => { + loadTimeData.overrideValues({ + 'appManagementArcReadOnlyPermissions': true, + 'privacyHubAppPermissionsV2Enabled': true, + 'privacyHubLocationAccessControlEnabled': true, + }); + + // Re-render with the new loadTimeData. + arcPermissionView = + document.createElement('app-management-arc-detail-view'); + arcPermissionView.prefs = getFakePrefs(); + replaceBody(arcPermissionView); + await flushTasks(); + }); + + teardown(() => { + arcPermissionView.remove(); + loadTimeData.overrideValues({ + 'appManagementArcReadOnlyPermissions': false, + 'privacyHubAppPermissionsV2Enabled': false, + 'privacyHubLocationAccessControlEnabled': false, + }); + }); + + async function setPermission(value: TriState): Promise<void> { + fakeHandler.setPermission( + arcPermissionView.get('app_').id, + createTriStatePermission( + PermissionType.kLocation, value, /*is_managed=*/ false)); + await flushTasks(); + } + + function getDialogElement(permissionItem: HTMLElement): HTMLElement| + null { + return permissionItem.shadowRoot!.querySelector<HTMLElement>( + '#dialog'); + } + + async function openDialog(permissionItem: HTMLElement): Promise<void> { + const permissionDescription = + permissionItem.shadowRoot!.querySelector<LocalizedLinkElement>( + '#permissionDescription'); + assertTrue(!!permissionDescription); + const link = permissionDescription.shadowRoot!.querySelector('a'); + assertTrue(!!link); + link.click(); + await flushTasks(); + } + + test('Open dialog and close using cancel button', async () => { + const locationItem = + arcPermissionView.shadowRoot! + .querySelector<AppManagementReadOnlyPermissionItemElement>( + '[permission-type=kLocation]'); + assertTrue(!!locationItem); + + await setPermission(TriState.kAllow); + + assertEquals( + loadTimeData.getString('appManagementPermissionAllowed'), + getPermissionDescriptionString(locationItem)); + + arcPermissionView.set( + 'prefs.ash.user.geolocation_access_level.value', + GeolocationAccessLevel.DISALLOWED); + + assertEquals( + loadTimeData.getString( + 'permissionAllowedTextWithTurnOnLocationAccessButton'), + getPermissionDescriptionString(locationItem)); + + // Dialog not visible initially. + assertNull(getDialogElement(locationItem)); + + await openDialog(locationItem); + + // Dialog is visible. + assertTrue(!!getDialogElement(locationItem)); + + // Close dialog. + const cancelButton = + getDialogElement(locationItem)!.shadowRoot! + .querySelector<CrButtonElement>('#cancelButton'); + assertTrue(!!cancelButton); + cancelButton.click(); + await waitAfterNextRender(locationItem); + + // Dialog not visible anymore. + assertNull(getDialogElement(locationItem)); + }); + + test('Open dialog and turn on sensor access', async () => { + const locationItem = + arcPermissionView.shadowRoot! + .querySelector<AppManagementReadOnlyPermissionItemElement>( + '[permission-type=kLocation]'); + assertTrue(!!locationItem); + + await setPermission(TriState.kAllow); + locationItem.set( + 'prefs.ash.user.geolocation_access_level.value', + GeolocationAccessLevel.DISALLOWED); + + assertEquals( + loadTimeData.getString( + 'permissionAllowedTextWithTurnOnLocationAccessButton'), + getPermissionDescriptionString(locationItem)); + + // Dialog not visible initially. + assertNull(getDialogElement(locationItem)); + + await openDialog(locationItem); + + // Dialog is visible. + assertTrue(!!getDialogElement(locationItem)); + + // Turn on system sensor access. + const confirmButton = + getDialogElement(locationItem)!.shadowRoot! + .querySelector<CrButtonElement>('#confirmButton'); + assertTrue(!!confirmButton); + confirmButton.click(); + await waitAfterNextRender(locationItem); + + // Sensor access is turned ON. + assertNull(getDialogElement(locationItem)); + assertEquals( + GeolocationAccessLevel.ALLOWED, + locationItem.get('prefs.ash.user.geolocation_access_level') + .value); + }); + }); });
diff --git a/chromeos/ash/components/dbus/shill/fake_shill_manager_client.cc b/chromeos/ash/components/dbus/shill/fake_shill_manager_client.cc index cf12fb0..5738311 100644 --- a/chromeos/ash/components/dbus/shill/fake_shill_manager_client.cc +++ b/chromeos/ash/components/dbus/shill/fake_shill_manager_client.cc
@@ -590,7 +590,8 @@ ? *create_group_argument.passphrase : "direct-passphrase") .Set(shill::kP2PGroupInfoFrequencyProperty, 1000) - .Set(shill::kP2PGroupInfoNetworkIDProperty, 1)); + .Set(shill::kP2PGroupInfoNetworkIDProperty, 1) + .Set(shill::kP2PGroupInfoIPv4AddressProperty, "100.0.0.1")); SetManagerProperty(shill::kP2PGroupInfosProperty, base::Value(std::move(group_owner_info))); base::SingleThreadTaskRunner::GetCurrentDefault()->PostTask( @@ -640,7 +641,8 @@ connect_group_argument.frequency ? static_cast<int>(*connect_group_argument.frequency) : 1000) - .Set(shill::kP2PClientInfoNetworkIDProperty, 1)); + .Set(shill::kP2PClientInfoNetworkIDProperty, 1) + .Set(shill::kP2PClientInfoIPv4AddressProperty, "100.0.0.1")); SetManagerProperty(shill::kP2PClientInfosProperty, base::Value(std::move(group_owner_info))); base::SingleThreadTaskRunner::GetCurrentDefault()->PostTask(
diff --git a/chromeos/ash/components/drivefs/fake_drivefs.h b/chromeos/ash/components/drivefs/fake_drivefs.h index 6191783..5fd69be 100644 --- a/chromeos/ash/components/drivefs/fake_drivefs.h +++ b/chromeos/ash/components/drivefs/fake_drivefs.h
@@ -15,6 +15,7 @@ #include "chromeos/ash/components/drivefs/drivefs_bootstrap.h" #include "chromeos/ash/components/drivefs/drivefs_host.h" #include "chromeos/ash/components/drivefs/mojom/drivefs.mojom.h" +#include "components/drive/file_errors.h" #include "mojo/public/cpp/bindings/pending_receiver.h" #include "mojo/public/cpp/bindings/pending_remote.h" #include "mojo/public/cpp/bindings/receiver.h" @@ -94,6 +95,11 @@ (drivefs::mojom::DriveFs::GetSyncingPathsCallback callback), (override)); + void GetSyncingPathsForTesting( + drivefs::mojom::DriveFs::GetSyncingPathsCallback callback) { + std::move(callback).Run(drive::FILE_ERROR_OK, syncing_paths_); + } + MOCK_METHOD(void, StartSearchQuery, (mojo::PendingReceiver<drivefs::mojom::SearchQuery> receiver,
diff --git a/chromeos/ash/components/network/network_state.cc b/chromeos/ash/components/network/network_state.cc index 1a4f7d1..eec3bbde1 100644 --- a/chromeos/ash/components/network/network_state.cc +++ b/chromeos/ash/components/network/network_state.cc
@@ -10,6 +10,7 @@ #include <type_traits> #include <utility> +#include "ash/constants/ash_features.h" #include "base/metrics/histogram_functions.h" #include "base/strings/strcat.h" #include "base/strings/string_number_conversions.h" @@ -526,6 +527,12 @@ : shill_portal_state_; } +void NetworkState::SetChromePortalState(PortalState portal_state) { + CHECK(!features::IsRemoveDetectPortalFromChromeEnabled()); + + chrome_portal_state_ = portal_state; +} + bool NetworkState::IsSecure() const { return !security_class_.empty() && security_class_ != shill::kSecurityClassNone;
diff --git a/chromeos/ash/components/network/network_state.h b/chromeos/ash/components/network/network_state.h index 25d72ba..6f316d9 100644 --- a/chromeos/ash/components/network/network_state.h +++ b/chromeos/ash/components/network/network_state.h
@@ -322,9 +322,7 @@ void SetVpnProvider(const std::string& id, const std::string& type); - void set_chrome_portal_state(PortalState portal_state) { - chrome_portal_state_ = portal_state; - } + void SetChromePortalState(PortalState portal_state); // Set to true if the network is a member of Manager.Services. bool visible_ = false;
diff --git a/chromeos/ash/components/network/network_state_handler.cc b/chromeos/ash/components/network/network_state_handler.cc index 96e48318..763b37a 100644 --- a/chromeos/ash/components/network/network_state_handler.cc +++ b/chromeos/ash/components/network/network_state_handler.cc
@@ -641,6 +641,8 @@ void NetworkStateHandler::SetNetworkChromePortalState( const std::string& service_path, NetworkState::PortalState portal_state) { + CHECK(!features::IsRemoveDetectPortalFromChromeEnabled()); + NetworkState* network = GetModifiableNetworkState(service_path); if (!network) { return; @@ -648,7 +650,7 @@ NET_LOG(USER) << "Setting Chrome PortalState for " << NetworkPathId(service_path) << " = " << portal_state; auto prev_portal_state = network->GetPortalState(); - network->set_chrome_portal_state(portal_state); + network->SetChromePortalState(portal_state); if (prev_portal_state == network->GetPortalState() || service_path != default_network_path_) { return;
diff --git a/chromeos/ash/components/network/network_state_handler_unittest.cc b/chromeos/ash/components/network/network_state_handler_unittest.cc index 2b81a54..5ea47e2 100644 --- a/chromeos/ash/components/network/network_state_handler_unittest.cc +++ b/chromeos/ash/components/network/network_state_handler_unittest.cc
@@ -22,6 +22,7 @@ #include "base/run_loop.h" #include "base/strings/string_number_conversions.h" #include "base/test/metrics/histogram_tester.h" +#include "base/test/scoped_feature_list.h" #include "base/test/task_environment.h" #include "base/values.h" #include "chromeos/ash/components/dbus/shill/shill_clients.h" @@ -1959,6 +1960,11 @@ } TEST_F(NetworkStateHandlerTest, SetNetworkChromePortalState) { + // This test is only necessary when kRemoveDetectPortalFromChrome is disabled. + base::test::ScopedFeatureList scoped_feature_list; + scoped_feature_list.InitAndDisableFeature( + features::kRemoveDetectPortalFromChrome); + RemoveEthernet(); base::HistogramTester histogram_tester;
diff --git a/chromeos/ash/components/wifi_p2p/wifi_p2p_controller.cc b/chromeos/ash/components/wifi_p2p/wifi_p2p_controller.cc index 6d1953f..f4be40fd 100644 --- a/chromeos/ash/components/wifi_p2p/wifi_p2p_controller.cc +++ b/chromeos/ash/components/wifi_p2p/wifi_p2p_controller.cc
@@ -269,6 +269,9 @@ std::optional<int> entry_network_id = entry_dict.FindInt(is_owner ? shill::kP2PGroupInfoNetworkIDProperty : shill::kP2PClientInfoNetworkIDProperty); + const std::string* entry_ipv4_address = entry_dict.FindString( + is_owner ? shill::kP2PGroupInfoIPv4AddressProperty + : shill::kP2PClientInfoIPv4AddressProperty); if (!entry_shill_id) { NET_LOG(ERROR) << "Missing shill id in Wifi Direct group"; continue; @@ -290,12 +293,16 @@ /*metadata=*/std::nullopt); return; } + if (!entry_ipv4_address) { + NET_LOG(ERROR) << "Missing ipv4 address property in Wifi Direct group"; + } std::move(callback).Run( OperationResult::kSuccess, - WifiDirectConnectionMetadata{shill_id, - static_cast<uint32_t>(*entry_frequency), - *entry_network_id}); + WifiDirectConnectionMetadata{ + shill_id, static_cast<uint32_t>(*entry_frequency), + *entry_network_id, + entry_ipv4_address ? *entry_ipv4_address : std::string()}); return; }
diff --git a/chromeos/ash/components/wifi_p2p/wifi_p2p_controller.h b/chromeos/ash/components/wifi_p2p/wifi_p2p_controller.h index 67a2494f..02864fa 100644 --- a/chromeos/ash/components/wifi_p2p/wifi_p2p_controller.h +++ b/chromeos/ash/components/wifi_p2p/wifi_p2p_controller.h
@@ -47,6 +47,8 @@ uint32_t frequency; // Unique ID to identify the network in Patchpanel. int network_id; + // Ipv4 address for the Wifi direct network. + std::string ipv4_address; }; struct WifiP2PCapabilities {
diff --git a/chromeos/ash/components/wifi_p2p/wifi_p2p_controller_unittest.cc b/chromeos/ash/components/wifi_p2p/wifi_p2p_controller_unittest.cc index a746e7b5..5d5ccce 100644 --- a/chromeos/ash/components/wifi_p2p/wifi_p2p_controller_unittest.cc +++ b/chromeos/ash/components/wifi_p2p/wifi_p2p_controller_unittest.cc
@@ -177,6 +177,7 @@ EXPECT_EQ(result_arguments.metadata->shill_id, 0); EXPECT_EQ(result_arguments.metadata->frequency, 1000u); EXPECT_EQ(result_arguments.metadata->network_id, 1); + EXPECT_EQ(result_arguments.metadata->ipv4_address, "100.0.0.1"); } TEST_F(WifiP2PControllerTest, CreateP2PGroupFailure_InvalidArguments) { @@ -248,6 +249,7 @@ EXPECT_EQ(result_arguments.metadata->shill_id, 0); EXPECT_EQ(result_arguments.metadata->frequency, 5200u); EXPECT_EQ(result_arguments.metadata->network_id, 1); + EXPECT_EQ(result_arguments.metadata->ipv4_address, "100.0.0.1"); } TEST_F(WifiP2PControllerTest, DisconnectFromP2PGroupSuccess) { @@ -263,7 +265,7 @@ EXPECT_EQ(result, WifiP2PController::OperationResult::kSuccess); } -TEST_F(WifiP2PControllerTest, DisconnectFromP2PGroupSuccess_NotConnected) { +TEST_F(WifiP2PControllerTest, DisconnectFromP2PGroupFailure_NotConnected) { Init(); ShillManagerClient::Get()
diff --git a/chromeos/ash/services/cros_healthd/public/mojom/cros_healthd.mojom b/chromeos/ash/services/cros_healthd/public/mojom/cros_healthd.mojom index c9810a26..2b6bb6e 100644 --- a/chromeos/ash/services/cros_healthd/public/mojom/cros_healthd.mojom +++ b/chromeos/ash/services/cros_healthd/public/mojom/cros_healthd.mojom
@@ -7,7 +7,6 @@ // NOTE: This mojom should be kept in sync with the copy in Chromium OS's repo // in src/platform2/diagnostics/mojom/public/cros_healthd.mojom. - module ash.cros_healthd.mojom; import "chromeos/ash/services/cros_healthd/private/mojom/cros_healthd_internal.mojom"; @@ -42,8 +41,8 @@ // The response: // * |routine_update| - status information for the specified routine. See // cros_healthd_diagnostics.mojom for the structure. - GetRoutineUpdate@1(int32 id, DiagnosticRoutineCommandEnum command, - bool include_output) + GetRoutineUpdate@1( + int32 id, DiagnosticRoutineCommandEnum command, bool include_output) => (RoutineUpdate routine_update); // Requests that the Urandom routine is created and started on the platform. @@ -115,8 +114,8 @@ // * |response| - contains a unique identifier and status for the created // routine. RunSmartctlCheckRoutine@5( - [MinVersion=6] NullableUint32? percentage_used_threshold) - => (RunRoutineResponse response); + [MinVersion=6] NullableUint32? percentage_used_threshold) + => (RunRoutineResponse response); // Requests that the AcPower routine is created and started on the // platform. This routine checks the status of the power supply, and if @@ -133,8 +132,8 @@ // The response: // * |response| - contains a unique identifier and status for the created // routine. - RunAcPowerRoutine@6(AcPowerStatusEnum expected_status, - string? expected_power_type) + RunAcPowerRoutine@6( + AcPowerStatusEnum expected_status, string? expected_power_type) => (RunRoutineResponse response); // Requests that the CPU cache routine is created and started on the @@ -212,12 +211,11 @@ // * |response| - contains a unique identifier and status for the created // routine. DEPRECATED_RunNvmeWearLevelRoutineWithThreshold@10( - uint32 wear_level_threshold) - => (RunRoutineResponse response); + uint32 wear_level_threshold) => (RunRoutineResponse response); - [MinVersion=1] DEPRECATED_RunNvmeWearLevelRoutine@32( - NullableUint32? wear_level_threshold) - => (RunRoutineResponse response); + [MinVersion=1] + DEPRECATED_RunNvmeWearLevelRoutine@32( + NullableUint32? wear_level_threshold) => (RunRoutineResponse response); // Requests that the NvmeSelfTest routine is created and started on the // platform. This routine launches the NVMe self-test, a tool to perform @@ -254,9 +252,9 @@ // The response: // * |response| - contains a unique identifier and status for the created // routine. - RunDiskReadRoutine@12(DiskReadRoutineTypeEnum type, uint32 length_seconds, - uint32 file_size_mb) - => (RunRoutineResponse response); + RunDiskReadRoutine@12(DiskReadRoutineTypeEnum type, + uint32 length_seconds, + uint32 file_size_mb) => (RunRoutineResponse response); // Requests that the PrimeSearch routine is created and started on the // platform. Calculate prime numbers and verifies the calculation repeatedly @@ -291,8 +289,8 @@ // The response: // * |response| - contains a unique identifier and status for the created // routine. - RunBatteryDischargeRoutine@14(uint32 length_seconds, - uint32 maximum_discharge_percent_allowed) + RunBatteryDischargeRoutine@14( + uint32 length_seconds, uint32 maximum_discharge_percent_allowed) => (RunRoutineResponse response); // Requests that the BatteryCharge routine is created and started on the @@ -309,8 +307,8 @@ // The response: // * |response| - contains a unique identifier and status for the created // routine. - RunBatteryChargeRoutine@15(uint32 length_seconds, - uint32 minimum_charge_percent_required) + RunBatteryChargeRoutine@15( + uint32 length_seconds, uint32 minimum_charge_percent_required) => (RunRoutineResponse response); // Requests that the Memory routine is created and started on the platform. @@ -512,8 +510,8 @@ // The response: // * |response| - contains a unique identifier and status for the created // routine. - [MinVersion=2] RunSensitiveSensorRoutine@33() - => (RunRoutineResponse response); + [MinVersion=2] + RunSensitiveSensorRoutine@33() => (RunRoutineResponse response); // Requests that the Fingerprint routine is created and started on the // platform. This routine checks whether the fingerprint module is healthy or @@ -527,7 +525,8 @@ // The response: // * |response| - contains a unique identifier and status for the created // routine. - [MinVersion=3] RunFingerprintRoutine@34() => (RunRoutineResponse response); + [MinVersion=3] + RunFingerprintRoutine@34() => (RunRoutineResponse response); // Requests that the FingerprintAlive routine is created and started on the // platform. This routine checks whether the fingerprint module is alive or @@ -538,8 +537,8 @@ // The response: // * |response| - contains a unique identifier and status for the created // routine. - [MinVersion=3] RunFingerprintAliveRoutine@35() - => (RunRoutineResponse response); + [MinVersion=3] + RunFingerprintAliveRoutine@35() => (RunRoutineResponse response); // Requests that the PrivacyScreen routine is created and started on the // platform. This routine checks whether the privacy screen is working as @@ -548,7 +547,8 @@ // // The request: // * |target_state| - privacy screen target state. - [MinVersion=4] RunPrivacyScreenRoutine@36(bool target_state) + [MinVersion=4] + RunPrivacyScreenRoutine@36(bool target_state) => (RunRoutineResponse response); // Requests that the LedLitUp routine is created and started on the @@ -585,10 +585,12 @@ // The response: // * |response| - contains a unique identifier and status for the created // routine. - [MinVersion=5] DEPRECATED_RunLedLitUpRoutine@37(DEPRECATED_LedName name, - DEPRECATED_LedColor color, - pending_remote<DEPRECATED_LedLitUpRoutineReplier> replier) - => (RunRoutineResponse response); + [MinVersion=5] + DEPRECATED_RunLedLitUpRoutine@37( + DEPRECATED_LedName name, + DEPRECATED_LedColor color, + pending_remote<DEPRECATED_LedLitUpRoutineReplier> replier) + => (RunRoutineResponse response); // Requests that the EmmcLifetime routine is created and started on the // platform. This routine checks the lifetime of the eMMC drive. The routine @@ -601,7 +603,8 @@ // The response: // * |response| - contains a unique identifier and status for the created // routine. - [MinVersion=7] RunEmmcLifetimeRoutine@38() => (RunRoutineResponse response); + [MinVersion=7] + RunEmmcLifetimeRoutine@38() => (RunRoutineResponse response); // Requests that the AudioSetVolume routine is created and started on the // platform. This routine sets the audio |node_id| volume to |volume| and @@ -617,9 +620,9 @@ // The response: // * |response| - contains a unique identifier and status for the created // routine. - [MinVersion=8] DEPRECATED_RunAudioSetVolumeRoutine@39(uint64 node_id, - uint8 volume, - bool mute_on) + [MinVersion=8] + DEPRECATED_RunAudioSetVolumeRoutine@39( + uint64 node_id, uint8 volume, bool mute_on) => (RunRoutineResponse response); // Requests that the AudioSetGain routine is created and started on the @@ -636,9 +639,9 @@ // The response: // * |response| - contains a unique identifier and status for the created // routine. - [MinVersion=8] DEPRECATED_RunAudioSetGainRoutine@40(uint64 node_id, - uint8 gain, - bool mute_on) + [MinVersion=8] + DEPRECATED_RunAudioSetGainRoutine@40( + uint64 node_id, uint8 gain, bool mute_on) => (RunRoutineResponse response); // Requests that the BluetoothPower routine is created and started on the @@ -650,8 +653,8 @@ // The response: // * |response| - contains a unique identifier and status for the created // routine. - [MinVersion=9] RunBluetoothPowerRoutine@41() - => (RunRoutineResponse response); + [MinVersion=9] + RunBluetoothPowerRoutine@41() => (RunRoutineResponse response); // Requests that the BluetoothDiscovery routine is created and started on the // platform. This routine checks whether the Bluetooth adapter can start/stop @@ -663,8 +666,8 @@ // The response: // * |response| - contains a unique identifier and status for the created // routine. - [MinVersion=9] RunBluetoothDiscoveryRoutine@42() - => (RunRoutineResponse response); + [MinVersion=9] + RunBluetoothDiscoveryRoutine@42() => (RunRoutineResponse response); // Requests that the BluetoothScanning routine is created and started on the // platform. This routine checks whether the Bluetooth adapter can scan nearby @@ -680,7 +683,8 @@ // The response: // * |response| - contains a unique identifier and status for the created // routine. - [MinVersion=9] RunBluetoothScanningRoutine@43(NullableUint32? length_seconds) + [MinVersion=9] + RunBluetoothScanningRoutine@43(NullableUint32? length_seconds) => (RunRoutineResponse response); // Requests that the BluetoothPairing routine is created and started on the @@ -697,7 +701,8 @@ // The response: // * |response| - contains a unique identifier and status for the created // routine. - [MinVersion=9] RunBluetoothPairingRoutine@44(string peripheral_id) + [MinVersion=9] + RunBluetoothPairingRoutine@44(string peripheral_id) => (RunRoutineResponse response); // Requests that the PowerButton routine is created and started on the @@ -714,7 +719,8 @@ // The response: // * |response| - contains a unique identifier and status for the created // routine. - [MinVersion=11] RunPowerButtonRoutine@45(uint32 timeout_seconds) + [MinVersion=11] + RunPowerButtonRoutine@45(uint32 timeout_seconds) => (RunRoutineResponse response); // Requests that the AudioDriver routine is created and started on the @@ -726,7 +732,8 @@ // The response: // * |response| - contains a unique identifier and status for the created // routine. - [MinVersion=12] RunAudioDriverRoutine@46() => (RunRoutineResponse response); + [MinVersion=12] + RunAudioDriverRoutine@46() => (RunRoutineResponse response); // Requests that the UfsLifetime routine is created and started on the // platform. This routine checks the UFS drive's life time. @@ -736,7 +743,8 @@ // The response: // * |response| - contains a unique identifier and status for the created // routine. - [MinVersion=13] RunUfsLifetimeRoutine@47() => (RunRoutineResponse response); + [MinVersion=13] + RunUfsLifetimeRoutine@47() => (RunRoutineResponse response); // Requests that the Fan routine is created and started on the // platform. This routine checks whether there is any errors about the audio @@ -747,7 +755,8 @@ // The response: // * |response| - contains a unique identifier and status for the created // routine. - [MinVersion=14] RunFanRoutine@48() => (RunRoutineResponse response); + [MinVersion=14] + RunFanRoutine@48() => (RunRoutineResponse response); }; // Event interface exposed by the cros_healthd daemon. @@ -768,7 +777,8 @@ // // The request: // * |observer| - lid observer to be added to cros_healthd. - DEPRECATED_AddLidObserver@1(pending_remote<CrosHealthdLidObserver> observer); + DEPRECATED_AddLidObserver@1( + pending_remote<CrosHealthdLidObserver> observer); // Adds an observer to be notified on power events. The caller can remove the // observer created by this call by closing their end of the message pipe. @@ -784,8 +794,8 @@ // The request: // * |observer| - network observer to be added to cros_healthd. AddNetworkObserver@3( - pending_remote< - chromeos.network_health.mojom.NetworkEventsObserver> observer); + pending_remote<chromeos.network_health.mojom.NetworkEventsObserver> + observer); // Adds an observer to be notified on audio events. The caller can remove the // observer created by this call by closing their end of the message pipe. @@ -809,7 +819,8 @@ // // The request: // * |observer| - USB observer to be added to cros_healthd. - [MinVersion=1] DEPRECATED_AddUsbObserver@6( + [MinVersion=1] + DEPRECATED_AddUsbObserver@6( pending_remote<CrosHealthdUsbObserver> observer); // Adds an observer to be notified on events. The caller can remove the @@ -818,9 +829,9 @@ // The request: // * |category| - Event category. // * |observer| - Event observer to be added to cros_healthd. - [MinVersion=2] AddEventObserver@7( - EventCategoryEnum category, - pending_remote<EventObserver> observer); + [MinVersion=2] + AddEventObserver@7( + EventCategoryEnum category, pending_remote<EventObserver> observer); // Checks whether an event is supported. It does the same support status check // as in `AddEventObserver()` and returns immediately after the check. @@ -830,8 +841,8 @@ // // The response: // * |status| - See the documentation of `SupportStatus`. - [MinVersion=3] IsEventSupported@8( - EventCategoryEnum category) => (SupportStatus status); + [MinVersion=3] + IsEventSupported@8(EventCategoryEnum category) => (SupportStatus status); }; // Probe interface exposed by the cros_healthd daemon. @@ -878,7 +889,8 @@ // The response: // * |multiple_process_info| - Information about the requested processes and // errors if any occurred and not skipped. - [MinVersion=1] ProbeMultipleProcessInfo@2(array<uint32>? process_ids, - bool ignore_single_process_error) - => (MultipleProcessResult multiple_process_info); + [MinVersion=1] + ProbeMultipleProcessInfo@2( + array<uint32>? process_ids, bool ignore_single_process_error) + => (MultipleProcessResult multiple_process_info); };
diff --git a/chromeos/ash/services/cros_healthd/public/mojom/cros_healthd_diagnostics.mojom b/chromeos/ash/services/cros_healthd/public/mojom/cros_healthd_diagnostics.mojom index 2c9da06f..65219cf 100644 --- a/chromeos/ash/services/cros_healthd/public/mojom/cros_healthd_diagnostics.mojom +++ b/chromeos/ash/services/cros_healthd/public/mojom/cros_healthd_diagnostics.mojom
@@ -7,7 +7,6 @@ // NOTE: This mojom should be kept in sync with the copy in Chromium's repo in // src/platform2/diagnostics/mojom/public/cros_healthd_diagnostics.mojom. - module ash.cros_healthd.mojom; // Special id that will be returned if a routine was unable to be created. @@ -94,6 +93,7 @@ kCancelled = 6, // Routine was cancelled before completion. A cancelled // routine's information can still be accessed with a // GetRoutineUpdateRequest. + kFailedToStart = 7, // Routine could not be created. kRemoved = 8, // Routine has been removed and is no longer valid. kCancelling = 9, // Routine is in the process of being cancelled. @@ -110,8 +110,8 @@ [Default] kUnknown = 2, kUnplugACPower = 0, // The user needs to unplug the AC power cord. kPlugInACPower = 1, // The user needs to plug in the AC power cord. - [MinVersion=1] kCheckLedColor = 3, // The user needs to check the LED color. - [MinVersion=2] kPressPowerButton = 4, // The user needs to press the power + [MinVersion=1] kCheckLedColor = 3, // The user needs to check the LED color. + [MinVersion=2] kPressPowerButton = 4, // The user needs to press the power // button. }; @@ -124,6 +124,7 @@ kContinue = 0, // Resume a routine that is waiting. kCancel = 1, // Cancelled routines must still be removed before the routine // is destroyed. + kGetStatus = 2, // Used to get status but not otherwise control a routine. kRemove = 3, // All routines which started successfully must be removed, // otherwise they will persist on the system. This makes sure @@ -198,7 +199,7 @@ [Stable, Extensible] enum AcPowerStatusEnum { [Default] kUnknown = 2, - kConnected = 0, // Power supply is connected. + kConnected = 0, // Power supply is connected. kDisconnected = 1, // Power supply is disconnected. }; @@ -208,7 +209,7 @@ [Stable, Extensible] enum NvmeSelfTestTypeEnum { [Default] kUnknown = 2, - kShortSelfTest = 0, // Short time self-test. + kShortSelfTest = 0, // Short time self-test. kLongSelfTest = 1, // Long time self-test. };
diff --git a/chromeos/ash/services/cros_healthd/public/mojom/cros_healthd_event_reporters.mojom b/chromeos/ash/services/cros_healthd/public/mojom/cros_healthd_event_reporters.mojom index 3dd20a6..5f3152d 100644 --- a/chromeos/ash/services/cros_healthd/public/mojom/cros_healthd_event_reporters.mojom +++ b/chromeos/ash/services/cros_healthd/public/mojom/cros_healthd_event_reporters.mojom
@@ -7,7 +7,6 @@ // NOTE: This mojom should be kept in sync with the copy in ChromiumOS's repo in // src/platform2/diagnostics/mojom/public/cros_healthd_event_reporters.mojom. - module ash.cros_healthd.mojom; import "ash/system/diagnostics/mojom/input.mojom"; @@ -17,7 +16,7 @@ // NextMinVersion: 1, NextIndex: 1 [Stable] interface AshEventReporter { - // Send the event to HealthD. - SendKeyboardDiagnosticEvent@0( - ash.diagnostics.mojom.KeyboardDiagnosticEventInfo info); + // Send the event to HealthD. + SendKeyboardDiagnosticEvent@0( + ash.diagnostics.mojom.KeyboardDiagnosticEventInfo info); };
diff --git a/chromeos/ash/services/cros_healthd/public/mojom/cros_healthd_events.mojom b/chromeos/ash/services/cros_healthd/public/mojom/cros_healthd_events.mojom index 2f0fb236..688d334 100644 --- a/chromeos/ash/services/cros_healthd/public/mojom/cros_healthd_events.mojom +++ b/chromeos/ash/services/cros_healthd/public/mojom/cros_healthd_events.mojom
@@ -7,7 +7,6 @@ // NOTE: This mojom should be kept in sync with the copy in Chromium OS's repo // in src/platform2/diagnostics/mojom/public/cros_healthd_events.mojom. - module ash.cros_healthd.mojom; import "ash/system/diagnostics/mojom/input.mojom"; @@ -22,14 +21,19 @@ interface CrosHealthdBluetoothObserver { // Fired when a Bluetooth adapter is added. OnAdapterAdded@0(); + // Fired when a Bluetooth adapter is removed. OnAdapterRemoved@1(); + // Fired when a property of a Bluetooth adapter is changed. OnAdapterPropertyChanged@2(); + // Fired when a Bluetooth device is added. OnDeviceAdded@3(); + // Fired when a Bluetooth device is removed. OnDeviceRemoved@4(); + // Fired when a property of a Bluetooth device is changed. OnDevicePropertyChanged@5(); }; @@ -41,6 +45,7 @@ interface CrosHealthdLidObserver { // Fired when the device's lid is closed. OnLidClosed@0(); + // Fired when the device's lid is opened. OnLidOpened@1(); }; @@ -52,10 +57,13 @@ interface CrosHealthdPowerObserver { // Fired when the device begins consuming from an external power source. OnAcInserted@0(); + // Fired when the device stops consuming from an external power source. OnAcRemoved@1(); + // Fired when the system receives a suspend request. OnOsSuspend@2(); + // Fired when the system completes a suspend request. OnOsResume@3(); }; @@ -67,6 +75,7 @@ interface CrosHealthdAudioObserver { // Fired when the audio underrun happens. OnUnderrun@0(); + // Fired when the audio severe underrun happens. OnSevereUnderrun@1(); }; @@ -78,10 +87,13 @@ interface CrosHealthdThunderboltObserver { // Fired when the Thunderbolt plug in. OnAdd@0(); + // Fired when the Thunderbolt plug out. OnRemove@1(); + // Fired when the Thunderbolt device is authorized. OnAuthorized@2(); + // Fired when the Thunderbolt device is unauthorized. OnUnAuthorized@3(); }; @@ -113,7 +125,8 @@ kRemove = 2, }; - [MinVersion=1] State state@5; + [MinVersion=1] + State state@5; }; // Implemented by clients who desire USB notifications. @@ -123,6 +136,7 @@ interface CrosHealthdUsbObserver { // Fired when the USB plug in. OnAdd@0(UsbEventInfo info); + // Fired when the USB plug out. OnRemove@1(UsbEventInfo info); }; @@ -134,6 +148,7 @@ interface CrosHealthdSdCardObserver { // Fired when the SD Card plug in. OnAdd@0(); + // Fired when the SD Card plug out. OnRemove@1(); }; @@ -271,7 +286,8 @@ kMicrophone, }; - [MinVersion=1] DeviceType device_type@1; + [MinVersion=1] + DeviceType device_type@1; }; // SD Card event info. @@ -370,7 +386,8 @@ union TouchpadEventInfo { // The default value for forward compatibility. All the unknown type will be // mapped to this. - [Default] uint8 default_type@0; + [Default] + uint8 default_type@0; TouchpadButtonEvent button_event@1; TouchpadTouchEvent touch_event@2; TouchpadConnectedEvent connected_event@3; @@ -393,7 +410,8 @@ State state@0; // On external display event, also report information about the display. - [MinVersion=1] ExternalDisplayInfo? display_info@1; + [MinVersion=1] + ExternalDisplayInfo? display_info@1; }; // Emitted when new touch points are updated. @@ -427,7 +445,8 @@ union TouchscreenEventInfo { // The default value for forward compatibility. All the unknown type will be // mapped to this. - [Default] uint8 default_type@0; + [Default] + uint8 default_type@0; TouchscreenTouchEvent touch_event@1; TouchscreenConnectedEvent connected_event@2; }; @@ -495,7 +514,8 @@ union StylusEventInfo { // The default value for forward compatibility. All the unknown type will be // mapped to this. - [Default] uint8 default_type@0; + [Default] + uint8 default_type@0; StylusTouchEvent touch_event@1; StylusConnectedEvent connected_event@2; }; @@ -560,7 +580,8 @@ union EventInfo { // The default value for forward compatibility. All the unknown type will be // mapped to this. - [Default] uint8 default_type@0; + [Default] + uint8 default_type@0; // USB event info. UsbEventInfo usb_event_info@1; // Thunderbolt event info. @@ -574,25 +595,34 @@ // Audio event info. AudioEventInfo audio_event_info@6; // Audio jack event info. - [MinVersion=1] AudioJackEventInfo audio_jack_event_info@7; + [MinVersion=1] + AudioJackEventInfo audio_jack_event_info@7; // SD Card event info. - [MinVersion=2] SdCardEventInfo sd_card_event_info@8; + [MinVersion=2] + SdCardEventInfo sd_card_event_info@8; // Keyboard diagnostics event info. It is fired when users completed a // keyboard diagnostic in the Diagnostics App. - [MinVersion=3] ash.diagnostics.mojom.KeyboardDiagnosticEventInfo - keyboard_diagnostic_event_info@9; + [MinVersion=3] + ash.diagnostics.mojom.KeyboardDiagnosticEventInfo + keyboard_diagnostic_event_info@9; // Touchpad event info. - [MinVersion=4] TouchpadEventInfo touchpad_event_info@10; + [MinVersion=4] + TouchpadEventInfo touchpad_event_info@10; // External Display event info. - [MinVersion=5] ExternalDisplayEventInfo external_display_event_info@11; + [MinVersion=5] + ExternalDisplayEventInfo external_display_event_info@11; // Touchscreen event info. - [MinVersion=6] TouchscreenEventInfo touchscreen_event_info@12; + [MinVersion=6] + TouchscreenEventInfo touchscreen_event_info@12; // Stylus garagge event info. - [MinVersion=7] StylusGarageEventInfo stylus_garage_event_info@13; + [MinVersion=7] + StylusGarageEventInfo stylus_garage_event_info@13; // Stylus event info. - [MinVersion=8] StylusEventInfo stylus_event_info@14; + [MinVersion=8] + StylusEventInfo stylus_event_info@14; // Crash event info. - [MinVersion=9] CrashEventInfo crash_event_info@15; + [MinVersion=9] + CrashEventInfo crash_event_info@15; }; // An enumeration of event categories.
diff --git a/chromeos/ash/services/cros_healthd/public/mojom/cros_healthd_exception.mojom b/chromeos/ash/services/cros_healthd/public/mojom/cros_healthd_exception.mojom index ccfd52f4..0b2af0c 100644 --- a/chromeos/ash/services/cros_healthd/public/mojom/cros_healthd_exception.mojom +++ b/chromeos/ash/services/cros_healthd/public/mojom/cros_healthd_exception.mojom
@@ -6,7 +6,6 @@ // NOTE: This mojom should be kept in sync with the copy in Chromium OS's repo // in src/platform2/diagnostics/mojom/public/cros_healthd_exception.mojom. - module ash.cros_healthd.mojom; // A generic exception type for all HealthD public API. @@ -56,7 +55,8 @@ [Stable, Extensible] union SupportStatus { // This is required for backwards compatibility. Don't use this. - [Default] int8 unmapped_union_field; + [Default] + int8 unmapped_union_field; // This is set if any exception happens before we can determine whether the // feature is supported. Note that exception with reason `kUnsupported` is // never set here. @@ -94,5 +94,6 @@ [Stable, Extensible] union UnsupportedReason { // This is required for backwards compatibility. Don't use this. - [Default] int8 unmapped_union_field; + [Default] + int8 unmapped_union_field; };
diff --git a/chromeos/ash/services/cros_healthd/public/mojom/cros_healthd_probe.mojom b/chromeos/ash/services/cros_healthd/public/mojom/cros_healthd_probe.mojom index a0df33b..1f063d5 100644 --- a/chromeos/ash/services/cros_healthd/public/mojom/cros_healthd_probe.mojom +++ b/chromeos/ash/services/cros_healthd/public/mojom/cros_healthd_probe.mojom
@@ -7,7 +7,6 @@ // NOTE: This mojom should be kept in sync with the copy in Chromium OS's repo // in src/platform2/diagnostics/mojom/public/cros_healthd_probe.mojom. - module ash.cros_healthd.mojom; import "chromeos/ash/services/cros_healthd/public/mojom/nullable_primitives.mojom"; @@ -182,15 +181,20 @@ // pagecache. uint64 cancelled_bytes_written@15; // Filename of the executable. - [MinVersion=1] string? name@16; + [MinVersion=1] + string? name@16; // PID of the parent of this process. - [MinVersion=1] uint32 parent_process_id@17; + [MinVersion=1] + uint32 parent_process_id@17; // Process group ID of the group. - [MinVersion=1] uint32 process_group_id@18; + [MinVersion=1] + uint32 process_group_id@18; // Number of threads in this process. - [MinVersion=1] uint32 threads@19; + [MinVersion=1] + uint32 threads@19; // Process ID of the particular process. - [MinVersion=2] uint32 process_id@20; + [MinVersion=2] + uint32 process_id@20; }; // Battery probe result. Can either be populated with the BatteryInfo or an @@ -264,8 +268,10 @@ uint32 nvme_subsystem_vendor@0; uint16 emmc_oemid@1; uint16 other@2; - [MinVersion=1, Default] uint64 unknown@3; - [MinVersion=2] uint16 jedec_manfid@4; + [MinVersion=1, Default] + uint64 unknown@3; + [MinVersion=2] + uint16 jedec_manfid@4; }; // The manufacturer-specific product identifier. @@ -276,7 +282,8 @@ uint32 nvme_subsystem_device@0; uint64 emmc_pnm@1; uint16 other@2; - [MinVersion=1, Default] uint64 unknown@3; + [MinVersion=1, Default] + uint64 unknown@3; }; // The revision of the device's hardware. @@ -287,7 +294,8 @@ uint8 nvme_pcie_rev@0; uint8 emmc_prv@1; uint16 other@2; - [MinVersion=1, Default] uint64 unknown@3; + [MinVersion=1, Default] + uint64 unknown@3; }; // The revision of the device's firmware. @@ -298,8 +306,10 @@ uint64 nvme_firmware_rev@0; uint64 emmc_fwrev@1; uint16 other@2; - [MinVersion=1, Default] uint64 unknown@3; - [MinVersion=2] uint64 ufs_fwrev@4; + [MinVersion=1, Default] + uint64 unknown@3; + [MinVersion=2] + uint64 ufs_fwrev@4; }; // Purpose of the storage device. @@ -360,7 +370,8 @@ union BlockDeviceInfo { // Default field is required by extensible unions for backward compatibility. // Any unrecognized Mojo field will deserialize to this field. Don't use this. - [Default] bool unrecognized@0; + [Default] + bool unrecognized@0; NvmeDeviceInfo nvme_device_info@1; EmmcDeviceInfo emmc_device_info@2; @@ -393,7 +404,8 @@ // Additional device info. // Device specific info. - [MinVersion=1] BlockDeviceInfo? device_info@17; + [MinVersion=1] + BlockDeviceInfo? device_info@17; // Device identification. @@ -424,7 +436,8 @@ // PSN: Product serial number, 32 bits uint32 serial@16; // String representatil of the device FW version - [MinVersion=2] string? firmware_string@18; + [MinVersion=2] + string? firmware_string@18; }; // CPU probe result. Can either be populated with the CpuInfo or an error @@ -455,10 +468,12 @@ KeylockerInfo? keylocker_info@4; // The general virtualization info. Guaranteed to be not null unless the // version doesn't match. - [MinVersion=1] VirtualizationInfo? virtualization@5; + [MinVersion=1] + VirtualizationInfo? virtualization@5; // The cpu vulnerability info. The key is the name of the vulnerability. // Guaranteed to be not null unless the version doesn't match. - [MinVersion=1] map<string, VulnerabilityInfo>? vulnerabilities@6; + [MinVersion=1] + map<string, VulnerabilityInfo>? vulnerabilities@6; }; // Information related to virtualization. @@ -541,9 +556,11 @@ array<LogicalCpuInfo> logical_cpus@1; // The cpu flags, labelled as |flags| in x86 architecture and |Features| in // ARM architecture. - [MinVersion=1] array<string>? flags@2; + [MinVersion=1] + array<string>? flags@2; // The virtualization info of this cpu. - [MinVersion=1] CpuVirtualizationInfo? virtualization@3; + [MinVersion=1] + CpuVirtualizationInfo? virtualization@3; }; // Information related to virtualization status of a cpu. @@ -597,7 +614,8 @@ // Information about the logical CPU's time in various C-states. array<CpuCStateInfo> c_states@6; // The core number this logical CPU corresponds to. - [MinVersion=1] uint32 core_id@7; + [MinVersion=1] + uint32 core_id@7; }; // Information about a CPU's C-states. @@ -667,7 +685,8 @@ // Number of page faults since the last boot. uint64 page_faults_since_last_boot@3; // Memory Encryption info. - [MinVersion=1] MemoryEncryptionInfo? memory_encryption_info@4; + [MinVersion=1] + MemoryEncryptionInfo? memory_encryption_info@4; }; // NextMinVersion: 1, NextIndex: 4 @@ -794,22 +813,28 @@ // The number of devices connected to this adapter. uint32 num_connected_devices@3; // The info of connected devices to this adapter. - [MinVersion=1] array<BluetoothDeviceInfo>? connected_devices@4; + [MinVersion=1] + array<BluetoothDeviceInfo>? connected_devices@4; // The adapter is visible or not. - [MinVersion=1] bool discoverable@5; + [MinVersion=1] + bool discoverable@5; // The device discovery procedure is active or not. - [MinVersion=1] bool discovering@6; + [MinVersion=1] + bool discovering@6; // The list of the available local services. - [MinVersion=1] array<string>? uuids@7; + [MinVersion=1] + array<string>? uuids@7; // Local Device ID information. - [MinVersion=1] string? modalias@8; + [MinVersion=1] + string? modalias@8; // List of allowed system devices. - [MinVersion=2] array<string>? service_allow_list@9; + [MinVersion=2] + array<string>? service_allow_list@9; // A dictionary of supported capabilities. DEPRECATED. - [MinVersion=2] DEPRECATED_SupportedCapabilities? deprecated_capabilities@10; + [MinVersion=2] + DEPRECATED_SupportedCapabilities? deprecated_capabilities@10; }; - // Information related to one of a adapter's Bluetooth connected devices. // // NextMinVersion: 3, NextIndex: 10 @@ -832,9 +857,11 @@ // The list of the available remote services. array<string>? uuids@7; // The battery percentage of the device. - [MinVersion=1] NullableUint8? battery_percentage@8; + [MinVersion=1] + NullableUint8? battery_percentage@8; // The Bluetooth class of device (CoD) of the device. - [MinVersion=2] NullableUint32? bluetooth_class@9; + [MinVersion=2] + NullableUint32? bluetooth_class@9; }; // An enumeration of type in Bluetooth device info. @@ -860,7 +887,9 @@ // System probe result. DEPRECATED. [Stable] -union DEPRECATED_SystemResult { ProbeError error; }; +union DEPRECATED_SystemResult { + ProbeError error; +}; // System probe result. Can either be populated with the SystemInfo or an error // retrieving the information. @@ -885,7 +914,8 @@ // logging and debugging. DmiInfo? dmi_info@2; // The info related to Intel Platform Service Record (PSR). - [MinVersion=1] PsrInfo? psr_info@3; + [MinVersion=1] + PsrInfo? psr_info@3; }; // The OS information. @@ -905,7 +935,8 @@ // The boot flow used by the current boot. BootMode boot_mode@3; // Contents of CrosConfig in /branding/oem-name. - [MinVersion=1] string? oem_name@4; + [MinVersion=1] + string? oem_name@4; // NextMinVersion: 1, NextIndex: 4 [Stable, Extensible] @@ -919,7 +950,8 @@ // 32 bit platform. k32 = 3, }; - [MinVersion=2] EfiPlatformSize efi_platform_size@5; + [MinVersion=2] + EfiPlatformSize efi_platform_size@5; }; // Structure containing information about the operating system version of the @@ -934,7 +966,8 @@ // The OS version build number (e.g. "13544"). string build_number@1; // The OS version branch number (e.g. "59"). - [MinVersion=1] string? branch_number@4; + [MinVersion=1] + string? branch_number@4; // The OS version patch number (e.g. "0"). string patch_number@2; // The OS release channel (e.g. "stable-channel"). @@ -982,7 +1015,8 @@ // The product model name. (Optional RO VPD field. b/35512367) string? model_name@5; // OEM name of the device. (Optional RO VPD field) - [MinVersion=1] string? oem_name@6; + [MinVersion=1] + string? oem_name@6; }; // DMI (a.k.a. SMBIOS) is only supported on x86 platform. These info can be used @@ -1109,7 +1143,8 @@ // First 100 PSR events that have been saved. array<PsrEvent> events@14; // Is PSR supported. - [MinVersion=1] bool is_supported@15; + [MinVersion=1] + bool is_supported@15; }; // Network probe result. Can either be populated with the NetworkHealthSnapshot @@ -1200,9 +1235,11 @@ // Numbers of severe underruns. uint32 severe_underruns@7; // Output nodes. - [MinVersion=1] array<AudioNodeInfo>? output_nodes@8; + [MinVersion=1] + array<AudioNodeInfo>? output_nodes@8; // Input nodes. - [MinVersion=1] array<AudioNodeInfo>? input_nodes@9; + [MinVersion=1] + array<AudioNodeInfo>? input_nodes@9; }; // Audio node information. @@ -1297,17 +1334,23 @@ // The shutdown reason (including reboot). string shutdown_reason@4; // TPM initialization time. - [MinVersion=1] NullableDouble? tpm_initialization_seconds@5; + [MinVersion=1] + NullableDouble? tpm_initialization_seconds@5; // Total time of [power on, jump to kernel], a.k.a. firmware time. - [MinVersion=2] double? power_on_to_kernel_seconds@6; + [MinVersion=2] + double? power_on_to_kernel_seconds@6; // Total time of [jump to kernel, pre start up], a.k.a. kernel time. - [MinVersion=2] double? kernel_to_pre_startup_seconds@7; + [MinVersion=2] + double? kernel_to_pre_startup_seconds@7; // Total time of [jump to kernel, post start up]. - [MinVersion=2] double? kernel_to_post_startup_seconds@8; + [MinVersion=2] + double? kernel_to_post_startup_seconds@8; // Total time of [start up, chrome exec], a.k.a. system time. - [MinVersion=2] double? startup_to_chrome_exec_seconds@9; + [MinVersion=2] + double? startup_to_chrome_exec_seconds@9; // Total time of [chrome exec, login screen prompt], a.k.a. chrome time. - [MinVersion=2] double? chrome_exec_to_login_seconds@10; + [MinVersion=2] + double? chrome_exec_to_login_seconds@10; }; // Bus probe result. Can either be populated with the BusDevice or an error @@ -1365,7 +1408,8 @@ ThunderboltBusInfo thunderbolt_bus_info; // The required field for backwards compatibility. The unrecognized Mojo // field will deserialize to this field. It should not be used. - [MinVersion=1, Default] bool unmapped_field; + [MinVersion=1, Default] + bool unmapped_field; }; // The info related to pci. @@ -1387,8 +1431,10 @@ // These fields can be used to classify / identify the pci subsystem devices. // See the pci.ids database for the values. (https://github.com/gentoo/hwids) // Note that not every device has these fields. - [MinVersion=1] NullableUint16? sub_vendor_id@6; - [MinVersion=1] NullableUint16? sub_device_id@7; + [MinVersion=1] + NullableUint16? sub_vendor_id@6; + [MinVersion=1] + NullableUint16? sub_device_id@7; }; // The info related to usb. @@ -1409,12 +1455,15 @@ // The interfaces are sorted by the |interface_number| field. array<UsbBusInterfaceInfo> interfaces@5; // The firmware version obtained from fwupd. - [MinVersion=1] FwupdFirmwareVersionInfo? fwupd_firmware_version_info@6; + [MinVersion=1] + FwupdFirmwareVersionInfo? fwupd_firmware_version_info@6; // The recognized usb version. It may not be the highest USB version supportrd // by the hardware. - [MinVersion=2] UsbVersion version@7; + [MinVersion=2] + UsbVersion version@7; // The spec usb speed. - [MinVersion=2] UsbSpecSpeed spec_speed@8; + [MinVersion=2] + UsbSpecSpeed spec_speed@8; }; // The info related to firmware version obtained from fwupd. @@ -1718,7 +1767,8 @@ // Embedded display info. EmbeddedDisplayInfo embedded_display@0; // External display info. - [MinVersion=1] array<ExternalDisplayInfo>? external_displays@1; + [MinVersion=1] + array<ExternalDisplayInfo>? external_displays@1; }; // NextMinVersion: 3, NextIndex: 15 @@ -1729,31 +1779,44 @@ // Privacy screen is enabled or not. bool privacy_screen_enabled@1; // Display width in millimeters. - [MinVersion=1] NullableUint32? display_width@2; + [MinVersion=1] + NullableUint32? display_width@2; // Display height in millimeters. - [MinVersion=1] NullableUint32? display_height@3; + [MinVersion=1] + NullableUint32? display_height@3; // Horizontal resolution. - [MinVersion=1] NullableUint32? resolution_horizontal@4; + [MinVersion=1] + NullableUint32? resolution_horizontal@4; // Vertical resolution. - [MinVersion=1] NullableUint32? resolution_vertical@5; + [MinVersion=1] + NullableUint32? resolution_vertical@5; // Refresh rate. - [MinVersion=1] NullableDouble? refresh_rate@6; + [MinVersion=1] + NullableDouble? refresh_rate@6; // Three letter manufacturer ID. - [MinVersion=2] string? manufacturer@7; + [MinVersion=2] + string? manufacturer@7; // Manufacturer product code. - [MinVersion=2] NullableUint16? model_id@8; + [MinVersion=2] + NullableUint16? model_id@8; // 32 bits serial number. - [MinVersion=2] NullableUint32? serial_number@9; + [MinVersion=2] + NullableUint32? serial_number@9; // Week of manufacture. - [MinVersion=2] NullableUint8? manufacture_week@10; + [MinVersion=2] + NullableUint8? manufacture_week@10; // Year of manufacture. - [MinVersion=2] NullableUint16? manufacture_year@11; + [MinVersion=2] + NullableUint16? manufacture_year@11; // EDID version. - [MinVersion=2] string? edid_version@12; + [MinVersion=2] + string? edid_version@12; // Digital or analog input. - [MinVersion=2] DisplayInputType input_type@13; + [MinVersion=2] + DisplayInputType input_type@13; // Name of display product. - [MinVersion=2] string? display_name@14; + [MinVersion=2] + string? display_name@14; }; // NextMinVersion: 2, NextIndex: 13 @@ -1770,21 +1833,29 @@ // Refresh rate. NullableDouble? refresh_rate@4; // Three letter manufacturer ID. - [MinVersion=1] string? manufacturer@5; + [MinVersion=1] + string? manufacturer@5; // Manufacturer product code. - [MinVersion=1] NullableUint16? model_id@6; + [MinVersion=1] + NullableUint16? model_id@6; // 32 bits serial number. - [MinVersion=1] NullableUint32? serial_number@7; + [MinVersion=1] + NullableUint32? serial_number@7; // Week of manufacture. - [MinVersion=1] NullableUint8? manufacture_week@8; + [MinVersion=1] + NullableUint8? manufacture_week@8; // Year of manufacture. - [MinVersion=1] NullableUint16? manufacture_year@9; + [MinVersion=1] + NullableUint16? manufacture_year@9; // EDID version. - [MinVersion=1] string? edid_version@10; + [MinVersion=1] + string? edid_version@10; // Digital or analog input. - [MinVersion=1] DisplayInputType input_type@11; + [MinVersion=1] + DisplayInputType input_type@11; // Name of display product. - [MinVersion=1] string? display_name@12; + [MinVersion=1] + string? display_name@12; }; // An enumeration of display input type. @@ -1862,7 +1933,8 @@ // The touchscreen devices. array<TouchscreenDevice> touchscreen_devices@1; // The touchpad devices. - [MinVersion=1] array<TouchpadDevice>? touchpad_devices@2; + [MinVersion=1] + array<TouchpadDevice>? touchpad_devices@2; }; // Data of a touch screen device. @@ -1941,7 +2013,8 @@ // Angle between lid and base. NullableUint16? lid_angle@0; // Information about the device's sensors. - [MinVersion=1] array<Sensor>? sensors@1; + [MinVersion=1] + array<Sensor>? sensors@1; }; // Data of a sensor. @@ -2102,19 +2175,25 @@ GraphicsResult? graphics_result@16; // Information about the display. Only present when kDisplay was included in // the categories input to ProbeTelemetryInfo. - [MinVersion=1] DisplayResult? display_result@17; + [MinVersion=1] + DisplayResult? display_result@17; // Information about the network interfaces. Only present when // kNetworkInterface was included in the categories input to // ProbeTelemetryInfo. - [MinVersion=2] NetworkInterfaceResult? network_interface_result@18; + [MinVersion=2] + NetworkInterfaceResult? network_interface_result@18; // Information about the input software and hardware. Only present when // kInput was included in the categories input to ProbeTelemetryInfo. - [MinVersion=3] InputResult? input_result@19; + [MinVersion=3] + InputResult? input_result@19; // Information about audio hardware. Only present when kAudioHardware was // included. - [MinVersion=4] AudioHardwareResult? audio_hardware_result@20; + [MinVersion=4] + AudioHardwareResult? audio_hardware_result@20; // Information about sensor. Only present when kSensor was included. - [MinVersion=5] SensorResult? sensor_result@21; + [MinVersion=5] + SensorResult? sensor_result@21; // Information about thermal. Only present when kThermal was included. - [MinVersion=6] ThermalResult? thermal_result@22; + [MinVersion=6] + ThermalResult? thermal_result@22; };
diff --git a/chromeos/ash/services/cros_healthd/public/mojom/cros_healthd_routines.mojom b/chromeos/ash/services/cros_healthd/public/mojom/cros_healthd_routines.mojom index 67ee9c4..6602e728 100644 --- a/chromeos/ash/services/cros_healthd/public/mojom/cros_healthd_routines.mojom +++ b/chromeos/ash/services/cros_healthd/public/mojom/cros_healthd_routines.mojom
@@ -7,12 +7,11 @@ // NOTE: This mojom should be kept in sync with the copy in ChromiumOS repo in // src/platform2/diagnostics/mojom/public/cros_healthd_routines.mojom. - module ash.cros_healthd.mojom; +import "chromeos/ash/services/cros_healthd/public/mojom/cros_healthd_exception.mojom"; import "mojo/public/mojom/base/time.mojom"; import "mojo/public/mojom/base/uuid.mojom"; -import "chromeos/ash/services/cros_healthd/public/mojom/cros_healthd_exception.mojom"; // Routines interface exposed by the cros_healthd daemon. // @@ -56,8 +55,8 @@ // * |routine_observer| - an optional observer to receive status updates about // changing routine states. CreateRoutine@0(RoutineArgument routine_argument, - pending_receiver<RoutineControl> routine_receiver, - pending_remote<RoutineObserver>? routine_observer); + pending_receiver<RoutineControl> routine_receiver, + pending_remote<RoutineObserver>? routine_observer); // Checks whether a given `RoutineArgument` is supported. // @@ -79,7 +78,8 @@ union RoutineArgument { // Default field is required by extensible unions for backward compatibility. // Any unrecognized Mojo field will deserialize to this field. Don't use this. - [Default] bool unrecognizedArgument@0; + [Default] + bool unrecognizedArgument@0; // Arguments to create a memory routine. MemoryRoutineArgument memory@1; // Arguments to create a volume button routine. @@ -214,7 +214,7 @@ enum ButtonType { // The default value is for backward compatibility, should not be used. [Default] kUnmappedEnumField = 0, - kVolumeUp = 1, // Test for the volume up button. + kVolumeUp = 1, // Test for the volume up button. kVolumeDown = 2, // Test for the volume down button. }; // The type of volume button to test. @@ -347,21 +347,24 @@ // Gets the current state of the routine. Note that if the routine fails to // initialize, the RoutineControl will disconnect before the callback is // called. - [MinVersion=1] GetState@0() => (RoutineState state); + [MinVersion=1] + GetState@0() => (RoutineState state); // Starts the routine. Each routine can only be started once. Calling this // method multiple times results in no-ops. // // See the error handling section above to know how to handle possible // exceptions that occur before and after the routine has been started. - [MinVersion=1] Start@1(); + [MinVersion=1] + Start@1(); // Reply to the routine inquiry requested in the waiting state. The routine // will raise an exception (by closing the connection of this // `RoutineControl`) if the routine is not in the waiting state or the reply // does not match the inquiry in the waiting state (see // `RoutineStateWaiting`). - [MinVersion=2] ReplyInquiry@2(RoutineInquiryReply reply); + [MinVersion=2] + ReplyInquiry@2(RoutineInquiryReply reply); }; // Implemented by clients who desire routine update notifications. @@ -373,7 +376,8 @@ // as a routine is initialized (right after calling `CreateRoutine`). // Note that if the routine fails to initialize, the RoutineControl may // disconnect before the first invocation of this observer method. - [MinVersion=1] OnRoutineStateChange@0(RoutineState state); + [MinVersion=1] + OnRoutineStateChange@0(RoutineState state); }; // Used to pass information regarding routine state. @@ -394,7 +398,8 @@ union RoutineStateUnion { // Default field is required by extensible unions for backward compatibility. // Any unrecognized Mojo field will deserialize to this field. Don't use this. - [Default] bool unrecognizedArgument @0; + [Default] + bool unrecognizedArgument@0; // Routine has been initialized but not yet started. RoutineStateInitialized initialized@1; // Routine is running. @@ -416,7 +421,8 @@ // NextMinVersion: 2, NextIndex: 1 [Stable] struct RoutineStateRunning { - [MinVersion=1] RoutineRunningInfo? info@0; + [MinVersion=1] + RoutineRunningInfo? info@0; }; // Routine running info. Note that not every routine provides info during the @@ -427,7 +433,8 @@ union RoutineRunningInfo { // Default field is required by extensible unions for backward compatibility. // Any unrecognized Mojo field will deserialize to this field. Don't use this. - [Default] bool unrecognizedArgument @0; + [Default] + bool unrecognizedArgument@0; // Running info of network bandwidth routine. NetworkBandwidthRoutineRunningInfo network_bandwidth@1; }; @@ -478,7 +485,8 @@ // The requested interaction. This field is set if and only if `reason` is // kWaitingInteraction. When set, clients must respond to the interaction for // the routine to proceed. - [MinVersion=1] RoutineInteraction? interaction@2; + [MinVersion=1] + RoutineInteraction? interaction@2; }; // An interaction that is requested by a routine in the waiting state. See the @@ -494,7 +502,8 @@ union RoutineInteraction { // Default field is required by extensible unions for backward compatibility. // Any unrecognized Mojo field will deserialize to this field. Don't use this. - [Default] bool unrecognizedInteraction@0; + [Default] + bool unrecognizedInteraction@0; // An interaction that needs to be replied using `ReplyInquiry`. RoutineInquiry inquiry@1; }; @@ -508,7 +517,8 @@ union RoutineInquiry { // Default field is required by extensible unions for backward compatibility. // Any unrecognized Mojo field will deserialize to this field. Don't use this. - [Default] bool unrecognizedInquiry@0; + [Default] + bool unrecognizedInquiry@0; // Details of the inquiry to check the LED lit up state. CheckLedLitUpStateInquiry check_led_lit_up_state@1; }; @@ -520,7 +530,8 @@ union RoutineInquiryReply { // Default field is required by extensible unions for backward compatibility. // Any unrecognized Mojo field will deserialize to this field. Don't use this. - [Default] bool unrecognizedReply@0; + [Default] + bool unrecognizedReply@0; // Details to resume a routine requesting to check the LED lit up state. CheckLedLitUpStateReply check_led_lit_up_state@1; }; @@ -547,7 +558,7 @@ // The LED is lit up with the correct color. kCorrectColor = 1, // The LED is not lit up with the correct color. - kNotLitUp = 2 + kNotLitUp = 2, }; State state@0; }; @@ -570,7 +581,8 @@ union RoutineDetail { // Default field is required by extensible unions for backward compatibility. // Any unrecognized Mojo field will deserialize to this field. Don't use this. - [Default] bool unrecognizedArgument@0; + [Default] + bool unrecognizedArgument@0; // Details of a completed memory routine. MemoryRoutineDetail memory@1; // Details of a completed fan routine. @@ -590,7 +602,8 @@ // Details of a completed camera availability routine. CameraAvailabilityRoutineDetail camera_availability@9; // Details of a completed network bandwidth routine. - [MinVersion=1] NetworkBandwidthRoutineDetail network_bandwidth@10; + [MinVersion=1] + NetworkBandwidthRoutineDetail network_bandwidth@10; }; // Details regarding memory routine. @@ -755,7 +768,8 @@ string? peripheral_id@2; // The list of available services of peripheral, which is reported when the // average RSSI is higher than -60. - [MinVersion=1] array<mojo_base.mojom.Uuid>? uuids@3; + [MinVersion=1] + array<mojo_base.mojom.Uuid>? uuids@3; }; // Details regarding Bluetooth scanning routine.
diff --git a/chromeos/ash/services/cros_healthd/public/mojom/nullable_primitives.mojom b/chromeos/ash/services/cros_healthd/public/mojom/nullable_primitives.mojom index 311360ea..446c59f 100644 --- a/chromeos/ash/services/cros_healthd/public/mojom/nullable_primitives.mojom +++ b/chromeos/ash/services/cros_healthd/public/mojom/nullable_primitives.mojom
@@ -10,7 +10,6 @@ // NOTE: This mojom should be kept in sync with the copy in Chromium OS's repo // in src/plaform2/diagnostics/mojom/public/nullable_primitives.mojom. - module ash.cros_healthd.mojom; // Optional uint8 field.
diff --git a/chromeos/ash/services/wifi_direct/public/mojom/wifi_direct_manager.mojom b/chromeos/ash/services/wifi_direct/public/mojom/wifi_direct_manager.mojom index 8a9dba62..c389c0f71 100644 --- a/chromeos/ash/services/wifi_direct/public/mojom/wifi_direct_manager.mojom +++ b/chromeos/ash/services/wifi_direct/public/mojom/wifi_direct_manager.mojom
@@ -79,13 +79,18 @@ GetWifiP2PCapabilities() => (WifiP2PCapabilities capabilities); }; +struct WifiDirectConnectionProperties { + uint32 frequency; + string ipv4_address; +}; + // WifiDirectConnection represents an active Wifi Direct group that was created // or connected to from WifiDirectManager. This interface should only be // accessed by Nearby share process and Lacros browser (for WiFi Direct // streaming). interface WifiDirectConnection { - // Returns the frequency of the Wifi Direct network group. - GetFrequency() => (uint32 frequency); + // Returns the properties of the Wifi Direct network group. + GetProperties() => (WifiDirectConnectionProperties properties); // Associate the TCP/UDP socket to the WiFi Direct group network so that // traffic can consistently be sent and received on the WiFi Direct
diff --git a/chromeos/ash/services/wifi_direct/wifi_direct_connection.cc b/chromeos/ash/services/wifi_direct/wifi_direct_connection.cc index f56b1452..8fa4178 100644 --- a/chromeos/ash/services/wifi_direct/wifi_direct_connection.cc +++ b/chromeos/ash/services/wifi_direct/wifi_direct_connection.cc
@@ -4,43 +4,52 @@ #include "chromeos/ash/services/wifi_direct/wifi_direct_connection.h" -#include "chromeos/ash/components/wifi_p2p/wifi_p2p_controller.h" - namespace ash::wifi_direct { +using WifiDirectConnectionMetadata = + WifiP2PController::WifiDirectConnectionMetadata; + +namespace { + +mojom::WifiDirectConnectionPropertiesPtr GetMojoProperties( + const WifiDirectConnectionMetadata& metadata) { + auto properties = mojom::WifiDirectConnectionProperties::New(); + properties->frequency = metadata.frequency; + properties->ipv4_address = metadata.ipv4_address; + return properties; +} + +} // namespace + // static WifiDirectConnection::InstanceWithPendingRemotePair -WifiDirectConnection::Create(int shill_id, - uint32_t frequency, - int network_id, +WifiDirectConnection::Create(const WifiDirectConnectionMetadata& metadata, base::OnceClosure disconnect_handler) { // Use base::WrapUnique(new WifiDirectConnection(...)) instead of // std::make_unique<WifiDirectConnection> to access a private constructor. std::unique_ptr<WifiDirectConnection> wifi_direct_connection = - base::WrapUnique( - new WifiDirectConnection(shill_id, frequency, network_id)); + base::WrapUnique(new WifiDirectConnection(metadata)); return std::make_pair( std::move(wifi_direct_connection), wifi_direct_connection->CreateRemote(std::move(disconnect_handler))); } -WifiDirectConnection::WifiDirectConnection(int shill_id, - uint32_t frequency, - int network_id) - : shill_id_(shill_id), frequency_(frequency), network_id_(network_id) { +WifiDirectConnection::WifiDirectConnection( + const WifiDirectConnectionMetadata& metadata) + : metadata_(metadata) { CHECK(WifiP2PController::IsInitialized()); } WifiDirectConnection::~WifiDirectConnection() = default; -void WifiDirectConnection::GetFrequency(GetFrequencyCallback callback) { - std::move(callback).Run(frequency_); +void WifiDirectConnection::GetProperties(GetPropertiesCallback callback) { + std::move(callback).Run(GetMojoProperties(metadata_)); } void WifiDirectConnection::AssociateSocket(mojo::PlatformHandle socket, AssociateSocketCallback callback) { - WifiP2PController::Get()->TagSocket(network_id_, socket.TakeFD(), + WifiP2PController::Get()->TagSocket(metadata_.network_id, socket.TakeFD(), std::move(callback)); }
diff --git a/chromeos/ash/services/wifi_direct/wifi_direct_connection.h b/chromeos/ash/services/wifi_direct/wifi_direct_connection.h index dd4be2ff..a2474169 100644 --- a/chromeos/ash/services/wifi_direct/wifi_direct_connection.h +++ b/chromeos/ash/services/wifi_direct/wifi_direct_connection.h
@@ -7,6 +7,7 @@ #include "base/memory/raw_ptr.h" #include "base/memory/weak_ptr.h" +#include "chromeos/ash/components/wifi_p2p/wifi_p2p_controller.h" #include "chromeos/ash/services/wifi_direct/public/mojom/wifi_direct_manager.mojom.h" #include "mojo/public/cpp/bindings/receiver.h" @@ -22,33 +23,28 @@ mojo::PendingRemote<mojom::WifiDirectConnection>>; static InstanceWithPendingRemotePair Create( - int shill_id, - uint32_t frequency, - int network_id, + const WifiP2PController::WifiDirectConnectionMetadata& metadata, base::OnceClosure disconnect_handler); WifiDirectConnection(const WifiDirectConnection&) = delete; WifiDirectConnection& operator=(const WifiDirectConnection&) = delete; ~WifiDirectConnection() override; - int get_shill_id() { return shill_id_; } - // mojom::WifiDirectConnection - void GetFrequency(GetFrequencyCallback callback) override; + void GetProperties(GetPropertiesCallback callback) override; void AssociateSocket(mojo::PlatformHandle socket, AssociateSocketCallback callback) override; void FlushForTesting(); private: - WifiDirectConnection(int shill_id, uint32_t frequency, int network_id); + WifiDirectConnection( + const WifiP2PController::WifiDirectConnectionMetadata& metadata); mojo::PendingRemote<mojom::WifiDirectConnection> CreateRemote( base::OnceClosure disconnect_handler); mojo::Receiver<mojom::WifiDirectConnection> receiver_{this}; - int shill_id_; - uint32_t frequency_; - int network_id_; + WifiP2PController::WifiDirectConnectionMetadata metadata_; }; } // namespace ash::wifi_direct
diff --git a/chromeos/ash/services/wifi_direct/wifi_direct_manager.cc b/chromeos/ash/services/wifi_direct/wifi_direct_manager.cc index b72992ba..b31571c0 100644 --- a/chromeos/ash/services/wifi_direct/wifi_direct_manager.cc +++ b/chromeos/ash/services/wifi_direct/wifi_direct_manager.cc
@@ -113,7 +113,7 @@ // TODO: set disconnect handler when Destroy/Disconnect group is implemented. auto wifi_direct_connection_pair = WifiDirectConnection::Create( - shill_id, metadata->frequency, metadata->network_id, + *metadata, base::BindOnce(&WifiDirectManager::OnClientRequestedDisconnection, weak_ptr_factory_.GetWeakPtr(), shill_id)); if (base::Contains(shill_id_to_wifi_direct_connection_, shill_id)) {
diff --git a/chromeos/ash/services/wifi_direct/wifi_direct_manager_unittest.cc b/chromeos/ash/services/wifi_direct/wifi_direct_manager_unittest.cc index ec12782..99b8d30 100644 --- a/chromeos/ash/services/wifi_direct/wifi_direct_manager_unittest.cc +++ b/chromeos/ash/services/wifi_direct/wifi_direct_manager_unittest.cc
@@ -24,6 +24,12 @@ using mojom::WifiDirectOperationResult; using mojom::WifiP2PCapabilitiesPtr; +namespace { + +constexpr char kIpv4Address[] = "100.0.0.1"; + +} // namespace + class WifiDirectManagerTest : public testing::Test { public: struct WifiP2POperationTestResult { @@ -84,13 +90,12 @@ return result; } - uint32_t GetFrequency( + mojom::WifiDirectConnectionPropertiesPtr GetProperties( const mojo::Remote<mojom::WifiDirectConnection>& wifi_direct_connection) { - uint32_t frequency; + mojom::WifiDirectConnectionProperties properties; auto wifi_direct_connection_async_waiter = mojom::WifiDirectConnectionAsyncWaiter(wifi_direct_connection.get()); - wifi_direct_connection_async_waiter.GetFrequency(&frequency); - return frequency; + return wifi_direct_connection_async_waiter.GetProperties(); } bool AssociateSocket( @@ -131,7 +136,9 @@ mojo::Remote<mojom::WifiDirectConnection> wifi_direct_connection( std::move(result_arguments.wifi_direct_connection)); ExpectConnectionsCount(1); - EXPECT_EQ(1000u, GetFrequency(wifi_direct_connection)); + auto properties = GetProperties(wifi_direct_connection); + EXPECT_EQ(1000u, properties->frequency); + EXPECT_EQ(kIpv4Address, properties->ipv4_address); EXPECT_TRUE(AssociateSocket(wifi_direct_connection)); FakePatchPanelClient::Get()->set_tag_socket_success_for_testing( @@ -169,7 +176,9 @@ mojo::Remote<mojom::WifiDirectConnection> wifi_direct_connection( std::move(result_arguments.wifi_direct_connection)); ExpectConnectionsCount(1); - EXPECT_EQ(5200u, GetFrequency(wifi_direct_connection)); + auto properties = GetProperties(wifi_direct_connection); + EXPECT_EQ(5200u, properties->frequency); + EXPECT_EQ(kIpv4Address, properties->ipv4_address); EXPECT_TRUE(AssociateSocket(wifi_direct_connection)); FakePatchPanelClient::Get()->set_tag_socket_success_for_testing(
diff --git a/chromeos/constants/chromeos_features.cc b/chromeos/constants/chromeos_features.cc index 7303001..7295455 100644 --- a/chromeos/constants/chromeos_features.cc +++ b/chromeos/constants/chromeos_features.cc
@@ -224,7 +224,7 @@ // Controls enabling / disabling orca l10n strings. BASE_FEATURE(kOrcaUseL10nStrings, "OrcaUseL10nStrings", - base::FEATURE_DISABLED_BY_DEFAULT); + base::FEATURE_ENABLED_BY_DEFAULT); #if !BUILDFLAG(IS_CHROMEOS_LACROS) // Feature management flag used to gate preinstallation of the container app.
diff --git a/clank b/clank index e5b453e..620d29e 160000 --- a/clank +++ b/clank
@@ -1 +1 @@ -Subproject commit e5b453e713be53b9c6b2b27df1206fd7ef4154cb +Subproject commit 620d29ecf663bd64f394abe63a9dfcd074ccf82e
diff --git a/components/autofill/core/browser/metrics/field_filling_stats_and_score_metrics.cc b/components/autofill/core/browser/metrics/field_filling_stats_and_score_metrics.cc index ea0c948..d2ecdfc 100644 --- a/components/autofill/core/browser/metrics/field_filling_stats_and_score_metrics.cc +++ b/components/autofill/core/browser/metrics/field_filling_stats_and_score_metrics.cc
@@ -9,6 +9,7 @@ #include "base/strings/strcat.h" #include "components/autofill/core/browser/autofill_granular_filling_utils.h" #include "components/autofill/core/browser/field_type_utils.h" +#include "components/autofill/core/browser/filling_product.h" #include "components/autofill/core/browser/form_structure.h" #include "components/autofill/core/browser/form_types.h" #include "components/autofill/core/browser/metrics/autofill_metrics_utils.h" @@ -96,32 +97,49 @@ filling_stats.Total()); } -void LogAutocompleteUnrecognizedFieldFillingStats( - FormType form_type, - const FormGroupFillingStats& filling_stats) { - // Do not acquire metrics if autofill was not used on ac=unrecognized fields +void LogCompactFieldFillingStats(const std::string& histogram_name, + const FormGroupFillingStats& filling_stats) { + // Do not acquire metrics if autofill was not used. if (filling_stats.TotalFilled() == 0) { return; } for (size_t i = 0; i < filling_stats.num_accepted; ++i) { - base::UmaHistogramEnumeration( - "Autofill.AutocompleteUnrecognized.FieldFillingStats", - FieldFillingStat::kAccepted); + base::UmaHistogramEnumeration(histogram_name, + FieldFillingStatus::kAccepted); } - for (size_t i = 0; i < filling_stats.TotalCorrected(); ++i) { - base::UmaHistogramEnumeration( - "Autofill.AutocompleteUnrecognized.FieldFillingStats", - FieldFillingStat::kCorrected); + for (size_t i = 0; i < filling_stats.num_corrected_to_same_type; ++i) { + base::UmaHistogramEnumeration(histogram_name, + FieldFillingStatus::kCorrectedToSameType); } - for (size_t i = 0; i < filling_stats.TotalManuallyFilled(); ++i) { + for (size_t i = 0; i < filling_stats.num_corrected_to_different_type; ++i) { base::UmaHistogramEnumeration( - "Autofill.AutocompleteUnrecognized.FieldFillingStats", - FieldFillingStat::kManuallyFilled); + histogram_name, FieldFillingStatus::kCorrectedToDifferentType); + } + for (size_t i = 0; i < filling_stats.num_corrected_to_unknown_type; ++i) { + base::UmaHistogramEnumeration(histogram_name, + FieldFillingStatus::kCorrectedToUnknownType); + } + for (size_t i = 0; i < filling_stats.num_corrected_to_empty; ++i) { + base::UmaHistogramEnumeration(histogram_name, + FieldFillingStatus::kCorrectedToEmpty); + } + for (size_t i = 0; i < filling_stats.num_manually_filled_to_same_type; ++i) { + base::UmaHistogramEnumeration( + histogram_name, FieldFillingStatus::kManuallyFilledToSameType); + } + for (size_t i = 0; i < filling_stats.num_manually_filled_to_different_type; + ++i) { + base::UmaHistogramEnumeration( + histogram_name, FieldFillingStatus::kManuallyFilledToDifferentType); + } + for (size_t i = 0; i < filling_stats.num_manually_filled_to_unknown_type; + ++i) { + base::UmaHistogramEnumeration( + histogram_name, FieldFillingStatus::kManuallyFilledToUnknownType); } for (size_t i = 0; i < filling_stats.num_left_empty; ++i) { - base::UmaHistogramEnumeration( - "Autofill.AutocompleteUnrecognized.FieldFillingStats", - FieldFillingStat::kLeftEmpty); + base::UmaHistogramEnumeration(histogram_name, + FieldFillingStatus::kLeftEmpty); } } @@ -325,19 +343,24 @@ FieldTypeGroupToFormType(field->Type().group()); const bool is_address_form_field = form_type_of_field == FormType::kAddressForm; - const bool credit_card_form_field = + const bool is_credit_card_form_field = form_type_of_field == FormType::kCreditCardForm; - if (!is_address_form_field && !credit_card_form_field) { + if (!is_address_form_field && !is_credit_card_form_field) { continue; } - // Address and credit cards fields are mutually exclusive. - autofill_metrics::FormGroupFillingStats& group_stats = - is_address_form_field ? address_field_stats : cc_field_stats; - // Get the filling status of this field and add it to the form group - // counter. - group_stats.AddFieldFillingStatus( - autofill_metrics::GetFieldFillingStatus(*field)); if (is_address_form_field && + (field->filling_product() == FillingProduct::kAddress || + field->filling_product() == FillingProduct::kNone)) { + address_field_stats.AddFieldFillingStatus(GetFieldFillingStatus(*field)); + } + if (is_credit_card_form_field && + (field->filling_product() == FillingProduct::kCreditCard || + field->filling_product() == FillingProduct::kNone)) { + cc_field_stats.AddFieldFillingStatus(GetFieldFillingStatus(*field)); + } + if (is_address_form_field && + (field->filling_product() == FillingProduct::kAddress || + field->filling_product() == FillingProduct::kNone) && field->ShouldSuppressSuggestionsAndFillingByDefault()) { ac_unrecognized_address_field_stats.AddFieldFillingStatus( autofill_metrics::GetFieldFillingStatus(*field)); @@ -355,8 +378,13 @@ } LogFieldFillingStats(FormType::kAddressForm, address_field_stats); LogFieldFillingStats(FormType::kCreditCardForm, cc_field_stats); - LogAutocompleteUnrecognizedFieldFillingStats( - FormType::kCreditCardForm, ac_unrecognized_address_field_stats); + LogCompactFieldFillingStats("Autofill.FieldFillingStats.Address", + address_field_stats); + LogCompactFieldFillingStats("Autofill.FieldFillingStats.CreditCard", + cc_field_stats); + LogCompactFieldFillingStats( + "Autofill.AutocompleteUnrecognized.FieldFillingStats2", + ac_unrecognized_address_field_stats); LogFormFillingScore(FormType::kAddressForm, address_field_stats); LogFormFillingScore(FormType::kCreditCardForm, cc_field_stats);
diff --git a/components/autofill/core/browser/metrics/field_filling_stats_and_score_metrics.h b/components/autofill/core/browser/metrics/field_filling_stats_and_score_metrics.h index 8fe1d0b..2666cd2 100644 --- a/components/autofill/core/browser/metrics/field_filling_stats_and_score_metrics.h +++ b/components/autofill/core/browser/metrics/field_filling_stats_and_score_metrics.h
@@ -91,14 +91,6 @@ FormType form_type, const FormStructure& form_structure); -enum class FieldFillingStat { - kAccepted = 0, - kCorrected = 1, - kManuallyFilled = 2, - kLeftEmpty = 3, - kMaxValue = kLeftEmpty -}; - // Logs the `filling_stats` of the fields within a `form_type`, and the // `filling_stats` of ac=unrecognized fields. The filling status // consistent of the number of accepted, corrected or and unfilled fields. See
diff --git a/components/autofill/core/browser/metrics/field_filling_stats_and_score_metrics_unittest.cc b/components/autofill/core/browser/metrics/field_filling_stats_and_score_metrics_unittest.cc index 1f0277d7..20b9288e 100644 --- a/components/autofill/core/browser/metrics/field_filling_stats_and_score_metrics_unittest.cc +++ b/components/autofill/core/browser/metrics/field_filling_stats_and_score_metrics_unittest.cc
@@ -345,11 +345,12 @@ SubmitForm(form); EXPECT_THAT( histogram_tester.GetAllSamples( - "Autofill.AutocompleteUnrecognized.FieldFillingStats"), - base::BucketsAre(base::Bucket(FieldFillingStat::kAccepted, 4), - base::Bucket(FieldFillingStat::kCorrected, 3), - base::Bucket(FieldFillingStat::kManuallyFilled, 2), - base::Bucket(FieldFillingStat::kLeftEmpty, 1))); + "Autofill.AutocompleteUnrecognized.FieldFillingStats2"), + base::BucketsAre( + base::Bucket(FieldFillingStatus::kAccepted, 4), + base::Bucket(FieldFillingStatus::kCorrectedToUnknownType, 3), + base::Bucket(FieldFillingStatus::kManuallyFilledToUnknownType, 2), + base::Bucket(FieldFillingStatus::kLeftEmpty, 1))); } } // namespace autofill::autofill_metrics
diff --git a/components/exo/buffer.cc b/components/exo/buffer.cc index d14b02d..6d246391 100644 --- a/components/exo/buffer.cc +++ b/components/exo/buffer.cc
@@ -843,13 +843,13 @@ // raster/composite when the fence already signaled at this stage. if (acquire_fence && !acquire_fence->GetGpuFenceHandle().is_null()) { - resource->mailbox_holder.sync_token = - contents_texture->UpdateSharedImage(std::move(acquire_fence)); + resource->set_sync_token( + contents_texture->UpdateSharedImage(std::move(acquire_fence))); } uint32_t texture_target = contents_texture->shared_image()->GetTextureTarget(GetFormat()); - resource->mailbox_holder = gpu::MailboxHolder( - contents_texture->mailbox(), resource->sync_token(), texture_target); + resource->set_mailbox(contents_texture->mailbox()); + resource->set_texture_target(texture_target); resource->is_overlay_candidate = is_overlay_candidate_; resource->format = GetSharedImageFormat(buffer_format_); @@ -889,8 +889,9 @@ std::move(contents_texture_), release_contents_callback_.callback(), next_commit_id_, /*release_fence=*/gfx::GpuFenceHandle())); - resource->mailbox_holder = - gpu::MailboxHolder(texture->mailbox(), sync_token, GL_TEXTURE_2D); + resource->set_mailbox(texture->mailbox()); + resource->set_sync_token(sync_token); + resource->set_texture_target(GL_TEXTURE_2D); resource->is_overlay_candidate = false; // The mailbox texture will be released when no longer used by the
diff --git a/components/gwp_asan/client/lightweight_detector/poison_metadata_recorder.h b/components/gwp_asan/client/lightweight_detector/poison_metadata_recorder.h index ea66a55..185a83f5 100644 --- a/components/gwp_asan/client/lightweight_detector/poison_metadata_recorder.h +++ b/components/gwp_asan/client/lightweight_detector/poison_metadata_recorder.h
@@ -7,6 +7,7 @@ #include <atomic> #include <memory> +#include <vector> #include "base/export_template.h" #include "base/gtest_prod_util.h"
diff --git a/components/manta/BUILD.gn b/components/manta/BUILD.gn index a9c0792..988cad5 100644 --- a/components/manta/BUILD.gn +++ b/components/manta/BUILD.gn
@@ -42,6 +42,8 @@ "snapper_provider.h", "sparky/sparky_delegate.cc", "sparky/sparky_delegate.h", + "sparky/sparky_provider.cc", + "sparky/sparky_provider.h", ] deps += [ "//chromeos/constants:constants" ] } @@ -59,6 +61,7 @@ sources += [ "orca_provider_unittest.cc", "snapper_provider_unittest.cc", + "sparky/sparky_provider_unittest.cc", ] }
diff --git a/components/manta/manta_service.cc b/components/manta/manta_service.cc index 1aacf75..7f902ef 100644 --- a/components/manta/manta_service.cc +++ b/components/manta/manta_service.cc
@@ -19,6 +19,7 @@ #include "components/manta/mahi_provider.h" #include "components/manta/orca_provider.h" #include "components/manta/snapper_provider.h" +#include "components/manta/sparky/sparky_provider.h" #endif // BUILDFLAG(IS_CHROMEOS_ASH) namespace manta { @@ -110,6 +111,16 @@ chrome_version_); } +std::unique_ptr<SparkyProvider> MantaService::CreateSparkyProvider( + std::unique_ptr<SparkyDelegate> sparky_delegate) { + if (!identity_manager_ or !sparky_delegate) { + return nullptr; + } + return std::make_unique<SparkyProvider>( + shared_url_loader_factory_, identity_manager_, is_demo_mode_, + chrome_version_, std::move(sparky_delegate)); +} + #endif // BUILDFLAG(IS_CHROMEOS_ASH) void MantaService::Shutdown() {
diff --git a/components/manta/manta_service.h b/components/manta/manta_service.h index 928fd15..e4585a371 100644 --- a/components/manta/manta_service.h +++ b/components/manta/manta_service.h
@@ -12,6 +12,7 @@ #include "base/memory/scoped_refptr.h" #include "build/chromeos_buildflags.h" #include "components/keyed_service/core/keyed_service.h" +#include "components/manta/sparky/sparky_delegate.h" namespace signin { class IdentityManager; @@ -31,6 +32,7 @@ class MahiProvider; class OrcaProvider; class SnapperProvider; +class SparkyProvider; // The MantaService class is a KeyedService for the Chrome/ChromeOS Manta // project. It serves two main functions: @@ -59,6 +61,8 @@ std::unique_ptr<MahiProvider> CreateMahiProvider(); std::unique_ptr<OrcaProvider> CreateOrcaProvider(); virtual std::unique_ptr<SnapperProvider> CreateSnapperProvider(); + std::unique_ptr<SparkyProvider> CreateSparkyProvider( + std::unique_ptr<SparkyDelegate> sparky_delegate); #endif // BUILDFLAG(IS_CHROMEOS_ASH) // Determines whether the profile for this KeyedService support Orca feature.
diff --git a/components/manta/manta_service_callbacks.cc b/components/manta/manta_service_callbacks.cc index 5b3d81a..aa5add99 100644 --- a/components/manta/manta_service_callbacks.cc +++ b/components/manta/manta_service_callbacks.cc
@@ -80,6 +80,10 @@ base::UmaHistogramTimes("Ash.MantaService.MahiProvider.QA.TimeCost", time_cost); break; + case manta::MantaMetricType::kSparky: + base::UmaHistogramTimes("Ash.MantaService.SparkyProvider.TimeCost", + time_cost); + break; } } } // namespace @@ -96,7 +100,7 @@ base::TimeDelta time_cost = base::Time::Now() - start_time; - std::string message = std::string(); + std::string message, locale; if (!responses) { std::move(callback).Run(nullptr, @@ -148,10 +152,11 @@ proto::RpcLocalizedMessage localize_message; localize_message.ParseFromString(detail.value()); message = localize_message.message(); + locale = localize_message.locale(); } } - std::move(callback).Run(nullptr, {manta_status_code, message}); + std::move(callback).Run(nullptr, {manta_status_code, message, locale}); return; }
diff --git a/components/manta/manta_service_callbacks.h b/components/manta/manta_service_callbacks.h index d7eb195..2b7eb988 100644 --- a/components/manta/manta_service_callbacks.h +++ b/components/manta/manta_service_callbacks.h
@@ -26,6 +26,7 @@ kSnapper, kMahiSummary, kMahiQA, + kSparky, }; // Manta service uses this callback to return a Response proto parsed
diff --git a/components/manta/manta_status.h b/components/manta/manta_status.h index 24828b8..55c315e3 100644 --- a/components/manta/manta_status.h +++ b/components/manta/manta_status.h
@@ -37,6 +37,8 @@ // An optional field for more details. Usually a specific `status_code` makes // it unnecessary. std::string message; + // An optional field for storing the language of `message`. + std::string locale; }; } // namespace manta
diff --git a/components/manta/orca_provider.cc b/components/manta/orca_provider.cc index 8dfbaeb2..eb049e3d 100644 --- a/components/manta/orca_provider.cc +++ b/components/manta/orca_provider.cc
@@ -101,8 +101,9 @@ } if (output_data_list.size() == 0) { - std::move(callback).Run(base::Value::Dict(), - {MantaStatusCode::kBlockedOutputs, std::string()}); + std::move(callback).Run( + base::Value::Dict(), + {MantaStatusCode::kBlockedOutputs, /*message=*/std::string()}); return; } @@ -133,7 +134,7 @@ if (request == std::nullopt) { std::move(done_callback) .Run(base::Value::Dict(), - {MantaStatusCode::kInvalidInput, std::string()}); + {MantaStatusCode::kInvalidInput, /*message=*/std::string()}); return; }
diff --git a/components/manta/orca_provider_unittest.cc b/components/manta/orca_provider_unittest.cc index af69e5b..5fbd241 100644 --- a/components/manta/orca_provider_unittest.cc +++ b/components/manta/orca_provider_unittest.cc
@@ -143,6 +143,8 @@ base::Value::Dict response, MantaStatus manta_status) { EXPECT_EQ(manta_status.status_code, MantaStatusCode::kMalformedResponse); + EXPECT_EQ(manta_status.message, ""); + EXPECT_EQ(manta_status.locale, ""); quit_closure.Run(); })); @@ -158,6 +160,8 @@ proto::RpcLocalizedMessage localize_message; localize_message.set_message("bar"); + localize_message.set_locale("en"); + auto* detail = rpc_status.add_details(); detail->set_type_url("type.googleapis.com/google.rpc.LocalizedMessage"); detail->set_value(localize_message.SerializeAsString()); @@ -177,6 +181,7 @@ EXPECT_EQ(manta_status.status_code, MantaStatusCode::kInvalidInput); EXPECT_EQ(manta_status.message, "bar"); + EXPECT_EQ(manta_status.locale, "en"); quit_closure.Run(); })); @@ -202,6 +207,7 @@ EXPECT_EQ(manta_status.status_code, MantaStatusCode::kRestrictedCountry); EXPECT_EQ(manta_status.message, "bar"); + EXPECT_EQ(manta_status.locale, "en"); quit_closure.Run(); }));
diff --git a/components/manta/proto/BUILD.gn b/components/manta/proto/BUILD.gn index 571250f..8833df6 100644 --- a/components/manta/proto/BUILD.gn +++ b/components/manta/proto/BUILD.gn
@@ -7,7 +7,9 @@ proto_library("proto") { proto_in_dir = "//" sources = [ + "common.proto", "manta.proto", "rpc_status.proto", + "sparky.proto", ] }
diff --git a/components/manta/proto/common.proto b/components/manta/proto/common.proto new file mode 100644 index 0000000..df09bfd7 --- /dev/null +++ b/components/manta/proto/common.proto
@@ -0,0 +1,15 @@ +// 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"; +option optimize_for = LITE_RUNTIME; + +package manta.proto; + +// This should be google.protobuf.Any, but Chromium now cannot import well known +// protos. +message Proto3Any { + string type_url = 1; + bytes value = 2; +}
diff --git a/components/manta/proto/manta.proto b/components/manta/proto/manta.proto index 674da306..c0f1ebff 100644 --- a/components/manta/proto/manta.proto +++ b/components/manta/proto/manta.proto
@@ -5,6 +5,8 @@ syntax = "proto2"; option optimize_for = LITE_RUNTIME; +import "components/manta/proto/common.proto"; + package manta.proto; enum FeatureName { @@ -16,6 +18,7 @@ CHROMEOS_READER_SUMMARY = 303; CHROMEOS_READER_TOC = 312; CHROMEOS_READER_Q_AND_A = 313; + CHROMEOS_SPARKY = 314; reserved 304 to 311; } @@ -83,9 +86,12 @@ } message InputData { - reserved 2, 3; + reserved 2; - optional string text = 1; + oneof input_data { + string text = 1; + Proto3Any custom = 3; + } optional string tag = 4; } @@ -101,10 +107,11 @@ } message OutputData { - reserved 3, 4, 5; + reserved 4, 5; oneof output_data { string text = 1; Image image = 2; + Proto3Any custom = 3; } optional uint32 generation_seed = 6;
diff --git a/components/manta/proto/rpc_status.proto b/components/manta/proto/rpc_status.proto index b310747..b366aa2 100644 --- a/components/manta/proto/rpc_status.proto +++ b/components/manta/proto/rpc_status.proto
@@ -5,14 +5,9 @@ syntax = "proto3"; option optimize_for = LITE_RUNTIME; -package manta.proto; +import "components/manta/proto/common.proto"; -// This should be google.protobuf.Any, but Chromium now cannot import well known -// protos. -message Proto3Any { - string type_url = 1; - bytes value = 2; -} +package manta.proto; // This forks google.rpc.Status. message RpcStatus {
diff --git a/components/manta/proto/sparky.proto b/components/manta/proto/sparky.proto new file mode 100644 index 0000000..67c46b8 --- /dev/null +++ b/components/manta/proto/sparky.proto
@@ -0,0 +1,127 @@ +// 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"; +option optimize_for = LITE_RUNTIME; + +package manta.proto; + +enum Task { + reserved 3, 4; + + TASK_UNSPECIFIED = 0; + TASK_SETTINGS = 1; + TASK_DIAGNOSTICS = 2; + TASK_GENERIC = 5; + TASK_PLANNER = 6; +} + +enum Diagnostics { + DIAGNOSTICS_UNSPECIFIED = 0; + DIAGNOSTICS_MEMORY = 1; + DIAGNOSTICS_CPU = 2; + DIAGNOSTICS_BATTERY = 3; + DIAGNOSTICS_STORAGE = 4; +} + +enum SettingType { + SETTING_TYPE_UNSPECIFIED = 0; + SETTING_TYPE_BOOL = 1; + SETTING_TYPE_STRING = 2; + SETTING_TYPE_DOUBLE = 3; + SETTING_TYPE_INTEGER = 4; +} + +message BatteryData { + optional string battery_health = 1; + optional string cycleCount = 2; + optional string battery_time = 3; + optional string battery_charge_percentage = 4; +} + +message StorageData { + optional string free_storage = 1; + optional string total_storage = 2; +} + +message CPUData { + optional string cpu_usage_snapshot = 1; + optional string temperature = 2; + optional string clock_speed = 3; +} + +message MemoryData { + optional string free_ram = 1; + optional string total_ram = 2; +} + +message DiagnosticsData { + optional BatteryData battery = 1; + optional StorageData storage = 2; + optional CPUData cpu = 3; + optional MemoryData memory = 4; +} + +message SettingsValue { + oneof settings_value { + bool bool_val = 1; + string text_val = 2; + double double_val = 3; + int32 int_val = 4; + } +} + +message Setting { + string settings_id = 1; + SettingsValue value = 2; + SettingType type = 3; +} + +message SettingsData { + repeated Setting setting = 1; +} + +message Action { + optional SettingsData settings = 1; +} + +message FinalResponse { + string answer = 1; + optional Action action = 2; +} + +message DiagnosticsRequest { + repeated Diagnostics diagnostics = 1; +} + +message SettingsDataRequest {} + +message ContextRequest { + reserved 2; + + optional DiagnosticsRequest diagnostics = 1; + optional SettingsDataRequest settings = 3; +} + +message SparkyResponse { + oneof sparky_response { + ContextRequest context_request = 1; + FinalResponse final_response = 2; + } +} + +message InputText { + optional string text = 1; + optional string tag = 2; +} + +message SparkyContextData { + reserved 5, 6, 7; + + optional Task task = 1; + optional string page_contents = 2; + optional DiagnosticsData diagnostics_data = 3; + optional SettingsData settings_data = 4; + repeated InputText q_and_a = 8; +}
diff --git a/components/manta/sparky/sparky_provider.cc b/components/manta/sparky/sparky_provider.cc new file mode 100644 index 0000000..672dad3 --- /dev/null +++ b/components/manta/sparky/sparky_provider.cc
@@ -0,0 +1,217 @@ +// 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/manta/sparky/sparky_provider.h" + +#include <memory> +#include <optional> +#include <string> +#include <vector> + +#include "base/check.h" +#include "base/containers/fixed_flat_map.h" +#include "base/functional/bind.h" +#include "base/strings/stringprintf.h" +#include "base/time/time.h" +#include "base/values.h" +#include "components/endpoint_fetcher/endpoint_fetcher.h" +#include "components/manta/base_provider.h" +#include "components/manta/manta_service.h" +#include "components/manta/manta_service_callbacks.h" +#include "components/manta/manta_status.h" +#include "components/manta/proto/manta.pb.h" +#include "components/manta/proto/sparky.pb.h" +#include "components/manta/sparky/sparky_delegate.h" +#include "components/signin/public/base/consent_level.h" +#include "components/signin/public/identity_manager/identity_manager.h" +#include "net/traffic_annotation/network_traffic_annotation.h" + +namespace manta { + +namespace { + +// TODO (b/336703051) Update with new Oauth. +constexpr char kOauthConsumerName[] = "manta_sparky"; + +constexpr char kTypeURLSparkyResponse[] = + "type.googleapis.com/mdi.aretea.sparky_interaction.SparkyResponse"; +constexpr char kTypeURLSparkyContextData[] = + "type.googleapis.com/mdi.aretea.sparky_interaction.SparkyContextData"; + +// Handles the QA response from the server. +void OnQAServerResponseOrErrorReceived( + MantaProtoResponseCallback callback, + std::unique_ptr<proto::Response> manta_response, + MantaStatus manta_status) { + if (manta_status.status_code != MantaStatusCode::kOk) { + CHECK(manta_response == nullptr); + std::move(callback).Run(nullptr, std::move(manta_status)); + return; + } + + CHECK(manta_response != nullptr); + if (manta_response->output_data_size() < 1 || + !manta_response->output_data(0).has_custom()) { + std::string message = std::string(); + + // Tries to find more information from filtered_data + if (manta_response->filtered_data_size() > 0 && + manta_response->filtered_data(0).is_output_data()) { + message = base::StringPrintf( + "filtered output for: %s", + proto::FilteredReason_Name(manta_response->filtered_data(0).reason()) + .c_str()); + } + std::move(callback).Run(std::make_unique<proto::Response>(), + {MantaStatusCode::kBlockedOutputs, message}); + return; + } + + std::move(callback).Run(std::move(manta_response), std::move(manta_status)); +} + +} // namespace + +SparkyProvider::SparkyProvider( + scoped_refptr<network::SharedURLLoaderFactory> url_loader_factory, + signin::IdentityManager* identity_manager, + bool is_demo_mode, + const std::string& chrome_version, + std::unique_ptr<SparkyDelegate> sparky_delegate) + : BaseProvider(url_loader_factory, + identity_manager, + is_demo_mode, + chrome_version), + sparky_delegate_(std::move(sparky_delegate)) {} + +SparkyProvider::SparkyProvider( + scoped_refptr<network::SharedURLLoaderFactory> url_loader_factory, + signin::IdentityManager* identity_manager, + std::unique_ptr<SparkyDelegate> sparky_delegate) + : SparkyProvider(url_loader_factory, + identity_manager, + false, + std::string(), + std::move(sparky_delegate)) {} + +SparkyProvider::~SparkyProvider() = default; + +void SparkyProvider::QuestionAndAnswer( + const std::string& original_content, + const std::vector<SparkyQAPair> QAHistory, + const std::string& question, + proto::Task task, + SparkyShowAnswerCallback done_callback) { + proto::Request request; + request.set_feature_name(proto::FeatureName::CHROMEOS_SPARKY); + + auto* input_data = request.add_input_data(); + + auto* custom_data = input_data->mutable_custom(); + + proto::SparkyContextData sparky_context_data; + + auto* input_text = sparky_context_data.add_q_and_a(); + input_text->set_tag("new_question"); + input_text->set_text(question); + + for (const auto& [previous_question, previous_answer] : QAHistory) { + input_text = sparky_context_data.add_q_and_a(); + input_text->set_tag("previous_question"); + input_text->set_text(previous_question); + + input_text = sparky_context_data.add_q_and_a(); + input_text->set_tag("previous_answer"); + input_text->set_text(previous_answer); + } + + sparky_context_data.set_task(task); + sparky_context_data.set_page_contents(original_content); + + std::string serialized_sparky_data; + sparky_context_data.SerializeToString(&serialized_sparky_data); + + custom_data->set_type_url(kTypeURLSparkyContextData); + custom_data->set_value(serialized_sparky_data); + + MantaProtoResponseCallback internal_callback = base::BindOnce( + &OnQAServerResponseOrErrorReceived, + base::BindOnce(&SparkyProvider::OnResponseReceived, + weak_ptr_factory_.GetWeakPtr(), std::move(done_callback), + original_content, QAHistory, question)); + + // TODO(b:338501686): MISSING_TRAFFIC_ANNOTATION should be resolved before + // launch. + RequestInternal(GURL{GetProviderEndpoint(false)}, kOauthConsumerName, + MISSING_TRAFFIC_ANNOTATION, request, MantaMetricType::kSparky, + std::move(internal_callback)); +} + +void SparkyProvider::OnResponseReceived( + SparkyShowAnswerCallback done_callback, + const std::string& original_content, + const std::vector<SparkyQAPair> QAHistory, + const std::string& question, + std::unique_ptr<proto::Response> response, + manta::MantaStatus status) { + if (status.status_code != manta::MantaStatusCode::kOk) { + std::move(done_callback).Run("", status); + return; + } + + if (!response->output_data(0).has_custom()) { + std::move(done_callback).Run("", status); + return; + } + proto::Proto3Any custom_response = response->output_data(0).custom(); + + if (custom_response.type_url() == kTypeURLSparkyResponse) { + proto::SparkyResponse sparky_response; + sparky_response.ParseFromString(custom_response.value()); + + if (sparky_response.has_context_request()) { + RequestAdditionalInformation(sparky_response.context_request(), + original_content, QAHistory, question, + std::move(done_callback), status); + return; + } else if (sparky_response.has_final_response()) { + OnActionResponse(sparky_response.final_response(), + std::move(done_callback), status); + return; + } + } + // Occurs if the response cannot be parsed correctly. + std::move(done_callback).Run("", status); + return; +} + +void SparkyProvider::RequestAdditionalInformation( + proto::ContextRequest context_request, + const std::string& original_content, + const std::vector<SparkyQAPair> QAHistory, + const std::string& question, + SparkyShowAnswerCallback done_callback, + manta::MantaStatus status) {} + +void SparkyProvider::OnActionResponse(proto::FinalResponse final_response, + SparkyShowAnswerCallback done_callback, + manta::MantaStatus status) { + if (!final_response.answer().empty()) { + auto answer = final_response.answer(); + if (final_response.has_action()) { + auto action = final_response.action(); + if (action.has_settings()) { + UpdateSettings(action.settings()); + } + } else { + std::move(done_callback).Run(answer, status); + } + } else { + std::move(done_callback).Run("", status); + } +} + +void SparkyProvider::UpdateSettings(proto::SettingsData settings) {} + +} // namespace manta
diff --git a/components/manta/sparky/sparky_provider.h b/components/manta/sparky/sparky_provider.h new file mode 100644 index 0000000..45b17c78 --- /dev/null +++ b/components/manta/sparky/sparky_provider.h
@@ -0,0 +1,103 @@ +// 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_MANTA_SPARKY_SPARKY_PROVIDER_H_ +#define COMPONENTS_MANTA_SPARKY_SPARKY_PROVIDER_H_ + +#include <map> +#include <memory> +#include <string> +#include <vector> + +#include "base/component_export.h" +#include "base/functional/callback_forward.h" +#include "base/memory/scoped_refptr.h" +#include "base/memory/weak_ptr.h" +#include "base/scoped_observation.h" +#include "components/endpoint_fetcher/endpoint_fetcher.h" +#include "components/manta/base_provider.h" +#include "components/manta/manta_service_callbacks.h" +#include "components/manta/manta_status.h" +#include "components/manta/proto/manta.pb.h" +#include "components/manta/proto/sparky.pb.h" +#include "components/manta/sparky/sparky_delegate.h" +#include "components/signin/public/identity_manager/identity_manager.h" +#include "services/network/public/cpp/shared_url_loader_factory.h" +#include "url/gurl.h" + +namespace manta { + +// The Sparky provider for the Manta project. Provides a method for clients to +// call the relevant google API, handling OAuth and http fetching. +// IMPORTANT: This class depends on `IdentityManager`. +// `SparkyProvider::Call` will return an empty response after `IdentityManager` +// destruction. +class COMPONENT_EXPORT(MANTA) SparkyProvider : virtual public BaseProvider { + public: + // Returns a `SparkyProvider` instance tied to the profile of the passed + // arguments. + SparkyProvider( + scoped_refptr<network::SharedURLLoaderFactory> url_loader_factory, + signin::IdentityManager* identity_manager, + bool is_demo_mode, + const std::string& chrome_version, + std::unique_ptr<SparkyDelegate> sparky_delegate); + + SparkyProvider(const SparkyProvider&) = delete; + SparkyProvider& operator=(const SparkyProvider&) = delete; + + ~SparkyProvider() override; + + // TODO Update this with Sparky information + using SparkyQAPair = std::pair<std::string, std::string>; + + using SparkyShowAnswerCallback = + base::OnceCallback<void(const std::string&, MantaStatus)>; + + void QuestionAndAnswer(const std::string& content, + const std::vector<SparkyQAPair> QAHistory, + const std::string& question, + proto::Task task, + SparkyShowAnswerCallback done_callback); + + protected: + SparkyProvider( + scoped_refptr<network::SharedURLLoaderFactory> url_loader_factory, + signin::IdentityManager* identity_manager, + std::unique_ptr<SparkyDelegate> sparky_delegate); + + private: + friend class FakeSparkyProvider; + + // Called if more information is requested from the client. It will make an + // additional call to QuestionAndAnswer. + void RequestAdditionalInformation(proto::ContextRequest, + const std::string& original_content, + const std::vector<SparkyQAPair> QAHistory, + const std::string& question, + SparkyShowAnswerCallback done_callback, + manta::MantaStatus status); + + void OnResponseReceived(SparkyShowAnswerCallback done_callback, + const std::string& original_content, + const std::vector<SparkyQAPair> QAHistory, + const std::string& question, + std::unique_ptr<proto::Response> output_data, + manta::MantaStatus status); + + void UpdateSettings(proto::SettingsData); + + // If the response back is the final response to show to the user. + void OnActionResponse(proto::FinalResponse, + SparkyShowAnswerCallback done_callback, + manta::MantaStatus status); + + std::unique_ptr<SparkyDelegate> sparky_delegate_; + + base::WeakPtrFactory<SparkyProvider> weak_ptr_factory_{this}; +}; + +} // namespace manta + +#endif // COMPONENTS_MANTA_SPARKY_SPARKY_PROVIDER_H_
diff --git a/components/manta/sparky/sparky_provider_unittest.cc b/components/manta/sparky/sparky_provider_unittest.cc new file mode 100644 index 0000000..16c920f --- /dev/null +++ b/components/manta/sparky/sparky_provider_unittest.cc
@@ -0,0 +1,205 @@ +// 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/manta/sparky/sparky_provider.h" + +#include <memory> +#include <string> +#include <utility> +#include <vector> + +#include "base/strings/stringprintf.h" +#include "base/test/bind.h" +#include "base/test/metrics/histogram_tester.h" +#include "base/test/task_environment.h" +#include "base/time/time.h" +#include "components/manta/base_provider.h" +#include "components/manta/base_provider_test_helper.h" +#include "components/manta/manta_status.h" +#include "components/manta/proto/manta.pb.h" +#include "components/manta/proto/sparky.pb.h" +#include "components/signin/public/base/consent_level.h" +#include "components/signin/public/identity_manager/identity_manager.h" +#include "components/signin/public/identity_manager/identity_test_environment.h" +#include "net/base/net_errors.h" +#include "net/http/http_status_code.h" +#include "net/http/http_util.h" +#include "net/traffic_annotation/network_traffic_annotation_test_helper.h" +#include "services/network/public/cpp/weak_wrapper_shared_url_loader_factory.h" +#include "services/network/test/test_url_loader_factory.h" +#include "testing/gtest/include/gtest/gtest.h" + +namespace manta { + +namespace { +constexpr char kMockEndpoint[] = "https://my-endpoint.com"; +} // namespace + +class FakeSparkyDelegate : public SparkyDelegate { + public: + FakeSparkyDelegate() { + current_prefs_ = SettingsDataList(); + current_prefs_["dark_mode"] = std::make_unique<SettingsData>( + "dark_mode", PrefType::kBoolean, std::make_optional<base::Value>(true)); + current_prefs_["adaptive_charging"] = + std::make_unique<SettingsData>("adaptive_charging", PrefType::kBoolean, + std::make_optional<base::Value>(false)); + } + + // manta::SparkyDelegate + bool SetSettings(std::unique_ptr<SettingsData> settings_data) override { + current_prefs_[settings_data->pref_name] = std::make_unique<SettingsData>( + settings_data->pref_name, settings_data->pref_type, + std::move(settings_data->value)); + return true; + } + + SettingsDataList* GetSettingsList() override { + if (current_prefs_.empty()) { + return nullptr; + } else { + return ¤t_prefs_; + } + } + + private: + SettingsDataList current_prefs_; +}; + +class FakeSparkyProvider : public SparkyProvider, public FakeBaseProvider { + public: + FakeSparkyProvider( + scoped_refptr<network::SharedURLLoaderFactory> test_url_loader_factory, + signin::IdentityManager* identity_manager) + : BaseProvider(test_url_loader_factory, + identity_manager, + /*is_demo_mode=*/false), + SparkyProvider(test_url_loader_factory, + identity_manager, + std::make_unique<FakeSparkyDelegate>()), + FakeBaseProvider(test_url_loader_factory, identity_manager) {} +}; + +class SparkyProviderTest : public BaseProviderTest { + public: + SparkyProviderTest() = default; + + SparkyProviderTest(const SparkyProviderTest&) = delete; + SparkyProviderTest& operator=(const SparkyProviderTest&) = delete; + + ~SparkyProviderTest() override = default; + + std::unique_ptr<FakeSparkyProvider> CreateSparkyProvider() { + return std::make_unique<FakeSparkyProvider>( + base::MakeRefCounted<network::WeakWrapperSharedURLLoaderFactory>( + &test_url_loader_factory_), + identity_test_env_->identity_manager()); + } +}; + +// Test that string answer response is correctly passed to the callback. +TEST_F(SparkyProviderTest, SimpleRequestPayload) { + base::HistogramTester histogram_tester; + manta::proto::Response response; + manta::proto::OutputData& output_data = *response.add_output_data(); + manta::proto::Proto3Any& custom_response = *output_data.mutable_custom(); + custom_response.set_type_url( + "type.googleapis.com/mdi.aretea.sparky_interaction.SparkyResponse"); + proto::SparkyResponse sparky_response; + auto* final_response = sparky_response.mutable_final_response(); + final_response->set_answer("text answer"); + + std::string serialized_sparky_response; + sparky_response.SerializeToString(&serialized_sparky_response); + custom_response.set_value(serialized_sparky_response); + + std::string response_data; + response.SerializeToString(&response_data); + + SetEndpointMockResponse(GURL{kMockEndpoint}, response_data, net::HTTP_OK, + net::OK); + std::unique_ptr<FakeSparkyProvider> sparky_provider = CreateSparkyProvider(); + auto quit_closure = task_environment_.QuitClosure(); + auto qa_history = std::vector<FakeSparkyProvider::SparkyQAPair>({ + std::make_pair("Where is it?", "In Tokyo"), + std::make_pair("When is it?", "In July"), + }); + + sparky_provider->QuestionAndAnswer( + "page content", qa_history, "What is the climate like then", + proto::Task::TASK_PLANNER, + base::BindLambdaForTesting( + [&quit_closure](const std::string& answer_string, + MantaStatus manta_status) { + ASSERT_EQ(manta_status.status_code, MantaStatusCode::kOk); + ASSERT_STREQ("text answer", answer_string.c_str()); + quit_closure.Run(); + })); + task_environment_.RunUntilQuit(); + + // Metric is logged when response is successfully parsed. + histogram_tester.ExpectTotalCount("Ash.MantaService.SparkyProvider.TimeCost", + 1); +} + +// Tests that the return string is empty if the returned proto does not contain +// a custom sparky response. +TEST_F(SparkyProviderTest, EmptyResponseIfCustomIsNotSet) { + base::HistogramTester histogram_tester; + manta::proto::Response response; + manta::proto::OutputData& output_data = *response.add_output_data(); + output_data.set_text("text response"); + + std::string response_data; + response.SerializeToString(&response_data); + + SetEndpointMockResponse(GURL{kMockEndpoint}, response_data, net::HTTP_OK, + net::OK); + std::unique_ptr<FakeSparkyProvider> sparky_provider = CreateSparkyProvider(); + auto quit_closure = task_environment_.QuitClosure(); + + sparky_provider->QuestionAndAnswer( + "page content", std::vector<FakeSparkyProvider::SparkyQAPair>(), + "my question", proto::Task::TASK_PLANNER, + base::BindLambdaForTesting([&quit_closure]( + const std::string& answer_string, + MantaStatus manta_status) { + ASSERT_EQ(manta_status.status_code, MantaStatusCode::kBlockedOutputs); + ASSERT_STREQ("", answer_string.c_str()); + quit_closure.Run(); + })); + task_environment_.RunUntilQuit(); + + // Metric is logged when response is successfully parsed. + histogram_tester.ExpectTotalCount("Ash.MantaService.SparkyProvider.TimeCost", + 1); +} + +TEST_F(SparkyProviderTest, EmptyResponseAfterIdentityManagerShutdown) { + base::HistogramTester histogram_tester; + std::unique_ptr<FakeSparkyProvider> sparky_provider = CreateSparkyProvider(); + + identity_test_env_.reset(); + + auto quit_closure = task_environment_.QuitClosure(); + + sparky_provider->QuestionAndAnswer( + "page content", std::vector<FakeSparkyProvider::SparkyQAPair>(), + "my question", proto::Task::TASK_PLANNER, + base::BindLambdaForTesting( + [&quit_closure](const std::string& answer_string, + MantaStatus manta_status) { + ASSERT_EQ(manta_status.status_code, + MantaStatusCode::kNoIdentityManager); + ASSERT_STREQ("", answer_string.c_str()); + quit_closure.Run(); + })); + task_environment_.RunUntilQuit(); + + // No metric logged. + histogram_tester.ExpectTotalCount("Ash.MantaService.SparkyProvider.TimeCost", + 0); +} + +} // namespace manta
diff --git a/components/ml/webnn/graph_validation_utils.cc b/components/ml/webnn/graph_validation_utils.cc index 22c7b051..18ea8af 100644 --- a/components/ml/webnn/graph_validation_utils.cc +++ b/components/ml/webnn/graph_validation_utils.cc
@@ -1011,6 +1011,11 @@ scales_or_sizes, base::span<const uint32_t> axes) { // Validate the input. + if (!IsFloatingPointType(input.data_type)) { + return base::unexpected( + "The data type of the input must be one of the floating point types."); + } + const auto& input_shape = input.dimensions; if (input_shape.size() != 4) { return base::unexpected("The input must be a 4-D tensor."); @@ -1846,15 +1851,17 @@ base::expected<Operand, std::string> ValidatePreluAndInferOutput( const Operand& input, const Operand& slope) { + if (!IsFloatingPointType(input.data_type) && + input.data_type != Operand::DataType::kInt8 && + input.data_type != Operand::DataType::kInt32) { + return base::unexpected( + "The data type of input and slope must be one of {float32, float16, " + "int32, int8}."); + } if (input.data_type != slope.data_type) { return base::unexpected( "The data type of slope doesn't match the data type of input."); } - if (!IsFloatingPointType(input.data_type)) { - return base::unexpected( - "The data type of input and slope must be one of the floating point " - "types."); - } // BroadcastShape unidirectionally broadcasts slope.dimensions to // input.dimensions. if (!BroadcastShapes(slope.dimensions, input.dimensions, false)) {
diff --git a/components/ml/webnn/graph_validation_utils.h b/components/ml/webnn/graph_validation_utils.h index 5f1ef47..d1e5351 100644 --- a/components/ml/webnn/graph_validation_utils.h +++ b/components/ml/webnn/graph_validation_utils.h
@@ -64,14 +64,9 @@ static constexpr DataTypeConstraintSet kFloat = {Operand::DataType::kFloat32, Operand::DataType::kFloat16}; -static constexpr DataTypeConstraintSet kSignedInteger = { - Operand::DataType::kInt32, Operand::DataType::kInt64, - Operand::DataType::kInt8}; - -static constexpr DataTypeConstraintSet kSignedNumber = { +static constexpr DataTypeConstraintSet kFloat16To32Int8To32 = { Operand::DataType::kFloat32, Operand::DataType::kFloat16, - Operand::DataType::kInt32, Operand::DataType::kInt64, - Operand::DataType::kInt8}; + Operand::DataType::kInt32, Operand::DataType::kInt8}; static constexpr DataTypeConstraintSet kGatherOperatorIndexDataTypes = { Operand::DataType::kInt32, Operand::DataType::kUint32,
diff --git a/components/offline_pages/core/request_header/BUILD.gn b/components/offline_pages/core/request_header/BUILD.gn index cea57c0..7837877 100644 --- a/components/offline_pages/core/request_header/BUILD.gn +++ b/components/offline_pages/core/request_header/BUILD.gn
@@ -29,5 +29,6 @@ "//base", "//base/test:test_support", "//testing/gtest", + "//url:url", ] }
diff --git a/components/offline_pages/core/request_header/offline_page_header_unittest.cc b/components/offline_pages/core/request_header/offline_page_header_unittest.cc index 09b88da..1dca2fd9 100644 --- a/components/offline_pages/core/request_header/offline_page_header_unittest.cc +++ b/components/offline_pages/core/request_header/offline_page_header_unittest.cc
@@ -5,7 +5,9 @@ #include "components/offline_pages/core/request_header/offline_page_header.h" #include "base/base64.h" +#include "base/test/scoped_feature_list.h" #include "testing/gtest/include/gtest/gtest.h" +#include "url/url_features.h" namespace offline_pages { @@ -35,7 +37,31 @@ } }; -TEST_F(OfflinePageHeaderTest, Parse) { +// Non-special URLs behavior is affected by the +// StandardCompliantNonSpecialSchemeURLParsing feature. +// See https://crbug.com/40063064 for details. +class OfflinePageHeaderParamTest : public OfflinePageHeaderTest, + public ::testing::WithParamInterface<bool> { + public: + OfflinePageHeaderParamTest() + : use_standard_compliant_non_special_scheme_url_parsing_(GetParam()) { + if (use_standard_compliant_non_special_scheme_url_parsing_) { + scoped_feature_list_.InitAndEnableFeature( + url::kStandardCompliantNonSpecialSchemeURLParsing); + } else { + scoped_feature_list_.InitAndDisableFeature( + url::kStandardCompliantNonSpecialSchemeURLParsing); + } + } + + protected: + bool use_standard_compliant_non_special_scheme_url_parsing_; + + private: + base::test::ScopedFeatureList scoped_feature_list_; +}; + +TEST_P(OfflinePageHeaderParamTest, Parse) { bool need_to_persist; OfflinePageHeader::Reason reason; std::string id; @@ -156,6 +182,15 @@ EXPECT_EQ("", id); EXPECT_EQ(GURL("file://foo/Bar%20Test"), intent_url); + // Unsafe characters in content:// URL are escaped. + EXPECT_TRUE(ParseFromHeaderValue( + "intent_url=" + Base64EncodeString("content://foo/Bar%20%22\'\\Test"), + &need_to_persist, &reason, &id, &intent_url)); + EXPECT_FALSE(need_to_persist); + EXPECT_EQ(OfflinePageHeader::Reason::NONE, reason); + EXPECT_EQ("", id); + EXPECT_EQ(GURL("content://foo/Bar%20%22\'\\Test"), intent_url); + // Unsafe characters in content:// URL are NOT escaped. EXPECT_TRUE(ParseFromHeaderValue( "intent_url=" + Base64EncodeString("content://foo/Bar \"\'\\Test"), @@ -183,21 +218,34 @@ EXPECT_EQ("", header.GetHeaderValueString()); } -TEST_F(OfflinePageHeaderTest, ToString) { +TEST_P(OfflinePageHeaderParamTest, ToString) { OfflinePageHeader header; header.need_to_persist = true; header.reason = OfflinePageHeader::Reason::DOWNLOAD; header.id = "a1b2"; - header.intent_url = GURL("content://foo/Bar \"\'\\Test"); + + const char* url = "content://foo/Bar \"\'\\Test"; + header.intent_url = GURL(url); + + // With the StandardCompliantNonSpecialSchemeURLParsing feature enabled, any + // space (' ') or double quote ('"') characters within the path of + // non-special URLs are percent-encoded. + const char* url_spec = use_standard_compliant_non_special_scheme_url_parsing_ + ? "content://foo/Bar%20%22\'\\Test" + : "content://foo/Bar \"\'\\Test"; + EXPECT_EQ(GURL(url).spec(), url_spec); + EXPECT_EQ( "X-Chrome-offline: persist=1 reason=download id=a1b2 " "intent_url=" + - Base64EncodeString("content://foo/Bar \"\'\\Test"), + Base64EncodeString(url_spec), header.GetCompleteHeaderString()); EXPECT_EQ("X-Chrome-offline", header.GetHeaderKeyString()); EXPECT_EQ("persist=1 reason=download id=a1b2 intent_url=" + - Base64EncodeString("content://foo/Bar \"\'\\Test"), + Base64EncodeString(url_spec), header.GetHeaderValueString()); } +INSTANTIATE_TEST_SUITE_P(All, OfflinePageHeaderParamTest, ::testing::Bool()); + } // namespace offline_pages
diff --git a/components/optimization_guide/internal b/components/optimization_guide/internal index 06178f2..f07f783 160000 --- a/components/optimization_guide/internal +++ b/components/optimization_guide/internal
@@ -1 +1 @@ -Subproject commit 06178f2cd5e20152ad51fbb3d08a2ffaa876d031 +Subproject commit f07f78378f13920fd5ac75e3d50624ea7f6ef1b6
diff --git a/components/policy/resources/templates/policy_definitions/Arc/UnaffiliatedArcAllowed.yaml b/components/policy/resources/templates/policy_definitions/Arc/UnaffiliatedArcAllowed.yaml index 2f66061..c2e0730 100644 --- a/components/policy/resources/templates/policy_definitions/Arc/UnaffiliatedArcAllowed.yaml +++ b/components/policy/resources/templates/policy_definitions/Arc/UnaffiliatedArcAllowed.yaml
@@ -14,7 +14,8 @@ - caption: Do not allow unaffiliated users to use Android apps value: false owners: -- giovax@chromium.org +- arc-commercial@google.com +- mhasank@chromium.org schema: type: boolean supported_on:
diff --git a/components/signin/public/base/signin_switches.cc b/components/signin/public/base/signin_switches.cc index c2bad0c..38183150 100644 --- a/components/signin/public/base/signin_switches.cc +++ b/components/signin/public/base/signin_switches.cc
@@ -33,6 +33,11 @@ base::FEATURE_ENABLED_BY_DEFAULT); #endif +#if BUILDFLAG(ENABLE_DICE_SUPPORT) +// Force enable the default browser step in the first run experience on Desktop. +const char kForceFreDefaultBrowserStep[] = "force-fre-default-browser-step"; +#endif + // Clears the token service before using it. This allows simulating the // expiration of credentials during testing. const char kClearTokenService[] = "clear-token-service"; @@ -196,30 +201,6 @@ BASE_FEATURE(kForYouFre, "ForYouFre", base::FEATURE_ENABLED_BY_DEFAULT); #if BUILDFLAG(ENABLE_DICE_SUPPORT) -constexpr base::FeatureParam<WithDefaultBrowserStep>::Option - kWithDefaultBrowserStepOptions[] = { - {WithDefaultBrowserStep::kYes, "yes"}, - {WithDefaultBrowserStep::kNo, "no"}, - {WithDefaultBrowserStep::kForced, "forced"}, -}; - -const base::FeatureParam<WithDefaultBrowserStep> - kForYouFreWithDefaultBrowserStep{ - &kForYouFre, /*name=*/"with_default_browser_step", - /*default_value=*/WithDefaultBrowserStep::kYes, - /*options=*/&kWithDefaultBrowserStepOptions}; - -constexpr base::FeatureParam<DefaultBrowserVariant>::Option - kDefaultBrowserVariantOptions[] = { - {DefaultBrowserVariant::kCurrent, "current"}, - {DefaultBrowserVariant::kNew, "new"}, -}; - -const base::FeatureParam<DefaultBrowserVariant> kForYouFreDefaultBrowserVariant{ - &kForYouFre, /*name=*/"default_browser_variant", - /*default_value=*/DefaultBrowserVariant::kNew, - /*options=*/&kDefaultBrowserVariantOptions}; - // Feature that indicates that we should put the client in a study group // (provided through `kForYouFreStudyGroup`) to be able to look at metrics in // the long term. Does not affect the client's behavior by itself, instead this
diff --git a/components/signin/public/base/signin_switches.h b/components/signin/public/base/signin_switches.h index 6f6c8ca..a7de1e1 100644 --- a/components/signin/public/base/signin_switches.h +++ b/components/signin/public/base/signin_switches.h
@@ -83,6 +83,11 @@ COMPONENT_EXPORT(SIGNIN_SWITCHES) BASE_DECLARE_FEATURE(kForceDisableExtendedSyncPromos); +#if BUILDFLAG(ENABLE_DICE_SUPPORT) +COMPONENT_EXPORT(SIGNIN_SWITCHES) +extern const char kForceFreDefaultBrowserStep[]; +#endif + #if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_IOS) COMPONENT_EXPORT(SIGNIN_SWITCHES) BASE_DECLARE_FEATURE(kForceStartupSigninPromo); @@ -157,29 +162,6 @@ BASE_DECLARE_FEATURE(kForYouFre); #if BUILDFLAG(ENABLE_DICE_SUPPORT) -enum class WithDefaultBrowserStep { - // The default browser step should be shown as appropriate. - kYes, - // The default browser step should be skipped. - kNo, - // The default browser step should be shown even if we normally should skip - // it, example because of policies or the current default state. - kForced, -}; -COMPONENT_EXPORT(SIGNIN_SWITCHES) -extern const base::FeatureParam<WithDefaultBrowserStep> - kForYouFreWithDefaultBrowserStep; - -enum class DefaultBrowserVariant { - // Use the current strings for the default browser prompt. - kCurrent, - // Use the new strings for the default browser prompt. - kNew, -}; -COMPONENT_EXPORT(SIGNIN_SWITCHES) -extern const base::FeatureParam<DefaultBrowserVariant> - kForYouFreDefaultBrowserVariant; - COMPONENT_EXPORT(SIGNIN_SWITCHES) BASE_DECLARE_FEATURE(kForYouFreSyntheticTrialRegistration);
diff --git a/components/viz/client/client_resource_provider_unittest.cc b/components/viz/client/client_resource_provider_unittest.cc index e8e5e10..f5f26918 100644 --- a/components/viz/client/client_resource_provider_unittest.cc +++ b/components/viz/client/client_resource_provider_unittest.cc
@@ -81,10 +81,10 @@ r.id = ResourceId(mailbox_char); r.is_software = !gpu; r.size = gfx::Size(10, 11); - r.mailbox_holder.mailbox = MailboxFromChar(mailbox_char); + r.set_mailbox(MailboxFromChar(mailbox_char)); if (gpu) { - r.mailbox_holder.sync_token = SyncTokenFromUInt(sync_token_value); - r.mailbox_holder.texture_target = 6; + r.set_sync_token(SyncTokenFromUInt(sync_token_value)); + r.set_texture_target(6); } return r; }
diff --git a/components/viz/common/resources/transferable_resource.cc b/components/viz/common/resources/transferable_resource.cc index 702dd45..62d2d31 100644 --- a/components/viz/common/resources/transferable_resource.cc +++ b/components/viz/common/resources/transferable_resource.cc
@@ -17,8 +17,8 @@ ResourceSource source) { TransferableResource r; r.is_software = true; - r.mailbox_holder.mailbox = id; - r.mailbox_holder.sync_token = sync_token; + r.mailbox_ = id; + r.sync_token_ = sync_token; r.size = size; r.format = format; r.resource_source = source; @@ -57,9 +57,9 @@ ResourceSource source) { TransferableResource r; r.is_software = false; - r.mailbox_holder.mailbox = mailbox; - r.mailbox_holder.texture_target = texture_target; - r.mailbox_holder.sync_token = sync_token; + r.mailbox_ = mailbox; + r.texture_target_ = texture_target; + r.sync_token_ = sync_token; r.size = size; r.format = format; r.is_overlay_candidate = is_overlay_candidate; @@ -91,7 +91,7 @@ ReturnedResource TransferableResource::ToReturnedResource() const { ReturnedResource returned; returned.id = id; - returned.sync_token = mailbox_holder.sync_token; + returned.sync_token = sync_token_; returned.count = 1; return returned; } @@ -108,7 +108,7 @@ bool TransferableResource::IsSoftwareSharedImage() const { CHECK(is_software); - return mailbox_holder.mailbox.IsSharedImage(); + return mailbox_.IsSharedImage(); } } // namespace viz
diff --git a/components/viz/common/resources/transferable_resource.h b/components/viz/common/resources/transferable_resource.h index 0d780c435..d67826b 100644 --- a/components/viz/common/resources/transferable_resource.h +++ b/components/viz/common/resources/transferable_resource.h
@@ -110,7 +110,7 @@ ReturnedResource ToReturnedResource() const; static std::vector<ReturnedResource> ReturnResources( const std::vector<TransferableResource>& input); - bool is_null() const { return mailbox_holder.mailbox.IsZero(); } + bool is_null() const { return mailbox_.IsZero(); } // Returns true if this resource (which must be software) is holding a // SharedImage ID rather than a SharedBitmapId. @@ -137,23 +137,23 @@ // and must be RGBA_8888 always for software resources. SharedImageFormat format = SinglePlaneFormat::kRGBA_8888; - // The |mailbox| inside here holds the gpu::Mailbox when this is a gpu - // resource, or the SharedBitmapId when it is a software resource. - // The |texture_target| inside here only apply for gpu resources. - // TODO(crbug.com/337538024): Replace all access to this field with usage of - // the accessors below and remove this field in favor of TransferableResource - // directly storing the fields. - gpu::MailboxHolder mailbox_holder; + void set_mailbox(const gpu::Mailbox& mailbox) { mailbox_ = mailbox; } + void set_sync_token(const gpu::SyncToken& sync_token) { + sync_token_ = sync_token; + } + void set_texture_target(const uint32_t texture_target) { + texture_target_ = texture_target; + } - const gpu::Mailbox& mailbox() const { return mailbox_holder.mailbox; } - const gpu::SyncToken& sync_token() const { return mailbox_holder.sync_token; } - gpu::SyncToken& mutable_sync_token() { return mailbox_holder.sync_token; } - uint32_t texture_target() const { return mailbox_holder.texture_target; } + const gpu::Mailbox& mailbox() const { return mailbox_; } + const gpu::SyncToken& sync_token() const { return sync_token_; } + gpu::SyncToken& mutable_sync_token() { return sync_token_; } + uint32_t texture_target() const { return texture_target_; } // NOTE: This explicitly accesses the mailbox field directly so that we will // be forced to update it when we change the Mailbox and the SharedBitmapId to // be held in an std::variant. - bool is_empty() const { return mailbox_holder.mailbox.IsZero(); } + bool is_empty() const { return mailbox_.IsZero(); } // The color space that is used for pixel path operations (e.g, TexImage, // CopyTexImage, DrawPixels) and when displaying as an overlay. @@ -210,10 +210,9 @@ bool operator==(const TransferableResource& o) const { return id == o.id && is_software == o.is_software && size == o.size && - format == o.format && - mailbox_holder.mailbox == o.mailbox_holder.mailbox && - mailbox_holder.sync_token == o.mailbox_holder.sync_token && - mailbox_holder.texture_target == o.mailbox_holder.texture_target && + format == o.format && mailbox_ == o.mailbox_ && + sync_token_ == o.sync_token_ && + texture_target_ == o.texture_target_ && color_space == o.color_space && hdr_metadata == o.hdr_metadata && is_overlay_candidate == o.is_overlay_candidate && #if BUILDFLAG(IS_ANDROID) @@ -237,6 +236,22 @@ const gfx::Size& size, SharedImageFormat format, ResourceSource source = ResourceSource::kUnknown); + + // The ID of the SharedImage or SharedBitmap that holds the actual memory + // buffer of this resource (which may either be backed by a GPU texture or be + // shared memory). + gpu::Mailbox mailbox_; + + // The SyncToken associated with the above buffer. Allows the receiver to wait + // until the producer has finished using the texture before it begins using + // the texture. + gpu::SyncToken sync_token_; + + // When the shared memory buffer is backed by a GPU texture, the + // `texture_target` is that texture's type. + // See here for OpenGL texture types: + // https://www.opengl.org/wiki/Texture#Texture_Objects + uint32_t texture_target_; }; } // namespace viz
diff --git a/components/viz/service/display/display_resource_provider_skia.cc b/components/viz/service/display/display_resource_provider_skia.cc index 0ba4f46..3cfe3fe 100644 --- a/components/viz/service/display/display_resource_provider_skia.cc +++ b/components/viz/service/display/display_resource_provider_skia.cc
@@ -127,6 +127,7 @@ ExternalUseClient* client) : resource_provider_(resource_provider) { DCHECK(!resource_provider_->external_use_client_); + DCHECK(client); resource_provider_->external_use_client_ = client; }
diff --git a/components/viz/service/display/skia_renderer.cc b/components/viz/service/display/skia_renderer.cc index e3965f2..f31beb2 100644 --- a/components/viz/service/display/skia_renderer.cc +++ b/components/viz/service/display/skia_renderer.cc
@@ -673,7 +673,7 @@ auto* resource_provider = skia_renderer->resource_provider(); DCHECK(IsTextureResource(resource_provider, resource_id)); - auto* image_context = skia_renderer->lock_set_for_external_use_->LockResource( + auto* image_context = skia_renderer->lock_set_for_external_use_.LockResource( resource_id, maybe_concurrent_reads, raw_draw_if_possible); // |ImageContext::image| provides thread safety: (a) this ImageContext is @@ -734,21 +734,21 @@ contexts.reserve(number_of_textures); // Skia API ignores the color space information on the individual planes. // Dropping them here avoids some LOG spam. - auto* y_context = skia_renderer->lock_set_for_external_use_->LockResource( + auto* y_context = skia_renderer->lock_set_for_external_use_.LockResource( quad->y_plane_resource_id(), /*maybe_concurrent_reads=*/true); contexts.push_back(std::move(y_context)); - auto* u_context = skia_renderer->lock_set_for_external_use_->LockResource( + auto* u_context = skia_renderer->lock_set_for_external_use_.LockResource( quad->u_plane_resource_id(), /*maybe_concurrent_reads=*/true); contexts.push_back(std::move(u_context)); if (plane_config == SkYUVAInfo::PlaneConfig::kY_U_V || plane_config == SkYUVAInfo::PlaneConfig::kY_U_V_A) { - auto* v_context = skia_renderer->lock_set_for_external_use_->LockResource( + auto* v_context = skia_renderer->lock_set_for_external_use_.LockResource( quad->v_plane_resource_id(), /*maybe_concurrent_reads=*/true); contexts.push_back(std::move(v_context)); } if (SkYUVAInfo::HasAlpha(plane_config)) { - auto* a_context = skia_renderer->lock_set_for_external_use_->LockResource( + auto* a_context = skia_renderer->lock_set_for_external_use_.LockResource( quad->a_plane_resource_id(), /*maybe_concurrent_reads=*/true); contexts.push_back(std::move(a_context)); } @@ -1044,11 +1044,11 @@ can_skip_render_pass_overlay_( base::FeatureList::IsEnabled(features::kCanSkipRenderPassOverlay)), #endif + lock_set_for_external_use_(resource_provider, skia_output_surface_), is_using_raw_draw_(features::IsUsingRawDraw()) { use_render_pass_drawn_rect_ = base::FeatureList::IsEnabled(features::kRenderPassDrawnRect); DCHECK(skia_output_surface_); - lock_set_for_external_use_.emplace(resource_provider, skia_output_surface_); // There can be different synchronization types requested for different // resources. Some of them may require SyncToken, others - ReadLockFence, and @@ -3630,7 +3630,7 @@ void SkiaRenderer::FlushOutputSurface() { auto sync_token = skia_output_surface_->Flush(); - lock_set_for_external_use_->UnlockResources(sync_token); + lock_set_for_external_use_.UnlockResources(sync_token); } #if BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_OZONE) || BUILDFLAG(IS_WIN)
diff --git a/components/viz/service/display/skia_renderer.h b/components/viz/service/display/skia_renderer.h index c3e494b..320a7ac 100644 --- a/components/viz/service/display/skia_renderer.h +++ b/components/viz/service/display/skia_renderer.h
@@ -427,8 +427,7 @@ // the compositor thread. And the sync token will be released when the DDL // for the current frame is replayed on the GPU thread. // It is only used with DDL. - std::optional<DisplayResourceProviderSkia::LockSetForExternalUse> - lock_set_for_external_use_; + DisplayResourceProviderSkia::LockSetForExternalUse lock_set_for_external_use_; #if BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_OZONE) || BUILDFLAG(IS_WIN) // A reference to an entry in |in_flight_render_pass_overlay_backings_|. If
diff --git a/components/viz/service/frame_sinks/compositor_frame_sink_support_unittest.cc b/components/viz/service/frame_sinks/compositor_frame_sink_support_unittest.cc index 3f76cf5a..529ad9d 100644 --- a/components/viz/service/frame_sinks/compositor_frame_sink_support_unittest.cc +++ b/components/viz/service/frame_sinks/compositor_frame_sink_support_unittest.cc
@@ -149,8 +149,8 @@ for (size_t i = 0u; i < num_resource_ids; ++i) { TransferableResource resource; resource.id = resource_ids[i]; - resource.mailbox_holder.texture_target = GL_TEXTURE_2D; - resource.mailbox_holder.sync_token = frame_sync_token_; + resource.set_texture_target(GL_TEXTURE_2D); + resource.set_sync_token(frame_sync_token_); frame->resource_list.push_back(resource); } } @@ -858,7 +858,7 @@ TransferableResource resource; resource.id = ResourceId(1); - resource.mailbox_holder.texture_target = GL_TEXTURE_2D; + resource.set_texture_target(GL_TEXTURE_2D); auto frame = CompositorFrameBuilder() .AddDefaultRenderPass() .AddTransferableResource(resource)
diff --git a/components/viz/service/frame_sinks/frame_sink_bundle_impl_unittest.cc b/components/viz/service/frame_sinks/frame_sink_bundle_impl_unittest.cc index 9be274c..2e0db97 100644 --- a/components/viz/service/frame_sinks/frame_sink_bundle_impl_unittest.cc +++ b/components/viz/service/frame_sinks/frame_sink_bundle_impl_unittest.cc
@@ -249,8 +249,8 @@ for (const auto& id : resource_ids) { TransferableResource resource; resource.id = id; - resource.mailbox_holder.texture_target = GL_TEXTURE_2D; - resource.mailbox_holder.sync_token = frame_sync_token_; + resource.set_texture_target(GL_TEXTURE_2D); + resource.set_sync_token(frame_sync_token_); frame.resource_list.push_back(resource); }
diff --git a/content/browser/accessibility/accessibility_tree_formatter_blink.cc b/content/browser/accessibility/accessibility_tree_formatter_blink.cc index a3062f3..7fb68f9 100644 --- a/content/browser/accessibility/accessibility_tree_formatter_blink.cc +++ b/content/browser/accessibility/accessibility_tree_formatter_blink.cc
@@ -190,7 +190,7 @@ } // Just return the number - return std::to_string(value); + return base::NumberToString(value); } } // namespace
diff --git a/content/browser/background_fetch/mock_background_fetch_delegate.cc b/content/browser/background_fetch/mock_background_fetch_delegate.cc index b577256..96b2866 100644 --- a/content/browser/background_fetch/mock_background_fetch_delegate.cc +++ b/content/browser/background_fetch/mock_background_fetch_delegate.cc
@@ -2,13 +2,15 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. +#include "content/browser/background_fetch/mock_background_fetch_delegate.h" + #include <utility> #include <vector> #include "base/files/file_util.h" #include "base/functional/bind.h" +#include "base/strings/string_number_conversions.h" #include "base/task/single_thread_task_runner.h" -#include "content/browser/background_fetch/mock_background_fetch_delegate.h" #include "content/public/browser/background_fetch_description.h" #include "content/public/browser/background_fetch_response.h" #include "content/public/browser/browser_thread.h" @@ -26,7 +28,7 @@ : response_(std::make_unique<TestResponse>()) { response_->succeeded = network::IsSuccessfulStatus(response_code); response_->headers = base::MakeRefCounted<net::HttpResponseHeaders>( - "HTTP/1.1 " + std::to_string(response_code)); + "HTTP/1.1 " + base::NumberToString(response_code)); } MockBackgroundFetchDelegate::TestResponseBuilder::~TestResponseBuilder() =
diff --git a/content/browser/background_fetch/storage/database_helpers.cc b/content/browser/background_fetch/storage/database_helpers.cc index 63c981b..21f57c4 100644 --- a/content/browser/background_fetch/storage/database_helpers.cc +++ b/content/browser/background_fetch/storage/database_helpers.cc
@@ -34,7 +34,8 @@ } std::string PendingRequestKey(const std::string& unique_id, int request_index) { - return PendingRequestKeyPrefix(unique_id) + std::to_string(request_index); + return PendingRequestKeyPrefix(unique_id) + + base::NumberToString(request_index); } std::string ActiveRequestKeyPrefix(const std::string& unique_id) { @@ -42,7 +43,8 @@ } std::string ActiveRequestKey(const std::string& unique_id, int request_index) { - return ActiveRequestKeyPrefix(unique_id) + std::to_string(request_index); + return ActiveRequestKeyPrefix(unique_id) + + base::NumberToString(request_index); } std::string CompletedRequestKeyPrefix(const std::string& unique_id) { @@ -51,7 +53,8 @@ std::string CompletedRequestKey(const std::string& unique_id, int request_index) { - return CompletedRequestKeyPrefix(unique_id) + std::to_string(request_index); + return CompletedRequestKeyPrefix(unique_id) + + base::NumberToString(request_index); } std::string StorageVersionKey(const std::string& unique_id) {
diff --git a/content/browser/background_sync/background_sync_launcher_unittest.cc b/content/browser/background_sync/background_sync_launcher_unittest.cc index cdc40885..7136e261 100644 --- a/content/browser/background_sync/background_sync_launcher_unittest.cc +++ b/content/browser/background_sync/background_sync_launcher_unittest.cc
@@ -9,6 +9,7 @@ #include "base/functional/bind.h" #include "base/memory/raw_ptr.h" +#include "base/strings/string_number_conversions.h" #include "base/test/bind.h" #include "base/test/task_environment.h" #include "base/time/time.h" @@ -42,7 +43,7 @@ BrowserContext* browser_context, const GURL& site) override { DCHECK(browser_context); - auto partition_num = std::to_string(++partition_count_); + auto partition_num = base::NumberToString(++partition_count_); return StoragePartitionConfig::Create( browser_context, std::string("PartitionDomain") + partition_num, std::string("Partition") + partition_num, false /* in_memory */);
diff --git a/content/browser/browser_child_process_host_impl.cc b/content/browser/browser_child_process_host_impl.cc index fb0844c..b0bac27 100644 --- a/content/browser/browser_child_process_host_impl.cc +++ b/content/browser/browser_child_process_host_impl.cc
@@ -21,6 +21,7 @@ #include "base/metrics/persistent_histogram_allocator.h" #include "base/metrics/persistent_memory_allocator.h" #include "base/observer_list.h" +#include "base/strings/string_number_conversions.h" #include "base/strings/string_util.h" #include "base/synchronization/waitable_event.h" #include "base/task/single_thread_task_runner.h" @@ -440,7 +441,7 @@ const IPC::Message& message) { std::string log_message = "Bad message received of type: "; if (message.IsValid()) { - log_message += std::to_string(message.type()); + log_message += base::NumberToString(message.type()); } else { log_message += "unknown"; }
diff --git a/content/browser/devtools/protocol/security_handler.cc b/content/browser/devtools/protocol/security_handler.cc index a6f7359..f5675745 100644 --- a/content/browser/devtools/protocol/security_handler.cc +++ b/content/browser/devtools/protocol/security_handler.cc
@@ -10,6 +10,7 @@ #include <vector> #include "base/containers/contains.h" +#include "base/strings/string_number_conversions.h" #include "content/browser/devtools/devtools_agent_host_impl.h" #include "content/browser/renderer_host/back_forward_cache_disable.h" #include "content/browser/renderer_host/render_frame_host_impl.h" @@ -127,7 +128,7 @@ const String& action) { if (!base::Contains(cert_error_callbacks_, event_id)) { return Response::ServerError( - String("Unknown event id: " + std::to_string(event_id))); + String("Unknown event id: " + base::NumberToString(event_id))); } content::CertificateRequestResultType type = content::CERTIFICATE_REQUEST_RESULT_TYPE_CANCEL;
diff --git a/content/browser/loader/file_url_loader_factory.cc b/content/browser/loader/file_url_loader_factory.cc index bff7197..567c84e 100644 --- a/content/browser/loader/file_url_loader_factory.cc +++ b/content/browser/loader/file_url_loader_factory.cc
@@ -312,13 +312,14 @@ // The producer above will have already copied any parts of |pending_data_| // that couldn't be written immediately, so we can wipe it out here to begin // accumulating more data. + total_bytes_written_ += pending_data_.size(); pending_data_.clear(); } void OnDataWritten(MojoResult result) { transfer_in_progress_ = false; - int completion_status; + int status; if (result == MOJO_RESULT_OK) { if (!pending_data_.empty()) { // Keep flushing the data buffer as long as it's non-empty and pipe @@ -334,16 +335,21 @@ // At this point we know the listing is complete and all available data // has been transferred. We inherit the status of the listing operation. - completion_status = listing_result_; + status = listing_result_; } else { - completion_status = net::ERR_FAILED; + status = net::ERR_FAILED; } // All the data has been written now. Close the data pipe. The consumer will // be notified that there will be no more data to read from now. data_producer_.reset(); - client_->OnComplete(network::URLLoaderCompletionStatus(completion_status)); + network::URLLoaderCompletionStatus completion_status(status); + completion_status.encoded_data_length = total_bytes_written_; + completion_status.encoded_body_length = total_bytes_written_; + completion_status.decoded_body_length = total_bytes_written_; + + client_->OnComplete(completion_status); client_.reset(); MaybeDeleteSelf(); @@ -359,6 +365,11 @@ std::unique_ptr<mojo::DataPipeProducer> data_producer_; std::string pending_data_; bool transfer_in_progress_ = false; + + // In case of successful loads, this holds the total number of bytes written + // to the response. It is used to set some of the URLLoaderCompletionStatus + // data passed back to the URLLoaderClients (eg SimpleURLLoader). + uint64_t total_bytes_written_ = 0; }; class FileURLLoader : public network::mojom::URLLoader { @@ -514,6 +525,7 @@ redirect_data_->link_following_policy = link_following_policy; redirect_data_->request.url = redirect_info.new_url; redirect_data_->observer = std::move(observer); + redirect_data_->response_type = response_type; redirect_data_->extra_response_headers = std::move(extra_response_headers); redirect_data_->file_access =
diff --git a/content/browser/loader/file_url_loader_factory_unittest.cc b/content/browser/loader/file_url_loader_factory_unittest.cc index 951e99a..9c42956 100644 --- a/content/browser/loader/file_url_loader_factory_unittest.cc +++ b/content/browser/loader/file_url_loader_factory_unittest.cc
@@ -8,6 +8,7 @@ #include <string> #include "base/files/file_util.h" +#include "base/files/scoped_temp_dir.h" #include "base/path_service.h" #include "base/test/bind.h" #include "base/test/gmock_callback_support.h" @@ -236,6 +237,22 @@ EXPECT_EQ(net::ERR_FAILED, CreateLoaderAndRun(std::move(request))); } +// Test that response type is set correctly for directory listings. Regression +// test for https://crbug.com/41492103. +TEST_F(FileURLLoaderFactoryTest, ResponseTypeForDirectoryListings) { + base::ScopedTempDir dir; + ASSERT_TRUE(dir.CreateUniqueTempDir()); + auto request = std::make_unique<network::ResourceRequest>(); + request->url = + net::FilePathToFileURL(dir.GetPath().StripTrailingSeparators()); + request->mode = network::mojom::RequestMode::kNoCors; + ASSERT_EQ(net::OK, CreateLoaderAndRun(std::move(request))); + + ASSERT_NE(ResponseInfo(), nullptr); + EXPECT_EQ(network::mojom::FetchResponseType::kOpaque, + ResponseInfo()->response_type); +} + } // namespace TEST_F(FileURLLoaderFactoryTest, DlpInitiatorAllow) {
diff --git a/content/browser/loader/navigation_url_loader_impl.cc b/content/browser/loader/navigation_url_loader_impl.cc index 426dc58..57543f7b 100644 --- a/content/browser/loader/navigation_url_loader_impl.cc +++ b/content/browser/loader/navigation_url_loader_impl.cc
@@ -88,6 +88,7 @@ #include "net/traffic_annotation/network_traffic_annotation.h" #include "net/url_request/redirect_util.h" #include "ppapi/buildflags/buildflags.h" +#include "services/metrics/public/cpp/metrics_utils.h" #include "services/metrics/public/cpp/ukm_builders.h" #include "services/metrics/public/cpp/ukm_recorder.h" #include "services/metrics/public/cpp/ukm_source_id.h" @@ -1078,6 +1079,12 @@ } network::mojom::URLResponseHead* head_ptr = head.get(); + // Record ServiceWorker Static Routing API metrics. This is only recorded + // when the API is used. + if (head_ptr->service_worker_router_info) { + RecordServiceWorkerRouterEvaluationResults( + head_ptr->service_worker_router_info.get()); + } auto on_receive_response = base::BindOnce( &NavigationURLLoaderImpl::NotifyResponseStarted, weak_factory_.GetWeakPtr(), std::move(head), @@ -1807,4 +1814,36 @@ received_accept_ch_frame_ = false; } +void NavigationURLLoaderImpl::RecordServiceWorkerRouterEvaluationResults( + network::mojom::ServiceWorkerRouterInfo* router_info) { + // Check if `matched_source_type` and `actual_source_type` exists. If + // `matched_source_type` exists, `actual_source_type` should also exist. + // Likewise, if `matched_source_type` does not exist, `actual_source_type` + // should also not exist. + CHECK_EQ(router_info->matched_source_type.has_value(), + router_info->actual_source_type.has_value()); + ukm::builders::ServiceWorker_MainResourceLoadCompleted builder( + ukm_source_id_); + + if (router_info->evaluation_worker_status) { + builder.SetWorkerStatusOnEvaluation( + static_cast<int64_t>(*router_info->evaluation_worker_status)); + } + + if (router_info->matched_source_type) { + builder.SetMatchedFirstRouterSourceType( + static_cast<int64_t>(*router_info->matched_source_type)); + } + + if (router_info->actual_source_type) { + builder.SetActualRouterSourceType( + static_cast<int64_t>(*router_info->actual_source_type)); + } + + builder + .SetRouterRuleCount(ukm::GetExponentialBucketMinForCounts1000( + router_info->route_rule_num)) + .Record(ukm::UkmRecorder::Get()); +} + } // namespace content
diff --git a/content/browser/loader/navigation_url_loader_impl.h b/content/browser/loader/navigation_url_loader_impl.h index b37b5cf6..0e1021b 100644 --- a/content/browser/loader/navigation_url_loader_impl.h +++ b/content/browser/loader/navigation_url_loader_impl.h
@@ -259,6 +259,10 @@ // Records UKM for the navigation load. void RecordReceivedResponseUkmForOutermostMainFrame(); + // Record static routing API evaluation related results. + void RecordServiceWorkerRouterEvaluationResults( + network::mojom::ServiceWorkerRouterInfo* router_info); + raw_ptr<NavigationURLLoaderDelegate, DanglingUntriaged> delegate_; raw_ptr<BrowserContext> browser_context_; raw_ptr<StoragePartitionImpl> storage_partition_;
diff --git a/content/browser/notifications/platform_notification_context_trigger_unittest.cc b/content/browser/notifications/platform_notification_context_trigger_unittest.cc index 3dd389d..78045a5a 100644 --- a/content/browser/notifications/platform_notification_context_trigger_unittest.cc +++ b/content/browser/notifications/platform_notification_context_trigger_unittest.cc
@@ -6,6 +6,7 @@ #include "base/functional/bind.h" #include "base/run_loop.h" +#include "base/strings/string_number_conversions.h" #include "base/task/single_thread_task_runner.h" #include "base/test/bind.h" #include "base/test/metrics/histogram_tester.h" @@ -232,35 +233,37 @@ TEST_F(PlatformNotificationContextTriggerTest, LimitsNumberOfScheduledNotificationsPerOrigin) { for (int i = 1; i <= kMaximumScheduledNotificationsPerOrigin; ++i) { - WriteNotificationData(std::to_string(i), Time::Now() + base::Seconds(i)); + WriteNotificationData(base::NumberToString(i), + Time::Now() + base::Seconds(i)); } ASSERT_FALSE(TryWriteNotificationData( "https://example.com", - std::to_string(kMaximumScheduledNotificationsPerOrigin + 1), + base::NumberToString(kMaximumScheduledNotificationsPerOrigin + 1), Time::Now() + base::Seconds(kMaximumScheduledNotificationsPerOrigin + 1))); ASSERT_TRUE(TryWriteNotificationData( "https://example2.com", - std::to_string(kMaximumScheduledNotificationsPerOrigin + 1), + base::NumberToString(kMaximumScheduledNotificationsPerOrigin + 1), Time::Now() + base::Seconds(kMaximumScheduledNotificationsPerOrigin + 1))); } TEST_F(PlatformNotificationContextTriggerTest, EnforcesLimitOnUpdate) { for (int i = 1; i <= kMaximumScheduledNotificationsPerOrigin; ++i) { - WriteNotificationData(std::to_string(i), Time::Now() + base::Seconds(i)); + WriteNotificationData(base::NumberToString(i), + Time::Now() + base::Seconds(i)); } ASSERT_TRUE(TryWriteNotificationData( "https://example.com", - std::to_string(kMaximumScheduledNotificationsPerOrigin + 1), + base::NumberToString(kMaximumScheduledNotificationsPerOrigin + 1), std::nullopt)); ASSERT_FALSE(TryWriteNotificationData( "https://example.com", - std::to_string(kMaximumScheduledNotificationsPerOrigin + 1), + base::NumberToString(kMaximumScheduledNotificationsPerOrigin + 1), Time::Now() + base::Seconds(kMaximumScheduledNotificationsPerOrigin + 1))); }
diff --git a/content/browser/renderer_host/input/touch_action_browsertest.cc b/content/browser/renderer_host/input/touch_action_browsertest.cc index dd6a496..2ba4801 100644 --- a/content/browser/renderer_host/input/touch_action_browsertest.cc +++ b/content/browser/renderer_host/input/touch_action_browsertest.cc
@@ -12,6 +12,7 @@ #include "base/functional/callback_helpers.h" #include "base/json/json_reader.h" #include "base/run_loop.h" +#include "base/strings/string_number_conversions.h" #include "base/strings/stringprintf.h" #include "base/strings/utf_string_conversions.h" #include "base/task/single_thread_task_runner.h" @@ -204,7 +205,7 @@ void JankMainThread(base::TimeDelta delta) { std::string script = "var end = performance.now() + "; - script.append(std::to_string(delta.InMilliseconds())); + script.append(base::NumberToString(delta.InMilliseconds())); script.append("; while (performance.now() < end) ; "); EXPECT_TRUE(ExecJs(shell(), script)); }
diff --git a/content/browser/renderer_host/render_process_host_impl.cc b/content/browser/renderer_host/render_process_host_impl.cc index 315875b..7b67919 100644 --- a/content/browser/renderer_host/render_process_host_impl.cc +++ b/content/browser/renderer_host/render_process_host_impl.cc
@@ -3367,7 +3367,7 @@ AppendCompositorCommandLineFlags(command_line); command_line->AppendSwitchASCII(switches::kRendererClientId, - std::to_string(GetID())); + base::NumberToString(GetID())); // Synchronize unix/monotonic clocks across consistent processes. if (base::TimeTicks::IsConsistentAcrossProcesses()) {
diff --git a/content/browser/renderer_host/text_input_manager.cc b/content/browser/renderer_host/text_input_manager.cc index 1fd6203a..ac57c08 100644 --- a/content/browser/renderer_host/text_input_manager.cc +++ b/content/browser/renderer_host/text_input_manager.cc
@@ -8,6 +8,7 @@ #include "base/numerics/clamped_math.h" #include "base/observer_list.h" +#include "base/strings/string_number_conversions.h" #include "build/build_config.h" #include "content/browser/renderer_host/render_widget_host_impl.h" #include "content/browser/renderer_host/render_widget_host_view_base.h" @@ -188,12 +189,13 @@ "ime", "TextInputManager::UpdateTextInputState", "changed", changed, "text_input_state - type, selection, composition, " "show_ime_if_needed, control_bounds", - std::to_string(text_input_state.type) + ", " + + base::NumberToString(text_input_state.type) + ", " + text_input_state.selection.ToString() + ", " + (text_input_state.composition.has_value() ? text_input_state.composition->ToString() : "") + - ", " + std::to_string(text_input_state.show_ime_if_needed) + ", " + + ", " + base::NumberToString(text_input_state.show_ime_if_needed) + + ", " + (text_input_state.edit_context_control_bounds.has_value() ? text_input_state.edit_context_control_bounds->ToString() : ""));
diff --git a/content/browser/sandbox_parameters_mac.mm b/content/browser/sandbox_parameters_mac.mm index ab3bc9a..1539c80 100644 --- a/content/browser/sandbox_parameters_mac.mm +++ b/content/browser/sandbox_parameters_mac.mm
@@ -58,7 +58,7 @@ os_version += minor_version; int32_t final_os_version = os_version.ValueOrDie(); - return std::to_string(final_os_version); + return base::NumberToString(final_os_version); } // Retrieves the users shared darwin dirs and adds it to the profile.
diff --git a/content/browser/service_worker/service_worker_browsertest.cc b/content/browser/service_worker/service_worker_browsertest.cc index 40fe955..56c05eb 100644 --- a/content/browser/service_worker/service_worker_browsertest.cc +++ b/content/browser/service_worker/service_worker_browsertest.cc
@@ -39,6 +39,7 @@ #include "base/uuid.h" #include "build/build_config.h" #include "components/services/storage/public/mojom/cache_storage_control.mojom.h" +#include "components/ukm/test_ukm_recorder.h" #include "content/browser/child_process_security_policy_impl.h" #include "content/browser/process_lock.h" #include "content/browser/renderer_host/code_cache_host_impl.h" @@ -98,8 +99,10 @@ #include "net/test/embedded_test_server/embedded_test_server.h" #include "net/test/embedded_test_server/http_request.h" #include "net/test/embedded_test_server/http_response.h" +#include "services/metrics/public/cpp/ukm_builders.h" #include "services/network/public/cpp/features.h" #include "services/network/public/mojom/fetch_api.mojom.h" +#include "services/network/public/mojom/service_worker_router_info.mojom-shared.h" #include "storage/browser/blob/blob_handle.h" #include "third_party/blink/public/common/features.h" #include "third_party/blink/public/common/loader/url_loader_throttle.h" @@ -115,6 +118,8 @@ namespace content { namespace { +using MainResourceLoadCompletedUkmEntry = + ukm::builders::ServiceWorker_MainResourceLoadCompleted; // V8ScriptRunner::setCacheTimeStamp() stores 16 byte data (marker + tag + // timestamp). @@ -5072,7 +5077,12 @@ } scoped_refptr<ServiceWorkerVersion> SetupAndRegisterServiceWorker() { - return SetupAndRegisterServiceWorkerInternal(kSwScriptUrl); + scoped_refptr<ServiceWorkerVersion> version = + SetupAndRegisterServiceWorkerInternal(kSwScriptUrl); + + // Remove any UKMs recorded during setup + test_ukm_recorder().Purge(); + return version; } scoped_refptr<ServiceWorkerVersion> @@ -5096,6 +5106,10 @@ net::EmbeddedTestServer* https_server() { return https_server_.get(); } + ukm::TestAutoSetUkmRecorder& test_ukm_recorder() { + return *test_ukm_recorder_; + } + protected: void SetUpOnMainThread() override { ServiceWorkerBrowserTest::SetUpOnMainThread(); @@ -5104,6 +5118,7 @@ RegisterRequestMonitorForRequestCount(https_server()); RegisterRequestHandlerForSlowResponsePage(embedded_test_server()); RegisterRequestHandlerForSlowResponsePage(https_server()); + test_ukm_recorder_ = std::make_unique<ukm::TestAutoSetUkmRecorder>(); } scoped_refptr<ServiceWorkerVersion> SetupAndRegisterServiceWorkerInternal( @@ -5220,6 +5235,7 @@ request_log_; base::test::ScopedFeatureList feature_list_; std::unique_ptr<net::EmbeddedTestServer> https_server_; + std::unique_ptr<ukm::TestAutoSetUkmRecorder> test_ukm_recorder_; }; IN_PROC_BROWSER_TEST_F( @@ -5244,6 +5260,24 @@ // when the result from the fetch handler is used. EXPECT_NE("fetch-handler", observer.GetNormalizedResponseHeader("X-Response-From")); + + // Check if the ukm shows the expected matched / actual source + auto entries = test_ukm_recorder().GetEntriesByName( + MainResourceLoadCompletedUkmEntry::kEntryName); + ASSERT_EQ(entries.size(), 1u); + + auto* entry = entries[0].get(); + + ukm::TestAutoSetUkmRecorder::ExpectEntryMetric( + entry, + MainResourceLoadCompletedUkmEntry::kMatchedFirstRouterSourceTypeName, + static_cast<std::int64_t>( + network::mojom::ServiceWorkerRouterSourceType::kRace)); + + ukm::TestAutoSetUkmRecorder::ExpectEntryMetric( + entry, MainResourceLoadCompletedUkmEntry::kActualRouterSourceTypeName, + static_cast<std::int64_t>( + network::mojom::ServiceWorkerRouterSourceType::kNetwork)); } IN_PROC_BROWSER_TEST_F( @@ -5503,6 +5537,24 @@ // when the result from the fetch handler is used. EXPECT_EQ("fetch-handler", observer.GetNormalizedResponseHeader("X-Response-From")); + + // Check if the ukm shows the expected matched / actual source + auto entries = test_ukm_recorder().GetEntriesByName( + MainResourceLoadCompletedUkmEntry::kEntryName); + ASSERT_EQ(entries.size(), 1u); + + auto* entry = entries[0].get(); + + ukm::TestAutoSetUkmRecorder::ExpectEntryMetric( + entry, + MainResourceLoadCompletedUkmEntry::kMatchedFirstRouterSourceTypeName, + static_cast<std::int64_t>( + network::mojom::ServiceWorkerRouterSourceType::kRace)); + + ukm::TestAutoSetUkmRecorder::ExpectEntryMetric( + entry, MainResourceLoadCompletedUkmEntry::kActualRouterSourceTypeName, + static_cast<std::int64_t>( + network::mojom::ServiceWorkerRouterSourceType::kFetchEvent)); } IN_PROC_BROWSER_TEST_F( @@ -6718,12 +6770,21 @@ } ~ServiceWorkerStaticRouterBrowserTest() override = default; + void SetUpOnMainThread() override { + ServiceWorkerBrowserTest::SetUpOnMainThread(); + test_ukm_recorder_ = std::make_unique<ukm::TestAutoSetUkmRecorder>(); + } + WebContents* web_contents() const { return shell()->web_contents(); } RenderFrameHost* GetPrimaryMainFrame() { return web_contents()->GetPrimaryMainFrame(); } + ukm::TestAutoSetUkmRecorder& test_ukm_recorder() { + return *test_ukm_recorder_; + } + void SetupAndRegisterServiceWorker(TestType type) { RegisterRequestMonitorForRequestCount(); RegisterRequestHandlerForTest(); @@ -6752,6 +6813,9 @@ StopServiceWorker(active_version_.get()); ASSERT_EQ(blink::EmbeddedWorkerStatus::kStopped, active_version_->running_status()); + + // Remove any UKMs recorded during setup + test_ukm_recorder().Purge(); } int GetRequestCount(const std::string& relative_url) const { @@ -6858,12 +6922,52 @@ base::test::ScopedFeatureList feature_list_; scoped_refptr<ServiceWorkerVersion> active_version_; base::HistogramTester histogram_tester_; + std::unique_ptr<ukm::TestAutoSetUkmRecorder> test_ukm_recorder_; }; IN_PROC_BROWSER_TEST_F(ServiceWorkerStaticRouterBrowserTest, - MainResourceNetworkFetchHandler) { + MainResourceFromFetchEventRule) { SetupAndRegisterServiceWorker(TestType::kNetwork); ReloadBlockUntilNavigationsComplete(shell(), 1); + // UKM records reloads conducted in `ReloadBlockUntilNavigationComplete`. + // Remove them to make sue UKM only has record for main test. + test_ukm_recorder().Purge(); + + const std::string relative_url = "/service_worker/fetch_event_rule"; + ASSERT_TRUE( + NavigateToURL(shell(), embedded_test_server()->GetURL(relative_url))); + EXPECT_EQ("[ServiceWorkerStaticRouter] Response from the fetch handler", + GetInnerText()); + // The result should be got from the fetch handler, and no network access is + // expected. + EXPECT_EQ(0, GetRequestCount(relative_url)); + + // Check if the ukm shows the expected matched / actual source + auto entries = test_ukm_recorder().GetEntriesByName( + MainResourceLoadCompletedUkmEntry::kEntryName); + ASSERT_EQ(entries.size(), 1u); + + auto* entry = entries[0].get(); + + ukm::TestAutoSetUkmRecorder::ExpectEntryMetric( + entry, + MainResourceLoadCompletedUkmEntry::kMatchedFirstRouterSourceTypeName, + static_cast<std::int64_t>( + network::mojom::ServiceWorkerRouterSourceType::kFetchEvent)); + + ukm::TestAutoSetUkmRecorder::ExpectEntryMetric( + entry, MainResourceLoadCompletedUkmEntry::kActualRouterSourceTypeName, + static_cast<std::int64_t>( + network::mojom::ServiceWorkerRouterSourceType::kFetchEvent)); +} + +IN_PROC_BROWSER_TEST_F(ServiceWorkerStaticRouterBrowserTest, + MainResourceNoRuleMatchedResponseFromFetchHandler) { + SetupAndRegisterServiceWorker(TestType::kNetwork); + ReloadBlockUntilNavigationsComplete(shell(), 1); + // UKM records reloads conducted in `ReloadBlockUntilNavigationComplete`. + // Remove them to make sue UKM only has record for main test. + test_ukm_recorder().Purge(); const std::string relative_url = "/service_worker/fetch_handler"; ASSERT_TRUE( @@ -6873,10 +6977,24 @@ // The result should be got from the fetch handler, and no network access is // expected. EXPECT_EQ(0, GetRequestCount(relative_url)); + + // Check if the ukm shows the expected matched / actual source + auto entries = test_ukm_recorder().GetEntriesByName( + MainResourceLoadCompletedUkmEntry::kEntryName); + ASSERT_EQ(entries.size(), 1u); + + auto* entry = entries[0].get(); + + EXPECT_FALSE(ukm::TestAutoSetUkmRecorder::EntryHasMetric( + entry, + MainResourceLoadCompletedUkmEntry::kMatchedFirstRouterSourceTypeName)); + + EXPECT_FALSE(ukm::TestAutoSetUkmRecorder::EntryHasMetric( + entry, MainResourceLoadCompletedUkmEntry::kActualRouterSourceTypeName)); } IN_PROC_BROWSER_TEST_F(ServiceWorkerStaticRouterBrowserTest, - MainResourceNetworkFallback) { + MainResourceFromNetworkRule) { SetupAndRegisterServiceWorker(TestType::kNetwork); WorkerRunningStatusObserver observer(public_context()); const std::string relative_url = "/service_worker/direct"; @@ -6894,10 +7012,27 @@ histogram_tester().ExpectBucketCount( "ServiceWorker.StartWorker.Purpose", static_cast<int>(ServiceWorkerMetrics::EventType::STATIC_ROUTER), 1); + + // Check if the ukm shows the expected matched / actual source + auto entries = test_ukm_recorder().GetEntriesByName( + MainResourceLoadCompletedUkmEntry::kEntryName); + ASSERT_EQ(entries.size(), 1u); + + auto* entry = entries[0].get(); + ukm::TestAutoSetUkmRecorder::ExpectEntryMetric( + entry, + MainResourceLoadCompletedUkmEntry::kMatchedFirstRouterSourceTypeName, + static_cast<std::int64_t>( + network::mojom::ServiceWorkerRouterSourceType::kNetwork)); + + ukm::TestAutoSetUkmRecorder::ExpectEntryMetric( + entry, MainResourceLoadCompletedUkmEntry::kActualRouterSourceTypeName, + static_cast<std::int64_t>( + network::mojom::ServiceWorkerRouterSourceType::kNetwork)); } IN_PROC_BROWSER_TEST_F(ServiceWorkerStaticRouterBrowserTest, - SubresourceNetworkFetchHandler) { + SubresourceNoRuleMatchedResponseFromFetchHandler) { SetupAndRegisterServiceWorker(TestType::kNetwork); ReloadBlockUntilNavigationsComplete(shell(), 1); StopServiceWorker(version().get()); @@ -6913,7 +7048,7 @@ } IN_PROC_BROWSER_TEST_F(ServiceWorkerStaticRouterBrowserTest, - SubresourceNetworkFallback) { + SubresourceFromNetworkRule) { SetupAndRegisterServiceWorker(TestType::kNetwork); ReloadBlockUntilNavigationsComplete(shell(), 1); StopServiceWorker(version().get()); @@ -7047,6 +7182,24 @@ GetInnerText()); // The result should be got from the cache. EXPECT_EQ(0, GetRequestCount(relative_url)); + + // Check if the ukm shows the expected matched / actual source + auto entries = test_ukm_recorder().GetEntriesByName( + MainResourceLoadCompletedUkmEntry::kEntryName); + ASSERT_EQ(entries.size(), 1u); + + auto* entry = entries[0].get(); + + ukm::TestAutoSetUkmRecorder::ExpectEntryMetric( + entry, + MainResourceLoadCompletedUkmEntry::kMatchedFirstRouterSourceTypeName, + static_cast<std::int64_t>( + network::mojom::ServiceWorkerRouterSourceType::kCache)); + + ukm::TestAutoSetUkmRecorder::ExpectEntryMetric( + entry, MainResourceLoadCompletedUkmEntry::kActualRouterSourceTypeName, + static_cast<std::int64_t>( + network::mojom::ServiceWorkerRouterSourceType::kCache)); } IN_PROC_BROWSER_TEST_F(ServiceWorkerStaticRouterBrowserTest, @@ -7060,6 +7213,24 @@ GetInnerText()); // The result should be got from the network. EXPECT_EQ(1, GetRequestCount(relative_url)); + + // Check if the ukm shows the expected matched / actual source + auto entries = test_ukm_recorder().GetEntriesByName( + MainResourceLoadCompletedUkmEntry::kEntryName); + ASSERT_EQ(entries.size(), 1u); + + auto* entry = entries[0].get(); + + ukm::TestAutoSetUkmRecorder::ExpectEntryMetric( + entry, + MainResourceLoadCompletedUkmEntry::kMatchedFirstRouterSourceTypeName, + static_cast<std::int64_t>( + network::mojom::ServiceWorkerRouterSourceType::kCache)); + + ukm::TestAutoSetUkmRecorder::ExpectEntryMetric( + entry, MainResourceLoadCompletedUkmEntry::kActualRouterSourceTypeName, + static_cast<std::int64_t>( + network::mojom::ServiceWorkerRouterSourceType::kNetwork)); } IN_PROC_BROWSER_TEST_F(ServiceWorkerStaticRouterBrowserTest, @@ -7074,6 +7245,24 @@ GetInnerText()); // The result should be got from the cache. EXPECT_EQ(0, GetRequestCount(relative_url)); + + // Check if the ukm shows the expected matched / actual source + auto entries = test_ukm_recorder().GetEntriesByName( + MainResourceLoadCompletedUkmEntry::kEntryName); + ASSERT_EQ(entries.size(), 1u); + + auto* entry = entries[0].get(); + + ukm::TestAutoSetUkmRecorder::ExpectEntryMetric( + entry, + MainResourceLoadCompletedUkmEntry::kMatchedFirstRouterSourceTypeName, + static_cast<std::int64_t>( + network::mojom::ServiceWorkerRouterSourceType::kCache)); + + ukm::TestAutoSetUkmRecorder::ExpectEntryMetric( + entry, MainResourceLoadCompletedUkmEntry::kActualRouterSourceTypeName, + static_cast<std::int64_t>( + network::mojom::ServiceWorkerRouterSourceType::kCache)); } IN_PROC_BROWSER_TEST_F(ServiceWorkerStaticRouterBrowserTest, @@ -7081,6 +7270,10 @@ SetupAndRegisterServiceWorker(TestType::kNetwork); ReloadBlockUntilNavigationsComplete(shell(), 1); + // UKM records reloads conducted in `ReloadBlockUntilNavigationComplete`. + // Remove them to make sue UKM only has record for main test. + test_ukm_recorder().Purge(); + const std::string relative_url = "/service_worker/cache_with_wrong_name"; WaitUntilRelativeUrlStoredInCache(relative_url); ASSERT_TRUE( @@ -7089,6 +7282,24 @@ GetInnerText()); // Due to the cache miss, the result should be got from the network. EXPECT_EQ(1, GetRequestCount(relative_url)); + + // Check if the ukm shows the expected matched / actual source + auto entries = test_ukm_recorder().GetEntriesByName( + MainResourceLoadCompletedUkmEntry::kEntryName); + ASSERT_EQ(entries.size(), 1u); + + auto* entry = entries[0].get(); + + ukm::TestAutoSetUkmRecorder::ExpectEntryMetric( + entry, + MainResourceLoadCompletedUkmEntry::kMatchedFirstRouterSourceTypeName, + static_cast<std::int64_t>( + network::mojom::ServiceWorkerRouterSourceType::kCache)); + + ukm::TestAutoSetUkmRecorder::ExpectEntryMetric( + entry, MainResourceLoadCompletedUkmEntry::kActualRouterSourceTypeName, + static_cast<std::int64_t>( + network::mojom::ServiceWorkerRouterSourceType::kNetwork)); } IN_PROC_BROWSER_TEST_F(ServiceWorkerStaticRouterBrowserTest,
diff --git a/content/browser/service_worker/service_worker_main_resource_loader.cc b/content/browser/service_worker/service_worker_main_resource_loader.cc index 7c80efe3e..efd3c39 100644 --- a/content/browser/service_worker/service_worker_main_resource_loader.cc +++ b/content/browser/service_worker/service_worker_main_resource_loader.cc
@@ -43,6 +43,7 @@ #include "services/network/public/cpp/features.h" #include "services/network/public/cpp/timing_allow_origin_parser.h" #include "services/network/public/mojom/fetch_api.mojom.h" +#include "services/network/public/mojom/service_worker_router_info.mojom-shared.h" #include "services/network/public/mojom/service_worker_router_info.mojom.h" #include "third_party/blink/public/common/service_worker/service_worker_loader_helpers.h" #include "third_party/blink/public/mojom/service_worker/service_worker_fetch_handler_bypass_option.mojom-shared.h" @@ -151,31 +152,17 @@ scoped_refptr<ServiceWorkerVersion> active_worker = container_host_->controller(); if (active_worker) { - switch (active_worker->running_status()) { - case blink::EmbeddedWorkerStatus::kRunning: - initial_service_worker_status_ = InitialServiceWorkerStatus::kRunning; - break; - case blink::EmbeddedWorkerStatus::kStarting: - initial_service_worker_status_ = InitialServiceWorkerStatus::kStarting; - break; - case blink::EmbeddedWorkerStatus::kStopping: - initial_service_worker_status_ = InitialServiceWorkerStatus::kStopping; - break; - case blink::EmbeddedWorkerStatus::kStopped: - initial_service_worker_status_ = InitialServiceWorkerStatus::kStopped; - if (base::WeakPtr<ServiceWorkerContextCore> core = - active_worker->context()) { - base::UmaHistogramBoolean( - "ServiceWorker.LoadTiming.MainFrame.MainResource." - "ServiceWorkerIsStopped.WaitingForWarmUp", - core->IsWaitingForWarmUp(active_worker->key())); - } - break; - } - if (active_worker->IsWarmingUp()) { - initial_service_worker_status_ = InitialServiceWorkerStatus::kWarmingUp; - } else if (active_worker->IsWarmedUp()) { - initial_service_worker_status_ = InitialServiceWorkerStatus::kWarmedUp; + auto running_status = active_worker->running_status(); + initial_service_worker_status_ = ConvertToServiceWorkerStatus( + running_status, active_worker->IsWarmingUp(), + active_worker->IsWarmedUp()); + + base::WeakPtr<ServiceWorkerContextCore> core = active_worker->context(); + if (running_status == blink::EmbeddedWorkerStatus::kStopping && core) { + base::UmaHistogramBoolean( + "ServiceWorker.LoadTiming.MainFrame.MainResource." + "ServiceWorkerIsStopped.WaitingForWarmUp", + core->IsWaitingForWarmUp(active_worker->key())); } } @@ -269,14 +256,21 @@ // Check if registered static router rules match the request. if (active_worker->router_evaluator()) { CHECK(active_worker->router_evaluator()->IsValid()); + auto running_status = active_worker->running_status(); + auto worker_status = ConvertToServiceWorkerStatus( + running_status, active_worker->IsWarmingUp(), + active_worker->IsWarmedUp()); // Set router information of matched rule for DevTools. response_head_->service_worker_router_info = network::mojom::ServiceWorkerRouterInfo::New(); auto* router_info = response_head_->service_worker_router_info.get(); + router_info->route_rule_num = + active_worker->router_evaluator()->rules().rules.size(); + router_info->evaluation_worker_status = worker_status; auto eval_result = active_worker->router_evaluator()->Evaluate( - resource_request_, active_worker->running_status()); + resource_request_, running_status); // ServiceWorkerStaticRouter_Evaluate is counted only here. // That is because when the static routing API is used, this code will // always be executed even for no fetch handler case and an empty fetch @@ -306,6 +300,8 @@ // enabled, it starts the ServiceWorker manually since we don't // instantiate ServiceWorkerFetchDispatcher, which involves the // ServiceWorker startup. + response_head_->service_worker_router_info->actual_source_type = + network::mojom::ServiceWorkerRouterSourceType::kNetwork; base::SequencedTaskRunner::GetCurrentDefault()->PostTask( FROM_HERE, base::BindOnce( @@ -614,6 +610,18 @@ mojo::ScopedDataPipeConsumerHandle response_body, std::optional<mojo_base::BigBuffer> cached_metadata) { TransitionToStatus(Status::kSentBody); + + // When a `response_head` is not `response_head_`, set the + // `service_worker_router_info` manually to pass the correct routing + // information. Currently, this is only applicable to when + // `race-network-and-fetch` is specified, and when this method is called + // from `ServiceWorkerRaceNetworkRequestURLLoaderClient`. + if (response_head_.get() != response_head.get() && + response_head_->service_worker_router_info) { + response_head->service_worker_router_info = + std::move(response_head_->service_worker_router_info); + } + url_loader_client_->OnReceiveResponse(response_head.Clone(), std::move(response_body), std::move(cached_metadata)); @@ -705,6 +713,17 @@ base::TimeTicks::Now(), /*is_fallback=*/is_fallback); } + // To determine the actual source type when static routing API is used, + // we first set the `actual_source_type` to `kNetwork`, since it is where + // we fallback, or when we face an error. We will switch back the + // `actual_source_type` when we are confident that the source will be on that + // route. + if (response_head_->service_worker_router_info && + response_head_->service_worker_router_info->matched_source_type) { + response_head_->service_worker_router_info->actual_source_type = + network::mojom::ServiceWorkerRouterSourceType::kNetwork; + } + bool is_race_network_request_aborted = false; if (race_network_request_url_loader_client_) { switch (race_network_request_url_loader_client_->state()) { @@ -852,6 +871,8 @@ if (fallback_callback_) { ResponseHeadUpdateParams head_update_params; head_update_params.load_timing_info = response_head_->load_timing; + head_update_params.router_info = + std::move(response_head_->service_worker_router_info); std::move(fallback_callback_).Run(std::move(head_update_params)); } return; @@ -868,6 +889,22 @@ return; } + // Determine the actual route type of static routing API when it is used. + // If `race-network-and-fetch` was specified, we are setting `kFetchEvent` + // since executing this code means that the fetch event won. For other + // cases (`kCache`, `kFetchEvent`), the `matched_source_type` will be the + // `actual_source_type`. + if (auto* route_info = response_head_->service_worker_router_info.get()) { + if (route_info->matched_source_type && + *route_info->matched_source_type == + network::mojom::ServiceWorkerRouterSourceType::kRace) { + route_info->actual_source_type = + network::mojom::ServiceWorkerRouterSourceType::kFetchEvent; + } else { + route_info->actual_source_type = route_info->matched_source_type; + } + } + StartResponse(std::move(response), std::move(version), std::move(body_as_stream)); } @@ -1014,6 +1051,26 @@ body_as_blob_.reset(); } +void ServiceWorkerMainResourceLoader::SetCommitResponsibility( + FetchResponseFrom fetch_response_from) { + // Set the actual source type used in Static Routing API when + // `race-network-and-fetch` is used. Determine this by checking the + // commit responsibility. If it's not the service worker, the network + // has won. + // This check is conducted here since in the case of `knetwork`, it does + // not call `DidDispatchFetchEvent`, where we set the `actual_source_type` + // for the other sources, and the `response_head_` is already passed on. + if (response_head_ && response_head_->service_worker_router_info && + response_head_->service_worker_router_info->matched_source_type && + *response_head_->service_worker_router_info->matched_source_type == + network::mojom::ServiceWorkerRouterSourceType::kRace && + fetch_response_from == FetchResponseFrom::kWithoutServiceWorker) { + response_head_->service_worker_router_info->actual_source_type = + network::mojom::ServiceWorkerRouterSourceType::kNetwork; + } + ServiceWorkerResourceLoader::SetCommitResponsibility(fetch_response_from); +} + void ServiceWorkerMainResourceLoader::OnConnectionClosed() { TRACE_EVENT_WITH_FLOW0( "ServiceWorker", "ServiceWorkerMainResourceLoader::OnConnectionClosed", @@ -1041,21 +1098,51 @@ delete this; } +network::mojom::ServiceWorkerStatus +ServiceWorkerMainResourceLoader::ConvertToServiceWorkerStatus( + blink::EmbeddedWorkerStatus embedded_status, + bool is_warming_up, + bool is_warmed_up) { + network::mojom::ServiceWorkerStatus status; + switch (embedded_status) { + case blink::EmbeddedWorkerStatus::kRunning: + if (is_warming_up) { + status = network::mojom::ServiceWorkerStatus::kWarmingUp; + } else if (is_warmed_up) { + status = network::mojom::ServiceWorkerStatus::kWarmedUp; + } else { + status = network::mojom::ServiceWorkerStatus::kRunning; + } + break; + case blink::EmbeddedWorkerStatus::kStarting: + status = network::mojom::ServiceWorkerStatus::kStarting; + break; + case blink::EmbeddedWorkerStatus::kStopping: + status = network::mojom::ServiceWorkerStatus::kStopping; + break; + case blink::EmbeddedWorkerStatus::kStopped: + status = network::mojom::ServiceWorkerStatus::kStopped; + break; + } + + return status; +} + std::string ServiceWorkerMainResourceLoader::GetInitialServiceWorkerStatusString() { CHECK(initial_service_worker_status_); switch (*initial_service_worker_status_) { - case InitialServiceWorkerStatus::kRunning: + case network::mojom::ServiceWorkerStatus::kRunning: return "RUNNING"; - case InitialServiceWorkerStatus::kStarting: + case network::mojom::ServiceWorkerStatus::kStarting: return "STARTING"; - case InitialServiceWorkerStatus::kStopping: + case network::mojom::ServiceWorkerStatus::kStopping: return "STOPPING"; - case InitialServiceWorkerStatus::kStopped: + case network::mojom::ServiceWorkerStatus::kStopped: return "STOPPED"; - case InitialServiceWorkerStatus::kWarmingUp: + case network::mojom::ServiceWorkerStatus::kWarmingUp: return "WARMING_UP"; - case InitialServiceWorkerStatus::kWarmedUp: + case network::mojom::ServiceWorkerStatus::kWarmedUp: return "WARMED_UP"; } }
diff --git a/content/browser/service_worker/service_worker_main_resource_loader.h b/content/browser/service_worker/service_worker_main_resource_loader.h index c7f1cf8..8a6deece 100644 --- a/content/browser/service_worker/service_worker_main_resource_loader.h +++ b/content/browser/service_worker/service_worker_main_resource_loader.h
@@ -25,6 +25,8 @@ #include "mojo/public/cpp/bindings/remote.h" #include "mojo/public/cpp/system/data_pipe.h" #include "net/url_request/redirect_info.h" +#include "services/network/public/mojom/network_interface_change_listener.mojom.h" +#include "services/network/public/mojom/service_worker_router_info.mojom-shared.h" #include "services/network/public/mojom/url_loader.mojom.h" #include "third_party/blink/public/common/service_worker/embedded_worker_status.h" #include "third_party/blink/public/common/service_worker/service_worker_router_rule.h" @@ -178,9 +180,15 @@ void OnBlobReadingComplete(int net_error); + void SetCommitResponsibility(FetchResponseFrom fetch_response_from) override; + void OnConnectionClosed(); void DeleteIfNeeded(); + network::mojom::ServiceWorkerStatus ConvertToServiceWorkerStatus( + blink::EmbeddedWorkerStatus embedded_status, + bool is_warming_up, + bool is_warmed_up); std::string GetInitialServiceWorkerStatusString(); std::string GetFrameTreeNodeTypeString(); bool IsEligibleForRecordingTimingMetrics(); @@ -275,18 +283,8 @@ Status status_ = Status::kNotStarted; - // These values are persisted to logs. Entries should not be renumbered and - // numeric values should never be reused. - enum class InitialServiceWorkerStatus { - kRunning = 0, - kStarting = 1, - kStopping = 2, - kStopped = 3, - kWarmingUp = 4, - kWarmedUp = 5, - kMaxValue = kWarmedUp, - }; - std::optional<InitialServiceWorkerStatus> initial_service_worker_status_; + std::optional<network::mojom::ServiceWorkerStatus> + initial_service_worker_status_; const bool is_browser_startup_completed_; enum class FrameTreeNodeType { kOutermostMainFrame = 0,
diff --git a/content/common/service_worker/service_worker_resource_loader.h b/content/common/service_worker/service_worker_resource_loader.h index 5a15dd2..6bf46328 100644 --- a/content/common/service_worker/service_worker_resource_loader.h +++ b/content/common/service_worker/service_worker_resource_loader.h
@@ -76,7 +76,7 @@ void RecordFetchResponseFrom(); FetchResponseFrom commit_responsibility() { return commit_responsibility_; } - void SetCommitResponsibility(FetchResponseFrom fetch_response_from); + virtual void SetCommitResponsibility(FetchResponseFrom fetch_response_from); DispatchedPreloadType dispatched_preload_type() { return dispatched_preload_type_;
diff --git a/content/test/data/service_worker/static_router.js b/content/test/data/service_worker/static_router.js index cf28c86..fcf9f488 100644 --- a/content/test/data/service_worker/static_router.js +++ b/content/test/data/service_worker/static_router.js
@@ -49,6 +49,11 @@ not: {not: {urlPattern: "/service_worker/not_not_match"}} }, source: "network" + }, { + condition: { + urlPattern: "/service_worker/fetch_event_rule" + }, + source: "fetch-event" }]); caches.open("test").then((c) => { const headers = new Headers();
diff --git a/content/test/gpu/gpu_tests/test_expectations/expected_color_expectations.txt b/content/test/gpu/gpu_tests/test_expectations/expected_color_expectations.txt index 3778a8a..fd2c3ad 100644 --- a/content/test/gpu/gpu_tests/test_expectations/expected_color_expectations.txt +++ b/content/test/gpu/gpu_tests/test_expectations/expected_color_expectations.txt
@@ -123,7 +123,6 @@ # Gardener 2024-03-18 crbug.com/330132405 [ fuchsia fuchsia-board-qemu-x64 ] ExpectedColor_MediaRecorderFrom2DCanvas [ Failure ] -crbug.com/40935289 [ clang-coverage fuchsia web-engine-shell ] ExpectedColor_MediaRecorderFromVideoElementWithOoprCanvasDisabled [ Failure ] # Gardener 2024-04-29 - page reported failure crbug.com/40877266 [ win angle-d3d11 graphite-enabled passthrough release ] ExpectedColor_MediaRecorderFromVideoElementWithOoprCanvasDisabled [ Failure ]
diff --git a/content/test/gpu/gpu_tests/test_expectations/webgl_conformance_expectations.txt b/content/test/gpu/gpu_tests/test_expectations/webgl_conformance_expectations.txt index 3cd8d26..5c0b46e 100644 --- a/content/test/gpu/gpu_tests/test_expectations/webgl_conformance_expectations.txt +++ b/content/test/gpu/gpu_tests/test_expectations/webgl_conformance_expectations.txt
@@ -652,8 +652,8 @@ crbug.com/1288603 [ android android-pixel-6 passthrough angle-opengles ] conformance/extensions/angle-instanced-arrays-out-of-bounds.html [ Failure ] crbug.com/1357064 [ android android-pixel-6 no-passthrough ] conformance/rendering/blending.html [ Failure ] -crbug.com/1495573 [ android-pixel-6 arm passthrough ] conformance/extensions/oes-texture-half-float-with-image.html [ RetryOnFailure ] -crbug.com/1495573 [ android-pixel-6 arm passthrough ] conformance/extensions/oes-vertex-array-object.html [ RetryOnFailure ] +crbug.com/1495573 [ android-pixel-6 arm graphite-disabled passthrough renderer-skia-vulkan ] conformance/extensions/oes-texture-half-float-with-image.html [ RetryOnFailure ] +crbug.com/1495573 [ android-pixel-6 arm graphite-disabled passthrough renderer-skia-vulkan ] conformance/extensions/oes-vertex-array-object.html [ RetryOnFailure ] ## Misc failures ##
diff --git a/docs/website b/docs/website index fea62e9..fdf176d 160000 --- a/docs/website +++ b/docs/website
@@ -1 +1 @@ -Subproject commit fea62e99e8250d5596ecbb806298b2e2fec4a6de +Subproject commit fdf176db7c68ede4eadb04ee288ecbf0352626eb
diff --git a/infra/config/generated/builders/ci/linux-gcc-rel/gn-args.json b/infra/config/generated/builders/ci/linux-gcc-rel/gn-args.json index 4b0544b..d87f75bf9 100644 --- a/infra/config/generated/builders/ci/linux-gcc-rel/gn-args.json +++ b/infra/config/generated/builders/ci/linux-gcc-rel/gn-args.json
@@ -4,6 +4,7 @@ "is_clang": false, "is_component_build": false, "is_debug": false, - "symbol_level": 1 + "symbol_level": 1, + "use_siso": true } } \ No newline at end of file
diff --git a/infra/config/generated/builders/ci/linux-gcc-rel/properties.json b/infra/config/generated/builders/ci/linux-gcc-rel/properties.json index 5ef4a912f..483aa47 100644 --- a/infra/config/generated/builders/ci/linux-gcc-rel/properties.json +++ b/infra/config/generated/builders/ci/linux-gcc-rel/properties.json
@@ -47,6 +47,22 @@ ] } }, + "$build/reclient": { + "instance": "rbe-chromium-trusted", + "jobs": 500, + "metrics_project": "chromium-reclient-metrics", + "scandeps_server": true + }, + "$build/siso": { + "configs": [ + "builder" + ], + "enable_cloud_profiler": true, + "enable_cloud_trace": true, + "experiments": [], + "project": "rbe-chromium-trusted", + "remote_jobs": 500 + }, "$recipe_engine/resultdb/test_presentation": { "column_keys": [], "grouping_keys": [
diff --git a/infra/config/generated/builders/ci/linux-gcc-rel/shadow-properties.json b/infra/config/generated/builders/ci/linux-gcc-rel/shadow-properties.json new file mode 100644 index 0000000..a3e8654 --- /dev/null +++ b/infra/config/generated/builders/ci/linux-gcc-rel/shadow-properties.json
@@ -0,0 +1,18 @@ +{ + "$build/reclient": { + "instance": "rbe-chromium-untrusted", + "jobs": 500, + "metrics_project": "chromium-reclient-metrics", + "scandeps_server": true + }, + "$build/siso": { + "configs": [ + "builder" + ], + "enable_cloud_profiler": true, + "enable_cloud_trace": true, + "experiments": [], + "project": "rbe-chromium-untrusted", + "remote_jobs": 500 + } +} \ No newline at end of file
diff --git a/infra/config/generated/luci/cr-buildbucket.cfg b/infra/config/generated/luci/cr-buildbucket.cfg index 45eb576..2172828 100644 --- a/infra/config/generated/luci/cr-buildbucket.cfg +++ b/infra/config/generated/luci/cr-buildbucket.cfg
@@ -46638,6 +46638,7 @@ ' },' ' "$bootstrap/properties": {' ' "properties_file": "infra/config/generated/builders/ci/linux-gcc-rel/properties.json",' + ' "shadow_properties_file": "infra/config/generated/builders/ci/linux-gcc-rel/shadow-properties.json",' ' "top_level_project": {' ' "ref": "refs/heads/main",' ' "repo": {' @@ -46696,7 +46697,7 @@ use_invocation_timestamp: true } } - description_html: "This builder is mirrored by any of the following try builders:<br/><ul><li><a href=\"https://ci.chromium.org/p/chromium/builders/try/linux-gcc-rel\">linux-gcc-rel</a></li></ul>" + description_html: "This builder builds only empty_main target to ensure GN config works with is_clang=false.<br/>This builder is mirrored by any of the following try builders:<br/><ul><li><a href=\"https://ci.chromium.org/p/chromium/builders/try/linux-gcc-rel\">linux-gcc-rel</a></li></ul>" shadow_builder_adjustments { service_account: "chromium-try-builder@chops-service-accounts.iam.gserviceaccount.com" pool: "luci.chromium.try"
diff --git a/infra/config/generated/testing/variants.pyl b/infra/config/generated/testing/variants.pyl index 96cdf35b..216c5c4 100644 --- a/infra/config/generated/testing/variants.pyl +++ b/infra/config/generated/testing/variants.pyl
@@ -267,16 +267,16 @@ }, 'LACROS_VERSION_SKEW_CANARY': { 'identifier': 'Lacros version skew testing ash canary', - 'description': 'Run with ash-chrome version 126.0.6463.0', + 'description': 'Run with ash-chrome version 126.0.6464.0', 'args': [ - '--ash-chrome-path-override=../../lacros_version_skew_tests_v126.0.6463.0/test_ash_chrome', + '--ash-chrome-path-override=../../lacros_version_skew_tests_v126.0.6464.0/test_ash_chrome', ], 'swarming': { 'cipd_packages': [ { 'cipd_package': 'chromium/testing/linux-ash-chromium/x86_64/ash.zip', - 'location': 'lacros_version_skew_tests_v126.0.6463.0', - 'revision': 'version:126.0.6463.0', + 'location': 'lacros_version_skew_tests_v126.0.6464.0', + 'revision': 'version:126.0.6464.0', }, ], },
diff --git a/infra/config/subprojects/chromium/ci/chromium.linux.star b/infra/config/subprojects/chromium/ci/chromium.linux.star index fa74743..23b335e 100644 --- a/infra/config/subprojects/chromium/ci/chromium.linux.star +++ b/infra/config/subprojects/chromium/ci/chromium.linux.star
@@ -636,6 +636,7 @@ ci.builder( name = "linux-gcc-rel", + description_html = "This builder builds only empty_main target to ensure GN config works with is_clang=false.", builder_spec = builder_config.builder_spec( gclient_config = builder_config.gclient_config( config = "chromium", @@ -667,7 +668,6 @@ short_name = "gcc", ), contact_team_email = "build@chromium.org", - reclient_instance = None, ) ci.builder(
diff --git a/infra/config/targets/lacros-version-skew-variants.json b/infra/config/targets/lacros-version-skew-variants.json index 60c0e1e..a77ed4c 100644 --- a/infra/config/targets/lacros-version-skew-variants.json +++ b/infra/config/targets/lacros-version-skew-variants.json
@@ -1,16 +1,16 @@ { "LACROS_VERSION_SKEW_CANARY": { "args": [ - "--ash-chrome-path-override=../../lacros_version_skew_tests_v126.0.6463.0/test_ash_chrome" + "--ash-chrome-path-override=../../lacros_version_skew_tests_v126.0.6464.0/test_ash_chrome" ], - "description": "Run with ash-chrome version 126.0.6463.0", + "description": "Run with ash-chrome version 126.0.6464.0", "identifier": "Lacros version skew testing ash canary", "swarming": { "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v126.0.6463.0", - "revision": "version:126.0.6463.0" + "location": "lacros_version_skew_tests_v126.0.6464.0", + "revision": "version:126.0.6464.0" } ] }
diff --git a/internal b/internal index 5b33d16..6b8f062 160000 --- a/internal +++ b/internal
@@ -1 +1 @@ -Subproject commit 5b33d161ee383f02cb283692396eda2c1133ed81 +Subproject commit 6b8f06285faa0d9e7e9dbc8b30f6fe8f2c73df36
diff --git a/ios/chrome/browser/flags/about_flags.mm b/ios/chrome/browser/flags/about_flags.mm index 3dcb190..4a498b3 100644 --- a/ios/chrome/browser/flags/about_flags.mm +++ b/ios/chrome/browser/flags/about_flags.mm
@@ -252,6 +252,15 @@ const FeatureEntry::FeatureParam kContentPushNotificationsEnabledProvisionalBypass[] = { {kContentPushNotificationsExperimentType, "4"}}; +const FeatureEntry::FeatureParam + kContentPushNotificationsPromoRegistrationOnly[] = { + {kContentPushNotificationsExperimentType, "5"}}; +const FeatureEntry::FeatureParam + kContentPushNotificationsProvisionalRegistrationOnly[] = { + {kContentPushNotificationsExperimentType, "6"}}; +const FeatureEntry::FeatureParam + kContentPushNotificationsSetUpListRegistrationOnly[] = { + {kContentPushNotificationsExperimentType, "7"}}; const FeatureEntry::FeatureVariation kContentPushNotificationsVariations[] = { {"Promo", kContentPushNotificationsEnabledPromo, @@ -262,7 +271,15 @@ std::size(kContentPushNotificationsEnabledProvisional), nullptr}, {"Provisional Ignore Conditions", kContentPushNotificationsEnabledProvisionalBypass, - std::size(kContentPushNotificationsEnabledProvisionalBypass), nullptr}}; + std::size(kContentPushNotificationsEnabledProvisionalBypass), nullptr}, + {"Promo Registeration Only", kContentPushNotificationsPromoRegistrationOnly, + std::size(kContentPushNotificationsPromoRegistrationOnly), nullptr}, + {"Provisional Notification Registeration Only", + kContentPushNotificationsProvisionalRegistrationOnly, + std::size(kContentPushNotificationsProvisionalRegistrationOnly), nullptr}, + {"Set up list Registeration Only", + kContentPushNotificationsSetUpListRegistrationOnly, + std::size(kContentPushNotificationsSetUpListRegistrationOnly), nullptr}}; const FeatureEntry::FeatureParam kFeedHeaderSettingDisabledStickyHeader[] = { {kDisableStickyHeaderForFollowingFeed, "true"}};
diff --git a/ios/chrome/browser/shared/public/features/features.h b/ios/chrome/browser/shared/public/features/features.h index fb3b9938..f559a7b 100644 --- a/ios/chrome/browser/shared/public/features/features.h +++ b/ios/chrome/browser/shared/public/features/features.h
@@ -504,6 +504,18 @@ // and the time based conditions should be ignored. bool IsContentPushNotificationsProvisionalBypass(); +// YES when the Content Push Notifications Promo is registered with no UI +// change. +bool IsContentPushNotificationsPromoRegistrationOnly(); + +// YES when the Content Push Notifications Provisional is registered with no UI +// change. +bool IsContentPushNotificationsProvisionalRegistrationOnly(); + +// YES when the Content Push Notifications Set Up List is registered with no UI +// change. +bool IsContentPushNotificationsSetUpListRegistrationOnly(); + // Returns true when the IOSLargeFakebox feature is enabled. bool IsIOSLargeFakeboxEnabled();
diff --git a/ios/chrome/browser/shared/public/features/features.mm b/ios/chrome/browser/shared/public/features/features.mm index ec3e0b448..45255ab 100644 --- a/ios/chrome/browser/shared/public/features/features.mm +++ b/ios/chrome/browser/shared/public/features/features.mm
@@ -647,6 +647,21 @@ NotificationsExperimentTypeProvisionalBypass); } +bool IsContentPushNotificationsPromoRegistrationOnly() { + return (ContentNotificationsExperimentTypeEnabled() == + NotificationsExperimentTypePromoRegistrationOnly); +} + +bool IsContentPushNotificationsProvisionalRegistrationOnly() { + return (ContentNotificationsExperimentTypeEnabled() == + NotificationsExperimentTypeProvisionalRegistrationOnly); +} + +bool IsContentPushNotificationsSetUpListRegistrationOnly() { + return (ContentNotificationsExperimentTypeEnabled() == + NotificationsExperimentTypeSetUpListsRegistrationOnly); +} + bool IsIOSLargeFakeboxEnabled() { return base::FeatureList::IsEnabled(kIOSLargeFakebox); }
diff --git a/ios/chrome/browser/ui/autofill/autofill_profile_edit_mediator.mm b/ios/chrome/browser/ui/autofill/autofill_profile_edit_mediator.mm index 744b35d..a735914 100644 --- a/ios/chrome/browser/ui/autofill/autofill_profile_edit_mediator.mm +++ b/ios/chrome/browser/ui/autofill/autofill_profile_edit_mediator.mm
@@ -235,6 +235,8 @@ autofill::FieldType serverFieldType = [self typeNameToFieldType:autofillFieldType]; return (serverFieldType == autofill::ADDRESS_HOME_LINE1 && _line1Required) || + (serverFieldType == autofill::ADDRESS_HOME_STREET_ADDRESS && + _line1Required) || (serverFieldType == autofill::ADDRESS_HOME_CITY && _cityRequired) || (serverFieldType == autofill::ADDRESS_HOME_STATE && _stateRequired) || (serverFieldType == autofill::ADDRESS_HOME_ZIP && _zipRequired);
diff --git a/ios/chrome/browser/ui/autofill/autofill_profile_edit_table_view_controller.mm b/ios/chrome/browser/ui/autofill/autofill_profile_edit_table_view_controller.mm index e7c63125..e6921136 100644 --- a/ios/chrome/browser/ui/autofill/autofill_profile_edit_table_view_controller.mm +++ b/ios/chrome/browser/ui/autofill/autofill_profile_edit_table_view_controller.mm
@@ -111,12 +111,14 @@ - (void)updateProfileData { if (_dynamicallyLoadInputFieldsEnabled) { - [self updateProfileDataForSection: - AutofillProfileDetailsSectionIdentifierName]; - [self updateProfileDataForSection: - AutofillProfileDetailsSectionIdentifierAddress]; - [self updateProfileDataForSection: - AutofillProfileDetailsSectionIdentifierPhoneEmail]; + const std::array<AutofillProfileDetailsSectionIdentifier, 3> allSections = { + AutofillProfileDetailsSectionIdentifierName, + AutofillProfileDetailsSectionIdentifierAddress, + AutofillProfileDetailsSectionIdentifierPhoneEmail}; + + for (const AutofillProfileDetailsSectionIdentifier section : allSections) { + [self updateProfileDataForSection:section]; + } } else { [self updateProfileDataForSection: AutofillProfileDetailsSectionIdentifierFields]; @@ -371,15 +373,15 @@ - (void)tableViewItemDidChange:(TableViewTextEditItem*)tableViewItem { if ((self.accountProfile || self.migrationPrompt || _moveToAccountFromSettings)) { - [self computeErrorIfRequiredTextField:base::apple::ObjCCastStrict< - AutofillProfileEditItem>( - tableViewItem)]; - if (_settingsView) { - [self updateDoneButtonStatus]; - } else { - [self updateSaveButtonStatus]; - } + AutofillProfileEditItem* profileItem = + base::apple::ObjCCastStrict<AutofillProfileEditItem>(tableViewItem); + tableViewItem.hasValidText = [_delegate + fieldContainsValidValue:profileItem.autofillFieldType + hasEmptyValue:(profileItem.textFieldValue.length == 0) + moveToAccountFromSettings:_moveToAccountFromSettings]; + [self validateFieldsAndChangeButtonStatus]; } + [_controller reconfigureCellsForItems:@[ tableViewItem ]]; } @@ -439,7 +441,6 @@ // Returns the error message item as a footer. - (TableViewAttributedStringHeaderFooterItem*)errorMessageItem { - CHECK(_settingsView); TableViewAttributedStringHeaderFooterItem* item = [[TableViewAttributedStringHeaderFooterItem alloc] initWithType:AutofillProfileDetailsItemTypeError]; @@ -589,18 +590,9 @@ #pragma mark - Private -// Computes whether the `profileItem` is a required field and empty. -- (void)computeErrorIfRequiredTextField:(AutofillProfileEditItem*)profileItem { - profileItem.hasValidText = [_delegate - fieldContainsValidValue:profileItem.autofillFieldType - hasEmptyValue:(profileItem.textFieldValue.length == 0) - moveToAccountFromSettings:_moveToAccountFromSettings]; -} - // Removes the given section if it exists. - (void)removeSectionWithIdentifier:(NSInteger)sectionIdentifier withRowAnimation:(UITableViewRowAnimation)animation { - CHECK(_settingsView); TableViewModel* model = _controller.tableViewModel; if ([model hasSectionForSectionIdentifier:sectionIdentifier]) { NSInteger section = [model sectionForSectionIdentifier:sectionIdentifier]; @@ -617,7 +609,6 @@ addSection: (AutofillProfileDetailsSectionIdentifier) addSection { - CHECK(_settingsView); TableViewModel* model = _controller.tableViewModel; __weak AutofillProfileEditTableViewController* weakSelf = self; [_controller @@ -655,44 +646,44 @@ completion:nil]; } -// Updates the Done button status based on the required fields that are empty -// and shows/removes the error footer if required. -- (void)updateDoneButtonStatus { - CHECK(_settingsView); +// Responsible for the showing the error if a required field does not have a +// value, or just updating the error message if multiple required fields have +// missing values or just removing the error if all the requirements are met. +// Also, updates the button status if the error is shown. +- (void)validateFieldsAndChangeButtonStatus { BOOL shouldShowError = ([_delegate requiredFieldsWithEmptyValuesCount] > 0); - _controller.navigationItem.rightBarButtonItem.enabled = !shouldShowError; - if (shouldShowError != _errorSectionPresented) { - AutofillProfileDetailsSectionIdentifier addSection = - shouldShowError ? AutofillProfileDetailsSectionIdentifierErrorFooter - : AutofillProfileDetailsSectionIdentifierFooter; - AutofillProfileDetailsSectionIdentifier removeSection = - shouldShowError ? AutofillProfileDetailsSectionIdentifierFooter - : AutofillProfileDetailsSectionIdentifierErrorFooter; - [self changeFooterStatusToRemoveSection:removeSection - addSection:addSection]; - _errorSectionPresented = shouldShowError; - } else if (shouldShowError && [self shouldChangeErrorMessage]) { - [self - changeFooterStatusToRemoveSection: - AutofillProfileDetailsSectionIdentifierErrorFooter - addSection: - AutofillProfileDetailsSectionIdentifierErrorFooter]; - } -} -// Updates the Save/Update button status based on the required fields that are -// empty. -- (void)updateSaveButtonStatus { - CHECK(!_settingsView); - BOOL shouldShowError = ([_delegate requiredFieldsWithEmptyValuesCount] > 0); - _modalSaveUpdateButton.enabled = !shouldShowError; - [_controller reconfigureCellsForItems:@[ _modalSaveUpdateButton ]]; + if (_settingsView || _dynamicallyLoadInputFieldsEnabled) { + if (shouldShowError != _errorSectionPresented) { + AutofillProfileDetailsSectionIdentifier addSection = + shouldShowError ? AutofillProfileDetailsSectionIdentifierErrorFooter + : AutofillProfileDetailsSectionIdentifierFooter; + AutofillProfileDetailsSectionIdentifier removeSection = + shouldShowError ? AutofillProfileDetailsSectionIdentifierFooter + : AutofillProfileDetailsSectionIdentifierErrorFooter; + [self changeFooterStatusToRemoveSection:removeSection + addSection:addSection]; + _errorSectionPresented = shouldShowError; + } else if (shouldShowError && [self shouldChangeErrorMessage]) { + [self + changeFooterStatusToRemoveSection: + AutofillProfileDetailsSectionIdentifierErrorFooter + addSection: + AutofillProfileDetailsSectionIdentifierErrorFooter]; + } + } + + if (_settingsView) { + _controller.navigationItem.rightBarButtonItem.enabled = !shouldShowError; + } else { + _modalSaveUpdateButton.enabled = !shouldShowError; + [_controller reconfigureCellsForItems:@[ _modalSaveUpdateButton ]]; + } } // Returns YES, if the error message needs to be changed. This happens when // there are multiple required fields that become empty. - (BOOL)shouldChangeErrorMessage { - CHECK(_settingsView); TableViewHeaderFooterItem* currentFooter = [_controller.tableViewModel footerForSectionWithIdentifier: AutofillProfileDetailsSectionIdentifierErrorFooter]; @@ -722,7 +713,6 @@ // Returns the error message combined with footer. - (NSAttributedString*)errorAndFooterMessage { CHECK([_delegate requiredFieldsWithEmptyValuesCount] > 0); - CHECK(_settingsView); NSString* error = l10n_util::GetPluralNSStringF( IDS_IOS_SETTINGS_EDIT_AUTOFILL_ADDRESS_REQUIREMENT_ERROR, [_delegate requiredFieldsWithEmptyValuesCount]); @@ -782,20 +772,18 @@ // No requirement checks for local profiles. if (self.accountProfile || self.migrationPrompt || _moveToAccountFromSettings) { - [self - computeErrorIfRequiredTextField:base::apple::ObjCCastStrict< - AutofillProfileEditItem>(item)]; + AutofillProfileEditItem* profileItem = + base::apple::ObjCCastStrict<AutofillProfileEditItem>(item); + profileItem.hasValidText = [_delegate + fieldContainsValidValue:profileItem.autofillFieldType + hasEmptyValue:(profileItem.textFieldValue.length == 0) + moveToAccountFromSettings:_moveToAccountFromSettings]; } } } + [self validateFieldsAndChangeButtonStatus]; [self reconfigureCells]; - - if (_settingsView) { - [self updateDoneButtonStatus]; - } else { - [self updateSaveButtonStatus]; - } } // Returns the currently selected country value.
diff --git a/ios/chrome/browser/ui/ntp/feed_top_section/notifications_promo_view_constants.h b/ios/chrome/browser/ui/ntp/feed_top_section/notifications_promo_view_constants.h index ec3ddd58..3d95054 100644 --- a/ios/chrome/browser/ui/ntp/feed_top_section/notifications_promo_view_constants.h +++ b/ios/chrome/browser/ui/ntp/feed_top_section/notifications_promo_view_constants.h
@@ -43,6 +43,9 @@ NotificationsExperimentTypeSetUpListsEnabled = 2, NotificationsExperimentTypeProvisional = 3, NotificationsExperimentTypeProvisionalBypass = 4, + NotificationsExperimentTypePromoRegistrationOnly = 5, + NotificationsExperimentTypeProvisionalRegistrationOnly = 6, + NotificationsExperimentTypeSetUpListsRegistrationOnly = 7, }; typedef NS_ENUM(NSInteger, NotificationsPromoButtonType) {
diff --git a/ios/chrome/browser/ui/settings/notifications/content_notifications/BUILD.gn b/ios/chrome/browser/ui/settings/notifications/content_notifications/BUILD.gn index 7f68226..1590c9b6 100644 --- a/ios/chrome/browser/ui/settings/notifications/content_notifications/BUILD.gn +++ b/ios/chrome/browser/ui/settings/notifications/content_notifications/BUILD.gn
@@ -15,6 +15,9 @@ "//components/prefs", "//ios/chrome/app/strings", "//ios/chrome/browser/commerce/model:shopping_service", + "//ios/chrome/browser/content_notification/model:content_notification_nau_configuration", + "//ios/chrome/browser/content_notification/model:content_notification_service", + "//ios/chrome/browser/content_notification/model:content_notification_service_factory", "//ios/chrome/browser/push_notification/model:browser_state_service", "//ios/chrome/browser/push_notification/model:browser_state_service_factory", "//ios/chrome/browser/push_notification/model:push_notification_client",
diff --git a/ios/chrome/browser/ui/settings/notifications/content_notifications/content_notifications_coordinator.mm b/ios/chrome/browser/ui/settings/notifications/content_notifications/content_notifications_coordinator.mm index a3a3b0d7..77215ee 100644 --- a/ios/chrome/browser/ui/settings/notifications/content_notifications/content_notifications_coordinator.mm +++ b/ios/chrome/browser/ui/settings/notifications/content_notifications/content_notifications_coordinator.mm
@@ -8,6 +8,8 @@ #import "base/check.h" #import "base/check_op.h" #import "base/strings/sys_string_conversions.h" +#import "ios/chrome/browser/content_notification/model/content_notification_service.h" +#import "ios/chrome/browser/content_notification/model/content_notification_service_factory.h" #import "ios/chrome/browser/push_notification/model/push_notification_client_id.h" #import "ios/chrome/browser/shared/model/browser/browser.h" #import "ios/chrome/browser/shared/model/browser_state/chrome_browser_state.h" @@ -66,6 +68,10 @@ self.mediator = [[ContentNotificationsMediator alloc] initWithPrefService:prefService gaiaID:gaiaID]; + ContentNotificationService* contentNotificationService = + ContentNotificationServiceFactory::GetForBrowserState( + self.browser->GetBrowserState()); + self.mediator.contentNotificationService = contentNotificationService; self.mediator.consumer = self.viewController; self.mediator.presenter = self; self.viewController.modelDelegate = self.mediator;
diff --git a/ios/chrome/browser/ui/settings/notifications/content_notifications/content_notifications_mediator.h b/ios/chrome/browser/ui/settings/notifications/content_notifications/content_notifications_mediator.h index 55507e4f..9ecb134 100644 --- a/ios/chrome/browser/ui/settings/notifications/content_notifications/content_notifications_mediator.h +++ b/ios/chrome/browser/ui/settings/notifications/content_notifications/content_notifications_mediator.h
@@ -13,6 +13,7 @@ class PrefService; enum class PushNotificationClientId; @class TableViewSwitchItem; +class ContentNotificationService; @protocol NotificationsAlertPresenter; @protocol ContentNotificationsConsumer; @@ -34,6 +35,9 @@ // Handler for displaying notification related alerts. @property(nonatomic, weak) id<NotificationsAlertPresenter> presenter; +// The content notifications service object. +@property(nonatomic, assign) ContentNotificationService* contentNotificationService; + // Called after a user disallows notification permissions. - (void)deniedPermissionsForClientIds: (std::vector<PushNotificationClientId>)clientIds;
diff --git a/ios/chrome/browser/ui/settings/notifications/content_notifications/content_notifications_mediator.mm b/ios/chrome/browser/ui/settings/notifications/content_notifications/content_notifications_mediator.mm index 55cf73b..3e1ca9e 100644 --- a/ios/chrome/browser/ui/settings/notifications/content_notifications/content_notifications_mediator.mm +++ b/ios/chrome/browser/ui/settings/notifications/content_notifications/content_notifications_mediator.mm
@@ -8,6 +8,9 @@ #import "base/notreached.h" #import "base/strings/sys_string_conversions.h" #import "components/prefs/pref_service.h" +#import "ios/chrome/browser/content_notification/model/content_notification_nau_configuration.h" +#import "ios/chrome/browser/content_notification/model/content_notification_service.h" +#import "ios/chrome/browser/content_notification/model/content_notification_settings_action.h" #import "ios/chrome/browser/push_notification/model/push_notification_account_context_manager.h" #import "ios/chrome/browser/push_notification/model/push_notification_browser_state_service.h" #import "ios/chrome/browser/push_notification/model/push_notification_browser_state_service_factory.h" @@ -17,6 +20,8 @@ #import "ios/chrome/browser/push_notification/model/push_notification_util.h" #import "ios/chrome/browser/shared/model/application_context/application_context.h" #import "ios/chrome/browser/shared/model/browser/browser.h" +#import "ios/chrome/browser/shared/model/browser_state/chrome_browser_state.h" +#import "ios/chrome/browser/shared/model/browser_state/chrome_browser_state_manager.h" #import "ios/chrome/browser/shared/ui/list_model/list_model.h" #import "ios/chrome/browser/shared/ui/symbols/symbols.h" #import "ios/chrome/browser/shared/ui/table_view/cells/table_view_link_header_footer_item.h" @@ -163,6 +168,9 @@ GetMobileNotificationPermissionStatusForClient( PushNotificationClientId::kContent, _gaiaID); } + [self sendNAUForPreferenceChangeWithClientID:PushNotificationClientId:: + kContent + value:value]; break; } case ItemTypeSportsNotifications: { @@ -175,6 +183,9 @@ GetMobileNotificationPermissionStatusForClient( PushNotificationClientId::kSports, _gaiaID); } + [self sendNAUForPreferenceChangeWithClientID:PushNotificationClientId:: + kSports + value:value]; break; } default: @@ -213,6 +224,39 @@ service->SetPreference(base::SysUTF8ToNSString(_gaiaID), clientID, false); } +// Sends an NAU when any of the settings preferences have been updated.. +- (void)sendNAUForPreferenceChangeWithClientID: + (PushNotificationClientId)clientID + value:(BOOL)value { + ContentNotificationSettingsAction* settingsAction = + [[ContentNotificationSettingsAction alloc] init]; + + switch (clientID) { + case PushNotificationClientId::kContent: + settingsAction.contentNotificationEnabled = + [NSNumber numberWithBool:value]; + break; + case PushNotificationClientId::kSports: + settingsAction.sportsNotificationEnabled = + [NSNumber numberWithBool:value]; + break; + case PushNotificationClientId::kCommerce: + case PushNotificationClientId::kTips: + // This should never be reached. + DCHECK(FALSE); + break; + } + [PushNotificationUtil + getPermissionSettings:^(UNNotificationSettings* settings) { + settingsAction.currentAuthorizationStatus = + settings.authorizationStatus; + ContentNotificationNAUConfiguration* config = + [[ContentNotificationNAUConfiguration alloc] init]; + config.settingsAction = settingsAction; + self.contentNotificationService->SendNAUForConfiguration(config); + }]; +} + // Returns the TableViewSwitchItem for the given `clientId`. - (TableViewSwitchItem*)switchItemForClientId: (PushNotificationClientId)clientId {
diff --git a/ios/chrome/browser/ui/tab_switcher/tab_grid/grid/base_grid_coordinator.mm b/ios/chrome/browser/ui/tab_switcher/tab_grid/grid/base_grid_coordinator.mm index 08a1e6d2..1b5ad9e 100644 --- a/ios/chrome/browser/ui/tab_switcher/tab_grid/grid/base_grid_coordinator.mm +++ b/ios/chrome/browser/ui/tab_switcher/tab_grid/grid/base_grid_coordinator.mm
@@ -167,6 +167,9 @@ #pragma mark - TabGroupsCommands - (void)showTabGroup:(const TabGroup*)tabGroup { + if (_tabGroupCoordinator) { + [self hideTabGroup]; + } [self showTabGroup:tabGroup forTabGridOpening:NO]; } @@ -202,7 +205,7 @@ CHECK(IsTabGroupInGridEnabled()) << "You should not be able to edit a tab group outside the Tab Groups " "experiment."; - CHECK(!_tabGroupCreator) << "There is an atemps to edit a tab group when a " + CHECK(!_tabGroupCreator) << "There is an attempt to edit a tab group when a " "creation process is still running."; CHECK(tabGroup) << "To edit a tab group you should pass a group."; @@ -238,7 +241,7 @@ CHECK(IsTabGroupInGridEnabled()) << "You should not be able to show a tab group UI outside the " "Tab Groups experiment."; - CHECK(!_tabGroupCoordinator) << "There is an atemps to display a tab group " + CHECK(!_tabGroupCoordinator) << "There is an attempt to display a tab group " "when one is already presented."; // TODO(crbug.com/40942154): Replace base view controller by view controller // when the base grid coordinator will have access to the grid view
diff --git a/ios/chrome/browser/ui/tab_switcher/tab_grid/grid/tab_groups/tab_group_view_controller.mm b/ios/chrome/browser/ui/tab_switcher/tab_grid/grid/tab_groups/tab_group_view_controller.mm index 5b969f30..dae6a2c 100644 --- a/ios/chrome/browser/ui/tab_switcher/tab_grid/grid/tab_groups/tab_group_view_controller.mm +++ b/ios/chrome/browser/ui/tab_switcher/tab_grid/grid/tab_groups/tab_group_view_controller.mm
@@ -160,6 +160,7 @@ - (void)viewDidLoad { [super viewDidLoad]; + self.view.accessibilityIdentifier = kTabGroupViewIdentifier; self.view.backgroundColor = UIColor.clearColor; if (!UIAccessibilityIsReduceTransparencyEnabled()) { _blurView = [[UIVisualEffectView alloc] initWithEffect:nil]; @@ -282,6 +283,7 @@ titleLabel.textColor = UIColor.whiteColor; titleLabel.numberOfLines = 1; titleLabel.adjustsFontForContentSizeCategory = YES; + titleLabel.accessibilityIdentifier = kTabGroupViewTitleIdentifier; titleLabel.translatesAutoresizingMaskIntoConstraints = NO; UIFontDescriptor* boldDescriptor = [[UIFontDescriptor preferredFontDescriptorWithTextStyle:UIFontTextStyleHeadline]
diff --git a/ios/chrome/browser/ui/tab_switcher/tab_grid/grid/tab_groups/tab_groups_constants.h b/ios/chrome/browser/ui/tab_switcher/tab_grid/grid/tab_groups/tab_groups_constants.h index b5657251..7c5d446 100644 --- a/ios/chrome/browser/ui/tab_switcher/tab_grid/grid/tab_groups/tab_groups_constants.h +++ b/ios/chrome/browser/ui/tab_switcher/tab_grid/grid/tab_groups/tab_groups_constants.h
@@ -14,6 +14,8 @@ extern NSString* const kCreateTabGroupCancelButtonIdentifier; // Accessibility identifier for the tab group view. +extern NSString* const kTabGroupViewIdentifier; +extern NSString* const kTabGroupViewTitleIdentifier; extern NSString* const kTabGroupNewTabButtonIdentifier; extern NSString* const kTabGroupOverflowMenuButtonIdentifier;
diff --git a/ios/chrome/browser/ui/tab_switcher/tab_grid/grid/tab_groups/tab_groups_constants.mm b/ios/chrome/browser/ui/tab_switcher/tab_grid/grid/tab_groups/tab_groups_constants.mm index 864009c9..ed8201e 100644 --- a/ios/chrome/browser/ui/tab_switcher/tab_grid/grid/tab_groups/tab_groups_constants.mm +++ b/ios/chrome/browser/ui/tab_switcher/tab_grid/grid/tab_groups/tab_groups_constants.mm
@@ -13,6 +13,8 @@ NSString* const kCreateTabGroupCancelButtonIdentifier = @"kCreateTabGroupCancelButtonIdentifier"; +NSString* const kTabGroupViewIdentifier = @"kTabGroupViewIdentifier"; +NSString* const kTabGroupViewTitleIdentifier = @"kTabGroupViewTitleIdentifier"; NSString* const kTabGroupNewTabButtonIdentifier = @"kTabGroupNewTabButtonIdentifier"; NSString* const kTabGroupOverflowMenuButtonIdentifier =
diff --git a/ios/chrome/browser/ui/tab_switcher/tab_grid/grid/tab_groups/tab_groups_egtest.mm b/ios/chrome/browser/ui/tab_switcher/tab_grid/grid/tab_groups/tab_groups_egtest.mm index 119ed27..ca019c6 100644 --- a/ios/chrome/browser/ui/tab_switcher/tab_grid/grid/tab_groups/tab_groups_egtest.mm +++ b/ios/chrome/browser/ui/tab_switcher/tab_grid/grid/tab_groups/tab_groups_egtest.mm
@@ -31,8 +31,11 @@ using chrome_test_util::TabGridEditMenuCloseAllButton; using chrome_test_util::TabGridGroupCellAtIndex; using chrome_test_util::TabGridNewTabButton; +using chrome_test_util::TabGridSearchBar; +using chrome_test_util::TabGridSearchTabsButton; using chrome_test_util::TabGridSelectTabsMenuButton; using chrome_test_util::TabGridUndoCloseAllButton; +using chrome_test_util::WindowWithNumber; using testing::NavigationBarBackButton; namespace { @@ -69,6 +72,18 @@ grey_sufficientlyVisible(), nil); } +// Returns the matcher for the tab group view. +id<GREYMatcher> GroupViewMatcher() { + return grey_allOf(grey_accessibilityID(kTabGroupViewIdentifier), + grey_sufficientlyVisible(), nil); +} + +// Returns the matcher for the title on the Tab Group view. +id<GREYMatcher> GroupViewTitle(NSString* title) { + return grey_allOf(grey_accessibilityID(kTabGroupViewTitleIdentifier), + grey_accessibilityLabel(title), nil); +} + // Returns the matcher for the sub menu button `Add Tab to New Group`. id<GREYMatcher> NewTabGroupButton() { return ContextMenuItemWithAccessibilityLabelId( @@ -93,7 +108,7 @@ IDS_IOS_CONTENT_CONTEXT_DELETEGROUP); } -// Identifer for cell at given `index` in the tab grid. +// Identifier for cell at given `index` in the tab grid. NSString* IdentifierForTabCellAtIndex(unsigned int index) { return [NSString stringWithFormat:@"%@%u", kGridCellIdentifierPrefix, index]; } @@ -591,7 +606,7 @@ } // Tests closing all tabs and groups in grid, and that the closing is reversible -// when presing the undo button. +// when pressing the undo button. - (void)testCloseAllAndUndo { // Create a tab cell with `Tab 1` as its title. [ChromeEarlGrey loadURL:GetQueryTitleURL(self.testServer, kTab1Title)]; @@ -646,4 +661,88 @@ assertWithMatcher:grey_notNil()]; } +// Tests re-opening a group from Search in another window. +- (void)testReopenGroupFromAnotherWindow { + if (![ChromeEarlGrey areMultipleWindowsSupported]) { + EARL_GREY_TEST_SKIPPED(@"Multiple windows can't be opened."); + } + + // Create a first group. + [ChromeEarlGreyUI openTabGrid]; + OpenTabGroupCreationViewUsingLongPressForCellAtIndex(0); + SetTabGroupCreationName(@"First group"); + [[EarlGrey selectElementWithMatcher:CreateTabGroupCreateButtonMatcher()] + performAction:grey_tap()]; + [ChromeEarlGrey + waitForUIElementToDisappearWithMatcher:GroupCreationViewMatcher()]; + + // Create a second group. + [ChromeEarlGrey openNewTab]; + [ChromeEarlGreyUI openTabGrid]; + [[EarlGrey selectElementWithMatcher:chrome_test_util::TabGridCellAtIndex(1)] + performAction:grey_longPress()]; + [[EarlGrey + selectElementWithMatcher:grey_text(l10n_util::GetPluralNSStringF( + IDS_IOS_CONTENT_CONTEXT_ADDTABTOTABGROUP, + 1))] performAction:grey_tap()]; + [[EarlGrey selectElementWithMatcher:NewTabGroupButton()] + performAction:grey_tap()]; + [ChromeEarlGrey + waitForUIElementToAppearWithMatcher:GroupCreationViewMatcher()]; + SetTabGroupCreationName(@"Second group"); + [[EarlGrey selectElementWithMatcher:CreateTabGroupCreateButtonMatcher()] + performAction:grey_tap()]; + [ChromeEarlGrey + waitForUIElementToDisappearWithMatcher:GroupCreationViewMatcher()]; + + // Open a second window. + [ChromeEarlGrey openNewWindow]; + [ChromeEarlGrey waitUntilReadyWindowWithNumber:1]; + [ChromeEarlGrey waitForForegroundWindowCount:2]; + + // Search in the second window for the first group of the first window. + [EarlGrey setRootMatcherForSubsequentInteractions:WindowWithNumber(1)]; + [ChromeEarlGreyUI openTabGrid]; + [[EarlGrey selectElementWithMatcher:TabGridSearchTabsButton()] + performAction:grey_tap()]; + [[EarlGrey selectElementWithMatcher:TabGridSearchBar()] + performAction:grey_replaceText(@"first")]; + + // Tap on it in the second window. + [[EarlGrey selectElementWithMatcher:TabGroupGridCellMatcher(@"First group")] + performAction:grey_tap()]; + + // Verify that it opens in the first window. + [EarlGrey setRootMatcherForSubsequentInteractions:WindowWithNumber(0)]; + [ChromeEarlGrey waitForUIElementToAppearWithMatcher:GroupViewMatcher()]; + [[EarlGrey selectElementWithMatcher:GroupViewTitle(@"First group")] + assertWithMatcher:grey_notNil()]; + + // Tap on it again in the second window. + [EarlGrey setRootMatcherForSubsequentInteractions:WindowWithNumber(1)]; + [[EarlGrey selectElementWithMatcher:TabGroupGridCellMatcher(@"First group")] + performAction:grey_tap()]; + + // Verify that it's still open in the first window. + [EarlGrey setRootMatcherForSubsequentInteractions:WindowWithNumber(0)]; + [ChromeEarlGrey waitForUIElementToAppearWithMatcher:GroupViewMatcher()]; + [[EarlGrey selectElementWithMatcher:GroupViewTitle(@"First group")] + assertWithMatcher:grey_notNil()]; + + // Search in the second window for the second group of the first window. + [EarlGrey setRootMatcherForSubsequentInteractions:WindowWithNumber(1)]; + [[EarlGrey selectElementWithMatcher:TabGridSearchBar()] + performAction:grey_replaceText(@"second")]; + + // Tap on it in the second window. + [[EarlGrey selectElementWithMatcher:TabGroupGridCellMatcher(@"Second group")] + performAction:grey_tap()]; + + // Verify that it opens in the first window. + [EarlGrey setRootMatcherForSubsequentInteractions:WindowWithNumber(0)]; + [ChromeEarlGrey waitForUIElementToAppearWithMatcher:GroupViewMatcher()]; + [[EarlGrey selectElementWithMatcher:GroupViewTitle(@"Second group")] + assertWithMatcher:grey_notNil()]; +} + @end
diff --git a/ios_internal b/ios_internal index c58e60d..9d8a586 160000 --- a/ios_internal +++ b/ios_internal
@@ -1 +1 @@ -Subproject commit c58e60df404af68ac4bcdb0d57ffe061d920a487 +Subproject commit 9d8a586929b508ef781d24be7a70173656952251
diff --git a/net/http/http_network_transaction.cc b/net/http/http_network_transaction.cc index 2ccbf43..9ea4e446 100644 --- a/net/http/http_network_transaction.cc +++ b/net/http/http_network_transaction.cc
@@ -177,14 +177,6 @@ GenerateNetworkErrorLoggingReport(ERR_ABORTED); #endif // BUILDFLAG(ENABLE_REPORTING) - if (quic_protocol_error_retry_delay_) { - base::UmaHistogramTimes( - IsGoogleHostWithAlpnH3(url_.host()) - ? "Net.QuicProtocolErrorRetryDelayH3SupportedGoogleHost.Failure" - : "Net.QuicProtocolErrorRetryDelay.Failure", - *quic_protocol_error_retry_delay_); - } - if (stream_.get()) { // TODO(mbelshe): The stream_ should be able to compute whether or not the // stream should be kept alive. No reason to compute here @@ -225,8 +217,8 @@ request_->extra_headers.GetHeader(HttpRequestHeaders::kUserAgent, &request_user_agent_); request_reporting_upload_depth_ = request_->reporting_upload_depth; -#endif // BUILDFLAG(ENABLE_REPORTING) start_timeticks_ = base::TimeTicks::Now(); +#endif // BUILDFLAG(ENABLE_REPORTING) if (request_->idempotency == IDEMPOTENT || (request_->idempotency == DEFAULT_IDEMPOTENCY && @@ -1452,15 +1444,6 @@ #if BUILDFLAG(ENABLE_REPORTING) GenerateNetworkErrorLoggingReport(result); #endif // BUILDFLAG(ENABLE_REPORTING) - - if (result == OK && quic_protocol_error_retry_delay_) { - base::UmaHistogramTimes( - IsGoogleHostWithAlpnH3(url_.host()) - ? "Net.QuicProtocolErrorRetryDelayH3SupportedGoogleHost.Success" - : "Net.QuicProtocolErrorRetryDelay.Success", - *quic_protocol_error_retry_delay_); - quic_protocol_error_retry_delay_.reset(); - } } // Clear these to avoid leaving around old state. @@ -1813,24 +1796,12 @@ error = OK; break; case RetryReason::kQuicProtocolError: - if (GetResponseHeaders() != nullptr) { + if (HasExceededMaxRetries() || GetResponseHeaders() != nullptr || + !stream_->GetAlternativeService(&retried_alternative_service_)) { // If the response headers have already been received and passed up - // then the request can not be retried. - RecordQuicProtocolErrorMetrics( - QuicProtocolErrorRetryStatus::kNoRetryHeaderReceived); - break; - } - if (!stream_->GetAlternativeService(&retried_alternative_service_)) { - // If there was no alternative service used for this request, then there - // is no alternative service to be disabled. Note: We expect this - // doesn't happen. But records the UMA just in case. - RecordQuicProtocolErrorMetrics( - QuicProtocolErrorRetryStatus::kNoRetryNoAlternativeService); - break; - } - if (HasExceededMaxRetries()) { - RecordQuicProtocolErrorMetrics( - QuicProtocolErrorRetryStatus::kNoRetryExceededMaxRetries); + // then the request can not be retried. Also, if there was no + // alternative service used for this request, then there is no + // alternative service to be disabled. break; } @@ -1839,8 +1810,6 @@ // If the alternative service was marked as broken while the request // was in flight, retry the request which will not use the broken // alternative service. - RecordQuicProtocolErrorMetrics( - QuicProtocolErrorRetryStatus::kRetryAltServiceBroken); net_log_.AddEventWithNetErrorCode( NetLogEventType::HTTP_TRANSACTION_RESTART_AFTER_ERROR, error); retry_attempts_++; @@ -1852,8 +1821,6 @@ // Disable alternative services for this request and retry it. If the // retry succeeds, then the alternative service will be marked as // broken then. - RecordQuicProtocolErrorMetrics( - QuicProtocolErrorRetryStatus::kRetryAltServiceNotBroken); enable_alternative_services_ = false; net_log_.AddEventWithNetErrorCode( NetLogEventType::HTTP_TRANSACTION_RESTART_AFTER_ERROR, error); @@ -1900,8 +1867,8 @@ net_error_details_.quic_connection_error = quic::QUIC_NO_ERROR; #if BUILDFLAG(ENABLE_REPORTING) network_error_logging_report_generated_ = false; -#endif // BUILDFLAG(ENABLE_REPORTING) start_timeticks_ = base::TimeTicks::Now(); +#endif // BUILDFLAG(ENABLE_REPORTING) } void HttpNetworkTransaction::CacheNetErrorDetailsAndResetStream() { @@ -1942,10 +1909,6 @@ ? "Net.NetworkTransactionH3SupportedGoogleHost.RetryReason" : "Net.NetworkTransaction.RetryReason", retry_reason); - if (retry_reason == RetryReason::kQuicProtocolError) { - quic_protocol_error_retry_delay_ = - base::TimeTicks::Now() - start_timeticks_; - } if (stream_.get()) { stream_->Close(true); @@ -1961,8 +1924,8 @@ #if BUILDFLAG(ENABLE_REPORTING) // Reset for new request. network_error_logging_report_generated_ = false; -#endif // BUILDFLAG(ENABLE_REPORTING) start_timeticks_ = base::TimeTicks::Now(); +#endif // BUILDFLAG(ENABLE_REPORTING) ResetStateForRestart(); } @@ -2098,45 +2061,6 @@ return result; } -void HttpNetworkTransaction::RecordQuicProtocolErrorMetrics( - QuicProtocolErrorRetryStatus retry_status) { - std::string histogram = "Net.QuicProtocolError"; - if (IsGoogleHostWithAlpnH3(url_.host())) { - histogram += "H3SupportedGoogleHost"; - } - base::UmaHistogramEnumeration(histogram + ".RetryStatus", retry_status); - - if (!stream_) { - return; - } - std::optional<HttpStream::QuicErrorDetails> error_details = - stream_->GetQuicErrorDetails(); - if (!error_details) { - return; - } - switch (retry_status) { - case QuicProtocolErrorRetryStatus::kNoRetryExceededMaxRetries: - histogram += ".NoRetryExceededMaxRetries"; - break; - case QuicProtocolErrorRetryStatus::kNoRetryHeaderReceived: - histogram += ".NoRetryHeaderReceived"; - break; - case QuicProtocolErrorRetryStatus::kNoRetryNoAlternativeService: - histogram += ".NoRetryNoAlternativeService"; - break; - case QuicProtocolErrorRetryStatus::kRetryAltServiceBroken: - histogram += ".RetryAltServiceBroken"; - break; - case QuicProtocolErrorRetryStatus::kRetryAltServiceNotBroken: - histogram += ".RetryAltServiceNotBroken"; - break; - } - base::UmaHistogramSparse(histogram + ".QuicErrorCode", - error_details->connection_error); - base::UmaHistogramSparse(histogram + ".QuicStreamErrorCode", - error_details->stream_error); -} - // static void HttpNetworkTransaction::SetProxyInfoInResponse( const ProxyInfo& proxy_info,
diff --git a/net/http/http_network_transaction.h b/net/http/http_network_transaction.h index 4eb4f743..9a92bcb 100644 --- a/net/http/http_network_transaction.h +++ b/net/http/http_network_transaction.h
@@ -355,12 +355,6 @@ kMaxValue = kRetryAltServiceNotBroken, }; - void RecordQuicProtocolErrorMetrics( - QuicProtocolErrorRetryStatus retry_status); - - void RecordMetricsIfError(int rv); - void RecordMetrics(int rv); - static void SetProxyInfoInResponse(const ProxyInfo& proxy_info, HttpResponseInfo* response_info); @@ -423,8 +417,8 @@ std::string request_referrer_; std::string request_user_agent_; int request_reporting_upload_depth_ = 0; -#endif base::TimeTicks start_timeticks_; +#endif // The size in bytes of the buffer we use to drain the response body that // we want to throw away. The response body is typically a small error @@ -504,8 +498,6 @@ // Set to true when the server required HTTP/1.1 fallback. bool http_1_1_was_required_ = false; - - std::optional<base::TimeDelta> quic_protocol_error_retry_delay_; }; } // namespace net
diff --git a/net/test/embedded_test_server/http2_connection.cc b/net/test/embedded_test_server/http2_connection.cc index 94b6c58..fadc92b 100644 --- a/net/test/embedded_test_server/http2_connection.cc +++ b/net/test/embedded_test_server/http2_connection.cc
@@ -139,7 +139,8 @@ std::make_unique<DataFrameSource>(connection_, stream_id_); data_frame_ = data_frame.get(); connection_->adapter()->SubmitResponse( - stream_id_, GenerateHeaders(status, headers), std::move(data_frame)); + stream_id_, GenerateHeaders(status, headers), std::move(data_frame), + /*end_stream=*/false); connection_->SendIfNotProcessing(); } @@ -189,7 +190,8 @@ data_frame->AddChunk(contents); data_frame->set_last_frame(true); connection_->adapter()->SubmitResponse( - stream_id_, GenerateHeaders(status, headers), std::move(data_frame)); + stream_id_, GenerateHeaders(status, headers), std::move(data_frame), + /*end_stream=*/false); connection_->SendIfNotProcessing(); } base::WeakPtr<ResponseDelegate> GetWeakPtr() {
diff --git a/net/third_party/quiche/src b/net/third_party/quiche/src index eac20c9..690aed3 160000 --- a/net/third_party/quiche/src +++ b/net/third_party/quiche/src
@@ -1 +1 @@ -Subproject commit eac20c9342bde3695ef61c07395a41c9c4c19cbd +Subproject commit 690aed3796de57c7f846b8f02dcb4569f0b95f07
diff --git a/services/network/public/cpp/devtools_observer_unittest.cc b/services/network/public/cpp/devtools_observer_unittest.cc index ec176a7d..c28d6b03 100644 --- a/services/network/public/cpp/devtools_observer_unittest.cc +++ b/services/network/public/cpp/devtools_observer_unittest.cc
@@ -40,7 +40,9 @@ head.was_fetched_via_spdy = true; head.service_worker_response_source = mojom::FetchResponseSource::kHttpCache; head.service_worker_router_info = mojom::ServiceWorkerRouterInfo::New( - /*rule_id_matched*/ 1, mojom::ServiceWorkerRouterSourceType::kNetwork); + /*rule_id_matched*/ 1, mojom::ServiceWorkerRouterSourceType::kNetwork, + mojom::ServiceWorkerRouterSourceType::kNetwork, 1, + mojom::ServiceWorkerStatus::kRunning); head.ssl_info = net::SSLInfo(); head.remote_endpoint = net::IPEndPoint(net::IPAddress(1, 2, 3, 4), 99);
diff --git a/services/network/public/mojom/service_worker_router_info.mojom b/services/network/public/mojom/service_worker_router_info.mojom index e3ce0600..6f05bea 100644 --- a/services/network/public/mojom/service_worker_router_info.mojom +++ b/services/network/public/mojom/service_worker_router_info.mojom
@@ -18,6 +18,21 @@ kCache = 3, }; +// The initial status of service worker on navigation request. +// These values are persisted to logs. Entries should not be renumbered and +// numeric values should never be reused. +// +// LINT.IfChange(ServiceWorkerStatus) +enum ServiceWorkerStatus { + kRunning = 0, + kStarting = 1, + kStopping = 2, + kStopped = 3, + kWarmingUp = 4, + kWarmedUp = 5, +}; +// LINT.ThenChange(//tools/metrics/histograms/enums.xml:ServiceWorkerStatus) + // Represents information about ServiceWorker Static Routing API, especially, // details of the matched static router rule. struct ServiceWorkerRouterInfo { @@ -28,4 +43,13 @@ // The router source of the matched rule. If there is a matched rule, this // field will be set, otherwise no value will be set. ServiceWorkerRouterSourceType? matched_source_type; + + // The actual router type used. + ServiceWorkerRouterSourceType? actual_source_type; + + // Total number of router rules. + uint64 route_rule_num = 0; + + // The state of the service worker when conducting router evaluation. + ServiceWorkerStatus? evaluation_worker_status; };
diff --git a/services/viz/public/cpp/compositing/mojom_traits_unittest.cc b/services/viz/public/cpp/compositing/mojom_traits_unittest.cc index f50b7f3..e5ed0f75 100644 --- a/services/viz/public/cpp/compositing/mojom_traits_unittest.cc +++ b/services/viz/public/cpp/compositing/mojom_traits_unittest.cc
@@ -1209,7 +1209,9 @@ input.id = id; input.format = format; input.size = size; - input.mailbox_holder = mailbox_holder; + input.set_mailbox(mailbox_holder.mailbox); + input.set_sync_token(mailbox_holder.sync_token); + input.set_texture_target(mailbox_holder.texture_target); input.synchronization_type = sync_type; input.is_software = is_software; input.is_overlay_candidate = is_overlay_candidate; @@ -1221,10 +1223,9 @@ EXPECT_EQ(id, output.id); EXPECT_EQ(format, output.format); EXPECT_EQ(size, output.size); - EXPECT_EQ(mailbox_holder.mailbox, output.mailbox_holder.mailbox); - EXPECT_EQ(mailbox_holder.sync_token, output.mailbox_holder.sync_token); - EXPECT_EQ(mailbox_holder.texture_target, - output.mailbox_holder.texture_target); + EXPECT_EQ(mailbox_holder.mailbox, output.mailbox()); + EXPECT_EQ(mailbox_holder.sync_token, output.sync_token()); + EXPECT_EQ(mailbox_holder.texture_target, output.texture_target()); EXPECT_EQ(sync_type, output.synchronization_type); EXPECT_EQ(is_software, output.is_software); EXPECT_EQ(is_overlay_candidate, output.is_overlay_candidate);
diff --git a/services/viz/public/cpp/compositing/transferable_resource_mojom_traits.cc b/services/viz/public/cpp/compositing/transferable_resource_mojom_traits.cc index 8f51389..38fbc194 100644 --- a/services/viz/public/cpp/compositing/transferable_resource_mojom_traits.cc +++ b/services/viz/public/cpp/compositing/transferable_resource_mojom_traits.cc
@@ -5,7 +5,6 @@ #include "services/viz/public/cpp/compositing/transferable_resource_mojom_traits.h" #include "build/build_config.h" -#include "gpu/ipc/common/mailbox_holder_mojom_traits.h" #include "gpu/ipc/common/mailbox_mojom_traits.h" #include "gpu/ipc/common/sync_token_mojom_traits.h" #include "services/viz/public/cpp/compositing/resource_id_mojom_traits.h" @@ -59,8 +58,10 @@ Read(viz::mojom::TransferableResourceDataView data, viz::TransferableResource* out) { viz::ResourceId id; + gpu::Mailbox mailbox; + gpu::SyncToken sync_token; if (!data.ReadSize(&out->size) || !data.ReadFormat(&out->format) || - !data.ReadMailboxHolder(&out->mailbox_holder) || + !data.ReadMailbox(&mailbox) || !data.ReadSyncToken(&sync_token) || !data.ReadColorSpace(&out->color_space) || !data.ReadHdrMetadata(&out->hdr_metadata) || !data.ReadYcbcrInfo(&out->ycbcr_info) || !data.ReadId(&id) || @@ -69,6 +70,9 @@ } out->id = id; out->is_software = data.is_software(); + out->set_mailbox(mailbox); + out->set_sync_token(sync_token); + out->set_texture_target(data.texture_target()); out->is_overlay_candidate = data.is_overlay_candidate(); out->needs_detiling = data.needs_detiling();
diff --git a/services/viz/public/cpp/compositing/transferable_resource_mojom_traits.h b/services/viz/public/cpp/compositing/transferable_resource_mojom_traits.h index be88713..e2705cf 100644 --- a/services/viz/public/cpp/compositing/transferable_resource_mojom_traits.h +++ b/services/viz/public/cpp/compositing/transferable_resource_mojom_traits.h
@@ -44,9 +44,18 @@ return resource.size; } - static const gpu::MailboxHolder& mailbox_holder( + static const gpu::Mailbox& mailbox( const viz::TransferableResource& resource) { - return resource.mailbox_holder; + return resource.mailbox(); + } + + static const gpu::SyncToken& sync_token( + const viz::TransferableResource& resource) { + return resource.sync_token(); + } + + static uint32_t texture_target(const viz::TransferableResource& resource) { + return resource.texture_target(); } static viz::TransferableResource::SynchronizationType synchronization_type(
diff --git a/services/viz/public/mojom/compositing/transferable_resource.mojom b/services/viz/public/mojom/compositing/transferable_resource.mojom index 7c6611a..f4bb8e4 100644 --- a/services/viz/public/mojom/compositing/transferable_resource.mojom +++ b/services/viz/public/mojom/compositing/transferable_resource.mojom
@@ -4,7 +4,8 @@ module viz.mojom; -import "gpu/ipc/common/mailbox_holder.mojom"; +import "gpu/ipc/common/mailbox.mojom"; +import "gpu/ipc/common/sync_token.mojom"; import "gpu/ipc/common/vulkan_ycbcr_info.mojom"; import "services/viz/public/mojom/compositing/shared_image_format.mojom"; import "services/viz/public/mojom/compositing/resource_id.mojom"; @@ -20,12 +21,20 @@ kReleaseFence, }; -// See components/viz/common/resources/transferable_resource.h. + +// Represents a visual resource (e.g., image, video frame) that can be +// transferred between processes for rendering and compositing within Chromium's +// Viz display system. Encapsulates the resource's data, format, and metadata +// necessary for efficient display and manipulation by the compositor. +// +// See components/viz/common/resources/transferable_resource.h for more details. struct TransferableResource { ResourceId id; SharedImageFormat format; gfx.mojom.Size size; - gpu.mojom.MailboxHolder mailbox_holder; + gpu.mojom.Mailbox mailbox; + gpu.mojom.SyncToken sync_token; + uint32 texture_target; SynchronizationType synchronization_type; bool is_software; bool is_overlay_candidate;
diff --git a/services/webnn/coreml/graph_builder.cc b/services/webnn/coreml/graph_builder.cc index e8296bb..25ccdcb 100644 --- a/services/webnn/coreml/graph_builder.cc +++ b/services/webnn/coreml/graph_builder.cc
@@ -1430,8 +1430,14 @@ GraphBuilder::AddOperationForElementwiseUnary( const mojom::ElementWiseUnary& operation, CoreML::Specification::MILSpec::Block& block) { + const CoreML::Specification::MILSpec::DataType input_data_type = + GetOperandInfo(operation.input_operand_id).mil_data_type; switch (operation.kind) { case mojom::ElementWiseUnary::Kind::kAbs: { + CHECK(kFloatDataTypes.contains(input_data_type) || + input_data_type == + CoreML::Specification::MILSpec::DataType::INT32 || + input_data_type == CoreML::Specification::MILSpec::DataType::INT8); return AddUnaryOperation(SupportedDataType::kFloatsAndInt32, kOpAbsTypeName, operation, block); } @@ -1440,18 +1446,22 @@ operation.output_operand_id, block); } case mojom::ElementWiseUnary::Kind::kCeil: { + CHECK(kFloatDataTypes.contains(input_data_type)); return AddUnaryOperation(SupportedDataType::kFloats, kOpCeilTypeName, operation, block); } case mojom::ElementWiseUnary::Kind::kCos: { + CHECK(kFloatDataTypes.contains(input_data_type)); return AddUnaryOperation(SupportedDataType::kFloats, kOpCosTypeName, operation, block); } case mojom::ElementWiseUnary::Kind::kExp: { + CHECK(kFloatDataTypes.contains(input_data_type)); return AddUnaryOperation(SupportedDataType::kFloats, kOpExpTypeName, operation, block); } case mojom::ElementWiseUnary::Kind::kFloor: { + CHECK(kFloatDataTypes.contains(input_data_type)); return AddUnaryOperation(SupportedDataType::kFloats, kOpFloorTypeName, operation, block); } @@ -1460,22 +1470,27 @@ kOpIdentityTypeName, operation, block); } case mojom::ElementWiseUnary::Kind::kSin: { + CHECK(kFloatDataTypes.contains(input_data_type)); return AddUnaryOperation(SupportedDataType::kFloats, kOpSinTypeName, operation, block); } case mojom::ElementWiseUnary::Kind::kTan: { + CHECK(kFloatDataTypes.contains(input_data_type)); return AddUnaryOperation(SupportedDataType::kFloats, kOpTanTypeName, operation, block); } case mojom::ElementWiseUnary::Kind::kErf: { + CHECK(kFloatDataTypes.contains(input_data_type)); return AddUnaryOperation(SupportedDataType::kFloats, kOpErfTypeName, operation, block); } case mojom::ElementWiseUnary::Kind::kSqrt: { + CHECK(kFloatDataTypes.contains(input_data_type)); return AddUnaryOperation(SupportedDataType::kFloats, kOpSqrtTypeName, operation, block); } case mojom::ElementWiseUnary::Kind::kReciprocal: { + CHECK(kFloatDataTypes.contains(input_data_type)); // CoreML's reciprocal operator requires an epsilon value, the default // value as per the documentation 1e-4 results in expressions like // reciprocal(4) returning 0.24999 rather than 0.25. @@ -1485,6 +1500,7 @@ kOpReciprocalTypeName, operation, /*epsilon=*/0, block); } case mojom::ElementWiseUnary::Kind::kLog: { + CHECK(kFloatDataTypes.contains(input_data_type)); // CoreML's log operator requires an epsilon value, the default // value as per the documentation 1e-45 potentially could result // in different result compared to other platforms. @@ -1494,8 +1510,16 @@ /*epsilon=*/0, block); } case mojom::ElementWiseUnary::Kind::kNeg: + CHECK(kFloatDataTypes.contains(input_data_type) || + input_data_type == + CoreML::Specification::MILSpec::DataType::INT32 || + input_data_type == CoreML::Specification::MILSpec::DataType::INT8); + return NewNotSupportedError("This operator (neg) is not implemented."); case mojom::ElementWiseUnary::Kind::kLogicalNot: - return NewNotSupportedError("Unimplemented Unary Operator."); + CHECK_EQ(input_data_type, + CoreML::Specification::MILSpec::DataType::UINT8); + return NewNotSupportedError( + "This operator (logicalNot) is not implemented."); } } @@ -1988,9 +2012,7 @@ // WebNN's "resample2d" maps to variants of the "upsample" operator in CoreML: // https://apple.github.io/coremltools/source/coremltools.converters.mil.mil.ops.defs.html#coremltools.converters.mil.mil.ops.defs.iOS15.image_resizing.upsample_bilinear // https://apple.github.io/coremltools/source/coremltools.converters.mil.mil.ops.defs.html#coremltools.converters.mil.mil.ops.defs.iOS15.image_resizing.upsample_nearest_neighbor - if (!kFloatDataTypes.contains(input_operand_info.mil_data_type)) { - return NewNotSupportedError("Unsupported input datatype."); - } + CHECK(kFloatDataTypes.contains(input_operand_info.mil_data_type)); const std::array<size_t, 2> supported_axes = {2, 3}; if (!base::ranges::equal(operation.axes, supported_axes)) {
diff --git a/services/webnn/dml/graph_impl.cc b/services/webnn/dml/graph_impl.cc index 797f4398..f42c744 100644 --- a/services/webnn/dml/graph_impl.cc +++ b/services/webnn/dml/graph_impl.cc
@@ -1986,9 +1986,15 @@ const NodeOutput* input = GetNodeOutputForOperand(id_to_node_output_map, prelu->input_operand_id); const auto& input_tensor_desc = input->GetTensorDesc(); + CHECK(input_tensor_desc.GetDataType() == DML_TENSOR_DATA_TYPE_FLOAT32 || + input_tensor_desc.GetDataType() == DML_TENSOR_DATA_TYPE_FLOAT16 || + input_tensor_desc.GetDataType() == DML_TENSOR_DATA_TYPE_INT32 || + input_tensor_desc.GetDataType() == DML_TENSOR_DATA_TYPE_INT8); + const NodeOutput* slope = GetNodeOutputForOperand(id_to_node_output_map, prelu->slope_operand_id); auto slope_tensor_desc = slope->GetTensorDesc(); + CHECK_EQ(input_tensor_desc.GetDataType(), slope_tensor_desc.GetDataType()); uint64_t output_id = prelu->output_operand_id; const auto output_tensor_desc = @@ -2211,33 +2217,46 @@ const mojom::ElementWiseUnaryPtr& operation, GraphBuilder& graph_builder, IdToNodeOutputMap& id_to_node_output_map) { + const NodeOutput* input = GetNodeOutputForOperand( + id_to_node_output_map, operation->input_operand_id); + const DML_TENSOR_DATA_TYPE input_data_type = + input->GetTensorDesc().GetDataType(); + switch (operation->kind) { case mojom::ElementWiseUnary::Kind::kAbs: { + CHECK(kDmlFloatDataTypes.contains(input_data_type) || + input_data_type == DML_TENSOR_DATA_TYPE_INT32 || + input_data_type == DML_TENSOR_DATA_TYPE_INT8); return CreateOperatorNodeForUnary<DML_ELEMENT_WISE_ABS_OPERATOR_DESC, DML_OPERATOR_ELEMENT_WISE_ABS>( id_to_operand_map, operation, graph_builder, id_to_node_output_map); } case mojom::ElementWiseUnary::Kind::kCeil: { + CHECK(kDmlFloatDataTypes.contains(input_data_type)); return CreateOperatorNodeForUnary<DML_ELEMENT_WISE_CEIL_OPERATOR_DESC, DML_OPERATOR_ELEMENT_WISE_CEIL>( id_to_operand_map, operation, graph_builder, id_to_node_output_map); } case mojom::ElementWiseUnary::Kind::kCos: { + CHECK(kDmlFloatDataTypes.contains(input_data_type)); return CreateOperatorNodeForUnary<DML_ELEMENT_WISE_COS_OPERATOR_DESC, DML_OPERATOR_ELEMENT_WISE_COS>( id_to_operand_map, operation, graph_builder, id_to_node_output_map); } case mojom::ElementWiseUnary::Kind::kExp: { + CHECK(kDmlFloatDataTypes.contains(input_data_type)); return CreateOperatorNodeForUnary<DML_ELEMENT_WISE_EXP_OPERATOR_DESC, DML_OPERATOR_ELEMENT_WISE_EXP>( id_to_operand_map, operation, graph_builder, id_to_node_output_map); } case mojom::ElementWiseUnary::Kind::kFloor: { + CHECK(kDmlFloatDataTypes.contains(input_data_type)); return CreateOperatorNodeForUnary<DML_ELEMENT_WISE_FLOOR_OPERATOR_DESC, DML_OPERATOR_ELEMENT_WISE_FLOOR>( id_to_operand_map, operation, graph_builder, id_to_node_output_map); } case mojom::ElementWiseUnary::Kind::kLog: { + CHECK(kDmlFloatDataTypes.contains(input_data_type)); return CreateOperatorNodeForUnary<DML_ELEMENT_WISE_LOG_OPERATOR_DESC, DML_OPERATOR_ELEMENT_WISE_LOG>( id_to_operand_map, operation, graph_builder, id_to_node_output_map); @@ -2247,20 +2266,26 @@ // DML_FEATURE_LEVEL_5_0. // https://learn.microsoft.com/en-us/windows/win32/api/directml/ns-directml-dml_element_wise_negate_operator_desc#availability case mojom::ElementWiseUnary::Kind::kNeg: { + CHECK(kDmlFloatDataTypes.contains(input_data_type) || + input_data_type == DML_TENSOR_DATA_TYPE_INT32 || + input_data_type == DML_TENSOR_DATA_TYPE_INT8); return CreateOperatorNodeForNeg(id_to_operand_map, operation, graph_builder, id_to_node_output_map); } case mojom::ElementWiseUnary::Kind::kSin: { + CHECK(kDmlFloatDataTypes.contains(input_data_type)); return CreateOperatorNodeForUnary<DML_ELEMENT_WISE_SIN_OPERATOR_DESC, DML_OPERATOR_ELEMENT_WISE_SIN>( id_to_operand_map, operation, graph_builder, id_to_node_output_map); } case mojom::ElementWiseUnary::Kind::kTan: { + CHECK(kDmlFloatDataTypes.contains(input_data_type)); return CreateOperatorNodeForUnary<DML_ELEMENT_WISE_TAN_OPERATOR_DESC, DML_OPERATOR_ELEMENT_WISE_TAN>( id_to_operand_map, operation, graph_builder, id_to_node_output_map); } case mojom::ElementWiseUnary::Kind::kLogicalNot: { + CHECK_EQ(input_data_type, DML_TENSOR_DATA_TYPE_UINT8); return CreateOperatorNodeForUnary< DML_ELEMENT_WISE_LOGICAL_NOT_OPERATOR_DESC, DML_OPERATOR_ELEMENT_WISE_LOGICAL_NOT>( @@ -2272,16 +2297,19 @@ id_to_operand_map, operation, graph_builder, id_to_node_output_map); } case mojom::ElementWiseUnary::Kind::kSqrt: { + CHECK(kDmlFloatDataTypes.contains(input_data_type)); return CreateOperatorNodeForUnary<DML_ELEMENT_WISE_SQRT_OPERATOR_DESC, DML_OPERATOR_ELEMENT_WISE_SQRT>( id_to_operand_map, operation, graph_builder, id_to_node_output_map); } case mojom::ElementWiseUnary::Kind::kErf: { + CHECK(kDmlFloatDataTypes.contains(input_data_type)); return CreateOperatorNodeForUnary<DML_ELEMENT_WISE_ERF_OPERATOR_DESC, DML_OPERATOR_ELEMENT_WISE_ERF>( id_to_operand_map, operation, graph_builder, id_to_node_output_map); } case mojom::ElementWiseUnary::Kind::kReciprocal: { + CHECK(kDmlFloatDataTypes.contains(input_data_type)); return CreateOperatorNodeForUnary<DML_ELEMENT_WISE_RECIP_OPERATOR_DESC, DML_OPERATOR_ELEMENT_WISE_RECIP>( id_to_operand_map, operation, graph_builder, id_to_node_output_map); @@ -2292,7 +2320,6 @@ id_to_operand_map, operation, graph_builder, id_to_node_output_map); } } - NOTREACHED_NORETURN(); } base::expected<void, mojom::ErrorPtr> CreateOperatorNodeForResample2d( @@ -2303,6 +2330,7 @@ const NodeOutput* input = GetNodeOutputForOperand( id_to_node_output_map, resample2d->input_operand_id); const auto& input_tensor_desc = input->GetTensorDesc(); + CHECK(kDmlFloatDataTypes.contains(input_tensor_desc.GetDataType())); uint64_t output_id = resample2d->output_operand_id; const auto& output_tensor_desc =
diff --git a/services/webnn/tflite/graph_builder.cc b/services/webnn/tflite/graph_builder.cc index cec2b904..a95980c2 100644 --- a/services/webnn/tflite/graph_builder.cc +++ b/services/webnn/tflite/graph_builder.cc
@@ -7,6 +7,7 @@ #include <cstdint> #include <vector> +#include "base/containers/fixed_flat_set.h" #include "base/containers/span.h" #include "base/numerics/checked_math.h" #include "base/numerics/safe_conversions.h" @@ -51,6 +52,11 @@ ::tflite::TensorType::TensorType_UINT32; }; +static constexpr auto kFloatDataTypes = + base::MakeFixedFlatSet<mojom::Operand::DataType>( + {mojom::Operand::DataType::kFloat16, + mojom::Operand::DataType::kFloat32}); + // Useful for converting dimension arrays coming from mojo as uint32 to the // int32 vectors used by TFLite. base::expected<std::vector<int32_t>, std::string> ToSignedDimensions( @@ -391,6 +397,9 @@ case mojom::Operation::Tag::kSoftmax: operator_offset = SerializeSoftmax(*op.get_softmax()); break; + case mojom::Operation::Tag::kSoftplus: + operator_offset = SerializeSoftplus(*op.get_softplus()); + break; case mojom::Operation::Tag::kSplit: { ASSIGN_OR_RETURN(operator_offset, SerializeSplit(*op.get_split())); break; @@ -424,8 +433,6 @@ return base::unexpected("lstm is not implemented"); case mojom::Operation::Tag::kLstmCell: return base::unexpected("lstmCell is not implemented"); - case mojom::Operation::Tag::kSoftplus: - return base::unexpected("softplus is not implemented"); case mojom::Operation::Tag::kSoftsign: return base::unexpected("softsign is not implemented"); case mojom::Operation::Tag::kTriangular: @@ -972,32 +979,47 @@ operand_to_index_map_.at(op.input_operand_id); const int32_t output_tensor_index = operand_to_index_map_.at(op.output_operand_id); + const mojom::Operand::DataType input_data_type = + GetOperand(op.input_operand_id).data_type; switch (op.kind) { case mojom::ElementWiseUnary::Kind::kAbs: + CHECK(kFloatDataTypes.contains(input_data_type) || + input_data_type == mojom::Operand::DataType::kInt32 || + input_data_type == mojom::Operand::DataType::kInt8); return SerializeUnaryOperation(::tflite::BuiltinOperator_ABS, input_tensor_index, output_tensor_index); case mojom::ElementWiseUnary::Kind::kCeil: + CHECK(kFloatDataTypes.contains(input_data_type)); return SerializeUnaryOperation(::tflite::BuiltinOperator_CEIL, input_tensor_index, output_tensor_index); case mojom::ElementWiseUnary::Kind::kCos: + CHECK(kFloatDataTypes.contains(input_data_type)); return SerializeUnaryOperation(::tflite::BuiltinOperator_COS, input_tensor_index, output_tensor_index); case mojom::ElementWiseUnary::Kind::kExp: + CHECK(kFloatDataTypes.contains(input_data_type)); return SerializeUnaryOperation(::tflite::BuiltinOperator_EXP, input_tensor_index, output_tensor_index); case mojom::ElementWiseUnary::Kind::kFloor: + CHECK(kFloatDataTypes.contains(input_data_type)); return SerializeUnaryOperation(::tflite::BuiltinOperator_FLOOR, input_tensor_index, output_tensor_index); case mojom::ElementWiseUnary::Kind::kLog: + CHECK(kFloatDataTypes.contains(input_data_type)); return SerializeUnaryOperation(::tflite::BuiltinOperator_LOG, input_tensor_index, output_tensor_index); case mojom::ElementWiseUnary::Kind::kNeg: + CHECK(kFloatDataTypes.contains(input_data_type) || + input_data_type == mojom::Operand::DataType::kInt32 || + input_data_type == mojom::Operand::DataType::kInt8); return SerializeUnaryOperation(::tflite::BuiltinOperator_NEG, input_tensor_index, output_tensor_index); case mojom::ElementWiseUnary::Kind::kSin: + CHECK(kFloatDataTypes.contains(input_data_type)); return SerializeUnaryOperation(::tflite::BuiltinOperator_SIN, input_tensor_index, output_tensor_index); case mojom::ElementWiseUnary::Kind::kSqrt: + CHECK(kFloatDataTypes.contains(input_data_type)); return SerializeUnaryOperation(::tflite::BuiltinOperator_SQRT, input_tensor_index, output_tensor_index); case mojom::ElementWiseUnary::Kind::kCast: @@ -1007,6 +1029,7 @@ output_tensor_index, MojoOperandTypeToTFLite(GetOperand(op.output_operand_id).data_type)); case mojom::ElementWiseUnary::Kind::kLogicalNot: + CHECK_EQ(input_data_type, mojom::Operand::DataType::kUint8); return SerializeLogicalNot(op); case mojom::ElementWiseUnary::Kind::kIdentity: // Implement WebNN identity operation with TFLite reshape operator, the @@ -1015,9 +1038,11 @@ // redirecting output tensor to input. return SerializeReshape(op.input_operand_id, op.output_operand_id); case mojom::ElementWiseUnary::Kind::kTan: + CHECK(kFloatDataTypes.contains(input_data_type)); return SerializeTan(op); case mojom::ElementWiseUnary::Kind::kErf: case mojom::ElementWiseUnary::Kind::kReciprocal: + CHECK(kFloatDataTypes.contains(input_data_type)); return base::unexpected( base::StrCat({base::ToString(op.kind), " is not implemented."})); } @@ -1415,12 +1440,16 @@ auto GraphBuilder::SerializePrelu(const mojom::Prelu& prelu) -> base::expected<OperatorOffset, std::string> { + const mojom::Operand& input_operand = GetOperand(prelu.input_operand_id); + CHECK(input_operand.data_type == mojom::Operand::DataType::kFloat32 || + input_operand.data_type == mojom::Operand::DataType::kFloat16 || + input_operand.data_type == mojom::Operand::DataType::kInt32 || + input_operand.data_type == mojom::Operand::DataType::kInt8); + const mojom::Operand& slope_operand = GetOperand(prelu.slope_operand_id); // `ValidatePreluAndInferOutput` function has checked broadcastable shapes // between input and slope operand, but TFLite XNNPACK delegate doesn't // support to broadcast last dimension. // TODO(crbug.com/335517470): Support last dimension broadcastable. - const mojom::Operand& input_operand = GetOperand(prelu.input_operand_id); - const mojom::Operand& slope_operand = GetOperand(prelu.slope_operand_id); if (!input_operand.dimensions.empty() && !slope_operand.dimensions.empty() && input_operand.dimensions.back() != slope_operand.dimensions.back()) { return base::unexpected( @@ -1492,6 +1521,13 @@ } auto GraphBuilder::SerializeRelu(const mojom::Relu& relu) -> OperatorOffset { + const mojom::Operand::DataType input_data_type = + GetOperand(relu.input_operand_id).data_type; + CHECK(input_data_type == mojom::Operand::DataType::kFloat32 || + input_data_type == mojom::Operand::DataType::kFloat16 || + input_data_type == mojom::Operand::DataType::kInt32 || + input_data_type == mojom::Operand::DataType::kInt8); + return SerializeUnaryOperation( ::tflite::BuiltinOperator::BuiltinOperator_RELU, operand_to_index_map_.at(relu.input_operand_id), @@ -1502,6 +1538,8 @@ -> base::expected<OperatorOffset, std::string> { // TODO: crbug.com/329543543 - `resample2d.scales` is dropped on the floor. + const mojom::Operand& input_operand = GetOperand(resample2d.input_operand_id); + CHECK(kFloatDataTypes.contains(input_operand.data_type)); const std::array<uint32_t, 2> supported_axes = {1, 2}; if (!base::ranges::equal(resample2d.axes, supported_axes)) { // TODO: crbug.com/329658123: Support axes of {0, 1} and {2, 3}. @@ -1576,11 +1614,11 @@ /*new_shape=*/builder_.CreateVector<int32_t>( std::move(signed_output_dimensions))); - return SerializeUnaryOperation( - ::tflite::BuiltinOperator_RESHAPE, - operand_to_index_map_.at(input_operand_id), - operand_to_index_map_.at(output_operand_id), - ::tflite::BuiltinOptions_ReshapeOptions, reshape_options.Union()); + return SerializeUnaryOperation(::tflite::BuiltinOperator_RESHAPE, + operand_to_index_map_.at(input_operand_id), + operand_to_index_map_.at(output_operand_id), + ::tflite::BuiltinOptions_ReshapeOptions, + reshape_options.Union()); } auto GraphBuilder::SerializeSigmoid(const mojom::Sigmoid& sigmoid) @@ -1650,6 +1688,41 @@ ::tflite::BuiltinOptions_SoftmaxOptions, softmax_options.Union()); } +auto GraphBuilder::SerializeSoftplus(const mojom::Softplus& softplus) + -> OperatorOffset { + // Emulate the softplus operation whose calculation follows the expression + // `ln(1 + exp(x))`. + const mojom::Operand& input_operand = GetOperand(softplus.input_operand_id); + CHECK(input_operand.data_type == mojom::Operand::DataType::kFloat16 || + input_operand.data_type == mojom::Operand::DataType::kFloat32); + // The input shape has been validated to not overflow before creating tensor. + const auto signed_input_dimensions = + ToSignedDimensions(input_operand.dimensions); + CHECK(signed_input_dimensions.has_value()); + const ::tflite::TensorType input_tensor_type = + MojoOperandTypeToTFLite(input_operand.data_type); + const int32_t output_tensor_index_of_exp = + SerializeTemporaryTensor(*signed_input_dimensions, input_tensor_type); + operators_.emplace_back(SerializeUnaryOperation( + ::tflite::BuiltinOperator_EXP, + operand_to_index_map_.at(softplus.input_operand_id), + output_tensor_index_of_exp)); + + // Add constant value `1` to the output tensor of element-wise exp operation. + const int32_t constant_tensor_index = SerializeTensorWithBuffer<float>( + /*buffer=*/std::array<float, 1>{1}, + /*dimensions=*/{}); + const int32_t output_tensor_index_of_add = + SerializeTemporaryTensor(*signed_input_dimensions, input_tensor_type); + operators_.emplace_back(SerializeBinaryOperation( + ::tflite::BuiltinOperator_ADD, constant_tensor_index, + output_tensor_index_of_exp, output_tensor_index_of_add)); + + return SerializeUnaryOperation( + ::tflite::BuiltinOperator_LOG, output_tensor_index_of_add, + operand_to_index_map_.at(softplus.output_operand_id)); +} + auto GraphBuilder::SerializeSplit(const mojom::Split& split) -> base::expected<OperatorOffset, std::string> { // Serialize the axis tensor to split input tensor along it.
diff --git a/services/webnn/tflite/graph_builder.h b/services/webnn/tflite/graph_builder.h index 25c4e73..6861cf0e 100644 --- a/services/webnn/tflite/graph_builder.h +++ b/services/webnn/tflite/graph_builder.h
@@ -198,6 +198,7 @@ base::expected<OperatorOffset, std::string> SerializeSlice( const mojom::Slice& slice); OperatorOffset SerializeSoftmax(const mojom::Softmax& softmax); + OperatorOffset SerializeSoftplus(const mojom::Softplus& softplus); base::expected<OperatorOffset, std::string> SerializeSplit( const mojom::Split& split); OperatorOffset SerializeTan(const mojom::ElementWiseUnary& tan);
diff --git a/services/webnn/webnn_graph_impl.cc b/services/webnn/webnn_graph_impl.cc index 88c2df60..614765f 100644 --- a/services/webnn/webnn_graph_impl.cc +++ b/services/webnn/webnn_graph_impl.cc
@@ -909,24 +909,29 @@ return true; } -static constexpr auto kUnaryOperatorConstraints = base::MakeFixedFlatMap< - mojom::ElementWiseUnary::Kind, - webnn::DataTypeConstraintSet>({ - {mojom::ElementWiseUnary::Kind::kAbs, DataTypeConstraint::kSignedNumber}, - {mojom::ElementWiseUnary::Kind::kCeil, DataTypeConstraint::kFloat}, - {mojom::ElementWiseUnary::Kind::kCos, DataTypeConstraint::kFloat}, - {mojom::ElementWiseUnary::Kind::kExp, DataTypeConstraint::kFloat}, - {mojom::ElementWiseUnary::Kind::kFloor, DataTypeConstraint::kFloat}, - {mojom::ElementWiseUnary::Kind::kLog, DataTypeConstraint::kFloat}, - {mojom::ElementWiseUnary::Kind::kNeg, DataTypeConstraint::kSignedNumber}, - {mojom::ElementWiseUnary::Kind::kSin, DataTypeConstraint::kFloat}, - {mojom::ElementWiseUnary::Kind::kTan, DataTypeConstraint::kFloat}, - {mojom::ElementWiseUnary::Kind::kLogicalNot, {Operand::DataType::kUint8}}, - {mojom::ElementWiseUnary::Kind::kIdentity, DataTypeConstraintSet::All()}, - {mojom::ElementWiseUnary::Kind::kSqrt, DataTypeConstraint::kFloat}, - {mojom::ElementWiseUnary::Kind::kErf, DataTypeConstraint::kFloat}, - {mojom::ElementWiseUnary::Kind::kReciprocal, DataTypeConstraint::kFloat}, -}); +static constexpr auto kUnaryOperatorConstraints = + base::MakeFixedFlatMap<mojom::ElementWiseUnary::Kind, + webnn::DataTypeConstraintSet>({ + {mojom::ElementWiseUnary::Kind::kAbs, + DataTypeConstraint::kFloat16To32Int8To32}, + {mojom::ElementWiseUnary::Kind::kCeil, DataTypeConstraint::kFloat}, + {mojom::ElementWiseUnary::Kind::kCos, DataTypeConstraint::kFloat}, + {mojom::ElementWiseUnary::Kind::kExp, DataTypeConstraint::kFloat}, + {mojom::ElementWiseUnary::Kind::kFloor, DataTypeConstraint::kFloat}, + {mojom::ElementWiseUnary::Kind::kLog, DataTypeConstraint::kFloat}, + {mojom::ElementWiseUnary::Kind::kNeg, + DataTypeConstraint::kFloat16To32Int8To32}, + {mojom::ElementWiseUnary::Kind::kSin, DataTypeConstraint::kFloat}, + {mojom::ElementWiseUnary::Kind::kTan, DataTypeConstraint::kFloat}, + {mojom::ElementWiseUnary::Kind::kLogicalNot, + {Operand::DataType::kUint8}}, + {mojom::ElementWiseUnary::Kind::kIdentity, + DataTypeConstraintSet::All()}, + {mojom::ElementWiseUnary::Kind::kSqrt, DataTypeConstraint::kFloat}, + {mojom::ElementWiseUnary::Kind::kErf, DataTypeConstraint::kFloat}, + {mojom::ElementWiseUnary::Kind::kReciprocal, + DataTypeConstraint::kFloat}, + }); bool ValidateElementWiseUnary(const IdToOperandMap& id_to_operand_map, const mojom::ElementWiseUnaryPtr& operation, @@ -2062,7 +2067,7 @@ processed_operands); case mojom::Operation::Tag::kRelu: return ValidateUnaryOperation(id_to_operand_map, operation->get_relu(), - DataTypeConstraintSet::All(), + DataTypeConstraint::kFloat16To32Int8To32, processed_operands); case mojom::Operation::Tag::kSlice: return ValidateSlice(id_to_operand_map, operation->get_slice(),
diff --git a/services/webnn/webnn_graph_impl_unittest.cc b/services/webnn/webnn_graph_impl_unittest.cc index bc2a308..9db63bbe 100644 --- a/services/webnn/webnn_graph_impl_unittest.cc +++ b/services/webnn/webnn_graph_impl_unittest.cc
@@ -5327,14 +5327,36 @@ .Test(); } { - // Test the invalid graph when the datatype isn't floating point. + // Test prelu operator with input data type and slope data type = int32. PreluTester{.input = {.type = mojom::Operand::DataType::kInt32, .dimensions = {3, 2, 5}}, .slope = {.type = mojom::Operand::DataType::kInt32, .dimensions = {3, 2, 5}}, .output = {.type = mojom::Operand::DataType::kInt32, .dimensions = {3, 2, 5}}, - .expected = false} + .expected = true} + .Test(); + } + { + // Test prelu operator with input data type and slope data type = float16. + PreluTester{.input = {.type = mojom::Operand::DataType::kFloat16, + .dimensions = {3, 2, 5}}, + .slope = {.type = mojom::Operand::DataType::kFloat16, + .dimensions = {3, 2, 5}}, + .output = {.type = mojom::Operand::DataType::kFloat16, + .dimensions = {3, 2, 5}}, + .expected = true} + .Test(); + } + { + // Test prelu operator with input data type and slope data type = int8. + PreluTester{.input = {.type = mojom::Operand::DataType::kInt8, + .dimensions = {3, 2, 5}}, + .slope = {.type = mojom::Operand::DataType::kInt8, + .dimensions = {3, 2, 5}}, + .output = {.type = mojom::Operand::DataType::kInt8, + .dimensions = {3, 2, 5}}, + .expected = true} .Test(); } { @@ -5350,6 +5372,18 @@ .Test(); } { + // Test the invalid graph when the input data type and slope data type = + // uint32. + PreluTester{.input = {.type = mojom::Operand::DataType::kUint32, + .dimensions = {3, 2, 5}}, + .slope = {.type = mojom::Operand::DataType::kUint32, + .dimensions = {3, 2, 5}}, + .output = {.type = mojom::Operand::DataType::kUint32, + .dimensions = {3, 2, 5}}, + .expected = false} + .Test(); + } + { // Test the invalid graph when the output datatype doesn't match the // input's datatype. PreluTester{.input = {.type = mojom::Operand::DataType::kFloat16, @@ -5637,6 +5671,15 @@ .Test(); } { + // Test the invalid graph if the data type is not supported. + ReluTester{.input = {.type = mojom::Operand::DataType::kUint32, + .dimensions = {4, 2}}, + .output = {.type = mojom::Operand::DataType::kUint32, + .dimensions = {4, 2}}, + .expected = false} + .Test(); + } + { // Test the invalid graph for the output shapes are not expected. ReluTester{.input = {.type = mojom::Operand::DataType::kFloat32, .dimensions = {4, 2}}, @@ -5692,7 +5735,7 @@ } { // Test resample2d with "Linear" mode, axes = [1, 2] and explicit scales - // = [2, 2]. + // = [2, 2], input_data_type = float32. Resample2dTester{ .input = {.type = mojom::Operand::DataType::kFloat32, .dimensions = {1, 2, 4, 1}}, @@ -5706,6 +5749,20 @@ } { // Test resample2d with "Linear" mode, axes = [1, 2] and explicit scales + // = [2, 2], input_data_type = float16. + Resample2dTester{ + .input = {.type = mojom::Operand::DataType::kFloat16, + .dimensions = {1, 2, 4, 1}}, + .attributes = {.mode = mojom::Resample2d::InterpolationMode::kLinear, + .scales = std::vector<float>{2, 2}, + .axes = {1, 2}}, + .output = {.type = mojom::Operand::DataType::kFloat16, + .dimensions = {1, 4, 8, 1}}, + .expected = true} + .Test(); + } + { + // Test resample2d with "Linear" mode, axes = [1, 2] and explicit scales // = [2, 2.2] which is not exactly output dimensions / input dimensions. Resample2dTester{ .input = {.type = mojom::Operand::DataType::kFloat32, @@ -5728,6 +5785,15 @@ .Test(); } { + // Test the invalid graph if the input is not floating point. + Resample2dTester{.input = {.type = mojom::Operand::DataType::kInt32, + .dimensions = {1, 1, 2, 4}}, + .output = {.type = mojom::Operand::DataType::kInt32, + .dimensions = {1, 1, 4, 8}}, + .expected = false} + .Test(); + } + { // Test the invalid graph for input is not a 4-D tensor. Resample2dTester{.input = {.type = mojom::Operand::DataType::kFloat32, .dimensions = {1, 1, 2}},
diff --git a/testing/buildbot/chromium.chromiumos.json b/testing/buildbot/chromium.chromiumos.json index 906144e..6b23c2e 100644 --- a/testing/buildbot/chromium.chromiumos.json +++ b/testing/buildbot/chromium.chromiumos.json
@@ -5487,9 +5487,9 @@ { "args": [ "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.interactive_ui_tests.filter;../../testing/buildbot/filters/linux-lacros.interactive_ui_tests.skew.filter", - "--ash-chrome-path-override=../../lacros_version_skew_tests_v126.0.6463.0/test_ash_chrome" + "--ash-chrome-path-override=../../lacros_version_skew_tests_v126.0.6464.0/test_ash_chrome" ], - "description": "Run with ash-chrome version 126.0.6463.0", + "description": "Run with ash-chrome version 126.0.6464.0", "isolate_profile_data": true, "merge": { "script": "//testing/merge_scripts/standard_gtest_merge.py" @@ -5499,8 +5499,8 @@ "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v126.0.6463.0", - "revision": "version:126.0.6463.0" + "location": "lacros_version_skew_tests_v126.0.6464.0", + "revision": "version:126.0.6464.0" } ], "dimensions": { @@ -5643,9 +5643,9 @@ { "args": [ "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.lacros_chrome_browsertests.filter;../../testing/buildbot/filters/linux-lacros.lacros_chrome_browsertests.skew.filter", - "--ash-chrome-path-override=../../lacros_version_skew_tests_v126.0.6463.0/test_ash_chrome" + "--ash-chrome-path-override=../../lacros_version_skew_tests_v126.0.6464.0/test_ash_chrome" ], - "description": "Run with ash-chrome version 126.0.6463.0", + "description": "Run with ash-chrome version 126.0.6464.0", "isolate_profile_data": true, "merge": { "script": "//testing/merge_scripts/standard_gtest_merge.py" @@ -5655,8 +5655,8 @@ "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v126.0.6463.0", - "revision": "version:126.0.6463.0" + "location": "lacros_version_skew_tests_v126.0.6464.0", + "revision": "version:126.0.6464.0" } ], "dimensions": {
diff --git a/testing/buildbot/chromium.coverage.json b/testing/buildbot/chromium.coverage.json index 2a04de76..9d0424f4 100644 --- a/testing/buildbot/chromium.coverage.json +++ b/testing/buildbot/chromium.coverage.json
@@ -19663,9 +19663,9 @@ { "args": [ "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.interactive_ui_tests.filter;../../testing/buildbot/filters/linux-lacros.interactive_ui_tests.skew.filter", - "--ash-chrome-path-override=../../lacros_version_skew_tests_v126.0.6463.0/test_ash_chrome" + "--ash-chrome-path-override=../../lacros_version_skew_tests_v126.0.6464.0/test_ash_chrome" ], - "description": "Run with ash-chrome version 126.0.6463.0", + "description": "Run with ash-chrome version 126.0.6464.0", "isolate_profile_data": true, "merge": { "script": "//testing/merge_scripts/standard_gtest_merge.py" @@ -19675,8 +19675,8 @@ "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v126.0.6463.0", - "revision": "version:126.0.6463.0" + "location": "lacros_version_skew_tests_v126.0.6464.0", + "revision": "version:126.0.6464.0" } ], "dimensions": { @@ -19819,9 +19819,9 @@ { "args": [ "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.lacros_chrome_browsertests.filter;../../testing/buildbot/filters/linux-lacros.lacros_chrome_browsertests.skew.filter", - "--ash-chrome-path-override=../../lacros_version_skew_tests_v126.0.6463.0/test_ash_chrome" + "--ash-chrome-path-override=../../lacros_version_skew_tests_v126.0.6464.0/test_ash_chrome" ], - "description": "Run with ash-chrome version 126.0.6463.0", + "description": "Run with ash-chrome version 126.0.6464.0", "isolate_profile_data": true, "merge": { "script": "//testing/merge_scripts/standard_gtest_merge.py" @@ -19831,8 +19831,8 @@ "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v126.0.6463.0", - "revision": "version:126.0.6463.0" + "location": "lacros_version_skew_tests_v126.0.6464.0", + "revision": "version:126.0.6464.0" } ], "dimensions": {
diff --git a/testing/buildbot/chromium.fyi.json b/testing/buildbot/chromium.fyi.json index f98fa366f..622b8b30 100644 --- a/testing/buildbot/chromium.fyi.json +++ b/testing/buildbot/chromium.fyi.json
@@ -41837,9 +41837,9 @@ { "args": [ "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.interactive_ui_tests.filter;../../testing/buildbot/filters/linux-lacros.interactive_ui_tests.skew.filter", - "--ash-chrome-path-override=../../lacros_version_skew_tests_v126.0.6463.0/test_ash_chrome" + "--ash-chrome-path-override=../../lacros_version_skew_tests_v126.0.6464.0/test_ash_chrome" ], - "description": "Run with ash-chrome version 126.0.6463.0", + "description": "Run with ash-chrome version 126.0.6464.0", "merge": { "script": "//testing/merge_scripts/standard_gtest_merge.py" }, @@ -41848,8 +41848,8 @@ "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v126.0.6463.0", - "revision": "version:126.0.6463.0" + "location": "lacros_version_skew_tests_v126.0.6464.0", + "revision": "version:126.0.6464.0" } ], "dimensions": { @@ -41987,9 +41987,9 @@ { "args": [ "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.lacros_chrome_browsertests.filter;../../testing/buildbot/filters/linux-lacros.lacros_chrome_browsertests.skew.filter", - "--ash-chrome-path-override=../../lacros_version_skew_tests_v126.0.6463.0/test_ash_chrome" + "--ash-chrome-path-override=../../lacros_version_skew_tests_v126.0.6464.0/test_ash_chrome" ], - "description": "Run with ash-chrome version 126.0.6463.0", + "description": "Run with ash-chrome version 126.0.6464.0", "merge": { "script": "//testing/merge_scripts/standard_gtest_merge.py" }, @@ -41998,8 +41998,8 @@ "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v126.0.6463.0", - "revision": "version:126.0.6463.0" + "location": "lacros_version_skew_tests_v126.0.6464.0", + "revision": "version:126.0.6464.0" } ], "dimensions": { @@ -43336,9 +43336,9 @@ { "args": [ "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.interactive_ui_tests.filter;../../testing/buildbot/filters/linux-lacros.interactive_ui_tests.skew.filter", - "--ash-chrome-path-override=../../lacros_version_skew_tests_v126.0.6463.0/test_ash_chrome" + "--ash-chrome-path-override=../../lacros_version_skew_tests_v126.0.6464.0/test_ash_chrome" ], - "description": "Run with ash-chrome version 126.0.6463.0", + "description": "Run with ash-chrome version 126.0.6464.0", "isolate_profile_data": true, "merge": { "script": "//testing/merge_scripts/standard_gtest_merge.py" @@ -43348,8 +43348,8 @@ "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v126.0.6463.0", - "revision": "version:126.0.6463.0" + "location": "lacros_version_skew_tests_v126.0.6464.0", + "revision": "version:126.0.6464.0" } ], "dimensions": { @@ -43492,9 +43492,9 @@ { "args": [ "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.lacros_chrome_browsertests.filter;../../testing/buildbot/filters/linux-lacros.lacros_chrome_browsertests.skew.filter", - "--ash-chrome-path-override=../../lacros_version_skew_tests_v126.0.6463.0/test_ash_chrome" + "--ash-chrome-path-override=../../lacros_version_skew_tests_v126.0.6464.0/test_ash_chrome" ], - "description": "Run with ash-chrome version 126.0.6463.0", + "description": "Run with ash-chrome version 126.0.6464.0", "isolate_profile_data": true, "merge": { "script": "//testing/merge_scripts/standard_gtest_merge.py" @@ -43504,8 +43504,8 @@ "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v126.0.6463.0", - "revision": "version:126.0.6463.0" + "location": "lacros_version_skew_tests_v126.0.6464.0", + "revision": "version:126.0.6464.0" } ], "dimensions": { @@ -44817,9 +44817,9 @@ { "args": [ "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.interactive_ui_tests.filter;../../testing/buildbot/filters/linux-lacros.interactive_ui_tests.skew.filter", - "--ash-chrome-path-override=../../lacros_version_skew_tests_v126.0.6463.0/test_ash_chrome" + "--ash-chrome-path-override=../../lacros_version_skew_tests_v126.0.6464.0/test_ash_chrome" ], - "description": "Run with ash-chrome version 126.0.6463.0", + "description": "Run with ash-chrome version 126.0.6464.0", "merge": { "script": "//testing/merge_scripts/standard_gtest_merge.py" }, @@ -44828,8 +44828,8 @@ "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v126.0.6463.0", - "revision": "version:126.0.6463.0" + "location": "lacros_version_skew_tests_v126.0.6464.0", + "revision": "version:126.0.6464.0" } ], "dimensions": { @@ -44967,9 +44967,9 @@ { "args": [ "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.lacros_chrome_browsertests.filter;../../testing/buildbot/filters/linux-lacros.lacros_chrome_browsertests.skew.filter", - "--ash-chrome-path-override=../../lacros_version_skew_tests_v126.0.6463.0/test_ash_chrome" + "--ash-chrome-path-override=../../lacros_version_skew_tests_v126.0.6464.0/test_ash_chrome" ], - "description": "Run with ash-chrome version 126.0.6463.0", + "description": "Run with ash-chrome version 126.0.6464.0", "merge": { "script": "//testing/merge_scripts/standard_gtest_merge.py" }, @@ -44978,8 +44978,8 @@ "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v126.0.6463.0", - "revision": "version:126.0.6463.0" + "location": "lacros_version_skew_tests_v126.0.6464.0", + "revision": "version:126.0.6464.0" } ], "dimensions": {
diff --git a/testing/buildbot/chromium.memory.json b/testing/buildbot/chromium.memory.json index 684bcbb..a7cf8a1 100644 --- a/testing/buildbot/chromium.memory.json +++ b/testing/buildbot/chromium.memory.json
@@ -15763,12 +15763,12 @@ { "args": [ "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.interactive_ui_tests.filter;../../testing/buildbot/filters/linux-lacros.interactive_ui_tests.skew.filter", - "--ash-chrome-path-override=../../lacros_version_skew_tests_v126.0.6463.0/test_ash_chrome", + "--ash-chrome-path-override=../../lacros_version_skew_tests_v126.0.6464.0/test_ash_chrome", "--test-launcher-print-test-stdio=always", "--combine-ash-logs-on-bots", "--asan-symbolize-output" ], - "description": "Run with ash-chrome version 126.0.6463.0", + "description": "Run with ash-chrome version 126.0.6464.0", "isolate_profile_data": true, "merge": { "script": "//testing/merge_scripts/standard_gtest_merge.py" @@ -15778,8 +15778,8 @@ "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v126.0.6463.0", - "revision": "version:126.0.6463.0" + "location": "lacros_version_skew_tests_v126.0.6464.0", + "revision": "version:126.0.6464.0" } ], "dimensions": { @@ -15939,12 +15939,12 @@ { "args": [ "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.lacros_chrome_browsertests.filter;../../testing/buildbot/filters/linux-lacros.lacros_chrome_browsertests.skew.filter", - "--ash-chrome-path-override=../../lacros_version_skew_tests_v126.0.6463.0/test_ash_chrome", + "--ash-chrome-path-override=../../lacros_version_skew_tests_v126.0.6464.0/test_ash_chrome", "--test-launcher-print-test-stdio=always", "--combine-ash-logs-on-bots", "--asan-symbolize-output" ], - "description": "Run with ash-chrome version 126.0.6463.0", + "description": "Run with ash-chrome version 126.0.6464.0", "isolate_profile_data": true, "merge": { "script": "//testing/merge_scripts/standard_gtest_merge.py" @@ -15954,8 +15954,8 @@ "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v126.0.6463.0", - "revision": "version:126.0.6463.0" + "location": "lacros_version_skew_tests_v126.0.6464.0", + "revision": "version:126.0.6464.0" } ], "dimensions": {
diff --git a/testing/buildbot/variants.pyl b/testing/buildbot/variants.pyl index 96cdf35b..216c5c4 100644 --- a/testing/buildbot/variants.pyl +++ b/testing/buildbot/variants.pyl
@@ -267,16 +267,16 @@ }, 'LACROS_VERSION_SKEW_CANARY': { 'identifier': 'Lacros version skew testing ash canary', - 'description': 'Run with ash-chrome version 126.0.6463.0', + 'description': 'Run with ash-chrome version 126.0.6464.0', 'args': [ - '--ash-chrome-path-override=../../lacros_version_skew_tests_v126.0.6463.0/test_ash_chrome', + '--ash-chrome-path-override=../../lacros_version_skew_tests_v126.0.6464.0/test_ash_chrome', ], 'swarming': { 'cipd_packages': [ { 'cipd_package': 'chromium/testing/linux-ash-chromium/x86_64/ash.zip', - 'location': 'lacros_version_skew_tests_v126.0.6463.0', - 'revision': 'version:126.0.6463.0', + 'location': 'lacros_version_skew_tests_v126.0.6464.0', + 'revision': 'version:126.0.6464.0', }, ], },
diff --git a/testing/variations/fieldtrial_testing_config.json b/testing/variations/fieldtrial_testing_config.json index 033914f..1a3539b5 100644 --- a/testing/variations/fieldtrial_testing_config.json +++ b/testing/variations/fieldtrial_testing_config.json
@@ -10713,7 +10713,33 @@ { "name": "Enabled", "params": { - "lcpp_multiple_key_max_path_length": "15" + "lcpp_max_hosts_to_track": "100", + "lcpp_multiple_key_max_path_length": "15", + "lcpp_multiple_key_type": "default" + }, + "enable_features": [ + "LCPPMultipleKey" + ] + }, + { + "name": "WithMaxHost1000", + "params": { + "lcpp_max_hosts_to_track": "1000", + "lcpp_multiple_key_max_path_length": "15", + "lcpp_multiple_key_type": "default" + }, + "enable_features": [ + "LCPPMultipleKey" + ] + }, + { + "name": "EnabledKeyStat", + "params": { + "lcpp_max_hosts_to_track": "100", + "lcpp_multiple_key_histogram_sliding_window_size": "1000", + "lcpp_multiple_key_max_histogram_buckets": "10", + "lcpp_multiple_key_max_path_length": "15", + "lcpp_multiple_key_type": "lcpp_key_stat" }, "enable_features": [ "LCPPMultipleKey"
diff --git a/third_party/blink/renderer/core/css/css_properties.json5 b/third_party/blink/renderer/core/css/css_properties.json5 index 67bbe3ce..b90468e 100644 --- a/third_party/blink/renderer/core/css/css_properties.json5 +++ b/third_party/blink/renderer/core/css/css_properties.json5
@@ -5415,7 +5415,6 @@ keywords: ["normal", "space-all", "space-first", "trim-start"], default_value: "TextSpacingTrim::kInitial", typedom_types: ["Keyword"], - runtime_flag: "CSSTextSpacingTrim", valid_for_permission_element: true, }, {
diff --git a/third_party/blink/renderer/core/css/parser/css_parser_fast_paths.cc b/third_party/blink/renderer/core/css/parser/css_parser_fast_paths.cc index e346796..20185056 100644 --- a/third_party/blink/renderer/core/css/parser/css_parser_fast_paths.cc +++ b/third_party/blink/renderer/core/css/parser/css_parser_fast_paths.cc
@@ -1584,7 +1584,6 @@ return value_id == CSSValueID::kNormal || value_id == CSSValueID::kNoAutospace; case CSSPropertyID::kTextSpacingTrim: - DCHECK(RuntimeEnabledFeatures::CSSTextSpacingTrimEnabled()); return value_id == CSSValueID::kNormal || value_id == CSSValueID::kTrimStart || value_id == CSSValueID::kSpaceAll ||
diff --git a/third_party/blink/renderer/core/layout/build.gni b/third_party/blink/renderer/core/layout/build.gni index c389e47..e88eebc 100644 --- a/third_party/blink/renderer/core/layout/build.gni +++ b/third_party/blink/renderer/core/layout/build.gni
@@ -778,6 +778,7 @@ "layout_quote_test.cc", "layout_replaced_test.cc", "layout_result_caching_test.cc", + "layout_ruby_as_block_test.cc", "layout_ruby_base_test.cc", "layout_ruby_column_test.cc", "layout_shift_region_test.cc",
diff --git a/third_party/blink/renderer/core/layout/inline/inline_node.cc b/third_party/blink/renderer/core/layout/inline/inline_node.cc index 601b84e..404acbb 100644 --- a/third_party/blink/renderer/core/layout/inline/inline_node.cc +++ b/third_party/blink/renderer/core/layout/inline/inline_node.cc
@@ -1368,7 +1368,6 @@ .is_line_start = is_next_start_of_paragraph, .han_kerning_start = is_next_start_of_paragraph && - RuntimeEnabledFeatures::CSSTextSpacingTrimEnabled() && ShouldTrimStartOfParagraph( font.GetFontDescription().GetTextSpacingTrim()) && Character::MaybeHanKerningOpen(
diff --git a/third_party/blink/renderer/core/layout/layout_ruby_as_block.cc b/third_party/blink/renderer/core/layout/layout_ruby_as_block.cc index 2a1b2f4f..5c00df39 100644 --- a/third_party/blink/renderer/core/layout/layout_ruby_as_block.cc +++ b/third_party/blink/renderer/core/layout/layout_ruby_as_block.cc
@@ -36,6 +36,9 @@ StyleRef(), EDisplay::kRuby); inline_ruby->SetStyle(new_style_builder.TakeStyle()); LayoutNGBlockFlow::AddChild(inline_ruby); + } else if (before_child == inline_ruby) { + inline_ruby->AddChild(child, inline_ruby->SlowFirstChild()); + return; } inline_ruby->AddChild(child, before_child); }
diff --git a/third_party/blink/renderer/core/layout/layout_ruby_as_block_test.cc b/third_party/blink/renderer/core/layout/layout_ruby_as_block_test.cc new file mode 100644 index 0000000..758b879b --- /dev/null +++ b/third_party/blink/renderer/core/layout/layout_ruby_as_block_test.cc
@@ -0,0 +1,25 @@ +// 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 "third_party/blink/renderer/core/layout/layout_ruby_as_block.h" + +#include "third_party/blink/renderer/core/testing/core_unit_test_helper.h" + +namespace blink { + +class LayoutRubyAsBlockTest : public RenderingTest {}; + +// crbug.com/338350893 +TEST_F(LayoutRubyAsBlockTest, TextCombineCrash) { + SetBodyInnerHTML(R"HTML( + <div style="writing-mode:vertical-rl"> + <ruby id="target" style="display:block ruby; text-combine-upright:all;"></ruby> + )HTML"); + auto* ruby = GetElementById("target"); + ruby->setInnerHTML("<ol></ol>a"); + UpdateAllLifecyclePhasesForTest(); + // Pass if no crashes. +} + +} // namespace blink
diff --git a/third_party/blink/renderer/core/loader/modulescript/module_tree_linker.cc b/third_party/blink/renderer/core/loader/modulescript/module_tree_linker.cc index 75d4407e..a9cb36ef 100644 --- a/third_party/blink/renderer/core/loader/modulescript/module_tree_linker.cc +++ b/third_party/blink/renderer/core/loader/modulescript/module_tree_linker.cc
@@ -423,33 +423,32 @@ return; } - // <spec step="6">Let options be the descendant script fetch options for - // module script's fetch options.</spec> - // - // <spec - // href="https://html.spec.whatwg.org/C/#descendant-script-fetch-options"> For - // any given script fetch options options, the descendant script fetch options - // are a new script fetch options whose items all have the same values, except - // for the integrity metadata, which is instead the empty string.</spec> - // - // <spec - // href="https://wicg.github.io/priority-hints/#script"> - // descendant scripts get "auto" fetchpriority (only the main script resource - // is affected by Priority Hints). - ScriptFetchOptions options(module_script->FetchOptions().Nonce(), - IntegrityMetadataSet(), String(), - module_script->FetchOptions().ParserState(), - module_script->FetchOptions().CredentialsMode(), - module_script->FetchOptions().GetReferrerPolicy(), - mojom::blink::FetchPriorityHint::kAuto, - RenderBlockingBehavior::kNonBlocking); - // <spec step="8">For each moduleRequest in moduleRequests, ...</spec> // // <spec step="8">... These invocations of the internal module script graph // fetching procedure should be performed in parallel to each other. // ...</spec> for (const auto& module_request : module_requests) { + // <spec + // href="https://html.spec.whatwg.org/C/#descendant-script-fetch-options"> + // For any given script fetch options options, the descendant script fetch + // options are a new script fetch options whose items all have the same + // values, except for the integrity metadata, which is instead the empty + // string.</spec> + // + // <spec + // href="https://wicg.github.io/priority-hints/#script"> + // descendant scripts get "auto" fetchpriority (only the main script + // resource is affected by Priority Hints). + ScriptFetchOptions options( + module_script->FetchOptions().Nonce(), + modulator_->GetIntegrityMetadata(module_request.url), + modulator_->GetIntegrityMetadataString(module_request.url), + module_script->FetchOptions().ParserState(), + module_script->FetchOptions().CredentialsMode(), + module_script->FetchOptions().GetReferrerPolicy(), + mojom::blink::FetchPriorityHint::kAuto, + RenderBlockingBehavior::kNonBlocking); // <spec step="8">... perform the internal module script graph fetching // procedure given moduleRequest, fetch client settings object, destination, // options, module script's settings object, visited set, and module
diff --git a/third_party/blink/renderer/core/loader/preload_helper.cc b/third_party/blink/renderer/core/loader/preload_helper.cc index 14d00578..087ae80 100644 --- a/third_party/blink/renderer/core/loader/preload_helper.cc +++ b/third_party/blink/renderer/core/loader/preload_helper.cc
@@ -626,10 +626,11 @@ // is specified, or the empty string otherwise." [spec text] // |nonce| parameter is the value of the nonce attribute. - // Step 8. "Let integrity metadata be the value of the integrity attribute, if + // Step 9. "Let integrity metadata be the value of the integrity attribute, if // it is specified, or the empty string otherwise." [spec text] IntegrityMetadataSet integrity_metadata; - if (!params.integrity.empty()) { + String integrity_value = params.integrity; + if (!integrity_value.empty()) { SubresourceIntegrity::IntegrityFeatures integrity_features = SubresourceIntegrityHelper::GetFeatures(document.GetExecutionContext()); SubresourceIntegrity::ReportInfo report_info; @@ -637,26 +638,32 @@ params.integrity, integrity_features, integrity_metadata, &report_info); SubresourceIntegrityHelper::DoReport(*document.GetExecutionContext(), report_info); + } else if (integrity_value.IsNull()) { + // Step 10. "If el does not have an integrity attribute, then set integrity + // metadata to the result of resolving a module integrity metadata with url + // and settings object." [spec text] + integrity_value = modulator->GetIntegrityMetadataString(params.href); + integrity_metadata = modulator->GetIntegrityMetadata(params.href); } - // Step 9. "Let referrer policy be the current state of the element's + // Step 11. "Let referrer policy be the current state of the element's // referrerpolicy attribute." [spec text] // |referrer_policy| parameter is the value of the referrerpolicy attribute. - // Step 10. "Let options be a script fetch options whose cryptographic nonce + // Step 12. "Let options be a script fetch options whose cryptographic nonce // is cryptographic nonce, integrity metadata is integrity metadata, parser // metadata is "not-parser-inserted", credentials mode is credentials mode, // and referrer policy is referrer policy." [spec text] ModuleScriptFetchRequest request( params.href, ModuleType::kJavaScript, context_type, destination, - ScriptFetchOptions(params.nonce, integrity_metadata, params.integrity, + ScriptFetchOptions(params.nonce, integrity_metadata, integrity_value, kNotParserInserted, credentials_mode, params.referrer_policy, mojom::blink::FetchPriorityHint::kAuto, RenderBlockingBehavior::kNonBlocking), Referrer::NoReferrer(), TextPosition::MinimumPosition()); - // Step 11. "Fetch a modulepreload module script graph given url, destination, + // Step 13. "Fetch a modulepreload module script graph given url, destination, // settings object, and options. Wait until the algorithm asynchronously // completes with result." [spec text] //
diff --git a/third_party/blink/renderer/core/script/dynamic_module_resolver.cc b/third_party/blink/renderer/core/script/dynamic_module_resolver.cc index 15df372..8422194 100644 --- a/third_party/blink/renderer/core/script/dynamic_module_resolver.cc +++ b/third_party/blink/renderer/core/script/dynamic_module_resolver.cc
@@ -281,10 +281,12 @@ // <spec href="https://wicg.github.io/priority-hints/#script"> // dynamic imports get kAuto. Only the main script resource is impacted by // Priority Hints. + // ScriptFetchOptions options( - referrer_info.Nonce(), IntegrityMetadataSet(), String(), - referrer_info.ParserState(), referrer_info.CredentialsMode(), - referrer_info.GetReferrerPolicy(), mojom::blink::FetchPriorityHint::kAuto, + referrer_info.Nonce(), modulator_->GetIntegrityMetadata(url), + modulator_->GetIntegrityMetadataString(url), referrer_info.ParserState(), + referrer_info.CredentialsMode(), referrer_info.GetReferrerPolicy(), + mojom::blink::FetchPriorityHint::kAuto, RenderBlockingBehavior::kNonBlocking); // <spec label="fetch-an-import()-module-script-graph" step="3">Fetch a single
diff --git a/third_party/blink/renderer/core/script/import_map.cc b/third_party/blink/renderer/core/script/import_map.cc index 9b54124..fb84390 100644 --- a/third_party/blink/renderer/core/script/import_map.cc +++ b/third_party/blink/renderer/core/script/import_map.cc
@@ -6,6 +6,7 @@ #include <memory> #include <utility> + #include "base/metrics/histogram_macros.h" #include "third_party/blink/public/mojom/devtools/console_message.mojom-blink.h" #include "third_party/blink/renderer/bindings/core/v8/script_value.h" @@ -15,6 +16,7 @@ #include "third_party/blink/renderer/platform/json/json_parser.h" #include "third_party/blink/renderer/platform/json/json_values.h" #include "third_party/blink/renderer/platform/loader/fetch/console_logger.h" +#include "third_party/blink/renderer/platform/loader/subresource_integrity.h" #include "third_party/blink/renderer/platform/weborigin/scheme_registry.h" #include "third_party/blink/renderer/platform/wtf/text/string_builder.h" @@ -42,7 +44,7 @@ } // <specdef -// href="https://wicg.github.io/import-maps/#normalize-a-specifier-key"> +// href="https://html.spec.whatwg.org/C#normalizing-a-specifier-key"> String NormalizeSpecifierKey(const String& key_string, const KURL& base_url, ConsoleLogger& logger) { @@ -76,7 +78,7 @@ // Step 2.4-2.7 of // <specdef -// href="https://wicg.github.io/import-maps/#sort-and-normalize-a-specifier-map"> +// href="https://html.spec.whatwg.org/C#sorting-and-normalizing-a-module-specifier-map"> KURL NormalizeValue(const String& key, const String& value_string, const KURL& base_url, @@ -125,12 +127,33 @@ } } +void SpecifierMapToStringForTesting( + StringBuilder& builder, + const ImportMap::SpecifierMap& specifier_map) { + builder.Append("{"); + bool is_first_key = true; + for (const auto& it : specifier_map) { + if (!is_first_key) { + builder.Append(","); + } + is_first_key = false; + builder.Append(it.key.EncodeForDebugging()); + builder.Append(":"); + if (it.value.IsValid()) { + builder.Append(it.value.GetString().GetString().EncodeForDebugging()); + } else { + builder.Append("null"); + } + } + builder.Append("}"); +} + } // namespace // <specdef -// href="https://wicg.github.io/import-maps/#parse-an-import-map-string"> +// href="https://html.spec.whatwg.org/C#parse-an-import-map-string"> // -// Parse |text| as an import map. Errors (e.g. json parsing error, invalid +// Parse |input| as an import map. Errors (e.g. json parsing error, invalid // keys/values, etc.) are basically ignored, except that they are reported to // the console |logger|. ImportMap* ImportMap::Parse(const String& input, @@ -204,7 +227,7 @@ // and normalizing scopes given parsed["scopes"] and baseURL.</spec> // <specdef label="sort-and-normalize-scopes" - // href="https://wicg.github.io/import-maps/#sort-and-normalize-scopes"> + // href="https://html.spec.whatwg.org/C#sorting-and-normalizing-scopes"> // <spec label="sort-and-normalize-scopes" step="1">Let normalized be an // empty map.</spec> @@ -268,19 +291,94 @@ return CodeUnitCompareLessThan(b.first, a.first); }); } + // <spec step="7">Let normalizedIntegrity be an empty map.</spec> + IntegrityMap normalized_integrity_map; - // TODO(hiroshige): Implement Step 7. + // <spec step="8">If parsed["integrity"] exists, then:</spec> + if (RuntimeEnabledFeatures::ImportMapIntegrityEnabled() && + parsed_map->Get("integrity")) { + // <spec step="8.1">If parsed["integrity"] is not a map, then throw a + // TypeError indicating that the "scopes" top-level key must be a JSON + // object.</spec> + JSONObject* integrity = parsed_map->GetJSONObject("integrity"); + if (!integrity) { + *error_to_rethrow = + ImportMapError(ImportMapError::Type::kTypeError, + "Failed to parse import map: \"integrity\" " + "top-level key must be a JSON object."); + return MakeGarbageCollected<ImportMap>(); + } - // <spec step="8">Return the import map whose imports are + // <spec step="8.2">Set normalizedIntegrity to the result of sorting and + // normalizing integrity given parsed["integrity"] and baseURL.</spec> + + // <specdef label="normalize-a-module-integrity-map" + // href="https://html.spec.whatwg.org/C#normalizing-a-module-integrity-map"> + + // <spec label="normalize-a-module-integrity-map" step="1">Let + // normalized be an empty map.</spec> + // Skipping as we can set `normalized_integrity_map` directly. + + // <spec label="normalize-a-module-integrity-map" step="2">For each + // integrity → hash,</spec> + for (wtf_size_t i = 0; i < integrity->size(); ++i) { + const JSONObject::Entry& entry = integrity->at(i); + + // <spec label="normalize-a-module-integrity-map" step="2.1"> + // Let normalizedSpecifierKey be the result of resolving a URL-like module + // specifier given specifierKey and baseURL. integrity → hash,</spec> + ParsedSpecifier parsed_specifier = + ParsedSpecifier::Create(entry.first, base_url); + KURL resolved_url = parsed_specifier.GetUrl(); + + // <spec label="normalize-a-module-integrity-map" step="2.2"> + // If normalizedSpecifierKey is null, then continue. + if (resolved_url.IsNull()) { + AddIgnoredValueMessage( + logger, entry.first, + "Integrity key is not a valid absolute URL or relative URL " + "starting with '/', './', or '../'"); + continue; + } + + // <spec label="normalize-a-module-integrity-map" step="2.3"> + // If value is not a string, then continue.</spec> + if (entry.second->GetType() != JSONValue::ValueType::kTypeString) { + AddIgnoredValueMessage(logger, entry.first, + "Integrity value is not a string."); + continue; + } + + // <spec label="normalize-a-module-integrity-map" step="2.4"> + // Set normalized[resolvedURL] to value.</spec> + // Here we also turn the string into IntegrityMetadataSet. + String value_string; + if (integrity->GetString(entry.first, &value_string)) { + normalized_integrity_map.Set(resolved_url, value_string); + } else { + AddIgnoredValueMessage(logger, entry.first, + "Internal error in GetString()."); + } + } + } + + // TODO(hiroshige): Implement Step 9. + // <spec step="9"> If parsed's keys contains any items besides "imports", + // "scopes" and "integrity", then the user agent should report a warning to + // the console indicating that an invalid top-level key was present in the + // import map.</spec> + + // <spec step="10">Return the import map whose imports are // sortedAndNormalizedImports and whose scopes scopes are // sortedAndNormalizedScopes.</spec> return MakeGarbageCollected<ImportMap>( std::move(sorted_and_normalized_imports), - std::move(sorted_and_normalized_scopes)); + std::move(sorted_and_normalized_scopes), + std::move(normalized_integrity_map)); } // <specdef -// href="https://wicg.github.io/import-maps/#sort-and-normalize-a-specifier-map"> +// href="https://html.spec.whatwg.org/C#sorting-and-normalizing-a-module-specifier-map"> ImportMap::SpecifierMap ImportMap::SortAndNormalizeSpecifierMap( const JSONObject* imports, const KURL& base_url, @@ -342,7 +440,7 @@ return normalized; } -// <specdef href="https://wicg.github.io/import-maps/#resolve-an-imports-match"> +// <specdef href="https://html.spec.whatwg.org/C#resolving-an-imports-match"> std::optional<ImportMap::MatchResult> ImportMap::MatchPrefix( const ParsedSpecifier& parsed_specifier, const SpecifierMap& specifier_map) const { @@ -384,11 +482,15 @@ ImportMap::ImportMap() = default; -ImportMap::ImportMap(SpecifierMap&& imports, ScopeType&& scopes) - : imports_(std::move(imports)), scopes_(std::move(scopes)) {} +ImportMap::ImportMap(SpecifierMap&& imports, + ScopeType&& scopes, + IntegrityMap&& integrity) + : imports_(std::move(imports)), + scopes_(std::move(scopes)), + integrity_(std::move(integrity)) {} // <specdef -// href="https://wicg.github.io/import-maps/#resolve-a-module-specifier"> +// href="https://https://html.spec.whatwg.org/C#resolve-a-module-specifier"> std::optional<KURL> ImportMap::Resolve(const ParsedSpecifier& parsed_specifier, const KURL& base_url, String* debug_message) const { @@ -422,7 +524,7 @@ return ResolveImportsMatch(parsed_specifier, imports_, debug_message); } -// <specdef href="https://wicg.github.io/import-maps/#resolve-an-imports-match"> +// <specdef href="https://html.spec.whatwg.org/C#resolving-an-imports-match"> std::optional<KURL> ImportMap::ResolveImportsMatch( const ParsedSpecifier& parsed_specifier, const SpecifierMap& specifier_map, @@ -456,7 +558,7 @@ return std::nullopt; } -// <specdef href="https://wicg.github.io/import-maps/#resolve-an-imports-match"> +// <specdef href="https://html.spec.whatwg.org/C#resolving-an-imports-match"> KURL ImportMap::ResolveImportsMatchInternal(const String& key, const MatchResult& matched, String* debug_message) const { @@ -513,46 +615,49 @@ return url; } -static void SpecifierMapToString(StringBuilder& builder, - const ImportMap::SpecifierMap& specifier_map) { - builder.Append("{"); - bool is_first_key = true; - for (const auto& it : specifier_map) { - if (!is_first_key) - builder.Append(","); - is_first_key = false; - builder.Append(it.key.EncodeForDebugging()); - builder.Append(":"); - if (it.value.IsValid()) - builder.Append(it.value.GetString().GetString().EncodeForDebugging()); - else - builder.Append("null"); - } - builder.Append("}"); -} - -String ImportMap::ToString() const { +String ImportMap::ToStringForTesting() const { StringBuilder builder; builder.Append("{\"imports\":"); - SpecifierMapToString(builder, imports_); + SpecifierMapToStringForTesting(builder, imports_); builder.Append(",\"scopes\":{"); - bool is_first_scope = true; + bool is_first = true; for (const auto& entry : scopes_) { - if (!is_first_scope) + if (!is_first) { builder.Append(","); - is_first_scope = false; + } + is_first = false; builder.Append(entry.first.EncodeForDebugging()); builder.Append(":"); - SpecifierMapToString(builder, entry.second); + SpecifierMapToStringForTesting(builder, entry.second); } - builder.Append("}"); + builder.Append("},\"integrity\": {"); - builder.Append("}"); + is_first = true; + for (const auto& it : integrity_) { + if (!is_first) { + builder.Append(","); + } + is_first = false; + builder.Append("\""); + builder.Append(it.key.GetString()); + builder.Append("\""); + builder.Append(":"); + builder.Append("\""); + builder.Append(it.value); + builder.Append("\""); + } + + builder.Append("}}"); return builder.ToString(); } +String ImportMap::GetIntegrity(const KURL& module_url) const { + IntegrityMap::const_iterator it = integrity_.find(module_url); + return it != integrity_.end() ? it->value : String(); +} + } // namespace blink
diff --git a/third_party/blink/renderer/core/script/import_map.h b/third_party/blink/renderer/core/script/import_map.h index 97b5a6f3..e262a26c 100644 --- a/third_party/blink/renderer/core/script/import_map.h +++ b/third_party/blink/renderer/core/script/import_map.h
@@ -10,6 +10,7 @@ #include "third_party/blink/renderer/core/core_export.h" #include "third_party/blink/renderer/core/script/import_map_error.h" #include "third_party/blink/renderer/platform/heap/garbage_collected.h" +#include "third_party/blink/renderer/platform/loader/fetch/integrity_metadata.h" #include "third_party/blink/renderer/platform/weborigin/kurl.h" #include "third_party/blink/renderer/platform/weborigin/kurl_hash.h" #include "third_party/blink/renderer/platform/wtf/hash_map.h" @@ -22,8 +23,7 @@ class ParsedSpecifier; // Import maps. -// https://wicg.github.io/import-maps/ -// https://github.com/WICG/import-maps/blob/master/spec.md +// https://html.spec.whatwg.org/C#import-maps class CORE_EXPORT ImportMap final : public GarbageCollected<ImportMap> { public: static ImportMap* Parse(const String& text, @@ -31,8 +31,8 @@ ConsoleLogger& logger, std::optional<ImportMapError>* error_to_rethrow); - // <spec href="https://wicg.github.io/import-maps/#specifier-map">A specifier - // map is an ordered map from strings to resolution results.</spec> + // <spec href="https://html.spec.whatwg.org/C#module-specifier-map">A + // specifier map is an ordered map from strings to resolution results.</spec> // // An invalid KURL corresponds to a null resolution result in the spec. // @@ -40,15 +40,19 @@ // are implemented differently from the spec. using SpecifierMap = HashMap<String, KURL>; - // <spec href="https://wicg.github.io/import-maps/#import-map-scopes">an + // <spec href="https://html.spec.whatwg.org/C#concept-import-map-scopes">an // ordered map of URLs to specifier maps.</spec> using ScopeEntryType = std::pair<String, SpecifierMap>; using ScopeType = Vector<ScopeEntryType>; + using IntegrityMap = HashMap<KURL, String>; + // Empty import map. ImportMap(); - ImportMap(SpecifierMap&& imports, ScopeType&& scopes); + ImportMap(SpecifierMap&& imports, + ScopeType&& scopes, + IntegrityMap&& integrity); // Return values of Resolve(), ResolveImportsMatch() and // ResolveImportsMatchInternal(): @@ -59,15 +63,16 @@ std::optional<KURL> Resolve(const ParsedSpecifier&, const KURL& base_url, String* debug_message) const; + String GetIntegrity(const KURL& module_url) const; - String ToString() const; + String ToStringForTesting() const; void Trace(Visitor*) const {} private: using MatchResult = SpecifierMap::const_iterator; - // https://wicg.github.io/import-maps/#resolve-an-imports-match + // https://html.spec.whatwg.org/C#resolving-an-imports-match std::optional<KURL> ResolveImportsMatch(const ParsedSpecifier&, const SpecifierMap&, String* debug_message) const; @@ -81,11 +86,14 @@ const MatchResult&, String* debug_message) const; - // https://wicg.github.io/import-maps/#import-map-imports + // https://html.spec.whatwg.org/C#concept-import-map-imports SpecifierMap imports_; - // https://wicg.github.io/import-maps/#import-map-scopes. + // https://html.spec.whatwg.org/C#concept-import-map-scopes ScopeType scopes_; + + // https://html.spec.whatwg.org/C#concept-import-map-integrity + IntegrityMap integrity_; }; } // namespace blink
diff --git a/third_party/blink/renderer/core/script/modulator.h b/third_party/blink/renderer/core/script/modulator.h index c95b60d..717171c 100644 --- a/third_party/blink/renderer/core/script/modulator.h +++ b/third_party/blink/renderer/core/script/modulator.h
@@ -22,6 +22,7 @@ #include "third_party/blink/renderer/platform/bindings/script_wrappable.h" #include "third_party/blink/renderer/platform/bindings/v8_per_context_data.h" #include "third_party/blink/renderer/platform/heap/garbage_collected.h" +#include "third_party/blink/renderer/platform/loader/fetch/integrity_metadata.h" #include "third_party/blink/renderer/platform/weborigin/kurl.h" #include "third_party/blink/renderer/platform/weborigin/referrer.h" #include "third_party/blink/renderer/platform/wtf/text/text_position.h" @@ -212,6 +213,10 @@ virtual ModuleImportMeta HostGetImportMetaProperties( v8::Local<v8::Module>) const = 0; + // https://html.spec.whatwg.org/C/#resolving-a-module-integrity-metadata + virtual String GetIntegrityMetadataString(const KURL&) const = 0; + virtual IntegrityMetadataSet GetIntegrityMetadata(const KURL&) const = 0; + virtual bool HasValidContext() = 0; virtual ModuleType ModuleTypeFromRequest(
diff --git a/third_party/blink/renderer/core/script/modulator_impl_base.cc b/third_party/blink/renderer/core/script/modulator_impl_base.cc index 345ef37..0b6a429 100644 --- a/third_party/blink/renderer/core/script/modulator_impl_base.cc +++ b/third_party/blink/renderer/core/script/modulator_impl_base.cc
@@ -3,6 +3,7 @@ // found in the LICENSE file. #include "third_party/blink/renderer/core/script/modulator_impl_base.h" + #include "base/feature_list.h" #include "third_party/blink/public/common/features.h" #include "third_party/blink/public/mojom/devtools/console_message.mojom-blink.h" @@ -17,6 +18,7 @@ #include "third_party/blink/renderer/core/loader/modulescript/module_script_fetch_request.h" #include "third_party/blink/renderer/core/loader/modulescript/module_tree_linker.h" #include "third_party/blink/renderer/core/loader/modulescript/module_tree_linker_registry.h" +#include "third_party/blink/renderer/core/loader/subresource_integrity_helper.h" #include "third_party/blink/renderer/core/script/dynamic_module_resolver.h" #include "third_party/blink/renderer/core/script/import_map.h" #include "third_party/blink/renderer/core/script/js_module_script.h" @@ -25,6 +27,7 @@ #include "third_party/blink/renderer/core/script/parsed_specifier.h" #include "third_party/blink/renderer/platform/bindings/v8_throw_exception.h" #include "third_party/blink/renderer/platform/instrumentation/use_counter.h" +#include "third_party/blink/renderer/platform/loader/subresource_integrity.h" #include "third_party/blink/renderer/platform/runtime_enabled_features.h" namespace blink { @@ -206,6 +209,28 @@ return ModuleImportMeta(url_string); } +String ModulatorImplBase::GetIntegrityMetadataString(const KURL& url) const { + const ImportMap* import_map = GetImportMap(); + if (!import_map) { + return String(); + } + return import_map->GetIntegrity(url); +} + +IntegrityMetadataSet ModulatorImplBase::GetIntegrityMetadata( + const KURL& url) const { + String value = GetIntegrityMetadataString(url); + IntegrityMetadataSet integrity_metadata; + if (!value.IsNull()) { + SubresourceIntegrity::ReportInfo report_info; + SubresourceIntegrity::ParseIntegrityAttribute( + value, SubresourceIntegrity::IntegrityFeatures::kDefault, + integrity_metadata, &report_info); + SubresourceIntegrityHelper::DoReport(*GetExecutionContext(), report_info); + } + return integrity_metadata; +} + ModuleType ModulatorImplBase::ModuleTypeFromRequest( const ModuleRequest& module_request) const { String module_type_string = module_request.GetModuleTypeString();
diff --git a/third_party/blink/renderer/core/script/modulator_impl_base.h b/third_party/blink/renderer/core/script/modulator_impl_base.h index b7f96dd..447c38d 100644 --- a/third_party/blink/renderer/core/script/modulator_impl_base.h +++ b/third_party/blink/renderer/core/script/modulator_impl_base.h
@@ -86,6 +86,10 @@ ModuleImportMeta HostGetImportMetaProperties( v8::Local<v8::Module>) const override; + + String GetIntegrityMetadataString(const KURL&) const override; + IntegrityMetadataSet GetIntegrityMetadata(const KURL&) const override; + ModuleType ModuleTypeFromRequest( const ModuleRequest& module_request) const override;
diff --git a/third_party/blink/renderer/core/script/script_loader.cc b/third_party/blink/renderer/core/script/script_loader.cc index 98291560..30245f9 100644 --- a/third_party/blink/renderer/core/script/script_loader.cc +++ b/third_party/blink/renderer/core/script/script_loader.cc
@@ -975,6 +975,14 @@ // Fetch an external module script graph given url, settings object, and // options.</spec> Modulator* modulator = Modulator::From(script_state); + if (integrity_attr.IsNull()) { + // <spec step="31.11.B">If el does not have an integrity attribute, + // then set options's integrity metadata to the result of resolving a + // module integrity metadata with url and settings object </spec> + options.SetIntegrityMetadata(modulator->GetIntegrityMetadata(url)); + options.SetIntegrityAttributeValue( + modulator->GetIntegrityMetadataString(url)); + } FetchModuleScriptTree(url, fetch_client_settings_object_fetcher, modulator, options); } break;
diff --git a/third_party/blink/renderer/core/testing/dummy_modulator.cc b/third_party/blink/renderer/core/testing/dummy_modulator.cc index bc069d11..5619856 100644 --- a/third_party/blink/renderer/core/testing/dummy_modulator.cc +++ b/third_party/blink/renderer/core/testing/dummy_modulator.cc
@@ -112,6 +112,14 @@ return KURL(); } +String DummyModulator::GetIntegrityMetadataString(const KURL&) const { + return String(); +} + +IntegrityMetadataSet DummyModulator::GetIntegrityMetadata(const KURL&) const { + return IntegrityMetadataSet(); +} + bool DummyModulator::HasValidContext() { return true; }
diff --git a/third_party/blink/renderer/core/testing/dummy_modulator.h b/third_party/blink/renderer/core/testing/dummy_modulator.h index 37dd3e9..7041fbf 100644 --- a/third_party/blink/renderer/core/testing/dummy_modulator.h +++ b/third_party/blink/renderer/core/testing/dummy_modulator.h
@@ -60,6 +60,8 @@ ModuleTreeClient*) override; ModuleScript* GetFetchedModuleScript(const KURL&, ModuleType) override; KURL ResolveModuleSpecifier(const String&, const KURL&, String*) override; + String GetIntegrityMetadataString(const KURL&) const override; + IntegrityMetadataSet GetIntegrityMetadata(const KURL&) const override; bool HasValidContext() override; void ResolveDynamically(const ModuleRequest& module_request, const ReferrerScriptInfo&,
diff --git a/third_party/blink/renderer/core/testing/internals.cc b/third_party/blink/renderer/core/testing/internals.cc index eea005f2..09a53c6 100644 --- a/third_party/blink/renderer/core/testing/internals.cc +++ b/third_party/blink/renderer/core/testing/internals.cc
@@ -3832,7 +3832,7 @@ if (!import_map) return "{}"; - return import_map->ToString(); + return import_map->ToStringForTesting(); } void Internals::setDeviceEmulationScale(float scale,
diff --git a/third_party/blink/renderer/modules/ml/webnn/ml_graph_builder.cc b/third_party/blink/renderer/modules/ml/webnn/ml_graph_builder.cc index 9f81f47..4900a85 100644 --- a/third_party/blink/renderer/modules/ml/webnn/ml_graph_builder.cc +++ b/third_party/blink/renderer/modules/ml/webnn/ml_graph_builder.cc
@@ -1066,8 +1066,7 @@ BUILD_ELEMENTWISE_UNARY_OP(abs, kAbs, - Union(webnn::DataTypeConstraint::kFloat, - webnn::DataTypeConstraint::kSignedInteger)) + webnn::DataTypeConstraint::kFloat16To32Int8To32) BUILD_ELEMENTWISE_UNARY_OP(ceil, kCeil, webnn::DataTypeConstraint::kFloat) BUILD_ELEMENTWISE_UNARY_OP(cos, kCos, webnn::DataTypeConstraint::kFloat) BUILD_ELEMENTWISE_UNARY_OP(exp, kExp, webnn::DataTypeConstraint::kFloat) @@ -1075,8 +1074,7 @@ BUILD_ELEMENTWISE_UNARY_OP(log, kLog, webnn::DataTypeConstraint::kFloat) BUILD_ELEMENTWISE_UNARY_OP(neg, kNeg, - Union(webnn::DataTypeConstraint::kFloat, - webnn::DataTypeConstraint::kSignedInteger)) + webnn::DataTypeConstraint::kFloat16To32Int8To32) BUILD_ELEMENTWISE_UNARY_OP(sin, kSin, webnn::DataTypeConstraint::kFloat) BUILD_ELEMENTWISE_UNARY_OP(tan, kTan, webnn::DataTypeConstraint::kFloat) BUILD_ELEMENTWISE_UNARY_OP(erf, kErf, webnn::DataTypeConstraint::kFloat) @@ -1804,9 +1802,7 @@ auto validated_output = webnn::ValidatePreluAndInferOutput( ConvertToComponentOperand(input), ConvertToComponentOperand(slope)); if (!validated_output.has_value()) { - exception_state.ThrowDOMException( - DOMExceptionCode::kDataError, - String::FromUTF8(validated_output.error())); + exception_state.ThrowTypeError(String::FromUTF8(validated_output.error())); return nullptr; } @@ -1817,8 +1813,7 @@ this, ComponentOperandTypeToBlink(validated_output->data_type), Vector<uint32_t>(validated_output->dimensions), prelu); if (!output.has_value()) { - exception_state.ThrowDOMException(DOMExceptionCode::kDataError, - output.error()); + exception_state.ThrowTypeError(output.error()); return nullptr; } prelu->Connect(std::move(inputs), {output.value()}); @@ -1832,9 +1827,9 @@ // According to WebNN spec // https://www.w3.org/TR/webnn/#api-mlgraphbuilder-relu, the output tensor of // relu has the same data type and dimensions as its input. - return BuildUnaryOperator(this, exception_state, - webnn::mojom::blink::Operation::Tag::kRelu, - webnn::DataTypeConstraintSet::All(), input); + return BuildUnaryOperator( + this, exception_state, webnn::mojom::blink::Operation::Tag::kRelu, + webnn::DataTypeConstraint::kFloat16To32Int8To32, input); } MLActivation* MLGraphBuilder::relu(ExceptionState& exception_state) {
diff --git a/third_party/blink/renderer/modules/ml/webnn/ml_graph_builder_test.cc b/third_party/blink/renderer/modules/ml/webnn/ml_graph_builder_test.cc index 64cbe664..5dee42f 100644 --- a/third_party/blink/renderer/modules/ml/webnn/ml_graph_builder_test.cc +++ b/third_party/blink/renderer/modules/ml/webnn/ml_graph_builder_test.cc
@@ -588,159 +588,6 @@ return output; } -TEST_F(MLGraphBuilderTest, PReluTest) { - V8TestingScope scope; - auto* builder = - CreateMLGraphBuilder(scope.GetExecutionContext(), scope.GetScriptState(), - scope.GetExceptionState()); - { - // Test building prelu when slope_shape is the same as the input_shape. - Vector<uint32_t> input_shape({3, 2, 5}); - auto* input = BuildInput(builder, "input", input_shape, - V8MLOperandDataType::Enum::kFloat32, - scope.GetExceptionState()); - auto* slope = - BuildConstant(builder, {3, 2, 5}, V8MLOperandDataType::Enum::kFloat32, - scope.GetExceptionState()); - auto* output = builder->prelu(input, slope, scope.GetExceptionState()); - ASSERT_THAT(output, testing::NotNull()); - EXPECT_EQ(output->Kind(), webnn::mojom::blink::Operand::Kind::kOutput); - EXPECT_EQ(output->DataType(), V8MLOperandDataType::Enum::kFloat32); - EXPECT_EQ(output->Dimensions(), input_shape); - const MLOperator* p_relu = output->Operator(); - ASSERT_THAT(p_relu, testing::NotNull()); - EXPECT_EQ(p_relu->Kind(), webnn::mojom::blink::Operation::Tag::kPrelu); - EXPECT_TRUE(p_relu->IsConnected()); - EXPECT_THAT(p_relu->Options(), testing::IsNull()); - } - { - // Test building prelu with input_shape = {3, 2, 5} and slope_shape = {5}. - Vector<uint32_t> input_shape({3, 2, 5}); - auto* input = BuildInput(builder, "input", input_shape, - V8MLOperandDataType::Enum::kFloat32, - scope.GetExceptionState()); - auto* slope = - BuildConstant(builder, {5}, V8MLOperandDataType::Enum::kFloat32, - scope.GetExceptionState()); - auto* output = builder->prelu(input, slope, scope.GetExceptionState()); - ASSERT_THAT(output, testing::NotNull()); - EXPECT_EQ(output->Kind(), webnn::mojom::blink::Operand::Kind::kOutput); - EXPECT_EQ(output->DataType(), V8MLOperandDataType::Enum::kFloat32); - EXPECT_EQ(output->Dimensions(), input_shape); - const MLOperator* p_relu = output->Operator(); - ASSERT_THAT(p_relu, testing::NotNull()); - EXPECT_EQ(p_relu->Kind(), webnn::mojom::blink::Operation::Tag::kPrelu); - EXPECT_TRUE(p_relu->IsConnected()); - EXPECT_THAT(p_relu->Options(), testing::IsNull()); - } - { - // Test building prelu with input_shape = {3, 2, 5} and slope_shape = {}. - Vector<uint32_t> input_shape({3, 2, 5}); - auto* input = BuildInput(builder, "input", input_shape, - V8MLOperandDataType::Enum::kFloat32, - scope.GetExceptionState()); - auto* slope = - BuildConstant(builder, {}, V8MLOperandDataType::Enum::kFloat32, - scope.GetExceptionState()); - auto* output = builder->prelu(input, slope, scope.GetExceptionState()); - ASSERT_THAT(output, testing::NotNull()); - EXPECT_EQ(output->Kind(), webnn::mojom::blink::Operand::Kind::kOutput); - EXPECT_EQ(output->DataType(), V8MLOperandDataType::Enum::kFloat32); - EXPECT_EQ(output->Dimensions(), input_shape); - const MLOperator* p_relu = output->Operator(); - ASSERT_THAT(p_relu, testing::NotNull()); - EXPECT_EQ(p_relu->Kind(), webnn::mojom::blink::Operation::Tag::kPrelu); - EXPECT_TRUE(p_relu->IsConnected()); - EXPECT_THAT(p_relu->Options(), testing::IsNull()); - } - { - // Test building prelu with input_shape = {3, 2, 5} and slope_shape = {2, - // 5}. - Vector<uint32_t> input_shape({3, 2, 5}); - auto* input = BuildInput(builder, "input", input_shape, - V8MLOperandDataType::Enum::kFloat32, - scope.GetExceptionState()); - auto* slope = - BuildConstant(builder, {2, 5}, V8MLOperandDataType::Enum::kFloat32, - scope.GetExceptionState()); - auto* output = builder->prelu(input, slope, scope.GetExceptionState()); - ASSERT_THAT(output, testing::NotNull()); - EXPECT_EQ(output->Kind(), webnn::mojom::blink::Operand::Kind::kOutput); - EXPECT_EQ(output->DataType(), V8MLOperandDataType::Enum::kFloat32); - EXPECT_EQ(output->Dimensions(), input_shape); - const MLOperator* p_relu = output->Operator(); - ASSERT_THAT(p_relu, testing::NotNull()); - EXPECT_EQ(p_relu->Kind(), webnn::mojom::blink::Operation::Tag::kPrelu); - EXPECT_TRUE(p_relu->IsConnected()); - EXPECT_THAT(p_relu->Options(), testing::IsNull()); - } - { - // Test building prelu with input_shape = {3, 2, 5} and slope_shape = {2}. - Vector<uint32_t> input_shape({3, 2, 5}); - auto* input = BuildInput(builder, "input", input_shape, - V8MLOperandDataType::Enum::kFloat32, - scope.GetExceptionState()); - auto* slope = - BuildConstant(builder, {2}, V8MLOperandDataType::Enum::kFloat32, - scope.GetExceptionState()); - auto* output = builder->prelu(input, slope, scope.GetExceptionState()); - EXPECT_THAT(output, testing::IsNull()); - EXPECT_EQ(scope.GetExceptionState().CodeAs<DOMExceptionCode>(), - DOMExceptionCode::kDataError); - EXPECT_EQ("The shape of slope is not broadcastable to the shape of input.", - scope.GetExceptionState().Message()); - } - { - // Test building prelu with input_shape = {5, 1, 2} and slope_shape = {2, - // 2}. - Vector<uint32_t> input_shape({5, 1, 2}); - auto* input = BuildInput(builder, "input", input_shape, - V8MLOperandDataType::Enum::kFloat32, - scope.GetExceptionState()); - auto* slope = - BuildConstant(builder, {2, 2}, V8MLOperandDataType::Enum::kFloat32, - scope.GetExceptionState()); - auto* output = builder->prelu(input, slope, scope.GetExceptionState()); - EXPECT_THAT(output, testing::IsNull()); - EXPECT_EQ(scope.GetExceptionState().CodeAs<DOMExceptionCode>(), - DOMExceptionCode::kDataError); - EXPECT_EQ("The shape of slope is not broadcastable to the shape of input.", - scope.GetExceptionState().Message()); - } - { - // Test building prelu with input_type = float and slope_type = int32. - Vector<uint32_t> input_shape({3, 2, 5}); - auto* input = BuildInput(builder, "input", input_shape, - V8MLOperandDataType::Enum::kFloat32, - scope.GetExceptionState()); - auto* slope = BuildConstant(builder, {5}, V8MLOperandDataType::Enum::kInt32, - scope.GetExceptionState()); - auto* output = builder->prelu(input, slope, scope.GetExceptionState()); - EXPECT_THAT(output, testing::IsNull()); - EXPECT_EQ(scope.GetExceptionState().CodeAs<DOMExceptionCode>(), - DOMExceptionCode::kDataError); - EXPECT_EQ("The data type of slope doesn't match the data type of input.", - scope.GetExceptionState().Message()); - } - { - // Test building prelu with input_type = int32. - Vector<uint32_t> input_shape({3, 2, 5}); - auto* input = BuildInput(builder, "input", input_shape, - V8MLOperandDataType::Enum::kInt32, - scope.GetExceptionState()); - auto* slope = BuildConstant(builder, {5}, V8MLOperandDataType::Enum::kInt32, - scope.GetExceptionState()); - auto* output = builder->prelu(input, slope, scope.GetExceptionState()); - EXPECT_THAT(output, testing::IsNull()); - EXPECT_EQ(scope.GetExceptionState().CodeAs<DOMExceptionCode>(), - DOMExceptionCode::kDataError); - EXPECT_EQ( - "The data type of input and slope must be one of the floating point " - "types.", - scope.GetExceptionState().Message()); - } -} - MLOperand* BuildGemm(V8TestingScope& scope, MLGraphBuilder* builder, const MLOperand* a,
diff --git a/third_party/blink/renderer/modules/ml/webnn/ml_graph_mojo_test.cc b/third_party/blink/renderer/modules/ml/webnn/ml_graph_mojo_test.cc index 5de8f14f..753b1038 100644 --- a/third_party/blink/renderer/modules/ml/webnn/ml_graph_mojo_test.cc +++ b/third_party/blink/renderer/modules/ml/webnn/ml_graph_mojo_test.cc
@@ -1687,120 +1687,6 @@ } } -struct PreluTester { - OperandInfoBlink input; - OperandInfoBlink slope; - OperandInfoMojo expected; - - void Test(MLGraphTestMojo& helper, - V8TestingScope& scope, - MLGraphBuilder* builder) { - // Build the graph. - auto* input_operand = - BuildInput(builder, "input", input.dimensions, input.data_type, - scope.GetExceptionState()); - auto* slope_operand = - BuildInput(builder, "slope", slope.dimensions, slope.data_type, - scope.GetExceptionState()); - auto* output_operand = - builder->prelu(input_operand, slope_operand, scope.GetExceptionState()); - auto [graph, error_name, error_message] = - helper.BuildGraph(scope, builder, {{"output", output_operand}}); - ASSERT_THAT(graph, testing::NotNull()); - - auto graph_info = helper.GetGraphInfo(); - // Verify the graph information of mojo are as expected. - ASSERT_EQ(graph_info->operations.size(), 1u); - auto& operation = graph_info->operations[0]; - ASSERT_TRUE(operation->is_prelu()); - auto& prelu = operation->get_prelu(); - - // Verify the input operand. - ASSERT_EQ(graph_info->input_operands.size(), 2u); - auto input_operand_id = graph_info->input_operands[0]; - auto input_operand_iter = - graph_info->id_to_operand_map.find(input_operand_id); - ASSERT_TRUE(input_operand_iter != graph_info->id_to_operand_map.end()); - EXPECT_EQ(input_operand_iter->value->kind, - blink_mojom::Operand::Kind::kInput); - EXPECT_EQ(input_operand_iter->value->data_type, expected.data_type); - EXPECT_EQ(input_operand_iter->value->dimensions, input.dimensions); - EXPECT_EQ(input_operand_iter->value->name, "input"); - EXPECT_EQ(prelu->input_operand_id, input_operand_id); - - // Verify the slope operand. - auto slope_operand_id = graph_info->input_operands[1]; - auto slope_operand_iter = - graph_info->id_to_operand_map.find(slope_operand_id); - ASSERT_TRUE(slope_operand_iter != graph_info->id_to_operand_map.end()); - EXPECT_EQ(slope_operand_iter->value->kind, - blink_mojom::Operand::Kind::kInput); - EXPECT_EQ(slope_operand_iter->value->data_type, expected.data_type); - EXPECT_EQ(slope_operand_iter->value->dimensions, slope.dimensions); - EXPECT_EQ(slope_operand_iter->value->name, "slope"); - EXPECT_EQ(prelu->slope_operand_id, slope_operand_id); - - // Verify the output operand. - ASSERT_EQ(graph_info->output_operands.size(), 1u); - auto output_operand_id = graph_info->output_operands[0]; - auto output_operand_iter = - graph_info->id_to_operand_map.find(output_operand_id); - ASSERT_TRUE(output_operand_iter != graph_info->id_to_operand_map.end()); - EXPECT_EQ(output_operand_iter->value->kind, - blink_mojom::Operand::Kind::kOutput); - EXPECT_EQ(output_operand_iter->value->data_type, expected.data_type); - EXPECT_EQ(output_operand_iter->value->dimensions, expected.dimensions); - EXPECT_EQ(output_operand_iter->value->name, "output"); - EXPECT_EQ(prelu->output_operand_id, output_operand_id); - } -}; - -TEST_P(MLGraphTestMojo, PreluTest) { - V8TestingScope scope; - // Bind fake WebNN Context in the service for testing. - ScopedWebNNServiceBinder scoped_setup_binder(*this, scope); - - auto* options = MLContextOptions::Create(); - // Create WebNN Context with GPU device type. - options->setDeviceType(V8MLDeviceType::Enum::kGpu); - auto* builder = CreateGraphBuilder(scope, options); - ASSERT_THAT(builder, testing::NotNull()); - { - // Test prelu operator when input shape is the same as slope shape. - PreluTester{ - .input = {.data_type = V8MLOperandDataType::Enum::kFloat32, - .dimensions = {2, 3, 5}}, - .slope = {.data_type = V8MLOperandDataType::Enum::kFloat32, - .dimensions = {2, 3, 5}}, - .expected = {.data_type = blink_mojom::Operand::DataType::kFloat32, - .dimensions = {2, 3, 5}}} - .Test(*this, scope, builder); - } - { - // Test prelu operator with input shape as {2, 3, 5} and slope shape as {3, - // 5}. - PreluTester{ - .input = {.data_type = V8MLOperandDataType::Enum::kFloat16, - .dimensions = {2, 3, 5}}, - .slope = {.data_type = V8MLOperandDataType::Enum::kFloat16, - .dimensions = {3, 5}}, - .expected = {.data_type = blink_mojom::Operand::DataType::kFloat16, - .dimensions = {2, 3, 5}}} - .Test(*this, scope, builder); - } - { - // Test prelu operator with input shape as {2, 3, 5} and slope shape as {5}. - PreluTester{ - .input = {.data_type = V8MLOperandDataType::Enum::kFloat16, - .dimensions = {2, 3, 5}}, - .slope = {.data_type = V8MLOperandDataType::Enum::kFloat16, - .dimensions = {5}}, - .expected = {.data_type = blink_mojom::Operand::DataType::kFloat16, - .dimensions = {2, 3, 5}}} - .Test(*this, scope, builder); - } -} - struct SoftmaxTester { OperandInfoBlink input; OperandInfoMojo expected; @@ -2014,6 +1900,7 @@ .Test(*this, scope, builder); } } + template <typename T> struct ConstantTester { OperandInfo<T> constant; @@ -2114,17 +2001,6 @@ .Test(*this, scope, builder); } { - // Test Constant operand for UInt32 data type. - ConstantTester<uint32_t>{ - .constant = {.data_type = V8MLOperandDataType::Enum::kUint32, - .dimensions = {2, 3}, - .values = {1, 2, 3, 4, 5, 6}}, - .expected = {.data_type = blink_mojom::Operand::DataType::kUint32, - .dimensions = {2, 3}}, - .expected_constant_data = {1, 2, 3, 4, 5, 6}} - .Test(*this, scope, builder); - } - { // Test Constant operand for Int8 data type. ConstantTester<int8_t>{ .constant = {.data_type = V8MLOperandDataType::Enum::kInt8, @@ -2135,17 +2011,6 @@ .expected_constant_data = {1, 2, 3, 4, 5, 6}} .Test(*this, scope, builder); } - { - // Test Constant operand for UInt8 data type. - ConstantTester<uint8_t>{ - .constant = {.data_type = V8MLOperandDataType::Enum::kUint8, - .dimensions = {2, 3}, - .values = {1, 2, 3, 4, 5, 6}}, - .expected = {.data_type = blink_mojom::Operand::DataType::kUint8, - .dimensions = {2, 3}}, - .expected_constant_data = {1, 2, 3, 4, 5, 6}} - .Test(*this, scope, builder); - } } struct CastTester {
diff --git a/third_party/blink/renderer/modules/ml/webnn/ml_graph_test.cc b/third_party/blink/renderer/modules/ml/webnn/ml_graph_test.cc index b634c4b5..4a770bd0 100644 --- a/third_party/blink/renderer/modules/ml/webnn/ml_graph_test.cc +++ b/third_party/blink/renderer/modules/ml/webnn/ml_graph_test.cc
@@ -514,77 +514,6 @@ } template <typename T> -struct PReluTester { - OperandInfo<T> input; - OperandInfo<T> slope; - Vector<T> expected; - - void Test(MLGraphTest& helper, V8TestingScope& scope) { - // Build the graph. - auto* builder = - CreateMLGraphBuilder(scope.GetExecutionContext(), - scope.GetScriptState(), scope.GetExceptionState()); - auto* input_operand = - BuildInput(builder, "input", input.dimensions, input.data_type, - scope.GetExceptionState()); - auto* slope_operand = - BuildConstant(builder, slope.dimensions, slope.data_type, slope.values, - scope.GetExceptionState()); - auto* output_operand = - builder->prelu(input_operand, slope_operand, scope.GetExceptionState()); - auto [graph, error_name, error_message] = - helper.BuildGraph(scope, builder, {{"output", output_operand}}); - ASSERT_THAT(graph, testing::NotNull()); - - // Compute the graph. - MLNamedArrayBufferViews inputs( - {{"input", - CreateArrayBufferViewForOperand(input_operand, input.values)}}); - MLNamedArrayBufferViews outputs( - {{"output", CreateArrayBufferViewForOperand(output_operand)}}); - std::tie(error_name, error_message) = - helper.ComputeGraph(scope, graph, inputs, outputs); - EXPECT_TRUE(error_name.IsNull()); - auto results = GetArrayBufferViewValues<T>(outputs[0].second); - EXPECT_EQ(results, expected); - } -}; - -TEST_P(MLGraphTest, PReluTest) { - V8TestingScope scope; - { - // Test prelu operator with input_shape = {3} and slope_shape = - // {3}. - PReluTester<float>{ - .input = {.data_type = V8MLOperandDataType::Enum::kFloat32, - .dimensions = {3}, - .values = {1.0, -2.0, 3.0}}, - .slope = {.data_type = V8MLOperandDataType::Enum::kFloat32, - .dimensions = {3}, - .values = {1.0, 2.0, 3.0}}, - .expected = {1.0, -4.0, 3.0}} - .Test(*this, scope); - } - { - // Test prelu operator with input_shape = {1, 2, 3, 3} and slope_shape = {1, - // 3}. - PReluTester<float>{ - .input = {.data_type = V8MLOperandDataType::Enum::kFloat32, - .dimensions = {1, 2, 3, 3}, - .values = {-1.0, -2.0, -3.0, -4.0, -5.0, -6.0, -7.0, -8.0, - -9.0, -10.0, -11.0, -12.0, -13.0, -14.0, -15.0, - -16.0, -17.0, -18.0}}, - .slope = {.data_type = V8MLOperandDataType::Enum::kFloat32, - .dimensions = {1, 3}, - .values = {1.0, 2.0, 3.0}}, - .expected = {-1.0, -4.0, -9.0, -4.0, -10.0, -18.0, -7.0, -16.0, -27.0, - -10.0, -22.0, -36.0, -13.0, -28.0, -45.0, -16.0, -34.0, - -54.0}} - .Test(*this, scope); - } -} - -template <typename T> struct ReluTester { OperandInfo<T> input; Vector<T> expected;
diff --git a/third_party/blink/renderer/platform/fonts/shaping/han_kerning.h b/third_party/blink/renderer/platform/fonts/shaping/han_kerning.h index 63f0a68..d393bce 100644 --- a/third_party/blink/renderer/platform/fonts/shaping/han_kerning.h +++ b/third_party/blink/renderer/platform/fonts/shaping/han_kerning.h
@@ -57,9 +57,6 @@ const FontDescription& font_description, Options options, FontFeatures* features) { - if (!RuntimeEnabledFeatures::CSSTextSpacingTrimEnabled()) { - return; - } if (text.Is8Bit()) { return; }
diff --git a/third_party/blink/renderer/platform/fonts/shaping/han_kerning_test.cc b/third_party/blink/renderer/platform/fonts/shaping/han_kerning_test.cc index 9b2e03a1..b8e9d416 100644 --- a/third_party/blink/renderer/platform/fonts/shaping/han_kerning_test.cc +++ b/third_party/blink/renderer/platform/fonts/shaping/han_kerning_test.cc
@@ -23,10 +23,7 @@ 16.0); } -class HanKerningTest : public testing::Test, ScopedCSSTextSpacingTrimForTest { - public: - explicit HanKerningTest() : ScopedCSSTextSpacingTrimForTest(true) {} -}; +class HanKerningTest : public testing::Test {}; TEST_F(HanKerningTest, MayApply) { Font noto_cjk = CreateNotoCjk();
diff --git a/third_party/blink/renderer/platform/fonts/shaping/shaping_line_breaker.cc b/third_party/blink/renderer/platform/fonts/shaping/shaping_line_breaker.cc index fb2151e7..c0cab93 100644 --- a/third_party/blink/renderer/platform/fonts/shaping/shaping_line_breaker.cc +++ b/third_party/blink/renderer/platform/fonts/shaping/shaping_line_breaker.cc
@@ -97,8 +97,7 @@ // When it's not at the start of a wrapped line, disable reshaping. return {start}; } - if (UNLIKELY(RuntimeEnabledFeatures::CSSTextSpacingTrimEnabled()) && - UNLIKELY(ShouldTrimStartOfWrappedLine(text_spacing_trim_)) && + if (UNLIKELY(ShouldTrimStartOfWrappedLine(text_spacing_trim_)) && UNLIKELY(Character::MaybeHanKerningOpen(GetText()[start]))) { // `HanKerning` wants to apply kerning to `kOpen` characters at the start of // the line. Reshape it to resolve the `SimpleFontData` and apply @@ -321,7 +320,6 @@ unsigned last_safe; const ShapeResult* line_end_result = nullptr; if (candidate_break < range_end && - UNLIKELY(RuntimeEnabledFeatures::CSSTextSpacingTrimEnabled()) && ShouldTrimEnd(text_spacing_trim_) && UNLIKELY(Character::MaybeHanKerningClose(text[candidate_break]))) { const unsigned adjusted_candidate_break = candidate_break + 1;
diff --git a/third_party/blink/renderer/platform/graphics/canvas_resource_provider_test.cc b/third_party/blink/renderer/platform/graphics/canvas_resource_provider_test.cc index 8eb0221..bc617a5 100644 --- a/third_party/blink/renderer/platform/graphics/canvas_resource_provider_test.cc +++ b/third_party/blink/renderer/platform/graphics/canvas_resource_provider_test.cc
@@ -554,9 +554,9 @@ EXPECT_TRUE(provider->IsSingleBuffered()); viz::TransferableResource tr; - tr.mailbox_holder.mailbox = gpu::Mailbox::GenerateForSharedImage(); - tr.mailbox_holder.texture_target = GL_TEXTURE_2D; - tr.mailbox_holder.sync_token = gpu::SyncToken(); + tr.set_mailbox(gpu::Mailbox::GenerateForSharedImage()); + tr.set_texture_target(GL_TEXTURE_2D); + tr.set_sync_token(gpu::SyncToken()); tr.size = kSize; tr.is_overlay_candidate = true;
diff --git a/third_party/blink/renderer/platform/graphics/gpu/drawing_buffer.cc b/third_party/blink/renderer/platform/graphics/gpu/drawing_buffer.cc index eecb839..84c3ac09 100644 --- a/third_party/blink/renderer/platform/graphics/gpu/drawing_buffer.cc +++ b/third_party/blink/renderer/platform/graphics/gpu/drawing_buffer.cc
@@ -780,8 +780,8 @@ using_swap_chain_ ? front_color_buffer_ : back_color_buffer_; viz::TransferableResource resource; - resource.mailbox_holder.mailbox = color_buffer->shared_image->mailbox(); - resource.mailbox_holder.texture_target = color_buffer->texture_target; + resource.set_mailbox(color_buffer->shared_image->mailbox()); + resource.set_texture_target(color_buffer->texture_target); resource.size = color_buffer->size; resource.format = color_buffer->format; resource.is_overlay_candidate = color_buffer->is_overlay_candidate;
diff --git a/third_party/blink/renderer/platform/loader/fetch/script_fetch_options.h b/third_party/blink/renderer/platform/loader/fetch/script_fetch_options.h index 046b6ee..772b40e 100644 --- a/third_party/blink/renderer/platform/loader/fetch/script_fetch_options.h +++ b/third_party/blink/renderer/platform/loader/fetch/script_fetch_options.h
@@ -57,9 +57,15 @@ const IntegrityMetadataSet& GetIntegrityMetadata() const { return integrity_metadata_; } + void SetIntegrityMetadata(IntegrityMetadataSet metadata) { + integrity_metadata_ = metadata; + } const String& GetIntegrityAttributeValue() const { return integrity_attribute_; } + void SetIntegrityAttributeValue(const String& value) { + integrity_attribute_ = value; + } const ParserDisposition& ParserState() const { return parser_state_; } network::mojom::CredentialsMode CredentialsMode() const { return credentials_mode_; @@ -102,8 +108,8 @@ const String nonce_; // https://html.spec.whatwg.org/C/#concept-script-fetch-options-integrity - const IntegrityMetadataSet integrity_metadata_; - const String integrity_attribute_; + IntegrityMetadataSet integrity_metadata_; + String integrity_attribute_; // https://html.spec.whatwg.org/C/#concept-script-fetch-options-parser const ParserDisposition parser_state_;
diff --git a/third_party/blink/renderer/platform/peerconnection/rtc_video_decoder_factory.cc b/third_party/blink/renderer/platform/peerconnection/rtc_video_decoder_factory.cc index 00a52ea6..d271090 100644 --- a/third_party/blink/renderer/platform/peerconnection/rtc_video_decoder_factory.cc +++ b/third_party/blink/renderer/platform/peerconnection/rtc_video_decoder_factory.cc
@@ -174,7 +174,8 @@ {cricket::kH265FmtpTierFlag, webrtc::H265TierToString(profile_tier_level.tier)}, {cricket::kH265FmtpLevelId, - webrtc::H265LevelToString(profile_tier_level.level)}}; + webrtc::H265LevelToString(profile_tier_level.level)}, + {cricket::kH265FmtpTxMode, "SRST"}}; return format; #else return std::nullopt;
diff --git a/third_party/blink/renderer/platform/peerconnection/rtc_video_decoder_factory_test.cc b/third_party/blink/renderer/platform/peerconnection/rtc_video_decoder_factory_test.cc index 9af3eaf..f1ec61f 100644 --- a/third_party/blink/renderer/platform/peerconnection/rtc_video_decoder_factory_test.cc +++ b/third_party/blink/renderer/platform/peerconnection/rtc_video_decoder_factory_test.cc
@@ -63,11 +63,13 @@ const webrtc::SdpVideoFormat kH265MainProfileSdp("H265", {{"profile-id", "1"}, {"tier-flag", "0"}, - {"level-id", "93"}}); + {"level-id", "93"}, + {"tx-mode", "SRST"}}); const webrtc::SdpVideoFormat kH265Main10ProfileSdp("H265", {{"profile-id", "2"}, {"tier-flag", "0"}, - {"level-id", "93"}}); + {"level-id", "93"}, + {"tx-mode", "SRST"}}); #endif // BUILDFLAG(RTC_USE_H265) bool Equals(webrtc::VideoDecoderFactory::CodecSupport a,
diff --git a/third_party/blink/renderer/platform/peerconnection/rtc_video_encoder_factory.cc b/third_party/blink/renderer/platform/peerconnection/rtc_video_encoder_factory.cc index 76a809d..9a7b8c6 100644 --- a/third_party/blink/renderer/platform/peerconnection/rtc_video_encoder_factory.cc +++ b/third_party/blink/renderer/platform/peerconnection/rtc_video_encoder_factory.cc
@@ -208,7 +208,8 @@ {cricket::kH265FmtpTierFlag, webrtc::H265TierToString(profile_tier_level.tier)}, {cricket::kH265FmtpLevelId, - webrtc::H265LevelToString(profile_tier_level.level)}}; + webrtc::H265LevelToString(profile_tier_level.level)}, + {cricket::kH265FmtpTxMode, "SRST"}}; return format; #else return std::nullopt; @@ -253,6 +254,26 @@ // Supported H.265 formats must be added to the end of supported codecs. #if BUILDFLAG(RTC_USE_H265) if (format->name == cricket::kH265CodecName) { + const std::optional<webrtc::H265ProfileTierLevel> profile_tier_level = + webrtc::ParseSdpForH265ProfileTierLevel(format->parameters); + // https://datatracker.ietf.org/doc/draft-ietf-avtcore-hevc-webrtc/: + // according to above spec, level 3.1 is mandatory to support. So + // unlike H.264 which has level-asymmetry-allowed parameter in SDP to + // signal support for asymmetric levels, we need to add level 3.1 + // explicitly if GPU factory reports supporting of level higher than + // 3.1, to make sure that if remote only supports level 3.1, we still + // allow the SDP negotiation to succeed. + if (profile_tier_level && + profile_tier_level->level > webrtc::H265Level::kLevel3_1) { + webrtc::SdpVideoFormat level_3_1_format(*format); + format->parameters[cricket::kH265FmtpLevelId] = + webrtc::H265LevelToString(webrtc::H265Level::kLevel3_1); + low_priority_formats.profiles.push_back(profile.profile); + low_priority_formats.scalability_modes.push_back( + profile.scalability_modes); + low_priority_formats.sdp_formats.push_back(level_3_1_format); + } + low_priority_formats.profiles.push_back(profile.profile); low_priority_formats.scalability_modes.push_back( profile.scalability_modes);
diff --git a/third_party/blink/renderer/platform/peerconnection/rtc_video_encoder_factory_test.cc b/third_party/blink/renderer/platform/peerconnection/rtc_video_encoder_factory_test.cc index 40e3eabf..73faaae 100644 --- a/third_party/blink/renderer/platform/peerconnection/rtc_video_encoder_factory_test.cc +++ b/third_party/blink/renderer/platform/peerconnection/rtc_video_encoder_factory_test.cc
@@ -32,6 +32,13 @@ false}; constexpr gfx::Size kMaxResolution = {1920, 1080}; constexpr uint32_t kMaxFramerateNumerator = 30; + +#if BUILDFLAG(RTC_USE_H265) +// Settings from video toolbox encoder. +constexpr gfx::Size kHEVCMaxResolution = {4096, 2304}; +constexpr uint32_t kHEVCMaxFramerateNumerator = 120; +#endif // BUILDFLAG(RTC_USE_H265) + constexpr uint32_t kMaxFramerateDenominator = 1; const std::vector<media::SVCScalabilityMode> kScalabilityModes = { media::SVCScalabilityMode::kL1T1, media::SVCScalabilityMode::kL1T2, @@ -65,9 +72,9 @@ kMaxFramerateDenominator, media::VideoEncodeAccelerator::kConstantMode, kScalabilityModes}, #if BUILDFLAG(RTC_USE_H265) - {media::HEVCPROFILE_MAIN, kMaxResolution, kMaxFramerateNumerator, - kMaxFramerateDenominator, media::VideoEncodeAccelerator::kConstantMode, - kScalabilityModes} + {media::HEVCPROFILE_MAIN, kHEVCMaxResolution, + kHEVCMaxFramerateNumerator, kMaxFramerateDenominator, + media::VideoEncodeAccelerator::kConstantMode, kScalabilityModes} #endif // BUILDFLAG(RTC_USE_H265) }; return profiles; @@ -222,6 +229,21 @@ /*scalability_mode=*/std::nullopt), kSupportedPowerEfficient)); + // GPU factory reports maximum supported level to be 5.2, which is higher than + // 3.1. As a result, RTC encoder factory reports level 3.1 to be supported as + // well. + EXPECT_TRUE(Equals(encoder_factory_.QueryCodecSupport( + webrtc::SdpVideoFormat( + "H265", {{"profile-id", "1"}, {"level-id", "93"}}), + /*scalability_mode=*/std::nullopt), + kSupportedPowerEfficient)); + + EXPECT_TRUE(Equals(encoder_factory_.QueryCodecSupport( + webrtc::SdpVideoFormat("H265", {{"profile-id", "1"}, + {"level-id", "156"}}), + /*scalability_mode=*/std::nullopt), + kSupportedPowerEfficient)); + // Main10 profile is not supported by mock factory here. EXPECT_TRUE(Equals(encoder_factory_.QueryCodecSupport( webrtc::SdpVideoFormat("H265", {{"profile-id", "2"}}),
diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 b/third_party/blink/renderer/platform/runtime_enabled_features.json5 index 0bd9776..9e21e8d 100644 --- a/third_party/blink/renderer/platform/runtime_enabled_features.json5 +++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5
@@ -1052,12 +1052,7 @@ { // crbug.com/1463890, crbug.com/1463891: CSS `text-spacing` shorthand name: "CSSTextSpacing", - depends_on: ["CSSTextAutoSpace", "CSSTextSpacingTrim"], - }, - { - // crbug.com/1463891: CSS `text-spacing-trim` property - name: "CSSTextSpacingTrim", - status: "stable", + depends_on: ["CSSTextAutoSpace"], }, { // Support for tree-scoped [1] timeline names (e.g. produced by @@ -2063,6 +2058,10 @@ status: "stable" }, { + name: "ImportMapIntegrity", + status: "experimental" + }, + { // ImprovedXMLErrors tweaks the way that we emit XML parsing errors in // some cases in order to comply with upstream changes to libxml. // Shipping in M123, so should be safe to remove in M126.
diff --git a/third_party/blink/web_tests/TestExpectations b/third_party/blink/web_tests/TestExpectations index fbe91fe..6a00a6de 100644 --- a/third_party/blink/web_tests/TestExpectations +++ b/third_party/blink/web_tests/TestExpectations
@@ -2546,12 +2546,12 @@ crbug.com/626703 external/wpt/uievents/mouse/mouse_boundary_events_after_removing_last_over_element.html [ Failure ] # ====== New tests from wpt-importer added here ====== -[ Win11-arm64 ] external/wpt/css/css-color/parsing/color-computed-relative-color.html [ Failure Timeout ] -[ Win11-arm64 ] external/wpt/service-workers/service-worker/ServiceWorkerGlobalScope/error-message-event.https.html [ Failure Timeout ] -[ Mac11 ] external/wpt/shadow-dom/focus-navigation/delegatesFocus-highlight-sibling.html [ Timeout ] -[ Mac13 ] external/wpt/shadow-dom/focus-navigation/focus-navigation-slot-fallback.html [ Timeout ] -[ Mac12 ] external/wpt/shadow-dom/focus-navigation/focus-navigation-slot-fallback.html [ Timeout ] -[ Mac12 ] external/wpt/shadow-dom/focus-navigation/focus-navigation-slot-with-tabindex.html [ Timeout ] +crbug.com/339115424 [ Win11-arm64 ] external/wpt/css/css-color/parsing/color-computed-relative-color.html [ Failure Timeout ] +crbug.com/339057198 [ Win11-arm64 ] external/wpt/service-workers/service-worker/ServiceWorkerGlobalScope/error-message-event.https.html [ Failure Timeout ] +crbug.com/339098898 [ Mac11 ] external/wpt/shadow-dom/focus-navigation/delegatesFocus-highlight-sibling.html [ Timeout ] +crbug.com/339098898 [ Mac13 ] external/wpt/shadow-dom/focus-navigation/focus-navigation-slot-fallback.html [ Timeout ] +crbug.com/339098898 [ Mac12 ] external/wpt/shadow-dom/focus-navigation/focus-navigation-slot-fallback.html [ Timeout ] +crbug.com/339098898 [ Mac12 ] external/wpt/shadow-dom/focus-navigation/focus-navigation-slot-with-tabindex.html [ Timeout ] crbug.com/338457111 [ Mac12 ] external/wpt/fs/FileSystemFileHandle-move.https.any.worker.html [ Timeout ] crbug.com/338457111 [ Win11-arm64 ] external/wpt/fs/FileSystemFileHandle-move.https.any.worker.html [ Timeout ] crbug.com/338457112 [ Mac12 ] external/wpt/workers/Worker-terminate-forever-during-evaluation.html [ Timeout ]
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 191ddd2..6489011 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
@@ -295737,7 +295737,7 @@ [] ], "cookie-test.js": [ - "a909e4d72facf95760ef35c96efbb426bbc9c8e0", + "8299c4731786dcf6ada011820e008d670a4df78d", [] ], "cookie.py": [ @@ -389622,7 +389622,7 @@ "focus-navigation": { "resources": { "focus-utils.js": [ - "ef517c588e5764e171b24859a5bf3ab2859cfe51", + "f4056dc1688442c2c41ce9421161bea448da7c2f", [] ], "shadow-dom.js": [ @@ -516240,10 +516240,17 @@ ] ], "resources-with-0x00-in-header.window.js": [ - "37a61c12b561b260725f8da61b8478c5d9b713af", + "b617911105acb45f5881f1988b52162702f31841", [ "fetch/h1-parsing/resources-with-0x00-in-header.window.html", - {} + { + "script_metadata": [ + [ + "script", + "/common/get-host-info.sub.js" + ] + ] + } ] ], "status-code.window.js": [
diff --git a/third_party/blink/web_tests/external/wpt/cookies/resources/cookie-test.js b/third_party/blink/web_tests/external/wpt/cookies/resources/cookie-test.js index a909e4d..8299c47 100644 --- a/third_party/blink/web_tests/external/wpt/cookies/resources/cookie-test.js +++ b/third_party/blink/web_tests/external/wpt/cookies/resources/cookie-test.js
@@ -76,7 +76,6 @@ } catch { if (allowFetchFailure) { skipAssertions = true; - resolve(); } else { reject('Failed to fetch /cookies/resources/cookie.py'); }
diff --git a/third_party/blink/web_tests/external/wpt/fetch/h1-parsing/resources-with-0x00-in-header.window.js b/third_party/blink/web_tests/external/wpt/fetch/h1-parsing/resources-with-0x00-in-header.window.js index 37a61c1..b617911 100644 --- a/third_party/blink/web_tests/external/wpt/fetch/h1-parsing/resources-with-0x00-in-header.window.js +++ b/third_party/blink/web_tests/external/wpt/fetch/h1-parsing/resources-with-0x00-in-header.window.js
@@ -1,3 +1,5 @@ +// META: script=/common/get-host-info.sub.js + async_test(t => { const script = document.createElement("script"); t.add_cleanup(() => script.remove()); @@ -29,3 +31,7 @@ img.onload = t.unreached_func(); document.body.append(img); }, "Expect network error for image with 0x00 in a header"); + +promise_test(async t => { + return promise_rejects_js(t, TypeError, fetch(get_host_info().HTTP_REMOTE_ORIGIN + "/fetch/h1-parsing/resources/blue-with-0x00-in-a-header.asis", {mode:"no-cors"})); +}, "Expect network error for fetch with 0x00 in a header");
diff --git a/third_party/blink/web_tests/external/wpt/import-maps/dynamic-integrity.html b/third_party/blink/web_tests/external/wpt/import-maps/dynamic-integrity.html new file mode 100644 index 0000000..7a6fed7 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/import-maps/dynamic-integrity.html
@@ -0,0 +1,87 @@ +<!DOCTYPE html> +<html> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script> +let log; +</script> +<script type="importmap"> +{ + "imports": { + "./resources/log.js?pipe=sub&name=ResolvesToBadHash": "./resources/log.js?pipe=sub&name=BadHash", + "./resources/log.js?pipe=sub&name=ResolvesToNoHash": "./resources/log.js?pipe=sub&name=NoHash", + "./resources/log.js?pipe=sub&name=GoodHash": "./resources/log.js?pipe=sub&name=GoodHash", + "bare": "./resources/log.js?pipe=sub&name=BareURL", + "bare2": "./resources/log.js?pipe=sub&name=F" + }, + "integrity": { + "./resources/log.js?pipe=sub&name=BadHash": "sha384-foobar", + "./resources/log.js?pipe=sub&name=ResolvesToNoHash": "sha384-foobar", + "./resources/log.js?pipe=sub&name=GoodHash": "sha384-SwfgBqInhSlLziU454cYhGgwPpae+d3VHZcY+vjZIO/gxRGt2u3Jsfyvure/Ww0u", + "./resources/log.js?pipe=sub&name=InvalidExtra": "sha384-WsKk8nzJFPhk/4pWR4LYoPhEu3xaAc6PdIm4vmqoZVWqEgMYmZgOg9XJKxgD1+8v foobar-rOJN8igD0+jW6lwNN3+InhXTgQztVHlq/HJ0riswXp8kMoiIDx5JpmCwuVem6Ll9q2LFNSu1xq23bsBMMQk1rg==", + "./resources/log.js?pipe=sub&name=Suffix": "sha384-lbOWldbmji7sCHI/L8iVJ+elmFIMp41p+aYOLxqQfZMqtoFeHFVe/ASRA0IyZ1/9?foobar", + "./resources/log.js?pipe=sub&name=Multiple": "sha384-foobar sha512-rOJN8igD0+jW6lwNN3+InhXTgQztVHlq/HJ0riswXp8kMoiIDx5JpmCwuVem6Ll9q2LFNSu1xq23bsBMMQk1rg==", + "./resources/log.js?pipe=sub&name=BadHashWithNoImport": "sha384-foobar", + "./resources/log.js?pipe=sub&name=BareURL": "sha384-foobar", + "bare2": "sha384-foobar", + "resources/log.js?pipe=sub&name=Bare": "sha384-foobar" + } +} +</script> +<script type="module"> +const test_not_loaded = (url, description) => { + promise_test(async t => { + log = []; + const promise = import(url); + await promise_rejects_js(t, TypeError, promise); + assert_array_equals(log, []); + }, description); +}; + +const test_loaded = (url, log_expectation, description) => { + promise_test(async t => { + log = []; + await import(url); + assert_array_equals(log, log_expectation); + }, description); +}; + +test_not_loaded("./resources/log.js?pipe=sub&name=ResolvesToBadHash", + 'script was not loaded, as its resolved URL failed its integrity check'); + +test_loaded("./resources/log.js?pipe=sub&name=ResolvesToNoHash", ["log:NoHash"], + 'script was loaded, as its resolved URL had no integrity check, despite' + + ' its specifier having one'); + +test_loaded("./resources/log.js?pipe=sub&name=GoodHash", ["log:GoodHash"], + 'script was loaded, as its integrity check passed'); + +test_not_loaded("./resources/log.js?pipe=sub&name=BadHashWithNoImport", + 'Script with no import definition was not loaded, as it failed its' + + ' integrity check'); + +test_not_loaded("bare", + 'Bare specifier script was not loaded, as it failed its integrity check'); + +test_loaded("bare2", ["log:F"], + 'Bare specifier used for integrity loaded, as its definition should have' + + ' used the URL'); + +test_loaded("./resources/log.js?pipe=sub&name=InvalidExtra", + ["log:InvalidExtra"], + 'script was loaded, as its integrity check passed, despite having an extra' + + ' invalid hash'); + +test_loaded("./resources/log.js?pipe=sub&name=Suffix", ["log:Suffix"], + 'script was loaded, as its integrity check passed, despite having an' + + ' invalid suffix'); + +test_loaded("./resources/log.js?pipe=sub&name=Multiple", ["log:Multiple"], + 'script was loaded, as its integrity check passed given multiple hashes.' + + ' This also makes sure that the larger hash is picked.'); + +test_loaded("./resources/log.js?pipe=sub&name=Bare",["log:Bare"], + 'script was loaded, as its integrity check was ignored, as it was defined' + + ' using a URL that looks like a bare specifier'); +</script> +
diff --git a/third_party/blink/web_tests/external/wpt/import-maps/no-referencing-script-integrity-valid.html b/third_party/blink/web_tests/external/wpt/import-maps/no-referencing-script-integrity-valid.html new file mode 100644 index 0000000..2594459fc --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/import-maps/no-referencing-script-integrity-valid.html
@@ -0,0 +1,37 @@ +<!DOCTYPE html> +<html> +<head> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script> +let log = []; +</script> +<script type="importmap"> +{ + "integrity": { + "./resources/log.js?pipe=sub&name=NoReferencingScriptValidCheck": "sha384-5eRmXQSBE6H5ENdymdZxcyiIfJL1dxtH8p+hOelZY7Jzk+gt0gYyemrGY0cEaThF" + } +} +</script> +<script> +let promiseResolve; +let promiseReject; +let promise = new Promise((resolve, reject) => { + promiseResolve = resolve; + promiseReject = reject; +}); +</script> +</head> +<body> +<img src="/images/green.png?2" + onload="import('./resources/log.js?pipe=sub&name=NoReferencingScriptValidCheck').then(promiseResolve).catch(promiseReject)"> +<script> +promise_test(async () => { + await promise; + assert_equals(log.length, 1); + assert_equals(log[0], "log:NoReferencingScriptValidCheck"); +}, "Script was loaded as its valid integrity check passed"); +</script> +</body> +</html> +
diff --git a/third_party/blink/web_tests/external/wpt/import-maps/no-referencing-script-integrity.html b/third_party/blink/web_tests/external/wpt/import-maps/no-referencing-script-integrity.html new file mode 100644 index 0000000..8025ba3 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/import-maps/no-referencing-script-integrity.html
@@ -0,0 +1,34 @@ +<!DOCTYPE html> +<html> +<head> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script> +let log = []; +</script> +<script type="importmap"> +{ + "integrity": { + "./resources/log.js?pipe=sub&name=NoReferencingScriptInvalidCheck": "sha384-Li9vy3DqF8tnTXuiaAJuML3ky+er10rcgNR/VqsVpcw+ThHmYcwiB1pbOxEbzJr7" + } +} +</script> +<script> +let promiseResolve; +let promiseReject; +let promise = new Promise((resolve, reject) => { + promiseResolve = resolve; + promiseReject = reject; +}); +</script> +</head> +<body> +<img src="/images/green.png" + onload="import('./resources/log.js?pipe=sub&name=NoReferencingScriptInvalidCheck').then(promiseResolve).catch(promiseReject)"> +<script type="module"> +promise_test(async t => { + await promise_rejects_js(t, TypeError, promise); +}, "Script was not loaded as its integrity check failed"); +</script> +</body> +</html>
diff --git a/third_party/blink/web_tests/external/wpt/import-maps/nonimport-integrity.html b/third_party/blink/web_tests/external/wpt/import-maps/nonimport-integrity.html new file mode 100644 index 0000000..1157ee6 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/import-maps/nonimport-integrity.html
@@ -0,0 +1,161 @@ +<!DOCTYPE html> +<html> +<head> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script> +let log = []; +</script> +<script type="importmap"> +{ + "integrity": { + "./resources/log.js?pipe=sub&name=ModuleNoIntegrity": "sha384-foobar", + "./resources/log.js?pipe=sub&name=ModuleIntegrity": "sha384-foobar", + "./resources/log.js?pipe=sub&name=ModuleEmptyIntegrity": "sha384-foobar", + "./resources/log.js?pipe=sub&name=ModuleBadIntegrityAttribute": "sha384-COhDkp+ybIZ9wz9hUaSJ5NzKcn8wOMZMpsACZfTeEdBRtNcX5yWJnFn+lIK77Tay", + "./resources/log.js?pipe=sub&name=ModulePreloadNoIntegrity": "sha384-foobar", + "./resources/log.js?pipe=sub&name=ModulePreloadIntegrity": "sha384-foobar", + "./resources/log.js?pipe=sub&name=ModulePreloadEmptyIntegrity": "sha384-foobar", + "./resources/log.js?pipe=sub&name=ModulePreloadBadIntegrityAttribute": "sha384-026dlUs9+KSmPb0Uc7oUPOlWBO67o7vSFdfLJZWEVTvKCly5NXO8+CsOXl54ZBqJ", + "./resources/log.js?pipe=sub&name=NonModule": "sha384-foobar", + "/images/green.png": "sha384-foobar" + } +} +</script> +<script type="module"> +promise_test(async t => { + log = []; + const script = document.createElement("script"); + script.type = "module"; + script.src = "./resources/log.js?pipe=sub&name=ModuleNoIntegrity"; + const promise = new Promise((resolve, reject) => { + script.onload = resolve; + script.onerror = () => { reject(Error()); }; + }); + document.head.appendChild(script); + await promise_rejects_js(t, Error, promise); +}, "Script was not loaded as its integrity check was not ignored"); + +promise_test(async () => { + log = []; + const script = document.createElement("script"); + script.type = "module"; + script.integrity = "sha384-QtZrhNFOSmHASHnBdmGg+zrVz5hjukCBakaqwT2pcG7w+QTa/niK16csP6kXAeXI"; + script.src = "./resources/log.js?pipe=sub&name=ModuleIntegrity"; + const promise = new Promise((resolve, reject) => { + script.onload = resolve; + script.onerror = reject; + }); + document.head.appendChild(script); + await promise; + assert_equals(log.length, 1); + assert_equals(log[0], "log:ModuleIntegrity"); +}, "Script was loaded as its correct integrity attribute was not ignored"); + +promise_test(async () => { + log = []; + const script = document.createElement("script"); + script.type = "module"; + script.integrity = ""; + script.src = "./resources/log.js?pipe=sub&name=ModuleEmptyIntegrity"; + const promise = new Promise((resolve, reject) => { + script.onload = resolve; + script.onerror = reject; + }); + document.head.appendChild(script); + await promise; + assert_equals(log.length, 1); + assert_equals(log[0], "log:ModuleEmptyIntegrity"); +}, "Script was loaded as its empty integrity attribute was not ignored"); + +promise_test(async t => { + log = []; + const script = document.createElement("script"); + script.type = "module"; + script.integrity = "sha384-foobar"; + script.src = "./resources/log.js?pipe=sub&name=ModuleBadIntegrityAttribute"; + const promise = new Promise((resolve, reject) => { + script.onload = resolve; + script.onerror = () => { reject(Error()); }; + }); + document.head.appendChild(script); + await promise_rejects_js(t, Error, promise); +}, "Script was not loaded as its bad integrity attribute was not overridden"); + +promise_test(async t => { + const link = document.createElement("link"); + link.rel = "modulepreload"; + link.href = "./resources/log.js?pipe=sub&name=ModulePreloadNoIntegrity"; + const promise = new Promise((resolve, reject) => { + link.onload = resolve; + link.onerror = () => { reject(Error()); }; + }); + document.head.appendChild(link); + await promise_rejects_js(t, Error, promise); +}, "Modulepreload was not loaded as its integrity check was not ignored"); + +promise_test(async () => { + const link = document.createElement("link"); + link.rel = "modulepreload"; + link.integrity = "sha384-iDG3WysExtjWvD9QwQrC7nGXRvO0jM+r7Z2cOLMDO2geMlEtmN9j9xfqHfzT45+9"; + link.href = "./resources/log.js?pipe=sub&name=ModulePreloadIntegrity"; + const promise = new Promise((resolve, reject) => { + link.onload = resolve; + link.onerror = reject; + }); + document.head.appendChild(link); + await promise; +}, "Modulepreload was loaded as its correct integrity attribute was not ignored"); + +promise_test(async () => { + const link = document.createElement("link"); + link.rel = "modulepreload"; + link.integrity = ""; + link.href = "./resources/log.js?pipe=sub&name=ModulePreloadEmptyIntegrity"; + const promise = new Promise((resolve, reject) => { + link.onload = resolve; + link.onerror = reject; + }); + document.head.appendChild(link); + await promise; +}, "Modulepreload was loaded as its empty integrity attribute was not ignored"); + +promise_test(async t => { + const link = document.createElement("link"); + link.rel = "modulepreload"; + link.integrity = "sha384-foobar"; + link.href = "./resources/log.js?pipe=sub&name=ModulePreloadBadIntegrityAttribute"; + const promise = new Promise((resolve, reject) => { + link.onload = resolve; + link.onerror = () => { reject(Error()); }; + }); + document.head.appendChild(link); + await promise_rejects_js(t, Error, promise); +}, "Modulepreload was not loaded as its bad integrity attribute was not ignored"); + +promise_test(async () => { + log = []; + const script = document.createElement("script"); + script.src = "./resources/log.js?pipe=sub&name=NonModule"; + const promise = new Promise((resolve, reject) => { + script.onload = resolve; + script.onerror = reject; + }); + document.head.appendChild(script); + await promise; + assert_equals(log.length, 1); + assert_equals(log[0], "log:NonModule"); +}, "Classic script was loaded as its integrity check was ignored"); + +promise_test(async () => { + const img = document.createElement("img"); + const promise = new Promise((resolve, reject) => { + img.onload = resolve; + img.onerror = reject; + }); + img.src = "/images/green.png"; + document.head.appendChild(img); + await promise; +}, "Image was loaded as its integrity check was ignored"); +</script> +</head>
diff --git a/third_party/blink/web_tests/external/wpt/import-maps/static-integrity.html b/third_party/blink/web_tests/external/wpt/import-maps/static-integrity.html new file mode 100644 index 0000000..d1d3649 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/import-maps/static-integrity.html
@@ -0,0 +1,68 @@ +<!DOCTYPE html> +<html> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script> +let log = []; +</script> +<script type="importmap"> +{ + "imports": { + "./resources/log.js?pipe=sub&name=A": "./resources/log.js?pipe=sub&name=B", + "./resources/log.js?pipe=sub&name=C": "./resources/log.js?pipe=sub&name=D" + }, + "integrity": { + "./resources/log.js?pipe=sub&name=B": "sha384-Li9vy3DqF8tnTXuiaAJuML3ky+er10rcgNR/VqsVpcw+ThHmYcwiB1pbOxEbzJr7", + "./resources/log.js?pipe=sub&name=D": "sha384-rxZqznFuOnvObm6JJKVmwzBXrsRG25IepqKDFHGhtitRu9YPjxPpRPMIu2hzvtxF", + "./resources/log.js?pipe=sub&name=X": "sha384-mCon9M46vUfNK2Wb3yjvBmpBw/3hwB+wMYS8IzDBng+7//R5Qao35E1azo4gFVzx", + "./resources/log.js?pipe=sub&name=Y": "sha384-u0yaFlBF39Au++qcn+MGL/Ml7UmuVfLymNJAz6Yyi4RqyUfWelcuAzVyE8Shs9xn", + "./resources/log.js?pipe=sub&name=Z": "sha384-u0yaFlBF39Au++qcn+MGL/Ml7UmuVfLymNJAz6Yyi4RqyUfWelcuAzVyE8Shs9xn" + } +} +</script> +<script type="module"> +import './resources/log.js?pipe=sub&name=A'; +</script> +<script type="module"> +test(t => { + assert_array_equals(log, []); + }, 'Static script did not load as it failed its integrity check'); +log = []; +</script> +<script type="module"> +import './resources/log.js?pipe=sub&name=C'; +</script> +<script type="module"> +test(t => { + assert_array_equals(log, ["log:D"]); + }, 'Static script loaded as its integrity check passed'); +log = []; +</script> +<script type="module"> +import './resources/log.js?pipe=sub&name=X'; +</script> +<script type="module"> +test(t => { + assert_array_equals(log, []); + }, 'Static script did not load as it failed its integrity check, even' + + ' without an import defined'); +log = []; +</script> +<script type="module"> +import './resources/log.js?pipe=sub&name=Y'; +</script> +<script type="module"> +test(t => { + assert_array_equals(log, ["log:Y"]); + }, 'Static script loaded as its integrity check passed without an import' + + ' defined'); +log = []; +</script> +<script type="module" src="./resources/log.js?pipe=sub&name=Z">; +</script> +<script type="module"> +test(t => { + assert_array_equals(log, []); + }, 'HTML-based module script did not load as its integrity check failed.'); +log = []; +</script>
diff --git a/third_party/blink/web_tests/external/wpt/service-workers/service-worker/fetch-request-resources.https.html b/third_party/blink/web_tests/external/wpt/service-workers/service-worker/fetch-request-resources.https.html index b4680c3..9524e6d 100644 --- a/third_party/blink/web_tests/external/wpt/service-workers/service-worker/fetch-request-resources.https.html +++ b/third_party/blink/web_tests/external/wpt/service-workers/service-worker/fetch-request-resources.https.html
@@ -90,7 +90,67 @@ destination: 'script', message: `Script load (url:${actual_url})` }; - frame.contentWindow.load_script_with_integrity(actual_url, integrity); + frame.contentWindow.load_script_with_integrity(actual_url, integrity, /*type=*/null); + return add_promise_to_test(actual_url); +} + +function module_script_integrity_test(frame, url, integrity, expected_integrity) { + const actual_url = url + "_module"; + expected_results[actual_url] = { + url: actual_url, + mode: 'cors', + credentials: 'same-origin', + redirect: 'follow', + integrity: expected_integrity, + destination: 'script', + message: `Module Script load (url:${actual_url})` + }; + frame.contentWindow.load_script_with_integrity(actual_url, integrity, "module"); + return add_promise_to_test(actual_url); +} + +function modulepreload_integrity_test(frame, url, integrity, expected_integrity) { + const actual_url = url + "_modulepreload"; + expected_results[actual_url] = { + url: actual_url, + mode: 'cors', + credentials: 'same-origin', + redirect: 'follow', + integrity: expected_integrity, + destination: 'script', + message: `Module Script load (url:${actual_url})` + }; + frame.contentWindow.load_modulepreload_with_integrity(actual_url, integrity); + return add_promise_to_test(actual_url); +} + +function import_module_integrity_test(frame, url, expected_integrity) { + const actual_url = url + "_moduleimport"; + expected_results[actual_url] = { + url: actual_url, + mode: 'cors', + credentials: 'same-origin', + redirect: 'follow', + integrity: expected_integrity, + destination: 'script', + message: `Module Script load (url:${actual_url})` + }; + frame.contentWindow.import_modulescript(actual_url); + return add_promise_to_test(actual_url); +} + +function import_dynamic_module_integrity_test(frame, url, expected_integrity) { + const actual_url = url + "_moduleimportdynamic"; + expected_results[actual_url] = { + url: actual_url, + mode: 'cors', + credentials: 'same-origin', + redirect: 'follow', + integrity: expected_integrity, + destination: 'script', + message: `Module Script load (url:${actual_url})` + }; + frame.contentWindow.import_dynamic_modulescript(actual_url); return add_promise_to_test(actual_url); } @@ -253,6 +313,19 @@ 'sha256-foo sha384-abc '); await script_integrity_test(f, LOCAL_URL, 'sha256-foo sha256-abc', 'sha256-foo sha256-abc'); + await module_script_integrity_test(f, LOCAL_URL, + null, + 'sha384-foobar'); + + await modulepreload_integrity_test(f, LOCAL_URL, + null, + 'sha384-foobar'); + + await import_module_integrity_test(f, LOCAL_URL, + 'sha384-foobar'); + + await import_dynamic_module_integrity_test(f, LOCAL_URL, + 'sha384-foobar'); await css_integrity_test(f, LOCAL_URL, ' ', ' '); await css_integrity_test(
diff --git a/third_party/blink/web_tests/external/wpt/service-workers/service-worker/resources/fetch-request-resources-iframe.https.html b/third_party/blink/web_tests/external/wpt/service-workers/service-worker/resources/fetch-request-resources-iframe.https.html index 86e9f4bb..37fc491 100644 --- a/third_party/blink/web_tests/external/wpt/service-workers/service-worker/resources/fetch-request-resources-iframe.https.html +++ b/third_party/blink/web_tests/external/wpt/service-workers/service-worker/resources/fetch-request-resources-iframe.https.html
@@ -1,5 +1,15 @@ <script src="test-helpers.sub.js?pipe=sub"></script> <body> +<script type="importmap"> +{ + "integrity": { + "./sample?test_module": "sha384-foobar", + "./sample?test_modulepreload": "sha384-foobar", + "./sample?test_moduleimport": "sha384-foobar", + "./sample?test_moduleimportdynamic": "sha384-foobar" + } +} +</script> <script> function load_image(url, cross_origin) { @@ -50,13 +60,42 @@ } } -function load_script_with_integrity(url, integrity) { +function load_script_with_integrity(url, integrity, type) { const script = document.createElement('script'); + if (type) { + script.type = type; + } script.src = url; - script.integrity = integrity; + if (integrity) { + script.integrity = integrity; + } document.body.appendChild(script); } +function import_modulescript(url) { + const script = document.createElement('script'); + script.type = "module"; + script.innerHTML = `import "${url}";`; + document.body.appendChild(script); +} + +function import_dynamic_modulescript(url) { + const script = document.createElement('script'); + script.type = "module"; + script.innerHTML = `import("${url}");`; + document.body.appendChild(script); +} + +function load_modulepreload_with_integrity(url, integrity) { + const link = document.createElement('link'); + link.href = url; + if (integrity) { + link.integrity = integrity; + } + link.rel = "modulepreload"; + document.body.appendChild(link); +} + function load_css_with_integrity(url, integrity) { const link = document.createElement('link'); link.rel = 'stylesheet'
diff --git a/third_party/blink/web_tests/external/wpt/webnn/validation_tests/elementwise-unary.https.any.js b/third_party/blink/web_tests/external/wpt/webnn/validation_tests/elementwise-unary.https.any.js index f87c61b..c735183 100644 --- a/third_party/blink/web_tests/external/wpt/webnn/validation_tests/elementwise-unary.https.any.js +++ b/third_party/blink/web_tests/external/wpt/webnn/validation_tests/elementwise-unary.https.any.js
@@ -16,14 +16,14 @@ const kElementwiseUnaryOperations = [ { name: 'abs', - supportedDataTypes: [...floatingPointTypes, ...signedIntegerTypes] + supportedDataTypes: [...floatingPointTypes, 'int32', 'int8'] }, {name: 'ceil', supportedDataTypes: floatingPointTypes}, {name: 'exp', supportedDataTypes: floatingPointTypes}, {name: 'floor', supportedDataTypes: floatingPointTypes}, {name: 'log', supportedDataTypes: floatingPointTypes}, { name: 'neg', - supportedDataTypes: [...floatingPointTypes, ...signedIntegerTypes] + supportedDataTypes: [...floatingPointTypes, 'int32', 'int8'] }, {name: 'sin', supportedDataTypes: floatingPointTypes}, {name: 'tan', supportedDataTypes: floatingPointTypes},
diff --git a/third_party/blink/web_tests/external/wpt/webnn/validation_tests/prelu.https.any.js b/third_party/blink/web_tests/external/wpt/webnn/validation_tests/prelu.https.any.js index 865f9f6..fa89df9 100644 --- a/third_party/blink/web_tests/external/wpt/webnn/validation_tests/prelu.https.any.js +++ b/third_party/blink/web_tests/external/wpt/webnn/validation_tests/prelu.https.any.js
@@ -5,3 +5,87 @@ 'use strict'; validateTwoInputsFromMultipleBuilders('prelu'); + +const tests = [ + { + name: + '[prelu] Test slope\'s shape = [3, 2, 5] which is the same as input\'s shape.', + input: {dataType: 'float32', dimensions: [3, 2, 5]}, + slope: {dataType: 'float32', dimensions: [3, 2, 5]}, + output: {dataType: 'float32', dimensions: [3, 2, 5]}, + }, + { + name: + '[prelu] Test slope\'s shape = [5] which is unidirectionally broadcastable to input\'s shape.', + input: {dataType: 'float32', dimensions: [3, 2, 5]}, + slope: {dataType: 'float32', dimensions: [5]}, + output: {dataType: 'float32', dimensions: [3, 2, 5]}, + }, + { + name: + '[prelu] Test slope\'s shape = [] which is unidirectionally broadcastable to input\'s shape.', + input: {dataType: 'float32', dimensions: [3, 2, 5]}, + slope: {dataType: 'float32', dimensions: []}, + output: {dataType: 'float32', dimensions: [3, 2, 5]}, + }, + { + name: + '[prelu] Test slope\'s shape = [2, 5] which is unidirectionally broadcastable to input\'s shape.', + input: {dataType: 'float32', dimensions: [3, 2, 5]}, + slope: {dataType: 'float32', dimensions: [2, 5]}, + output: {dataType: 'float32', dimensions: [3, 2, 5]}, + }, + { + name: + '[prelu] Test with input\'s dataType = int32 and slope\'s dataType = int32.', + input: {dataType: 'int32', dimensions: [3, 2, 5]}, + slope: {dataType: 'int32', dimensions: [2, 5]}, + output: {dataType: 'int32', dimensions: [3, 2, 5]}, + }, + { + name: + '[prelu] Test with input\'s dataType = int8 and slope\'s dataType = int8.', + input: {dataType: 'int8', dimensions: [3, 2, 5]}, + slope: {dataType: 'int8', dimensions: [2, 5]}, + output: {dataType: 'int8', dimensions: [3, 2, 5]}, + }, + { + name: + '[prelu] Throw if the shape of slope is not broadcastable to the shape of input.', + input: {dataType: 'float32', dimensions: [3, 2, 5]}, + slope: {dataType: 'float32', dimensions: [2]}, + }, + { + name: + '[prelu] Throw if the data type of slope does not match the data type of input.', + input: {dataType: 'float32', dimensions: [3, 2, 5]}, + slope: {dataType: 'int32', dimensions: [3, 2, 5]}, + }, + { + name: '[prelu] Throw if the data type of input is int64.', + input: {dataType: 'int64', dimensions: [3, 2, 5]}, + slope: {dataType: 'int64', dimensions: [3, 2, 5]}, + }, + { + name: '[prelu] Throw if the data type of input is uint32.', + input: {dataType: 'uint32', dimensions: [3, 2, 5]}, + slope: {dataType: 'uint32', dimensions: [3, 2, 5]}, + }, +]; + +tests.forEach( + test => promise_test(async t => { + const input = builder.input( + 'input', + {dataType: test.input.dataType, dimensions: test.input.dimensions}); + const slope = builder.input( + 'input', + {dataType: test.slope.dataType, dimensions: test.slope.dimensions}); + if (test.output) { + const output = builder.prelu(input, slope); + assert_equals(output.dataType(), test.output.dataType); + assert_array_equals(output.shape(), test.output.dimensions); + } else { + assert_throws_js(TypeError, () => builder.prelu(input, slope)); + } + }, test.name));
diff --git a/third_party/blink/web_tests/external/wpt/webnn/validation_tests/relu.https.any.js b/third_party/blink/web_tests/external/wpt/webnn/validation_tests/relu.https.any.js index 237c1c3..61b0d19 100644 --- a/third_party/blink/web_tests/external/wpt/webnn/validation_tests/relu.https.any.js +++ b/third_party/blink/web_tests/external/wpt/webnn/validation_tests/relu.https.any.js
@@ -7,4 +7,4 @@ validateInputFromAnotherBuilder('relu'); validateUnaryOperation( - 'relu', allWebNNOperandDataTypes, /*alsoBuildActivation=*/ true); + 'relu', [...floatingPointTypes, 'int32', 'int8'], /*alsoBuildActivation=*/ true);
diff --git a/third_party/blink/web_tests/external/wpt/webnn/validation_tests/resample2d.https.any.js b/third_party/blink/web_tests/external/wpt/webnn/validation_tests/resample2d.https.any.js index de44c6a3..cc52cf9 100644 --- a/third_party/blink/web_tests/external/wpt/webnn/validation_tests/resample2d.https.any.js +++ b/third_party/blink/web_tests/external/wpt/webnn/validation_tests/resample2d.https.any.js
@@ -25,6 +25,13 @@ }, { name: + '[resample2d] Test building resample2d with input\'s dataType = float16', + input: {dataType: 'float16', dimensions: [1, 1, 5, 5]}, + options: {scales: [0.5, 0.5]}, + output: {dataType: 'float16', dimensions: [1, 1, 2, 2]}, + }, + { + name: '[resample2d] Test building resample2d with scales=[0.5, 0.5] and explicit axes=[2, 3]', input: {dataType: 'float32', dimensions: [1, 1, 5, 5]}, options: {scales: [0.5, 0.5], axes: [2, 3]}, @@ -52,6 +59,11 @@ output: {dataType: 'float32', dimensions: [1, 1, 3, 6]}, }, { + name: + '[resample2d] Throw if the dataType of input is not float32 or float16', + input: {dataType: 'int32', dimensions: [2, 4]}, + }, + { name: '[resample2d] Throw if the rank of input is not 4', input: {dataType: 'float32', dimensions: [2, 4]}, }, @@ -76,6 +88,11 @@ options: {sizes: [1, 1, 4, 6]}, }, { + name: '[resample2d] Throw if input data type is not floating type', + input: {dataType: 'int32', dimensions: [1, 1, 2, 4]}, + options: {sizes: [1, 1, 4, 6]}, + }, + { name: '[resample2d] Throw if any size value is out of \'unsigned long\' value range', input: {dataType: 'float32', dimensions: [1, 1, 2, 4]},
diff --git a/third_party/blink/web_tests/platform/linux/virtual/webnn-service-without-gpu/external/wpt/webnn/conformance_tests/softplus.https.any.worker_gpu-expected.txt b/third_party/blink/web_tests/platform/linux/virtual/webnn-service-without-gpu/external/wpt/webnn/conformance_tests/softplus.https.any.worker_gpu-expected.txt index a5625d4..d2490db 100644 --- a/third_party/blink/web_tests/platform/linux/virtual/webnn-service-without-gpu/external/wpt/webnn/conformance_tests/softplus.https.any.worker_gpu-expected.txt +++ b/third_party/blink/web_tests/platform/linux/virtual/webnn-service-without-gpu/external/wpt/webnn/conformance_tests/softplus.https.any.worker_gpu-expected.txt
@@ -1,15 +1,3 @@ This is a testharness.js-based test. -[FAIL] softplus float32 1D constant tensor - promise_test: Unhandled rejection with value: object "NotSupportedError: Failed to execute 'build' on 'MLGraphBuilder': softplus is not implemented" -[FAIL] softplus float32 1D tensor - promise_test: Unhandled rejection with value: object "NotSupportedError: Failed to execute 'build' on 'MLGraphBuilder': softplus is not implemented" -[FAIL] softplus float32 2D tensor - promise_test: Unhandled rejection with value: object "NotSupportedError: Failed to execute 'build' on 'MLGraphBuilder': softplus is not implemented" -[FAIL] softplus float32 3D tensor - promise_test: Unhandled rejection with value: object "NotSupportedError: Failed to execute 'build' on 'MLGraphBuilder': softplus is not implemented" -[FAIL] softplus float32 4D tensor - promise_test: Unhandled rejection with value: object "NotSupportedError: Failed to execute 'build' on 'MLGraphBuilder': softplus is not implemented" -[FAIL] softplus float32 5D tensor - promise_test: Unhandled rejection with value: object "NotSupportedError: Failed to execute 'build' on 'MLGraphBuilder': softplus is not implemented" Harness: the test ran to completion.
diff --git a/third_party/blink/web_tests/platform/linux/virtual/webnn-service-without-gpu/external/wpt/webnn/conformance_tests/softplus.https.any_gpu-expected.txt b/third_party/blink/web_tests/platform/linux/virtual/webnn-service-without-gpu/external/wpt/webnn/conformance_tests/softplus.https.any_gpu-expected.txt index a5625d4..d2490db 100644 --- a/third_party/blink/web_tests/platform/linux/virtual/webnn-service-without-gpu/external/wpt/webnn/conformance_tests/softplus.https.any_gpu-expected.txt +++ b/third_party/blink/web_tests/platform/linux/virtual/webnn-service-without-gpu/external/wpt/webnn/conformance_tests/softplus.https.any_gpu-expected.txt
@@ -1,15 +1,3 @@ This is a testharness.js-based test. -[FAIL] softplus float32 1D constant tensor - promise_test: Unhandled rejection with value: object "NotSupportedError: Failed to execute 'build' on 'MLGraphBuilder': softplus is not implemented" -[FAIL] softplus float32 1D tensor - promise_test: Unhandled rejection with value: object "NotSupportedError: Failed to execute 'build' on 'MLGraphBuilder': softplus is not implemented" -[FAIL] softplus float32 2D tensor - promise_test: Unhandled rejection with value: object "NotSupportedError: Failed to execute 'build' on 'MLGraphBuilder': softplus is not implemented" -[FAIL] softplus float32 3D tensor - promise_test: Unhandled rejection with value: object "NotSupportedError: Failed to execute 'build' on 'MLGraphBuilder': softplus is not implemented" -[FAIL] softplus float32 4D tensor - promise_test: Unhandled rejection with value: object "NotSupportedError: Failed to execute 'build' on 'MLGraphBuilder': softplus is not implemented" -[FAIL] softplus float32 5D tensor - promise_test: Unhandled rejection with value: object "NotSupportedError: Failed to execute 'build' on 'MLGraphBuilder': softplus is not implemented" Harness: the test ran to completion.
diff --git a/third_party/blink/web_tests/wpt_internal/import-maps/parsing.html b/third_party/blink/web_tests/wpt_internal/import-maps/parsing.html index a8b62e1a..6ba8af2 100644 --- a/third_party/blink/web_tests/wpt_internal/import-maps/parsing.html +++ b/third_party/blink/web_tests/wpt_internal/import-maps/parsing.html
@@ -12,6 +12,7 @@ <meta name="variant" content="?parsing-scope-keys.json"> <meta name="variant" content="?parsing-specifier-keys.json"> <meta name="variant" content="?parsing-trailing-slashes.json"> +<meta name="variant" content="?parsing-integrity.json"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> @@ -85,7 +86,7 @@ }); } else { // Leaf (test) node - return [{ name, ...baseProps }]; + return [{ name: json.name, ...baseProps }]; } }
diff --git a/third_party/blink/web_tests/wpt_internal/import-maps/resources/parsing-addresses-absolute.json b/third_party/blink/web_tests/wpt_internal/import-maps/resources/parsing-addresses-absolute.json index b400439..865ee25 100644 --- a/third_party/blink/web_tests/wpt_internal/import-maps/resources/parsing-addresses-absolute.json +++ b/third_party/blink/web_tests/wpt_internal/import-maps/resources/parsing-addresses-absolute.json
@@ -34,7 +34,8 @@ "mailto": "mailto:bad", "wss": "wss://bad/" }, - "scopes": {} + "scopes": {}, + "integrity": {} } }, "should parse absolute URLs, ignoring unparseable ones": { @@ -58,7 +59,8 @@ "prettyNormal": "https://example.net/", "percentDecoding": "https://example.com/" }, - "scopes": {} + "scopes": {}, + "integrity": {} } } }
diff --git a/third_party/blink/web_tests/wpt_internal/import-maps/resources/parsing-addresses-invalid.json b/third_party/blink/web_tests/wpt_internal/import-maps/resources/parsing-addresses-invalid.json index 4e5f182..288e50d 100644 --- a/third_party/blink/web_tests/wpt_internal/import-maps/resources/parsing-addresses-invalid.json +++ b/third_party/blink/web_tests/wpt_internal/import-maps/resources/parsing-addresses-invalid.json
@@ -20,7 +20,8 @@ "foo4": null, "foo5": null }, - "scopes": {} + "scopes": {}, + "integrity": {} } } }
diff --git a/third_party/blink/web_tests/wpt_internal/import-maps/resources/parsing-addresses.json b/third_party/blink/web_tests/wpt_internal/import-maps/resources/parsing-addresses.json index fe92709..46ee406 100644 --- a/third_party/blink/web_tests/wpt_internal/import-maps/resources/parsing-addresses.json +++ b/third_party/blink/web_tests/wpt_internal/import-maps/resources/parsing-addresses.json
@@ -16,7 +16,8 @@ "dotDotSlash": "https://base.example/path1/foo", "slash": "https://base.example/foo" }, - "scopes": {} + "scopes": {}, + "integrity": {} } }, "should not accept strings prefixed with ./, ../, or / for data: base URLs": { @@ -34,7 +35,8 @@ "dotDotSlash": null, "slash": null }, - "scopes": {} + "scopes": {}, + "integrity": {} } }, "should accept the literal strings ./, ../, or / with no suffix": { @@ -52,7 +54,8 @@ "dotDotSlash": "https://base.example/path1/", "slash": "https://base.example/" }, - "scopes": {} + "scopes": {}, + "integrity": {} } }, "should ignore percent-encoded variants of ./, ../, or /": { @@ -78,7 +81,8 @@ "dotSlash3": null, "dotDotSlash3": null }, - "scopes": {} + "scopes": {}, + "integrity": {} } } }
diff --git a/third_party/blink/web_tests/wpt_internal/import-maps/resources/parsing-integrity.json b/third_party/blink/web_tests/wpt_internal/import-maps/resources/parsing-integrity.json new file mode 100644 index 0000000..34403346 --- /dev/null +++ b/third_party/blink/web_tests/wpt_internal/import-maps/resources/parsing-integrity.json
@@ -0,0 +1,22 @@ +{ + "name": "integrity", + "importMap": { + "imports": { + "foo/": "/bar/" + }, + "integrity": { + "./resources/log.js?pipe=sub&name=B": "sha384-Li9vy3DqF8tnTXuiaAJuML3ky+er10rcgNR/VqsVpcw+ThHmYcwiB1pbOxEbzJr7" + } + }, + "importMapBaseURL": "https://base.example/path1/path2/path3", + "expectedParsedImportMap": { + "imports": { + "foo/": "https://base.example/bar/" + }, + "scopes": {}, + "integrity": { + "https://base.example/path1/path2/resources/log.js?pipe=sub&name=B": "sha384-Li9vy3DqF8tnTXuiaAJuML3ky+er10rcgNR/VqsVpcw+ThHmYcwiB1pbOxEbzJr7" + } + } +} +
diff --git a/third_party/blink/web_tests/wpt_internal/import-maps/resources/parsing-schema-normalization.json b/third_party/blink/web_tests/wpt_internal/import-maps/resources/parsing-schema-normalization.json index a330bb8..f7f94c6 100644 --- a/third_party/blink/web_tests/wpt_internal/import-maps/resources/parsing-schema-normalization.json +++ b/third_party/blink/web_tests/wpt_internal/import-maps/resources/parsing-schema-normalization.json
@@ -6,7 +6,8 @@ "importMap": {}, "expectedParsedImportMap": { "imports": {}, - "scopes": {} + "scopes": {}, + "integrity": {} } }, "should normalize an import map without imports to have imports": { @@ -15,7 +16,8 @@ }, "expectedParsedImportMap": { "imports": {}, - "scopes": {} + "scopes": {}, + "integrity": {} } }, "should normalize an import map without scopes to have scopes": { @@ -24,7 +26,8 @@ }, "expectedParsedImportMap": { "imports": {}, - "scopes": {} + "scopes": {}, + "integrity": {} } } }
diff --git a/third_party/blink/web_tests/wpt_internal/import-maps/resources/parsing-schema-specifier-map.json b/third_party/blink/web_tests/wpt_internal/import-maps/resources/parsing-schema-specifier-map.json index 7d7d4be..363983b 100644 --- a/third_party/blink/web_tests/wpt_internal/import-maps/resources/parsing-schema-specifier-map.json +++ b/third_party/blink/web_tests/wpt_internal/import-maps/resources/parsing-schema-specifier-map.json
@@ -26,7 +26,8 @@ "array2": null, "string": "https://example.com/" }, - "scopes": {} + "scopes": {}, + "integrity": {} } }, "should ignore entries where the specifier key is an empty string": { @@ -37,7 +38,8 @@ }, "expectedParsedImportMap": { "imports": {}, - "scopes": {} + "scopes": {}, + "integrity": {} } } }
diff --git a/third_party/blink/web_tests/wpt_internal/import-maps/resources/parsing-schema-toplevel.json b/third_party/blink/web_tests/wpt_internal/import-maps/resources/parsing-schema-toplevel.json index 278cad2..1ee26bb 100644 --- a/third_party/blink/web_tests/wpt_internal/import-maps/resources/parsing-schema-toplevel.json +++ b/third_party/blink/web_tests/wpt_internal/import-maps/resources/parsing-schema-toplevel.json
@@ -90,7 +90,8 @@ }, "expectedParsedImportMap": { "imports": {}, - "scopes": {} + "scopes": {}, + "integrity": {} } } }
diff --git a/third_party/blink/web_tests/wpt_internal/import-maps/resources/parsing-scope-keys.json b/third_party/blink/web_tests/wpt_internal/import-maps/resources/parsing-scope-keys.json index 4b2f1eea..d8edcb7 100644 --- a/third_party/blink/web_tests/wpt_internal/import-maps/resources/parsing-scope-keys.json +++ b/third_party/blink/web_tests/wpt_internal/import-maps/resources/parsing-scope-keys.json
@@ -11,7 +11,8 @@ "imports": {}, "scopes": { "https://base.example/path1/path2/foo": {} - } + }, + "integrity": {} } }, "Relative URL scope keys should work with ./, ../, and / prefixes": { @@ -28,7 +29,8 @@ "https://base.example/path1/path2/foo": {}, "https://base.example/path1/foo": {}, "https://base.example/foo": {} - } + }, + "integrity": {} } }, "Absolute URL scope keys should ignore relative URL scope keys when the base URL is a data: URL": { @@ -42,7 +44,8 @@ "importMapBaseURL": "data:text/html,test", "expectedParsedImportMap": { "imports": {}, - "scopes": {} + "scopes": {}, + "integrity": {} } }, "Relative URL scope keys should work with ./, ../, or / with no suffix": { @@ -59,7 +62,8 @@ "https://base.example/path1/path2/": {}, "https://base.example/path1/": {}, "https://base.example/": {} - } + }, + "integrity": {} } }, "Relative URL scope keys should work with /s, ?s, and #s": { @@ -72,7 +76,8 @@ "imports": {}, "scopes": { "https://base.example/path1/path2/foo/bar?baz#qux": {} - } + }, + "integrity": {} } }, "Relative URL scope keys should work with an empty string scope key": { @@ -85,7 +90,8 @@ "imports": {}, "scopes": { "https://base.example/path1/path2/path3": {} - } + }, + "integrity": {} } }, "Relative URL scope keys should work with / suffixes": { @@ -105,7 +111,8 @@ "https://base.example/path1/foo/": {}, "https://base.example/foo/": {}, "https://base.example/foo//": {} - } + }, + "integrity": {} } }, "Relative URL scope keys should deduplicate based on URL parsing rules": { @@ -128,7 +135,8 @@ "https://base.example/path1/path2/foo//": { "3": "https://base.example/path1/path2/c" } - } + }, + "integrity": {} } }, "Absolute URL scope keys should accept all absolute URL scope keys, with or without fetch schemes": { @@ -163,7 +171,8 @@ "mailto:bad": {}, "javascript:bad": {}, "wss://ba/": {} - } + }, + "integrity": {} } }, "Absolute URL scope keys should parse absolute URL scope keys, ignoring unparseable ones": { @@ -184,7 +193,8 @@ "https://example.com///": {}, "https://example.net/": {}, "https://example.com/foo/": {} - } + }, + "integrity": {} } } }
diff --git a/third_party/blink/web_tests/wpt_internal/import-maps/resources/parsing-specifier-keys.json b/third_party/blink/web_tests/wpt_internal/import-maps/resources/parsing-specifier-keys.json index b2d9cf47..5242a40 100644 --- a/third_party/blink/web_tests/wpt_internal/import-maps/resources/parsing-specifier-keys.json +++ b/third_party/blink/web_tests/wpt_internal/import-maps/resources/parsing-specifier-keys.json
@@ -15,7 +15,8 @@ "https://base.example/path1/foo": "https://base.example/dotdotslash", "https://base.example/foo": "https://base.example/slash" }, - "scopes": {} + "scopes": {}, + "integrity": {} } }, "Relative URL specifier keys should not absolutize strings prefixed with ./, ../, or / with a data: URL base": { @@ -33,7 +34,8 @@ "../foo": "https://example.com/dotdotslash", "/foo": "https://example.com/slash" }, - "scopes": {} + "scopes": {}, + "integrity": {} } }, "Relative URL specifier keys should absolutize the literal strings ./, ../, or / with no suffix": { @@ -50,7 +52,8 @@ "https://base.example/path1/": "https://base.example/dotdotslash/", "https://base.example/": "https://base.example/slash/" }, - "scopes": {} + "scopes": {}, + "integrity": {} } }, "Relative URL specifier keys should work with /s, ?s, and #s": { @@ -63,7 +66,8 @@ "imports": { "https://base.example/path1/path2/foo/bar?baz#qux": "https://base.example/foo" }, - "scopes": {} + "scopes": {}, + "integrity": {} } }, "Relative URL specifier keys should ignore an empty string key": { @@ -74,7 +78,8 @@ }, "expectedParsedImportMap": { "imports": {}, - "scopes": {} + "scopes": {}, + "integrity": {} } }, "Relative URL specifier keys should treat percent-encoded variants of ./, ../, or / as bare specifiers": { @@ -99,7 +104,8 @@ "%2E%2F": "https://base.example/dotSlash3", "%2E%2E%2F": "https://base.example/dotDotSlash3" }, - "scopes": {} + "scopes": {}, + "integrity": {} } }, "Relative URL specifier keys should deduplicate based on URL parsing rules": { @@ -114,7 +120,8 @@ "imports": { "https://base.example/path1/path2/foo//": "https://base.example/foo3" }, - "scopes": {} + "scopes": {}, + "integrity": {} } }, "Absolute URL specifier keys should accept all absolute URL specifier keys, with or without fetch schemes": { @@ -149,7 +156,8 @@ "javascript:bad": "https://base.example/javascript", "wss://bad/": "https://base.example/wss" }, - "scopes": {} + "scopes": {}, + "integrity": {} } }, "Absolute URL specifier keys should parse absolute URLs, treating unparseable ones as bare specifiers": { @@ -172,7 +180,8 @@ "https://example.net/": "https://base.example/prettyNormal/", "https://example.com/": "https://base.example/percentDecoding/" }, - "scopes": {} + "scopes": {}, + "integrity": {} } }, "Specifier keys should be sort correctly (issue #181) - Test #1": { @@ -187,7 +196,8 @@ "https://example.com/aaa": "https://example.com/aaa", "https://example.com/a": "https://example.com/a" }, - "scopes": {} + "scopes": {}, + "integrity": {} } }, "Specifier keys should be sort correctly (issue #181) - Test #2": { @@ -202,7 +212,8 @@ "https://example.com/aaa": "https://example.com/aaa", "https://example.com/a": "https://example.com/a" }, - "scopes": {} + "scopes": {}, + "integrity": {} } } }
diff --git a/third_party/blink/web_tests/wpt_internal/import-maps/resources/parsing-trailing-slashes.json b/third_party/blink/web_tests/wpt_internal/import-maps/resources/parsing-trailing-slashes.json index 89c454fc..31aa5e2 100644 --- a/third_party/blink/web_tests/wpt_internal/import-maps/resources/parsing-trailing-slashes.json +++ b/third_party/blink/web_tests/wpt_internal/import-maps/resources/parsing-trailing-slashes.json
@@ -10,6 +10,7 @@ "imports": { "trailer/": null }, - "scopes": {} + "scopes": {}, + "integrity": {} } }
diff --git a/third_party/dawn b/third_party/dawn index 1bab938..ddc1dd3 160000 --- a/third_party/dawn +++ b/third_party/dawn
@@ -1 +1 @@ -Subproject commit 1bab938a256ca5283e088a07c8bdd09f75128c57 +Subproject commit ddc1dd344b11360f51b621506a363f297ae2aa8c
diff --git a/third_party/depot_tools b/third_party/depot_tools index 4d9ad25..c9fb389 160000 --- a/third_party/depot_tools +++ b/third_party/depot_tools
@@ -1 +1 @@ -Subproject commit 4d9ad255f1ad7793ad1ed911d92cc8f5b387f492 +Subproject commit c9fb389f4b44e838b99e7c21cfd253b88c7920db
diff --git a/third_party/devtools-frontend-internal b/third_party/devtools-frontend-internal index ab9c61d..ab637d2 160000 --- a/third_party/devtools-frontend-internal +++ b/third_party/devtools-frontend-internal
@@ -1 +1 @@ -Subproject commit ab9c61dadb8680f80be9ab710ba61fa3e88a05e7 +Subproject commit ab637d2bb43890b3a3fd4d3f83317e6e3bed42a8
diff --git a/third_party/devtools-frontend/src b/third_party/devtools-frontend/src index 230b10e..fb2f1f8 160000 --- a/third_party/devtools-frontend/src +++ b/third_party/devtools-frontend/src
@@ -1 +1 @@ -Subproject commit 230b10ef072c7ba15da9b3301a6c6bc54511bc12 +Subproject commit fb2f1f877cd5e7c86bcbf681c271bb3171121ca2
diff --git a/third_party/fuzztest/BUILD.gn b/third_party/fuzztest/BUILD.gn index 8d903df..5feb90a 100644 --- a/third_party/fuzztest/BUILD.gn +++ b/third_party/fuzztest/BUILD.gn
@@ -286,6 +286,12 @@ "//third_party/abseil-cpp:absl_full", ] + # TODO(https://crbug.com/337736622): Remove this after M129 when V8 moves + # protobuf back to //third_party/protobuf. + if (!defined(protobuf_target_prefix)) { + protobuf_target_prefix = "//third_party/protobuf" + } + public_deps = [ "//third_party/abseil-cpp:absl", @@ -295,7 +301,7 @@ "//third_party/re2", # For protobuf mutators - "//third_party/protobuf:protobuf_lite", + "$protobuf_target_prefix:protobuf_lite", ] public_configs = [ ":fuzztest_internal_config" ]
diff --git a/third_party/pdfium b/third_party/pdfium index fecdb91..88235c1 160000 --- a/third_party/pdfium +++ b/third_party/pdfium
@@ -1 +1 @@ -Subproject commit fecdb914f8f8190787bb203846948a3e3ab2297d +Subproject commit 88235c1a90305beeae6f72924e072f93b65367e7
diff --git a/third_party/skia b/third_party/skia index 19c1b73..6a50e52 160000 --- a/third_party/skia +++ b/third_party/skia
@@ -1 +1 @@ -Subproject commit 19c1b735d46a1610fd259df3718e08ab766a5e47 +Subproject commit 6a50e5207dedc0ad967beb987c97a6c17b316dbf
diff --git a/third_party/webrtc b/third_party/webrtc index 84e9055..da648b5 160000 --- a/third_party/webrtc +++ b/third_party/webrtc
@@ -1 +1 @@ -Subproject commit 84e90556aa3dae8fa7e71c1e476efd73b32a9c2e +Subproject commit da648b596043e999975bbf7053b3294c9039738a
diff --git a/tools/metrics/histograms/enums.xml b/tools/metrics/histograms/enums.xml index c55af5f..99a5870d8 100644 --- a/tools/metrics/histograms/enums.xml +++ b/tools/metrics/histograms/enums.xml
@@ -24215,6 +24215,7 @@ <int value="1296878388" label="PermissionPredictions:disabled"/> <int value="1296958520" label="hide-active-apps-from-shelf"/> <int value="1297007123" label="ServiceWorkerBypassFetchHandler:enabled"/> + <int value="1297446192" label="UseScreen2xV2:disabled"/> <int value="1298187304" label="OmniboxDocumentProviderNoSyncRequirement:disabled"/> <int value="1298352720" label="CompanionEnablePageContent:disabled"/> @@ -24834,6 +24835,7 @@ <int value="1579084737" label="TemporaryUnexpireFlagsM80:disabled"/> <int value="1579461102" label="MemoryCoordinator:disabled"/> <int value="1579627455" label="BoardingPassDetector:enabled"/> + <int value="1580248383" label="UseScreen2xV2:enabled"/> <int value="1580340993" label="EnableTabMuting:enabled"/> <int value="1580365114" label="ThirdPartyProfileManagement:disabled"/> <int value="1581002467" label="enable-explicit-dma-fences"/> @@ -32224,6 +32226,26 @@ loaded."/> </enum> +<enum name="ServiceWorkerRouterSourceType"> + <int value="0" label="kNetwork"/> + <int value="1" label="kRace"/> + <int value="2" label="kFetchEvent"/> + <int value="3" label="kCache"/> +</enum> + +<!-- LINT.IfChange(ServiceWorkerStatus) --> + +<enum name="ServiceWorkerStatus"> + <int value="0" label="Running"/> + <int value="1" label="Starting"/> + <int value="2" label="Stopping"/> + <int value="3" label="Stopped"/> + <int value="4" label="Warming up"/> + <int value="5" label="Warmed up"/> +</enum> + +<!-- LINT.ThenChange(//services/network/public/mojom/service_worker_router_info.mojom:ServiceWorkerStatus) --> + <enum name="ServiceWorkerStatusCode"> <int value="0" label="SERVICE_WORKER_OK"/> <int value="1" label="SERVICE_WORKER_ERROR_FAILED"/>
diff --git a/tools/metrics/histograms/metadata/accessibility/histograms.xml b/tools/metrics/histograms/metadata/accessibility/histograms.xml index cd96812..08ac1ae 100644 --- a/tools/metrics/histograms/metadata/accessibility/histograms.xml +++ b/tools/metrics/histograms/metadata/accessibility/histograms.xml
@@ -281,7 +281,7 @@ </histogram> <histogram name="Accessibility.Android.PageZoom.MainFrameZoomFactor" - units="zoom factor %" expires_after="2024-08-30"> + units="zoom factor %" expires_after="2024-11-03"> <owner>mschillaci@google.com</owner> <owner>chrome-a11y-core@google.com</owner> <summary>
diff --git a/tools/metrics/histograms/metadata/android/histograms.xml b/tools/metrics/histograms/metadata/android/histograms.xml index 1fdbedb..427527a3 100644 --- a/tools/metrics/histograms/metadata/android/histograms.xml +++ b/tools/metrics/histograms/metadata/android/histograms.xml
@@ -250,7 +250,7 @@ </variants> <histogram name="Android.ActivityStop.NumberOfTabsUsed" units="count" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>gauravjj@google.com</owner> <owner>skavuluru@google.com</owner> <owner>clank-large-form-factors@google.com</owner> @@ -266,7 +266,7 @@ </histogram> <histogram name="Android.ActivityStop.PercentageOfTabsUsed" units="%" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>gauravjj@google.com</owner> <owner>skavuluru@google.com</owner> <owner>clank-large-form-factors@google.com</owner> @@ -1142,7 +1142,7 @@ </histogram> <histogram name="Android.DragDrop.FromWebContent.DropInWebContent.DistanceDip" - units="dp" expires_after="2024-09-01"> + units="dp" expires_after="2024-11-03"> <owner>wenyufu@chromium.org</owner> <owner>clank-large-form-factors@google.com</owner> <summary> @@ -1156,7 +1156,7 @@ </histogram> <histogram name="Android.DragDrop.FromWebContent.DropInWebContent.Duration" - units="ms" expires_after="2024-09-01"> + units="ms" expires_after="2024-11-03"> <owner>wenyufu@chromium.org</owner> <owner>clank-large-form-factors@google.com</owner> <summary> @@ -1168,7 +1168,7 @@ </histogram> <histogram name="Android.DragDrop.FromWebContent.Duration{DropResult}" - units="ms" expires_after="2024-09-01"> + units="ms" expires_after="2024-11-03"> <owner>wenyufu@chromium.org</owner> <owner>clank-large-form-factors@google.com</owner> <summary> @@ -1188,7 +1188,7 @@ </histogram> <histogram name="Android.DragDrop.FromWebContent.TargetType" - enum="AndroidDragTargetType" expires_after="2024-09-01"> + enum="AndroidDragTargetType" expires_after="2024-11-03"> <owner>wenyufu@chromium.org</owner> <owner>clank-large-form-factors@google.com</owner> <summary> @@ -1435,7 +1435,7 @@ </histogram> <histogram base="true" name="Android.FeatureModules.AvailabilityStatus" - enum="FeatureModuleAvailabilityStatus" expires_after="2024-09-01"> + enum="FeatureModuleAvailabilityStatus" expires_after="2024-11-03"> <!-- Name completed by histogram_suffixes name="AndroidFeatureModuleName" --> @@ -1571,7 +1571,7 @@ </histogram> <histogram name="Android.FontLookup.FetchAllFontFiles.Time" units="ms" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>twellington@chromium.org</owner> <owner>clank-app-team@google.com</owner> <summary> @@ -1667,7 +1667,7 @@ </histogram> <histogram name="Android.FrameTimelineJank.Duration{JankScenario}" units="ms" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>oksamyt@chromium.org</owner> <owner>woa-performance@google.com</owner> <summary> @@ -1692,7 +1692,7 @@ </histogram> <histogram name="Android.FrameTimelineJank.FrameJankStatus{JankScenario}" - enum="FrameJankStatus" expires_after="2024-09-01"> + enum="FrameJankStatus" expires_after="2024-11-03"> <owner>kartarsingh@chromium.org</owner> <owner>woa-performance@google.com</owner> <summary> @@ -1719,7 +1719,7 @@ <histogram name="Android.FrameTimelineJank.{Scenario}.DelayedFramesPercentage.PerScroll{Length}" - units="%" expires_after="2024-09-01"> + units="%" expires_after="2024-11-03"> <owner>kartarsingh@chromium.org</owner> <owner>woa-performance-team@google.com</owner> <summary> @@ -1739,7 +1739,7 @@ <histogram name="Android.FrameTimelineJank.{Scenario}.MissedVsyncs{Operator}.PerScroll{Length}" - units="counts" expires_after="2024-09-01"> + units="counts" expires_after="2024-11-03"> <owner>kartarsingh@chromium.org</owner> <owner>woa-performance-team@google.com</owner> <summary> @@ -1785,7 +1785,7 @@ </histogram> <histogram name="Android.GridTabSwitcher.ThumbnailFetchingResult" - enum="GridTabSwitcherThumbnailFetchingResult" expires_after="2024-09-01"> + enum="GridTabSwitcherThumbnailFetchingResult" expires_after="2024-11-03"> <owner>ckitagawa@chromium.org</owner> <owner>clank-isochron-team@google.com</owner> <summary> @@ -1808,7 +1808,7 @@ </histogram> <histogram name="Android.HistoryPage.ClearBrowsingData.PerProfileType" - enum="BrowserProfileType" expires_after="2024-09-01"> + enum="BrowserProfileType" expires_after="2024-11-03"> <owner>roagarwal@chromium.org</owner> <owner>chrome-incognito@google.com</owner> <summary> @@ -1839,7 +1839,7 @@ </histogram> <histogram name="Android.IncognitoReauth.AuthResult" - enum="DeviceAuthFinalResult" expires_after="2024-09-01"> + enum="DeviceAuthFinalResult" expires_after="2024-11-03"> <owner>roagarwal@chromium.org</owner> <owner>chrome-incognito@google.com</owner> <summary> @@ -1849,7 +1849,7 @@ </histogram> <histogram name="Android.IncognitoReauth.PrefToggledFromSettingPage" - enum="IncognitoReauthToggleValueType" expires_after="2024-09-01"> + enum="IncognitoReauthToggleValueType" expires_after="2024-11-03"> <owner>roagarwal@chromium.org</owner> <owner>chrome-incognito@google.com</owner> <summary> @@ -1960,7 +1960,7 @@ </histogram> <histogram name="Android.Intent.MainFrameIntentLaunch" - enum="MainFrameIntentLaunch" expires_after="2024-09-01"> + enum="MainFrameIntentLaunch" expires_after="2024-11-03"> <owner>mthiesse@chromium.org</owner> <owner>yfriedman@chromium.org</owner> <summary> @@ -1970,7 +1970,7 @@ </histogram> <histogram name="Android.Intent.ShareIntentUrlCount" units="URLs" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>mthiesse@chromium.org</owner> <owner>tedchoc@google.com</owner> <summary> @@ -2077,7 +2077,7 @@ </histogram> <histogram name="Android.Messages.Dismissed{MessageIdentifier}" - enum="MessageDismissReason" expires_after="2024-09-01"> + enum="MessageDismissReason" expires_after="2024-11-03"> <owner>lazzzis@chromium.org</owner> <owner>src/components/messages/OWNERS</owner> <summary> @@ -2242,7 +2242,7 @@ </histogram> <histogram name="Android.Messages.Stacking.{Action}" enum="MessageIdentifier" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>lazzzis@chromium.org</owner> <owner>src/components/messages/OWNERS</owner> <summary> @@ -2277,7 +2277,7 @@ </histogram> <histogram name="Android.Messages.TimeToAction.Dismiss{MessageIdentifier}" - units="ms" expires_after="2024-09-01"> + units="ms" expires_after="2024-11-03"> <owner>lazzzis@chromium.org</owner> <owner>src/components/messages/OWNERS</owner> <summary> @@ -2292,7 +2292,7 @@ </histogram> <histogram name="Android.Messages.TimeToAction{MessageIdentifier}" units="ms" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>lazzzis@chromium.org</owner> <owner>src/components/messages/OWNERS</owner> <summary> @@ -2308,7 +2308,7 @@ </histogram> <histogram name="Android.Messages.TimeToFullyShow{MessageIdentifier}" - units="ms" expires_after="2024-09-01"> + units="ms" expires_after="2024-11-03"> <owner>lazzzis@chromium.org</owner> <owner>src/components/messages/OWNERS</owner> <summary> @@ -2475,7 +2475,7 @@ <histogram name="Android.MultiWindowMode.AssertIndicesMatch.PreExistingActivityDestroyed" - enum="PreAssignedActivityState" expires_after="2024-09-01"> + enum="PreAssignedActivityState" expires_after="2024-11-03"> <owner>wenyufu@chromium.org</owner> <owner>clank-large-form-factors@google.com</owner> <summary> @@ -2493,7 +2493,7 @@ <histogram name="Android.MultiWindowMode.AssertIndicesMatch{ActivityIndexMismatchAssignmentState}" - enum="PreAssignedActivityState" expires_after="2024-09-01"> + enum="PreAssignedActivityState" expires_after="2024-11-03"> <owner>wenyufu@chromium.org</owner> <owner>aishwaryarj@google.com</owner> <owner>clank-large-form-factors@google.com</owner> @@ -2527,7 +2527,7 @@ <histogram name="Android.MultiWindowMode.MismatchedIndices.ActivityCreationTimeDelta" - units="ms" expires_after="2024-09-01"> + units="ms" expires_after="2024-11-03"> <owner>aishwaryarj@google.com</owner> <owner>clank-large-form-factors@google.com</owner> <summary> @@ -2541,7 +2541,7 @@ </histogram> <histogram name="Android.MultiWindowMode.TotalDuration" units="ms" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>skavuluru@google.com</owner> <owner>twellington@chromium.org</owner> <owner>clank-large-form-factors@google.com</owner> @@ -2567,7 +2567,7 @@ </histogram> <histogram name="Android.Omnibox.ActionInSuggest.IntentResult" - enum="ActionInSuggestIntentResult" expires_after="2024-09-01"> + enum="ActionInSuggestIntentResult" expires_after="2024-11-03"> <owner>ender@google.com</owner> <owner>chrome-mobile-search@google.com</owner> <summary> @@ -2606,7 +2606,7 @@ </histogram> <histogram name="Android.Omnibox.OmniboxAction.Used" enum="BooleanUsage" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>ender@google.com</owner> <owner>chrome-mobile-search@google.com</owner> <summary> @@ -2650,7 +2650,7 @@ </histogram> <histogram name="Android.Omnibox.RefineActionUsage" enum="RefineActionUsage" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>ender@chromium.org</owner> <owner>jdonnelly@chromium.org</owner> <summary> @@ -2687,7 +2687,7 @@ </histogram> <histogram name="Android.Omnibox.SuggestionList.LayoutTime2" units="ms" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>ender@chromium.org</owner> <owner>mpearson@chromium.org</owner> <owner>jdonnelly@chromium.org</owner> @@ -2735,7 +2735,7 @@ </histogram> <histogram name="Android.Omnibox.SuggestionList.MeasureTime2" units="ms" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>ender@chromium.org</owner> <owner>mpearson@chromium.org</owner> <owner>jdonnelly@chromium.org</owner> @@ -2787,7 +2787,7 @@ </histogram> <histogram name="Android.Omnibox.SuggestionList.RequestToUiModel.First" - units="ms" expires_after="2024-09-01"> + units="ms" expires_after="2024-11-03"> <owner>ender@google.com</owner> <owner>pnoland@chromium.org</owner> <owner>gangwu@chromium.org</owner> @@ -2804,7 +2804,7 @@ </histogram> <histogram name="Android.Omnibox.SuggestionList.RequestToUiModel.Last" - units="ms" expires_after="2024-09-01"> + units="ms" expires_after="2024-11-03"> <owner>ender@google.com</owner> <owner>pnoland@chromium.org</owner> <owner>gangwu@chromium.org</owner> @@ -2823,7 +2823,7 @@ </histogram> <histogram name="Android.Omnibox.SuggestionsListScrolled.{PageClass}" - enum="Boolean" expires_after="2024-09-01"> + enum="Boolean" expires_after="2024-11-03"> <owner>ender@chromium.org</owner> <owner>jdonnelly@chromium.org</owner> <summary> @@ -2865,7 +2865,7 @@ </histogram> <histogram name="Android.Omnibox.SuggestionView.CreateTime2" units="ms" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>ender@chromium.org</owner> <owner>mpearson@chromium.org</owner> <owner>jdonnelly@chromium.org</owner> @@ -3051,7 +3051,7 @@ <histogram name="Android.Omnibox.{AndroidSearchPrefetch}.TouchDownPrefetchResult.{AndroidNavigationPrefetchOnly}" - enum="SearchPrefetchTouchDownPrefetchResult" expires_after="2024-09-01"> + enum="SearchPrefetchTouchDownPrefetchResult" expires_after="2024-11-03"> <owner>nhiroki@chromium.org</owner> <owner>ryansturm@chromium.org</owner> <owner>curranmax@chromium.org</owner> @@ -3071,7 +3071,7 @@ <histogram name="Android.Omnibox.{AndroidSearchPrefetch}.TouchDownProcessTime.{AndroidNavigationPrefetchOnly}" - units="ms" expires_after="2024-09-01"> + units="ms" expires_after="2024-11-03"> <owner>nhiroki@chromium.org</owner> <owner>ryansturm@chromium.org</owner> <owner>curranmax@chromium.org</owner> @@ -3094,7 +3094,7 @@ </histogram> <histogram name="Android.OmniboxFocusReason" enum="OmniboxFocusReason" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>mdjones@chromium.org</owner> <owner>twellington@chromium.org</owner> <owner>amaralp@chromium.org</owner> @@ -3680,7 +3680,7 @@ </histogram> <histogram name="Android.RequestDesktopSite.Changed" enum="SiteLayout" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>shuyng@google.com</owner> <owner>twellington@chromium.org</owner> <summary> @@ -3746,7 +3746,7 @@ <histogram name="Android.RequestDesktopSite.UserSwitchToDesktop.DomainSettingAdded" - enum="Boolean" expires_after="2024-09-01"> + enum="Boolean" expires_after="2024-11-03"> <owner>shuyng@google.com</owner> <owner>twellington@chromium.org</owner> <summary> @@ -4025,7 +4025,7 @@ </histogram> <histogram name="Android.SpareTab.FinalStatus" enum="SpareTabFinalStatus" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>sreejakshetty@chromium.org</owner> <owner>chrome-brapp-loading@google.com</owner> <summary> @@ -4132,7 +4132,7 @@ </histogram> <histogram name="Android.Tab.CreateNewTabDuration.{TabLaunchType}" units="ms" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>sreejakshetty@chromium.org</owner> <owner>spelchat@chromium.org</owner> <owner>chrome-brapp-loading@google.com</owner> @@ -4550,7 +4550,7 @@ </histogram> <histogram name="Android.ThumbnailCache.InMemoryCacheEntries" - units="thumbnails" expires_after="2024-09-01"> + units="thumbnails" expires_after="2024-11-03"> <owner>ckitagawa@chromium.org</owner> <owner>dtrainor@chromium.org</owner> <summary> @@ -4561,7 +4561,7 @@ </histogram> <histogram name="Android.ThumbnailCache.InMemoryCacheSize" units="KiB" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>ckitagawa@chromium.org</owner> <owner>dtrainor@chromium.org</owner> <summary> @@ -4875,7 +4875,7 @@ </histogram> <histogram name="Android.WebView.Callback.Counts" enum="WebViewCallbackType" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>ntfschr@chromium.org</owner> <owner>src/android_webview/OWNERS</owner> <summary> @@ -4905,7 +4905,7 @@ </histogram> <histogram name="Android.WebView.ComponentUpdater.GetFilesDuration" units="ms" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>avvall@chromium.org</owner> <owner>src/android_webview/OWNERS</owner> <summary> @@ -4916,7 +4916,7 @@ </histogram> <histogram name="Android.WebView.ComponentUpdater.GetFilesResult" - enum="WebViewComponentUpdaterGetFilesResult" expires_after="2024-09-01"> + enum="WebViewComponentUpdaterGetFilesResult" expires_after="2024-11-03"> <owner>avvall@chromium.org</owner> <owner>src/android_webview/OWNERS</owner> <summary> @@ -4938,7 +4938,7 @@ </histogram> <histogram name="Android.WebView.ComponentUpdater.UnexpectedExit" - enum="Boolean" expires_after="2024-09-01"> + enum="Boolean" expires_after="2024-11-03"> <owner>avvall@chromium.org</owner> <owner>src/android_webview/OWNERS</owner> <summary> @@ -4949,7 +4949,7 @@ </histogram> <histogram name="Android.WebView.ComponentUpdater.UpdateJobDuration" units="ms" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>avvall@chromium.org</owner> <owner>src/android_webview/OWNERS</owner> <summary> @@ -5286,7 +5286,7 @@ </histogram> <histogram name="Android.WebView.Gfx.HardwareDrawType" - enum="WebViewDrawAndSubmissionType" expires_after="2024-09-01"> + enum="WebViewDrawAndSubmissionType" expires_after="2024-11-03"> <owner>vasilyt@chromium.org</owner> <owner>boliu@chromium.org</owner> <summary> @@ -5901,7 +5901,7 @@ </histogram> <histogram name="Android.WebView.Memory.FunctorReclaim.OtherPrivateDirty" - units="MB" expires_after="2024-09-01"> + units="MB" expires_after="2024-11-03"> <owner>lizeb@chromium.org</owner> <owner>chrome-gpu-memory@google.com</owner> <summary> @@ -5915,7 +5915,7 @@ </histogram> <histogram name="Android.WebView.Memory.FunctorReclaim.OtherPss" units="MB" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>lizeb@chromium.org</owner> <owner>chrome-gpu-memory@google.com</owner> <summary> @@ -6074,7 +6074,7 @@ <histogram name="Android.WebView.RequestedWithHeader.HadWebContentsForPartitionOrigin" - enum="BooleanAvailable" expires_after="2024-09-01"> + enum="BooleanAvailable" expires_after="2024-11-03"> <owner>pbirk@chromium.org</owner> <owner>src/android_webview/OWNERS</owner> <summary> @@ -6223,7 +6223,7 @@ </histogram> <histogram name="Android.WebView.SecureCookieAction" enum="SecureCookieAction" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>ntfschr@chromium.org</owner> <owner>src/android_webview/OWNERS</owner> <summary> @@ -6484,7 +6484,7 @@ <histogram name="Android.WebView.UniversalAccess.OriginUrlMismatchInHistoryUtil" - enum="BooleanAllowed" expires_after="2024-09-01"> + enum="BooleanAllowed" expires_after="2024-11-03"> <owner>torne@chromium.org</owner> <owner>src/android_webview/OWNERS</owner> <summary>
diff --git a/tools/metrics/histograms/metadata/apps/histograms.xml b/tools/metrics/histograms/metadata/apps/histograms.xml index b7dedf8..61d7cbc 100644 --- a/tools/metrics/histograms/metadata/apps/histograms.xml +++ b/tools/metrics/histograms/metadata/apps/histograms.xml
@@ -361,7 +361,7 @@ <token key="AppInstallSurface" variants="AppInstallSurface"/> </histogram> -<histogram name="Apps.AppLaunch" enum="AppLaunch" expires_after="2024-09-01"> +<histogram name="Apps.AppLaunch" enum="AppLaunch" expires_after="2024-11-03"> <owner>tapted@chromium.org</owner> <owner>benwells@chromium.org</owner> <summary> @@ -371,7 +371,7 @@ </histogram> <histogram name="Apps.AppLaunchPerAppType" enum="AppType" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>nancylingwang@chromium.org</owner> <owner>chromeos-apps-foundation-team@google.com</owner> <summary> @@ -381,7 +381,7 @@ </histogram> <histogram name="Apps.AppLaunchPerAppTypeV2" enum="AppTypeV2" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>nancylingwang@chromium.org</owner> <owner>chromeos-apps-foundation-team@google.com</owner> <summary> @@ -391,7 +391,7 @@ </histogram> <histogram name="Apps.AppLaunchSource" enum="LaunchSource" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>nancylingwang@chromium.org</owner> <owner>chromeos-apps-foundation-team@google.com</owner> <summary>Records an app launch grouped by launch source.</summary> @@ -639,7 +639,7 @@ </histogram> <histogram name="Apps.AppList.ContinueSectionHiddenByUser{TabletOrClamshell}" - enum="Boolean" expires_after="2024-09-01"> + enum="Boolean" expires_after="2024-11-03"> <owner>jamescook@chromium.org</owner> <owner>tbarzic@chromium.org</owner> <summary> @@ -651,7 +651,7 @@ </histogram> <histogram name="Apps.AppList.DriveSearchProvider.DriveFSLatency" units="ms" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>tby@chromium.org</owner> <owner>thanhdng@chromium.org</owner> <summary> @@ -672,7 +672,7 @@ </histogram> <histogram name="Apps.AppList.DriveSearchProvider.Latency" units="ms" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>tby@chromium.org</owner> <owner>thanhdng@chromium.org</owner> <summary> @@ -736,7 +736,7 @@ </histogram> <histogram name="Apps.AppList.FileSearchProvider.Latency" units="ms" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>dgrebenyuk@google.com</owner> <owner>ypitsishin@google.com</owner> <owner>chromeos-launcher-search@google.com</owner> @@ -833,7 +833,7 @@ </histogram> <histogram name="Apps.AppList.ItemSuggestCache.Status" - enum="ItemSuggestCacheStatus" expires_after="2024-09-01"> + enum="ItemSuggestCacheStatus" expires_after="2024-11-03"> <owner>tby@chromium.org</owner> <owner>thanhdng@chromium.org</owner> <summary> @@ -843,7 +843,7 @@ </histogram> <histogram name="Apps.AppList.ItemSuggestCache.UpdateCacheLatency" units="ms" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>tby@chromium.org</owner> <owner>thanhdng@chromium.org</owner> <summary> @@ -889,7 +889,7 @@ </histogram> <histogram name="Apps.AppList.NumberOfApps" units="count" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>tbarzic@chromium.org</owner> <owner>mmourgos@chromium.org</owner> <owner>gzadina@google.com</owner> @@ -948,7 +948,7 @@ </histogram> <histogram name="Apps.AppList.OmniboxProvider.QueryTime" units="ms" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>laurencom@chromium.org</owner> <owner>tbarzic@chromium.org</owner> <summary> @@ -985,7 +985,7 @@ </histogram> <histogram name="Apps.AppList.OsSettingsProvider.QueryTime" units="ms" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>thanhdng@chromium.org</owner> <owner>tby@chromium.org</owner> <summary> @@ -1008,7 +1008,7 @@ </histogram> <histogram name="Apps.AppList.PersistentProto.WriteStatus" - enum="PersistentProtoWriteStatus" expires_after="2024-09-01"> + enum="PersistentProtoWriteStatus" expires_after="2024-11-03"> <owner>dgrebenyuk@google.com</owner> <owner>ypitsishin@google.com</owner> <owner>chromeos-launcher-search@google.com</owner> @@ -1031,7 +1031,7 @@ </histogram> <histogram name="Apps.AppList.RemovedResultsProto.SizeInKB" units="KB" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>andrewxu@chromium.org</owner> <owner>tby@chromium.org</owner> <summary> @@ -1117,7 +1117,7 @@ </histogram> <histogram name="Apps.AppList.Search.ContinueSectionFilesRemovedPerSession" - units="files" expires_after="2024-09-01"> + units="files" expires_after="2024-11-03"> <owner>anasalazar@chromium.org</owner> <owner>tbarzic@chromium.org</owner> <summary> @@ -1198,7 +1198,7 @@ </histogram> <histogram name="Apps.AppList.Search.Federated.ReportStatus" - enum="AppListFederatedReportStatus" expires_after="2024-09-01"> + enum="AppListFederatedReportStatus" expires_after="2024-11-03"> <owner>amandadeacon@chromium.org</owner> <owner>alanlxl@chromium.org</owner> <summary> @@ -1208,7 +1208,7 @@ </histogram> <histogram name="Apps.AppList.Search.Federated.SearchSessionConclusion" - enum="AppListFederatedSearchSessionConclusion" expires_after="2024-09-01"> + enum="AppListFederatedSearchSessionConclusion" expires_after="2024-11-03"> <owner>amandadeacon@chromium.org</owner> <owner>tby@chromium.org</owner> <summary> @@ -1461,7 +1461,7 @@ </histogram> <histogram name="Apps.AppList.SortOrderOnSessionStart.{TabletOrClamshell}" - enum="AppListSortOrder" expires_after="2024-09-01"> + enum="AppListSortOrder" expires_after="2024-11-03"> <owner>andrewxu@chromium.org</owner> <owner>chromeos-launcher@google.com</owner> <summary> @@ -1702,7 +1702,7 @@ </histogram> <histogram name="Apps.AppListAppLaunchedV2{AppListState}" - enum="AppListLaunchedFrom" expires_after="2024-09-01"> + enum="AppListLaunchedFrom" expires_after="2024-11-03"> <owner>tbarzic@chromium.org</owner> <owner>mmourgos@chromium.org</owner> <owner>newcomer@chromium.org</owner> @@ -1788,7 +1788,7 @@ </histogram> <histogram name="Apps.AppListBubbleShowSource" enum="AppListShowSource" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>tbarzic@chromium.org</owner> <owner>newcomer@chromium.org</owner> <owner>chromeos-launcher@google.com</owner> @@ -1912,7 +1912,7 @@ </histogram> <histogram name="Apps.AppListLauncherIssuedSearchQueryLength" - units="characters" expires_after="2024-09-01"> + units="characters" expires_after="2024-11-03"> <owner>jennyz@chromium.org</owner> <owner>tbarzic@chromium.org</owner> <owner>newcomer@chromium.org</owner> @@ -1943,7 +1943,7 @@ </histogram> <histogram name="Apps.AppListPageSwitcherSource" - enum="AppListPageSwitcherSource" expires_after="2024-09-01"> + enum="AppListPageSwitcherSource" expires_after="2024-11-03"> <owner>tbarzic@chromium.org</owner> <owner>newcomer@chromium.org</owner> <owner>mmourgos@chromium.org</owner> @@ -2018,7 +2018,7 @@ </histogram> <histogram name="Apps.AppListSearchResultOpenTypeV2" enum="AppListSearchResult" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <!-- Name completed by histogram_suffixes name="TabletOrClamshellMode" --> <owner>tbarzic@chromium.org</owner> @@ -2044,7 +2044,7 @@ </histogram> <histogram name="Apps.AppListShowSource" enum="AppListShowSource" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>tbarzic@chromium.org</owner> <owner>newcomer@chromium.org</owner> <summary> @@ -2097,7 +2097,7 @@ </histogram> <histogram name="Apps.ArcGhostWindowLaunch" enum="Boolean" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>nancylingwang@chromium.org</owner> <owner>sstan@chromium.org</owner> <summary> @@ -2180,7 +2180,7 @@ </histogram> <histogram name="Apps.CreateShortcutIcon.Linux.Result" - enum="WebAppCreateShortcutIconLinuxResult" expires_after="2024-09-01"> + enum="WebAppCreateShortcutIconLinuxResult" expires_after="2024-11-03"> <owner>estade@chromium.org</owner> <owner>pwa-team@google.com</owner> <summary> @@ -2191,7 +2191,7 @@ </histogram> <histogram name="Apps.CreateShortcuts.Linux.Result" - enum="WebAppCreateShortcutLinuxResult" expires_after="2024-09-01"> + enum="WebAppCreateShortcutLinuxResult" expires_after="2024-11-03"> <owner>phillis@chromium.org</owner> <owner>cmumford@chromium.org</owner> <summary> @@ -2202,7 +2202,7 @@ </histogram> <histogram name="Apps.CreateShortcuts.Mac.Result" - enum="WebAppCreateShortcutMacResult" expires_after="2024-09-01"> + enum="WebAppCreateShortcutMacResult" expires_after="2024-11-03"> <owner>phillis@chromium.org</owner> <owner>cmumford@chromium.org</owner> <summary> @@ -2635,7 +2635,7 @@ </histogram> <histogram name="Apps.RestoredAppLaunch" enum="AppType" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>nancylingwang@chromium.org</owner> <owner>sammiequon@chromium.org</owner> <summary> @@ -2645,7 +2645,7 @@ </histogram> <histogram name="Apps.RestoreForCrashNotification" enum="RestoreAction" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>nancylingwang@chromium.org</owner> <owner>sammiequon@chromium.org</owner> <summary> @@ -2655,7 +2655,7 @@ </histogram> <histogram name="Apps.RestoreInitSetting" enum="RestoreSetting" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>nancylingwang@chromium.org</owner> <owner>sammiequon@chromium.org</owner> <summary> @@ -2665,7 +2665,7 @@ </histogram> <histogram name="Apps.RestoreNotification" enum="RestoreAction" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>nancylingwang@chromium.org</owner> <owner>sammiequon@chromium.org</owner> <summary> @@ -2675,7 +2675,7 @@ </histogram> <histogram name="Apps.RestoreSetting" enum="RestoreSetting" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>nancylingwang@chromium.org</owner> <owner>sammiequon@chromium.org</owner> <summary>
diff --git a/tools/metrics/histograms/metadata/arc/enums.xml b/tools/metrics/histograms/metadata/arc/enums.xml index 5e8a32b..bac4c1d 100644 --- a/tools/metrics/histograms/metadata/arc/enums.xml +++ b/tools/metrics/histograms/metadata/arc/enums.xml
@@ -877,16 +877,6 @@ <int value="4" label="Unknown Reason"/> </enum> -<enum name="LowLatencyStylusLibraryApisList"> -<!-- Value from components/arc/mojom/metrics.mojom --> - - <int value="0" label="Unsupported"/> - <int value="1" label="InkOverlay::LowLatencyStylusLibInActiveUse"/> - <int value="2" label="GLInkOverlay::LowLatencyStylusLibInActiveUse"/> - <int value="3" label="GLInkRenderer::SetProjectionMatrix"/> - <int value="4" label="GLInkRenderer::SetViewMatrix"/> -</enum> - <enum name="NearbyShareArcBridgeFailResult"> <int value="0" label="Instance is null."/> <int value="1" label="Instance already exists."/>
diff --git a/tools/metrics/histograms/metadata/arc/histograms.xml b/tools/metrics/histograms/metadata/arc/histograms.xml index 477848b..d934c2b6 100644 --- a/tools/metrics/histograms/metadata/arc/histograms.xml +++ b/tools/metrics/histograms/metadata/arc/histograms.xml
@@ -343,7 +343,7 @@ </histogram> <histogram name="Arc.App.LowMemoryKills.{ArcAppKillType}Count10Minutes" - units="Apps" expires_after="2024-09-01"> + units="Apps" expires_after="2024-11-03"> <owner>cwd@google.com</owner> <owner>cros-vm-technology@google.com</owner> <summary> @@ -355,7 +355,7 @@ <histogram name="Arc.App.LowMemoryKills.{ArcBackgroundVms}.{ArcAppKillType}Count10Minutes" - units="Apps" expires_after="2024-09-01"> + units="Apps" expires_after="2024-11-03"> <owner>cwd@google.com</owner> <owner>cros-vm-technology@google.com</owner> <summary> @@ -368,7 +368,7 @@ <histogram name="Arc.App.LowMemoryKills{ArcAppKillDailyBackgroundVms}{ArcAppKillDailyType}" - units="Apps" expires_after="2024-09-01"> + units="Apps" expires_after="2024-11-03"> <owner>cwd@google.com</owner> <owner>cros-vm-technology@google.com</owner> <summary> @@ -381,7 +381,7 @@ </histogram> <histogram name="Arc.App.PrimaryAbi" enum="AppPrimaryAbi" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>batoon@google.com</owner> <owner>arc-core@google.com</owner> <summary> @@ -391,7 +391,7 @@ </summary> </histogram> -<histogram name="Arc.AppCount" units="units" expires_after="2024-09-01"> +<histogram name="Arc.AppCount" units="units" expires_after="2024-11-03"> <owner>khmel@google.com</owner> <owner>fahdi@google.com</owner> <summary> @@ -489,7 +489,7 @@ </histogram> <histogram name="Arc.AppInstalledReason" enum="InstallationCounterReasonEnum" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>thanhdng@chromium.org</owner> <owner>tby@chromium.org</owner> <summary> @@ -808,7 +808,7 @@ </histogram> <histogram name="Arc.CompanionLibraryApisCounter" - enum="CompanionLibraryApisList" expires_after="2024-09-01"> + enum="CompanionLibraryApisList" expires_after="2024-11-03"> <owner>sstan@google.com</owner> <owner>mhasank@google.com</owner> <owner>arc-commercial@google.com</owner> @@ -829,7 +829,7 @@ </histogram> <histogram name="Arc.ContainerLifetimeEvent" enum="ArcContainerLifetimeEvent" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>khmel@google.com</owner> <summary> The number of ARC container lifetime events. One START event and up to one @@ -842,7 +842,7 @@ </histogram> <histogram name="Arc.ContainerRestartAfterCrashCount" units="units" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>khmel@google.com</owner> <summary> The number of times ARC container crashes and automatically restarts in one @@ -924,7 +924,7 @@ </histogram> <histogram name="Arc.DataRestore.Status" enum="ArcDataRestoreStatus" - expires_after="2024-09-03"> + expires_after="2024-11-03"> <owner>khmel@google.com</owner> <owner>arc-core@google.com</owner> <summary> @@ -982,7 +982,7 @@ </histogram> <histogram name="Arc.EngagementTime.ArcTotal" units="ms" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>mduggan@google.com</owner> <owner>yhanada@google.com</owner> <owner>arc-framework@google.com</owner> @@ -996,7 +996,7 @@ </histogram> <histogram name="Arc.EngagementTime.Background" units="ms" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>mduggan@google.com</owner> <owner>yhanada@google.com</owner> <owner>arc-framework@google.com</owner> @@ -1008,7 +1008,7 @@ </histogram> <histogram name="Arc.EngagementTime.Foreground" units="ms" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>mduggan@google.com</owner> <owner>yhanada@google.com</owner> <owner>arc-framework@google.com</owner> @@ -1019,7 +1019,7 @@ </histogram> <histogram name="Arc.EngagementTime.Total" units="ms" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>mduggan@google.com</owner> <owner>yhanada@google.com</owner> <owner>arc-framework@google.com</owner> @@ -1189,7 +1189,7 @@ </histogram> <histogram name="Arc.GhostWindowViewType" units="ArcGhostWindowViewType" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>sstan@chromium.org</owner> <owner>arc-framework-tok@google.com</owner> <summary> @@ -1401,7 +1401,7 @@ <histogram name="Arc.LoadAverageX100PerProcessor15MinutesAfterArcStart.{ArcBootType}" - units="0.01 jobs/processor" expires_after="2024-09-01"> + units="0.01 jobs/processor" expires_after="2024-11-03"> <owner>hashimoto@google.com</owner> <owner>khmel@google.com</owner> <owner>arc-performance@google.com</owner> @@ -1438,28 +1438,6 @@ <token key="ArcBootType" variants="ArcBootTypes"/> </histogram> -<histogram name="Arc.LowLatencyStylusLibrary.PredictionTarget" units="ms" - expires_after="2024-04-24"> - <owner>yhanada@chromium.org</owner> - <owner>arc-framework@google.com</owner> - <summary> - Prediction target used in ChromeOS Low-latency Stylus Library. Warning: this - histogram was expired from 2022-04-24 to 2023-12-12; data may be missing. - </summary> -</histogram> - -<histogram name="Arc.LowLatencyStylusLibraryApisCounter" - enum="LowLatencyStylusLibraryApisList" expires_after="2024-04-24"> - <owner>yhanada@chromium.org</owner> - <owner>arc-framework@google.com</owner> - <summary> - Records the number of times ChromeOS Low-latency Stylus Library API called. - Counter adding when its Stub library receive the call from applications. - Warning: this histogram was expired from 2022-04-24 to 2023-12-12; data may - be missing. - </summary> -</histogram> - <histogram name="Arc.NativeBridge" enum="ArcNativeBridgeType" expires_after="never"> <!-- expires-never: used internally for filtering --> @@ -1587,7 +1565,7 @@ </histogram> <histogram name="Arc.Net.Qos.QosSocketPercentage" units="%" - expires_after="2024-08-31"> + expires_after="2024-11-03"> <owner>chuweih@google.com</owner> <owner>cros-network-metrics@google.com</owner> <summary> @@ -1597,7 +1575,7 @@ </histogram> <histogram name="Arc.Notifications.ActionEnabled" enum="BooleanEnabled" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>yaoqq@google.com</owner> <owner>arc-framework@google.com</owner> <summary> @@ -1617,7 +1595,7 @@ </histogram> <histogram name="Arc.Notifications.IsCustomNotification" - enum="BooleanIsCustomNotification" expires_after="2024-09-01"> + enum="BooleanIsCustomNotification" expires_after="2024-11-03"> <owner>shuminghao@google.com</owner> <owner>arc-framework@google.com</owner> <summary> @@ -1626,7 +1604,7 @@ </histogram> <histogram name="Arc.Notifications.Style" enum="ArcNotificationStyle" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>yaoqq@google.com</owner> <owner>arc-framework@google.com</owner> <summary>Records the style of an Arc notification when it's created.</summary> @@ -1653,7 +1631,7 @@ </histogram> <histogram name="Arc.OptInAction" enum="ArcOptInAction" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>mhasank@google.com</owner> <owner>arc-core@google.com</owner> <summary> @@ -2185,7 +2163,7 @@ </histogram> <histogram name="Arc.Session.StopReason{ArcUserTypes}" enum="ArcStopReason" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>jhorwich@google.com</owner> <owner>arc-core@google.com</owner> <summary> @@ -2320,7 +2298,7 @@ </histogram> <histogram name="Arc.UserInteraction" enum="ArcUserInteraction" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>jhorwich@chromium.org</owner> <owner>arc-core@google.com</owner> <summary> @@ -2770,7 +2748,7 @@ </histogram> <histogram name="Arc.WindowPredictorUseCase" enum="WindowPredictorUseCase" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>sstan@google.com</owner> <owner>arc-framework@google.com</owner> <summary>
diff --git a/tools/metrics/histograms/metadata/ash/histograms.xml b/tools/metrics/histograms/metadata/ash/histograms.xml index a21c2b7..0f4843a5 100644 --- a/tools/metrics/histograms/metadata/ash/histograms.xml +++ b/tools/metrics/histograms/metadata/ash/histograms.xml
@@ -386,7 +386,7 @@ </variants> <histogram name="Ash.Accelerators.Actions.{ActionName}" units="Shortcuts" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>dpad@google.com</owner> <owner>jimmyxgong@chromium.org</owner> <owner>cros-peripherals@google.com</owner> @@ -658,7 +658,7 @@ </histogram> <histogram name="Ash.ArcAppInitialAppsInstallDuration" units="ms" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>alemate@chromium.org</owner> <owner>khmel@chromium.org</owner> <owner>arc-performance@google.com</owner> @@ -942,7 +942,7 @@ </histogram> <histogram name="Ash.BrowserContext.UnexpectedGetPrimaryUserProfile" - enum="Boolean" expires_after="2024-09-01"> + enum="Boolean" expires_after="2024-11-03"> <owner>hidehiko@chromium.org</owner> <owner>oshima@chromium.org</owner> <summary> @@ -1472,7 +1472,7 @@ </histogram> <histogram name="Ash.Calendar.EventListView.JoinMeetingButton.Pressed" - enum="CalendarEventSource" expires_after="2024-09-04"> + enum="CalendarEventSource" expires_after="2024-11-03"> <owner>newcomer@google.com</owner> <owner>cros-status-area-eng@google.com</owner> <summary> @@ -1484,7 +1484,7 @@ </histogram> <histogram name="Ash.Calendar.EventListViewJelly.EventDisplayedCount" - units="int" expires_after="2024-09-04"> + units="int" expires_after="2024-11-03"> <owner>newcomer@google.com</owner> <owner>cros-status-area-eng@google.com</owner> <summary> @@ -1496,7 +1496,7 @@ </histogram> <histogram name="Ash.Calendar.EventsDisplayedToUser" enum="Boolean" - expires_after="2024-09-04"> + expires_after="2024-11-03"> <owner>samcackett@google.com</owner> <owner>cros-status-area-eng@google.com</owner> <summary> @@ -1526,7 +1526,7 @@ </histogram> <histogram name="Ash.Calendar.FetchEvents.SingleMonthSize" units="bytes" - expires_after="2024-09-04"> + expires_after="2024-11-03"> <owner>jiamingc@google.com</owner> <owner>cros-status-area-eng@google.com</owner> <summary> @@ -1536,7 +1536,7 @@ </histogram> <histogram name="Ash.Calendar.FetchEvents.TotalCacheSizeMonths" units="months" - expires_after="2024-09-04"> + expires_after="2024-11-03"> <owner>jiamingc@google.com</owner> <owner>cros-status-area-eng@google.com</owner> <summary> @@ -1557,7 +1557,7 @@ </histogram> <histogram name="Ash.Calendar.Fetch{DataType}s.FetchDuration" units="ms" - expires_after="2024-09-04"> + expires_after="2024-11-03"> <owner>jiamingc@google.com</owner> <owner>cros-status-area-eng@google.com</owner> <summary> @@ -1568,7 +1568,7 @@ </histogram> <histogram name="Ash.Calendar.Fetch{DataType}s.Result" - enum="CalendarDataFetchApiError" expires_after="2024-09-04"> + enum="CalendarDataFetchApiError" expires_after="2024-11-03"> <owner>jiamingc@google.com</owner> <owner>cros-status-area-eng@google.com</owner> <summary> @@ -1590,7 +1590,7 @@ </histogram> <histogram name="Ash.Calendar.MaxDistanceBrowsed" units="months" - expires_after="2024-09-04"> + expires_after="2024-11-03"> <owner>newcomer@chromium.org</owner> <owner>cros-status-area-eng@google.com</owner> <summary> @@ -1600,7 +1600,7 @@ </histogram> <histogram name="Ash.Calendar.MonthDwellTime" units="ms" - expires_after="2024-09-04"> + expires_after="2024-11-03"> <owner>kradtke@chromium.org</owner> <owner>cros-status-area-eng@google.com</owner> <summary> @@ -1610,7 +1610,7 @@ </histogram> <histogram name="Ash.Calendar.ScrollSource" enum="CalendarViewScrollSource" - expires_after="2024-09-04"> + expires_after="2024-11-03"> <owner>jiamingc@google.com</owner> <owner>cros-status-area-eng@google.com</owner> <summary> @@ -1621,7 +1621,7 @@ </histogram> <histogram name="Ash.Calendar.ShowSource.{ViewShowSource}" - enum="CalendarEventSource" expires_after="2024-09-04"> + enum="CalendarEventSource" expires_after="2024-11-03"> <owner>newcomer@google.com</owner> <owner>cros-status-area-eng@google.com</owner> <summary> @@ -1635,7 +1635,7 @@ </histogram> <histogram name="Ash.Calendar.TimeToSeeTodaysEventDots" units="ms" - expires_after="2024-09-04"> + expires_after="2024-11-03"> <owner>newcomer@google.com</owner> <owner>cros-status-area-eng@google.com</owner> <summary> @@ -1659,7 +1659,7 @@ </histogram> <histogram name="Ash.Calendar.UpNextView.EventDisplayedCount" units="int" - expires_after="2024-09-04"> + expires_after="2024-11-03"> <owner>newcomer@google.com</owner> <owner>cros-status-area-eng@google.com</owner> <summary> @@ -1671,7 +1671,7 @@ </histogram> <histogram name="Ash.Calendar.UpNextView.EventListItem.Pressed" - enum="CalendarEventSource" expires_after="2024-09-04"> + enum="CalendarEventSource" expires_after="2024-11-03"> <owner>newcomer@google.com</owner> <owner>cros-status-area-eng@google.com</owner> <summary> @@ -1683,7 +1683,7 @@ </histogram> <histogram name="Ash.Calendar.UpNextView.JoinMeetingButton.Pressed" - enum="CalendarEventSource" expires_after="2024-09-04"> + enum="CalendarEventSource" expires_after="2024-11-03"> <owner>newcomer@google.com</owner> <owner>cros-status-area-eng@google.com</owner> <summary> @@ -1718,7 +1718,7 @@ </histogram> <histogram name="Ash.Calendar.UserJourneyTime.{EventLaunchState}" units="ms" - expires_after="2024-09-04"> + expires_after="2024-11-03"> <owner>newcomer@google.com</owner> <owner>cros-status-area-eng@google.com</owner> <summary> @@ -1733,7 +1733,7 @@ </histogram> <histogram name="Ash.Calendar.{CalendarChildView}.Activated" - enum="CalendarEventSource" expires_after="2024-09-04"> + enum="CalendarEventSource" expires_after="2024-11-03"> <owner>newcomer@google.com</owner> <owner>cros-status-area-eng@google.com</owner> <summary>Recorded when the {CalendarChildView} is activated.</summary> @@ -1803,7 +1803,7 @@ <histogram name="Ash.CalendarView.OpenEventList.{CalendarChildView}.AnimationSmoothness" - units="%" expires_after="2024-09-04"> + units="%" expires_after="2024-11-03"> <owner>newcomer@google.com</owner> <owner>jiamingc@google.com</owner> <owner>cros-status-area-eng@google.com</owner> @@ -1827,7 +1827,7 @@ <histogram name="Ash.CalendarView.ScrollOneMonth.{CalendarChildView}.AnimationSmoothness" - units="%" expires_after="2024-09-04"> + units="%" expires_after="2024-11-03"> <owner>newcomer@google.com</owner> <owner>jiamingc@google.com</owner> <owner>cros-status-area-eng@google.com</owner> @@ -1844,7 +1844,7 @@ <histogram name="Ash.CalendarView.{Animation}.{CalendarChildView}.AnimationSmoothness" - units="%" expires_after="2024-09-04"> + units="%" expires_after="2024-11-03"> <owner>newcomer@google.com</owner> <owner>jiamingc@google.com</owner> <owner>cros-status-area-eng@google.com</owner> @@ -2158,7 +2158,7 @@ </histogram> <histogram name="Ash.CaptureModeController.ScreenshotsPerDay" units="int" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>afakhry@chromium.org</owner> <owner>gzadina@google.com</owner> <summary> @@ -2375,7 +2375,7 @@ </histogram> <histogram name="Ash.Desks.AnimationSmoothness.DeskActivation" units="%" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>afakhry@chromium.org</owner> <owner>tclaiborne@chromium.org</owner> <summary> @@ -2446,7 +2446,7 @@ </histogram> <histogram name="Ash.Desks.ConsecutiveDailyVisits" units="days" - expires_after="2024-09-03"> + expires_after="2024-11-03"> <owner>afakhry@chromium.org</owner> <owner>janetmac@chromium.org</owner> <summary> @@ -2527,7 +2527,7 @@ </histogram> <histogram name="Ash.Desks.DeskButton.Presses" enum="BooleanHit" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>yongshun@google.com</owner> <owner>benbecker@google.com</owner> <owner>nupurjain@google.com</owner> @@ -2616,7 +2616,7 @@ </histogram> <histogram name="Ash.Desks.DesksCount3" units="units" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>afakhry@chromium.org</owner> <owner>tclaiborne@chromium.org</owner> <summary> @@ -2720,7 +2720,7 @@ </histogram> <histogram name="Ash.Desks.NumberOfWindowsOnDesk_1" units="units" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>dandersson@chromium.org</owner> <owner>janetmac@chromium.org</owner> <summary> @@ -2800,7 +2800,7 @@ </histogram> <histogram name="Ash.Desks.NumberOfWindowsOnDesk_2" units="units" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>dandersson@chromium.org</owner> <owner>janetmac@chromium.org</owner> <summary> @@ -2810,7 +2810,7 @@ </histogram> <histogram name="Ash.Desks.NumberOfWindowsOnDesk_3" units="units" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>dandersson@chromium.org</owner> <owner>janetmac@chromium.org</owner> <summary> @@ -2820,7 +2820,7 @@ </histogram> <histogram name="Ash.Desks.NumberOfWindowsOnDesk_4" units="units" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>dandersson@chromium.org</owner> <owner>janetmac@chromium.org</owner> <summary> @@ -2830,7 +2830,7 @@ </histogram> <histogram name="Ash.Desks.NumberOfWindowsOnDesk_5" units="units" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>dandersson@chromium.org</owner> <owner>janetmac@chromium.org</owner> <summary> @@ -2840,7 +2840,7 @@ </histogram> <histogram name="Ash.Desks.NumberOfWindowsOnDesk_6" units="units" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>dandersson@chromium.org</owner> <owner>janetmac@chromium.org</owner> <summary> @@ -2850,7 +2850,7 @@ </histogram> <histogram name="Ash.Desks.NumberOfWindowsOnDesk_7" units="units" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>dandersson@chromium.org</owner> <owner>janetmac@chromium.org</owner> <summary> @@ -2860,7 +2860,7 @@ </histogram> <histogram name="Ash.Desks.NumberOfWindowsOnDesk_8" units="units" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>dandersson@chromium.org</owner> <owner>janetmac@chromium.org</owner> <summary> @@ -2929,7 +2929,7 @@ </histogram> <histogram name="Ash.Desks.WeeklyActiveDesks" units="active desks" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>afakhry@chromium.org</owner> <owner>janetmac@chromium.org</owner> <summary> @@ -3275,7 +3275,7 @@ </histogram> <histogram name="Ash.Display.{DisplayType}.ActiveEffectiveDPI" units="dpi" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>zhangwenyu@google.com</owner> <owner>cros-peripherals@google.com</owner> <summary> @@ -3397,7 +3397,7 @@ </histogram> <histogram name="Ash.EndOfLife.IncentiveShowSource" - enum="EolIncentiveShowSource" expires_after="2024-09-01"> + enum="EolIncentiveShowSource" expires_after="2024-11-03"> <owner>mmourgos@chromium.org</owner> <owner>tbarzic@chromium.org</owner> <summary> @@ -3420,7 +3420,7 @@ </histogram> <histogram name="Ash.EventLatency.Core.NoOverflow.TotalLatency" units="ms" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>xiyuan@chromium.org</owner> <owner>yichenz@chromium.org</owner> <owner>cros-sw-perf@google.com</owner> @@ -3570,7 +3570,7 @@ </histogram> <histogram name="Ash.Float.FloatWindowMoveToAnotherDeskCounts" units="windows" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>nupurjain@google.com</owner> <owner>shidi@chromium.org</owner> <owner>sammiequon@chromium.org</owner> @@ -3581,7 +3581,7 @@ </histogram> <histogram name="Ash.Float.MultitaskMenuActionType.{TabletOrClamshell}" - enum="MultitaskMenuActionType" expires_after="2024-09-01"> + enum="MultitaskMenuActionType" expires_after="2024-11-03"> <owner>nupurjain@google.com</owner> <owner>shidi@chromium.org</owner> <owner>sophiewen@chromium.org</owner> @@ -3592,7 +3592,7 @@ </histogram> <histogram name="Ash.Float.MultitaskMenuEntryType.{TabletOrClamshell}" - enum="MultitaskMenuEntryType" expires_after="2024-09-01"> + enum="MultitaskMenuEntryType" expires_after="2024-11-03"> <owner>nupurjain@google.com</owner> <owner>shidi@chromium.org</owner> <owner>sophiewen@chromium.org</owner> @@ -3739,7 +3739,7 @@ </histogram> <histogram name="Ash.Frame.ColorChangeCount.{AppType}" units="count" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>lingyufeng@google.com</owner> <owner>arc-framework@google.com</owner> <summary> @@ -4413,7 +4413,7 @@ </histogram> <histogram name="Ash.Lacros.Launch.Mode" enum="LacrosLaunchMode" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>skuhne@chromium.org</owner> <owner>lacros-team@google.com</owner> <summary> @@ -4680,7 +4680,7 @@ </histogram> <histogram base="true" name="Ash.LoginAnimation.Duration" units="ms" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>oshima@chromium.org</owner> <owner>chromeos-wmp@google.com</owner> <!-- Name completed by histogram_suffixes @@ -4694,7 +4694,7 @@ </histogram> <histogram name="Ash.LoginAnimation.Duration2.{TabletOrClamshell}" units="ms" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>oshima@chromium.org</owner> <owner>zhzhliu@google.com</owner> <owner>cros-sw-perf@google.com</owner> @@ -5061,7 +5061,7 @@ </histogram> <histogram name="Ash.Notification.ClearAllStacked.AnimationSmoothness" - units="%" expires_after="2024-09-01"> + units="%" expires_after="2024-11-03"> <owner>leandre@chromium.org</owner> <owner>cros-status-area-eng@google.com</owner> <summary> @@ -5073,7 +5073,7 @@ </histogram> <histogram name="Ash.Notification.ClearAllVisible.AnimationSmoothness" - units="%" expires_after="2024-09-01"> + units="%" expires_after="2024-11-03"> <owner>leandre@chromium.org</owner> <owner>cros-status-area-eng@google.com</owner> <summary> @@ -5094,7 +5094,7 @@ </histogram> <histogram name="Ash.Notification.ExpandOrCollapse.AnimationSmoothness" - units="%" expires_after="2024-09-01"> + units="%" expires_after="2024-11-03"> <owner>leandre@chromium.org</owner> <owner>cros-status-area-eng@google.com</owner> <summary> @@ -5128,7 +5128,7 @@ </histogram> <histogram name="Ash.Notification.MoveDown.AnimationSmoothness" units="%" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>leandre@chromium.org</owner> <owner>cros-status-area-eng@google.com</owner> <summary> @@ -5640,7 +5640,7 @@ </histogram> <histogram name="Ash.Overview.AnimationSmoothness.Enter{OverviewAnimationMode}" - units="%" expires_after="2024-09-01"> + units="%" expires_after="2024-11-03"> <owner>achuith@chromium.org</owner> <owner>cros-sw-perf@google.com</owner> <summary> @@ -5675,7 +5675,7 @@ </histogram> <histogram name="Ash.Overview.EndAction" enum="OverviewEndAction" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>minch@chromium.org</owner> <owner>janetmac@chromium.org</owner> <summary> @@ -5772,7 +5772,7 @@ </histogram> <histogram name="Ash.Overview.StartAction" enum="OverviewStartAction" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>minch@chromium.org</owner> <owner>janetmac@chromium.org</owner> <summary> @@ -6029,7 +6029,7 @@ </histogram> <histogram name="Ash.Personalization.KeyboardBacklight.Color" - enum="PersonalizationKeyboardBacklightColor" expires_after="2024-09-01"> + enum="PersonalizationKeyboardBacklightColor" expires_after="2024-11-03"> <owner>jasontt@chromium.org</owner> <owner>assistive-eng@google.com</owner> <summary> @@ -6039,7 +6039,7 @@ </histogram> <histogram name="Ash.Personalization.KeyboardBacklight.Color.Settled" - enum="PersonalizationKeyboardBacklightColor" expires_after="2024-09-01"> + enum="PersonalizationKeyboardBacklightColor" expires_after="2024-11-03"> <owner>jasontt@chromium.org</owner> <owner>assistive-eng@google.com</owner> <summary> @@ -6101,7 +6101,7 @@ </histogram> <histogram name="Ash.Personalization.Path" enum="PersonalizationPath" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>jasontt@chromium.org</owner> <owner>assistive-eng@google.com</owner> <summary> @@ -6110,7 +6110,7 @@ </histogram> <histogram name="Ash.Personalization.Theme.ColorMode" - enum="PersonalizationThemeColorMode" expires_after="2024-09-01"> + enum="PersonalizationThemeColorMode" expires_after="2024-11-03"> <owner>jasontt@chromium.org</owner> <owner>assistive-eng@google.com</owner> <summary> @@ -6388,7 +6388,7 @@ </histogram> <histogram name="Ash.PowerSoundsController.PluggedInBatteryLevel" units="%" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>hongyulong@chromium.org</owner> <owner>nupurjain@google.com</owner> <summary> @@ -6398,7 +6398,7 @@ </histogram> <histogram name="Ash.PowerSoundsController.UnpluggedBatteryLevel" units="%" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>hongyulong@chromium.org</owner> <owner>nupurjain@google.com</owner> <summary> @@ -7303,7 +7303,7 @@ </histogram> <histogram name="Ash.Shelf.NumberOfPinnedItems" units="Icons" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>anasalazar@chromium.org</owner> <owner>mmourgos@google.com</owner> <summary> @@ -7678,7 +7678,7 @@ </histogram> <histogram name="Ash.SplitView.EntryPoint.DeviceOrientation" - enum="DeviceOrientation" expires_after="2024-09-01"> + enum="DeviceOrientation" expires_after="2024-11-03"> <owner>xdai@chromium.org</owner> <owner>zxdan@chromium.org</owner> <owner>nupurjain@chromium.org</owner> @@ -7906,7 +7906,7 @@ </histogram> <histogram name="Ash.StatusArea.TrayBackgroundView.BounceIn" units="%" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>leandre@chromium.org</owner> <owner>cros-status-area-eng@google.com</owner> <summary> @@ -7930,7 +7930,7 @@ </histogram> <histogram name="Ash.StatusArea.TrayBackgroundView.Hide" units="%" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>leandre@chromium.org</owner> <owner>cros-status-area-eng@google.com</owner> <summary> @@ -7960,7 +7960,7 @@ </histogram> <histogram name="Ash.StatusArea.TrayItemView.Hide" units="%" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>leandre@chromium.org</owner> <owner>cros-status-area-eng@google.com</owner> <summary> @@ -7971,7 +7971,7 @@ </histogram> <histogram name="Ash.StatusArea.TrayItemView.Show" units="%" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>leandre@chromium.org</owner> <owner>cros-status-area-eng@google.com</owner> <summary> @@ -8136,7 +8136,7 @@ </histogram> <histogram name="Ash.TouchView.TouchViewInactive" units="ms" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>xdai@chromium.org</owner> <owner>chromeos-wm-corexp@google.com</owner> <summary> @@ -8460,7 +8460,7 @@ </histogram> <histogram name="Ash.Wallpaper.Collection" enum="WallpaperCollection" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>jasontt@chromium.org</owner> <owner>assistive-eng@google.com</owner> <summary> @@ -8572,7 +8572,7 @@ </histogram> <histogram name="Ash.Wallpaper.Image" enum="WallpaperImage" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>jasontt@chromium.org</owner> <owner>assistive-eng@google.com</owner> <summary> @@ -8659,7 +8659,7 @@ </histogram> <histogram name="Ash.Wallpaper.Source2" enum="WallpaperType" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>thuongphan@chromium.org</owner> <owner>assistive-eng@google.com</owner> <summary> @@ -8817,7 +8817,7 @@ </histogram> <histogram name="Ash.Window.DragMaximized.Valid" enum="Boolean" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>conniekxu@chromium.org</owner> <owner>xdai@chromium.org</owner> <owner>nupurjain@chromium.org</owner>
diff --git a/tools/metrics/histograms/metadata/assistant/histograms.xml b/tools/metrics/histograms/metadata/assistant/histograms.xml index 251fc58..2d50bcfe 100644 --- a/tools/metrics/histograms/metadata/assistant/histograms.xml +++ b/tools/metrics/histograms/metadata/assistant/histograms.xml
@@ -63,7 +63,7 @@ </histogram> <histogram name="Assistant.EntryPoint" enum="AssistantEntryPoint" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>xiaohuic@chromium.org</owner> <owner>croissant-eng@chromium.org</owner> <summary> @@ -73,7 +73,7 @@ </histogram> <histogram name="Assistant.ExitPoint" enum="AssistantExitPoint" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>xiaohuic@chromium.org</owner> <owner>croissant-eng@chromium.org</owner> <summary> @@ -175,7 +175,7 @@ </histogram> <histogram name="Assistant.QueryResponseType" enum="AssistantQueryResponseType" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>xiaohuic@chromium.org</owner> <owner>croissant-eng@chromium.org</owner> <summary>The Assistant query response type.</summary> @@ -192,7 +192,7 @@ </histogram> <histogram name="Assistant.ServiceEnabledUserCount" enum="BooleanEnabled" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>xiaohuic@chromium.org</owner> <owner>croissant-eng@chromium.org</owner> <summary>
diff --git a/tools/metrics/histograms/metadata/autofill/enums.xml b/tools/metrics/histograms/metadata/autofill/enums.xml index 0b44d81..cbbf2511 100644 --- a/tools/metrics/histograms/metadata/autofill/enums.xml +++ b/tools/metrics/histograms/metadata/autofill/enums.xml
@@ -3846,11 +3846,16 @@ <int value="2" label="Unclassified."/> </enum> -<enum name="FieldFillingStat"> +<enum name="FieldFillingStatus"> <int value="0" label="Accepted"/> - <int value="1" label="Corrected"/> - <int value="2" label="Manually Filled"/> - <int value="3" label="LeftEmpty"/> + <int value="1" label="CorrectedToSameType"/> + <int value="2" label="CorrectedToDifferentType"/> + <int value="3" label="CorrectedToUnkownType"/> + <int value="4" label="CorrectedToEmpty"/> + <int value="5" label="ManuallyFilledToSameType"/> + <int value="6" label="ManuallyFilledToDifferentType"/> + <int value="7" label="ManuallyFilledToUnknownType"/> + <int value="8" label="LeftEmpty"/> </enum> <enum name="IbanSuggestionBlockListStatus">
diff --git a/tools/metrics/histograms/metadata/autofill/histograms.xml b/tools/metrics/histograms/metadata/autofill/histograms.xml index d96dc56..2012242d 100644 --- a/tools/metrics/histograms/metadata/autofill/histograms.xml +++ b/tools/metrics/histograms/metadata/autofill/histograms.xml
@@ -614,7 +614,7 @@ </histogram> <histogram name="Autofill.Address.IsEnabled.PageLoad" enum="BooleanEnabled" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>koerber@google.com</owner> <owner>chrome-autofill-alerts@google.com</owner> <summary> @@ -624,7 +624,7 @@ </histogram> <histogram name="Autofill.Address.IsEnabled.Startup" enum="BooleanEnabled" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>koerber@google.com</owner> <owner>chrome-autofill-alerts@google.com</owner> <summary> @@ -830,7 +830,7 @@ <histogram name="Autofill.Autocomplete.PredictionCollisionType2.{PredictionType}.{AutocompleteState}" - enum="AutofillFieldType" expires_after="2024-09-01"> + enum="AutofillFieldType" expires_after="2024-11-03"> <owner>koerber@google.com</owner> <owner>fleimgruber@google.com</owner> <owner>chrome-autofill-alerts@google.com</owner> @@ -880,8 +880,8 @@ </summary> </histogram> -<histogram name="Autofill.AutocompleteUnrecognized.FieldFillingStats" - enum="FieldFillingStat" expires_after="2024-12-12"> +<histogram name="Autofill.AutocompleteUnrecognized.FieldFillingStats2" + enum="FieldFillingStatus" expires_after="2024-12-12"> <owner>jihadghanna@google.com</owner> <owner>chrome-autofill-alerts@google.com</owner> <summary> @@ -892,7 +892,7 @@ </histogram> <histogram name="Autofill.BetterAuth.CardUnmaskDuration.Fido" units="ms" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>jsaul@google.com</owner> <owner>siyua@chromium.org</owner> <owner>autofill-auth-team@google.com</owner> @@ -904,7 +904,7 @@ <histogram name="Autofill.BetterAuth.CardUnmaskDuration.Fido.{CardType}.{Result}" - units="ms" expires_after="2024-09-01"> + units="ms" expires_after="2024-11-03"> <owner>jsaul@google.com</owner> <owner>siyua@chromium.org</owner> <owner>autofill-auth-team@google.com</owner> @@ -918,7 +918,7 @@ <histogram name="Autofill.BetterAuth.CardUnmaskPreflightCalledWithFidoOptInStatus" - enum="Boolean" expires_after="2024-09-01"> + enum="Boolean" expires_after="2024-11-03"> <owner>jsaul@google.com</owner> <owner>siyua@chromium.org</owner> <owner>autofill-auth-team@google.com</owner> @@ -939,7 +939,7 @@ </histogram> <histogram name="Autofill.BetterAuth.CardUnmaskPreflightDuration" units="ms" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>jsaul@google.com</owner> <owner>siyua@chromium.org</owner> <owner>autofill-auth-team@google.com</owner> @@ -952,7 +952,7 @@ </histogram> <histogram name="Autofill.BetterAuth.CardUnmaskPreflightInitiated" - enum="Boolean" expires_after="2024-09-01"> + enum="Boolean" expires_after="2024-11-03"> <owner>vinnypersky@google.com</owner> <owner>autofill-auth-team@google.com</owner> <summary> @@ -990,7 +990,7 @@ <histogram name="Autofill.BetterAuth.FlowEvents.{BetterAuthFlowType}.{CardType}" - enum="AutofillCreditCardAuthenticationEvents" expires_after="2024-09-01"> + enum="AutofillCreditCardAuthenticationEvents" expires_after="2024-11-03"> <owner>jsaul@google.com</owner> <owner>siyua@chromium.org</owner> <owner>autofill-auth-team@google.com</owner> @@ -1005,7 +1005,7 @@ <histogram name="Autofill.BetterAuth.FlowEvents{AutofillCreditCardAuthenticationFlows}" - enum="AutofillCreditCardAuthenticationEvents" expires_after="2024-09-01"> + enum="AutofillCreditCardAuthenticationEvents" expires_after="2024-11-03"> <owner>jsaul@google.com</owner> <owner>siyua@chromium.org</owner> <owner>autofill-auth-team@google.com</owner> @@ -1042,7 +1042,7 @@ </histogram> <histogram name="Autofill.BetterAuth.OptInPromoNotOfferedReason" - enum="WebauthnOptInPromoNotOfferedReason" expires_after="2024-09-01"> + enum="WebauthnOptInPromoNotOfferedReason" expires_after="2024-11-03"> <owner>vinnypersky@google.com</owner> <owner>shgar@google.com</owner> <summary> @@ -1095,7 +1095,7 @@ </histogram> <histogram name="Autofill.BetterAuth.OptOutCalled.FromSettingsPage" - enum="BooleanHit" expires_after="2024-09-01"> + enum="BooleanHit" expires_after="2024-11-03"> <owner>jsaul@google.com</owner> <owner>siyua@chromium.org</owner> <owner>autofill-auth-team@google.com</owner> @@ -1112,7 +1112,7 @@ <histogram name="Autofill.BetterAuth.PreflightCallResponseReceivedOnCardSelection.{AutofillFidoAuthenticationEnabledState}.{CardType}" - enum="AutofillCreditCardPreflightCallEvent" expires_after="2024-09-01"> + enum="AutofillCreditCardPreflightCallEvent" expires_after="2024-11-03"> <owner>junhuihe@google.com</owner> <owner>payments-autofill-team@google.com</owner> <summary> @@ -1131,7 +1131,7 @@ <histogram name="Autofill.BetterAuth.UserPerceivedLatencyOnCardSelection.OptedIn.Duration" - units="ms" expires_after="2024-09-01"> + units="ms" expires_after="2024-11-03"> <owner>jsaul@google.com</owner> <owner>siyua@chromium.org</owner> <owner>autofill-auth-team@google.com</owner> @@ -1147,7 +1147,7 @@ <histogram name="Autofill.BetterAuth.UserPerceivedLatencyOnCardSelection.OptedIn.TimedOutCvcFallback" enum="AutofillCreditCardUserPerceivedLatencyFollowUp" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>jsaul@google.com</owner> <owner>siyua@chromium.org</owner> <owner>autofill-auth-team@google.com</owner> @@ -1162,7 +1162,7 @@ <histogram name="Autofill.BetterAuth.UserPerceivedLatencyOnCardSelection.{AutofillFidoAuthenticationEnabledState}" - enum="AutofillCreditCardPreflightCallEvent" expires_after="2024-09-01"> + enum="AutofillCreditCardPreflightCallEvent" expires_after="2024-11-03"> <owner>jsaul@google.com</owner> <owner>siyua@chromium.org</owner> <owner>autofill-auth-team@google.com</owner> @@ -1191,7 +1191,7 @@ <histogram name="Autofill.BetterAuth.WebauthnResult{AutofillFidoUserVerificationFlow}" - enum="AutofillCreditCardWebauthnResultMetric" expires_after="2024-09-01"> + enum="AutofillCreditCardWebauthnResultMetric" expires_after="2024-11-03"> <owner>jsaul@google.com</owner> <owner>siyua@chromium.org</owner> <owner>autofill-auth-team@google.com</owner> @@ -1213,7 +1213,7 @@ <histogram name="Autofill.ButterForPayments.ShowCardsFromGoogleAccountButtonEvents" - enum="ShowCardsFromGoogleAccountButtonEvent" expires_after="2024-09-01"> + enum="ShowCardsFromGoogleAccountButtonEvent" expires_after="2024-11-03"> <owner>averina@google.com</owner> <owner>payments-autofill-team@google.com</owner> <summary> @@ -1224,7 +1224,7 @@ </histogram> <histogram name="Autofill.CardholderNameFixFlowPrompt.Events" - enum="AutofillCardholderNameFixFlowPromptEvent" expires_after="2024-09-01"> + enum="AutofillCardholderNameFixFlowPromptEvent" expires_after="2024-11-03"> <owner>jsaul@google.com</owner> <owner>siyua@chromium.org</owner> <owner>payments-autofill-team@google.com</owner> @@ -1265,7 +1265,7 @@ <histogram name="Autofill.CardUnmaskAuthenticationSelectionDialog.Result" enum="AutofillCardUnmaskAuthenticationSelectionDialogResult" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>siyua@chromium.org</owner> <owner>jsaul@google.com</owner> <owner>siashah@chromium.org</owner> @@ -1278,7 +1278,7 @@ </histogram> <histogram name="Autofill.CardUnmaskAuthenticationSelectionDialog.Shown2" - units="challenge_options" expires_after="2024-09-01"> + units="challenge_options" expires_after="2024-11-03"> <owner>siyua@chromium.org</owner> <owner>jsaul@google.com</owner> <owner>siashah@chromium.org</owner> @@ -1292,7 +1292,7 @@ </histogram> <histogram name="Autofill.CardUploadDecisionMetric" - enum="AutofillCardUploadDecisionMetric" expires_after="2024-09-01"> + enum="AutofillCardUploadDecisionMetric" expires_after="2024-11-03"> <owner>jsaul@google.com</owner> <owner>siyua@chromium.org</owner> <owner>payments-autofill-team@google.com</owner> @@ -1304,7 +1304,7 @@ </histogram> <histogram name="Autofill.CardUploadEnabled" enum="AutofillCardUploadEnabled" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>jsaul@google.com</owner> <owner>aneeshali@google.com</owner> <owner>payments-autofill-team@google.com</owner> @@ -1316,7 +1316,7 @@ </histogram> <histogram name="Autofill.CreditCard.IsEnabled.PageLoad" enum="BooleanEnabled" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>jsaul@google.com</owner> <owner>chrome-autofill-alerts@google.com</owner> <summary> @@ -1336,7 +1336,7 @@ <histogram name="Autofill.CreditCard.Seamless{AutofillSeamlessnessFillability}{AutofillSeamlessnessMeasurementTime}{AutofillSeamlessnessVisibility}" - enum="CreditCardSeamlessFill" expires_after="2024-09-01"> + enum="CreditCardSeamlessFill" expires_after="2024-11-03"> <owner>schwering@google.com</owner> <owner>chrome-autofill-alerts@google.com</owner> <summary> @@ -1376,7 +1376,7 @@ <histogram name="Autofill.CreditCard.Seamless{AutofillSeamlessnessFillability}{AutofillSeamlessnessMeasurementTime}{AutofillSeamlessnessVisibility}.Bitmask" - enum="AutofillCreditCardSeamlessnessBitmask" expires_after="2024-09-01"> + enum="AutofillCreditCardSeamlessnessBitmask" expires_after="2024-11-03"> <owner>schwering@google.com</owner> <owner>chrome-autofill-alerts@google.com</owner> <summary> @@ -1405,7 +1405,7 @@ <histogram name="Autofill.CreditCard.SelectionLatencySinceShown.CardWithIssuerId.{CardMetadataVisible}.{CardIssuerId}" - units="ms" expires_after="2024-09-01"> + units="ms" expires_after="2024-11-03"> <owner>siyua@chromium.org</owner> <owner>payments-autofill-team@google.com</owner> <summary> @@ -1422,7 +1422,7 @@ <histogram name="Autofill.CreditCard.SelectionLatencySinceShown.{CardMetadataVisible}" - units="ms" expires_after="2024-09-01"> + units="ms" expires_after="2024-11-03"> <owner>siyua@chromium.org</owner> <owner>payments-autofill-team@google.com</owner> <summary> @@ -1438,7 +1438,7 @@ <histogram name="Autofill.CreditCard.{CardIssuer}.SelectedWithIssuerMetadataPresentOnce" - enum="Boolean" expires_after="2024-09-01"> + enum="Boolean" expires_after="2024-11-03"> <owner>alexandertekle@google.com</owner> <owner>payments-autofill-team@google.com</owner> <summary> @@ -1451,7 +1451,7 @@ </histogram> <histogram name="Autofill.CreditCard.{CardIssuer}.{FormEventWithMetadata}" - enum="Boolean" expires_after="2024-09-01"> + enum="Boolean" expires_after="2024-11-03"> <owner>vishwasuppoor@chromium.org</owner> <owner>payments-autofill-team@google.com</owner> <summary> @@ -1477,7 +1477,7 @@ <histogram name="Autofill.CreditCard.{CardNetwork}.SelectedWithIssuerMetadataPresentOnce" - enum="Boolean" expires_after="2024-09-01"> + enum="Boolean" expires_after="2024-11-03"> <owner>alexandertekle@google.com</owner> <owner>payments-autofill-team@google.com</owner> <summary> @@ -1490,7 +1490,7 @@ </histogram> <histogram name="Autofill.CreditCard.{CardNetwork}.{FormEventWithMetadata}" - enum="Boolean" expires_after="2024-09-01"> + enum="Boolean" expires_after="2024-11-03"> <owner>alexandertekle@google.com</owner> <owner>payments-autofill-team@google.com</owner> <summary> @@ -1521,7 +1521,7 @@ <histogram name="Autofill.CreditCardInfoBar{AutofillCreditCardInfoBarSaveType}{SaveType}" - enum="AutofillCreditCardInfoBar" expires_after="2024-09-01"> + enum="AutofillCreditCardInfoBar" expires_after="2024-11-03"> <owner>jsaul@google.com</owner> <owner>battre@chromium.org</owner> <owner>chrome-autofill-alerts@google.com</owner> @@ -1538,7 +1538,7 @@ </histogram> <histogram name="Autofill.CreditCardSaveFlowResult.{SaveDestination}{SaveType}" - enum="AutofillCreditCardSaveFlowResult" expires_after="2024-09-01"> + enum="AutofillCreditCardSaveFlowResult" expires_after="2024-11-03"> <owner>jsaul@google.com</owner> <owner>chrome-autofill-alerts@google.com</owner> <summary> @@ -1669,7 +1669,7 @@ </histogram> <histogram name="Autofill.CvcAuth.{CardType}.Result" - enum="AutofillCvcAuthEvent" expires_after="2024-09-01"> + enum="AutofillCvcAuthEvent" expires_after="2024-11-03"> <owner>vinnypersky@google.com</owner> <owner>payments-autofill-team@google.com</owner> <summary> @@ -1693,7 +1693,7 @@ </histogram> <histogram name="Autofill.CvcInfoBar{AutofillSaveCreditCardPromptDestination}" - enum="AutofillCreditCardInfoBar" expires_after="2024-09-01"> + enum="AutofillCreditCardInfoBar" expires_after="2024-11-03"> <owner>yishuil@google.com</owner> <owner>vishwasuppoor@google.com</owner> <owner>payments-autofill-team@google.com</owner> @@ -1707,7 +1707,7 @@ </histogram> <histogram name="Autofill.CvcStorage.CvcFilling.{CardType}" - enum="CvcFillingFlowType" expires_after="2024-09-01"> + enum="CvcFillingFlowType" expires_after="2024-11-03"> <owner>jialihuang@google.com</owner> <owner>payments-autofill-team@google.com</owner> <summary> @@ -1752,7 +1752,7 @@ </histogram> <histogram name="Autofill.DaysSinceLastUse.StoredIban.{IbanRecordType}" - units="days" expires_after="2024-09-01"> + units="days" expires_after="2024-11-03"> <owner>qihuizhao@google.com</owner> <owner>jsaul@google.com</owner> <owner>payments-autofill-team@google.com</owner> @@ -1779,7 +1779,7 @@ <histogram name="Autofill.Deduplication.{Scenario}.RankOfStoredQuasiDuplicateProfiles" - units="Rank" expires_after="2024-09-01"> + units="Rank" expires_after="2024-11-03"> <owner>koerber@chromium.org</owner> <owner>fleimgruber@chromium.org</owner> <owner>chrome-autofill-alerts@google.com</owner> @@ -1802,7 +1802,7 @@ <histogram name="Autofill.Deduplication.{Scenario}.TypeOfQuasiDuplicateToken.{DuplicationRank}" - enum="AutofillSettingsVisibleTypes" expires_after="2024-09-01"> + enum="AutofillSettingsVisibleTypes" expires_after="2024-11-03"> <owner>koerber@chromium.org</owner> <owner>fleimgruber@chromium.org</owner> <owner>chrome-autofill-alerts@google.com</owner> @@ -1935,7 +1935,7 @@ </histogram> <histogram name="Autofill.ExpirationDateFixFlowPrompt.Events" - enum="AutofillExpirationDateFixFlowPromptEvent" expires_after="2024-09-01"> + enum="AutofillExpirationDateFixFlowPromptEvent" expires_after="2024-11-03"> <owner>jsaul@google.com</owner> <owner>siashah@google.com</owner> <owner>payments-autofill-team@google.com</owner> @@ -1947,7 +1947,7 @@ </histogram> <histogram name="Autofill.ExpirationDateFixFlowPromptShown" enum="Boolean" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>jsaul@google.com</owner> <owner>siashah@google.com</owner> <owner>payments-autofill-team@google.com</owner> @@ -2072,6 +2072,20 @@ <summary>Number of fields in a form that Autofill encounters.</summary> </histogram> +<histogram name="Autofill.FieldFillingStats.{FillingProduct}" + enum="FieldFillingStatus" expires_after="2024-12-12"> + <owner>jihadghanna@google.com</owner> + <owner>chrome-autofill-alerts@google.com</owner> + <summary> + Logs the status (see FieldFillingStatus) of a submitted field. Emitted once + per field at submission time. + </summary> + <token key="FillingProduct"> + <variant name="Address"/> + <variant name="CreditCard"/> + </token> +</histogram> + <histogram name="Autofill.FieldFillingStats{AutofillFillingMethod}{AutofillFormType}{FillingStatus}" units="fields" expires_after="2024-10-28"> @@ -2092,7 +2106,7 @@ </histogram> <histogram name="Autofill.FieldFillingStats{AutofillFormType}{FillingStatus}" - units="fields" expires_after="2024-09-01"> + units="fields" expires_after="2024-11-03"> <owner>koerber@google.com</owner> <owner>chrome-autofill-alerts@google.com</owner> <summary> @@ -2291,7 +2305,7 @@ </histogram> <histogram name="Autofill.FormEvents.CreditCard{CreditCardDataAvailability}" - enum="AutofillFormEvent" expires_after="2024-09-01"> + enum="AutofillFormEvent" expires_after="2024-11-03"> <owner>jsaul@google.com</owner> <owner>battre@chromium.org</owner> <summary> @@ -2425,7 +2439,7 @@ <histogram name="Autofill.Funnel.ClassifiedFieldAutocompleteUnrecognized.FillAfterSuggestion.Address" - enum="BooleanAutofillFillAfterSuggestion" expires_after="2024-09-01"> + enum="BooleanAutofillFillAfterSuggestion" expires_after="2024-11-03"> <owner>fleimgruber@google.com</owner> <owner>chrome-autofill-alerts@google.com</owner> <summary> @@ -2565,7 +2579,7 @@ </histogram> <histogram name="Autofill.Iban.Suggestions" enum="IbanSuggestionsEvent" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>qihuizhao@google.com</owner> <owner>jsaul@google.com</owner> <owner>payments-autofill-team@google.com</owner> @@ -2633,7 +2647,7 @@ </histogram> <histogram name="Autofill.ImageFetcher.RequestLatency" units="ms" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>vishwasuppoor@chromium.org</owner> <owner>siyua@chromium.org</owner> <owner>payments-autofill-team@google.com</owner> @@ -2644,7 +2658,7 @@ </histogram> <histogram name="Autofill.ImageFetcher.Result" enum="BooleanSuccess" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>siyua@chromium.org</owner> <owner>payments-autofill-team@google.com</owner> <summary> @@ -2826,7 +2840,7 @@ </histogram> <histogram name="Autofill.Leipzig.FillingAssistanceCategory" - enum="AutofillCategoryResolvedFillingAssistance" expires_after="2024-09-01"> + enum="AutofillCategoryResolvedFillingAssistance" expires_after="2024-11-03"> <owner>koerber@chromium.org</owner> <owner>fleimgruber@chromium.org</owner> <owner>chrome-autofill-alerts@google.com</owner> @@ -2837,7 +2851,7 @@ </histogram> <histogram name="Autofill.Leipzig.FillingCorrectness.{Category}" - enum="BooleanAutofillFillingCorrectness" expires_after="2024-09-01"> + enum="BooleanAutofillFillingCorrectness" expires_after="2024-11-03"> <owner>koerber@chromium.org</owner> <owner>fleimgruber@chromium.org</owner> <owner>chrome-autofill-alerts@google.com</owner> @@ -2858,7 +2872,7 @@ </histogram> <histogram name="Autofill.LocalCardMigrationBubbleOffer{ShowType}" - enum="AutofillLocalCardMigrationBubbleOffer" expires_after="2024-09-01"> + enum="AutofillLocalCardMigrationBubbleOffer" expires_after="2024-11-03"> <owner>siyua@chromium.org</owner> <owner>jsaul@google.com</owner> <summary> @@ -2888,7 +2902,7 @@ </histogram> <histogram name="Autofill.LocalCardMigrationDecision" - enum="AutofillLocalCardMigrationDecisionMetric" expires_after="2024-09-01"> + enum="AutofillLocalCardMigrationDecisionMetric" expires_after="2024-11-03"> <owner>sujiezhu@google.com</owner> <owner>siyua@chromium.org</owner> <owner>jsaul@google.com</owner> @@ -2922,7 +2936,7 @@ </histogram> <histogram name="Autofill.LocalCardMigrationDialogOffer" - enum="AutofillLocalCardMigrationDialogOffer" expires_after="2024-09-01"> + enum="AutofillLocalCardMigrationDialogOffer" expires_after="2024-11-03"> <owner>siyua@chromium.org</owner> <owner>jsaul@google.com</owner> <summary> @@ -2932,7 +2946,7 @@ <histogram name="Autofill.LocalCardMigrationDialogUserInteraction" enum="AutofillLocalCardMigrationDialogUserInteraction" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>siyua@chromium.org</owner> <owner>jsaul@google.com</owner> <summary> @@ -2941,7 +2955,7 @@ </histogram> <histogram name="Autofill.LocalCardMigrationDialogUserSelectionPercentage" - units="%" expires_after="2024-09-01"> + units="%" expires_after="2024-11-03"> <owner>siyua@chromium.org</owner> <owner>jsaul@google.com</owner> <summary> @@ -2951,7 +2965,7 @@ <histogram name="Autofill.LocalCardMigrationOrigin{AutofillLocalCardMigrationOrigin}" - enum="LocalCardMigrationPrompt" expires_after="2024-09-01"> + enum="LocalCardMigrationPrompt" expires_after="2024-11-03"> <owner>siyua@chromium.org</owner> <owner>jsaul@google.com</owner> <summary> @@ -3003,7 +3017,7 @@ </histogram> <histogram name="Autofill.ManageCardsPrompt{AutofillManageCardsPrompt}" - enum="AutofillManageCardsPrompt" expires_after="2024-09-01"> + enum="AutofillManageCardsPrompt" expires_after="2024-11-03"> <owner>jsaul@google.com</owner> <owner>siyua@chromium.org</owner> <summary> @@ -3078,7 +3092,7 @@ </histogram> <histogram name="Autofill.NameTokenVerificationStatusAtProfileUsage.{NameType}" - enum="AufofillStructuredTokenVerificationStatus" expires_after="2024-09-01"> + enum="AufofillStructuredTokenVerificationStatus" expires_after="2024-11-03"> <owner>koerber@google.com</owner> <owner>chrome-autofill-alerts@google.com</owner> <summary> @@ -3288,7 +3302,7 @@ <histogram name="Autofill.OfferNotificationBubblePromoCodeButtonClicked.{BubbleType}" - enum="BooleanClicked" expires_after="2024-09-01"> + enum="BooleanClicked" expires_after="2024-11-03"> <owner>jsaul@google.com</owner> <owner>siyua@chromium.org</owner> <owner>payments-autofill-team@google.com</owner> @@ -3330,7 +3344,7 @@ </histogram> <histogram name="Autofill.OtpAuth.{OtpAuthType}.Attempt" - enum="BooleanAttempted" expires_after="2024-09-01"> + enum="BooleanAttempted" expires_after="2024-11-03"> <owner>siyua@chromium.org</owner> <owner>payments-autofill-team@google.com</owner> <summary> @@ -3365,7 +3379,7 @@ </histogram> <histogram name="Autofill.OtpAuth.{OtpAuthType}.Result" - enum="AutofillOtpAuthEvent" expires_after="2024-09-01"> + enum="AutofillOtpAuthEvent" expires_after="2024-11-03"> <owner>siyua@chromium.org</owner> <owner>payments-autofill-team@google.com</owner> <summary>Logs the result of the OTP authentication.</summary> @@ -3405,7 +3419,7 @@ </histogram> <histogram name="Autofill.OtpInputDialog.{OtpAuthType}.Result" - enum="AutofillOtpInputDialogResult" expires_after="2024-09-01"> + enum="AutofillOtpInputDialogResult" expires_after="2024-11-03"> <owner>siyua@chromium.org</owner> <owner>payments-autofill-team@google.com</owner> <summary> @@ -3428,7 +3442,7 @@ </histogram> <histogram name="Autofill.OtpInputDialog.{OtpAuthType}.Shown" - enum="BooleanShown" expires_after="2024-09-01"> + enum="BooleanShown" expires_after="2024-11-03"> <owner>siyua@chromium.org</owner> <owner>payments-autofill-team@google.com</owner> <summary> @@ -3467,7 +3481,7 @@ <histogram name="Autofill.PaymentMethods.CheckoutFlow.ReauthUsage.{PaymentMethodType}.{AuthenticationMethod}" - enum="MandatoryReauthAuthEvent" expires_after="2024-09-01"> + enum="MandatoryReauthAuthEvent" expires_after="2024-11-03"> <owner>sujiezhu@google.com</owner> <owner>payments-autofill-team@google.com</owner> <summary> @@ -3487,7 +3501,7 @@ </histogram> <histogram name="Autofill.PaymentMethods.CvcStorageIsEnabled.Startup" - enum="BooleanEnabled" expires_after="2024-09-01"> + enum="BooleanEnabled" expires_after="2024-11-03"> <owner>koulvipul@google.com</owner> <owner>jsaul@google.com</owner> <owner>chrome-autofill-alerts@google.com</owner> @@ -3502,7 +3516,7 @@ <histogram name="Autofill.PaymentMethods.MandatoryReauth.AuthEvent.SettingsPage.{ActionType}" - enum="MandatoryReauthAuthEvent" expires_after="2024-09-01"> + enum="MandatoryReauthAuthEvent" expires_after="2024-11-03"> <owner>koulvipul@google.com</owner> <owner>payments-autofill-team@google.com</owner> <summary> @@ -3522,7 +3536,7 @@ <histogram name="Autofill.PaymentMethods.MandatoryReauth.CheckoutFlow.ReauthOfferOptInDecision2" - enum="MandatoryReauthOfferOptInDecision" expires_after="2024-09-01"> + enum="MandatoryReauthOfferOptInDecision" expires_after="2024-11-03"> <owner>vinnypersky@google.com</owner> <owner>sujiezhu@google.com</owner> <owner>payments-autofill-team@google.com</owner> @@ -3536,7 +3550,7 @@ <histogram name="Autofill.PaymentMethods.MandatoryReauth.OptChangeEvent.{Source}.{ChangingStatus}" - enum="MandatoryReauthAuthEvent" expires_after="2024-09-01"> + enum="MandatoryReauthAuthEvent" expires_after="2024-11-03"> <owner>koulvipul@google.com</owner> <owner>payments-autofill-team@google.com</owner> <summary> @@ -3554,7 +3568,7 @@ <histogram name="Autofill.PaymentMethods.MandatoryReauth.OptInBubbleOffer{ShowType}" - enum="MandatoryReauthOptInBubbleOffer" expires_after="2024-09-01"> + enum="MandatoryReauthOptInBubbleOffer" expires_after="2024-11-03"> <owner>justinleewells@google.com</owner> <owner>payments-autofill-team@google.com</owner> <summary> @@ -3569,7 +3583,7 @@ <histogram name="Autofill.PaymentMethods.MandatoryReauth.OptInBubbleResult{ShowType}" - enum="MandatoryReauthOptInBubbleResult" expires_after="2024-09-01"> + enum="MandatoryReauthOptInBubbleResult" expires_after="2024-11-03"> <owner>justinleewells@google.com</owner> <owner>payments-autofill-team@google.com</owner> <summary> @@ -3613,7 +3627,7 @@ </histogram> <histogram name="Autofill.PerfectFilling.{FormType}" enum="Boolean" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>koerber@google.com</owner> <owner>chrome-autofill-alerts@google.com</owner> <summary> @@ -3751,7 +3765,7 @@ </histogram> <histogram name="Autofill.Popup.SingleFieldFormFillerDelay.{FillingProduct}" - units="ms" expires_after="2024-09-01"> + units="ms" expires_after="2024-11-03"> <owner>jkeitel@google.com</owner> <owner>vizcay@google.com</owner> <owner>chrome-autofill-alerts@google.com</owner> @@ -4139,7 +4153,7 @@ </histogram> <histogram name="Autofill.ProfileTokenQuality.{Type}" units="Percents" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>fleimgruber@google.com</owner> <owner>chrome-autofill-alerts@google.com</owner> <summary> @@ -4152,7 +4166,7 @@ </histogram> <histogram name="Autofill.ProgressDialog.{FlowType}.Result" - enum="BooleanCanceled" expires_after="2024-09-01"> + enum="BooleanCanceled" expires_after="2024-11-03"> <owner>siashah@chromium.org</owner> <owner>siyua@chromium.org</owner> <owner>jsaul@google.com</owner> @@ -4171,7 +4185,7 @@ </histogram> <histogram name="Autofill.ProgressDialog.{FlowType}.Shown" enum="BooleanShown" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>siashah@chromium.org</owner> <owner>siyua@chromium.org</owner> <owner>jsaul@google.com</owner> @@ -4270,7 +4284,7 @@ </histogram> <histogram name="Autofill.RiskBasedAuth.{CardType}.Attempt" - enum="BooleanAttempted" expires_after="2024-09-01"> + enum="BooleanAttempted" expires_after="2024-11-03"> <owner>junhuihe@google.com</owner> <owner>payments-autofill-team@google.com</owner> <summary> @@ -4282,7 +4296,7 @@ </histogram> <histogram name="Autofill.RiskBasedAuth.{CardType}.Latency" units="ms" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>junhuihe@google.com</owner> <owner>payments-autofill-team@google.com</owner> <summary> @@ -4293,7 +4307,7 @@ </histogram> <histogram name="Autofill.RiskBasedAuth.{CardType}.Result" - enum="AutofillRiskBasedAuthEvent" expires_after="2024-09-01"> + enum="AutofillRiskBasedAuthEvent" expires_after="2024-11-03"> <owner>junhuihe@google.com</owner> <owner>payments-autofill-team@google.com</owner> <summary> @@ -4305,7 +4319,7 @@ </histogram> <histogram name="Autofill.RiskDataLoading.Latency" units="ms" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>junhuihe@google.com</owner> <owner>payments-autofill-team@google.com</owner> <summary> @@ -4338,7 +4352,7 @@ <histogram name="Autofill.SaveCardRequestExpirationDateReason" enum="AutofillSaveCardRequestExpirationDateReason" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>jsaul@google.com</owner> <owner>siyua@chromium.org</owner> <owner>payments-autofill-team@google.com</owner> @@ -4350,7 +4364,7 @@ <histogram name="Autofill.SaveCreditCardPromptOffer{SaveDestination}{ShowType}{SaveType}" - enum="AutofillSavePaymentMethodPromptOfferEnum" expires_after="2024-09-01"> + enum="AutofillSavePaymentMethodPromptOfferEnum" expires_after="2024-11-03"> <owner>jsaul@google.com</owner> <owner>siyua@chromium.org</owner> <owner>payments-autofill-team@google.com</owner> @@ -4371,7 +4385,7 @@ <histogram name="Autofill.SaveCreditCardPromptResult{SaveDestination}{ShowType}{SaveType}" - enum="AutofillSavePaymentMethodPromptResultEnum" expires_after="2024-09-01"> + enum="AutofillSavePaymentMethodPromptResultEnum" expires_after="2024-11-03"> <owner>jsaul@google.com</owner> <owner>siyua@chromium.org</owner> <owner>payments-autofill-team@google.com</owner> @@ -4392,7 +4406,7 @@ <histogram name="Autofill.SaveCvcPromptOffer{AutofillSaveCreditCardPromptDestination}{ShowType}" - enum="AutofillSavePaymentMethodPromptOfferEnum" expires_after="2024-09-01"> + enum="AutofillSavePaymentMethodPromptOfferEnum" expires_after="2024-11-03"> <owner>vishwasuppoor@google.com</owner> <owner>siyua@chromium.org</owner> <owner>payments-autofill-team@google.com</owner> @@ -4408,7 +4422,7 @@ <histogram name="Autofill.SaveCvcPromptResult{AutofillSaveCreditCardPromptDestination}{ShowType}" - enum="AutofillSavePaymentMethodPromptResultEnum" expires_after="2024-09-01"> + enum="AutofillSavePaymentMethodPromptResultEnum" expires_after="2024-11-03"> <owner>vishwasuppoor@google.com</owner> <owner>siyua@chromium.org</owner> <owner>payments-autofill-team@google.com</owner> @@ -4448,7 +4462,7 @@ </histogram> <histogram name="Autofill.SaveIbanPromptResult{IbanTypeToBeSaved}{ShowType}" - enum="AutofillSavePaymentMethodPromptResultEnum" expires_after="2024-09-01"> + enum="AutofillSavePaymentMethodPromptResultEnum" expires_after="2024-11-03"> <owner>jsaul@google.com</owner> <owner>qihuizhao@google.com</owner> <owner>payments-autofill-team@google.com</owner> @@ -4490,7 +4504,7 @@ </histogram> <histogram name="Autofill.Sectioning.FieldsPerSection" units="Fields" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>fleimgruber@google.com</owner> <owner>schwering@google.com</owner> <owner>chrome-autofill-alerts@google.com</owner> @@ -4504,7 +4518,7 @@ </histogram> <histogram name="Autofill.Sectioning.NumberOfSections" units="Sections" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>fleimgruber@google.com</owner> <owner>schwering@google.com</owner> <owner>chrome-autofill-alerts@google.com</owner> @@ -4529,7 +4543,7 @@ </histogram> <histogram name="Autofill.ServerCardUnmask.{CardType}.Attempt" - enum="BooleanAttempted" expires_after="2024-09-01"> + enum="BooleanAttempted" expires_after="2024-11-03"> <owner>siyua@chromium.org</owner> <owner>payments-autofill-team@google.com</owner> <summary> @@ -4540,7 +4554,7 @@ </histogram> <histogram name="Autofill.ServerCardUnmask.{CardType}.FormSubmission" - enum="BooleanSubmitted" expires_after="2024-09-01"> + enum="BooleanSubmitted" expires_after="2024-11-03"> <owner>siyua@chromium.org</owner> <owner>payments-autofill-team@google.com</owner> <summary> @@ -4551,7 +4565,7 @@ </histogram> <histogram name="Autofill.ServerCardUnmask.{CardType}.Result.{FlowType}" - enum="AutofillServerCardUnmaskResult" expires_after="2024-09-01"> + enum="AutofillServerCardUnmaskResult" expires_after="2024-11-03"> <owner>siyua@chromium.org</owner> <owner>payments-autofill-team@google.com</owner> <summary> @@ -4682,7 +4696,7 @@ </histogram> <histogram name="Autofill.Snackbar.{SnackbarType}.ActionClicked" - enum="BooleanShown" expires_after="2024-09-01"> + enum="BooleanShown" expires_after="2024-11-03"> <owner>siashah@chromium.org</owner> <owner>jsaul@google.com</owner> <owner>payments-autofill-team@google.com</owner> @@ -4836,7 +4850,7 @@ </histogram> <histogram name="Autofill.StoredProfileUsedCount.{Category}" units="Profiles" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>koerber@google.com</owner> <owner>chrome-autofill-alerts@google.com</owner> <summary> @@ -4849,7 +4863,7 @@ </histogram> <histogram name="Autofill.StoredProfileUsedPercentage.{Category}" - units="Profiles" expires_after="2024-09-01"> + units="Profiles" expires_after="2024-11-03"> <owner>koerber@google.com</owner> <owner>chrome-autofill-alerts@google.com</owner> <summary> @@ -4863,7 +4877,7 @@ <histogram name="Autofill.StrikeDatabase.CreditCardSaveNotOfferedDueToMaxStrikes" - enum="AutofillSaveType" expires_after="2024-09-01"> + enum="AutofillSaveType" expires_after="2024-11-03"> <owner>jsaul@google.com</owner> <owner>payments-autofill-team@google.com</owner> <summary> @@ -4898,7 +4912,7 @@ <histogram name="Autofill.StrikeDatabase.NthStrikeAdded{AutofillStrikeDatabaseProjectType}" - units="strikes" expires_after="2024-09-01"> + units="strikes" expires_after="2024-11-03"> <owner>jsaul@google.com</owner> <owner>payments-autofill-team@google.com</owner> <summary> @@ -4937,7 +4951,7 @@ <histogram name="Autofill.StrikeDatabase.StrikesPresentWhenLocalCardMigrationAccepted" - units="strikes" expires_after="2024-09-01"> + units="strikes" expires_after="2024-11-03"> <owner>jsaul@google.com</owner> <owner>payments-autofill-team@google.com</owner> <summary> @@ -4947,7 +4961,7 @@ </histogram> <histogram name="Autofill.StrikeDatabase.StrikesPresentWhenLocalCardSaved" - units="strikes" expires_after="2024-09-01"> + units="strikes" expires_after="2024-11-03"> <owner>jsaul@google.com</owner> <owner>payments-autofill-team@google.com</owner> <summary> @@ -4957,7 +4971,7 @@ </histogram> <histogram name="Autofill.StrikeDatabase.StrikesPresentWhenServerCardSaved" - units="strikes" expires_after="2024-09-01"> + units="strikes" expires_after="2024-11-03"> <owner>jsaul@google.com</owner> <owner>payments-autofill-team@google.com</owner> <summary> @@ -5031,7 +5045,7 @@ </histogram> <histogram name="Autofill.SubmittedCardState" enum="AutofillSubmittedCardState" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>jsaul@google.com</owner> <owner>payments-autofill-team@google.com</owner> <summary> @@ -5042,7 +5056,7 @@ <histogram name="Autofill.SubmittedServerCardExpirationStatus" enum="AutofillSubmittedServerCardExpirationStatus" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>jsaul@google.com</owner> <owner>payments-autofill-team@google.com</owner> <summary> @@ -5136,7 +5150,7 @@ </histogram> <histogram name="Autofill.SuggestionShown.OffTheRecord" units="units" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>arabm@google.com</owner> <owner>chrome-privacy-core@google.com</owner> <summary> @@ -5145,7 +5159,7 @@ </histogram> <histogram name="Autofill.SuggestionsListManageClicked" - enum="AutofillSuggestionManageType" expires_after="2024-09-01"> + enum="AutofillSuggestionManageType" expires_after="2024-11-03"> <owner>pkotwicz@chromium.org</owner> <owner>chrome-autofill-alerts@google.com</owner> <summary> @@ -5229,7 +5243,7 @@ </histogram> <histogram name="Autofill.TouchToFill.CreditCard.FillingCorrectness" - enum="BooleanAutofillFillingCorrectness" expires_after="2024-09-01"> + enum="BooleanAutofillFillingCorrectness" expires_after="2024-11-03"> <owner>mlerman@google.com</owner> <owner>tchudakov@google.com</owner> <owner>vykochko@google.com</owner> @@ -5337,7 +5351,7 @@ <histogram name="Autofill.UnmaskPrompt.Duration{AutofillUnmaskPromptCloseReasonEvents}" - units="ms" expires_after="2024-09-01"> + units="ms" expires_after="2024-11-03"> <owner>jsaul@google.com</owner> <owner>siyua@chromium.org</owner> <summary> @@ -5365,7 +5379,7 @@ </histogram> <histogram name="Autofill.UnmaskPrompt.GetRealPanDuration" units="ms" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>jsaul@google.com</owner> <owner>siyua@chromium.org</owner> <summary> @@ -5376,7 +5390,7 @@ </histogram> <histogram name="Autofill.UnmaskPrompt.GetRealPanDuration.{CardType}.{Result}" - units="ms" expires_after="2024-09-01"> + units="ms" expires_after="2024-11-03"> <owner>siyua@chromium.org</owner> <owner>payments-autofill-team@google.com</owner> <summary> @@ -5428,7 +5442,7 @@ </histogram> <histogram name="Autofill.UnmaskPrompt.UnmaskingDuration" units="ms" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>jsaul@google.com</owner> <owner>siyua@chromium.org</owner> <summary> @@ -5439,7 +5453,7 @@ </histogram> <histogram name="Autofill.UnmaskPrompt.UnmaskingDuration.{CardType}.{Result}" - units="ms" expires_after="2024-09-01"> + units="ms" expires_after="2024-11-03"> <owner>jsaul@google.com</owner> <owner>siyua@chromium.org</owner> <summary> @@ -5453,7 +5467,7 @@ </histogram> <histogram name="Autofill.UnmaskPrompt.{CardType}.Events" - enum="AutofillUnmaskPromptEvent" expires_after="2024-09-01"> + enum="AutofillUnmaskPromptEvent" expires_after="2024-11-03"> <owner>vinnypersky@google.com</owner> <owner>jsaul@google.com</owner> <owner>siyua@chromium.org</owner> @@ -5642,7 +5656,7 @@ </histogram> <histogram name="Autofill.VirtualCard.Enroll.Attempt.{Source}" - enum="BooleanAttempted" expires_after="2024-09-01"> + enum="BooleanAttempted" expires_after="2024-11-03"> <owner>siyua@chromium.org</owner> <owner>payments-autofill-team@google.com</owner> <summary> @@ -5653,7 +5667,7 @@ </histogram> <histogram name="Autofill.VirtualCard.Enroll.Result.{Source}" - enum="BooleanSuccess" expires_after="2024-09-01"> + enum="BooleanSuccess" expires_after="2024-11-03"> <owner>siyua@chromium.org</owner> <owner>payments-autofill-team@google.com</owner> <summary> @@ -5678,7 +5692,7 @@ <histogram name="Autofill.VirtualCard.GetDetailsForEnrollment.Latency.{Source}.{Result}" - units="ms" expires_after="2024-09-01"> + units="ms" expires_after="2024-11-03"> <owner>siyua@chromium.org</owner> <owner>payments-autofill-team@google.com</owner> <summary> @@ -5863,7 +5877,7 @@ </histogram> <histogram name="Autofill.VirtualCardEnrollBubble.LoadingResult" - enum="AutofillVirtualCardEnrollBubbleResult" expires_after="2024-08-01"> + enum="AutofillVirtualCardEnrollBubbleResult" expires_after="2024-11-03"> <owner>darwinyang@google.com</owner> <owner>kavitasoni@google.com</owner> <owner>chrome-payments-team@google.com</owner> @@ -5904,7 +5918,7 @@ <histogram name="Autofill.VirtualCardEnrollBubble.Result.{EnrollmentSource}{ShowType}{PreviousStrikes}" - enum="AutofillVirtualCardEnrollBubbleResult" expires_after="2024-09-01"> + enum="AutofillVirtualCardEnrollBubbleResult" expires_after="2024-11-03"> <owner>alexandertekle@google.com</owner> <owner>siyua@chromium.org</owner> <owner>payments-autofill-team@google.com</owner> @@ -5922,7 +5936,7 @@ </histogram> <histogram name="Autofill.VirtualCardEnrollBubble.Shown.{EnrollmentSource}" - enum="BooleanPreviouslyShown" expires_after="2024-09-01"> + enum="BooleanPreviouslyShown" expires_after="2024-11-03"> <owner>alexandertekle@google.com</owner> <owner>siyua@chromium.org</owner> <owner>payments-autofill-team@google.com</owner>
diff --git a/tools/metrics/histograms/metadata/background/histograms.xml b/tools/metrics/histograms/metadata/background/histograms.xml index 2b29758..f07f570 100644 --- a/tools/metrics/histograms/metadata/background/histograms.xml +++ b/tools/metrics/histograms/metadata/background/histograms.xml
@@ -90,7 +90,7 @@ </histogram> <histogram name="BackgroundSync.Event.OneShotResultPattern" - enum="BackgroundSyncResultPattern" expires_after="2024-09-01"> + enum="BackgroundSyncResultPattern" expires_after="2024-11-03"> <owner>nator@chromium.org</owner> <owner>rayankans@chromium.org</owner> <summary>
diff --git a/tools/metrics/histograms/metadata/blink/histograms.xml b/tools/metrics/histograms/metadata/blink/histograms.xml index 9f43e31e..a5847cc0 100644 --- a/tools/metrics/histograms/metadata/blink/histograms.xml +++ b/tools/metrics/histograms/metadata/blink/histograms.xml
@@ -142,7 +142,7 @@ <histogram name="Blink.AnchorElementInteractionTracker.ClickDistanceFromPreviousPointerDown{orientation}" - units="%" expires_after="2024-09-01"> + units="%" expires_after="2024-11-03"> <owner>adithyas@chromium.org</owner> <owner>chrome-instant-ecosystem@google.com</owner> <summary> @@ -163,7 +163,7 @@ <histogram name="Blink.AnchorElementInteractionTracker.ClickLocationY{orientation}" - units="%" expires_after="2024-09-01"> + units="%" expires_after="2024-11-03"> <owner>adithyas@chromium.org</owner> <owner>chrome-instant-ecosystem@google.com</owner> <summary> @@ -281,7 +281,7 @@ </histogram> <histogram name="Blink.Canvas.2DLayerBridge.Compression.DecompressionTime" - units="ms" expires_after="2024-09-01"> + units="ms" expires_after="2024-11-03"> <owner>lizeb@chromium.org</owner> <owner>fserb@chromium.org</owner> <summary> @@ -291,7 +291,7 @@ </histogram> <histogram name="Blink.Canvas.2DLayerBridge.Compression.Ratio" units="%" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>lizeb@chromium.org</owner> <owner>fserb@chromium.org</owner> <summary> @@ -301,7 +301,7 @@ </histogram> <histogram name="Blink.Canvas.2DLayerBridge.Compression.SnapshotSizeKb" - units="KB" expires_after="2024-09-01"> + units="KB" expires_after="2024-11-03"> <owner>lizeb@chromium.org</owner> <owner>fserb@chromium.org</owner> <summary> @@ -647,7 +647,7 @@ </histogram> <histogram name="Blink.Canvas.WebGLANGLEImplementation" - enum="WebGLANGLEImplementation" expires_after="2024-09-01"> + enum="WebGLANGLEImplementation" expires_after="2024-11-03"> <owner>zmo@chromium.org</owner> <owner>webgl-team@google.com</owner> <summary> @@ -903,7 +903,7 @@ </histogram> <histogram name="Blink.DecodedImage.AvifDensity.Count.{ImageArea}" - units="0.01 bits per pixel" expires_after="2024-09-01"> + units="0.01 bits per pixel" expires_after="2024-11-03"> <owner>wtc@google.com</owner> <owner>jzern@google.com</owner> <owner> @@ -943,7 +943,7 @@ </histogram> <histogram name="Blink.DecodedImage.AvifDensity.KiBWeighted2" - units="0.01 bits per pixel" expires_after="2024-09-01"> + units="0.01 bits per pixel" expires_after="2024-11-03"> <owner>wtc@google.com</owner> <owner>jzern@google.com</owner> <owner> @@ -959,7 +959,7 @@ </histogram> <histogram name="Blink.DecodedImage.JpegDensity.Count.{ImageArea}" - units="0.01 bits per pixel" expires_after="2024-09-01"> + units="0.01 bits per pixel" expires_after="2024-11-03"> <owner>wtc@google.com</owner> <owner>jzern@google.com</owner> <owner>src/third_party/blink/renderer/platform/image-decoders/OWNERS</owner> @@ -996,7 +996,7 @@ </histogram> <histogram name="Blink.DecodedImage.JpegDensity.KiBWeighted" - units="0.01 bits per pixel" expires_after="2024-09-01"> + units="0.01 bits per pixel" expires_after="2024-11-03"> <owner>jyrki@google.com</owner> <owner>compression-dev@google.com</owner> <summary> @@ -1009,7 +1009,7 @@ </histogram> <histogram name="Blink.DecodedImage.WebPDensity.Count.{ImageArea}" - units="0.01 bits per pixel" expires_after="2024-09-01"> + units="0.01 bits per pixel" expires_after="2024-11-03"> <owner>wtc@google.com</owner> <owner>jzern@google.com</owner> <owner>src/third_party/blink/renderer/platform/image-decoders/OWNERS</owner> @@ -1047,7 +1047,7 @@ </histogram> <histogram name="Blink.DecodedImage.WebPDensity.KiBWeighted2" - units="0.01 bits per pixel" expires_after="2024-09-01"> + units="0.01 bits per pixel" expires_after="2024-11-03"> <owner>wtc@google.com</owner> <owner>jzern@google.com</owner> <owner>src/third_party/blink/renderer/platform/image-decoders/OWNERS</owner> @@ -1244,7 +1244,7 @@ </histogram> <histogram name="Blink.FedCm.ApprovedClientsSize" units="clients" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>yigu@chromium.org</owner> <owner>web-identity-eng@google.com</owner> <summary> @@ -1255,7 +1255,7 @@ </histogram> <histogram name="Blink.FedCm.AutoReauthn.BlockedByContentSettings" - enum="Boolean" expires_after="2024-09-01"> + enum="Boolean" expires_after="2024-11-03"> <owner>npm@chromium.org</owner> <owner>yigu@chromium.org</owner> <owner>web-identity-eng@google.com</owner> @@ -1268,7 +1268,7 @@ </histogram> <histogram name="Blink.FedCm.AutoReauthn.BlockedByEmbargo" enum="Boolean" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>npm@chromium.org</owner> <owner>yigu@chromium.org</owner> <owner>web-identity-eng@google.com</owner> @@ -1293,7 +1293,7 @@ </histogram> <histogram name="Blink.FedCm.AutoReauthn.ReturningAccounts" - enum="FedCmNumAccounts" expires_after="2024-09-01"> + enum="FedCmNumAccounts" expires_after="2024-11-03"> <owner>npm@chromium.org</owner> <owner>yigu@chromium.org</owner> <owner>web-identity-eng@google.com</owner> @@ -1306,7 +1306,7 @@ </histogram> <histogram name="Blink.FedCm.AutoReauthn.Succeeded" enum="Boolean" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>npm@chromium.org</owner> <owner>yigu@chromium.org</owner> <owner>web-identity-eng@google.com</owner> @@ -1322,7 +1322,7 @@ </histogram> <histogram name="Blink.FedCm.AutoReauthn.TimeFromEmbargoWhenBlocked" units="ms" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>npm@chromium.org</owner> <owner>yigu@chromium.org</owner> <owner>web-identity-eng@google.com</owner> @@ -1568,7 +1568,7 @@ </histogram> <histogram name="Blink.FedCm.IsSignInUser" enum="Boolean" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>yigu@chromium.org</owner> <owner>web-identity-eng@google.com</owner> <summary> @@ -1578,7 +1578,7 @@ </histogram> <histogram name="Blink.FedCm.LifecycleStateFailureReason" - enum="FedCmLifecycleStateFailureReason" expires_after="2024-09-01"> + enum="FedCmLifecycleStateFailureReason" expires_after="2024-11-03"> <owner>cbiesinger@chromium.org</owner> <owner>web-identity-eng@google.com</owner> <summary> @@ -1777,7 +1777,7 @@ </histogram> <histogram name="Blink.FedCm.Status.SignInStateMatch" - enum="FedCmSignInStateMatchStatus" expires_after="2024-09-01"> + enum="FedCmSignInStateMatchStatus" expires_after="2024-11-03"> <owner>tanzachary@chromium.org</owner> <owner>web-identity-eng@google.com</owner> <summary> @@ -1803,7 +1803,7 @@ </histogram> <histogram name="Blink.FedCm.Timing.CancelOnDialog" units="ms" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>yigu@chromium.org</owner> <owner>web-identity-eng@google.com</owner> <summary> @@ -1841,7 +1841,7 @@ </histogram> <histogram name="Blink.FedCm.Timing.ContinueOnDialog" units="ms" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>yigu@chromium.org</owner> <owner>web-identity-eng@google.com</owner> <summary> @@ -1948,7 +1948,7 @@ </histogram> <histogram name="Blink.FedCm.Timing.TurnaroundTime" units="ms" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>yigu@chromium.org</owner> <owner>web-identity-eng@google.com</owner> <summary> @@ -1976,7 +1976,7 @@ </histogram> <histogram name="Blink.FedCm.UserInfo.NumAccounts" enum="FedCmNumAccounts" - expires_after="2024-08-18"> + expires_after="2024-11-03"> <owner>npm@chromium.org</owner> <owner>web-identity-eng@google.com</owner> <summary> @@ -2854,7 +2854,7 @@ </histogram> <histogram name="Blink.LazyLoadedImage.Size" units="KB" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>pdr@chromium.org</owner> <owner>paint-dev@chromium.org</owner> <summary> @@ -2914,7 +2914,7 @@ </histogram> <histogram name="Blink.LCPP.CrossOriginLcpImage" enum="Boolean" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>alexnj@chromium.org</owner> <owner> src/third_party/blink/renderer/core/lcp_critical_path_predictor/OWNERS @@ -3037,7 +3037,7 @@ </histogram> <histogram name="Blink.LCPP.LCPInfluencerUrlsCount" units="count" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>alexnj@chromium.org</owner> <owner> src/third_party/blink/renderer/core/lcp_critical_path_predictor/OWNERS @@ -3052,7 +3052,7 @@ </histogram> <histogram name="Blink.LCPP.LCPInfluencerUrlsMaxLength" units="bytes" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>alexnj@chromium.org</owner> <owner> src/third_party/blink/renderer/core/lcp_critical_path_predictor/OWNERS @@ -3067,7 +3067,7 @@ </histogram> <histogram name="Blink.LCPP.LCPInfluencerUrlsPredictionMatchCount" - units="count" expires_after="2024-09-01"> + units="count" expires_after="2024-11-03"> <owner>alexnj@chromium.org</owner> <owner> src/third_party/blink/renderer/core/lcp_critical_path_predictor/OWNERS @@ -3082,7 +3082,7 @@ </histogram> <histogram name="Blink.LCPP.LCPInfluencerUrlsPredictionMatchPercent" units="%" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>alexnj@chromium.org</owner> <owner> src/third_party/blink/renderer/core/lcp_critical_path_predictor/OWNERS @@ -3134,7 +3134,7 @@ </histogram> <histogram name="Blink.LCPP.PreconnectPredictionCount" units="count" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>alexnj@chromium.org</owner> <owner> src/third_party/blink/renderer/core/lcp_critical_path_predictor/OWNERS @@ -3148,7 +3148,7 @@ </histogram> <histogram name="Blink.LCPP.PreconnectPredictionMatchCount" units="count" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>alexnj@chromium.org</owner> <owner> src/third_party/blink/renderer/core/lcp_critical_path_predictor/OWNERS @@ -3165,7 +3165,7 @@ </histogram> <histogram name="Blink.LCPP.PreconnectPredictionMatchPercent" units="%" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>alexnj@chromium.org</owner> <owner> src/third_party/blink/renderer/core/lcp_critical_path_predictor/OWNERS @@ -3382,7 +3382,7 @@ </histogram> <histogram name="Blink.LocalFrameRoot.DidReachFirstContentfulPaint" - enum="Boolean" expires_after="2024-09-01"> + enum="Boolean" expires_after="2024-11-03"> <owner>pdr@chromium.org</owner> <owner>paint-dev@chromium.org</owner> <summary> @@ -3474,7 +3474,7 @@ </histogram> <histogram name="Blink.MemoryCache.RevalidationPolicy.AsyncScript" - enum="RevalidationPolicy" expires_after="2024-09-01"> + enum="RevalidationPolicy" expires_after="2024-11-03"> <owner>hiroshige@chromium.org</owner> <owner>lizeb@chromium.org</owner> <owner>gjc@chromium.org</owner> @@ -3643,7 +3643,7 @@ </histogram> <histogram base="true" name="Blink.ParseStyleSheet.UpdateTime" - units="microseconds" expires_after="2024-08-04"> + units="microseconds" expires_after="2024-11-03"> <!-- Name completed by histogram_suffixes name="BlinkUpdateTimeSuffixes" --> <owner>cduvall@chromium.org</owner> @@ -3775,7 +3775,7 @@ </histogram> <histogram name="Blink.ResourceRequest.BackgroundResourceFetchSupportStatus" - enum="BackgroundResourceFetchSupportStatus" expires_after="2024-09-01"> + enum="BackgroundResourceFetchSupportStatus" expires_after="2024-11-03"> <owner>horo@chromium.org</owner> <owner>net-dev@chromium.org</owner> <summary> @@ -3786,7 +3786,7 @@ </histogram> <histogram name="Blink.ResourceRequest.CompletionDelay2" units="ms" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>horo@chromium.org</owner> <owner>net-dev@chromium.org</owner> <summary> @@ -3797,7 +3797,7 @@ </histogram> <histogram name="Blink.ResourceRequest.RedirectDelay2" units="ms" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>horo@chromium.org</owner> <owner>net-dev@chromium.org</owner> <summary> @@ -3808,7 +3808,7 @@ </histogram> <histogram name="Blink.ResourceRequest.ResponseDelay2" units="ms" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>horo@chromium.org</owner> <owner>net-dev@chromium.org</owner> <summary> @@ -3819,7 +3819,7 @@ </histogram> <histogram name="Blink.ResourceRequest.StartDelay2" units="ms" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>horo@chromium.org</owner> <owner>net-dev@chromium.org</owner> <summary> @@ -4454,7 +4454,7 @@ </histogram> <histogram name="Blink.UseCounter.FeaturePolicy.Header" - enum="FeaturePolicyFeature" expires_after="2024-09-01"> + enum="FeaturePolicyFeature" expires_after="2024-11-03"> <owner>iclelland@chromium.org</owner> <owner>feature-control@chromium.org</owner> <summary> @@ -4523,7 +4523,7 @@ </histogram> <histogram name="Blink.UseCounter.PermissionsPolicy.Allow2" - enum="FeaturePolicyFeature" expires_after="2024-09-01"> + enum="FeaturePolicyFeature" expires_after="2024-11-03"> <owner>iclelland@chromium.org</owner> <owner>feature-control@chromium.org</owner> <summary>
diff --git a/tools/metrics/histograms/metadata/bookmarks/histograms.xml b/tools/metrics/histograms/metadata/bookmarks/histograms.xml index 704c96c..8bfbe1b4 100644 --- a/tools/metrics/histograms/metadata/bookmarks/histograms.xml +++ b/tools/metrics/histograms/metadata/bookmarks/histograms.xml
@@ -94,7 +94,7 @@ </histogram> <histogram name="Bookmarks.AverageNodeSize" units="Bytes" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>wylieb@chromium.org</owner> <owner>chrome-collections@google.com</owner> <summary> @@ -128,7 +128,7 @@ <histogram name="Bookmarks.BookmarkBar.NavigationOrActivationToFirstContentfulPaint" - units="ms" expires_after="2024-09-01"> + units="ms" expires_after="2024-11-03"> <owner>robertlin@chromium.org</owner> <owner>chrome-prerendering@google.com</owner> <summary> @@ -153,7 +153,7 @@ <histogram name="Bookmarks.BookmarkBar.NavigationOrActivationToLargestContentfulPaint" - units="ms" expires_after="2024-09-01"> + units="ms" expires_after="2024-11-03"> <owner>robertlin@chromium.org</owner> <owner>chrome-prerendering@google.com</owner> <summary> @@ -175,7 +175,7 @@ </histogram> <histogram name="Bookmarks.BookmarkBar.Shown" enum="BooleanShown" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>amelies@chromium.org</owner> <owner>chrome-signin-team@google.com</owner> <summary> @@ -184,7 +184,7 @@ </histogram> <histogram name="Bookmarks.BookmarksBar.DragDropType" - enum="BookmarkBarDragDropType" expires_after="2024-09-01"> + enum="BookmarkBarDragDropType" expires_after="2024-11-03"> <owner>dfried@chromium.org</owner> <owner>chrome-desktop-ui-sea@google.com</owner> <summary> @@ -236,7 +236,7 @@ </histogram> <histogram name="Bookmarks.EditLocation" enum="BookmarkLaunchLocation" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>dfried@chromium.org</owner> <owner>mickeyburks@chromium.org</owner> <summary> @@ -261,7 +261,7 @@ </histogram> <histogram name="Bookmarks.EntryPoint" enum="BookmarksEntryPoint" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>ianwen@chromium.org</owner> <summary>How users add a new bookmark.</summary> </histogram> @@ -357,7 +357,7 @@ </histogram> <histogram name="Bookmarks.OpenBookmarkManager.PerProfileType" - enum="BrowserProfileType" expires_after="2024-09-01"> + enum="BrowserProfileType" expires_after="2024-11-03"> <owner>roagarwal@chromium.org</owner> <owner>chrome-incognito@google.com</owner> <summary> @@ -456,7 +456,7 @@ </histogram> <histogram name="Bookmarks.RemovedLocation" enum="BookmarkLaunchLocation" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>dfried@chromium.org</owner> <owner>mickeyburks@chromium.org</owner> <summary>
diff --git a/tools/metrics/histograms/metadata/borealis/histograms.xml b/tools/metrics/histograms/metadata/borealis/histograms.xml index d18ca5eb..390fe88 100644 --- a/tools/metrics/histograms/metadata/borealis/histograms.xml +++ b/tools/metrics/histograms/metadata/borealis/histograms.xml
@@ -128,7 +128,7 @@ </histogram> <histogram name="Borealis.EngagementTime.{Variant}" units="ms" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>philpearson@google.com</owner> <owner>src/chrome/browser/ash/borealis/OWNERS</owner> <summary> @@ -168,7 +168,7 @@ </histogram> <histogram name="Borealis.Install.OverallTime" units="ms" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <!-- NB: deprecated; remove instead of extending its expiry date --> <owner>philpearson@google.com</owner> @@ -272,7 +272,7 @@ </histogram> <histogram name="Borealis.Startup.OverallTime" units="ms" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <!-- NB: deprecated; remove instead of extending its expiry date --> <owner>philpearson@google.com</owner>
diff --git a/tools/metrics/histograms/metadata/browser/histograms.xml b/tools/metrics/histograms/metadata/browser/histograms.xml index 24cf810..5c956ab 100644 --- a/tools/metrics/histograms/metadata/browser/histograms.xml +++ b/tools/metrics/histograms/metadata/browser/histograms.xml
@@ -1119,7 +1119,7 @@ </histogram> <histogram name="BrowserRenderProcessHost.SpareProcessDelayTime" units="ms" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>kerenzhu@chromium.org</owner> <owner>dayeung@chromium.org</owner> <owner>robliao@chromium.org</owner> @@ -1131,7 +1131,7 @@ </histogram> <histogram name="BrowserRenderProcessHost.SpareProcessEvictedOtherSpare" - enum="Boolean" expires_after="2024-08-30"> + enum="Boolean" expires_after="2024-11-03"> <owner>jam@chromium.org</owner> <owner>cduvall@chromium.org</owner> <summary> @@ -1142,7 +1142,7 @@ </histogram> <histogram name="BrowserRenderProcessHost.SpareProcessMaybeTakeAction" - enum="SpareProcessMaybeTakeAction" expires_after="2024-09-01"> + enum="SpareProcessMaybeTakeAction" expires_after="2024-11-03"> <owner>alexmos@chromium.org</owner> <owner>lukasza@chromium.org</owner> <summary> @@ -1152,7 +1152,7 @@ </histogram> <histogram name="BrowserRenderProcessHost.SpareProcessStartupTime" units="ms" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>kerenzhu@chromium.org</owner> <owner>dayeung@chromium.org</owner> <owner>robliao@chromium.org</owner> @@ -1476,7 +1476,7 @@ <summary>Records true when the side panel combobox is opened.</summary> </histogram> -<histogram name="SidePanel.OpenDuration" units="ms" expires_after="2024-09-01"> +<histogram name="SidePanel.OpenDuration" units="ms" expires_after="2024-11-03"> <owner>corising@chromium.org</owner> <owner>chrome-desktop-ui-sea@google.com</owner> <summary> @@ -1488,7 +1488,7 @@ </histogram> <histogram name="SidePanel.OpenOrChangeEntryTrigger" - enum="SidePanelOpenTrigger" expires_after="2024-09-01"> + enum="SidePanelOpenTrigger" expires_after="2024-11-03"> <owner>corising@chromium.org</owner> <owner>chrome-desktop-ui-sea@google.com</owner> <summary> @@ -1499,7 +1499,7 @@ </histogram> <histogram name="SidePanel.OpenTrigger" enum="SidePanelOpenTrigger" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>corising@chromium.org</owner> <owner>chrome-desktop-ui-sea@google.com</owner> <summary> @@ -1508,7 +1508,7 @@ </summary> </histogram> -<histogram name="SidePanel.ResizedWidth" units="px" expires_after="2024-09-01"> +<histogram name="SidePanel.ResizedWidth" units="px" expires_after="2024-11-03"> <owner>emshack@chromium.org</owner> <owner>chrome-desktop-ui-sea@google.com</owner> <summary> @@ -1518,7 +1518,7 @@ </histogram> <histogram name="SidePanel.ResizedWidthPercentage" units="% of window width" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>emshack@chromium.org</owner> <owner>chrome-desktop-ui-sea@google.com</owner> <summary> @@ -1538,7 +1538,7 @@ </histogram> <histogram name="SidePanel.{SidePanelEntry}.ResizedWidth" units="px" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>emshack@chromium.org</owner> <owner>chrome-desktop-ui-sea@google.com</owner> <summary> @@ -1549,7 +1549,7 @@ </histogram> <histogram name="SidePanel.{SidePanelEntry}.ResizedWidthPercentage" - units="% of window width" expires_after="2024-09-01"> + units="% of window width" expires_after="2024-11-03"> <owner>emshack@chromium.org</owner> <owner>chrome-desktop-ui-sea@google.com</owner> <summary> @@ -1561,7 +1561,7 @@ </histogram> <histogram name="SidePanel.{SidePanelEntry}.ShownDuration" units="ms" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>corising@chromium.org</owner> <owner>chrome-desktop-ui-sea@google.com</owner> <summary> @@ -1573,7 +1573,7 @@ </histogram> <histogram name="SidePanel.{SidePanelEntry}.ShowTriggered" - enum="SidePanelOpenTrigger" expires_after="2024-09-01"> + enum="SidePanelOpenTrigger" expires_after="2024-11-03"> <owner>corising@chromium.org</owner> <owner>chrome-desktop-ui-sea@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 66cb8f5..2fe83ab 100644 --- a/tools/metrics/histograms/metadata/browsing_topics/histograms.xml +++ b/tools/metrics/histograms/metadata/browsing_topics/histograms.xml
@@ -83,7 +83,7 @@ </histogram> <histogram name="BrowsingTopics.EpochTopicsCalculation.HistoryTopicsCount" - units="topics" expires_after="2024-09-01"> + units="topics" expires_after="2024-11-03"> <owner>yaoxia@chromium.org</owner> <owner>jkarlin@chromium.org</owner> <summary> @@ -121,7 +121,7 @@ </histogram> <histogram name="BrowsingTopics.EpochTopicsCalculation.TimeBetweenCalculations" - units="ms" expires_after="2024-09-01"> + units="ms" expires_after="2024-11-03"> <owner>abigailkatcoff@chromium.org</owner> <owner>yaoxia@chromium.org</owner> <owner>jkarlin@chromium.org</owner>
diff --git a/tools/metrics/histograms/metadata/chrome/histograms.xml b/tools/metrics/histograms/metadata/chrome/histograms.xml index d79e809..1dea54c 100644 --- a/tools/metrics/histograms/metadata/chrome/histograms.xml +++ b/tools/metrics/histograms/metadata/chrome/histograms.xml
@@ -66,7 +66,7 @@ </histogram> <histogram name="Chrome.KAnonymityService.JoinSet.Action" - enum="KAnonymityServiceJoinSetAction" expires_after="2024-09-01"> + enum="KAnonymityServiceJoinSetAction" expires_after="2024-11-03"> <owner>behamilton@google.com</owner> <owner>pauljensen@chromium.org</owner> <summary> @@ -90,7 +90,7 @@ </histogram> <histogram name="Chrome.KAnonymityService.QuerySet.Action" - enum="KAnonymityServiceQuerySetAction" expires_after="2024-09-01"> + enum="KAnonymityServiceQuerySetAction" expires_after="2024-11-03"> <owner>behamilton@google.com</owner> <owner>pauljensen@chromium.org</owner> <summary> @@ -115,7 +115,7 @@ </histogram> <histogram name="Chrome.KAnonymityService.QuerySet.Size" units="count" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>behamilton@google.com</owner> <owner>pauljensen@chromium.org</owner> <summary> @@ -137,7 +137,7 @@ </histogram> <histogram name="Chrome.KAnonymityService.TrustTokenGetter.Latency" units="ms" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>behamilton@google.com</owner> <owner>pauljensen@chromium.org</owner> <summary> @@ -354,7 +354,7 @@ </histogram> <histogram name="ChromeColors.ColorOnLoad" enum="ChromeColorsInfo" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <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 3954b53..d998809 100644 --- a/tools/metrics/histograms/metadata/chromeos/histograms.xml +++ b/tools/metrics/histograms/metadata/chromeos/histograms.xml
@@ -230,7 +230,7 @@ </histogram> <histogram name="ChromeOS.Apps.IntentPickerDestinationPlatform" - enum="ArcIntentHandlerDestinationPlatform" expires_after="2024-09-01"> + enum="ArcIntentHandlerDestinationPlatform" expires_after="2024-11-03"> <owner>tsergeant@chromium.org</owner> <owner>chromeos-apps-foundation-team@google.com</owner> <summary> @@ -241,7 +241,7 @@ </histogram> <histogram name="ChromeOS.Attestation.AttestationFlowStatus" - enum="AttestationFlowStatus" expires_after="2024-09-01"> + enum="AttestationFlowStatus" expires_after="2024-11-03"> <owner>chingkang@google.com</owner> <owner>cros-hwsec+umas@chromium.org</owner> <summary> @@ -915,7 +915,7 @@ </histogram> <histogram name="ChromeOS.CWP.ParseLacrosPath" enum="ChromeOSParseLacrosPath" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>shantuo@google.com</owner> <owner>cwp-team@google.com</owner> <summary> @@ -936,7 +936,7 @@ </histogram> <histogram name="ChromeOS.CWP.ParsePSIMemory" enum="ChromeOSParsePSIMemStatus" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>raging@google.com</owner> <owner>chromeos-memory@google.com</owner> <summary> @@ -946,7 +946,7 @@ </histogram> <histogram name="ChromeOS.CWP.PSIMemPressure.{PType}" units="failures" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>raging@google.com</owner> <owner>chromeos-memory@google.com</owner> <summary> @@ -1258,7 +1258,7 @@ </histogram> <histogram name="ChromeOS.FirmwareUpdateUi.InstallFailedWithStatus" - enum="FirmwareUpdateFwupdStatus" expires_after="2024-09-01"> + enum="FirmwareUpdateFwupdStatus" expires_after="2024-11-03"> <owner>cambickel@google.com</owner> <owner>jimmyxgong@chromium.org</owner> <owner>zentaro@chromium.org</owner> @@ -1305,7 +1305,7 @@ </histogram> <histogram name="ChromeOS.FirmwareUpdateUi.{Method}Result" - enum="FirmwareUpdateMethodResult" expires_after="2024-09-01"> + enum="FirmwareUpdateMethodResult" expires_after="2024-11-03"> <owner>jimmyxgong@chromium.org</owner> <owner>zentaro@chromium.org</owner> <owner>cros-peripherals@google.com</owner> @@ -1325,7 +1325,7 @@ </histogram> <histogram name="ChromeOS.FirmwareUpdateUi.{Source}.DeviceCount" - units="devices" expires_after="2024-09-01"> + units="devices" expires_after="2024-11-03"> <owner>jimmyxgong@chromium.org</owner> <owner>zentaro@chromium.org</owner> <owner>cros-peripherals@google.com</owner> @@ -1346,7 +1346,7 @@ </histogram> <histogram name="ChromeOS.FirmwareUpdateUi.{Source}.{Severity}UpdateCount" - units="updates" expires_after="2024-09-01"> + units="updates" expires_after="2024-11-03"> <owner>jimmyxgong@chromium.org</owner> <owner>zentaro@chromium.org</owner> <owner>cros-peripherals@google.com</owner> @@ -1679,7 +1679,7 @@ </histogram> <histogram name="ChromeOS.Inputs.AttachmentForm.{Type}" enum="AttachmentForm" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>wmahon@google.com</owner> <owner>chromeos-tango@google.com</owner> <owner>cros-peripherals@google.com</owner> @@ -1699,7 +1699,7 @@ </histogram> <histogram name="ChromeOS.Inputs.AttachmentType.{Form}" enum="AttachmentType" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>wmahon@google.com</owner> <owner>chromeos-tango@google.com</owner> <owner>cros-peripherals@google.com</owner> @@ -1976,7 +1976,7 @@ </histogram> <histogram name="ChromeOS.Intents.IntentPickerAction" - enum="IntentPickerDialogAction" expires_after="2024-09-01"> + enum="IntentPickerDialogAction" expires_after="2024-11-03"> <owner>tsergeant@chromium.org</owner> <owner>chromeos-apps-foundation-team@google.com</owner> <summary> @@ -1998,7 +1998,7 @@ </histogram> <histogram name="ChromeOS.Intents.LinkCapturingEvent2" - enum="LinkCapturingEvent" expires_after="2024-09-01"> + enum="LinkCapturingEvent" expires_after="2024-11-03"> <owner>vpao@google.com</owner> <owner>chromeos-apps-foundation-team@google.com</owner> <summary> @@ -2114,7 +2114,7 @@ </histogram> <histogram name="ChromeOS.Lacros.ResumeTime" units="ms" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>andreaorru@chromium.org</owner> <owner>lacros-team@google.com</owner> <summary> @@ -2148,7 +2148,7 @@ </histogram> <histogram name="ChromeOS.LanguagePacks.GetPackState.FeatureId" - enum="LanguagePackFeatureIds" expires_after="2024-09-01"> + enum="LanguagePackFeatureIds" expires_after="2024-11-03"> <owner>claudiomagni@chromium.org</owner> <owner>mlcui@google.com</owner> <owner>dvallet@chromium.org</owner> @@ -2159,7 +2159,7 @@ </histogram> <histogram name="ChromeOS.LanguagePacks.GetPackState.LanguageCode" - enum="LanguagePackLanguageCodes" expires_after="2024-09-01"> + enum="LanguagePackLanguageCodes" expires_after="2024-11-03"> <owner>claudiomagni@chromium.org</owner> <owner>mlcui@google.com</owner> <owner>dvallet@chromium.org</owner> @@ -2170,7 +2170,7 @@ </histogram> <histogram name="ChromeOS.LanguagePacks.InstallBasePack.FeatureId" - enum="LanguagePackFeatureIds" expires_after="2024-09-01"> + enum="LanguagePackFeatureIds" expires_after="2024-11-03"> <owner>claudiomagni@chromium.org</owner> <owner>mlcui@google.com</owner> <owner>dvallet@chromium.org</owner> @@ -2181,7 +2181,7 @@ </histogram> <histogram name="ChromeOS.LanguagePacks.InstallError.Fonts" - enum="LanguagePackDlcErrorType" expires_after="2024-08-30"> + enum="LanguagePackDlcErrorType" expires_after="2024-11-03"> <owner>mlcui@google.com</owner> <owner>dvallet@chromium.org</owner> <owner>claudiomagni@chromium.org</owner> @@ -2193,7 +2193,7 @@ </histogram> <histogram name="ChromeOS.LanguagePacks.InstallError.Handwriting" - enum="LanguagePackDlcErrorType" expires_after="2024-09-01"> + enum="LanguagePackDlcErrorType" expires_after="2024-11-03"> <owner>claudiomagni@chromium.org</owner> <owner>mlcui@google.com</owner> <owner>dvallet@chromium.org</owner> @@ -2205,7 +2205,7 @@ </histogram> <histogram name="ChromeOS.LanguagePacks.InstallError.Tts" - enum="LanguagePackDlcErrorType" expires_after="2024-09-01"> + enum="LanguagePackDlcErrorType" expires_after="2024-11-03"> <owner>claudiomagni@chromium.org</owner> <owner>mlcui@google.com</owner> <owner>dvallet@chromium.org</owner> @@ -2217,7 +2217,7 @@ </histogram> <histogram name="ChromeOS.LanguagePacks.InstallPack.Success" - enum="LanguagePackFeatureSuccess" expires_after="2024-09-01"> + enum="LanguagePackFeatureSuccess" expires_after="2024-11-03"> <owner>claudiomagni@chromium.org</owner> <owner>mlcui@google.com</owner> <owner>dvallet@chromium.org</owner> @@ -2228,7 +2228,7 @@ </histogram> <histogram name="ChromeOS.LanguagePacks.Oobe.ValidLocale" enum="BooleanSuccess" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>claudiomagni@chromium.org</owner> <owner>mlcui@google.com</owner> <owner>dvallet@chromium.org</owner> @@ -2261,7 +2261,7 @@ </histogram> <histogram name="ChromeOS.Liveness.PingResult" enum="BooleanSuccess" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>iby@google.com</owner> <owner>xiyuan@google.com</owner> <summary> @@ -2381,7 +2381,7 @@ </histogram> <histogram name="ChromeOS.Ownership.OwnerKeyUmaEvent" enum="OwnerKeyUmaEvent" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>miersh@google.com</owner> <owner>pmarko@google.com</owner> <owner>chromeos-commercial-networking@google.com</owner> @@ -2413,7 +2413,7 @@ </histogram> <histogram name="ChromeOS.Printing.TimeCostOfSuccessfulFoomaticShell" - units="seconds" expires_after="2024-09-01"> + units="seconds" expires_after="2024-11-03"> <owner>pawliczek@chromium.org</owner> <owner>bmgordon@chromium.org</owner> <owner>project-bolton@google.com</owner> @@ -2577,7 +2577,7 @@ </histogram> <histogram name="ChromeOS.SAML.InSessionPasswordChangeEvent" - enum="SamlInSessionPasswordChangeEvent" expires_after="2024-09-01"> + enum="SamlInSessionPasswordChangeEvent" expires_after="2024-11-03"> <owner>mslus@chromium.org</owner> <owner>rsorokin@chromium.org</owner> <summary> @@ -2614,7 +2614,7 @@ </histogram> <histogram name="ChromeOS.Sandboxing.LandlockEnabled" enum="Boolean" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>enlightened@chromium.org</owner> <owner>chromeos-hardening@google.com</owner> <summary> @@ -3819,7 +3819,7 @@ </histogram> <histogram name="ChromeOS.SystemTray.FirstInteraction" - enum="CrosSystemTrayFirstInteraction" expires_after="2024-09-01"> + enum="CrosSystemTrayFirstInteraction" expires_after="2024-11-03"> <owner>amehfooz@chromium.org</owner> <owner>cros-status-area@google.com</owner> <summary> @@ -3852,7 +3852,7 @@ </histogram> <histogram name="ChromeOS.SystemTray.NotificationsRemovedByClearAll" - units="notifications" expires_after="2024-09-01"> + units="notifications" expires_after="2024-11-03"> <owner>amehfooz@chromium.org</owner> <owner>cros-status-area@google.com</owner> <summary> @@ -3862,7 +3862,7 @@ </histogram> <histogram name="ChromeOS.SystemTray.ShelfPodCount" units="count" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>amehfooz@chromium.org</owner> <owner>cros-status-area@google.com</owner> <summary> @@ -3916,7 +3916,7 @@ </histogram> <histogram name="ChromeOS.TypeC.CableSpeed" enum="CableSpeedMetric" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>pmalani@chromium.org</owner> <owner>chromeos-power@google.com</owner> <summary> @@ -3950,7 +3950,7 @@ </histogram> <histogram name="ChromeOS.TypeC.PartnerType" enum="PartnerTypeMetric" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>pmalani@chromium.org</owner> <owner>chromeos-power@google.com</owner> <summary> @@ -3994,7 +3994,7 @@ </histogram> <histogram base="true" name="ChromeOS.USB.DeviceAttached" - enum="ChromeOSUsbEventTiming" expires_after="2024-09-01"> + enum="ChromeOSUsbEventTiming" expires_after="2024-11-03"> <owner>allenwebb@chromium.org</owner> <owner>jorgelo@chromium.org</owner> <owner>mnissler@chromium.org</owner> @@ -4003,7 +4003,7 @@ <histogram name="ChromeOS.USB.ExternalDeviceAttached.{USBDeviceRecognized}.{USBDeviceClass}" - enum="ChromeOSUsbEventTiming" expires_after="2024-09-01"> + enum="ChromeOSUsbEventTiming" expires_after="2024-11-03"> <owner>wonchung@google.com</owner> <owner>allenwebb@chromium.org</owner> <owner>chromeos-usb@google.com</owner> @@ -4046,7 +4046,7 @@ </histogram> <histogram name="ChromeOS.USB.ExternalDeviceAttached.{USBPortType}.DeviceClass" - enum="ChromeOSUsbDeviceClass" expires_after="2024-09-01"> + enum="ChromeOSUsbDeviceClass" expires_after="2024-11-03"> <owner>wonchung@google.com</owner> <owner>chromeos-usb@google.com</owner> <summary> @@ -4061,7 +4061,7 @@ </histogram> <histogram name="ChromeOS.USB.ExternalDeviceAttached.{USBPortType}.DeviceSpeed" - enum="ChromeOSUsbDeviceSpeed" expires_after="2024-09-01"> + enum="ChromeOSUsbDeviceSpeed" expires_after="2024-11-03"> <owner>wonchung@google.com</owner> <owner>chromeos-usb@google.com</owner> <summary> @@ -4107,7 +4107,7 @@ </histogram> <histogram name="ChromeOS.WXMountCount" units="count" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>jorgelo@chromium.org</owner> <owner>chromeos-hardening@google.com</owner> <summary>
diff --git a/tools/metrics/histograms/metadata/chromeos_settings/histograms.xml b/tools/metrics/histograms/metadata/chromeos_settings/histograms.xml index b50a9cf..4475b967 100644 --- a/tools/metrics/histograms/metadata/chromeos_settings/histograms.xml +++ b/tools/metrics/histograms/metadata/chromeos_settings/histograms.xml
@@ -270,7 +270,7 @@ </histogram> <histogram name="ChromeOS.Settings.Display" enum="DisplaySettingsType" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>zhangwenyu@google.com</owner> <owner>cros-peripherals@google.com</owner> <summary> @@ -314,7 +314,7 @@ </histogram> <histogram name="ChromeOS.Settings.Display.NewDisplayConnected" - enum="DisplayType" expires_after="2024-09-01"> + enum="DisplayType" expires_after="2024-11-03"> <owner>zhangwenyu@google.com</owner> <owner>cros-peripherals@google.com</owner> <summary> @@ -336,7 +336,7 @@ </histogram> <histogram name="ChromeOS.Settings.Display.{DisplayType}" - enum="DisplaySettingsType" expires_after="2024-09-01"> + enum="DisplaySettingsType" expires_after="2024-11-03"> <owner>zhangwenyu@google.com</owner> <owner>cros-peripherals@google.com</owner> <summary> @@ -410,7 +410,7 @@ <histogram name="ChromeOS.Settings.Display.{DisplayType}.UserOverrideDisplayDefaultSettingsTimeElapsed.{DisplaySettings}" - units="minutes" expires_after="2024-09-01"> + units="minutes" expires_after="2024-11-03"> <owner>zhangwenyu@google.com</owner> <owner>cros-peripherals@google.com</owner> <summary> @@ -497,7 +497,7 @@ </histogram> <histogram name="ChromeOS.Settings.Languages.Interaction" - enum="SettingsLanguagesPageInteraction" expires_after="2024-09-01"> + enum="SettingsLanguagesPageInteraction" expires_after="2024-11-03"> <owner>myy@chromium.org</owner> <owner>essential-inputs-team@google.com</owner> <summary> @@ -660,7 +660,7 @@ </histogram> <histogram name="ChromeOS.Settings.PathVisited" - enum="WebUIOSSettingsPathHashes" expires_after="2024-09-01"> + enum="WebUIOSSettingsPathHashes" expires_after="2024-11-03"> <owner>wesokuhara@google.com</owner> <owner>xiaohuic@chromium.org</owner> <owner>cros-settings@google.com</owner> @@ -794,7 +794,7 @@ </histogram> <histogram name="ChromeOS.Settings.SearchResultSubpageSelected" - enum="OsSettingsSubpage" expires_after="2024-09-01"> + enum="OsSettingsSubpage" expires_after="2024-11-03"> <owner>wesokuhara@google.com</owner> <owner>xiaohuic@chromium.org</owner> <owner>cros-settings@google.com</owner>
diff --git a/tools/metrics/histograms/metadata/commerce/histograms.xml b/tools/metrics/histograms/metadata/commerce/histograms.xml index d73547b..f3fdbe41 100644 --- a/tools/metrics/histograms/metadata/commerce/histograms.xml +++ b/tools/metrics/histograms/metadata/commerce/histograms.xml
@@ -257,7 +257,7 @@ </histogram> <histogram name="Commerce.PDPNavigation.{FeatureName}.Eligible" enum="Boolean" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>ayman@chromium.org</owner> <owner>mdjones@chromium.org</owner> <owner>chrome-shopping@google.com</owner> @@ -275,7 +275,7 @@ </histogram> <histogram name="Commerce.PDPNavigation.{FeatureName}.IneligibilityReason" - enum="ShoppingFeatureIneligibilityReason" expires_after="2024-09-01"> + enum="ShoppingFeatureIneligibilityReason" expires_after="2024-11-03"> <owner>ayman@chromium.org</owner> <owner>mdjones@chromium.org</owner> <owner>chrome-shopping@google.com</owner> @@ -342,7 +342,7 @@ </histogram> <histogram name="Commerce.PriceDrop.NotificationChannelCreated" enum="Boolean" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>zhiyuancai@chromium.org</owner> <owner>chrome-shopping@google.com</owner> <summary> @@ -354,7 +354,7 @@ </histogram> <histogram name="Commerce.PriceDrop.SystemNotificationEnabled" enum="Boolean" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>zhiyuancai@chromium.org</owner> <owner>chrome-shopping@google.com</owner> <summary> @@ -489,7 +489,7 @@ </histogram> <histogram name="Commerce.PriceTracking.DanglingUserSubscriptionCountAtStartup" - units="subscriptions" expires_after="2024-09-01"> + units="subscriptions" expires_after="2024-11-03"> <owner>ayman@chromium.org</owner> <owner>mdjones@chromium.org</owner> <owner>chrome-shopping@google.org</owner> @@ -504,7 +504,7 @@ </histogram> <histogram name="Commerce.PriceTracking.EmailNotificationsEnabled" - enum="PriceNotificationEmailState" expires_after="2024-09-01"> + enum="PriceNotificationEmailState" expires_after="2024-11-03"> <owner>ayman@chromium.org</owner> <owner>mdjones@chromium.org</owner> <owner>chrome-shopping@google.org</owner>
diff --git a/tools/metrics/histograms/metadata/companion/histograms.xml b/tools/metrics/histograms/metadata/companion/histograms.xml index f270dae..eeaf146e 100644 --- a/tools/metrics/histograms/metadata/companion/histograms.xml +++ b/tools/metrics/histograms/metadata/companion/histograms.xml
@@ -77,7 +77,7 @@ </histogram> <histogram name="Companion.IsUserOptedInToExps" enum="BooleanOptedIn" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>tbansal@chromium.org</owner> <owner>src/chrome/browser/companion/OWNERS</owner> <summary> @@ -108,7 +108,7 @@ </histogram> <histogram name="Companion.PromoEvent" enum="Companion.PromoEvent" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>shaktisahu@chromium.org</owner> <owner>src/chrome/browser/companion/OWNERS</owner> <summary> @@ -129,7 +129,7 @@ </histogram> <histogram name="Companion.SidePanel.OpenTrigger" enum="SidePanelOpenTrigger" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>shaktisahu@chromium.org</owner> <owner>src/chrome/browser/companion/OWNERS</owner> <summary> @@ -171,7 +171,7 @@ </histogram> <histogram name="Companion.VisualQuery.Agent.StartClassification" - enum="Boolean" expires_after="2024-09-01"> + enum="Boolean" expires_after="2024-11-03"> <owner>srna@google.com</owner> <owner>pstjuste@google.com</owner> <owner>src/chrome/browser/companion/OWNERS</owner> @@ -184,7 +184,7 @@ </histogram> <histogram name="Companion.VisualQuery.ClassificationInitStatus" - enum="Companion.VisualQuery.InitStatus" expires_after="2024-09-01"> + enum="Companion.VisualQuery.InitStatus" expires_after="2024-11-03"> <owner>srna@google.com</owner> <owner>pstjuste@google.com</owner> <owner>src/chrome/browser/companion/OWNERS</owner> @@ -196,7 +196,7 @@ </histogram> <histogram name="Companion.VisualQuery.ClassificationLatency" units="ms" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>srna@google.com</owner> <owner>pstjuste@google.com</owner> <owner>src/chrome/browser/companion/OWNERS</owner> @@ -207,7 +207,7 @@ </histogram> <histogram name="Companion.VisualQuery.ClassificationResultsSize" - units="images" expires_after="2024-09-01"> + units="images" expires_after="2024-11-03"> <owner>srna@google.com</owner> <owner>pstjuste@google.com</owner> <owner>src/chrome/browser/companion/OWNERS</owner> @@ -220,7 +220,7 @@ </histogram> <histogram name="Companion.VisualQuery.ClassifierInitializationLatency" - units="ms" expires_after="2024-09-01"> + units="ms" expires_after="2024-11-03"> <owner>srna@google.com</owner> <owner>pstjuste@google.com</owner> <owner>src/chrome/browser/companion/OWNERS</owner> @@ -243,7 +243,7 @@ </histogram> <histogram name="Companion.VisualQuery.EligibilityStatus.NumImages" - units="images" expires_after="2024-09-01"> + units="images" expires_after="2024-11-03"> <owner>srna@google.com</owner> <owner>pstjuste@google.com</owner> <owner>src/chrome/browser/companion/OWNERS</owner> @@ -268,7 +268,7 @@ </histogram> <histogram name="Companion.VisualQuery.EligibilityStatus.NumShoppy" - units="images" expires_after="2024-09-01"> + units="images" expires_after="2024-11-03"> <owner>srna@google.com</owner> <owner>pstjuste@google.com</owner> <owner>src/chrome/browser/companion/OWNERS</owner> @@ -281,7 +281,7 @@ </histogram> <histogram name="Companion.VisualQuery.EligibilityStatus.NumShoppyNotSensitive" - units="images" expires_after="2024-09-01"> + units="images" expires_after="2024-11-03"> <owner>srna@google.com</owner> <owner>pstjuste@google.com</owner> <owner>src/chrome/browser/companion/OWNERS</owner> @@ -382,7 +382,7 @@ </histogram> <histogram name="Companion.VisualQuery.ResultLatency" units="ms" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>srna@google.com</owner> <owner>pstjuste@google.com</owner> <owner>src/chrome/browser/companion/OWNERS</owner> @@ -394,7 +394,7 @@ </histogram> <histogram name="Companion.VisualQuery.SendVisualResultSuccess" enum="Boolean" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>srna@google.com</owner> <owner>pstjuste@google.com</owner> <owner>src/chrome/browser/companion/OWNERS</owner> @@ -417,7 +417,7 @@ </histogram> <histogram name="Companion.{UiSurface}.Clicked" enum="BooleanClicked" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>shaktisahu@chromium.org</owner> <owner>src/chrome/browser/companion/OWNERS</owner> <summary> @@ -439,7 +439,7 @@ </histogram> <histogram name="Companion.{UiSurface}.Shown" enum="BooleanShown" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>shaktisahu@chromium.org</owner> <owner>src/chrome/browser/companion/OWNERS</owner> <summary>
diff --git a/tools/metrics/histograms/metadata/compositing/histograms.xml b/tools/metrics/histograms/metadata/compositing/histograms.xml index cd1bb3ed..9668815 100644 --- a/tools/metrics/histograms/metadata/compositing/histograms.xml +++ b/tools/metrics/histograms/metadata/compositing/histograms.xml
@@ -69,7 +69,7 @@ </variants> <histogram name="Compositing.Browser.LayersUpdateTime" units="microseconds" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>pdr@chromium.org</owner> <owner>animations-dev@chromium.org</owner> <summary> @@ -149,7 +149,7 @@ </histogram> <histogram name="Compositing.DidMainThreadBlockDuringCommit" enum="Boolean" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>szager@chromium.org</owner> <owner>paint-dev@chromium.org</owner> <owner>sky@chromium.org</owner> @@ -161,7 +161,7 @@ </histogram> <histogram name="Compositing.DirectRenderer.OverlayProcessingUs" - units="microseconds" expires_after="2024-09-01"> + units="microseconds" expires_after="2024-11-03"> <owner>khaslett@chromium.org</owner> <owner>kylechar@chromium.org</owner> <summary> @@ -235,7 +235,7 @@ </histogram> <histogram name="Compositing.DirectRenderer.SkipAllNonRootRenderPassesPerFrame" - enum="BooleanSkipped" expires_after="2024-09-01"> + enum="BooleanSkipped" expires_after="2024-11-03"> <owner>magchen@chromium.org</owner> <owner>ccameron@chromium.org</owner> <owner>graphics-dev@chromium.org</owner> @@ -246,7 +246,7 @@ </histogram> <histogram name="Compositing.DirectRenderer.SkipNonRootRenderPass" - enum="BooleanSkipped" expires_after="2024-09-01"> + enum="BooleanSkipped" expires_after="2024-11-03"> <owner>magchen@chromium.org</owner> <owner>ccameron@chromium.org</owner> <owner>graphics-dev@chromium.org</owner> @@ -281,7 +281,7 @@ </histogram> <histogram name="Compositing.Display.Draw.Occlusion.Calculation.Time" - units="microseconds" expires_after="2024-09-01"> + units="microseconds" expires_after="2024-11-03"> <owner>yiyix@chromium.org</owner> <owner>chromeos-gfx@chromium.org</owner> <summary> @@ -309,7 +309,7 @@ </histogram> <histogram name="Compositing.Display.DrawToSwapUs" units="microseconds" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>jonross@chromium.org</owner> <owner>graphics-dev@chromium.org</owner> <summary> @@ -365,7 +365,7 @@ </histogram> <histogram name="Compositing.Display.FlattenedRenderPassCount" units="units" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>jonross@chromium.org</owner> <owner>graphics-dev@chromium.org</owner> <summary> @@ -436,7 +436,7 @@ <histogram name="Compositing.Display.OverlayProcessorUsingStrategy.FramesScalingRequiredOverlays" - enum="Boolean" expires_after="2024-09-01"> + enum="Boolean" expires_after="2024-11-03"> <owner>zoraiznaeem@chromium.org</owner> <owner>graphics-dev@chromium.org</owner> <summary> @@ -462,7 +462,7 @@ <histogram name="Compositing.Display.OverlayProcessorUsingStrategy.NumOverlays{Counted}" - units="overlay candidates" expires_after="2024-09-01"> + units="overlay candidates" expires_after="2024-11-03"> <owner>khaslett@chromium.org</owner> <owner>kylechar@chromium.org</owner> <owner>chromeos-gfx-compositor@chromium.org</owner> @@ -483,7 +483,7 @@ <histogram name="Compositing.Display.OverlayProcessorUsingStrategy.NumQuadsConsidered" - units="units" expires_after="2024-09-01"> + units="units" expires_after="2024-11-03"> <owner>khaslett@chromium.org</owner> <owner>kylechar@chromium.org</owner> <summary> @@ -516,7 +516,7 @@ <histogram name="Compositing.Display.OverlayProcessorUsingStrategy.WorkingScaleFactorForRequiredOverlays" - units="scale_factor" expires_after="2024-09-01"> + units="scale_factor" expires_after="2024-11-03"> <owner>zoraiznaeem@chromium.org</owner> <owner>graphics-dev@chromium.org</owner> <summary> @@ -593,7 +593,7 @@ </histogram> <histogram name="Compositing.MainThreadBlockedDuringCommitTime" - units="microseconds" expires_after="2024-09-01"> + units="microseconds" expires_after="2024-11-03"> <owner>szager@chromium.org</owner> <owner>paint-dev@chromium.org</owner> <owner>sky@chromium.org</owner> @@ -637,7 +637,7 @@ </histogram> <histogram name="Compositing.Renderer.CALayerResult" enum="CALayerResult" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>ccameron@chromium.org</owner> <owner>graphics-dev@chromium.org</owner> <summary> @@ -648,7 +648,7 @@ </histogram> <histogram name="Compositing.Renderer.LayersUpdateTime" units="microseconds" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>pdr@chromium.org</owner> <owner>paint-dev@chromium.org</owner> <summary> @@ -664,7 +664,7 @@ </histogram> <histogram name="Compositing.Renderer.LCDTextDisallowedReasonKPixels2.{DPI}" - enum="LCDTextDisallowedReason" expires_after="2024-09-01"> + enum="LCDTextDisallowedReason" expires_after="2024-11-03"> <owner>wangxianzhu@chromium.org</owner> <owner>paint-dev@chromium.org</owner> <summary> @@ -728,7 +728,7 @@ </histogram> <histogram name="Compositing.SkiaRenderer.SkipOverlayRenderPassDrawQuad" - enum="BooleanSkipped" expires_after="2024-09-01"> + enum="BooleanSkipped" expires_after="2024-11-03"> <owner>magchen@chromium.org</owner> <owner>ccameron@chromium.org</owner> <owner>graphics-dev@chromium.org</owner> @@ -740,7 +740,7 @@ </histogram> <histogram name="Compositing.SkiaRenderer.SkippedOverlayRenderPassDrawQuadSize" - units="pixels" expires_after="2024-09-01"> + units="pixels" expires_after="2024-11-03"> <owner>magchen@chromium.org</owner> <owner>ccameron@chromium.org</owner> <owner>graphics-dev@chromium.org</owner> @@ -751,7 +751,7 @@ </histogram> <histogram name="Compositing.SkiaRenderer.VertexOpacityUsage" - units="VertexOpacityUsage" expires_after="2024-09-01"> + units="VertexOpacityUsage" expires_after="2024-11-03"> <owner>petermcneeley@chromium.org</owner> <owner>kyle@chromium.org</owner> <owner>graphics-dev@chromium.org</owner> @@ -761,7 +761,7 @@ </histogram> <histogram name="Compositing.SurfaceAggregator.AggregateUs" - units="microseconds" expires_after="2024-09-01"> + units="microseconds" expires_after="2024-11-03"> <owner>kylechar@chromium.org</owner> <owner>graphics-dev@chromium.org</owner> <summary> @@ -777,7 +777,7 @@ </histogram> <histogram name="Compositing.SurfaceAggregator.CopiedSurfaceCount" - units="surfaces" expires_after="2024-09-01"> + units="surfaces" expires_after="2024-11-03"> <owner>kylechar@chromium.org</owner> <owner>jonross@chromium.org</owner> <summary> @@ -787,7 +787,7 @@ </histogram> <histogram name="Compositing.SurfaceAggregator.CopyUs" units="microseconds" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>kylechar@chromium.org</owner> <owner>jonross@chromium.org</owner> <summary> @@ -811,7 +811,7 @@ </histogram> <histogram name="Compositing.SurfaceAggregator.Has{Type}PerFrame" - enum="Boolean" expires_after="2024-09-01"> + enum="Boolean" expires_after="2024-11-03"> <owner>magchen@chromium.org</owner> <owner>graphics-dev@chromium.org</owner> <summary> @@ -827,7 +827,7 @@ </histogram> <histogram name="Compositing.SurfaceAggregator.PrewalkedSurfaceCount" - units="surfaces" expires_after="2024-09-01"> + units="surfaces" expires_after="2024-11-03"> <owner>kylechar@chromium.org</owner> <owner>jonross@chromium.org</owner> <summary> @@ -1294,7 +1294,7 @@ </histogram> <histogram name="Graphics.Smoothness.MaxPercentDroppedFrames_1sWindow" - units="%" expires_after="2024-09-01"> + units="%" expires_after="2024-11-03"> <owner>jonross@chromium.org</owner> <owner>graphics-dev@chromium.org</owner> <summary>
diff --git a/tools/metrics/histograms/metadata/content/histograms.xml b/tools/metrics/histograms/metadata/content/histograms.xml index 4a0822e3..5aa51954 100644 --- a/tools/metrics/histograms/metadata/content/histograms.xml +++ b/tools/metrics/histograms/metadata/content/histograms.xml
@@ -147,7 +147,7 @@ </histogram> <histogram name="ContentNotifications.ClientStatus.Enabled.ByProvider" - enum="Boolean" expires_after="2024-09-01"> + enum="Boolean" expires_after="2024-11-03"> <owner>guiperez@google.com</owner> <owner>chrome-sherlock@google.com</owner> <summary>The status of the push notifications client for Content.</summary> @@ -310,7 +310,7 @@ </histogram> <histogram name="ContentSettings.GetCookieSettingInternal.Duration" - units="microseconds" expires_after="2024-09-01"> + units="microseconds" expires_after="2024-11-03"> <owner>dullweber@chromium.org</owner> <owner>wanderview@chromium.org</owner> <summary> @@ -321,7 +321,7 @@ </histogram> <histogram name="ContentSettings.IsAllowedByTpcdMetadataGrant.Duration" - units="microseconds" expires_after="2024-09-01"> + units="microseconds" expires_after="2024-11-03"> <owner>trishalfonso@google.com</owner> <owner>wanderview@chromium.org</owner> <summary> @@ -1178,7 +1178,7 @@ </histogram> <histogram name="ContentSuggestions.Feed.Network.ResponseSizeKB" units="KB" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>carlosk@chromium.org</owner> <owner>harringtond@chromium.org</owner> <owner>feed@chromium.org</owner> @@ -1233,7 +1233,7 @@ </histogram> <histogram name="ContentSuggestions.Feed.RefreshTrigger" - enum="FeedRefreshTrigger" expires_after="2024-09-01"> + enum="FeedRefreshTrigger" expires_after="2024-11-03"> <owner>adamta@google.com</owner> <owner>feed@chromium.org</owner> <summary> @@ -1274,7 +1274,7 @@ </histogram> <histogram name="ContentSuggestions.Feed.TimeSpentInFeed" units="ms" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>carlosk@chromium.org</owner> <owner>harringtond@chromium.org</owner> <owner>feed@chromium.org</owner> @@ -1327,7 +1327,7 @@ </histogram> <histogram name="ContentSuggestions.Feed.UploadActionsStatus" - enum="FeedUploadActionsStatus" expires_after="2024-09-01"> + enum="FeedUploadActionsStatus" expires_after="2024-11-03"> <owner>iwells@chromium.org</owner> <owner>harringtond@chromium.org</owner> <owner>feed@chromium.org</owner> @@ -1361,7 +1361,7 @@ </histogram> <histogram name="ContentSuggestions.Feed.UserActions" enum="FeedUserActionType" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>harringtond@chromium.org</owner> <owner>carlosk@chromium.org</owner> <owner>feed@chromium.org</owner> @@ -1372,7 +1372,7 @@ </histogram> <histogram name="ContentSuggestions.Feed.UserActions.Commands" - enum="FeedUserCommandType" expires_after="2024-09-01"> + enum="FeedUserCommandType" expires_after="2024-11-03"> <owner>harringtond@chromium.org</owner> <owner>sczs@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 e5403431..5223954d 100644 --- a/tools/metrics/histograms/metadata/cookie/histograms.xml +++ b/tools/metrics/histograms/metadata/cookie/histograms.xml
@@ -106,7 +106,7 @@ </histogram> <histogram name="Cookie.CookieJarSize" units="kibibytes" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>dylancutler@google.com</owner> <owner>src/net/cookies/OWNERS</owner> <summary> @@ -128,7 +128,7 @@ </histogram> <histogram name="Cookie.CookiePrefix" enum="CookiePrefix" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>estark@chromium.org</owner> <summary> Number of times a cookie was set with a name prefixed by @@ -189,7 +189,7 @@ </histogram> <histogram name="Cookie.CookieSchemeRequestScheme" enum="CookieRequestScheme" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>bingler@chromium.org</owner> <owner>miketaylr@chromium.org</owner> <summary> @@ -200,7 +200,7 @@ </histogram> <histogram name="Cookie.CookieSourceScheme" enum="CookieSourceScheme" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>estark@chromium.org</owner> <summary> For each cookie added to the store, record whether its source URL has a @@ -315,7 +315,7 @@ </histogram> <histogram name="Cookie.DaysSinceRefreshForRetrieval" units="days" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>arichiv@chromium.org</owner> <owner>bingler@chromium.org</owner> <summary> @@ -610,7 +610,7 @@ </histogram> <histogram name="Cookie.FromStorageWithValidLength" enum="BooleanValid" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>bingler@chromium.org</owner> <owner>awillia@chromium.org</owner> <summary> @@ -656,7 +656,7 @@ </histogram> <histogram name="Cookie.IsPartitionedValid" enum="BooleanValid" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>dylancutler@google.com</owner> <owner>bingler@chromium.org</owner> <summary> @@ -677,7 +677,7 @@ </histogram> <histogram name="Cookie.MaxCookieJarSizePerKey" units="kibibytes" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>dylancutler@google.com</owner> <owner>src/net/cookies/OWNERS</owner> <summary> @@ -688,7 +688,7 @@ </histogram> <histogram name="Cookie.MaxSameSiteNoneCookiesPerKey" units="units" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>dylancutler@google.com</owner> <owner>src/net/cookies/OWNERS</owner> <summary> @@ -744,7 +744,7 @@ </histogram> <histogram name="Cookie.PartitionCount" units="partitions" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>dylancutler@google.com</owner> <owner>src/net/cookies/OWNERS</owner> <summary> @@ -756,7 +756,7 @@ </histogram> <histogram name="Cookie.PartitionedCookieCount" units="cookies" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>dylancutler@google.com</owner> <owner>src/net/cookies/OWNERS</owner> <summary> @@ -782,7 +782,7 @@ </histogram> <histogram name="Cookie.PartitionedCookieJarSizeKibibytes" units="kibibytes" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>dylancutler@google.com</owner> <owner>src/net/cookies/OWNERS</owner> <summary> @@ -793,7 +793,7 @@ </histogram> <histogram name="Cookie.PartitionedCookieJarSizeKibibytes.{NonceType}" - units="kibibytes" expires_after="2024-09-01"> + units="kibibytes" expires_after="2024-11-03"> <owner>dylancutler@google.com</owner> <owner>src/net/cookies/OWNERS</owner> <summary> @@ -809,7 +809,7 @@ </histogram> <histogram name="Cookie.PartitionedCookiesInRequest" units="cookies" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>dylancutler@google.com</owner> <owner>src/net/cookies/OWNERS</owner> <summary> @@ -894,7 +894,7 @@ </histogram> <histogram name="Cookie.Port.ReadDiffersFromSet.{HostType}" - enum="CookieSentToSamePort" expires_after="2024-09-01"> + enum="CookieSentToSamePort" expires_after="2024-11-03"> <owner>bingler@chromium.org</owner> <owner>miketaylr@chromium.org</owner> <summary> @@ -969,7 +969,7 @@ </histogram> <histogram name="Cookie.SameSiteNoneSizeBytes" units="bytes" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>dylancutler@google.com</owner> <owner>src/net/cookies/OWNERS</owner> <summary> @@ -979,7 +979,7 @@ </histogram> <histogram name="Cookie.SameSiteNoneSizeBytes.{IsPartitioned}" units="bytes" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>dylancutler@google.com</owner> <owner>src/net/cookies/OWNERS</owner> <summary>
diff --git a/tools/metrics/histograms/metadata/cras/histograms.xml b/tools/metrics/histograms/metadata/cras/histograms.xml index 7e0555a..719b09b 100644 --- a/tools/metrics/histograms/metadata/cras/histograms.xml +++ b/tools/metrics/histograms/metadata/cras/histograms.xml
@@ -129,14 +129,14 @@ </summary> </histogram> -<histogram name="Cras.ApNcRuntime" units="seconds" expires_after="2024-08-31"> +<histogram name="Cras.ApNcRuntime" units="seconds" expires_after="2024-11-03"> <owner>hunghsienchen@chromium.org</owner> <owner>chromeos-audio@google.com</owner> <summary>Tracks the runtime of the APM when AP NC is active.</summary> </histogram> <histogram name="Cras.ApNcStartStatus" enum="CrasApNcStartStatus" - expires_after="2024-08-31"> + expires_after="2024-11-03"> <owner>hunghsienchen@chromium.org</owner> <owner>chromeos-audio@google.com</owner> <summary> @@ -388,7 +388,7 @@ </histogram> <histogram name="Cras.DeviceVolume{Device}" units="level" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>yuhsuan@chromium.org</owner> <owner>chromeos-audio@google.com</owner> <summary> @@ -720,7 +720,7 @@ </histogram> <histogram name="Cras.NoiseCancellationEnabledSource" - enum="AudioSettingsChangeSource" expires_after="2024-09-01"> + enum="AudioSettingsChangeSource" expires_after="2024-11-03"> <owner>gavinwill@chromium.org</owner> <owner>yuhsuan@chromium.org</owner> <owner>chromeos-audio@google.com</owner> @@ -761,7 +761,7 @@ </histogram> <histogram name="Cras.RtcDevicePair" enum="CrasDevicePair" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>yuhsuan@chromium.org</owner> <owner>chromeos-audio@google.com</owner> <summary> @@ -771,7 +771,7 @@ </histogram> <histogram name="Cras.RtcRuntime.{InDevice}.{OutDevice}" units="seconds" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>yuhsuan@chromium.org</owner> <owner>chromeos-audio@google.com</owner> <summary> @@ -895,7 +895,7 @@ </histogram> <histogram name="Cras.StreamChannelCount" units="channels" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <!-- Name completed by histogram_suffixes name="Cras.Direction" and name="Cras.ClientType" --> @@ -909,7 +909,7 @@ </histogram> <histogram name="Cras.StreamClientTypeInput" enum="CrasClientType" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>yuhsuan@chromium.org</owner> <owner>chromeos-audio@google.com</owner> <summary> @@ -919,7 +919,7 @@ </histogram> <histogram name="Cras.StreamClientTypeOutput" enum="CrasClientType" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>yuhsuan@chromium.org</owner> <owner>chromeos-audio@google.com</owner> <summary> @@ -1015,7 +1015,7 @@ </summary> </histogram> -<histogram name="Cras.StreamRuntime" units="seconds" expires_after="2024-09-01"> +<histogram name="Cras.StreamRuntime" units="seconds" expires_after="2024-11-03"> <!-- Name completed by histogram_suffixes name="Cras.Direction" and name="Cras.ClientType" and @@ -1110,7 +1110,7 @@ </histogram> <histogram name="Cras.UnderrunsPerDevice{Device}" units="count" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>yuhsuan@chromium.org</owner> <owner>chromeos-audio@google.com</owner> <summary>
diff --git a/tools/metrics/histograms/metadata/cros_audio/histograms.xml b/tools/metrics/histograms/metadata/cros_audio/histograms.xml index ae05ab37..2915077 100644 --- a/tools/metrics/histograms/metadata/cros_audio/histograms.xml +++ b/tools/metrics/histograms/metadata/cros_audio/histograms.xml
@@ -67,7 +67,7 @@ </histogram> <histogram name="ChromeOS.AudioSelection.{AudioType}.SystemSwitchAudio" - enum="BooleanSwitched" expires_after="2024-09-01"> + enum="BooleanSwitched" expires_after="2024-11-03"> <owner>zhangwenyu@google.com</owner> <owner>cros-peripherals@google.com</owner> <summary> @@ -235,7 +235,7 @@ <histogram name="ChromeOS.AudioSelection.{AudioType}.UserOverrideSystem{SwitchDecision}TimeElapsed" - units="minutes" expires_after="2024-09-01"> + units="minutes" expires_after="2024-11-03"> <owner>zhangwenyu@google.com</owner> <owner>cros-peripherals@google.com</owner> <summary> @@ -291,7 +291,7 @@ </histogram> <histogram name="ChromeOS.CrosAudioConfig.InputDeviceTypeChangedTo" - enum="AudioDeviceType" expires_after="2024-09-01"> + enum="AudioDeviceType" expires_after="2024-11-03"> <owner>zhangwenyu@google.com</owner> <owner>cros-peripherals@google.com</owner> <summary> @@ -302,7 +302,7 @@ </histogram> <histogram name="ChromeOS.CrosAudioConfig.InputGainSetTo" units="%" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>zhangwenyu@google.com</owner> <owner>cros-peripherals@google.com</owner> <summary> @@ -324,7 +324,7 @@ </histogram> <histogram name="ChromeOS.CrosAudioConfig.NoiseCancellationEnabled" - enum="BooleanEnabled" expires_after="2024-09-01"> + enum="BooleanEnabled" expires_after="2024-11-03"> <owner>zhangwenyu@google.com</owner> <owner>cros-peripherals@google.com</owner> <summary> @@ -334,7 +334,7 @@ </histogram> <histogram name="ChromeOS.CrosAudioConfig.OutputDeviceTypeChangedTo" - enum="AudioDeviceType" expires_after="2024-09-01"> + enum="AudioDeviceType" expires_after="2024-11-03"> <owner>zhangwenyu@google.com</owner> <owner>cros-peripherals@google.com</owner> <summary> @@ -345,7 +345,7 @@ </histogram> <histogram name="ChromeOS.CrosAudioConfig.OutputMuteStateChange" - enum="AudioMuteButtonAction" expires_after="2024-09-01"> + enum="AudioMuteButtonAction" expires_after="2024-11-03"> <owner>zhangwenyu@google.com</owner> <owner>cros-peripherals@google.com</owner> <summary> @@ -355,7 +355,7 @@ </histogram> <histogram name="ChromeOS.CrosAudioConfig.OutputVolumeSetTo" units="%" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>zhangwenyu@google.com</owner> <owner>cros-peripherals@google.com</owner> <summary>
diff --git a/tools/metrics/histograms/metadata/cros_federated/histograms.xml b/tools/metrics/histograms/metadata/cros_federated/histograms.xml index dca010c..406db49 100644 --- a/tools/metrics/histograms/metadata/cros_federated/histograms.xml +++ b/tools/metrics/histograms/metadata/cros_federated/histograms.xml
@@ -32,7 +32,7 @@ </variants> <histogram name="FederatedService.ServiceEvent" enum="FederatedServiceEvent" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>alanlxl@chromium.org</owner> <owner>amoylan@chromium.org</owner> <owner>cros-federated-team@google.com</owner> @@ -42,7 +42,7 @@ </histogram> <histogram name="FederatedService.StorageEvent" enum="FederatedStorageEvent" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>alanlxl@chromium.org</owner> <owner>amoylan@chromium.org</owner> <owner>cros-federated-team@google.com</owner> @@ -53,7 +53,7 @@ </histogram> <histogram name="FederatedService.TrainingConditionToContinue" - enum="FederatedTrainingConditionResult" expires_after="2024-09-01"> + enum="FederatedTrainingConditionResult" expires_after="2024-11-03"> <owner>alanlxl@chromium.org</owner> <owner>amoylan@chromium.org</owner> <owner>amandadeacon@chromium.org</owner> @@ -76,7 +76,7 @@ </histogram> <histogram name="FederatedService.TrainingConditionToStart" - enum="FederatedTrainingConditionResult" expires_after="2024-09-01"> + enum="FederatedTrainingConditionResult" expires_after="2024-11-03"> <owner>alanlxl@chromium.org</owner> <owner>amoylan@chromium.org</owner> <owner>amandadeacon@chromium.org</owner> @@ -97,7 +97,7 @@ </histogram> <histogram name="FederatedService.{Population}.CpuTimeMicrosec" - units="microseconds" expires_after="2024-09-01"> + units="microseconds" expires_after="2024-11-03"> <owner>amoylan@chromium.org</owner> <owner>alanlxl@chromium.org</owner> <owner>cros-federated-team@google.com</owner> @@ -110,7 +110,7 @@ </histogram> <histogram name="FederatedService.{Population}.Event" - enum="FederatedClientEvent" expires_after="2024-09-01"> + enum="FederatedClientEvent" expires_after="2024-11-03"> <owner>alanlxl@chromium.org</owner> <owner>amoylan@chromium.org</owner> <owner>cros-federated-team@google.com</owner>
diff --git a/tools/metrics/histograms/metadata/cros_ml/histograms.xml b/tools/metrics/histograms/metadata/cros_ml/histograms.xml index 932b60ef..7279d4aa 100644 --- a/tools/metrics/histograms/metadata/cros_ml/histograms.xml +++ b/tools/metrics/histograms/metadata/cros_ml/histograms.xml
@@ -62,7 +62,7 @@ </variants> <histogram name="MachineLearningService.CpuUsageMilliPercent" - units="1/1000ths of %" expires_after="2024-09-01"> + units="1/1000ths of %" expires_after="2024-11-03"> <owner>alanlxl@chromium.org</owner> <owner>amoylan@chromium.org</owner> <summary> @@ -157,7 +157,7 @@ </histogram> <histogram name="MachineLearningService.MlCore.DlcBeginInstallDlcServiceError" - enum="MachineLearningServiceDlcErrorCode" expires_after="2024-09-01"> + enum="MachineLearningServiceDlcErrorCode" expires_after="2024-11-03"> <owner>amoylan@chromium.org</owner> <owner>dgrebenyuk@chromium.org</owner> <owner>nbowe@chromium.org</owner> @@ -169,7 +169,7 @@ <histogram name="MachineLearningService.MlCore.DlcBeginInstallResult" enum="MachineLearningServiceDlcBeginInstallResult" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>amoylan@chromium.org</owner> <owner>dgrebenyuk@chromium.org</owner> <owner>nbowe@chromium.org</owner> @@ -181,7 +181,7 @@ </histogram> <histogram name="MachineLearningService.MlCore.DlcFinalInstallDlcServiceError" - enum="MachineLearningServiceDlcErrorCode" expires_after="2024-09-01"> + enum="MachineLearningServiceDlcErrorCode" expires_after="2024-11-03"> <owner>amoylan@chromium.org</owner> <owner>dgrebenyuk@chromium.org</owner> <owner>nbowe@chromium.org</owner> @@ -195,7 +195,7 @@ <histogram name="MachineLearningService.MlCore.DlcFinalInstallResult" enum="MachineLearningServiceDlcFinalInstallResult" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>amoylan@chromium.org</owner> <owner>dgrebenyuk@chromium.org</owner> <owner>nbowe@chromium.org</owner> @@ -207,7 +207,7 @@ </histogram> <histogram name="MachineLearningService.MlCore.DlcInstallAttemptCount" - units="attempts" expires_after="2024-09-01"> + units="attempts" expires_after="2024-11-03"> <owner>amoylan@chromium.org</owner> <owner>dgrebenyuk@chromium.org</owner> <owner>nbowe@chromium.org</owner> @@ -220,7 +220,7 @@ </histogram> <histogram name="MachineLearningService.MojoConnectionEvent" - enum="MachineLearningServiceMojoConnectionEvent" expires_after="2024-09-01"> + enum="MachineLearningServiceMojoConnectionEvent" expires_after="2024-11-03"> <owner>alanlxl@chromium.org</owner> <owner>amoylan@chromium.org</owner> <summary> @@ -250,7 +250,7 @@ </histogram> <histogram name="MachineLearningService.ProcessError" - enum="MachineLearningServiceProcessError" expires_after="2024-09-01"> + enum="MachineLearningServiceProcessError" expires_after="2024-11-03"> <owner>amoylan@chromium.org</owner> <owner>alanlxl@chromium.org</owner> <summary> @@ -277,7 +277,7 @@ </histogram> <histogram name="MachineLearningService.TextSuggester.Suggest.Event" - enum="BooleanError" expires_after="2024-09-01"> + enum="BooleanError" expires_after="2024-11-03"> <owner>curtismcmullan@chromium.org</owner> <owner>amoylan@chromium.org</owner> <summary> @@ -310,7 +310,7 @@ <histogram name="MachineLearningService.WebPlatformHandwritingModel.LoadModelResult.Event" enum="MachineLearningServiceLoadHandwritingModelResultEvent" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>amoylan@chromium.org</owner> <owner>alanlxl@chromium.org</owner> <owner>charleszhao@chromium.org</owner> @@ -371,7 +371,7 @@ </histogram> <histogram name="MachineLearningService.WorkerProcessCleanUpTime" - units="microseconds" expires_after="2024-09-01"> + units="microseconds" expires_after="2024-11-03"> <owner>alanlxl@chromium.org</owner> <owner>amoylan@chromium.org</owner> <summary> @@ -441,7 +441,7 @@ </histogram> <histogram name="MachineLearningService.{RequestName}.CpuTimeMicrosec" - units="microseconds" expires_after="2024-09-01"> + units="microseconds" expires_after="2024-11-03"> <owner>amoylan@chromium.org</owner> <owner>alanlxl@chromium.org</owner> <summary> @@ -453,7 +453,7 @@ </histogram> <histogram name="MachineLearningService.{RequestName}.TotalMemoryDeltaKb" - units="KB" expires_after="2024-09-01"> + units="KB" expires_after="2024-11-03"> <owner>amoylan@chromium.org</owner> <owner>alanlxl@chromium.org</owner> <summary>Memory usage increase caused by {RequestName} request.</summary>
diff --git a/tools/metrics/histograms/metadata/crostini/histograms.xml b/tools/metrics/histograms/metadata/crostini/histograms.xml index 5388a4a..dbbc44fa 100644 --- a/tools/metrics/histograms/metadata/crostini/histograms.xml +++ b/tools/metrics/histograms/metadata/crostini/histograms.xml
@@ -103,7 +103,7 @@ </histogram> <histogram name="Crostini.Backup" enum="CrostiniExportContainerResult" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>davidmunro@google.com</owner> <owner>clumptini@google.com</owner> <summary>Result of crostini backup.</summary> @@ -156,7 +156,7 @@ </histogram> <histogram name="Crostini.ContainerOsVersion" enum="CrostiniContainerOsVersion" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>davidmunro@google.com</owner> <owner>clumptini@google.com</owner> <summary> @@ -194,7 +194,7 @@ </histogram> <histogram name="Crostini.DiskResize.Result" enum="CrostiniDiskImageStatus" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>davidmunro@google.com</owner> <owner>clumptini@google.com</owner> <summary> @@ -261,7 +261,7 @@ </histogram> <histogram name="Crostini.FilesystemCorruption" enum="CorruptionStates" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>sidereal@google.com</owner> <owner>davidmunro@google.com</owner> <owner>clumptini@google.com</owner> @@ -414,7 +414,7 @@ </histogram> <histogram name="Crostini.SetupResult" enum="CrostiniSetupResult" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>davidmunro@google.com</owner> <owner>clumptini@google.com</owner> <summary> @@ -484,7 +484,7 @@ </histogram> <histogram name="Crostini.Stability" enum="GuestOsFailureClasses" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>davidmunro@google.com</owner> <owner>clumptini@google.com</owner> <summary> @@ -550,7 +550,7 @@ </histogram> <histogram name="Crostini.UninstallResult" enum="CrostiniUninstallResult" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>davidmunro@google.com</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 e189c62..4e3b983a 100644 --- a/tools/metrics/histograms/metadata/cryptohome/histograms.xml +++ b/tools/metrics/histograms/metadata/cryptohome/histograms.xml
@@ -56,7 +56,7 @@ </variants> <histogram name="Cryptohome.AuthFactorBackingStoreConfig" - enum="CryptohomeAuthFactorBackingStoreConfig" expires_after="2024-09-01"> + enum="CryptohomeAuthFactorBackingStoreConfig" expires_after="2024-11-03"> <owner>jadmanski@chromium.org</owner> <owner>cros-security-cryptohome+uma@google.com</owner> <summary> @@ -147,7 +147,7 @@ </histogram> <histogram name="Cryptohome.Errors" enum="CryptohomeError" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>apronin@chromium.org</owner> <owner>cros-hwsec+uma@google.com</owner> <summary>Cryptohome errors.</summary> @@ -585,7 +585,7 @@ </histogram> <histogram name="Cryptohome.TimeToGenerateEccAuthValue" units="ms" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>yich@google.com</owner> <owner>cros-hwsec+uma@google.com</owner> <summary> @@ -609,7 +609,7 @@ </histogram> <histogram name="Cryptohome.TimeToMountEx" units="ms" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>betuls@chromium.org</owner> <owner>cros-security-cryptohome+uma@google.com</owner> <summary> @@ -640,7 +640,7 @@ </histogram> <histogram name="Cryptohome.TimeToPerformMount" units="ms" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>betuls@chromium.org</owner> <owner>cros-security-cryptohome+uma@google.com</owner> <summary> @@ -651,7 +651,7 @@ </histogram> <histogram name="Cryptohome.TimeToRelabelSELinuxContexts" units="ms" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>betuls@chromium.org</owner> <owner>cros-security-cryptohome+uma@google.com</owner> <summary> @@ -661,7 +661,7 @@ </histogram> <histogram name="Cryptohome.TimeToSetupVault" units="ms" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>sarthakkukreti@chromium.org</owner> <owner>cros-hwsec+uma@google.com</owner> <summary> @@ -706,7 +706,7 @@ </histogram> <histogram name="Cryptohome.VaultKeysetMetric.{VaultKeysetMetric}" - units="count" expires_after="2024-09-01"> + units="count" expires_after="2024-11-03"> <owner>thomascedeno@google.com</owner> <owner>cros-security-cryptohome+uma@google.com</owner> <summary> @@ -732,7 +732,7 @@ </histogram> <histogram name="Cryptohome.VkToUssMigrationStatus" - enum="VkToUssMigrationStatus" expires_after="2024-09-01"> + enum="VkToUssMigrationStatus" expires_after="2024-11-03"> <owner>jadmanski@chromium.org</owner> <owner>cros-security-cryptohome+uma@google.com</owner> <summary> @@ -775,7 +775,7 @@ </histogram> <histogram name="Cryptohome.{Action}AuthBlockType" - enum="CryptohomeAuthBlockType" expires_after="2024-09-01"> + enum="CryptohomeAuthBlockType" expires_after="2024-11-03"> <owner>yich@google.com</owner> <owner>cros-hwsec+uma@google.com</owner> <summary> @@ -812,7 +812,7 @@ </histogram> <histogram name="Cryptohome.{AuthSessionFunction}.{AuthBlockType}" units="ms" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>thomascedeno@google.com</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 abafa42..03244785 100644 --- a/tools/metrics/histograms/metadata/custom_tabs/histograms.xml +++ b/tools/metrics/histograms/metadata/custom_tabs/histograms.xml
@@ -70,7 +70,7 @@ </histogram> <histogram name="CustomTabs.Branding.BrandingCheckDuration" units="ms" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>wenyufu@chromium.org</owner> <owner>chrome-connective-tissue@google.com</owner> <summary> @@ -82,7 +82,7 @@ </histogram> <histogram name="CustomTabs.Branding.NumberOfClients" units="count" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>wenyufu@chromium.org</owner> <owner>chrome-connective-tissue@google.com</owner> <summary> @@ -95,7 +95,7 @@ </histogram> <histogram name="CustomTabs.ClientAppId" enum="ClientAppId" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>yusufo@chromium.org</owner> <summary> Android: AppId declared by the launching application in EXTRA_APPLICATION_ID @@ -127,7 +127,7 @@ </histogram> <histogram name="CustomTabs.CloseCause" enum="CustomTabsCloseCause" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>jinsukkim@chromium.org</owner> <owner>twellington@chromium.org</owner> <owner>cct-team@google.com</owner> @@ -139,7 +139,7 @@ </histogram> <histogram name="CustomTabs.ConnectionStatusOnReturn.GSA" - enum="CustomTabsConnection" expires_after="2024-09-01"> + enum="CustomTabsConnection" expires_after="2024-11-03"> <owner>kgrosu@google.com</owner> <owner>jinsukkim@chromium.org</owner> <owner>cct-team@google.com</owner> @@ -153,7 +153,7 @@ </histogram> <histogram name="CustomTabs.ConnectionStatusOnReturn.NonGSA" - enum="CustomTabsConnection" expires_after="2024-09-01"> + enum="CustomTabsConnection" expires_after="2024-11-03"> <owner>kgrosu@google.com</owner> <owner>jinsukkim@chromium.org</owner> <owner>cct-team@google.com</owner> @@ -229,7 +229,7 @@ </histogram> <histogram name="CustomTabs.HadInteractionOnClose.Form" enum="Boolean" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>katzz@google.com</owner> <owner>chrome-connective-tissue@google.com</owner> <summary> @@ -253,7 +253,7 @@ </histogram> <histogram name="CustomTabs.HadInteractionOnClose.Navigation" enum="Boolean" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>katzz@google.com</owner> <owner>chrome-connective-tissue@google.com</owner> <summary> @@ -266,7 +266,7 @@ </histogram> <histogram name="CustomTabs.HasNonSpoofablePackageName" enum="Boolean" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>katzz@google.com</owner> <owner>chrome-connective-tissue@google.com</owner> <summary> @@ -445,7 +445,7 @@ </histogram> <histogram name="CustomTabs.PartialCustomTabType" - enum="CustomTabsPartialCustomTabType" expires_after="2024-09-01"> + enum="CustomTabsPartialCustomTabType" expires_after="2024-11-03"> <owner>kgrosu@google.com</owner> <owner>chrome-connective-tissue@google.com</owner> <summary> @@ -458,7 +458,7 @@ </histogram> <histogram name="CustomTabs.PostMessage.OnMessage" enum="Boolean" - expires_after="2024-08-23"> + expires_after="2024-11-03"> <owner>sinansahin@google.com</owner> <owner>jinsukkim@chromium.org</owner> <owner>chrome-connective-tissue@google.com</owner> @@ -518,7 +518,7 @@ <histogram name="CustomTabs.RetainableSessionsV2.TimeBetweenLaunch{IdentifierType}" - units="seconds" expires_after="2024-09-01"> + units="seconds" expires_after="2024-11-03"> <owner>wenyufu@chromium.org</owner> <owner>chrome-connective-tissue@google.com</owner> <summary> @@ -739,7 +739,7 @@ </histogram> <histogram name="CustomTabs.WarmupStateOnLaunch" enum="WarmupStateOnLaunch" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>lizeb@chromium.org</owner> <summary> Recorded only on Android. Reports whether warmup() has been called when a
diff --git a/tools/metrics/histograms/metadata/data/histograms.xml b/tools/metrics/histograms/metadata/data/histograms.xml index 9deeb47..a24c523b 100644 --- a/tools/metrics/histograms/metadata/data/histograms.xml +++ b/tools/metrics/histograms/metadata/data/histograms.xml
@@ -107,7 +107,7 @@ </histogram> <histogram name="DataUse.BytesSent3.Delegate" units="bytes" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>curranmax@chromium.org</owner> <owner>ryansturm@chromium.org</owner> <owner>spelchat@chromium.org</owner>
diff --git a/tools/metrics/histograms/metadata/dev/histograms.xml b/tools/metrics/histograms/metadata/dev/histograms.xml index d088550..25053ef 100644 --- a/tools/metrics/histograms/metadata/dev/histograms.xml +++ b/tools/metrics/histograms/metadata/dev/histograms.xml
@@ -23,7 +23,7 @@ <histograms> <histogram name="DevTools.ActionTaken" enum="DevToolsAction" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>yangguo@chromium.org</owner> <owner>bmeurer@google.com</owner> <summary>Specified DevTools action has been taken.</summary> @@ -68,7 +68,7 @@ </histogram> <histogram name="DevTools.CDPCommandFrom{ClientType}" enum="CDPCommands" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>wolfi@google.com</owner> <owner>danilsomsikov@google.com</owner> <owner>yangguo@chromium.org</owner> @@ -103,7 +103,7 @@ </histogram> <histogram name="DevTools.CSSHintShown" enum="DevToolsCSSHintShown" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>changhaohan@chromium.org</owner> <owner>mathias@chromium.org</owner> <owner>yangguo@chromium.org</owner> @@ -115,7 +115,7 @@ </histogram> <histogram name="DevTools.CSSPropertyDocumentation" - enum="DevToolsCSSPropertyDocumentation" expires_after="2024-09-01"> + enum="DevToolsCSSPropertyDocumentation" expires_after="2024-11-03"> <owner>ergunsh@chromium.org</owner> <owner>changhaohan@chromium.org</owner> <owner>bmeurer@google.com</owner> @@ -179,7 +179,7 @@ </histogram> <histogram name="DevTools.ExperimentDisabled" enum="DevtoolsExperiments" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>yangguo@chromium.org</owner> <owner>changhaohan@chromium.org</owner> <summary> @@ -197,7 +197,7 @@ </histogram> <histogram name="DevTools.ExperimentEnabled" enum="DevtoolsExperiments" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>yangguo@chromium.org</owner> <owner>changhaohan@chromium.org</owner> <summary> @@ -206,7 +206,7 @@ </histogram> <histogram name="DevTools.ExperimentEnabledAtLaunch" enum="DevtoolsExperiments" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>yangguo@chromium.org</owner> <owner>changhaohan@chromium.org</owner> <summary> @@ -214,7 +214,7 @@ </summary> </histogram> -<histogram name="DevTools.InspectElement" units="ms" expires_after="2024-09-01"> +<histogram name="DevTools.InspectElement" units="ms" expires_after="2024-11-03"> <owner>yangguo@chromium.org</owner> <owner>bmeurer@google.com</owner> <summary> @@ -246,7 +246,7 @@ </histogram> <histogram name="DevTools.IssueCreated" enum="DevToolsIssueCreated" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>yangguo@chromium.org</owner> <owner>danilsomsikov@google.com</owner> <summary> @@ -362,7 +362,7 @@ </histogram> <histogram name="DevTools.LighthouseModeRun" enum="DevToolsLighthouseModeRun" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>asraine@chromium.org</owner> <owner>paulirish@chromium.org</owner> <owner>cjamcl@chromium.org</owner> @@ -414,7 +414,7 @@ </histogram> <histogram name="DevTools.OpenedByAction" enum="DevToolsOpenedByAction" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>changhaohan@chromium.org</owner> <owner>yangguo@chromium.org</owner> <owner>mathias@chromium.org</owner> @@ -434,7 +434,7 @@ </histogram> <histogram name="DevTools.PanelShown" enum="DevToolsPanel" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>yangguo@chromium.org</owner> <owner>bmeurer@google.com</owner> <summary>Specified DevTools panel was shown.</summary> @@ -598,7 +598,7 @@ </histogram> <histogram name="DevTools.SwatchActivated" enum="DevToolsSwatchActivated" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>ergunsh@chromium.org</owner> <owner>changhaohan@chromium.org</owner> <owner>bmeurer@google.com</owner>
diff --git a/tools/metrics/histograms/metadata/disk/histograms.xml b/tools/metrics/histograms/metadata/disk/histograms.xml index bf8b43e..0d904d0 100644 --- a/tools/metrics/histograms/metadata/disk/histograms.xml +++ b/tools/metrics/histograms/metadata/disk/histograms.xml
@@ -23,7 +23,7 @@ <histograms> <histogram name="DiskCache.0.Error" enum="DiskCacheError" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>wfh@chromium.org</owner> <owner>src/net/disk_cache/OWNERS</owner> <summary>
diff --git a/tools/metrics/histograms/metadata/download/histograms.xml b/tools/metrics/histograms/metadata/download/histograms.xml index 53db950..d01a3b1 100644 --- a/tools/metrics/histograms/metadata/download/histograms.xml +++ b/tools/metrics/histograms/metadata/download/histograms.xml
@@ -288,7 +288,7 @@ </histogram> <histogram base="true" name="Download.Counts" enum="DownloadCountType" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <!-- Name completed by histogram_suffixes name="DownloadSource" --> <owner>shaktisahu@chromium.org</owner> @@ -343,7 +343,7 @@ </histogram> <histogram name="Download.DOMEvent" enum="DownloadDOMEvent" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>dtrainor@chromium.org</owner> <owner>xinghuilu@chromium.org</owner> <owner>chrome-counter-abuse-alerts@google.com</owner> @@ -692,7 +692,7 @@ </histogram> <histogram name="Download.Open.ContentType" enum="DownloadContentType" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>drubery@chromium.org</owner> <owner>chrome-counter-abuse-alerts@google.com</owner> <summary> @@ -703,7 +703,7 @@ </histogram> <histogram name="Download.OpenDownloads.PerProfileType" - enum="BrowserProfileType" expires_after="2024-09-01"> + enum="BrowserProfileType" expires_after="2024-11-03"> <owner>sideyilmaz@chromium.org</owner> <owner>chrome-incognito@google.com</owner> <summary> @@ -1067,7 +1067,7 @@ </histogram> <histogram name="Download.ShelfContextMenuAction" - enum="DownloadShelfContextMenuAction" expires_after="2024-09-01"> + enum="DownloadShelfContextMenuAction" expires_after="2024-11-03"> <owner>chlily@chromium.org</owner> <owner>chrome-counter-abuse-alerts@google.com</owner> <summary> @@ -1133,7 +1133,7 @@ </histogram> <histogram name="Download.Start.ContentType.NormalProfile" - enum="DownloadContentType" expires_after="2024-09-01"> + enum="DownloadContentType" expires_after="2024-11-03"> <owner>shaktisahu@chromium.org</owner> <owner>clank-downloads@google.com</owner> <summary> @@ -1189,7 +1189,7 @@ </histogram> <histogram name="Download.WarningData.ActionAdded" enum="DownloadWarningAction" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>xinghuilu@chromium.org</owner> <owner>chrome-counter-abuse-alerts@google.com</owner> <summary> @@ -1202,7 +1202,7 @@ </histogram> <histogram name="Download.WarningData.AddWarningActionEventOutcome" - enum="DownloadAddWarningActionEventOutcome" expires_after="2024-09-01"> + enum="DownloadAddWarningActionEventOutcome" expires_after="2024-11-03"> <owner>xinghuilu@chromium.org</owner> <owner>chrome-counter-abuse-alerts@google.com</owner> <summary> @@ -1212,7 +1212,7 @@ </histogram> <histogram name="Download.WarningData.SurfaceWithoutWarningShown" - enum="DownloadWarningSurface" expires_after="2024-09-01"> + enum="DownloadWarningSurface" expires_after="2024-11-03"> <owner>xinghuilu@chromium.org</owner> <owner>chrome-counter-abuse-alerts@google.com</owner> <summary>
diff --git a/tools/metrics/histograms/metadata/enterprise/histograms.xml b/tools/metrics/histograms/metadata/enterprise/histograms.xml index b8d9c8b..bbd6d356 100644 --- a/tools/metrics/histograms/metadata/enterprise/histograms.xml +++ b/tools/metrics/histograms/metadata/enterprise/histograms.xml
@@ -229,7 +229,7 @@ <histogram name="Enterprise.AutoEnrollmentHashDanceSuccessTime{EnterpriseAutoEnrollmentType}" - units="ms" expires_after="2024-12-01"> + units="ms" expires_after="2024-11-03"> <owner>sergiyb@chromium.org</owner> <owner>igorcov@chromium.org</owner> <owner>chromeos-commercial-remote-management@google.com</owner> @@ -258,7 +258,7 @@ <histogram name="Enterprise.AutoEnrollmentProtocolTime{EnterpriseAutoEnrollmentType}" - units="ms" expires_after="2024-12-01"> + units="ms" expires_after="2024-11-03"> <owner>sergiyb@chromium.org</owner> <owner>igorcov@chromium.org</owner> <owner>chromeos-commercial-remote-management@google.com</owner> @@ -313,7 +313,7 @@ <histogram name="Enterprise.AutoEnrollmentPsmResult{EnterpriseAutoEnrollmentType}" - enum="PsmResult" expires_after="2024-12-01"> + enum="PsmResult" expires_after="2024-11-03"> <owner>sergiyb@chromium.org</owner> <owner>igorcov@chromium.org</owner> <owner>chromeos-commercial-remote-management@google.com</owner> @@ -350,7 +350,7 @@ <histogram name="Enterprise.AutoEnrollmentRequestStatus{EnterpriseAutoEnrollmentType}" - enum="EnterpriseDeviceManagementStatus" expires_after="2024-12-01"> + enum="EnterpriseDeviceManagementStatus" expires_after="2024-11-03"> <owner>sergiyb@chromium.org</owner> <owner>igorcov@chromium.org</owner> <owner>chromeos-commercial-remote-management@google.com</owner> @@ -395,7 +395,7 @@ </histogram> <histogram name="Enterprise.BrowserSigninPolicy" - enum="EnterpriseBrowserSigninPolicy" expires_after="2024-09-01"> + enum="EnterpriseBrowserSigninPolicy" expires_after="2024-11-03"> <owner>alexwchen@chromium.org</owner> <owner>cbe-eng@google.com</owner> <summary> @@ -742,7 +742,7 @@ </histogram> <histogram name="Enterprise.DeviceRemoteCommand.Crd.Result" - enum="EnterpriseCrdSessionResultCode" expires_after="2024-09-01"> + enum="EnterpriseCrdSessionResultCode" expires_after="2024-11-03"> <owner>macinashutosh@google.com</owner> <owner>chromeos-commercial-crd@google.com</owner> <summary>Reports success/failure when a session is attempted.</summary> @@ -781,7 +781,7 @@ <histogram name="Enterprise.DeviceRemoteCommand.Executed{Enterprise_RemoteCommandType}" - enum="RemoteCommandExecutionStatus" expires_after="2024-12-01"> + enum="RemoteCommandExecutionStatus" expires_after="2024-11-03"> <owner>asumaneev@google.com</owner> <owner>chromeos-commercial-remote-management@google.com</owner> <summary> @@ -1416,7 +1416,7 @@ </histogram> <histogram name="Enterprise.Dlp.DlpPolicyPresent" enum="Boolean" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>poromov@chromium.org</owner> <owner>chromeos-dlp@google.com</owner> <summary> @@ -1679,7 +1679,7 @@ </histogram> <histogram name="Enterprise.Dlp.ReportedBlockLevelRestriction" - enum="EnterpriseDlpPolicyRestriction" expires_after="2024-09-01"> + enum="EnterpriseDlpPolicyRestriction" expires_after="2024-11-03"> <owner>poromov@chromium.org</owner> <owner>chromeos-dlp@google.com</owner> <summary> @@ -1689,7 +1689,7 @@ </histogram> <histogram name="Enterprise.Dlp.ReportedEventStatus" enum="GoogleRpcCode" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>poromov@chromium.org</owner> <owner>chromeos-dlp@google.com</owner> <summary> @@ -1698,7 +1698,7 @@ </histogram> <histogram name="Enterprise.Dlp.ReportedReportLevelRestriction" - enum="EnterpriseDlpPolicyRestriction" expires_after="2024-09-01"> + enum="EnterpriseDlpPolicyRestriction" expires_after="2024-11-03"> <owner>poromov@chromium.org</owner> <owner>chromeos-dlp@google.com</owner> <summary> @@ -1853,7 +1853,7 @@ </histogram> <histogram name="Enterprise.DMServerRequestSuccess{EnterpriseDMServerRequest}" - enum="EnterpriseDMServerRequestSuccess" expires_after="2024-12-01"> + enum="EnterpriseDMServerRequestSuccess" expires_after="2024-11-03"> <owner>rbock@google.com</owner> <owner>chromeos-commercial-remote-management@google.com</owner> <owner>managed-devices@google.com</owner> @@ -2500,7 +2500,7 @@ </histogram> <histogram name="Enterprise.PlatformAuth.GetAuthData.Count" units="count" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>igorruvinov@chromium.org</owner> <owner>zmin@chromium.org</owner> <summary> @@ -2561,7 +2561,7 @@ </histogram> <histogram name="Enterprise.Policies.{PolicyLevel}" enum="EnterprisePolicies" - expires_after="2024-12-01"> + expires_after="2024-11-03"> <owner>zmin@chromium.org</owner> <owner>qiutanw@google.com</owner> <owner>chromeos-commercial-remote-management@google.com</owner> @@ -2647,7 +2647,7 @@ </histogram> <histogram name="Enterprise.PolicyUI.ButtonUsage.{ButtonType}" units="counts" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>zmin@chromium.org</owner> <owner>src/components/policy/OWNERS</owner> <summary> @@ -2715,7 +2715,7 @@ </histogram> <histogram name="Enterprise.ProfileIdentifier.Status" enum="Boolean" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>hmare@google.com</owner> <owner>cbe-device-trust-eng@google.com</owner> <summary> @@ -2725,7 +2725,7 @@ </histogram> <histogram name="Enterprise.ProfileSeparation.DasherPolicyFetch.HttpResponse" - enum="HttpResponseCode" expires_after="2024-09-01"> + enum="HttpResponseCode" expires_after="2024-11-03"> <owner>ydago@chromium.org</owner> <owner>zmin@chromium.org</owner> <summary> @@ -2748,7 +2748,7 @@ </histogram> <histogram name="Enterprise.PublicSession.SessionLength" units="minutes" - expires_after="2024-09-03"> + expires_after="2024-11-03"> <owner>bfranz@chromium.org</owner> <owner>chromeos-kiosk-eng@google.com</owner> <summary> @@ -2814,7 +2814,7 @@ </histogram> <histogram name="Enterprise.SafeSites.Latency" units="ms" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>ftirelo@chromium.org</owner> <owner>ljjlee@google.com</owner> <owner>cbe-eng@google.com</owner> @@ -2844,7 +2844,7 @@ <histogram name="Enterprise.SecondaryGoogleAccountUsage.PolicyFetch.Status" enum="SecondaryGoogleAccountUsagePolicyFetchStatus" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>rodmartin@google.com</owner> <owner>chromeos-commercial-identity@google.com</owner> <summary> @@ -3234,7 +3234,7 @@ </histogram> <histogram name="Enterprise.VpdUpdateStatus" units="units" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>igorcov@chromium.org</owner> <owner>tnagel@chromium.org</owner> <owner>chromeos-commercial-remote-management@google.com</owner> @@ -3324,7 +3324,7 @@ </histogram> <histogram name="EnterpriseCheck.InvalidPolicies" enum="EnterprisePolicies" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>pastarmovj@chromium.org</owner> <owner>ydago@chromium.org</owner> <summary> @@ -3335,7 +3335,7 @@ </histogram> <histogram name="EnterpriseCheck.InvalidPoliciesDetected" - units="disabled policies" expires_after="2024-09-01"> + units="disabled policies" expires_after="2024-11-03"> <owner>pastarmovj@chromium.org</owner> <owner>zmin@chomium.org</owner> <summary> @@ -3417,7 +3417,7 @@ </histogram> <histogram name="EnterpriseCheck.IsManaged2" enum="BooleanEnabled" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>zmin@chromium.org</owner> <owner>rogerta@chromium.org</owner> <owner>pastarmovj@chromium.org</owner> @@ -3430,7 +3430,7 @@ </histogram> <histogram name="EnterpriseCheck.IsManagedOrEnterpriseDevice" - enum="BooleanEnabled" expires_after="2024-09-01"> + enum="BooleanEnabled" expires_after="2024-11-03"> <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 e4c5244..821dcf4a 100644 --- a/tools/metrics/histograms/metadata/event/histograms.xml +++ b/tools/metrics/histograms/metadata/event/histograms.xml
@@ -72,7 +72,7 @@ <histogram name="Event.DownEventCount.PerInputFormFactorDestinationCombination2" enum="DownEventInputFormFactorDestinationCombination2" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>tbuckley@chromium.org</owner> <summary> The number of down events received per destination, input and form factor @@ -226,7 +226,7 @@ </histogram> <histogram name="Event.Jank.ScrollUpdate.TotalJankyAndNonJankyDuration2" - enum="JankyBoolean" expires_after="2024-09-01"> + enum="JankyBoolean" expires_after="2024-11-03"> <owner>nuskos@google.com</owner> <owner>woa-performance@google.com</owner> <summary> @@ -270,7 +270,7 @@ </histogram> <histogram name="Event.Latency.EndToEnd.KeyPress" units="microseconds" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>flackr@chromium.org</owner> <owner>input-dev@chromium.org</owner> <summary> @@ -290,7 +290,7 @@ </histogram> <histogram name="Event.Latency.EndToEnd.TouchpadPinch2" units="microseconds" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>nzolghadr@chromium.org</owner> <owner>input-dev@chromium.org</owner> <summary> @@ -410,7 +410,7 @@ </histogram> <histogram name="Event.Latency.ScrollBegin.Wheel.TimeToScrollUpdateSwapBegin4" - units="microseconds" expires_after="2024-09-01"> + units="microseconds" expires_after="2024-11-03"> <owner>flackr@chromium.org</owner> <summary> NOTE: This metric is deprecated in favor of @@ -433,7 +433,7 @@ </histogram> <histogram name="Event.Latency.ScrollJank" enum="Boolean" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>ddrone@google.com</owner> <owner>chrometto-team@google.com</owner> <summary> @@ -444,7 +444,7 @@ </histogram> <histogram name="Event.Latency.ScrollUpdate.JankyDuration" units="ms" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>ddrone@google.com</owner> <owner>chrometto-team@google.com</owner> <summary> @@ -455,7 +455,7 @@ </histogram> <histogram name="Event.Latency.ScrollUpdate.JankyDurationPercentage" units="%" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>ddrone@google.com</owner> <owner>chrometto-team@google.com</owner> <summary> @@ -465,7 +465,7 @@ </histogram> <histogram name="Event.Latency.ScrollUpdate.JankyEvents" units="counts" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>ddrone@google.com</owner> <owner>chrometto-team@google.com</owner> <summary> @@ -520,7 +520,7 @@ </histogram> <histogram name="Event.Latency.ScrollUpdate.TotalDuration" units="ms" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>ddrone@google.com</owner> <owner>chrometto-team@google.com</owner> <summary> @@ -649,7 +649,7 @@ </histogram> <histogram name="Event.Latency.ScrollUpdate.Wheel.TimeToScrollUpdateSwapBegin4" - units="microseconds" expires_after="2024-09-01"> + units="microseconds" expires_after="2024-11-03"> <owner>flackr@chromium.org</owner> <summary> NOTE: This metric is deprecated in favor of
diff --git a/tools/metrics/histograms/metadata/extensions/histograms.xml b/tools/metrics/histograms/metadata/extensions/histograms.xml index b00e10c9..0d16b12a 100644 --- a/tools/metrics/histograms/metadata/extensions/histograms.xml +++ b/tools/metrics/histograms/metadata/extensions/histograms.xml
@@ -205,7 +205,7 @@ </histogram> <histogram name="Extensions.AppLaunch" enum="AppLaunch" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>benwells@chromium.org</owner> <owner>dominickn@chromium.org</owner> <owner>tapted@chromium.org</owner> @@ -1367,7 +1367,7 @@ </histogram> <histogram name="Extensions.DisableReason2" enum="ExtensionDisableReason" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>rdevlin.cronin@chromium.org</owner> <owner>extensions-core@chromium.org</owner> <summary> @@ -2520,7 +2520,7 @@ </histogram> <histogram name="Extensions.Functions.ExtensionMV3Calls" - enum="ExtensionFunctions" expires_after="2024-09-01"> + enum="ExtensionFunctions" expires_after="2024-11-03"> <owner>tjudkins@chromium.org</owner> <owner>rdevlin.cronin@chromium.org</owner> <owner>extensions-core@chromium.org</owner> @@ -3707,7 +3707,7 @@ </histogram> <histogram name="Extensions.LoadType2" enum="ExtensionType" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>rdevlin.cronin@chromium.org</owner> <owner>extensions-core@chromium.org</owner> <summary> @@ -3938,7 +3938,7 @@ </summary> </histogram> -<histogram name="Extensions.NetworkDelay" units="ms" expires_after="2024-09-01"> +<histogram name="Extensions.NetworkDelay" units="ms" expires_after="2024-11-03"> <owner>rdevlin.cronin@chromium.org</owner> <owner>kelvinjiang@chromium.org</owner> <owner>src/extensions/OWNERS</owner> @@ -4234,7 +4234,7 @@ </histogram> <histogram name="Extensions.ProcessManagerStartupHostsTime2" units="ms" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>rdevlin.cronin@chromium.org</owner> <owner>extensions-core@chromium.org</owner> <summary> @@ -4636,7 +4636,7 @@ </histogram> <histogram name="Extensions.ServiceWorkerBackground.StartWorkerStatus" - enum="Boolean" expires_after="2024-09-01"> + enum="Boolean" expires_after="2024-11-03"> <owner>jlulejian@chromium.org</owner> <owner>extensions-core@chromium.org</owner> <summary> @@ -4646,7 +4646,7 @@ </histogram> <histogram name="Extensions.ServiceWorkerBackground.StartWorkerTime" units="ms" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>jlulejian@chromium.org</owner> <owner>extensions-core@chromium.org</owner> <summary> @@ -4657,7 +4657,7 @@ </histogram> <histogram name="Extensions.ServiceWorkerBackground.StartWorkerTime_Fail" - units="ms" expires_after="2024-09-01"> + units="ms" expires_after="2024-11-03"> <owner>jlulejian@chromium.org</owner> <owner>extensions-core@chromium.org</owner> <summary> @@ -4809,7 +4809,7 @@ </histogram> <histogram name="Extensions.Toolbar.InvocationSource" - enum="ExtensionActionInvocationSource" expires_after="2024-09-01"> + enum="ExtensionActionInvocationSource" expires_after="2024-11-03"> <owner>rdevlin.cronin@chromium.org</owner> <owner>extensions-core@chromium.org</owner> <summary> @@ -4882,7 +4882,7 @@ <histogram name="Extensions.WebRequest.BeforeRequestDeclarativeNetRequestEvaluationTimeInMicroseconds" - units="microseconds" expires_after="2024-09-01"> + units="microseconds" expires_after="2024-11-03"> <owner>rdevlin.cronin@chromium.org</owner> <owner>src/extensions/OWNERS</owner> <summary>
diff --git a/tools/metrics/histograms/metadata/families/histograms.xml b/tools/metrics/histograms/metadata/families/histograms.xml index 6b5660d..1a0da49 100644 --- a/tools/metrics/histograms/metadata/families/histograms.xml +++ b/tools/metrics/histograms/metadata/families/histograms.xml
@@ -39,7 +39,7 @@ </variants> <histogram name="AddSupervisionDialog.Enrollment" - enum="AddSupervisionEnrollment" expires_after="2024-09-01"> + enum="AddSupervisionEnrollment" expires_after="2024-11-03"> <owner>courtneywong@chromium.org</owner> <owner>cros-families-eng@google.com</owner> <summary> @@ -151,7 +151,7 @@ </histogram> <histogram name="ChromeOS.FamilyLinkUser.ParentAccess.FlowResult.{FlowType}" - enum="ParentAccessFlowResult" expires_after="2024-09-01"> + enum="ParentAccessFlowResult" expires_after="2024-11-03"> <owner>courtneywong@chromium.org</owner> <owner>cros-families-eng@google.com</owner> <summary> @@ -274,7 +274,7 @@ </histogram> <histogram name="FamilyLinkUser.LocalWebApprovalCompleteRequestTotalDuration" - units="ms" expires_after="2024-09-01"> + units="ms" expires_after="2024-11-03"> <owner>anthie@google.com</owner> <owner>ljjlee@google.com</owner> <owner>chrome-kids-eng@google.com</owner> @@ -288,7 +288,7 @@ </histogram> <histogram name="FamilyLinkUser.LocalWebApprovalOutcome" - enum="FamilyLinkUserLocalWebApprovalOutcome" expires_after="2024-09-01"> + enum="FamilyLinkUserLocalWebApprovalOutcome" expires_after="2024-11-03"> <owner>anthie@google.com</owner> <owner>ljjlee@google.com</owner> <owner>chrome-kids-eng@google.com</owner> @@ -300,7 +300,7 @@ </histogram> <histogram name="FamilyLinkUser.LocalWebApprovalResult" - enum="FamilyLinkUserLocalWebApprovalResult" expires_after="2024-09-01"> + enum="FamilyLinkUserLocalWebApprovalResult" expires_after="2024-11-03"> <owner>agawronska@chromium.org</owner> <owner>cros-families-eng@google.com</owner> <owner>chrome-kids-eng@google.com</owner> @@ -352,7 +352,7 @@ </histogram> <histogram name="FamilyUser.FamilyLinkUsersCount" units="Number of Users" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>agawronska@chromium.org</owner> <owner>cros-families-eng@google.com</owner> <summary> @@ -373,7 +373,7 @@ </histogram> <histogram name="FamilyUser.ManagedSiteList" enum="FamilyLinkManagedSiteList" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>agawronska@chromium.org</owner> <owner>cros-families-eng@google.com</owner> <summary> @@ -386,7 +386,7 @@ </histogram> <histogram name="FamilyUser.ManagedSiteList.Conflict" enum="BooleanHasConflict" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>msalama@chromium.org</owner> <owner>chrome-kids-eng@google.com</owner> <owner>cros-families-eng@google.com</owner> @@ -409,7 +409,7 @@ </histogram> <histogram name="FamilyUser.ManagedSiteListCount.Approved" - units="Number of approved sites" expires_after="2024-09-01"> + units="Number of approved sites" expires_after="2024-11-03"> <owner>agawronska@chromium.org</owner> <owner>cros-families-eng@google.com</owner> <summary> @@ -421,7 +421,7 @@ </histogram> <histogram name="FamilyUser.ManagedSiteListCount.Blocked" - units="Number of blocked sites" expires_after="2024-09-01"> + units="Number of blocked sites" expires_after="2024-11-03"> <owner>agawronska@chromium.org</owner> <owner>cros-families-eng@google.com</owner> <summary> @@ -503,7 +503,7 @@ </histogram> <histogram name="FamilyUser.WebFilterType" enum="FamilyLinkWebFilterType" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>agawronska@chromium.org</owner> <owner>cros-families-eng@google.com</owner> <summary> @@ -535,7 +535,7 @@ </histogram> <histogram name="FamilyUser.{AppType}AppsCount2" units="Number of Apps" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>courtneywong@chromium.org</owner> <owner>cros-families-eng@google.com</owner> <summary> @@ -558,7 +558,7 @@ </histogram> <histogram name="FamilyUser.{ExtensionStatus}ExtensionsCount2" - units="Number of Extensions" expires_after="2024-09-01"> + units="Number of Extensions" expires_after="2024-11-03"> <owner>courtneywong@chromium.org</owner> <owner>cros-families-eng@google.com</owner> <summary> @@ -573,14 +573,14 @@ </histogram> <histogram name="ManagedMode.BlockingInterstitialCommand" - enum="ManagedModeBlockingCommand" expires_after="2024-09-01"> + enum="ManagedModeBlockingCommand" expires_after="2024-11-03"> <owner>agawronska@google.com</owner> <owner>cros-families-eng@google.com</owner> <summary>Which command was selected from the blocking interstitial.</summary> </histogram> <histogram name="ManagedUsers.BlockedIframeCount" units="iframes" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>agawronska@chromium.org</owner> <owner>cros-families-eng@google.com</owner> <summary> @@ -590,7 +590,7 @@ </histogram> <histogram name="ManagedUsers.FilteringResult" - enum="SupervisedUserSafetyFilterResult" expires_after="2024-09-01"> + enum="SupervisedUserSafetyFilterResult" expires_after="2024-11-03"> <owner>agawronska@chromium.org</owner> <owner>cros-families-eng@google.com</owner> <summary> @@ -623,7 +623,7 @@ </histogram> <histogram name="SupervisedUsers.ExtensionEnablement" - enum="SupervisedUserExtensionEnablement" expires_after="2024-09-01"> + enum="SupervisedUserExtensionEnablement" expires_after="2024-11-03"> <owner>courtneywong@chromium.org</owner> <owner>agawronska@chromium.org</owner> <owner>cros-families-eng@google.com</owner> @@ -666,7 +666,7 @@ </histogram> <histogram name="SupervisedUsers.ExtensionsMayRequestPermissions" - enum="BooleanEnabled" expires_after="2024-09-01"> + enum="BooleanEnabled" expires_after="2024-11-03"> <owner>courtneywong@chromium.org</owner> <owner>cros-families-eng@google.com</owner> <summary> @@ -795,7 +795,7 @@ </histogram> <histogram name="{RequestType}.AuthError" enum="GoogleServiceAuthError" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>ljjlee@google.com</owner> <owner>chrome-kids-eng@google.com</owner> <summary> @@ -806,7 +806,7 @@ </histogram> <histogram name="{RequestType}.HttpStatusOrNetError" - enum="CombinedHttpResponseAndNetErrorCode" expires_after="2024-09-01"> + enum="CombinedHttpResponseAndNetErrorCode" expires_after="2024-11-03"> <owner>tju@google.com</owner> <owner>chrome-kids-eng@google.com</owner> <summary>
diff --git a/tools/metrics/histograms/metadata/feature_engagement/histograms.xml b/tools/metrics/histograms/metadata/feature_engagement/histograms.xml index 8d00a81..db7202b9 100644 --- a/tools/metrics/histograms/metadata/feature_engagement/histograms.xml +++ b/tools/metrics/histograms/metadata/feature_engagement/histograms.xml
@@ -547,7 +547,7 @@ </histogram> <histogram name="InProductHelp.Db.Init.{IPHDatabase}" enum="BooleanSuccess" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>nyquist@chromium.org</owner> <summary> Records if {IPHDatabase} database initialization succeeds for in-product @@ -567,7 +567,7 @@ </histogram> <histogram name="InProductHelp.Db.TotalEvents" units="events" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>nyquist@chromium.org</owner> <summary> Records the total number of event records in the database for in-product @@ -576,7 +576,7 @@ </histogram> <histogram name="InProductHelp.Db.Update.{IPHDatabase}" enum="BooleanSuccess" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>nyquist@chromium.org</owner> <summary> Records if {IPHDatabase} database update succeeds for in-product help. @@ -604,7 +604,7 @@ </histogram> <histogram name="InProductHelp.NotifyEventReadyState.{IPHFeature}" - enum="BooleanSuccess" expires_after="2024-09-01"> + enum="BooleanSuccess" expires_after="2024-11-03"> <owner>nyquist@chromium.org</owner> <summary> Records if the model is ready when in-product help event happens for @@ -614,7 +614,7 @@ </histogram> <histogram name="InProductHelp.ShouldTriggerHelpUI.{IPHFeature}" - enum="TriggerHelpUIResult" expires_after="2024-09-01"> + enum="TriggerHelpUIResult" expires_after="2024-11-03"> <owner>nyquist@chromium.org</owner> <summary> Records if in-product help for {IPHFeature} is shown to the user, and the @@ -678,7 +678,7 @@ --> <histogram name="UserEducation.MessageAction.{IPHFeature}" enum="MessageAction" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>mickeyburks@chromium.org</owner> <owner>frizzle-team@google.com</owner> <summary>Records what action was taken to close the In-Product Help.</summary>
diff --git a/tools/metrics/histograms/metadata/file/histograms.xml b/tools/metrics/histograms/metadata/file/histograms.xml index 33730ad..dcd4146 100644 --- a/tools/metrics/histograms/metadata/file/histograms.xml +++ b/tools/metrics/histograms/metadata/file/histograms.xml
@@ -299,7 +299,7 @@ </histogram> <histogram name="FileBrowser.DirectoryListLoad.{RootType}.{NumFiles}" - units="ms" expires_after="2024-09-01"> + units="ms" expires_after="2024-11-03"> <owner>simmonsjosh@google.com</owner> <owner>src/ui/file_manager/OWNERS</owner> <summary> @@ -322,7 +322,7 @@ </histogram> <histogram name="FileBrowser.DirectoryScan" units="ms" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>simmonsjosh@google.com</owner> <owner>src/ui/file_manager/OWNERS</owner> <summary> @@ -394,7 +394,7 @@ </histogram> <histogram name="FileBrowser.Downloads.DirectoryPercentageOfDiskUsage" - units="%" expires_after="2024-09-01"> + units="%" expires_after="2024-11-03"> <owner>simmonsjosh@google.com</owner> <owner>src/ui/file_manager/OWNERS</owner> <summary> @@ -405,7 +405,7 @@ </histogram> <histogram name="FileBrowser.Downloads.DirectorySizeMiB" units="MiB" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>simmonsjosh@google.com</owner> <owner>src/ui/file_manager/OWNERS</owner> <summary> @@ -427,7 +427,7 @@ </histogram> <histogram name="FileBrowser.DriveHostedFilePinSuccess" enum="BooleanSuccess" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>austinct@chromium.org</owner> <owner>src/ui/file_manager/OWNERS</owner> <summary>Tracks success rate of pinning hosted files in Drive.</summary> @@ -435,7 +435,7 @@ <histogram name="FileBrowser.DriveOfflineHostedCount.{OpenIsAvailable}.AvailablePercent" - units="%" expires_after="2024-09-01"> + units="%" expires_after="2024-11-03"> <owner>joelhockey@google.com</owner> <owner>src/ui/file_manager/OWNERS</owner> <summary> @@ -450,7 +450,7 @@ <histogram name="FileBrowser.DriveOfflineHostedCount.{OpenIsAvailable}.{DocsOfflineCounts}" - units="Files" expires_after="2024-09-01"> + units="Files" expires_after="2024-11-03"> <owner>joelhockey@google.com</owner> <owner>src/ui/file_manager/OWNERS</owner> <summary> @@ -473,7 +473,7 @@ </histogram> <histogram name="FileBrowser.DriveOfflineOpen.{OpenIsAvailable}" - enum="ViewFileType" expires_after="2024-09-01"> + enum="ViewFileType" expires_after="2024-11-03"> <owner>joelhockey@google.com</owner> <owner>src/ui/file_manager/OWNERS</owner> <summary> @@ -487,7 +487,7 @@ </histogram> <histogram name="FileBrowser.DrivePinSuccess" enum="BooleanSuccess" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>austinct@chromium.org</owner> <owner>src/ui/file_manager/OWNERS</owner> <summary>Tracks success rate of pinning files in Drive.</summary> @@ -501,7 +501,7 @@ </histogram> <histogram name="FileBrowser.FileSystemProviderMounted" - enum="FileSystemProviderMountType" expires_after="2024-09-01"> + enum="FileSystemProviderMountType" expires_after="2024-11-03"> <owner>simmonsjosh@google.com</owner> <owner>src/ui/file_manager/OWNERS</owner> <summary> @@ -521,7 +521,7 @@ </histogram> <histogram name="FileBrowser.FolderShortcut.Count" units="Shortcuts" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>simmonsjosh@google.com</owner> <owner>src/ui/file_manager/OWNERS</owner> <summary> @@ -551,7 +551,7 @@ </histogram> <histogram name="FileBrowser.FormatFileSystemType" - enum="FileManagerFormatFileSystemType" expires_after="2024-09-01"> + enum="FileManagerFormatFileSystemType" expires_after="2024-11-03"> <owner>austinct@chromium.org</owner> <owner>src/ui/file_manager/OWNERS</owner> <summary> @@ -626,7 +626,7 @@ <histogram name="FileBrowser.GoogleDrive.BulkPinning.Enabled.Source" enum="FileManagerGoogleDriveBulkPinningEnabledSource" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>joelhockey@google.com</owner> <owner>src/ui/file_manager/OWNERS</owner> <summary> @@ -797,7 +797,7 @@ </histogram> <histogram name="FileBrowser.Load{FileBrowserLoad}" units="ms" - expires_after="2024-08-30"> + expires_after="2024-11-03"> <owner>simmonsjosh@google.com</owner> <owner>src/ui/file_manager/OWNERS</owner> <summary> @@ -836,7 +836,7 @@ </histogram> <histogram name="FileBrowser.Location.OnEntryExpandedOrCollapsed.NonTopLevel" - enum="FileManagerRootType" expires_after="2024-09-01"> + enum="FileManagerRootType" expires_after="2024-11-03"> <owner>simmonsjosh@google.com</owner> <owner>src/ui/file_manager/OWNERS</owner> <summary> @@ -847,7 +847,7 @@ </histogram> <histogram name="FileBrowser.Location.OnEntryExpandedOrCollapsed.TopLevel" - enum="FileManagerRootType" expires_after="2024-09-01"> + enum="FileManagerRootType" expires_after="2024-11-03"> <owner>simmonsjosh@google.com</owner> <owner>src/ui/file_manager/OWNERS</owner> <summary> @@ -858,7 +858,7 @@ </histogram> <histogram name="FileBrowser.Location.OnEntrySelected.NonTopLevel" - enum="FileManagerRootType" expires_after="2024-09-01"> + enum="FileManagerRootType" expires_after="2024-11-03"> <owner>simmonsjosh@google.com</owner> <owner>src/ui/file_manager/OWNERS</owner> <summary> @@ -869,7 +869,7 @@ </histogram> <histogram name="FileBrowser.Location.OnEntrySelected.TopLevel" - enum="FileManagerRootType" expires_after="2024-09-01"> + enum="FileManagerRootType" expires_after="2024-11-03"> <owner>simmonsjosh@google.com</owner> <owner>src/ui/file_manager/OWNERS</owner> <summary> @@ -880,7 +880,7 @@ </histogram> <histogram name="FileBrowser.MenuItemSelected" enum="FileManagerMenuCommands" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>simmonsjosh@google.com</owner> <owner>src/ui/file_manager/OWNERS</owner> <summary> @@ -1430,7 +1430,7 @@ </histogram> <histogram name="FileBrowser.OpenFiles.RootType" enum="FileManagerRootType" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>simmonsjosh@google.com</owner> <owner>src/ui/file_manager/OWNERS</owner> <summary> @@ -1440,7 +1440,7 @@ </histogram> <histogram name="FileBrowser.QuickView.DialogType" enum="FileDialogType" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>simmonsjosh@google.com</owner> <owner>src/ui/file_manager/OWNERS</owner> <summary> @@ -1449,7 +1449,7 @@ </histogram> <histogram name="FileBrowser.QuickView.FileType" enum="ViewFileType" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>simmonsjosh@google.com</owner> <owner>src/ui/file_manager/OWNERS</owner> <summary>File types that were tried to be opened with quick view.</summary> @@ -1463,7 +1463,7 @@ </histogram> <histogram name="FileBrowser.QuickView.VolumeType" enum="FileManagerVolumeType" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>simmonsjosh@google.com</owner> <owner>src/ui/file_manager/OWNERS</owner> <summary>The volume type where quick view is opened.</summary> @@ -1477,7 +1477,7 @@ </histogram> <histogram name="FileBrowser.Recent.FilterByType" - enum="FileManagerRecentFilterType" expires_after="2024-09-01"> + enum="FileManagerRecentFilterType" expires_after="2024-11-03"> <owner>simmonsjosh@google.com</owner> <owner>src/ui/file_manager/OWNERS</owner> <summary> @@ -1566,7 +1566,7 @@ </histogram> <histogram name="FileBrowser.Search.{Source}.Latency" units="ms" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>simmonsjosh@google.com</owner> <owner>src/ui/file_manager/OWNERS</owner> <summary> @@ -1582,7 +1582,7 @@ </histogram> <histogram name="FileBrowser.SWA.Create" enum="FileDialogType" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>simmonsjosh@google.com</owner> <owner>src/ui/file_manager/OWNERS</owner> <summary> @@ -1591,7 +1591,7 @@ </histogram> <histogram name="FileBrowser.TeamDrivesCount" units="Team Drives" - expires_after="2024-08-30"> + expires_after="2024-11-03"> <owner>simmonsjosh@google.com</owner> <owner>src/ui/file_manager/OWNERS</owner> <summary> @@ -1718,7 +1718,7 @@ </histogram> <histogram name="FileBrowser.ViewingRootType" enum="FileManagerRootType" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>simmonsjosh@google.com</owner> <owner>src/ui/file_manager/OWNERS</owner> <summary> @@ -1728,7 +1728,7 @@ </histogram> <histogram name="FileBrowser.ViewingRootType.Offline" - enum="FileManagerRootType" expires_after="2024-09-01"> + enum="FileManagerRootType" expires_after="2024-11-03"> <owner>simmonsjosh@google.com</owner> <owner>src/ui/file_manager/OWNERS</owner> <summary> @@ -1739,7 +1739,7 @@ </histogram> <histogram name="FileBrowser.ViewingRootType.Online" enum="FileManagerRootType" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>simmonsjosh@google.com</owner> <owner>src/ui/file_manager/OWNERS</owner> <summary> @@ -1750,7 +1750,7 @@ </histogram> <histogram name="FileBrowser.ViewingTaskType" enum="FileManagerTaskType" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>simmonsjosh@google.com</owner> <owner>src/ui/file_manager/OWNERS</owner> <summary> @@ -1760,7 +1760,7 @@ </histogram> <histogram name="FileBrowser.ViewingTaskType.Offline" - enum="FileManagerTaskType" expires_after="2024-09-01"> + enum="FileManagerTaskType" expires_after="2024-11-03"> <owner>simmonsjosh@google.com</owner> <owner>src/ui/file_manager/OWNERS</owner> <summary> @@ -1771,7 +1771,7 @@ </histogram> <histogram name="FileBrowser.ViewingTaskType.Online" enum="FileManagerTaskType" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>simmonsjosh@google.com</owner> <owner>src/ui/file_manager/OWNERS</owner> <summary> @@ -1795,7 +1795,7 @@ </histogram> <histogram name="FileBrowser.VolumeType" enum="FileManagerVolumeType" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>simmonsjosh@google.com</owner> <owner>src/ui/file_manager/OWNERS</owner> <summary> @@ -1866,7 +1866,7 @@ </histogram> <histogram name="ZipFileCreator.Result" enum="ZipFileCreator.Result" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>simmonsjosh@google.com</owner> <owner>src/ui/file_manager/OWNERS</owner> <summary>
diff --git a/tools/metrics/histograms/metadata/fingerprint/histograms.xml b/tools/metrics/histograms/metadata/fingerprint/histograms.xml index 166f11e..cc402db 100644 --- a/tools/metrics/histograms/metadata/fingerprint/histograms.xml +++ b/tools/metrics/histograms/metadata/fingerprint/histograms.xml
@@ -291,7 +291,7 @@ </histogram> <histogram name="Fingerprint.Unlock.RecordFormatVersion" - enum="FingerprintRecordFormatVersion" expires_after="2024-09-01"> + enum="FingerprintRecordFormatVersion" expires_after="2024-11-03"> <owner>hesling@chromium.org</owner> <owner>chromeos-fingerprint@google.com</owner> <summary>
diff --git a/tools/metrics/histograms/metadata/game_mode/histograms.xml b/tools/metrics/histograms/metadata/game_mode/histograms.xml index a12cdf9..fe20ada4 100644 --- a/tools/metrics/histograms/metadata/game_mode/histograms.xml +++ b/tools/metrics/histograms/metadata/game_mode/histograms.xml
@@ -9,7 +9,7 @@ <histograms> <histogram name="GameMode.Result.Borealis" enum="GameModeResult" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>philpearson@google.com</owner> <owner>src/chrome/browser/ash/game_mode/OWNERS</owner> <summary>
diff --git a/tools/metrics/histograms/metadata/gcm/histograms.xml b/tools/metrics/histograms/metadata/gcm/histograms.xml index 1f567979..fa5d4d2 100644 --- a/tools/metrics/histograms/metadata/gcm/histograms.xml +++ b/tools/metrics/histograms/metadata/gcm/histograms.xml
@@ -102,7 +102,7 @@ </histogram> <histogram name="GCM.DeliveredToAppHandler{AppHandler}" enum="BooleanDelivered" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>peter@chromium.org</owner> <owner>rushans@google.com</owner> <summary> @@ -182,7 +182,7 @@ </histogram> <histogram name="GCM.SendWebPushMessageResult" enum="SendWebPushMessageResult" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <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 a5b4923..d538af7f 100644 --- a/tools/metrics/histograms/metadata/geolocation/histograms.xml +++ b/tools/metrics/histograms/metadata/geolocation/histograms.xml
@@ -43,7 +43,7 @@ </histogram> <histogram name="Geolocation.NetworkLocationRequest.Event" - enum="NetworkLocationRequestEvent" expires_after="2024-09-01"> + enum="NetworkLocationRequestEvent" expires_after="2024-11-03"> <owner>mattreynolds@chromium.org</owner> <owner>device-dev@chromium.org</owner> <summary> @@ -66,7 +66,7 @@ </histogram> <histogram name="Geolocation.NetworkLocationRequest.ResponseCode" - enum="HttpResponseCode" expires_after="2024-09-01"> + enum="HttpResponseCode" expires_after="2024-11-03"> <owner>mattreynolds@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 8a4382a7..7f38a05 100644 --- a/tools/metrics/histograms/metadata/gpu/histograms.xml +++ b/tools/metrics/histograms/metadata/gpu/histograms.xml
@@ -345,14 +345,14 @@ </histogram> <histogram name="GPU.ANGLE.D3DShaderBlobSizeKB" units="KB" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>geofflang@chromium.org</owner> <owner>angle-team@google.com</owner> <summary>The size of compiled D3D shader bytecode.</summary> </histogram> <histogram name="GPU.ANGLE.D3DShaderCompilationTimeUs" units="microseconds" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>geofflang@chromium.org</owner> <owner>angle-team@google.com</owner> <summary> @@ -383,7 +383,7 @@ </histogram> <histogram name="GPU.ANGLE.MetalShaderCompilationTimeUs" units="microseconds" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>geofflang@chromium.org</owner> <owner>angle-team@google.com</owner> <summary> @@ -455,7 +455,7 @@ </histogram> <histogram name="GPU.BlocklistFeatureTestResults.{GPUBlocklistPerFeature}" - enum="GPUBlocklistFeatureTestResults" expires_after="2024-09-01"> + enum="GPUBlocklistFeatureTestResults" expires_after="2024-11-03"> <owner>vmiura@chromium.org</owner> <owner>graphics-dev@chromium.org</owner> <summary> @@ -473,7 +473,7 @@ </histogram> <histogram name="GPU.BlocklistTestResultsPerEntry" - enum="GPUBlocklistTestResultPerEntry" expires_after="2024-09-01"> + enum="GPUBlocklistTestResultPerEntry" expires_after="2024-11-03"> <owner>vmiura@chromium.org</owner> <owner>graphics-dev@chromium.org</owner> <summary> @@ -546,7 +546,7 @@ </histogram> <histogram name="GPU.D3D11FeatureLevel" enum="D3D11FeatureLevel" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>zmo@chromium.org</owner> <owner>graphics-dev@chromium.org</owner> <summary> @@ -556,7 +556,7 @@ </histogram> <histogram name="GPU.D3D12FeatureLevel" enum="D3D12FeatureLevel" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>magchen@chromium.org</owner> <owner>zmo@chromium.org</owner> <summary> @@ -566,7 +566,7 @@ </histogram> <histogram name="GPU.D3D12HighestShaderModel2" enum="D3DShaderModel" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>magchen@chromium.org</owner> <owner>zmo@chromium.org</owner> <owner>amaiorano@google.com</owner> @@ -636,7 +636,7 @@ <histogram base="true" name="GPU.DirectComposition.DCLayerResult.Video.{GPUProtectedVideoType}" - enum="DCLayerResult" expires_after="2024-09-01"> + enum="DCLayerResult" expires_after="2024-11-03"> <owner>magchen@chromium.org</owner> <owner>zmo@chromium.org</owner> <owner>graphics-dev@chromium.org</owner> @@ -649,7 +649,7 @@ <histogram name="GPU.DirectComposition.DCLayerResult.{OverlayProcessingQuadType}" - enum="DCLayerResult" expires_after="2024-09-01"> + enum="DCLayerResult" expires_after="2024-11-03"> <owner>sunnyps@chromium.org</owner> <owner>zmo@chromium.org</owner> <owner>graphics-dev@chromium.org</owner> @@ -670,7 +670,7 @@ </histogram> <histogram name="GPU.DirectComposition.DcompDeviceCreateSurface" enum="Hresult" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>magchen@chromium.org</owner> <owner>zmo@chromium.org</owner> <owner>graphics-dev@chromium.org</owner> @@ -801,7 +801,7 @@ </histogram> <histogram name="GPU.EnsureWorkVisibleDuration" units="microseconds" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>alemate@chromium.org</owner> <owner>magchen@chromium.org</owner> <owner>oshima@chromium.org</owner> @@ -820,7 +820,7 @@ </histogram> <histogram name="GPU.EnsureWorkVisibleDurationLowRes" units="ms" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>alemate@chromium.org</owner> <owner>magchen@chromium.org</owner> <owner>oshima@chromium.org</owner> @@ -852,7 +852,7 @@ </histogram> <histogram name="GPU.EstablishGpuChannelSyncTime" units="ms" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>cduvall@chromium.org</owner> <owner>jam@chromium.org</owner> <summary> @@ -901,7 +901,7 @@ </histogram> <histogram name="GPU.GPUInitializationTime.V4" units="ms" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>magchen@chromium.org</owner> <owner>zmo@chromium.org</owner> <owner>graphics-dev@chromium.org</owner> @@ -1030,7 +1030,7 @@ </histogram> <histogram name="GPU.IOSurface.CATransactionTimeUs" units="microseconds" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>magchen@chromium.org</owner> <owner>ccameron@chromium.org</owner> <summary> @@ -1041,7 +1041,7 @@ </histogram> <histogram name="Gpu.Mac.BackpressureUs" units="microseconds" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>magchen@chromium.org</owner> <owner>ccameron@chromium.org</owner> <summary> @@ -1086,7 +1086,7 @@ </histogram> <histogram name="Gpu.MetalShaderCache.WaitTime" units="microseconds" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>sky@chromium.org</owner> <owner>angle-team@google.com</owner> <summary> @@ -1158,7 +1158,7 @@ </summary> </histogram> -<histogram name="GPU.Output.HDR" enum="Boolean" expires_after="2024-09-01"> +<histogram name="GPU.Output.HDR" enum="Boolean" expires_after="2024-11-03"> <owner>hubbe@chromium.org</owner> <owner>cassew@chromium.org</owner> <owner>media-dev-uma@chromium.org</owner> @@ -1170,7 +1170,7 @@ </histogram> <histogram name="Gpu.OutputSurface.ScheduleOverlaysUs" units="microseconds" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>magchen@chromium.org</owner> <owner>ccameron@chromium.org</owner> <summary> @@ -1249,7 +1249,7 @@ </histogram> <histogram name="Gpu.Rasterization.Raster.MSAASampleCountLog2" units="count" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>penghuang@chromium.org</owner> <owner>graphics-dev@chromium.org</owner> <summary> @@ -1319,7 +1319,7 @@ </histogram> <histogram name="GPU.SharedImage.FormatPixmapSupport" - enum="FormatPixmapSupport" expires_after="2024-09-01"> + enum="FormatPixmapSupport" expires_after="2024-11-03"> <owner>vasilyt@chromium.org</owner> <owner>hitawala@chromium.org</owner> <summary> @@ -1332,7 +1332,7 @@ </histogram> <histogram name="GPU.SharedImage.IsNewMultiplanarFormat" enum="Boolean" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>hitawala@chromium.org</owner> <owner>vasilyt@chromium.org</owner> <summary> @@ -1553,7 +1553,7 @@ </histogram> <histogram name="GPU.{GraphiteDawnOrWebGPU}.Create{Module}Success" - enum="Boolean" expires_after="2024-09-01"> + enum="Boolean" expires_after="2024-11-03"> <owner>enga@chromium.org</owner> <owner>mdb.webgpu-dev-team@google.com</owner> <summary> @@ -1565,7 +1565,7 @@ </histogram> <histogram name="GPU.{GraphiteDawnOrWebGPU}.Create{Module}US" - units="microseconds" expires_after="2024-09-01"> + units="microseconds" expires_after="2024-11-03"> <owner>enga@chromium.org</owner> <owner>mdb.webgpu-dev-team@google.com</owner> <summary> @@ -1578,7 +1578,7 @@ </histogram> <histogram name="GPU.{GraphiteDawnOrWebGPU}.HasGpuAdapter" enum="Boolean" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>cduvall@chromium.org</owner> <owner>mdb.webgpu-dev-team@google.com</owner> <summary> @@ -1590,7 +1590,7 @@ <histogram name="GPU.{GraphiteDawnOrWebGPU}.MaxStorageBufferBindingSize.{AdapterType}" - units="MB" expires_after="2024-09-01"> + units="MB" expires_after="2024-11-03"> <owner>cduvall@chromium.org</owner> <owner>mdb.webgpu-dev-team@google.com</owner> <summary> @@ -1603,7 +1603,7 @@ <histogram name="GPU.{GraphiteDawnOrWebGPU}.MaxTextureDimension2D.{AdapterType}" - units="dimensions" expires_after="2024-09-01"> + units="dimensions" expires_after="2024-11-03"> <owner>cduvall@chromium.org</owner> <owner>mdb.webgpu-dev-team@google.com</owner> <summary> @@ -1615,7 +1615,7 @@ </histogram> <histogram name="GPU.{GraphiteDawnOrWebGPU}.Support" enum="WebGPUSupport" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>cwallez@google.com</owner> <owner>enga@google.com</owner> <owner>kainino@google.com</owner> @@ -1753,7 +1753,7 @@ </histogram> <histogram name="Viz.DelegatedCompositing.Status" enum="DelegatedStatus" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>petermcneeley@chromium.org</owner> <owner>graphics-dev@chromium.org</owner> <summary> @@ -1787,7 +1787,7 @@ </histogram> <histogram name="Viz.DisplayCompositor.OverlayStrategy" - enum="OverlayStrategies" expires_after="2024-09-01"> + enum="OverlayStrategies" expires_after="2024-11-03"> <owner>khaslett@chromium.org</owner> <owner>kylechar@chromium.org</owner> <owner>graphics-dev@chromium.org</owner> @@ -1799,7 +1799,7 @@ </histogram> <histogram name="Viz.DisplayCompositor.OverlaySwitchInterval" units="ms" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>petermcneeley@chromium.org</owner> <owner>khaslett@chromium.org</owner> <owner>graphics-dev@chromium.org</owner>
diff --git a/tools/metrics/histograms/metadata/help_app/histograms.xml b/tools/metrics/histograms/metadata/help_app/histograms.xml index 20d85c0b..a335a6a 100644 --- a/tools/metrics/histograms/metadata/help_app/histograms.xml +++ b/tools/metrics/histograms/metadata/help_app/histograms.xml
@@ -61,7 +61,7 @@ </histogram> <histogram name="Discover.SearchHandler.SearchAvailableTime" units="ms" - expires_after="2024-07-28"> + expires_after="2024-11-03"> <owner>chenjih@google.com</owner> <owner>tby@chromium.org</owner> <owner>showoff-eng@google.com</owner>
diff --git a/tools/metrics/histograms/metadata/history/histograms.xml b/tools/metrics/histograms/metadata/history/histograms.xml index 34b1a0b..388599a 100644 --- a/tools/metrics/histograms/metadata/history/histograms.xml +++ b/tools/metrics/histograms/metadata/history/histograms.xml
@@ -81,7 +81,7 @@ </histogram> <histogram name="History.BrowsingDataLifetime.Duration.BrowserShutdownDeletion" - units="ms" expires_after="2024-09-01"> + units="ms" expires_after="2024-11-03"> <owner>ydago@chromium.org</owner> <owner>dullweber@chromium.org</owner> <component>1456716</component> @@ -109,7 +109,7 @@ </histogram> <histogram name="History.ClearBrowsingData.Duration.ChromeTask.{Task}" - units="ms" expires_after="2024-09-01"> + units="ms" expires_after="2024-11-03"> <owner>dullweber@chromium.org</owner> <owner>msramek@chromium.org</owner> <component>1456716</component> @@ -233,7 +233,7 @@ </histogram> <histogram name="History.ClearBrowsingData.Duration.Task.{Task}" units="ms" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>dullweber@chromium.org</owner> <owner>msramek@chromium.org</owner> <component>1456716</component> @@ -444,7 +444,7 @@ </histogram> <histogram name="History.Clusters.Actions.FinalState.WasSuccessful" - enum="BooleanSuccess" expires_after="2024-09-01"> + enum="BooleanSuccess" expires_after="2024-11-03"> <owner>mcrouse@chromium.org</owner> <owner>chrome-journeys@google.com</owner> <component>1457319</component> @@ -457,7 +457,7 @@ </histogram> <histogram name="History.Clusters.Actions.InitialState" - enum="HistoryClustersInitialState" expires_after="2024-09-01"> + enum="HistoryClustersInitialState" expires_after="2024-11-03"> <owner>mcrouse@chromium.org</owner> <owner>chrome-journeys@google.com</owner> <component>1457319</component> @@ -482,7 +482,7 @@ </histogram> <histogram name="History.Clusters.Actions.NumQueries" - units="number queries made" expires_after="2024-09-01"> + units="number queries made" expires_after="2024-11-03"> <owner>mcrouse@chromium.org</owner> <owner>chrome-journeys@google.com</owner> <component>1457319</component> @@ -565,7 +565,7 @@ </histogram> <histogram name="History.Clusters.Backend.ContextClusterer.ThreadTime" - units="ms" expires_after="2024-09-01"> + units="ms" expires_after="2024-11-03"> <owner>sophiechang@chromium.org</owner> <owner>chrome-journeys@google.com</owner> <component>1457319</component> @@ -730,7 +730,7 @@ </histogram> <histogram name="History.Clusters.Backend.KeywordCache.AllKeywordsCount" - units="count" expires_after="2024-09-01"> + units="count" expires_after="2024-11-03"> <owner>manukh@chromium.org</owner> <owner>chrome-journeys@google.com</owner> <component>1457319</component> @@ -745,7 +745,7 @@ </histogram> <histogram name="History.Clusters.Backend.KeywordCache.ShortKeywordsCount" - units="count" expires_after="2024-09-01"> + units="count" expires_after="2024-11-03"> <owner>manukh@chromium.org</owner> <owner>chrome-journeys@google.com</owner> <component>1457319</component> @@ -775,7 +775,7 @@ </histogram> <histogram name="History.Clusters.Backend.NumVisitsBelowFold" - units="number visits" expires_after="2024-09-01"> + units="number visits" expires_after="2024-11-03"> <owner>sophiechang@chromium.org</owner> <owner>chrome-journeys@google.com</owner> <component>1457319</component> @@ -812,7 +812,7 @@ </histogram> <histogram name="History.Clusters.Backend.ProcessBatchOfVisits.ThreadTime" - units="ms" expires_after="2024-09-01"> + units="ms" expires_after="2024-11-03"> <owner>sophiechang@chromium.org</owner> <owner>chrome-journeys@google.com</owner> <component>1457319</component> @@ -828,7 +828,7 @@ </histogram> <histogram name="History.Clusters.Backend.QueryAnnotatedVisits.ThreadTime" - units="ms" expires_after="2024-09-01"> + units="ms" expires_after="2024-11-03"> <owner>sophiechang@chromium.org</owner> <owner>chrome-journeys@google.com</owner> <component>1457319</component> @@ -1191,7 +1191,7 @@ </histogram> <histogram name="History.Clusters.JourneysEligibleAndEnabledAtSessionStart" - enum="BooleanEnabled" expires_after="2024-09-01"> + enum="BooleanEnabled" expires_after="2024-11-03"> <owner>sophiechang@chromium.org</owner> <owner>chrome-journeys@google.com</owner> <component>1457319</component> @@ -1202,7 +1202,7 @@ </histogram> <histogram name="History.Clusters.KeywordCache.Latency" units="ms" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>tommycli@chromium.org</owner> <owner>chrome-journeys@google.com</owner> <component>1457319</component> @@ -1240,7 +1240,7 @@ </histogram> <histogram name="History.Clusters.KeywordCache.ThreadTime" units="ms" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>tommycli@chromium.org</owner> <owner>chrome-journeys@google.com</owner> <component>1457319</component> @@ -1271,7 +1271,7 @@ </histogram> <histogram name="History.Clusters.ProcessClustersDuration" units="ms" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>olivierli@chromium.org</owner> <owner>tommycli@chromium.org</owner> <component>1457319</component> @@ -1293,7 +1293,7 @@ </histogram> <histogram name="History.Clusters.ServiceLatency" units="ms" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>tommycli@chromium.org</owner> <owner>chrome-journeys@google.com</owner> <component>1457319</component> @@ -1419,7 +1419,7 @@ </histogram> <histogram name="History.Clusters.WebUISessionDuration" units="ms" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>tommycli@chromium.org</owner> <owner>chrome-journeys@google.com</owner> <component>1457319</component> @@ -1633,7 +1633,7 @@ </histogram> <histogram name="History.DomainCount28Day_V3" units="domains" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>mpearson@chromium.org</owner> <owner>mjzhang@chromium.org</owner> <owner>chrome-analysis-team@google.com</owner> @@ -1711,7 +1711,7 @@ </histogram> <histogram name="History.DomainCount7Day_V3" units="domains" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>mpearson@chromium.org</owner> <owner>mjzhang@chromium.org</owner> <owner>chrome-analysis-team@google.com</owner> @@ -2034,7 +2034,7 @@ </histogram> <histogram name="History.HistoryPageView" enum="HistoryPageView" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>calamity@chromium.org</owner> <owner>src/chrome/browser/resources/history/OWNERS</owner> <component>1456716</component> @@ -2048,7 +2048,7 @@ </histogram> <histogram name="History.InitializationFailureStep" enum="HistoryInitStep" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>sky@chromium.org</owner> <owner>sdefresne@chromium.org</owner> <component>1456716</component> @@ -2075,7 +2075,7 @@ </histogram> <histogram name="History.InMemoryURLHistoryItems" units="items" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>mpearson@chromium.org</owner> <owner>chrome-omnibox-team@google.com</owner> <component>1456716</component> @@ -2098,7 +2098,7 @@ </histogram> <histogram name="History.MigrateFailureFromVersion" units="units" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>sky@chromium.org</owner> <owner>sdefresne@chromium.org</owner> <component>1456716</component> @@ -2306,7 +2306,7 @@ </histogram> <histogram name="History.VisitedLinkTableCount" units="VisitedLinks" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>kyraseevers@chromium.org</owner> <owner>brgoldstein@google.com</owner> <component>Blink>History>VisitedLinks</component> @@ -2317,7 +2317,7 @@ </histogram> <histogram name="History.VisitTableCount" units="visits" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>mpearson@chromium.org</owner> <owner>sky@chromium.org</owner> <component>1456716</component>
diff --git a/tools/metrics/histograms/metadata/installer/histograms.xml b/tools/metrics/histograms/metadata/installer/histograms.xml index 0564491..c45e884 100644 --- a/tools/metrics/histograms/metadata/installer/histograms.xml +++ b/tools/metrics/histograms/metadata/installer/histograms.xml
@@ -154,7 +154,7 @@ </histogram> <histogram name="Installer.Postinstall.RevenPartitionMigration" - enum="ChromeOSRevenPartitionMigration" expires_after="2024-09-01"> + enum="ChromeOSRevenPartitionMigration" expires_after="2024-11-03"> <owner>nicholasbishop@google.com</owner> <owner>chromeos-flex-eng@google.com</owner> <summary> @@ -169,7 +169,7 @@ </histogram> <histogram name="Installer.PowerwashCount" units="powerwashes" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>kimjae@chromium.org</owner> <owner>chromeos-core-services@chromium.org</owner> <summary> @@ -180,7 +180,7 @@ </histogram> <histogram name="Installer.PowerwashDays" units="powerwashdays" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>qianwan@google.com</owner> <owner>chromeos-data@google.com</owner> <summary> @@ -210,7 +210,7 @@ </histogram> <histogram name="Installer.Recovery.Reason" enum="ChromeOSRecoveryReason" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>kimjae@chromium.org</owner> <owner>chromeos-core-services@google.com</owner> <summary>
diff --git a/tools/metrics/histograms/metadata/interstitial/histograms.xml b/tools/metrics/histograms/metadata/interstitial/histograms.xml index e4e9992..c6a74603 100644 --- a/tools/metrics/histograms/metadata/interstitial/histograms.xml +++ b/tools/metrics/histograms/metadata/interstitial/histograms.xml
@@ -78,7 +78,7 @@ </variants> <histogram name="interstitial.captive_portal" - enum="CaptivePortalBlockingPageEvent" expires_after="2024-09-03"> + enum="CaptivePortalBlockingPageEvent" expires_after="2024-11-03"> <owner>meacer@chromium.org</owner> <owner>michaeldo@chromium.org</owner> <summary>
diff --git a/tools/metrics/histograms/metadata/ios/histograms.xml b/tools/metrics/histograms/metadata/ios/histograms.xml index 3f7ebbad..6042a02 100644 --- a/tools/metrics/histograms/metadata/ios/histograms.xml +++ b/tools/metrics/histograms/metadata/ios/histograms.xml
@@ -268,7 +268,7 @@ </histogram> <histogram name="IOS.BringAndroidTabs.PromptTabsStatus" - enum="IOSPromptAndroidTabsStatus" expires_after="2024-09-01"> + enum="IOSPromptAndroidTabsStatus" expires_after="2024-11-03"> <owner>hiramahmood@google.com</owner> <owner>ginnyhuang@chromium.org</owner> <owner>bling-get-set-up@google.com</owner> @@ -678,7 +678,7 @@ </histogram> <histogram name="IOS.DefaultBrowserFullscreenTailoredPromoAllTabs" - enum="IOSDefaultBrowserFullscreenPromoAction" expires_after="2024-09-01"> + enum="IOSDefaultBrowserFullscreenPromoAction" expires_after="2024-11-03"> <owner>sebsg@chromium.org</owner> <owner>bling-get-set-up@google.com</owner> <summary> @@ -688,7 +688,7 @@ </histogram> <histogram name="IOS.DefaultBrowserFullscreenTailoredPromoMadeForIOS" - enum="IOSDefaultBrowserFullscreenPromoAction" expires_after="2024-09-01"> + enum="IOSDefaultBrowserFullscreenPromoAction" expires_after="2024-11-03"> <owner>sebsg@chromium.org</owner> <owner>bling-get-set-up@google.com</owner> <summary> @@ -698,7 +698,7 @@ </histogram> <histogram name="IOS.DefaultBrowserFullscreenTailoredPromoStaySafe" - enum="IOSDefaultBrowserFullscreenPromoAction" expires_after="2024-09-01"> + enum="IOSDefaultBrowserFullscreenPromoAction" expires_after="2024-11-03"> <owner>sebsg@chromium.org</owner> <owner>bling-get-set-up@google.com</owner> <summary> @@ -708,7 +708,7 @@ </histogram> <histogram name="IOS.DefaultBrowserPromo.DaysSinceLastPromoInteraction" - units="count" expires_after="2024-09-01"> + units="count" expires_after="2024-11-03"> <owner>gayane@google.com</owner> <owner>bling-get-set-up@google.com</owner> <summary> @@ -739,7 +739,7 @@ </histogram> <histogram name="IOS.DefaultBrowserPromo.NonModal.{Impression}" - enum="IOSDefaultBrowserPromoNonModalAction" expires_after="2024-09-01"> + enum="IOSDefaultBrowserPromoNonModalAction" expires_after="2024-11-03"> <owner>sebsg@chromium.org</owner> <owner>nicolasmacbeth@google.com</owner> <owner>bling-get-set-up@google.com</owner> @@ -762,7 +762,7 @@ </histogram> <histogram name="IOS.DefaultBrowserPromo.NonModal.{PromoType}" - enum="IOSDefaultBrowserPromoNonModalAction" expires_after="2024-09-01"> + enum="IOSDefaultBrowserPromoNonModalAction" expires_after="2024-11-03"> <owner>sebsg@chromium.org</owner> <owner>bling-get-set-up@google.com</owner> <summary> @@ -788,7 +788,7 @@ </histogram> <histogram name="IOS.DefaultBrowserPromo.Shown" - enum="IOSDefaultBrowserPromoType" expires_after="2024-09-01"> + enum="IOSDefaultBrowserPromoType" expires_after="2024-11-03"> <owner>gayane@chromium.org</owner> <owner>bling-get-set-up@google.com</owner> <summary>The default browser promo type shown to the user.</summary> @@ -877,7 +877,7 @@ </histogram> <histogram name="IOS.DefaultBrowserVideoPromo.Fullscreen" - enum="IOSDefaultBrowserVideoPromoAction" expires_after="2024-09-01"> + enum="IOSDefaultBrowserVideoPromoAction" expires_after="2024-11-03"> <owner>cheickcisse@google.com</owner> <owner>sebsg@chromium.org</owner> <owner>bling-get-set-up@google.com</owner> @@ -1467,7 +1467,7 @@ </histogram> <histogram name="IOS.MagicStack.Module.Click" enum="IOSMagicStackModuleType" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>thegreenfrog@chromium.org</owner> <owner>scottyoder@chromium.org</owner> <summary> @@ -1504,7 +1504,7 @@ </histogram> <histogram name="IOS.MagicStack.Module.Click.ParcelTracking" units="index" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>thegreenfrog@chromium.org</owner> <owner>bling-get-set-up@google.com</owner> <summary> @@ -1523,7 +1523,7 @@ </histogram> <histogram name="IOS.MagicStack.Module.Click.Shortcuts" units="index" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>thegreenfrog@chromium.org</owner> <owner>bling-get-set-up@google.com</owner> <summary> @@ -1532,7 +1532,7 @@ </histogram> <histogram name="IOS.MagicStack.Module.Click.TabResumption" units="index" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>thegreenfrog@chromium.org</owner> <owner>bling-get-set-up@google.com</owner> <summary> @@ -1542,7 +1542,7 @@ </histogram> <histogram name="IOS.MagicStack.Module.TopImpression" - enum="IOSMagicStackModuleType" expires_after="2024-09-01"> + enum="IOSMagicStackModuleType" expires_after="2024-11-03"> <owner>thegreenfrog@chromium.org</owner> <owner>scottyoder@chromium.org</owner> <summary> @@ -1551,7 +1551,7 @@ </histogram> <histogram name="IOS.MainFrameNavigationIsInBrowserLockdownMode" enum="Boolean" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>joemerramos@chromium.org</owner> <owner>ajuma@chromium.org</owner> <owner>bling-fundamentals@google.com</owner> @@ -1661,7 +1661,7 @@ </histogram> <histogram name="IOS.MetricKit.{MXVersion}ApplicationResumeTime" units="ms" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>justincohen@chromium.org</owner> <owner>olivierrobin@chromium.org</owner> <summary> @@ -1683,7 +1683,7 @@ </histogram> <histogram name="IOS.MetricKit.{MXVersion}AverageSuspendedMemory" units="MB" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>justincohen@chromium.org</owner> <owner>olivierrobin@chromium.org</owner> <summary> @@ -1741,7 +1741,7 @@ </histogram> <histogram name="IOS.MetricKit.{MXVersion}BackgroundTimePerDay" units="ms" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>justincohen@chromium.org</owner> <owner>olivierrobin@chromium.org</owner> <summary> @@ -1860,7 +1860,7 @@ </histogram> <histogram name="IOS.MetricKit.{MXVersion}ForegroundTimePerDay" units="s" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>justincohen@chromium.org</owner> <owner>olivierrobin@chromium.org</owner> <summary> @@ -1887,7 +1887,7 @@ </histogram> <histogram name="IOS.MetricKit.{MXVersion}OptimizedTimeToFirstDraw" units="ms" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>ajuma@chromium.org</owner> <owner>justincohen@chromium.org</owner> <summary> @@ -1913,7 +1913,7 @@ </histogram> <histogram name="IOS.MetricKit.{MXVersion}PeakMemoryUsage" units="MB" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>justincohen@chromium.org</owner> <owner>olivierrobin@chromium.org</owner> <summary> @@ -1941,7 +1941,7 @@ </histogram> <histogram name="IOS.MetricKit.{MXVersion}TimeToFirstDraw" units="ms" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>justincohen@chromium.org</owner> <owner>olivierrobin@chromium.org</owner> <summary> @@ -2091,7 +2091,7 @@ </histogram> <histogram name="IOS.NTP.OverscrollAction" enum="IOSNTPOverscrollAction" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>guiperez@google.com</owner> <owner>bling-team@google.com</owner> <summary> @@ -2259,7 +2259,7 @@ </histogram> <histogram name="IOS.OverflowMenu.ActionType" enum="IOSOverflowMenuActionType" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>rkgibson@google.com</owner> <owner>bling-team@google.com</owner> <summary>The type of action the user took in the overflow/tools menu</summary> @@ -2400,7 +2400,7 @@ </histogram> <histogram name="IOS.OverflowMenu.DestinationsOrderChangedProgrammatically" - enum="IOSOverflowMenuReorderingReason" expires_after="2024-09-01"> + enum="IOSOverflowMenuReorderingReason" expires_after="2024-11-03"> <owner>rkgibson@google.com</owner> <owner>bling-mony-pod@google.com</owner> <summary> @@ -2410,7 +2410,7 @@ </histogram> <histogram name="IOS.OverflowMenu.OverflowMenuVisited" units="bitfield value" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>rkgibson@google.com</owner> <owner>bling-mony-pod@google.com</owner> <summary> @@ -2429,14 +2429,14 @@ </histogram> <histogram name="IOS.OverflowMenu.TimeOpen" units="ms" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>rkgibson@google.com</owner> <owner>bling-team@google.com</owner> <summary>The amount of time the overflow/tools menu is open.</summary> </histogram> <histogram name="IOS.OverflowMenu.TimeOpen.ActionChosen" units="ms" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>rkgibson@google.com</owner> <owner>bling-mony-pod@google.com</owner> <summary> @@ -2446,7 +2446,7 @@ </histogram> <histogram name="IOS.OverflowMenu.TimeOpen.DestinationChosen" units="ms" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>rkgibson@google.com</owner> <owner>bling-mony-pod@google.com</owner> <summary> @@ -2456,7 +2456,7 @@ </histogram> <histogram name="IOS.OverflowMenu.UserScrolledToEndAndStartedCustomization" - enum="Boolean" expires_after="2024-09-01"> + enum="Boolean" expires_after="2024-11-03"> <owner>rkgibson@google.com</owner> <owner>bling-team@google.com</owner> <summary> @@ -2573,7 +2573,7 @@ </histogram> <histogram name="IOS.PasswordBottomSheet.ExitReason" - enum="PasswordSuggestionBottomSheetExitReason" expires_after="2024-09-01"> + enum="PasswordSuggestionBottomSheetExitReason" expires_after="2024-11-03"> <owner>sugoi@chromium.org</owner> <owner>veronguyen@google.com</owner> <owner>tmartino@chromium.org</owner> @@ -2713,7 +2713,7 @@ </histogram> <histogram name="IOS.PromosManager.Promo" enum="IOSPromosManagerPromo" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>bwwilliams@google.com</owner> <owner>rkgibson@google.com</owner> <owner>huitingyu@google.com</owner> @@ -2763,7 +2763,7 @@ </histogram> <histogram name="IOS.PromosManager.Promo.Type" enum="IOSPromosManagerPromoType" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>bwwilliams@google.com</owner> <owner>rkgibson@google.com</owner> <owner>huitingyu@google.com</owner> @@ -2984,7 +2984,7 @@ </histogram> <histogram name="IOS.Reauth.Password.BottomSheet" enum="ReauthenticationEvent" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>sugoi@chromium.org</owner> <owner>veronguyen@google.com</owner> <owner>tmartino@chromium.org</owner> @@ -3101,7 +3101,7 @@ </histogram> <histogram name="IOS.SandboxMetrics.ApplicationSupportSize" units="MB" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>michaeldo@chromium.org</owner> <owner>rohitrao@chromium.org</owner> <summary> @@ -3135,7 +3135,7 @@ </histogram> <histogram name="IOS.SandboxMetrics.ChromeCacheSize" units="MB" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>michaeldo@chromium.org</owner> <owner>rohitrao@chromium.org</owner> <summary> @@ -3146,7 +3146,7 @@ </histogram> <histogram name="IOS.SandboxMetrics.ChromeTempSize" units="MB" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>michaeldo@chromium.org</owner> <owner>rohitrao@chromium.org</owner> <summary> @@ -3157,7 +3157,7 @@ </histogram> <histogram name="IOS.SandboxMetrics.DocumentsSize2" units="MB" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>michaeldo@chromium.org</owner> <owner>rohitrao@chromium.org</owner> <summary> @@ -3169,7 +3169,7 @@ </histogram> <histogram name="IOS.SandboxMetrics.FaviconsSize" units="KB" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>michaeldo@chromium.org</owner> <owner>rohitrao@chromium.org</owner> <summary> @@ -3180,7 +3180,7 @@ </histogram> <histogram name="IOS.SandboxMetrics.LibrarySize" units="MB" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>michaeldo@chromium.org</owner> <owner>rohitrao@chromium.org</owner> <summary> @@ -3192,7 +3192,7 @@ </histogram> <histogram name="IOS.SandboxMetrics.OptimizationGuideModelDownloadedItems" - units="items" expires_after="2024-09-01"> + units="items" expires_after="2024-11-03"> <owner>michaeldo@chromium.org</owner> <owner>rohitrao@chromium.org</owner> <summary> @@ -3203,7 +3203,7 @@ </histogram> <histogram name="IOS.SandboxMetrics.OptimizationGuideModelDownloadsSize" - units="MB" expires_after="2024-09-01"> + units="MB" expires_after="2024-11-03"> <owner>michaeldo@chromium.org</owner> <owner>rohitrao@chromium.org</owner> <summary> @@ -3239,7 +3239,7 @@ </histogram> <histogram name="IOS.SandboxMetrics.WebKitCacheSize" units="MB" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>michaeldo@chromium.org</owner> <owner>rohitrao@chromium.org</owner> <summary> @@ -3828,7 +3828,7 @@ </summary> </histogram> -<histogram name="IOS.TabGrid.CloseTabs" units="Tabs" expires_after="2024-09-01"> +<histogram name="IOS.TabGrid.CloseTabs" units="Tabs" expires_after="2024-11-03"> <owner>ewannpv@chromium.org</owner> <owner>gambard@chromium.org</owner> <owner>bling-team@google.com</owner> @@ -3889,7 +3889,7 @@ </histogram> <histogram name="IOS.TabPickup.TabOpened.TimeSinceLastUse" units="ms" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>ewannpv@chromium.org</owner> <owner>gambard@chromium.org</owner> <owner>chromeleon@google.com</owner> @@ -4030,7 +4030,7 @@ </histogram> <histogram name="IOS.TabSwitcher.Idle.RecentTabs" enum="Boolean" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>ewannpv@chromium.org</owner> <owner>gambard@chromium.org</owner> <owner>bling-team@google.com</owner> @@ -4069,7 +4069,7 @@ </histogram> <histogram name="IOS.TabSwitcher.PageChangeInteraction" - enum="IOSTabSwitcherPageChangeInteraction" expires_after="2024-09-01"> + enum="IOSTabSwitcherPageChangeInteraction" expires_after="2024-11-03"> <owner>marq@chromium.org</owner> <owner>ewannpv@chromium.org</owner> <owner>bling-team@google.com</owner> @@ -4132,7 +4132,7 @@ </histogram> <histogram name="IOS.TextSelection.EntityDetection.DetectedEntityType" - enum="TextSelectionDetectedEntityType" expires_after="2024-09-01"> + enum="TextSelectionDetectedEntityType" expires_after="2024-11-03"> <owner>rajendrant@chromium.org</owner> <owner>sophiechang@chromium.org</owner> <summary> @@ -4359,7 +4359,7 @@ </histogram> <histogram name="IOS.WhatsNew.Shown" enum="WhatsNewType" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>cheickcisse@google.com</owner> <owner>bling-mony-pod@google.com</owner> <summary> @@ -4369,7 +4369,7 @@ </histogram> <histogram name="IOS.WhatsNew.TableViewDidScroll" enum="Boolean" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>cheickcisse@google.com</owner> <owner>bling-mony-pod@google.com</owner> <summary> @@ -4377,7 +4377,7 @@ </summary> </histogram> -<histogram name="IOS.WhatsNew.TimeSpent" units="ms" expires_after="2024-09-01"> +<histogram name="IOS.WhatsNew.TimeSpent" units="ms" expires_after="2024-11-03"> <owner>cheickcisse@google.com</owner> <owner>bling-mony-pod@google.com</owner> <summary>Logs the time a user spent on What's New.</summary>
diff --git a/tools/metrics/histograms/metadata/local/histograms.xml b/tools/metrics/histograms/metadata/local/histograms.xml index 585a100..9ee25fa1 100644 --- a/tools/metrics/histograms/metadata/local/histograms.xml +++ b/tools/metrics/histograms/metadata/local/histograms.xml
@@ -248,7 +248,7 @@ </histogram> <histogram name="LocalStorage.MojoSizeInKB" units="KB" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>ayui@chromium.org</owner> <owner>chrome-owp-storage@google.com</owner> <summary> @@ -260,7 +260,7 @@ </histogram> <histogram name="LocalStorage.MojoTimeToPrime" units="ms" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>ayui@chromium.org</owner> <owner>chrome-owp-storage@google.com</owner> <summary> @@ -272,7 +272,7 @@ </histogram> <histogram name="LocalStorage.MojoTimeToPrimeFor{LocalStorageSizes}" units="ms" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>ayui@chromium.org</owner> <owner>chrome-owp-storage@google.com</owner> <summary>
diff --git a/tools/metrics/histograms/metadata/login/histograms.xml b/tools/metrics/histograms/metadata/login/histograms.xml index 7b1e5401c..2bf925a 100644 --- a/tools/metrics/histograms/metadata/login/histograms.xml +++ b/tools/metrics/histograms/metadata/login/histograms.xml
@@ -169,7 +169,7 @@ </histogram> <histogram name="Login.NumberOfUsersOnLoginScreen" units="units" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>mslus@chromium.org</owner> <owner>chromeos-commercial-identity@google.com</owner> <summary> @@ -260,7 +260,7 @@ </histogram> <histogram name="Login.SessionExitType" enum="LoginSessionExitType" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>iby@chromium.org</owner> <summary> Tracks whether a ChromeOS user was logged out because Chrome repeatedly
diff --git a/tools/metrics/histograms/metadata/magic_stack/histograms.xml b/tools/metrics/histograms/metadata/magic_stack/histograms.xml index 916b0beb..8ee4c4a 100644 --- a/tools/metrics/histograms/metadata/magic_stack/histograms.xml +++ b/tools/metrics/histograms/metadata/magic_stack/histograms.xml
@@ -77,7 +77,7 @@ <histogram name="MagicStack.Clank.TabResumption.ModuleNotShownReason" enum="MagicStack.Clank.TabResumption.ModuleNotShownReason" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>huangs@google.com</owner> <owner>hanxi@google.com</owner> <summary> @@ -92,7 +92,7 @@ <histogram name="MagicStack.Clank.TabResumption.ModuleShowConfig" enum="MagicStack.Clank.TabResumption.ModuleShowConfig" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>huangs@google.com</owner> <owner>hanxi@google.com</owner> <summary> @@ -104,7 +104,7 @@ </histogram> <histogram name="MagicStack.Clank.TabResumption.StabilityDelay" units="ms" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>huangs@google.com</owner> <owner>hanxi@google.com</owner> <summary>
diff --git a/tools/metrics/histograms/metadata/media/histograms.xml b/tools/metrics/histograms/metadata/media/histograms.xml index e620c02..7203021 100644 --- a/tools/metrics/histograms/metadata/media/histograms.xml +++ b/tools/metrics/histograms/metadata/media/histograms.xml
@@ -340,7 +340,7 @@ </histogram> <histogram name="Media.AImageReaderGLOwner.HasFence" enum="Boolean" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>vasilyt@chromium.org</owner> <owner>media-dev-uma@chromium.org</owner> <summary> @@ -447,7 +447,7 @@ </histogram> <histogram name="Media.Audio.Capture.FramesProvided" units="frames" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>guidou@chromium.org</owner> <owner>olka@chromium.org</owner> <owner>webrtc-audio-uma@google.com</owner> @@ -568,7 +568,7 @@ </histogram> <histogram name="Media.Audio.Capture.ProcessingAudioFifo.MaxUsage" - units="buffers" expires_after="2024-09-01"> + units="buffers" expires_after="2024-11-03"> <owner>tguilbert@chromium.org</owner> <owner>olka@chromium.org</owner> <owner>fhernqvist@google.com</owner> @@ -805,7 +805,7 @@ </histogram> <histogram name="Media.Audio.CrasUnifiedStreamOpenSuccess" - enum="CrasUnifiedStreamOpenSuccess" expires_after="2024-09-01"> + enum="CrasUnifiedStreamOpenSuccess" expires_after="2024-11-03"> <owner>peah@chromium.org</owner> <owner>hychao@chromium.org</owner> <owner>olka@chromium.org</owner> @@ -827,7 +827,7 @@ </histogram> <histogram name="Media.Audio.InputStartupSuccessMac" enum="BooleanSuccess" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>henrika@chromium.org</owner> <owner>webrtc-audio-uma@google.com</owner> <summary> @@ -850,7 +850,7 @@ </histogram> <histogram name="Media.Audio.Mac.HardwareLatency.{Direction}.{Component}" - units="misses" expires_after="2024-09-01"> + units="misses" expires_after="2024-11-03"> <owner>tguilbert@chromium.org</owner> <owner>media-dev-uma@chromium.org</owner> <summary> @@ -882,7 +882,7 @@ </histogram> <histogram name="Media.Audio.Output.Win.{AudioOutputMethod}Error" - enum="Hresult" expires_after="2024-09-01"> + enum="Hresult" expires_after="2024-11-03"> <owner>dalecurtis@chromium.org</owner> <owner>media-dev-uma@chromium.org</owner> <owner>webrtc-audio-uma@google.com</owner> @@ -945,7 +945,7 @@ </histogram> <histogram name="Media.Audio.OutputDeviceMixer.MaxMixedStreamCount{Device}" - units="streams" expires_after="2024-09-01"> + units="streams" expires_after="2024-11-03"> <owner>olka@chromium.org</owner> <owner>tguilbert@chromium.org</owner> <owner>webrtc-audio-uma@google.com</owner> @@ -961,7 +961,7 @@ </histogram> <histogram name="Media.Audio.OutputDeviceMixer.MixedPlaybackStatus" - enum="AudioOutputDeviceMixerMixedPlaybackStatus" expires_after="2024-09-01"> + enum="AudioOutputDeviceMixerMixedPlaybackStatus" expires_after="2024-11-03"> <owner>olka@chromium.org</owner> <owner>tguilbert@chromium.org</owner> <owner>webrtc-audio-uma@google.com</owner> @@ -972,7 +972,7 @@ </histogram> <histogram name="Media.Audio.OutputDeviceMixer.MixingDuration{Device}" - units="ms" expires_after="2024-09-01"> + units="ms" expires_after="2024-11-03"> <owner>olka@chromium.org</owner> <owner>tguilbert@chromium.org</owner> <owner>webrtc-audio-uma@google.com</owner> @@ -1004,7 +1004,7 @@ </histogram> <histogram name="Media.Audio.OutputDeviceMixer.StreamStatus" - enum="AudioOutputDeviceMixerStreamStatus" expires_after="2024-09-01"> + enum="AudioOutputDeviceMixerStreamStatus" expires_after="2024-11-03"> <owner>olka@chromium.org</owner> <owner>tguilbert@chromium.org</owner> <owner>webrtc-audio-uma@google.com</owner> @@ -1179,7 +1179,7 @@ </histogram> <histogram name="Media.Audio.Render.OutputDeviceAuthorizationTimedOut" - enum="BooleanTimedOut" expires_after="2024-09-01"> + enum="BooleanTimedOut" expires_after="2024-11-03"> <owner>guidou@chromium.org</owner> <owner>olka@chromium.org</owner> <owner>webrtc-audio-uma@google.com</owner> @@ -1213,7 +1213,7 @@ </histogram> <histogram name="Media.Audio.Render.OutputStreamDuration2" units="ms" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>olka@chromium.org</owner> <owner>tguilbert@chromium.org</owner> <owner>webrtc-audio-uma@google.com</owner> @@ -1422,7 +1422,7 @@ </histogram> <histogram name="Media.AudioCapturerAudioGlitches" enum="AudioGlitchResult" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>olka@chromium.org</owner> <owner>gustaf@chromium.org</owner> <owner>webrtc-audio-uma@google.com</owner> @@ -1433,7 +1433,7 @@ </histogram> <histogram name="Media.AudioCapturerDroppedData10sIntervals" units="drops" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>fhernqvist@google.com</owner> <owner>olka@chromium.org</owner> <owner>webrtc-audio-uma@google.com</owner> @@ -1448,7 +1448,7 @@ </histogram> <histogram name="Media.AudioCapturerDroppedDataBelow10s" units="drops" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>fhernqvist@google.com</owner> <owner>olka@chromium.org</owner> <owner>webrtc-audio-uma@google.com</owner> @@ -1461,7 +1461,7 @@ </histogram> <histogram name="Media.AudioCapturerMissedReadDeadline10sIntervals" - units="misses" expires_after="2024-09-01"> + units="misses" expires_after="2024-11-03"> <owner>fhernqvist@google.com</owner> <owner>olka@chromium.org</owner> <owner>webrtc-audio-uma@google.com</owner> @@ -1532,7 +1532,7 @@ </histogram> <histogram name="Media.AudioInputDevice.AudioServiceDelay" units="ms" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>fhernqvist@google.com</owner> <owner>olka@chromium.org</owner> <owner>webrtc-audio-uma@google.com</owner> @@ -1543,7 +1543,7 @@ </histogram> <histogram name="Media.AudioInputDevice.AudioServiceGlitchCount{Duration}" - units="glitches" expires_after="2024-09-01"> + units="glitches" expires_after="2024-11-03"> <owner>fhernqvist@google.com</owner> <owner>olka@chromium.org</owner> <owner>webrtc-audio-uma@google.com</owner> @@ -1557,7 +1557,7 @@ </histogram> <histogram name="Media.AudioInputDevice.AudioServiceGlitchDuration{Duration}" - units="permille" expires_after="2024-09-01"> + units="permille" expires_after="2024-11-03"> <owner>fhernqvist@google.com</owner> <owner>olka@chromium.org</owner> <owner>webrtc-audio-uma@google.com</owner> @@ -1571,7 +1571,7 @@ </histogram> <histogram name="Media.AudioOutputController.CallbackError" enum="BooleanError" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>olka@chromium.org</owner> <owner>guidou@chromium.org</owner> <owner>webrtc-audio-uma@google.com</owner> @@ -1597,7 +1597,7 @@ </histogram> <histogram name="Media.AudioOutputController.ProxyStreamCreationResult" - enum="AudioOutputStreamCreationResult" expires_after="2024-09-01"> + enum="AudioOutputStreamCreationResult" expires_after="2024-11-03"> <owner>guidou@chromium.org</owner> <owner>olka@chromium.org</owner> <owner>webrtc-audio-uma@google.com</owner> @@ -1611,7 +1611,7 @@ <histogram name="Media.AudioOutputController.ProxyStreamCreationResultForDeviceChange" - enum="AudioOutputStreamCreationResult" expires_after="2024-09-01"> + enum="AudioOutputStreamCreationResult" expires_after="2024-11-03"> <owner>guidou@chromium.org</owner> <owner>olka@chromium.org</owner> <owner>webrtc-audio-uma@google.com</owner> @@ -1651,7 +1651,7 @@ </histogram> <histogram name="Media.AudioOutputDevice.AudioServiceDelay{LatencyTag}" - units="ms" expires_after="2024-09-01"> + units="ms" expires_after="2024-11-03"> <owner>fhernqvist@google.com</owner> <owner>olka@chromium.org</owner> <owner>dalecurtis@chromium.org</owner> @@ -1666,7 +1666,7 @@ <histogram name="Media.AudioOutputDevice.AudioServiceGlitchCount{Duration}{LatencyTag}" - units="glitches" expires_after="2024-09-01"> + units="glitches" expires_after="2024-11-03"> <owner>fhernqvist@google.com</owner> <owner>olka@chromium.org</owner> <owner>dalecurtis@chromium.org</owner> @@ -1684,7 +1684,7 @@ <histogram name="Media.AudioOutputDevice.AudioServiceGlitchDuration{Duration}{LatencyTag}" - units="permille" expires_after="2024-09-01"> + units="permille" expires_after="2024-11-03"> <owner>fhernqvist@google.com</owner> <owner>olka@chromium.org</owner> <owner>dalecurtis@chromium.org</owner> @@ -1702,7 +1702,7 @@ <histogram name="Media.AudioOutputResampler.OpenLowLatencyStream2" enum="AudioOutputResamplerLowLatencyOpenStreamResult" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>olka@chromium.org</owner> <owner>armax@chromium.org</owner> <owner>guidou@chromium.org</owner> @@ -1730,7 +1730,7 @@ </histogram> <histogram name="Media.AudioRendererAudioGlitches2.{LatencyTag}" - enum="AudioGlitchResult" expires_after="2024-09-01"> + enum="AudioGlitchResult" expires_after="2024-11-03"> <owner>dalecurtis@chromium.org</owner> <owner>olka@chromium.org</owner> <owner>tguilbert@chromium.org</owner> @@ -1766,7 +1766,7 @@ <histogram name="Media.AudioRendererMissedDeadline3{Mixing}{Duration}{LatencyTag}" - units="misses" expires_after="2024-09-01"> + units="misses" expires_after="2024-11-03"> <owner>fhernqvist@google.com</owner> <owner>olka@chromium.org</owner> <owner>dalecurtis@chromium.org</owner> @@ -1796,7 +1796,7 @@ </histogram> <histogram name="Media.AudioService.AudioManagerStartupTime" units="ms" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>fhernqvist@google.com</owner> <owner>olka@chromium.org</owner> <owner>webrtc-audio-uma@google.com</owner> @@ -1833,7 +1833,7 @@ </histogram> <histogram name="Media.AutoPictureInPicture.PromptResult" - enum="MediaAutoPictureInPicturePromptResult" expires_after="2024-09-01"> + enum="MediaAutoPictureInPicturePromptResult" expires_after="2024-11-03"> <owner>steimel@chromium.org</owner> <owner>media-dev-uma@chromium.org</owner> <summary> @@ -1867,7 +1867,7 @@ </histogram> <histogram name="Media.BreakoutBox.Usage" enum="BreakoutBoxUsage" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>guidou@chromium.org</owner> <owner>hta@chromium.org</owner> <owner>tguilbert@chromium.org</owner> @@ -1964,7 +1964,7 @@ </histogram> <histogram name="Media.Controls.CTR" enum="MediaControlsCTREvent" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>steimel@chromium.org</owner> <owner>media-dev-uma@chromium.org</owner> <summary> @@ -2149,7 +2149,7 @@ </histogram> <histogram name="Media.DocumentPictureInPicture.CloseReason" - enum="DocumentPictureInPictureCloseReason" expires_after="2024-09-01"> + enum="DocumentPictureInPictureCloseReason" expires_after="2024-11-03"> <owner>steimel@chromium.org</owner> <owner>liberato@chromium.org</owner> <owner>media-dev-uma@chromium.org</owner> @@ -2214,7 +2214,7 @@ </histogram> <histogram name="Media.DroppedFrameCount2.{RendererType}.{ClearOrEncrypted}" - units="units" expires_after="2024-09-01"> + units="units" expires_after="2024-11-03"> <owner>dalecurtis@chromium.org</owner> <owner>frankli@microsoft.com</owner> <owner>media-dev-uma@chromium.org</owner> @@ -3496,7 +3496,7 @@ </histogram> <histogram name="Media.FrameInfo.GuessedCodedSizeChangeSuccess" - enum="BooleanSuccess" expires_after="2024-09-01"> + enum="BooleanSuccess" expires_after="2024-11-03"> <owner>dalecurtis@chromium.org</owner> <owner>media-dev-uma@chromium.org</owner> <summary> @@ -3506,7 +3506,7 @@ </histogram> <histogram name="Media.FrameInfo.GuessedInitialCodedSizeSuccess" - enum="BooleanSuccess" expires_after="2024-09-01"> + enum="BooleanSuccess" expires_after="2024-11-03"> <owner>dalecurtis@chromium.org</owner> <owner>media-dev-uma@chromium.org</owner> <summary> @@ -3638,7 +3638,7 @@ </histogram> <histogram name="Media.GlobalMediaControls.EntryPoint" - enum="GlobalMediaControlsEntryPoint" expires_after="2024-09-01"> + enum="GlobalMediaControlsEntryPoint" expires_after="2024-11-03"> <owner>takumif@chromium.org</owner> <owner>openscreen-eng@google.com</owner> <owner>media-dev-uma@chromium.org</owner> @@ -3700,7 +3700,7 @@ </histogram> <histogram name="Media.GlobalMediaControls.RepeatUsage" enum="BooleanIsRepeat" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>steimel@chromium.org</owner> <owner>media-dev-uma@chromium.org</owner> <summary> @@ -3711,7 +3711,7 @@ </histogram> <histogram name="Media.GlobalMediaControls.UserActionFocus" - enum="BooleanFocused" expires_after="2024-09-01"> + enum="BooleanFocused" expires_after="2024-11-03"> <owner>steimel@chromium.org</owner> <owner>media-dev-uma@chromium.org</owner> <summary> @@ -3722,7 +3722,7 @@ </histogram> <histogram name="Media.GPU.OutputFormat" enum="OutputFormat" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>hitawala@chromium.org</owner> <owner>vasilyt@chromium.org</owner> <owner>shared-image-team@google.com</owner> @@ -3734,7 +3734,7 @@ </histogram> <histogram name="Media.GPU.OutputFormatHardwareGmb" enum="OutputFormat" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>hitawala@chromium.org</owner> <owner>vasilyt@chromium.org</owner> <owner>shared-image-team@google.com</owner> @@ -3746,7 +3746,7 @@ </histogram> <histogram name="Media.GPU.OutputFormatSoftwareGmb" enum="OutputFormat" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>hitawala@chromium.org</owner> <owner>vasilyt@chromium.org</owner> <owner>shared-image-team@google.com</owner> @@ -3758,7 +3758,7 @@ </histogram> <histogram name="Media.GPU.VideoDecoderType" enum="VideoDecoderType" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>dalecurtis@chromium.org</owner> <owner>media-dev-uma@chromium.org</owner> <summary> @@ -3768,7 +3768,7 @@ </histogram> <histogram name="Media.GpuArcVideoDecodeAccelerator.InitializeFailed" - enum="VideoCodecProfile" expires_after="2024-09-01"> + enum="VideoCodecProfile" expires_after="2024-11-03"> <owner>andrescj@chromium.org</owner> <owner>chromeos-gfx-video@google.com</owner> <summary> @@ -3778,7 +3778,7 @@ </histogram> <histogram name="Media.GpuArcVideoDecodeAccelerator.InitializeSucceeded" - enum="VideoCodecProfile" expires_after="2024-09-01"> + enum="VideoCodecProfile" expires_after="2024-11-03"> <owner>andrescj@chromium.org</owner> <owner>chromeos-gfx-video@google.com</owner> <summary> @@ -3813,7 +3813,7 @@ </histogram> <histogram name="Media.GpuMemoryBufferVideoFramePool.UnsupportedFormat" - enum="VideoPixelFormatUnion" expires_after="2024-09-01"> + enum="VideoPixelFormatUnion" expires_after="2024-11-03"> <owner>magchen@chromium.org</owner> <owner>mcasas@chromium.org</owner> <summary> @@ -3860,7 +3860,7 @@ </histogram> <histogram name="Media.HardwareKeyPressed" enum="MediaHardwareKeyAction" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>steimel@chromium.org</owner> <owner>media-dev-uma@chromium.org</owner> <summary> @@ -3873,7 +3873,7 @@ </histogram> <histogram name="Media.HasAcceleratedVideoDecode.{CodecType}" - enum="BooleanSupported" expires_after="2024-09-01"> + enum="BooleanSupported" expires_after="2024-11-03"> <owner>dalecurtis@chromium.org</owner> <owner>media-dev-uma@chromium.org</owner> <summary> @@ -3973,7 +3973,7 @@ </histogram> <histogram name="Media.InputStreamDurationWithoutCallback" units="ms" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>olka@chromium.org</owner> <owner>henrika@chromium.org</owner> <owner>webrtc-audio-uma@google.com</owner> @@ -4016,7 +4016,7 @@ </histogram> <histogram name="Media.MeanTimeBetweenRebuffers" units="ms" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>dalecurtis@chromium.org</owner> <summary> The total watch time (see Media.WatchTime) of a given playback divided by @@ -4216,7 +4216,7 @@ </histogram> <histogram name="Media.MediaHistory.DatabaseExists" enum="Boolean" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>evliu@google.com</owner> <owner>media-dev-uma@chromium.org</owner> <summary> @@ -4703,7 +4703,7 @@ </histogram> <histogram name="Media.PipelineStatus.Start" enum="PipelineStatus" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>xhwang@chromium.org</owner> <owner>media-dev-uma@chromium.org</owner> <summary> @@ -4986,7 +4986,7 @@ </histogram> <histogram name="Media.RtcLowLatencyVideoRenderer.AverageQueueLengthX10" - units="frames" expires_after="2024-09-01"> + units="frames" expires_after="2024-11-03"> <owner>kron@chromium.org</owner> <owner>webrtc-video@google.com</owner> <summary> @@ -4997,7 +4997,7 @@ </histogram> <histogram name="Media.RtcLowLatencyVideoRenderer.DrainedFramesPermille" - units="permille" expires_after="2024-09-01"> + units="permille" expires_after="2024-11-03"> <owner>kron@chromium.org</owner> <owner>webrtc-video@google.com</owner> <summary> @@ -5008,7 +5008,7 @@ </histogram> <histogram name="Media.RtcLowLatencyVideoRenderer.DroppedFramesPermille" - units="permille" expires_after="2024-09-01"> + units="permille" expires_after="2024-11-03"> <owner>kron@chromium.org</owner> <owner>webrtc-video@google.com</owner> <summary> @@ -5019,7 +5019,7 @@ </histogram> <histogram name="Media.RtcLowLatencyVideoRenderer.EnterDrainModeCount" - units="count" expires_after="2024-09-01"> + units="count" expires_after="2024-11-03"> <owner>kron@chromium.org</owner> <owner>webrtc-video@google.com</owner> <summary> @@ -5029,7 +5029,7 @@ </histogram> <histogram name="Media.RtcLowLatencyVideoRenderer.MaxQueueLength" - units="frames" expires_after="2024-09-01"> + units="frames" expires_after="2024-11-03"> <owner>kron@chromium.org</owner> <owner>webrtc-video@google.com</owner> <summary> @@ -5051,7 +5051,7 @@ </histogram> <histogram name="Media.RtcLowLatencyVideoRenderer.NoNewFrameToRenderPermille" - units="permille" expires_after="2024-09-01"> + units="permille" expires_after="2024-11-03"> <owner>kron@chromium.org</owner> <owner>webrtc-video@google.com</owner> <summary> @@ -5062,7 +5062,7 @@ </histogram> <histogram name="Media.RtcLowLatencyVideoRenderer.ReduceSteadyStateCount" - units="count" expires_after="2024-09-01"> + units="count" expires_after="2024-11-03"> <owner>kron@chromium.org</owner> <owner>webrtc-video@google.com</owner> <summary> @@ -5073,7 +5073,7 @@ </histogram> <histogram name="Media.RtcLowLatencyVideoRenderer.TotalFrames" units="frames" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>kron@chromium.org</owner> <owner>webrtc-video@google.com</owner> <summary> @@ -5084,7 +5084,7 @@ </histogram> <histogram name="Media.RtcLowLatencyVideoRenderer.TryToRenderFrameCount" - units="count" expires_after="2024-09-01"> + units="count" expires_after="2024-11-03"> <owner>kron@chromium.org</owner> <owner>webrtc-video@google.com</owner> <summary> @@ -5107,7 +5107,7 @@ </histogram> <histogram name="Media.RTCVideoDecoderFallbackReason.{Codecs}" - enum="RTCVideoDecoderFallbackReason" expires_after="2024-09-01"> + enum="RTCVideoDecoderFallbackReason" expires_after="2024-11-03"> <owner>kron@chromium.org</owner> <owner>webrtc-video@google.com</owner> <summary> @@ -5145,7 +5145,7 @@ </histogram> <histogram name="Media.RTCVideoDecoderInitializationLatencyMs" units="ms" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>kron@chromium.org</owner> <owner>webrtc-video@google.com</owner> <summary> @@ -5287,7 +5287,7 @@ </histogram> <histogram name="Media.Session.EnterPictureInPicture" - enum="MediaSessionEnterPictureInPictureType" expires_after="2024-09-01"> + enum="MediaSessionEnterPictureInPictureType" expires_after="2024-11-03"> <owner>steimel@chromium.org</owner> <owner>media-dev-uma@chromium.org</owner> <summary> @@ -5452,7 +5452,7 @@ </histogram> <histogram name="Media.Ui.GetDisplayMedia.BasicFlow.SourceCount.{Type}" - units="count" expires_after="2024-09-01"> + units="count" expires_after="2024-11-03"> <owner>eladalon@chromium.org</owner> <owner>tovep@chromium.org</owner> <summary> @@ -5596,7 +5596,7 @@ </histogram> <histogram name="Media.VaapiVideoDecoder.DecodeError" enum="BooleanError" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>mcasas@chromium.org</owner> <owner>chromeos-gfx@chromium.org</owner> <summary> @@ -5606,7 +5606,7 @@ </histogram> <histogram name="Media.VaapiVideoDecoder.VaapiWrapperCreationSuccess" - enum="BooleanSuccess" expires_after="2024-09-01"> + enum="BooleanSuccess" expires_after="2024-11-03"> <owner>mcasas@chromium.org</owner> <owner>chromeos-gfx-video@google.com</owner> <summary> @@ -5859,7 +5859,7 @@ </histogram> <histogram name="Media.VideoCapture.Device.Opened.PixelFormat" - enum="VideoPixelFormatUnion" expires_after="2024-09-01"> + enum="VideoPixelFormatUnion" expires_after="2024-11-03"> <owner>atadres@chromium.org</owner> <owner>openscreen-eng@google.com</owner> <summary> @@ -6559,7 +6559,7 @@ </summary> </histogram> -<histogram name="Media.WatchTime" units="ms" expires_after="2024-09-01"> +<histogram name="Media.WatchTime" units="ms" expires_after="2024-11-03"> <owner>dalecurtis@chromium.org</owner> <summary> Watch time is defined as the amount of elapsed media time for audio+video @@ -6581,7 +6581,7 @@ </histogram> <histogram name="Media.WebMediaPlayerImpl.HLS.HasAccessControl" enum="Boolean" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>tmathmeyer@chromium.org</owner> <owner>tguilbert@chromium.org</owner> <owner>media-dev-uma@chromium.org</owner> @@ -6594,7 +6594,7 @@ </histogram> <histogram name="Media.WebMediaPlayerImpl.HLS.IsCorsCrossOrigin" enum="Boolean" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>tmathmeyer@chromium.org</owner> <owner>tguilbert@chromium.org</owner> <owner>media-dev-uma@chromium.org</owner> @@ -6607,7 +6607,7 @@ </histogram> <histogram name="Media.WebMediaPlayerImpl.HLS.IsMixedContent" enum="Boolean" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>cassew@chromium.org</owner> <owner>tguilbert@chromium.org</owner> <owner>media-dev-uma@chromium.org</owner> @@ -6620,7 +6620,7 @@ </histogram> <histogram name="Media.WebMediaPlayerImpl.HLS{Variant}.MimeType" - enum="MimeTypeOfHlsManifest" expires_after="2024-09-01"> + enum="MimeTypeOfHlsManifest" expires_after="2024-11-03"> <owner>tmathmeyer@chromium.org</owner> <owner>lukasza@chromium.org</owner> <owner>media-dev-uma@chromium.org</owner> @@ -6703,7 +6703,7 @@ <histogram name="Media.WebrtcVideoPerfHistory.SmoothVolatility.{Operation}.{Framerate}" - enum="SmoothVolatility" expires_after="2024-09-01"> + enum="SmoothVolatility" expires_after="2024-11-03"> <owner>kron@chromium.org</owner> <owner>webrtc-video@google.com</owner> <summary> @@ -7011,7 +7011,7 @@ </histogram> <histogram name="MediaRouter.Cast.LaunchSessionResponse.AppType" - enum="MediaRouterResponseReceiverAppType" expires_after="2024-09-01"> + enum="MediaRouterResponseReceiverAppType" expires_after="2024-11-03"> <owner>muyaoxu@google.com</owner> <owner>openscreen-eng@google.com</owner> <summary> @@ -7176,7 +7176,7 @@ </histogram> <histogram name="MediaRouter.CastStreaming.Start.Success.AccessCodeManualEntry" - enum="MirrorType" expires_after="2024-09-04"> + enum="MirrorType" expires_after="2024-11-03"> <owner>bzielinski@google.com</owner> <owner>cros-edu-eng@google.com</owner> <summary> @@ -7188,7 +7188,7 @@ <histogram name="MediaRouter.CastStreaming.Start.Success.AccessCodeRememberedDevice" - enum="MirrorType" expires_after="2024-09-04"> + enum="MirrorType" expires_after="2024-11-03"> <owner>bzielinski@google.com</owner> <owner>cros-edu-eng@google.com</owner> <summary> @@ -7293,7 +7293,7 @@ </histogram> <histogram name="MediaRouter.Provider.CreateRoute.Result" - enum="MediaRouteProviderResult" expires_after="2024-09-01"> + enum="MediaRouteProviderResult" expires_after="2024-11-03"> <!-- Name completed by histogram_suffixes name="MediaRouteProvider" --> <owner>takumif@chromium.org</owner> @@ -7335,7 +7335,7 @@ </histogram> <histogram name="MediaRouter.RemotePlayback.SessionLoadTime" units="ms" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>muyaoxu@chromium.org</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 7e02c2f..b93eab02 100644 --- a/tools/metrics/histograms/metadata/memory/histograms.xml +++ b/tools/metrics/histograms/metadata/memory/histograms.xml
@@ -127,7 +127,7 @@ </histogram> <histogram name="HeapProfiling.InProcess.TotalSampledMemory{Process}" - units="MB" expires_after="2024-09-01"> + units="MB" expires_after="2024-11-03"> <owner>joenotcharles@google.com</owner> <owner>etienneb@chromium.org</owner> <owner>chrome-memory@google.com</owner> @@ -194,7 +194,7 @@ </histogram> <histogram name="Memory.Browser.MemoryFootprint.Active" units="MB" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>justincohen@chromium.org</owner> <owner>ajuma@chromium.org</owner> <summary> @@ -250,7 +250,7 @@ </histogram> <histogram name="Memory.Browser.MemoryFootprint.NumOpenTabs" units="tabs" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>ajuma@chromium.org</owner> <owner>rkgibson@google.com</owner> <summary> @@ -428,7 +428,7 @@ </histogram> <histogram name="Memory.Experimental.AvailableMemoryPercent" units="%" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>anthonyvd@chromium.org</owner> <owner>catan-team@chromium.org</owner> <summary> @@ -659,7 +659,7 @@ </histogram> <histogram name="Memory.Experimental.MacAvailableMemoryPercentFreePageCache2" - units="%" expires_after="2024-09-01"> + units="%" expires_after="2024-11-03"> <owner>anthonyvd@chromium.org</owner> <owner>catan-team@chromium.org</owner> <summary> @@ -675,7 +675,7 @@ </histogram> <histogram name="Memory.Experimental.MacFileBackedMemoryMB2" units="MB" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>anthonyvd@chromium.org</owner> <owner>catan-team@chromium.org</owner> <summary> @@ -1113,7 +1113,7 @@ </histogram> <histogram name="Memory.GPU.PeakMemoryAllocationSource2.{Usage}.{Source}" - units="MB" expires_after="2024-09-01"> + units="MB" expires_after="2024-11-03"> <owner>jonross@chromium.org</owner> <owner>graphics-dev@chromium.org</owner> <summary> @@ -1133,7 +1133,7 @@ </histogram> <histogram name="Memory.GPU.PeakMemoryUsage2.{Usage}" units="MB" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>jonross@chromium.org</owner> <owner>graphics-dev@chromium.org</owner> <summary> @@ -1267,7 +1267,7 @@ </histogram> <histogram name="Memory.NativeLibrary.MappedAndResidentMemoryFootprint3" - units="KB" expires_after="2024-09-01"> + units="KB" expires_after="2024-11-03"> <owner>lizeb@chromium.org</owner> <owner>pasko@chromium.org</owner> <summary> @@ -1330,7 +1330,7 @@ </histogram> <histogram name="Memory.NetworkService.PrivateMemoryFootprint" units="MiB" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>mmenke@chromium.org</owner> <owner>morlovich@chromium.org</owner> <owner>erikchen@chromium.org</owner> @@ -1386,14 +1386,14 @@ </histogram> <histogram name="Memory.OOMKills.Count" units="kills" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>vovoy@google.com</owner> <owner>wvk@google.com</owner> <summary>Cumulative count of OOM kills in one user session.</summary> </histogram> <histogram name="Memory.OOMKills.Daily" units="kills" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>vovoy@google.com</owner> <owner>src/chromeos/ash/components/memory/OWNERS</owner> <summary> @@ -1636,7 +1636,7 @@ </histogram> <histogram name="Memory.PartitionAlloc.MemoryReclaim" units="microseconds" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>lizeb@chromium.org</owner> <owner>bartekn@chromium.org</owner> <summary> @@ -1882,7 +1882,7 @@ </histogram> <histogram name="Memory.RendererProcessCount" units="processes" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>creis@chromium.org</owner> <owner>nasko@chromium.org</owner> <summary> @@ -2032,7 +2032,7 @@ </histogram> <histogram name="Memory.Total.GpuMappedMemory" units="MB" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>lizeb@chromium.org</owner> <owner>chrome-memory@chromium.org</owner> <summary> @@ -2044,7 +2044,7 @@ </histogram> <histogram name="Memory.Total.HibernatedCanvas.OriginalSize" units="MB" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>lizeb@chromium.org</owner> <owner>chrome-memory@chromium.org</owner> <summary> @@ -2057,7 +2057,7 @@ </histogram> <histogram name="Memory.Total.HibernatedCanvas.Size" units="MB" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>lizeb@chromium.org</owner> <owner>chrome-memory@chromium.org</owner> <summary> @@ -2095,7 +2095,7 @@ </histogram> <histogram name="Memory.Total.PrivateMemoryFootprintExcludingWaivedRenderers" - units="MB" expires_after="2024-09-01"> + units="MB" expires_after="2024-11-03"> <owner>ckitagawa@chromium.org</owner> <owner>yfriedman@chromium.org</owner> <summary> @@ -2109,7 +2109,7 @@ <histogram name="Memory.Total.PrivateMemoryFootprintVisibleOrHigherPriorityRenderers" - units="MB" expires_after="2024-09-01"> + units="MB" expires_after="2024-11-03"> <owner>ckitagawa@chromium.org</owner> <owner>yfriedman@chromium.org</owner> <summary> @@ -2160,7 +2160,7 @@ </histogram> <histogram name="Memory.Total.RendererPrivateMemoryFootprint" units="MB" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>tommckee@chromium.org</owner> <summary> A rough estimate of the private memory footprint of all renderer processes. @@ -2192,7 +2192,7 @@ <histogram name="Memory.Total.RendererPrivateMemoryFootprintVisibleOrHigherPriority" - units="MB" expires_after="2024-09-01"> + units="MB" expires_after="2024-11-03"> <owner>ckitagawa@chromium.org</owner> <owner>yfriedman@chromium.org</owner> <summary> @@ -2256,7 +2256,7 @@ </summary> </histogram> -<histogram name="Memory.Total.TileMemory" units="MB" expires_after="2024-09-01"> +<histogram name="Memory.Total.TileMemory" units="MB" expires_after="2024-11-03"> <owner>lizeb@chromium.org</owner> <owner>chrome-gpu-memory@google.com</owner> <summary>
diff --git a/tools/metrics/histograms/metadata/mobile/histograms.xml b/tools/metrics/histograms/metadata/mobile/histograms.xml index 08256c0..3c7df52 100644 --- a/tools/metrics/histograms/metadata/mobile/histograms.xml +++ b/tools/metrics/histograms/metadata/mobile/histograms.xml
@@ -101,7 +101,7 @@ </histogram> <histogram name="Mobile.ContextMenu.EntryPoints" enum="IOSMenuScenario" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>gambard@chromium.org</owner> <owner>bling-team@chromium.org</owner> <summary> @@ -270,7 +270,7 @@ </histogram> <histogram name="Mobile.Messages.Banner.Event.{MobileInfobarType}" - enum="MobileMessagesBannerEvent" expires_after="2024-09-01"> + enum="MobileMessagesBannerEvent" expires_after="2024-11-03"> <owner>thegreenfrog@chromium.org</owner> <owner>bling-team@google.com</owner> <summary>Records infobar banner events. {MobileInfobarType}</summary> @@ -338,7 +338,7 @@ </histogram> <histogram base="true" name="Mobile.Messages.Passwords.Modal.Dismiss" - enum="MobileMessagesPasswordsModalDismiss" expires_after="2024-08-25"> + enum="MobileMessagesPasswordsModalDismiss" expires_after="2024-11-03"> <!-- Name completed by histogram_suffixes name="Mobile.Messages.Password.Type" --> <owner>thegreenfrog@chromium.org</owner> @@ -895,7 +895,7 @@ </histogram> <histogram name="MobileFre.Progress" enum="MobileFreProgress" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>bsazonov@chromium.org</owner> <owner>msarda@chromium.org</owner> <owner>droger@chromium.org</owner> @@ -1050,7 +1050,7 @@ </histogram> <histogram name="MobileOmnibox.PressedClipboardSuggestionAge" units="ms" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>jdonnelly@chromium.org</owner> <owner>mpearson@chromium.org</owner> <summary> @@ -1203,7 +1203,7 @@ </histogram> <histogram name="MobileStartup.IntentToCreationTime" units="ms" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>tedchoc@chromium.org</owner> <owner>twellington@chromium.org</owner> <owner>yfriedman@chromium.org</owner>
diff --git a/tools/metrics/histograms/metadata/navigation/histograms.xml b/tools/metrics/histograms/metadata/navigation/histograms.xml index 5e63d425..5c90fa4 100644 --- a/tools/metrics/histograms/metadata/navigation/histograms.xml +++ b/tools/metrics/histograms/metadata/navigation/histograms.xml
@@ -207,7 +207,7 @@ <histogram name="BackForwardCache.Experimental.UnexpectedIPCMessagePostedToCachedFrame.MethodHash" - enum="MojoInterfaceName" expires_after="2024-07-07"> + enum="MojoInterfaceName" expires_after="2024-11-03"> <owner>fergal@chromium.org</owner> <owner>bfcache-dev@chromium.org</owner> <summary> @@ -527,7 +527,7 @@ <histogram name="Navigation.BackForward.TimeFromOpenBackNavigationMenuToActivateItem" - units="ms" expires_after="2024-09-01"> + units="ms" expires_after="2024-11-03"> <owner>leimy@chromium.org</owner> <owner>bfcache-dev@chromium.org</owner> <summary> @@ -574,7 +574,7 @@ <histogram name="Navigation.BrowserMappedUrnUuidInIframeOrFencedFrame" enum="NavigationBrowserMappedUrnUuidInIframeOrFencedFrame" - expires_after="2024-09-03"> + expires_after="2024-11-03"> <owner>xiaochenzh@chromium.org</owner> <owner>shivanisha@chromium.org</owner> <summary> @@ -602,7 +602,7 @@ <histogram name="Navigation.CommitNavigationWithParams.Time.IsStandardLoadType.IsHTTPOrHTTPS" - units="microseconds" expires_after="2024-09-01"> + units="microseconds" expires_after="2024-11-03"> <owner>chikamune@chromium.org</owner> <owner>chrome-loading@google.com</owner> <summary> @@ -643,7 +643,7 @@ </histogram> <histogram name="Navigation.DidCommitSameDocumentNavigation.Duration" - units="ms" expires_after="2024-09-01"> + units="ms" expires_after="2024-11-03"> <owner>peilinwang@google.com</owner> <owner>woa-performance-bugs+jank@google.com</owner> <summary> @@ -751,7 +751,7 @@ </histogram> <histogram name="Navigation.EngagementTime.Ratio" units="%" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>estark@chromium.org</owner> <owner>security-enamel@chromium.org</owner> <summary> @@ -840,7 +840,7 @@ <histogram name="Navigation.GetFrameHostForNavigationTime.InDidCreateNavigationRequest.IsHTTPOrHTTPS" - units="microseconds" expires_after="2024-09-01"> + units="microseconds" expires_after="2024-11-03"> <owner>chikamune@chromium.org</owner> <owner>chrome-loading@google.com</owner> <summary> @@ -1097,7 +1097,7 @@ </histogram> <histogram name="Navigation.MainFrame.SiteEngagementLevel" - enum="SiteEngagementLevel" expires_after="2024-09-01"> + enum="SiteEngagementLevel" expires_after="2024-11-03"> <owner>meacer@chromium.org</owner> <owner>security-enamel@chromium.org</owner> <summary> @@ -1107,7 +1107,7 @@ </histogram> <histogram name="Navigation.MainFrame.ThirdPartyCookieBlockingEnabled" - enum="ThirdPartyCookieBlockState" expires_after="2024-09-01"> + enum="ThirdPartyCookieBlockState" expires_after="2024-11-03"> <owner>dullweber@chromium.org</owner> <owner>feuunk@chromium.org</owner> <summary> @@ -1203,7 +1203,7 @@ </histogram> <histogram name="Navigation.MainFrameSchemeDifferentPageOTR2" - enum="NavigationScheme" expires_after="2024-09-01"> + enum="NavigationScheme" expires_after="2024-11-03"> <owner>estark@chromium.org</owner> <owner>elawrence@chromium.org</owner> <owner>trusty-transport@chromium.org</owner> @@ -1239,7 +1239,7 @@ </histogram> <histogram name="Navigation.OnBeforeUnloadTotalTime" units="ms" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>chikamune@chromium.org</owner> <owner>chrome-loading@google.com</owner> <summary> @@ -1321,7 +1321,7 @@ </histogram> <histogram name="Navigation.PendingCommit.Duration.{RegularOrMHTMLType}" - units="ms" expires_after="2024-09-01"> + units="ms" expires_after="2024-11-03"> <owner>dcheng@chromium.org</owner> <owner>rakina@chromium.org</owner> <summary> @@ -1477,7 +1477,7 @@ <histogram name="Navigation.Prerender.ActivationCommitDeferTime{PreloadingTriggerType}" - units="ms" expires_after="2024-09-01"> + units="ms" expires_after="2024-11-03"> <owner>nhiroki@chromium.org</owner> <owner>chrome-prerendering@chromium.org</owner> <summary> @@ -1684,7 +1684,7 @@ </histogram> <histogram name="Navigation.TimeToActivatePrerender{PreloadingTriggerType}" - units="ms" expires_after="2024-09-01"> + units="ms" expires_after="2024-11-03"> <owner>nhiroki@chromium.org</owner> <owner>sreejakshetty@chromium.org</owner> <owner>chrome-prerendering@chromium.org</owner> @@ -1712,7 +1712,7 @@ </histogram> <histogram name="Navigation.TpcdMitigations.MetadataCohortDistribution" - enum="TpcdMetadataCohort" expires_after="2024-09-01"> + enum="TpcdMetadataCohort" expires_after="2024-11-03"> <owner>njeunje@chromium.org</owner> <owner>src/chrome/browser/tpcd/OWNERS</owner> <summary> @@ -1728,7 +1728,7 @@ </histogram> <histogram name="Navigation.TpcdMitigations.MetadataInstallationResult" - enum="TpcdMetadataInstallationResult" expires_after="2024-09-01"> + enum="TpcdMetadataInstallationResult" expires_after="2024-11-03"> <owner>njeunje@chromium.org</owner> <owner>src/chrome/browser/tpcd/OWNERS</owner> <summary> @@ -1807,7 +1807,7 @@ <histogram name="NavigationSuggestion.GetDomainInfoDelayBeforeAllowingNavigation" - units="ms" expires_after="2024-09-01"> + units="ms" expires_after="2024-11-03"> <owner>meacer@chromium.org</owner> <owner>blundell@chromium.org</owner> <owner>security-enamel@chromium.org</owner> @@ -1823,7 +1823,7 @@ <histogram name="NavigationSuggestion.IsLookalikeUrlDelayBeforeAllowingNavigation" - units="ms" expires_after="2024-09-01"> + units="ms" expires_after="2024-11-03"> <owner>meacer@chromium.org</owner> <owner>blundell@chromium.org</owner> <owner>security-enamel@chromium.org</owner> @@ -1892,7 +1892,7 @@ <histogram name="Prerender.Experimental.ActivationHeadersMismatch{PreloadingTriggerType}" - enum="PrerenderActivationHeaderMismatchType" expires_after="2024-09-01"> + enum="PrerenderActivationHeaderMismatchType" expires_after="2024-11-03"> <owner>lingqi@chromium.org</owner> <owner>chrome-prerendering@google.com</owner> <summary> @@ -1979,7 +1979,7 @@ </histogram> <histogram name="Prerender.Experimental.PredictionStatus.DefaultSearchEngine" - enum="PrerenderPredictionStatus" expires_after="2024-09-01"> + enum="PrerenderPredictionStatus" expires_after="2024-11-03"> <owner>nhiroki@chromium.org</owner> <owner>chrome-prerendering@google.com</owner> <summary> @@ -2004,7 +2004,7 @@ <histogram name="Prerender.Experimental.PrerenderCancelledInterface{PreloadingTriggerType}" - enum="PrerenderCancelledInterface" expires_after="2024-09-01"> + enum="PrerenderCancelledInterface" expires_after="2024-11-03"> <owner>nhiroki@chromium.org</owner> <owner>toyoshim@chromium.org</owner> <owner>lingqi@chromium.org</owner> @@ -2018,7 +2018,7 @@ <histogram name="Prerender.Experimental.PrerenderCancelledUnknownInterface{PreloadingTriggerType}" - enum="PrerenderCancelledUnknownInterface" expires_after="2024-09-01"> + enum="PrerenderCancelledUnknownInterface" expires_after="2024-11-03"> <owner>nhiroki@chromium.org</owner> <owner>toyoshim@chromium.org</owner> <owner>lingqi@chromium.org</owner> @@ -2067,7 +2067,7 @@ <histogram name="Prerender.Experimental.PrerenderHostFinalStatus{PreloadingTriggerType}" - enum="PrerenderHostFinalStatus" expires_after="2024-09-01"> + enum="PrerenderHostFinalStatus" expires_after="2024-11-03"> <owner>nhiroki@chromium.org</owner> <owner>toyoshim@chromium.org</owner> <owner>lingqi@chromium.org</owner> @@ -2152,7 +2152,7 @@ </histogram> <histogram name="Prerender.FinalStatus" enum="PrerenderFinalStatus" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>ryansturm@chromium.org</owner> <owner>tbansal@chromium.org</owner> <summary> @@ -2161,7 +2161,7 @@ </histogram> <histogram name="Prerender.PrerenderLoadComplete" enum="BooleanSuccess" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>gambard@chromium.org</owner> <owner>justincohen@chromium.org</owner> <summary> @@ -2171,7 +2171,7 @@ </histogram> <histogram name="Prerender.PrerenderTimeSaved" units="ms" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>gambard@chromium.org</owner> <owner>justincohen@chromium.org</owner> <summary>
diff --git a/tools/metrics/histograms/metadata/net/enums.xml b/tools/metrics/histograms/metadata/net/enums.xml index 55780a6..0a83b92e7 100644 --- a/tools/metrics/histograms/metadata/net/enums.xml +++ b/tools/metrics/histograms/metadata/net/enums.xml
@@ -2262,14 +2262,6 @@ <int value="4" label="NETWORK_IP_ADDRESS_CHANGED"/> </enum> -<enum name="QuicProtocolErrorRetryStatus"> - <int value="0" label="NoRetryExceededMaxRetries"/> - <int value="1" label="NoRetryHeaderReceived"/> - <int value="2" label="NoRetryNoAlternativeService"/> - <int value="3" label="RetryAltServiceBroken"/> - <int value="4" label="RetryAltServiceNotBroken"/> -</enum> - <enum name="QuicRstStreamErrorCodes"> <int value="0" label="NO_ERROR"/> <int value="1" label="ERROR_PROCESSING_STREAM"/>
diff --git a/tools/metrics/histograms/metadata/net/histograms.xml b/tools/metrics/histograms/metadata/net/histograms.xml index 2ec0d75..f4c75ae 100644 --- a/tools/metrics/histograms/metadata/net/histograms.xml +++ b/tools/metrics/histograms/metadata/net/histograms.xml
@@ -91,7 +91,7 @@ </histogram> <histogram name="Crypto.TPMDuration.{Operation}{SignatureAlgorithm}" units="ms" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>kristianm@chromium.org</owner> <owner>wfh@chromium.org</owner> <summary> @@ -152,7 +152,7 @@ </histogram> <histogram name="Crypto.TPMOperation.Virtual.{Operation}{SignatureAlgorithm}" - enum="BooleanSuccess" expires_after="2024-09-01"> + enum="BooleanSuccess" expires_after="2024-11-03"> <owner>kristianm@chromium.org</owner> <owner>agl@chromium.org</owner> <summary> @@ -174,7 +174,7 @@ </histogram> <histogram name="Crypto.TPMOperation.{Operation}{SignatureAlgorithm}" - enum="BooleanSuccess" expires_after="2024-09-01"> + enum="BooleanSuccess" expires_after="2024-11-03"> <owner>kristianm@chromium.org</owner> <owner>wfh@chromium.org</owner> <summary> @@ -331,7 +331,7 @@ </summary> </histogram> -<histogram name="HttpCache.AccessToDone2" units="ms" expires_after="2024-09-01"> +<histogram name="HttpCache.AccessToDone2" units="ms" expires_after="2024-11-03"> <owner>morlovich@chromium.org</owner> <owner>olivierli@chromium.org</owner> <summary> @@ -352,7 +352,7 @@ </summary> </histogram> -<histogram name="HttpCache.BeforeSend" units="ms" expires_after="2024-09-01"> +<histogram name="HttpCache.BeforeSend" units="ms" expires_after="2024-11-03"> <owner>morlovich@chromium.org</owner> <owner>yhirano@chromium.org</owner> <summary> @@ -363,7 +363,7 @@ </histogram> <histogram name="HttpCache.CreateDiskEntry" units="ms" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>yhirano@chromium.org</owner> <owner>net-dev@chromium.org</owner> <summary> @@ -397,7 +397,7 @@ </summary> </histogram> -<histogram name="HttpCache.OpenDiskEntry" units="ms" expires_after="2024-09-01"> +<histogram name="HttpCache.OpenDiskEntry" units="ms" expires_after="2024-11-03"> <owner>yhirano@chromium.org</owner> <owner>net-dev@chromium.org</owner> <summary> @@ -415,7 +415,7 @@ </histogram> <histogram name="HttpCache.TotalDiskCacheTimePerTransaction.{AccessType}" - units="ms" expires_after="2024-09-01"> + units="ms" expires_after="2024-11-03"> <owner>bashi@chromium.org</owner> <owner>blink-network-stack@google.com</owner> <summary> @@ -439,7 +439,7 @@ </histogram> <histogram name="Net.AlternateProtocolUsage" enum="AlternateProtocolUsage" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>dschinazi@chromium.org</owner> <owner>src/net/OWNERS</owner> <summary> @@ -449,7 +449,7 @@ </histogram> <histogram name="Net.AlternateProtocolUsageGoogle" - enum="AlternateProtocolUsage" expires_after="2024-09-01"> + enum="AlternateProtocolUsage" expires_after="2024-11-03"> <owner>dschinazi@chromium.org</owner> <owner>src/net/OWNERS</owner> <summary> @@ -757,7 +757,7 @@ </histogram> <histogram name="Net.ConnectionInfo.MainFrame" enum="ConnectionInfo" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>dschinazi@chromium.org</owner> <owner>src/net/OWNERS</owner> <summary> @@ -768,7 +768,7 @@ </histogram> <histogram name="Net.ConnectionInfo.SubResource" enum="ConnectionInfo" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>dschinazi@chromium.org</owner> <owner>src/net/OWNERS</owner> <summary> @@ -936,7 +936,7 @@ </histogram> <histogram name="Net.DNS.DnsConfig.SecureDnsMode" enum="SecureDnsModeDetails" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>horo@chromium.org</owner> <owner>src/net/dns/OWNERS</owner> <summary> @@ -1003,7 +1003,7 @@ </histogram> <histogram name="Net.DNS.DnsTask.AdditionalHttps.Requested" - enum="UnsolicitedHttpsRecordStatus" expires_after="2024-09-01"> + enum="UnsolicitedHttpsRecordStatus" expires_after="2024-11-03"> <owner>awillia@chromium.org</owner> <owner>src/net/dns/OWNERS</owner> <summary> @@ -1285,7 +1285,7 @@ </histogram> <histogram name="Net.DNS.InsecureDnsTask.FailureTime" units="ms" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>horo@chromium.org</owner> <owner>src/net/OWNERS</owner> <summary> @@ -1294,7 +1294,7 @@ </histogram> <histogram name="Net.DNS.JobQueueTime.Failure" units="ms" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>horo@chromium.org</owner> <owner>net-dev@chromium.org</owner> <summary> @@ -1305,7 +1305,7 @@ </histogram> <histogram name="Net.DNS.JobQueueTime.PerTransaction" units="ms" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>horo@chromium.org</owner> <owner>net-dev@chromium.org</owner> <summary> @@ -1687,7 +1687,7 @@ </histogram> <histogram name="Net.ErrorPageCounts.WebAppAlternativeErrorPage" - enum="NetErrorCodes" expires_after="2024-09-01"> + enum="NetErrorCodes" expires_after="2024-11-03"> <owner>finnur@chromium.org</owner> <owner>alexbn@chromium.org</owner> <summary> @@ -1896,7 +1896,7 @@ </histogram> <histogram name="Net.HttpJob.IpProtection.TotalTimeNotCached.{Chain}" - units="ms" expires_after="2024-07-14"> + units="ms" expires_after="2024-11-03"> <owner>djmitche@chromium.org</owner> <owner>src/chrome/browser/ip_protection/OWNERS</owner> <summary> @@ -2147,7 +2147,7 @@ </histogram> <histogram name="Net.NetworkChangeNotifier.NewConnectionType" - enum="NetworkConnectionType" expires_after="2024-09-01"> + enum="NetworkConnectionType" expires_after="2024-11-03"> <owner>dschinazi@chromium.org</owner> <owner>src/net/OWNERS</owner> <summary> @@ -2182,7 +2182,7 @@ </histogram> <histogram name="Net.NumQuicSessionsAtShutdown" units="units" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>dschinazi@chromium.org</owner> <owner>src/net/quic/OWNERS</owner> <summary> @@ -2509,7 +2509,7 @@ </histogram> <histogram name="Net.QuicDroppedPacketReason" enum="QuicDroppedPacketReason" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>dschinazi@chromium.org</owner> <owner>src/net/quic/OWNERS</owner> <summary> @@ -2662,81 +2662,6 @@ <summary>The number of times ServerConfigUpdateMessages ignored.</summary> </histogram> -<histogram name="Net.QuicProtocolErrorRetryDelay{HostType}.{FinalResult}" - units="ms" expires_after="2024-05-05"> - <owner>horo@chromium.org</owner> - <owner>src/net/OWNERS</owner> - <summary> - Log the retry delay caused by ERR_QUIC_PROTOCOL_ERROR. Recorded when - HttpNetworkTransaction finishes. - </summary> - <token key="HostType"> - <variant name=""/> - <variant name="H3SupportedGoogleHost"/> - </token> - <token key="FinalResult"> - <variant name="Failure"/> - <variant name="Success"/> - </token> -</histogram> - -<histogram name="Net.QuicProtocolError{HostType}.RetryStatus" - enum="QuicProtocolErrorRetryStatus" expires_after="2024-05-05"> - <owner>horo@chromium.org</owner> - <owner>src/net/OWNERS</owner> - <summary> - The status of how HttpNetworkTransaction handles a ERR_QUIC_PROTOCOL_ERROR. - Recorded when HttpNetworkTransaction finishes. - </summary> - <token key="HostType"> - <variant name=""/> - <variant name="H3SupportedGoogleHost"/> - </token> -</histogram> - -<histogram name="Net.QuicProtocolError{HostType}.{RetryStatus}.QuicErrorCode" - enum="QuicErrorCodes" expires_after="2024-05-05"> - <owner>horo@chromium.org</owner> - <owner>src/net/OWNERS</owner> - <summary> - Log the QUIC error code when HttpNetworkTransaction handles a - ERR_QUIC_PROTOCOL_ERROR. - </summary> - <token key="HostType"> - <variant name=""/> - <variant name="H3SupportedGoogleHost"/> - </token> - <token key="RetryStatus"> - <variant name="NoRetryExceededMaxRetries"/> - <variant name="NoRetryHeaderReceived"/> - <variant name="NoRetryNoAlternativeService"/> - <variant name="RetryAltServiceBroken"/> - <variant name="RetryAltServiceNotBroken"/> - </token> -</histogram> - -<histogram - name="Net.QuicProtocolError{HostType}.{RetryStatus}.QuicStreamErrorCode" - enum="QuicRstStreamErrorCodes" expires_after="2024-05-05"> - <owner>horo@chromium.org</owner> - <owner>src/net/OWNERS</owner> - <summary> - Log the QUIC stream error code when HttpNetworkTransaction handles a - ERR_QUIC_PROTOCOL_ERROR. - </summary> - <token key="HostType"> - <variant name=""/> - <variant name="H3SupportedGoogleHost"/> - </token> - <token key="RetryStatus"> - <variant name="NoRetryExceededMaxRetries"/> - <variant name="NoRetryHeaderReceived"/> - <variant name="NoRetryNoAlternativeService"/> - <variant name="RetryAltServiceBroken"/> - <variant name="RetryAltServiceNotBroken"/> - </token> -</histogram> - <histogram name="Net.QuicProxyDatagramClientSocket.MaxQueueSizeReached" enum="BooleanSuccess" expires_after="2024-06-13"> <owner>ciaramcmullin@chromium.org</owner> @@ -3171,7 +3096,7 @@ </histogram> <histogram name="Net.QuicSession.ConnectionMigration" - enum="QuicConnectionMigrationStatus" expires_after="2024-09-01"> + enum="QuicConnectionMigrationStatus" expires_after="2024-11-03"> <owner>dschinazi@chromium.org</owner> <owner>src/net/quic/OWNERS</owner> <summary> @@ -3267,7 +3192,7 @@ </histogram> <histogram name="Net.QuicSession.EncryptionEstablishedTime" - units="Milliseconds" expires_after="2024-09-01"> + units="Milliseconds" expires_after="2024-11-03"> <owner>fayang@chromium.org</owner> <owner>src/net/quic/OWNERS</owner> <summary> @@ -3332,7 +3257,7 @@ </histogram> <histogram name="Net.QuicSession.HandshakeConfirmedTime" units="Milliseconds" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>dschinazi@chromium.org</owner> <owner>src/net/quic/OWNERS</owner> <summary> @@ -3442,7 +3367,7 @@ </histogram> <histogram name="Net.QuicSession.HostResolution.HandshakeConfirmedTime" - units="Milliseconds" expires_after="2024-09-01"> + units="Milliseconds" expires_after="2024-11-03"> <owner>dschinazi@chromium.org</owner> <owner>src/net/quic/OWNERS</owner> <summary> @@ -3598,7 +3523,7 @@ </summary> </histogram> -<histogram name="Net.QuicSession.MinRTT" units="ms" expires_after="2024-09-01"> +<histogram name="Net.QuicSession.MinRTT" units="ms" expires_after="2024-11-03"> <owner>dschinazi@chromium.org</owner> <owner>src/net/quic/OWNERS</owner> <summary> @@ -3637,7 +3562,7 @@ </histogram> <histogram name="Net.QuicSession.NumForwardProgressMadeAfterPathDegrading" - units="times" expires_after="2024-09-01"> + units="times" expires_after="2024-11-03"> <owner>renjietang@chromium.org</owner> <owner>src/net/quic/OWNERS</owner> <summary> @@ -3864,7 +3789,7 @@ </histogram> <histogram name="Net.QuicSession.PortMigration" - enum="QuicConnectionMigrationStatus" expires_after="2024-09-01"> + enum="QuicConnectionMigrationStatus" expires_after="2024-11-03"> <owner>dschinazi@chromium.org</owner> <owner>src/net/quic/OWNERS</owner> <summary>The result of a QUIC port migration attempt.</summary> @@ -3943,7 +3868,7 @@ </histogram> <histogram name="Net.QuicSession.QuicVersion" units="units" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>dschinazi@chromium.org</owner> <owner>src/net/quic/OWNERS</owner> <summary>Version of the QUIC protocol used for this connection.</summary> @@ -4119,7 +4044,7 @@ </histogram> <histogram name="Net.QuicSession.SmoothedRTT" units="ms" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>dschinazi@chromium.org</owner> <owner>src/net/quic/OWNERS</owner> <summary> @@ -4304,7 +4229,7 @@ </histogram> <histogram name="Net.QuicSession.TimeFromResolveHostToConfirmConnection" - units="Milliseconds" expires_after="2024-09-01"> + units="Milliseconds" expires_after="2024-11-03"> <owner>renjietang@chromium.org</owner> <owner>src/net/quic/OWNERS</owner> <summary> @@ -4355,7 +4280,7 @@ </histogram> <histogram name="Net.QuicSession.ValidConnectionTime" units="ms" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>renjietang@chromium.org</owner> <owner>src/net/quic/OWNERS</owner> <summary> @@ -4388,7 +4313,7 @@ </histogram> <histogram name="Net.QuicSession.WriteError" enum="NetErrorCodes" - expires_after="2024-07-21"> + expires_after="2024-11-03"> <owner>dschinazi@chromium.org</owner> <owner>src/net/quic/OWNERS</owner> <summary> @@ -4428,7 +4353,7 @@ </histogram> <histogram name="Net.QuicSession.ZeroRttReason" - enum="SSLHandshakeEarlyDataReason" expires_after="2024-09-01"> + enum="SSLHandshakeEarlyDataReason" expires_after="2024-11-03"> <owner>dschinazi@chromium.org</owner> <owner>src/net/quic/OWNERS</owner> <summary> @@ -4532,7 +4457,7 @@ </histogram> <histogram name="Net.QuicStreamFactory.DoConnectFailureLocation" - enum="JobProtocolErrorLocation" expires_after="2024-09-01"> + enum="JobProtocolErrorLocation" expires_after="2024-11-03"> <owner>renjietang@chromium.org</owner> <owner>src/net/quic/OWNERS</owner> <summary> @@ -4666,7 +4591,7 @@ </histogram> <histogram name="Net.RestrictedCookieManager.EstimatedCookieAccessDetailsSize" - units="bytes" expires_after="2024-09-01"> + units="bytes" expires_after="2024-11-03"> <owner>vollick@google.com</owner> <owner>src/net/cookies/OWNERS</owner> <summary> @@ -4685,7 +4610,7 @@ <histogram name="Net.RestrictedCookieManager.EstimatedDeDupedCookieAccessDetailsSize" - units="bytes" expires_after="2024-09-01"> + units="bytes" expires_after="2024-11-03"> <owner>vollick@google.com</owner> <owner>src/net/cookies/OWNERS</owner> <summary> @@ -4704,7 +4629,7 @@ <histogram name="Net.RestrictedCookieManager.EstimatedDeDupedCookieAccessDetailsSizeReduction" - units="bytes" expires_after="2024-09-01"> + units="bytes" expires_after="2024-11-03"> <owner>vollick@google.com</owner> <owner>src/net/cookies/OWNERS</owner> <summary> @@ -4757,7 +4682,7 @@ </histogram> <histogram name="Net.RestrictedCookieManager.SiteForCookiesOK" - enum="BooleanMatched" expires_after="2024-09-01"> + enum="BooleanMatched" expires_after="2024-11-03"> <owner>morlovich@chromium.org</owner> <owner>src/net/cookies/OWNERS</owner> <summary> @@ -5416,7 +5341,7 @@ </histogram> <histogram name="Net.SSLNegotiatedAlpnProtocol" - enum="SSLNegotiatedAlpnProtocol" expires_after="2024-09-01"> + enum="SSLNegotiatedAlpnProtocol" expires_after="2024-11-03"> <owner>dschinazi@chromium.org</owner> <owner>src/net/OWNERS</owner> <summary> @@ -5484,7 +5409,7 @@ </histogram> <histogram name="Net.TcpConnectAttempt.Latency.Success" units="ms" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>bashi@chromium.org</owner> <owner>src/net/OWNERS</owner> <summary> @@ -5570,7 +5495,7 @@ </histogram> <histogram base="true" name="Net.TrustTokens.RequestHelperFactoryOutcome" - enum="TrustTokenRequestHelperFactoryOutcome" expires_after="2024-09-01"> + enum="TrustTokenRequestHelperFactoryOutcome" expires_after="2024-11-03"> <!-- Name completed by histogram_suffixes name="TrustTokenOperationType" --> <owner>svaldez@chromium.org</owner> @@ -5685,7 +5610,7 @@ </histogram> <histogram name="Net.WebSocket.FallbackResult" enum="WebSocketFallbackResult" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>bashi@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 d320495..a2bc90e 100644 --- a/tools/metrics/histograms/metadata/network/histograms.xml +++ b/tools/metrics/histograms/metadata/network/histograms.xml
@@ -877,7 +877,7 @@ <histogram name="Network.Cellular.CarrierLock.ConfigurationStateAfterInitialization" - enum="CellularCarrierLockInitialState" expires_after="2024-09-01"> + enum="CellularCarrierLockInitialState" expires_after="2024-11-03"> <owner>michamazur@google.com</owner> <owner>cros-cellular-core@google.com</owner> <summary> @@ -888,7 +888,7 @@ </histogram> <histogram name="Network.Cellular.CarrierLock.Error.{ErrorType}" - enum="CellularCarrierLockError" expires_after="2024-09-01"> + enum="CellularCarrierLockError" expires_after="2024-11-03"> <owner>michamazur@google.com</owner> <owner>cros-cellular-core@google.com</owner> <summary> @@ -938,7 +938,7 @@ </histogram> <histogram name="Network.Cellular.CarrierLock.LockState" - enum="CellularCarrierLockLockState" expires_after="2024-09-01"> + enum="CellularCarrierLockLockState" expires_after="2024-11-03"> <owner>michamazur@google.com</owner> <owner>cros-cellular-core@google.com</owner> <summary> @@ -989,7 +989,7 @@ </histogram> <histogram name="Network.Cellular.CarrierLock.PsmClaimResponse" - enum="CellularCarrierLockPsmResult" expires_after="2024-09-01"> + enum="CellularCarrierLockPsmResult" expires_after="2024-11-03"> <owner>michamazur@google.com</owner> <owner>cros-cellular-core@google.com</owner> <summary> @@ -2293,7 +2293,7 @@ <histogram name="Network.Shill.Cellular.3GPPRegistrationDelayedDrop" enum="NetworkCellular3GPPRegistrationDelayedDrop" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>ejcaruso@chromium.org</owner> <owner>cros-network-metrics@google.com</owner> <summary> @@ -2368,7 +2368,7 @@ </histogram> <histogram name="Network.Shill.Cellular.Drop" enum="NetworkCellularTechnology" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>ejcaruso@chromium.org</owner> <owner>cros-network-metrics@google.com</owner> <summary> @@ -2378,7 +2378,7 @@ </histogram> <histogram name="Network.Shill.Cellular.EntitlementCheck" - enum="NetworkCellularEntitlementCheck" expires_after="2024-09-01"> + enum="NetworkCellularEntitlementCheck" expires_after="2024-11-03"> <owner>andrewlassalle@chromium.org</owner> <owner>cros-network-metrics@google.com</owner> <summary> @@ -2432,7 +2432,7 @@ </histogram> <histogram name="Network.Shill.Cellular.SignalStrengthBeforeDrop" units="units" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>ejcaruso@chromium.org</owner> <owner>cros-network-metrics@google.com</owner> <summary> @@ -2482,7 +2482,7 @@ </histogram> <histogram name="Network.Shill.Cellular.TimeToInitialize" units="ms" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>ejcaruso@chromium.org</owner> <owner>cros-network-metrics@google.com</owner> <summary> @@ -2502,7 +2502,7 @@ </histogram> <histogram name="Network.Shill.Cellular.TimeToPortal" units="ms" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>ejcaruso@chromium.org</owner> <owner>cros-network-metrics@google.com</owner> <summary> @@ -4818,7 +4818,7 @@ </histogram> <histogram name="NetworkService.TimeToGrantCacheAccess" units="ms" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>wfh@chromium.org</owner> <owner>mmenke@chromium.org</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 ba3b7f7..0455d2e 100644 --- a/tools/metrics/histograms/metadata/new_tab_page/histograms.xml +++ b/tools/metrics/histograms/metadata/new_tab_page/histograms.xml
@@ -23,7 +23,7 @@ <histograms> <histogram name="NewTabPage.ActionAndroid2" enum="NewTabPageActionAndroid2" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>twellington@chromium.org</owner> <owner>finkm@chromium.org</owner> <summary> @@ -47,7 +47,7 @@ </histogram> <histogram name="NewTabPage.AsHomeSurface" enum="Boolean" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>hanxi@chromium.org</owner> <owner>xinyiji@chromium.org</owner> <summary> @@ -58,7 +58,7 @@ </histogram> <histogram name="NewTabPage.AsHomeSurface.ShownAtStartup" enum="Boolean" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>hanxi@chromium.org</owner> <owner>xinyiji@chromium.org</owner> <summary> @@ -69,7 +69,7 @@ </histogram> <histogram name="NewTabPage.BackgroundImageSource" - enum="NTPBackgroundImageSource" expires_after="2024-09-01"> + enum="NTPBackgroundImageSource" expires_after="2024-11-03"> <owner>danpeng@google.com</owner> <owner>pauladedeji@google.com</owner> <owner>chrome-desktop-ntp@google.com</owner> @@ -80,7 +80,7 @@ </histogram> <histogram name="NewTabPage.BackgroundService.Collections.RequestLatency" - units="ms" expires_after="2024-09-01"> + units="ms" expires_after="2024-11-03"> <owner>danpeng@google.com</owner> <owner>tiborg@chromium.org</owner> <owner>yyushkina@chromium.org</owner> @@ -132,7 +132,7 @@ </histogram> <histogram name="NewTabPage.BackgroundService.Images.RequestLatency" units="ms" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>tiborg@chromium.org</owner> <owner>pauladedeji@google.com</owner> <owner>chrome-desktop-ntp@google.com</owner> @@ -385,7 +385,7 @@ </histogram> <histogram name="NewTabPage.ConcretePage" enum="NewTabPageConcretePage" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>danpeng@google.com</owner> <owner>tiborg@chromium.org</owner> <owner>chrome-desktop-ntp@google.com</owner> @@ -396,7 +396,7 @@ </histogram> <histogram name="NewTabPage.ContentSuggestions.ArticlesListVisible" - enum="BooleanVisible" expires_after="2024-09-01"> + enum="BooleanVisible" expires_after="2024-11-03"> <owner>freedjm@chromium.org</owner> <owner>feed@chromium.org</owner> <summary> @@ -458,7 +458,7 @@ </histogram> <histogram name="NewTabPage.CustomizeChromeOpened" - enum="NTPCustomizeChromeEntryPoint" expires_after="2024-09-01"> + enum="NTPCustomizeChromeEntryPoint" expires_after="2024-11-03"> <owner>pauladedeji@google.com</owner> <owner>danpeng@google.com</owner> <owner>chrome-desktop-ntp@google.com</owner> @@ -483,7 +483,7 @@ </histogram> <histogram name="NewTabPage.Customized" enum="NTPCustomizedFeatures" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>tiborg@chromium.org</owner> <owner>yyushkina@chromium.org</owner> <owner>chrome-desktop-ntp@google.com</owner> @@ -494,7 +494,7 @@ </histogram> <histogram name="NewTabPage.CustomizedShortcuts" - enum="NTPCustomizedShortcutSettings" expires_after="2024-09-01"> + enum="NTPCustomizedShortcutSettings" expires_after="2024-11-03"> <owner>tiborg@chromium.org</owner> <owner>yyushkina@chromium.org</owner> <owner>chrome-desktop-ntp@google.com</owner> @@ -564,7 +564,7 @@ </histogram> <histogram name="NewTabPage.FailToShowHomeSurfaceUI" - enum="FailToShowHomeSurfaceReason" expires_after="2024-09-01"> + enum="FailToShowHomeSurfaceReason" expires_after="2024-11-03"> <owner>hanxi@chromium.org</owner> <owner>xinyiji@chromium.org</owner> <summary> @@ -599,7 +599,7 @@ </summary> </histogram> -<histogram name="NewTabPage.Height" units="pixels" expires_after="2024-09-01"> +<histogram name="NewTabPage.Height" units="pixels" expires_after="2024-11-03"> <owner>danpeng@google.com</owner> <owner>tiborg@chromium.org</owner> <owner>chrome-desktop-ntp@google.com</owner> @@ -613,7 +613,7 @@ <histogram name="NewTabPage.HistoryClusters.CartAssociationStatus" enum="NTPHistoryClustersModuleCartAssociationStatus" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>yuezhanggg@chromium.org</owner> <owner>romanarora@chromium.org</owner> <owner>tiborg@chromium.org</owner> @@ -653,7 +653,7 @@ </histogram> <histogram name="NewTabPage.HistoryClusters.DisplayLayout" - enum="NTPHistoryClustersModuleDisplayLayout" expires_after="2024-09-01"> + enum="NTPHistoryClustersModuleDisplayLayout" expires_after="2024-11-03"> <owner>romanarora@chromium.org</owner> <owner>tiborg@chromium.org</owner> <owner>chrome-desktop-ntp@google.com</owner> @@ -679,7 +679,7 @@ </histogram> <histogram name="NewTabPage.HistoryClusters.HasClusterToShow" enum="Boolean" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>sophiechang@chromium.org</owner> <owner>tiborg@chromium.org</owner> <owner>chrome-desktop-ntp@google.com</owner> @@ -716,7 +716,7 @@ </histogram> <histogram name="NewTabPage.HistoryClusters.ImageLoadSuccess" enum="Boolean" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>romanarora@chromium.org</owner> <owner>tiborg@chromium.org</owner> <owner>chrome-desktop-ntp@google.com</owner> @@ -729,7 +729,7 @@ </histogram> <histogram name="NewTabPage.HistoryClusters.IneligibleReason" - enum="NTPHistoryClustersIneligibleReason" expires_after="2024-09-01"> + enum="NTPHistoryClustersIneligibleReason" expires_after="2024-11-03"> <owner>romanarora@chromium.org</owner> <owner>tiborg@chromium.org</owner> <owner>chrome-desktop-ntp@google.com</owner> @@ -742,7 +742,7 @@ </histogram> <histogram name="NewTabPage.HistoryClusters.Layout{LayoutNum}.Click" - enum="NTPHistoryClustersElementType" expires_after="2024-09-01"> + enum="NTPHistoryClustersElementType" expires_after="2024-11-03"> <owner>romanarora@chromium.org</owner> <owner>tiborg@chromium.org</owner> <owner>chrome-desktop-ntp@google.com</owner> @@ -761,7 +761,7 @@ <histogram name="NewTabPage.HistoryClusters.Layout{LayoutNum}.ImageDisplayState" - enum="NTPHistoryClustersImageDisplayState" expires_after="2024-09-01"> + enum="NTPHistoryClustersImageDisplayState" expires_after="2024-11-03"> <owner>romanarora@chromium.org</owner> <owner>tiborg@chromium.org</owner> <owner>chrome-desktop-ntp@google.com</owner> @@ -779,7 +779,7 @@ <histogram name="NewTabPage.HistoryClusters.Layout{LayoutNum}.{Type}Tile.ClickIndex" - units="index" expires_after="2024-09-01"> + units="index" expires_after="2024-11-03"> <owner>romanarora@chromium.org</owner> <owner>tiborg@chromium.org</owner> <owner>chrome-desktop-ntp@google.com</owner> @@ -803,7 +803,7 @@ </histogram> <histogram name="NewTabPage.HistoryClusters.NumClusterCandidates" - units="counts" expires_after="2024-09-01"> + units="counts" expires_after="2024-11-03"> <owner>sophiechang@chromium.org</owner> <owner>tiborg@chromium.org</owner> <owner>chrome-desktop-ntp@google.com</owner> @@ -829,7 +829,7 @@ </histogram> <histogram name="NewTabPage.HistoryClusters.NumVisits" units="counts" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>romanarora@chromium.org</owner> <owner>tiborg@chromium.org</owner> <owner>chrome-desktop-ntp@google.com</owner> @@ -842,7 +842,7 @@ </histogram> <histogram name="NewTabPage.HistoryClusters.Score" units="score" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>mfacey@chromium.org</owner> <owner>romanarora@chromium.org</owner> <owner>tiborg@chromium.org</owner> @@ -858,7 +858,7 @@ <histogram name="NewTabPage.HistoryClusters.SegmentationPlatformClientReadyAt{State}" - enum="Boolean" expires_after="2024-09-01"> + enum="Boolean" expires_after="2024-11-03"> <owner>romanarora@chromium.org</owner> <owner>chrome-desktop-ntp@google.com</owner> <summary> @@ -887,7 +887,7 @@ </histogram> <histogram name="NewTabPage.Images.ShownTime{ImageType}" units="ms" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>danpeng@google.com</owner> <owner>pauladedeji@google.com</owner> <owner>chrome-desktop-ntp@google.com</owner> @@ -951,7 +951,7 @@ </summary> </histogram> -<histogram name="NewTabPage.LoadTime" units="ms" expires_after="2024-09-01"> +<histogram name="NewTabPage.LoadTime" units="ms" expires_after="2024-11-03"> <owner>tiborg@chromium.org</owner> <owner>yyushkina@chromium.org</owner> <owner>chrome-desktop-ntp@google.com</owner> @@ -1082,7 +1082,7 @@ </histogram> <histogram name="NewTabPage.Modules.DataRequest" enum="NtpModules" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>danpeng@google.com</owner> <owner>tiborg@chromium.org</owner> <owner>yyushkina@chromium.org</owner> @@ -1119,7 +1119,7 @@ </histogram> <histogram name="NewTabPage.Modules.Dismissed" units="count" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>danpeng@google.com</owner> <owner>tiborg@chromium.org</owner> <owner>chrome-desktop-ntp@google.com</owner> @@ -1132,7 +1132,7 @@ </histogram> <histogram base="true" name="NewTabPage.Modules.EnabledOnNTPLoad" - enum="BooleanEnabled" expires_after="2024-09-01"> + enum="BooleanEnabled" expires_after="2024-11-03"> <owner>danpeng@google.com</owner> <owner>tiborg@chromium.org</owner> <owner>chrome-desktop-ntp@google.com</owner> @@ -1184,7 +1184,7 @@ </histogram> <histogram name="NewTabPage.Modules.FreImplicitOptIn" enum="BooleanEnabled" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>danpeng@google.com</owner> <owner>pauladedeji@google.com</owner> <owner>chrome-desktop-ntp@google.com</owner> @@ -1249,7 +1249,7 @@ </histogram> <histogram name="NewTabPage.Modules.Impression" units="ms" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>danpeng@google.com</owner> <owner>tiborg@chromium.org</owner> <owner>yyushkina@chromium.org</owner> @@ -1320,7 +1320,7 @@ </histogram> <histogram name="NewTabPage.Modules.Loaded" units="ms" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>danpeng@google.com</owner> <owner>tiborg@chromium.org</owner> <owner>yyushkina@chromium.org</owner> @@ -1379,7 +1379,7 @@ </histogram> <histogram name="NewTabPage.Modules.ShownTime" units="ms" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>danpeng@google.com</owner> <owner>tiborg@chromium.org</owner> <owner>yyushkina@chromium.org</owner> @@ -1391,7 +1391,7 @@ </histogram> <histogram name="NewTabPage.Modules.Usage" units="count" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>danpeng@google.com</owner> <owner>tiborg@chromium.org</owner> <owner>yyushkina@chromium.org</owner> @@ -1780,7 +1780,7 @@ </histogram> <histogram name="NewTabPage.SuggestTiles.DeletedTileType" - enum="SuggestTileType" expires_after="2024-09-01"> + enum="SuggestTileType" expires_after="2024-11-03"> <owner>ender@google.com</owner> <owner>mahmadi@chromium.org</owner> <owner>chrome-omnibox-team@google.com</owner> @@ -1795,7 +1795,7 @@ </histogram> <histogram name="NewTabPage.SuggestTiles.SelectedTileType" - enum="SuggestTileType" expires_after="2024-09-01"> + enum="SuggestTileType" expires_after="2024-11-03"> <owner>ender@google.com</owner> <owner>mahmadi@chromium.org</owner> <owner>chrome-omnibox-team@google.com</owner> @@ -1810,7 +1810,7 @@ </histogram> <histogram name="NewTabPage.TabResumption.ClickIndex" units="count" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>mfacey@google.com</owner> <owner>romanarora@google.com</owner> <owner>chrome-desktop-ntp@google.com</owner> @@ -1833,7 +1833,7 @@ </histogram> <histogram name="NewTabPage.TabResumption.TimeElapsedSinceLastVisit" units="ms" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>mfacey@google.com</owner> <owner>romanarora@google.com</owner> <owner>chrome-desktop-ntp@google.com</owner> @@ -1920,7 +1920,7 @@ </summary> </histogram> -<histogram name="NewTabPage.TimeSpent" units="ms" expires_after="2024-09-01"> +<histogram name="NewTabPage.TimeSpent" units="ms" expires_after="2024-11-03"> <owner>freedjm@chromium.org</owner> <owner>feed@chromium.org</owner> <owner>olivierrobin@chromium.org</owner> @@ -2020,7 +2020,7 @@ <histogram name="NewTabPage.WallpaperSearch.SetInspirationThemeProcessingLatency" - units="ms" expires_after="2024-09-01"> + units="ms" expires_after="2024-11-03"> <owner>tiborg@chromium.org</owner> <owner>rtatum@google.com</owner> <owner>chrome-desktop-ntp@google.com</owner>
diff --git a/tools/metrics/histograms/metadata/notifications/histograms.xml b/tools/metrics/histograms/metadata/notifications/histograms.xml index 723dbd0..a0e8cf4 100644 --- a/tools/metrics/histograms/metadata/notifications/histograms.xml +++ b/tools/metrics/histograms/metadata/notifications/histograms.xml
@@ -94,7 +94,7 @@ </variants> <histogram name="Notifications.Actions" enum="NotificationActionType" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>dewittj@chromium.org</owner> <owner>leandre@chromium.org</owner> <owner>cros-status-area-eng@google.com</owner> @@ -593,7 +593,7 @@ </histogram> <histogram name="Notifications.NotificationHelper.ComServerModuleStatus" - enum="NotificationHelperComServerModuleStatus" expires_after="2024-09-01"> + enum="NotificationHelperComServerModuleStatus" expires_after="2024-11-03"> <owner>finnur@chromium.org</owner> <owner>peter@chromium.org</owner> <summary> @@ -606,7 +606,7 @@ <histogram name="Notifications.NotificationHelper.NotificationActivatorPrimaryStatus" enum="NotificationHelperNotificationActivatorPrimaryStatus" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>finnur@chromium.org</owner> <owner>peter@chromium.org</owner> <summary> @@ -800,7 +800,7 @@ </histogram> <histogram name="Notifications.PersistentNotificationActionCount" - units="buttons" expires_after="2024-09-01"> + units="buttons" expires_after="2024-11-03"> <owner>peter@chromium.org</owner> <summary> The number of action buttons the developer provided for a persistent Web @@ -939,7 +939,7 @@ </histogram> <histogram name="Notifications.Windows.ActivationStatus" - enum="WindowsNotificationActivationStatus" expires_after="2024-09-01"> + enum="WindowsNotificationActivationStatus" expires_after="2024-11-03"> <owner>finnur@chromium.org</owner> <owner>peter@chromium.org</owner> <summary> @@ -974,7 +974,7 @@ </histogram> <histogram name="Notifications.Windows.DisplayFailure" enum="Hresult" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>finnur@chromium.org</owner> <owner>peter@chromium.org</owner> <summary> @@ -984,7 +984,7 @@ </histogram> <histogram name="Notifications.Windows.DisplayStatus" - enum="WindowsNotificationDisplayStatus" expires_after="2024-09-01"> + enum="WindowsNotificationDisplayStatus" expires_after="2024-11-03"> <owner>finnur@chromium.org</owner> <owner>peter@chromium.org</owner> <summary> @@ -999,7 +999,7 @@ <histogram name="Notifications.Windows.GetDisplayedLaunchIdStatus" enum="WindowsNotificationGetDisplayedLaunchIdStatus" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>finnur@chromium.org</owner> <owner>peter@chromium.org</owner> <summary> @@ -1011,7 +1011,7 @@ </histogram> <histogram name="Notifications.Windows.GetDisplayedStatus" - enum="WindowsNotificationGetDisplayedStatus" expires_after="2024-09-01"> + enum="WindowsNotificationGetDisplayedStatus" expires_after="2024-11-03"> <owner>finnur@chromium.org</owner> <owner>peter@chromium.org</owner> <summary> @@ -1060,7 +1060,7 @@ </histogram> <histogram name="Notifications.Windows.GetSettingStatus" - enum="WindowsNotificationGetSettingStatus" expires_after="2024-09-01"> + enum="WindowsNotificationGetSettingStatus" expires_after="2024-11-03"> <owner>finnur@chromium.org</owner> <owner>peter@chromium.org</owner> <summary> @@ -1082,7 +1082,7 @@ </histogram> <histogram name="Notifications.Windows.HandleEventStatus" - enum="WindowsNotificationHandleEventStatus" expires_after="2024-09-01"> + enum="WindowsNotificationHandleEventStatus" expires_after="2024-11-03"> <owner>finnur@chromium.org</owner> <owner>peter@chromium.org</owner> <summary> @@ -1118,7 +1118,7 @@ </histogram> <histogram name="Notifications.Windows.OnFailedStatus" - enum="WindowsNotificationOnFailedStatus" expires_after="2024-09-01"> + enum="WindowsNotificationOnFailedStatus" expires_after="2024-11-03"> <owner>chengx@chromium.org</owner> <owner>peter@chromium.org</owner> <summary> @@ -1141,7 +1141,7 @@ </histogram> <histogram name="Notifications.Windows.ShowFailedErrorCode" enum="Hresult" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>finnur@chromium.org</owner> <owner>peter@chromium.org</owner> <summary>
diff --git a/tools/metrics/histograms/metadata/omnibox/histograms.xml b/tools/metrics/histograms/metadata/omnibox/histograms.xml index 39884d0..035b72a3 100644 --- a/tools/metrics/histograms/metadata/omnibox/histograms.xml +++ b/tools/metrics/histograms/metadata/omnibox/histograms.xml
@@ -116,7 +116,7 @@ </variants> <histogram name="Omnibox.AcceptedKeywordSuggestion" - enum="OmniboxEnteredKeywordMode2" expires_after="2024-08-30"> + enum="OmniboxEnteredKeywordMode2" expires_after="2024-11-03"> <owner>yoangela@chromium.org</owner> <owner>chrome-omnibox-team@google.com</owner> <summary> @@ -130,7 +130,7 @@ </histogram> <histogram name="Omnibox.ActionInSuggest.UsageByType.{Type}" - enum="BooleanUsage" expires_after="2024-09-01"> + enum="BooleanUsage" expires_after="2024-11-03"> <owner>ender@google.com</owner> <owner>chrome-mobile-search@google.com</owner> <summary> @@ -153,7 +153,7 @@ </histogram> <histogram name="Omnibox.ActionInSuggest.{ShownOrUsed}" - enum="ActionInSuggestType" expires_after="2024-09-01"> + enum="ActionInSuggestType" expires_after="2024-11-03"> <owner>ender@google.com</owner> <owner>chrome-mobile-search@google.com</owner> <summary> @@ -175,7 +175,7 @@ </histogram> <histogram name="Omnibox.AnswerParseSuccess" enum="BooleanSuccess" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>jdonnelly@chromium.org</owner> <owner>chrome-omnibox-team@google.com</owner> <summary> @@ -185,7 +185,7 @@ </histogram> <histogram name="Omnibox.AnswerParseType" enum="SuggestionAnswerType" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>jdonnelly@chromium.org</owner> <owner>chrome-omnibox-team@google.com</owner> <summary> @@ -201,7 +201,7 @@ <histogram name="Omnibox.AsyncAutocompletionTime2.Provider.{Provider}{Completed}" - units="ms" expires_after="2024-09-01"> + units="ms" expires_after="2024-11-03"> <owner>manukh@chromium.org</owner> <owner>jdonnelly@chromium.org</owner> <owner>chrome-omnibox-team@google.com</owner> @@ -264,7 +264,7 @@ </histogram> <histogram name="Omnibox.AsyncAutocompletionTime2.{Change}{Completed}" - units="ms" expires_after="2024-09-01"> + units="ms" expires_after="2024-11-03"> <owner>manukh@chromium.org</owner> <owner>jdonnelly@chromium.org</owner> <owner>chrome-omnibox-team@google.com</owner> @@ -346,7 +346,7 @@ </histogram> <histogram name="Omnibox.AutocompletionTime.UpdateResult{Slice}" - units="microseconds" expires_after="2024-09-01"> + units="microseconds" expires_after="2024-11-03"> <owner>manukh@chromium.org</owner> <owner>jdonnelly@chromium.org</owner> <owner>chrome-omnibox-team@google.com</owner> @@ -403,7 +403,7 @@ </histogram> <histogram name="Omnibox.CalculateVisibleHint.Duration" units="ms" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>peilinwang@google.com</owner> <owner>woa-performance-bugs+jank@google.com</owner> <summary> @@ -413,7 +413,7 @@ </histogram> <histogram name="Omnibox.CharTypedToRepaintLatency" units="ms" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>manukh@chromium.org</owner> <owner>jdonnelly@chromium.org</owner> <owner>mpearson@chromium.org</owner> @@ -446,7 +446,7 @@ </histogram> <histogram name="Omnibox.CharTypedToRepaintLatency.InsertToPresent" units="ms" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>manukh@chromium.org</owner> <owner>mpearson@chromium.org</owner> <owner>jdonnelly@chromium.org</owner> @@ -495,7 +495,7 @@ </histogram> <histogram name="Omnibox.CharTypedToRepaintLatency.ToPaint" units="ms" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>manukh@chromium.org</owner> <owner>mpearson@chromium.org</owner> <owner>jdonnelly@chromium.org</owner> @@ -608,7 +608,7 @@ </histogram> <histogram name="Omnibox.DocumentSuggest.HttpResponseCode" - enum="HttpResponseCode" expires_after="2024-09-01"> + enum="HttpResponseCode" expires_after="2024-11-03"> <owner>manukh@chromium.org</owner> <owner>jdonnelly@chromium.org</owner> <summary> @@ -621,7 +621,7 @@ </histogram> <histogram name="Omnibox.DocumentSuggest.ProviderAllowed" - enum="DocumentProviderAllowedReason" expires_after="2024-09-01"> + enum="DocumentProviderAllowedReason" expires_after="2024-11-03"> <owner>manukh@chromium.org</owner> <owner>jdonnelly@chromium.org</owner> <summary> @@ -642,7 +642,7 @@ </histogram> <histogram name="Omnibox.DocumentSuggest.Requests" - enum="DocumentSuggestRequestEvent" expires_after="2024-09-01"> + enum="DocumentSuggestRequestEvent" expires_after="2024-11-03"> <owner>manukh@chromium.org</owner> <owner>jdonnelly@chromium.org</owner> <summary> @@ -652,7 +652,7 @@ </histogram> <histogram name="Omnibox.DocumentSuggest.RequestTime" units="ms" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>manukh@chromium.org</owner> <owner>jdonnelly@chromium.org</owner> <summary> @@ -668,7 +668,7 @@ </histogram> <histogram name="Omnibox.DocumentSuggest.RequestTime.Interrupted" units="ms" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>manukh@chromium.org</owner> <owner>jdonnelly@chromium.org</owner> <summary> @@ -687,7 +687,7 @@ </histogram> <histogram name="Omnibox.DocumentSuggest.RequestTime.NotInterrupted" units="ms" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>manukh@chromium.org</owner> <owner>jdonnelly@chromium.org</owner> <summary> @@ -706,7 +706,7 @@ </histogram> <histogram name="Omnibox.DocumentSuggest.ResultCount" units="count" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>manukh@chromium.org</owner> <owner>mpearson@chromium.org</owner> <owner>jdonnelly@chromium.org</owner> @@ -718,7 +718,7 @@ </histogram> <histogram name="Omnibox.DocumentSuggest.TotalTime" units="ms" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>manukh@chromium.org</owner> <owner>jdonnelly@chromium.org</owner> <summary> @@ -733,7 +733,7 @@ </histogram> <histogram name="Omnibox.DocumentSuggest.TotalTime.Interrupted" units="ms" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>manukh@chromium.org</owner> <owner>jdonnelly@chromium.org</owner> <summary> @@ -750,7 +750,7 @@ </histogram> <histogram name="Omnibox.DocumentSuggest.TotalTime.NotInterrupted" units="ms" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>manukh@chromium.org</owner> <owner>jdonnelly@chromium.org</owner> <summary> @@ -767,7 +767,7 @@ </histogram> <histogram name="Omnibox.EnteredKeywordMode2" enum="OmniboxEnteredKeywordMode2" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>jdonnelly@chromium.org</owner> <owner>mpearson@chromium.org</owner> <owner>chrome-omnibox-team@google.com</owner> @@ -781,7 +781,7 @@ </histogram> <histogram name="Omnibox.Escape" enum="OmniboxEscapeAction" - expires_after="2024-08-30"> + expires_after="2024-11-03"> <owner>manukh@chromium.org</owner> <owner>jdonnelly@chromium.org</owner> <owner>chrome-omnibox-team@google.com</owner> @@ -844,7 +844,7 @@ </histogram> <histogram name="Omnibox.FocusToOpenTimeAnyPopupState3" units="ms" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>jdonnelly@chromium.org</owner> <owner>mpearson@chromium.org</owner> <owner>chrome-omnibox-team@google.com</owner> @@ -885,7 +885,7 @@ </histogram> <histogram name="Omnibox.HistoryFuzzy.MatchConversion.{SubProvider}" - units="counts" expires_after="2024-09-01"> + units="counts" expires_after="2024-11-03"> <owner>orinj@chromium.org</owner> <owner>jdonnelly-team@google.com</owner> <summary> @@ -929,7 +929,7 @@ </histogram> <histogram name="Omnibox.HistoryFuzzy.SearchDuration" units="ms" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>orinj@chromium.org</owner> <owner>jdonnelly-team@google.com</owner> <summary> @@ -992,7 +992,7 @@ </histogram> <histogram name="Omnibox.IsPasteAndGo" enum="Boolean" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>jdonnelly@chromium.org</owner> <owner>chrome-omnibox-team@google.com</owner> <summary> @@ -1026,7 +1026,7 @@ </histogram> <histogram name="Omnibox.KeywordModeUsageByEngineType.{Usage}" - enum="OmniboxBuiltinEngineType" expires_after="2024-08-30"> + enum="OmniboxBuiltinEngineType" expires_after="2024-11-03"> <owner>yoangela@chromium.org</owner> <owner>chrome-omnibox-team@google.com</owner> <summary> @@ -1073,7 +1073,7 @@ </histogram> <histogram name="Omnibox.LocalHistoryPrefixSuggest.SearchTermsExtractionTimeV2" - units="ms" expires_after="2024-09-01"> + units="ms" expires_after="2024-11-03"> <owner>mahmadi@chromium.org</owner> <owner>chrome-desktop-search@google.com</owner> <summary> @@ -1121,7 +1121,7 @@ <histogram name="Omnibox.MatchStability2.MatchChangeInAnyPosition{OmniboxAutocompleteUpdateSlice}" - enum="BooleanChanged" expires_after="2024-09-01"> + enum="BooleanChanged" expires_after="2024-11-03"> <owner>tommycli@chromium.org</owner> <owner>manukh@chromium.org</owner> <owner>jdonnelly@chromium.org</owner> @@ -1169,7 +1169,7 @@ <histogram name="Omnibox.MatchStability2.MatchChangeIndex{OmniboxAutocompleteUpdateSlice}" - units="position" expires_after="2024-09-01"> + units="position" expires_after="2024-11-03"> <owner>tommycli@chromium.org</owner> <owner>manukh@chromium.org</owner> <owner>jdonnelly@chromium.org</owner> @@ -1259,7 +1259,7 @@ </histogram> <histogram name="Omnibox.NumTypedTerms" units="terms" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>jdonnelly@chromium.org</owner> <owner>mpearson@chromium.org</owner> <owner>chrome-omnibox-team@google.com</owner> @@ -1295,7 +1295,7 @@ </summary> </histogram> -<histogram name="Omnibox.PaintTime" units="ms" expires_after="2024-09-01"> +<histogram name="Omnibox.PaintTime" units="ms" expires_after="2024-11-03"> <owner>manukh@chromium.org</owner> <owner>mpearson@chromium.org</owner> <owner>jdonnelly@chromium.org</owner> @@ -1306,7 +1306,7 @@ </summary> </histogram> -<histogram name="Omnibox.Paste" units="count" expires_after="2024-09-01"> +<histogram name="Omnibox.Paste" units="count" expires_after="2024-11-03"> <owner>jdonnelly@chromium.org</owner> <owner>chrome-omnibox-team@google.com</owner> <summary> @@ -1316,7 +1316,7 @@ </histogram> <histogram name="Omnibox.PedalShown" enum="SuggestionPedalType" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>jdonnelly@chromium.org</owner> <owner>orinj@chromium.org</owner> <owner>chrome-omnibox-team@google.com</owner> @@ -1337,7 +1337,7 @@ </histogram> <histogram name="Omnibox.ProviderTime2.{OmniboxProvider}" units="ms" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>jdonnelly@chromium.org</owner> <owner>mpearson@chromium.org</owner> <owner>chrome-omnibox-team@google.com</owner> @@ -1348,7 +1348,7 @@ <token key="OmniboxProvider" variants="OmniboxProviders"/> </histogram> -<histogram name="Omnibox.QueryTime2" units="ms" expires_after="2024-09-01"> +<histogram name="Omnibox.QueryTime2" units="ms" expires_after="2024-11-03"> <owner>jdonnelly@chromium.org</owner> <owner>mpearson@chromium.org</owner> <owner>chrome-omnibox-team@google.com</owner> @@ -1395,7 +1395,7 @@ </histogram> <histogram name="Omnibox.RichAutocompletion.Triggered" - enum="OmniboxRichAutocompletionType" expires_after="2024-09-01"> + enum="OmniboxRichAutocompletionType" expires_after="2024-11-03"> <owner>manukh@chromium.org</owner> <owner>jdonnelly@chromium.org</owner> <owner>chrome-omnibox-team@google.com</owner> @@ -1426,7 +1426,7 @@ </histogram> <histogram name="Omnibox.RichAutocompletion.Triggered.Any" enum="Boolean" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>manukh@chromium.org</owner> <owner>jdonnelly@chromium.org</owner> <owner>chrome-omnibox-team@google.com</owner> @@ -1451,7 +1451,7 @@ </histogram> <histogram name="Omnibox.ScrollToTLD.Duration" units="ms" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>peilinwang@google.com</owner> <owner>woa-performance-bugs+jank@google.com</owner> <summary> @@ -1553,7 +1553,7 @@ </histogram> <histogram name="Omnibox.SearchPreload.ForwardingResult.NotServedToPrerender" - enum="SearchPreloadForwardingResult" expires_after="2024-09-01"> + enum="SearchPreloadForwardingResult" expires_after="2024-11-03"> <owner>lingqi@chromium.org</owner> <owner>ryansturm@chromium.org</owner> <owner>chrome-prerendering@google.com</owner> @@ -1567,7 +1567,7 @@ </histogram> <histogram name="Omnibox.SearchPreload.ForwardingResult.WasServedToPrerender" - enum="SearchPreloadForwardingResult" expires_after="2024-09-01"> + enum="SearchPreloadForwardingResult" expires_after="2024-11-03"> <owner>lingqi@chromium.org</owner> <owner>ryansturm@chromium.org</owner> <owner>chrome-prerendering@google.com</owner> @@ -1580,7 +1580,7 @@ </histogram> <histogram name="Omnibox.SearchPreload.ResponseDataReaderFinalStatus.Prerender" - enum="SearchPrefetchResponseDataReaderStatus" expires_after="2024-09-01"> + enum="SearchPrefetchResponseDataReaderStatus" expires_after="2024-11-03"> <owner>lingqi@chromium.org</owner> <owner>ryansturm@chromium.org</owner> <owner>chrome-prerendering@google.com</owner> @@ -1645,7 +1645,7 @@ </histogram> <histogram name="Omnibox.Start.WantAsyncMatches" enum="Boolean" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>tommycli@chromium.org</owner> <owner>jdonnelly@chromium.org</owner> <summary> @@ -1697,7 +1697,7 @@ </histogram> <histogram name="Omnibox.SuggestionUsed.OfferedTabMatch" enum="BooleanOffered" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>gangwu@chromium.org</owner> <owner>mpearson@chromium.org</owner> <owner>jdonnelly@chromium.org</owner> @@ -1720,7 +1720,7 @@ </histogram> <histogram name="Omnibox.SuggestionUsed.Pedal" enum="SuggestionPedalType" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>jdonnelly@chromium.org</owner> <owner>orinj@chromium.org</owner> <owner>chrome-omnibox-team@google.com</owner> @@ -1813,7 +1813,7 @@ </histogram> <histogram name="Omnibox.SuggestionUsed.ResumeJourneyCTR" - enum="BooleanSelected" expires_after="2024-09-01"> + enum="BooleanSelected" expires_after="2024-11-03"> <owner>tommycli@chromium.org</owner> <owner>chrome-journeys@google.com</owner> <summary> @@ -1834,7 +1834,7 @@ </histogram> <histogram name="Omnibox.SuggestionUsed.RichAutocompletion" - enum="OmniboxRichAutocompletionType" expires_after="2024-09-01"> + enum="OmniboxRichAutocompletionType" expires_after="2024-11-03"> <owner>manukh@chromium.org</owner> <owner>jdonnelly@chromium.org</owner> <owner>chrome-omnibox-team@google.com</owner> @@ -1857,7 +1857,7 @@ <histogram name="Omnibox.SuggestionUsed.Search.Experimental.NavigationToFirstMeaningfulPaint" - units="ms" expires_after="2024-09-01"> + units="ms" expires_after="2024-11-03"> <owner>jdonnelly@chromium.org</owner> <owner>mpearson@chromium.org</owner> <owner>chrome-omnibox-team@google.com</owner> @@ -1868,7 +1868,7 @@ </histogram> <histogram name="Omnibox.SuggestionUsed.Search.InputToNavigationStart2" - units="ms" expires_after="2024-09-01"> + units="ms" expires_after="2024-11-03"> <owner>spelchat@chromium.org</owner> <owner>chrome-brapp-loading@google.com</owner> <owner>chrome-omnibox-team@google.com</owner> @@ -1881,7 +1881,7 @@ <histogram name="Omnibox.SuggestionUsed.Search.NavigationToFirstContentfulPaint" - units="ms" expires_after="2024-09-01"> + units="ms" expires_after="2024-11-03"> <owner>jdonnelly@chromium.org</owner> <owner>mpearson@chromium.org</owner> <owner>chrome-omnibox-team@google.com</owner> @@ -1906,7 +1906,7 @@ <histogram name="Omnibox.SuggestionUsed.Search.NavigationToLargestContentfulPaint2.1Above2s" - units="ms" expires_after="2024-09-01"> + units="ms" expires_after="2024-11-03"> <owner>spelchat@chromium.org</owner> <owner>chrome-brapp-loading@google.com</owner> <owner>chrome-omnibox-team@google.com</owner> @@ -1922,7 +1922,7 @@ </histogram> <histogram name="Omnibox.SuggestionUsed.SelectedTabMatch" - enum="BooleanSelected" expires_after="2024-09-01"> + enum="BooleanSelected" expires_after="2024-11-03"> <owner>gangwu@chromium.org</owner> <owner>mpearson@chromium.org</owner> <owner>jdonnelly@chromium.org</owner> @@ -1963,7 +1963,7 @@ </histogram> <histogram name="Omnibox.SuggestionUsed.URL.InputToNavigationStart2" units="ms" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>spelchat@chromium.org</owner> <owner>chrome-brapp-loading@google.com</owner> <owner>chrome-omnibox-team@google.com</owner> @@ -1998,7 +1998,7 @@ </histogram> <histogram name="Omnibox.SuggestRequest.Failure.GoogleResponseTime" units="ms" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>mpearson@chromium.org</owner> <owner>jdonnelly@chromium.org</owner> <owner>cch@chromium.org</owner> @@ -2010,7 +2010,7 @@ </histogram> <histogram name="Omnibox.SuggestRequest.Success.GoogleResponseTime" units="ms" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>mpearson@chromium.org</owner> <owner>jdonnelly@chromium.org</owner> <owner>cch@chromium.org</owner> @@ -2345,7 +2345,7 @@ </histogram> <histogram name="Omnibox.ZeroSuggest.AllResults" units="units" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>pnoland@chromium.org</owner> <owner>chrome-omnibox-team@google.com</owner> <summary> @@ -2356,7 +2356,7 @@ </histogram> <histogram name="Omnibox.ZeroSuggest.QueryResults" units="units" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>pnoland@chromium.org</owner> <owner>chrome-omnibox-team@google.com</owner> <summary> @@ -2367,7 +2367,7 @@ </histogram> <histogram name="Omnibox.ZeroSuggest.URLResults" units="units" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>pnoland@chromium.org</owner> <owner>chrome-omnibox-team@google.com</owner> <summary> @@ -2378,7 +2378,7 @@ </histogram> <histogram name="Omnibox.ZeroSuggestProvider.CacheMemoryUsage" units="Bytes" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>mahmadi@chromium.org</owner> <owner>chrome-omnibox-team@google.com</owner> <summary> @@ -2397,7 +2397,7 @@ </histogram> <histogram name="Omnibox.ZeroSuggestProvider.Eligibility" - enum="ZeroSuggestEligibility" expires_after="2024-09-01"> + enum="ZeroSuggestEligibility" expires_after="2024-11-03"> <owner>mahmadi@chromium.org</owner> <owner>chrome-omnibox-team@google.com</owner> <summary> @@ -2411,7 +2411,7 @@ </histogram> <histogram name="Omnibox.ZeroSuggestProvider.{ResultType}.{RequestType}" - enum="ZeroSuggestRequestEvent" expires_after="2024-09-01"> + enum="ZeroSuggestRequestEvent" expires_after="2024-11-03"> <owner>mahmadi@chromium.org</owner> <owner>chrome-omnibox-team@google.com</owner> <summary> @@ -2467,7 +2467,7 @@ <histogram name="Omnibox.{SearchPrefetch}.NavigationInterceptedToForwardingComplete" - units="ms" expires_after="2024-09-01"> + units="ms" expires_after="2024-11-03"> <owner>spelchat@chromium.org</owner> <owner>chrome-brapp-loading@google.com</owner> <owner>chrome-omnibox-team@google.com</owner> @@ -2503,7 +2503,7 @@ <histogram name="Omnibox.{SearchPrefetch}.PrefetchEligibilityReason2.{NavigationOrSuggestionPrefetch}" - enum="SearchPrefetchEligibilityReason" expires_after="2024-09-01"> + enum="SearchPrefetchEligibilityReason" expires_after="2024-11-03"> <owner>ryansturm@chromium.org</owner> <owner>chrome-omnibox-team@google.com</owner> <summary> @@ -2522,7 +2522,7 @@ <histogram name="Omnibox.{SearchPrefetch}.PrefetchFinalStatus.{NavigationOrSuggestionPrefetch}" - enum="SearchPrefetchStatus" expires_after="2024-09-01"> + enum="SearchPrefetchStatus" expires_after="2024-11-03"> <owner>ryansturm@chromium.org</owner> <owner>chrome-omnibox-team@google.com</owner> <summary> @@ -2540,7 +2540,7 @@ <histogram name="Omnibox.{SearchPrefetch}.PrefetchServingReason2{PrerenderOrNavigation}" - enum="SearchPrefetchServingReason" expires_after="2024-09-01"> + enum="SearchPrefetchServingReason" expires_after="2024-11-03"> <owner>ryansturm@chromium.org</owner> <owner>lingqi@chromium.org</owner> <owner>chrome-omnibox-team@google.com</owner> @@ -2564,7 +2564,7 @@ <histogram name="Omnibox.{SearchPrefetch}.ReceivedServableResponse2.{FallbackOrInitial}.{NavigationOrSuggestionPrefetch}" - units="ms" expires_after="2024-09-01"> + units="ms" expires_after="2024-11-03"> <owner>ryansturm@chromium.org</owner> <owner>chrome-omnibox-team@google.com</owner> <owner>chrome-prerendering@google.com</owner> @@ -2623,7 +2623,7 @@ </histogram> <histogram name="Realbox.ResultChangedToRepaintLatency.ToPaint" units="ms" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>mahmadi@chromium.org</owner> <owner>chrome-desktop-search@google.com</owner> <summary>
diff --git a/tools/metrics/histograms/metadata/oobe/histograms.xml b/tools/metrics/histograms/metadata/oobe/histograms.xml index 8d178267..981ebfa5c 100644 --- a/tools/metrics/histograms/metadata/oobe/histograms.xml +++ b/tools/metrics/histograms/metadata/oobe/histograms.xml
@@ -269,10 +269,14 @@ <variant name="Cryptohome-recovery.FallbackLocal"/> <variant name="Cryptohome-recovery.FallbackOnline"/> <variant name="Cryptohome-recovery.GaiaLogin"/> - <variant name="Cryptohome-recovery.ManualRecovery"/> - <variant name="Cryptohome-recovery.NoRecoveryFactor"/> - <variant name="Cryptohome-recovery.Retry"/> - <variant name="Cryptohome-recovery.Succeeded"/> + <variant name="Cryptohome-recovery.ManualRecovery" + summary="(obsolete) Not used since M-122"/> + <variant name="Cryptohome-recovery.NoRecoveryFactor" + summary="(obsolete) Not used since M-122"/> + <variant name="Cryptohome-recovery.Retry" + summary="(obsolete) Not used since M-122"/> + <variant name="Cryptohome-recovery.Succeeded" + summary="(obsolete) Not used since M-122"/> <variant name="Debugging.Next"/> <variant name="Demo-preferences.Canceled"/> <variant name="Demo-preferences.Completed"/> @@ -588,7 +592,7 @@ <histogram name="OOBE.ErrorScreensTime.{OOBEScreenShownBeforeNetworkError}.{OOBENetworkError}" - units="ms" expires_after="2024-09-01"> + units="ms" expires_after="2024-11-03"> <owner>dkuzmin@google.com</owner> <owner>cros-oobe@google.com</owner> <summary> @@ -673,7 +677,7 @@ <histogram name="OOBE.GestureNavigationScreen.PageShownTime.{OOBEGestureNavigationPage}" - units="ms" expires_after="2024-09-01"> + units="ms" expires_after="2024-11-03"> <owner>mmourgos@chromium.org</owner> <owner>tbarzic@chromium.org</owner> <summary> @@ -809,7 +813,7 @@ </histogram> <histogram name="OOBE.NetworkErrorShown.{OOBEScreenShownBeforeNetworkError}" - enum="NetworkErrorType" expires_after="2024-09-01"> + enum="NetworkErrorType" expires_after="2024-11-03"> <owner>achuith@google.com</owner> <owner>cros-oobe@google.com</owner> <summary> @@ -915,7 +919,7 @@ </histogram> <histogram name="OOBE.RecommendApps.Fetcher.ResponseCode" - enum="HttpResponseCode" expires_after="2024-09-01"> + enum="HttpResponseCode" expires_after="2024-11-03"> <owner>dkuzmin@google.com</owner> <owner>cros-oac@google.com</owner> <owner>chromesky-eng@google.com</owner> @@ -991,7 +995,7 @@ <histogram name="OOBE.StepCompletionTimeByExitReason.{OOBEScreenName_ExitReason}" - units="ms" expires_after="2024-09-01"> + units="ms" expires_after="2024-11-03"> <owner>dkuzmin@google.com</owner> <owner>cros-oac@google.com</owner> <summary>Time spent on specific OOBE screen grouped by exit reason.</summary> @@ -1067,7 +1071,7 @@ </histogram> <histogram name="OOBE.SyncConsentScreen.IsCapabilityKnown" enum="BooleanKnown" - expires_after="2024-09-03"> + expires_after="2024-11-03"> <owner>osamafathy@google.com</owner> <owner>cros-oac@google.com</owner> <summary> @@ -1172,7 +1176,7 @@ </histogram> <histogram name="OOBE.UpdateScreen.StageTime.{UpdateStage}" units="ms" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>dkuzmin@google.com</owner> <owner>cros-oac@google.com</owner> <summary> @@ -1239,7 +1243,7 @@ </histogram> <histogram name="OOBE.WebViewLoader.FirstLoadResult.{WebViewID}" - enum="OobeWebViewLoadResult" expires_after="2024-09-01"> + enum="OobeWebViewLoadResult" expires_after="2024-11-03"> <owner>osamafathy@google.com</owner> <owner>cros-oac@google.com</owner> <summary>
diff --git a/tools/metrics/histograms/metadata/others/histograms.xml b/tools/metrics/histograms/metadata/others/histograms.xml index f52c53f..c649e79 100644 --- a/tools/metrics/histograms/metadata/others/histograms.xml +++ b/tools/metrics/histograms/metadata/others/histograms.xml
@@ -248,7 +248,7 @@ </histogram> <histogram name="AccessCodeCast.Session.FreezeCount" units="instances" - expires_after="2024-09-04"> + expires_after="2024-11-03"> <owner>bzielinski@google.com</owner> <owner>cros-edu-eng@google.com</owner> <summary> @@ -384,7 +384,7 @@ </histogram> <histogram name="AccessCodeCast.Ui.TabSwitcherUsageType" - enum="AccessCodeCastUiTabSwitcherUsage" expires_after="2024-09-04"> + enum="AccessCodeCastUiTabSwitcherUsage" expires_after="2024-11-03"> <owner>ahmedmoussa@google.com</owner> <owner>takumif@chromium.org</owner> <owner>openscreen-eng@google.com</owner> @@ -399,7 +399,7 @@ </histogram> <histogram name="AccessCodeCast.Ui.TabSwitchingCount" units="count" - expires_after="2024-09-04"> + expires_after="2024-11-03"> <owner>ahmedmoussa@google.com</owner> <owner>takumif@chromium.org</owner> <owner>openscreen-eng@google.com</owner> @@ -940,7 +940,7 @@ </histogram> <histogram name="Ads.InterestGroup.Auction.ReportResultTime" units="ms" - expires_after="2024-08-25"> + expires_after="2024-11-03"> <owner>qingxinwu@google.com</owner> <owner>privacy-sandbox-dev@chromium.org</owner> <summary> @@ -2098,7 +2098,7 @@ </histogram> <histogram name="BlueZ.ResultOfConnection" enum="BlueZResultOfConnection" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>mcchou@chromium.org</owner> <owner>chromeos-bt-platform-sw-core@google.com</owner> <summary> @@ -2380,7 +2380,7 @@ </histogram> <histogram name="BrotliFilter.CompressionPercent" units="%" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>eustas@chromium.org</owner> <summary>Compressed/Decompressed size ratio.</summary> </histogram> @@ -2399,7 +2399,7 @@ </histogram> <histogram name="BrotliFilter.Status" enum="BrotliFilterDecodingStatus" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>eustas@chromium.org</owner> <summary> The final state of the BrotliFilter. Recorded during the decoding process as @@ -2432,7 +2432,7 @@ </histogram> <histogram name="Cast.Channel.LaunchSession.Flags" enum="CastChannelFlag" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>mfoltz@chromium.org</owner> <owner>media-dev-uma@chromium.org</owner> <summary> @@ -2477,7 +2477,7 @@ </histogram> <histogram name="Cast.Sender.VideoEncodeAcceleratorInitializeSuccess" - enum="BooleanSuccess" expires_after="2024-09-01"> + enum="BooleanSuccess" expires_after="2024-11-03"> <owner>fiorito@google.com</owner> <owner>mfoltz@chromium.org</owner> <owner>openscreen-eng@google.com</owner> @@ -2608,7 +2608,7 @@ </histogram> <histogram name="ChildProcess.ProcessLifetime.Utility" units="ms" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>olivierli@chromium.org</owner> <owner>fdoray@chromium.org</owner> <summary> @@ -2858,7 +2858,7 @@ </histogram> <histogram name="ComponentUpdater.Calls" enum="ComponentUpdaterCalls" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>sorin@chromium.org</owner> <owner>src/components/component_updater/OWNERS</owner> <summary> @@ -2885,7 +2885,7 @@ </histogram> <histogram name="ComponentUpdater.UpdateCompleteTime" units="ms" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>sorin@chromium.org</owner> <owner>src/components/component_updater/OWNERS</owner> <summary> @@ -2985,7 +2985,7 @@ </histogram> <histogram name="ContextMenu.LensSupportStatus" enum="LensSupportStatus" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>benwgold@google.com</owner> <owner>lens-chrome@google.com</owner> <summary> @@ -3018,7 +3018,7 @@ </histogram> <histogram base="true" name="ContextMenu.SelectedOptionDesktop" - enum="ContextMenuOptionDesktop" expires_after="2024-09-01"> + enum="ContextMenuOptionDesktop" expires_after="2024-11-03"> <owner>avi@chromium.org</owner> <owner>mpearson@chromium.org</owner> <summary> @@ -3652,7 +3652,7 @@ </histogram> <histogram name="Conversions.HeadersSize.Register{Type}" units="bytes" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>tquintanilla@chromium.org</owner> <owner>linnan@chromium.org</owner> <owner>measurement-api-dev+metrics@google.com</owner> @@ -4081,7 +4081,7 @@ </histogram> <histogram name="Conversions.SchedulerReportDelay" units="ms" - expires_after="2024-07-31"> + expires_after="2024-11-03"> <owner>linnan@chromium.org</owner> <owner>johnidel@chromium.org</owner> <owner>measurement-api-dev+metrics@google.com</owner> @@ -4120,7 +4120,7 @@ </histogram> <histogram name="Conversions.SourcesPerSourceOrigin2.{Position}" - units="sources" expires_after="2024-09-01"> + units="sources" expires_after="2024-11-03"> <owner>anthonygarant@chromium.org</owner> <owner>johnidel@chromium.org</owner> <owner>measurement-api-dev+metrics@google.com</owner> @@ -4284,7 +4284,7 @@ </histogram> <histogram name="Conversions.ValidReportsInDatabase" units="Reports" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>tquintanilla@chromium.org</owner> <owner>apaseltiner@chromium.org</owner> <owner>measurement-api-dev+metrics@google.com</owner> @@ -4539,7 +4539,7 @@ </histogram> <histogram name="DefaultBrowser.AppMenu.DefaultChipShown" enum="BooleanShown" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>agale@chromium.org</owner> <owner>robliao@chromium.org</owner> <summary> @@ -4563,7 +4563,7 @@ </histogram> <histogram name="DefaultBrowser.AppMenu.TimeToSetDefault" units="ms" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>agale@chromium.org</owner> <owner>robliao@chromium.org</owner> <summary> @@ -4573,7 +4573,7 @@ </histogram> <histogram name="DefaultBrowser.InfoBar.TimesShownBeforeAccept" units="count" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>agale@chromium.org</owner> <owner>robliao@chromium.org</owner> <summary> @@ -4583,7 +4583,7 @@ </histogram> <histogram name="DefaultBrowser.InfoBar.UserInteraction" - enum="DefaultBrowserInfoBarUserInteraction" expires_after="2024-09-01"> + enum="DefaultBrowserInfoBarUserInteraction" expires_after="2024-11-03"> <owner>pmonette@chromium.org</owner> <owner>robliao@chromium.org</owner> <summary> @@ -4744,7 +4744,7 @@ </histogram> <histogram name="DemoMode.Highlights.PageStayDuration.{HighlightsPageName}" - units="ms" expires_after="2024-09-01"> + units="ms" expires_after="2024-11-03"> <owner>llin@chromium.org</owner> <owner>xiqiruan@chromium.org</owner> <owner>cros-demo-mode-eng@google.com</owner> @@ -4934,7 +4934,7 @@ </histogram> <histogram name="DisplayManager.MirroringImplementation" - enum="DisplayMirroringImplementation" expires_after="2024-09-01"> + enum="DisplayMirroringImplementation" expires_after="2024-11-03"> <owner>jshargo@chromium.org</owner> <owner>oshima@chromium.org</owner> <owner>chromeos-gfx-compositor@google.com</owner> @@ -5539,7 +5539,7 @@ </histogram> <histogram name="Feedback.ChromeOSApp.Duration.GetBigFeedbackLogs" units="ms" - expires_after="2024-08-30"> + expires_after="2024-11-03"> <owner>xiangdongkong@google.com</owner> <owner>cros-feedback-app@google.com</owner> <summary> @@ -5593,7 +5593,7 @@ </histogram> <histogram name="Feedback.ChromeOSApp.GetBigFeedbackLogs.OtherCount" - units="logs" expires_after="2024-08-30"> + units="logs" expires_after="2024-11-03"> <owner>xiangdongkong@google.com</owner> <owner>cros-feedback-app@google.com</owner> <summary> @@ -5605,7 +5605,7 @@ </histogram> <histogram name="Feedback.ChromeOSApp.GetBigFeedbackLogs.Success" - enum="Boolean" expires_after="2024-08-30"> + enum="Boolean" expires_after="2024-11-03"> <owner>xiangdongkong@google.com</owner> <owner>cros-feedback-app@google.com</owner> <summary> @@ -5780,7 +5780,7 @@ </histogram> <histogram name="Feedback.ChromeOSApp.ViewedScreenshot" enum="Boolean" - expires_after="2024-08-30"> + expires_after="2024-11-03"> <owner>longbowei@google.com</owner> <owner>xiangdongkong@google.com</owner> <owner>cros-feedback-app@google.com</owner> @@ -5802,7 +5802,7 @@ </histogram> <histogram name="Feedback.Duration.FetchSystemInformation" units="ms" - expires_after="2024-08-30"> + expires_after="2024-11-03"> <owner>xiangdongkong@google.com</owner> <owner>fernandex@google.com</owner> <owner>cros-feedback-app@google.com</owner> @@ -5863,7 +5863,7 @@ <histogram name="Feedback.HappinessTrackingSurvey.ShouldShowSurveyReason" enum="HappinessTrackingSurveyShouldShowSurveyReasons" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>sauski@google.com</owner> <owner>msramek@chromium.org</owner> <summary> @@ -5905,7 +5905,7 @@ </histogram> <histogram name="Feedback.RedactionTool.CreditCardMatch" - enum="CreditCardDetection" expires_after="2024-09-01"> + enum="CreditCardDetection" expires_after="2024-11-03"> <owner>cschlosser@chromium.org</owner> <owner>dpchromeos-core-eng@google.com</owner> <summary> @@ -5964,7 +5964,7 @@ </histogram> <histogram name="Feedback.RequestSource" enum="FeedbackSource" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>afakhry@chromium.org</owner> <owner>cros-feedback-app@google.com</owner> <summary>Records the source that requested showing the feedback app.</summary> @@ -6567,7 +6567,7 @@ </histogram> <histogram base="true" name="GridTabSwitcher.FramePerSecond" units="frame/sec" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>ckitagawa@chromium.org</owner> <owner>meiliang@chromium.org</owner> <summary> @@ -6649,7 +6649,7 @@ </histogram> <histogram base="true" name="Hwsec.Attestation.Status" - enum="HwsecAttestationOpsStatus" expires_after="2024-09-01"> + enum="HwsecAttestationOpsStatus" expires_after="2024-11-03"> <!-- Name completed by histogram_suffixes name="AttestationOps" --> <owner>chingkang@chromium.org</owner> @@ -6684,7 +6684,7 @@ </histogram> <histogram name="Import.ImporterType.BookmarksAPI" enum="ImporterType" - expires_after="2024-08-30"> + expires_after="2024-11-03"> <owner>robliao@chromium.org</owner> <owner>gab@chromium.org</owner> <summary> @@ -6695,7 +6695,7 @@ </histogram> <histogram name="Import.ImporterType.ImportDataHandler" enum="ImporterType" - expires_after="2024-08-30"> + expires_after="2024-11-03"> <owner>robliao@chromium.org</owner> <owner>gab@chromium.org</owner> <summary> @@ -6718,7 +6718,7 @@ </histogram> <histogram name="ImportantFile.SerializationDuration{ImportantFileClients}" - units="ms" expires_after="2024-09-01"> + units="ms" expires_after="2024-11-03"> <owner>battre@chromium.org</owner> <owner>gab@chromium.org</owner> <summary> @@ -6732,7 +6732,7 @@ </histogram> <histogram name="ImportantFile.WriteDuration{ImportantFileClients}" units="ms" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>wylieb@chromium.org</owner> <owner>chrome-collections@google.com</owner> <summary> @@ -7176,7 +7176,7 @@ </histogram> <histogram name="Linux.SandboxStatus" enum="LinuxSandboxStatus" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>mpdenton@google.com</owner> <owner>src/sandbox/linux/OWNERS</owner> <summary> @@ -7391,7 +7391,7 @@ </histogram> <histogram name="Manifest.HasProperty" enum="Boolean" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>mgiuca@chromium.org</owner> <summary> Tracks which properties of a Manifest were present when it was parsed. If a @@ -7485,7 +7485,7 @@ </histogram> <histogram name="Mojo.Channel.WriteMessageLatency" units="ms" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>amistry@chromium.org</owner> <owner>bgeffon@chromium.org</owner> <owner>rockot@google.com</owner> @@ -7525,7 +7525,7 @@ </histogram> <histogram name="Mojo.Channel.WriteReceiveMessageProcessType" - enum="ShortProcessType" expires_after="2024-09-01"> + enum="ShortProcessType" expires_after="2024-11-03"> <owner>amanvr@chromium.org</owner> <owner>carlscab@chromium.org</owner> <owner>woa-performance@google.com</owner> @@ -7579,7 +7579,7 @@ </histogram> <histogram name="Mouse.PointerSensitivity.Started" enum="PointerSensitivity" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>dpad@google.com</owner> <owner>cros-peripherals@google.com</owner> <summary> @@ -7638,7 +7638,7 @@ </histogram> <histogram name="MPArch.ChildProcessLaunchFirst" units="ms" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>pasko@chromium.org</owner> <owner>yfriedman@chromium.org</owner> <summary> @@ -7657,7 +7657,7 @@ </histogram> <histogram name="MultiProfile.UsersPerSessionIncremental" units="units" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>skuhne@chromium.org</owner> <owner>antrim@chromium.org</owner> <summary> @@ -7969,7 +7969,7 @@ </histogram> <histogram name="OriginTrials.PersistentOriginTrial.LevelDbLoadTime" units="ms" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>pbirk@chromium.org</owner> <owner>src/components/origin_trials/OWNERS</owner> <summary> @@ -8012,7 +8012,7 @@ </histogram> <histogram name="OriginTrials.PersistentOriginTrial.PartitionSetSize" - units="sites" expires_after="2024-09-01"> + units="sites" expires_after="2024-11-03"> <owner>pbirk@chromium.org</owner> <owner>src/components/origin_trials/OWNERS</owner> <summary> @@ -8132,7 +8132,7 @@ </histogram> <histogram name="OSCrypt.AppBoundProvider.Decrypt.ResultCode" enum="Hresult" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>wfh@chromium.org</owner> <owner>nparker@chromium.org</owner> <summary> @@ -8157,7 +8157,7 @@ </histogram> <histogram name="OSCrypt.AppBoundProvider.Decrypt.Time" units="ms" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>wfh@chromium.org</owner> <owner>nparker@chromium.org</owner> <summary> @@ -8170,7 +8170,7 @@ </histogram> <histogram name="OSCrypt.AppBoundProvider.Encrypt.ResultCode" enum="Hresult" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>wfh@chromium.org</owner> <owner>nparker@chromium.org</owner> <summary> @@ -8253,7 +8253,7 @@ </histogram> <histogram name="OSCrypt.DPAPIProvider.Status" enum="OSCryptDPAPIKeyStatus" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>wfh@chromium.org</owner> <owner>nparker@chromium.org</owner> <summary> @@ -8582,7 +8582,7 @@ </histogram> <histogram name="PageImageService.Backend.OptimizationGuide.Result{ClientId}" - enum="PageImageServiceResult" expires_after="2024-09-01"> + enum="PageImageServiceResult" expires_after="2024-11-03"> <owner>sophiechang@chromium.org</owner> <owner>chrome-journeys@google.com</owner> <component>1456757</component> @@ -8597,7 +8597,7 @@ </histogram> <histogram name="PageImageService.Backend.Suggest.Result{ClientId}" - enum="PageImageServiceResult" expires_after="2024-09-01"> + enum="PageImageServiceResult" expires_after="2024-11-03"> <owner>tommycli@chromium.org</owner> <owner>chrome-journeys@google.com</owner> <component>1457319</component> @@ -8611,7 +8611,7 @@ </histogram> <histogram name="PageImageService.Backend{ClientId}" - enum="PageImageServiceBackend" expires_after="2024-09-01"> + enum="PageImageServiceBackend" expires_after="2024-11-03"> <owner>tommycli@chromium.org</owner> <owner>chrome-journeys@google.com</owner> <component>1457319</component> @@ -8625,7 +8625,7 @@ </histogram> <histogram name="PageImageService.ConsentStatusOnTimeout" - enum="PageImageServiceConsentStatus" expires_after="2024-09-01"> + enum="PageImageServiceConsentStatus" expires_after="2024-11-03"> <owner>tommycli@chromium.org</owner> <owner>chrome-journeys@google.com</owner> <component>1457319</component> @@ -8637,7 +8637,7 @@ </histogram> <histogram name="PageImageService.ConsentStatusRequestCount" enum="Boolean" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>tommycli@chromium.org</owner> <owner>chrome-journeys@google.com</owner> <component>1457319</component> @@ -8648,7 +8648,7 @@ </histogram> <histogram name="PageImageService.ConsentStatus{ClientId}" - enum="PageImageServiceConsentStatus" expires_after="2024-09-01"> + enum="PageImageServiceConsentStatus" expires_after="2024-11-03"> <owner>tommycli@chromium.org</owner> <owner>chrome-journeys@google.com</owner> <component>1457319</component> @@ -8664,7 +8664,7 @@ </histogram> <histogram name="PageImageService.ConsentTimeoutReason{ClientId}" - enum="SyncDownloadStatusWaitingForUpdatesReason" expires_after="2024-09-01"> + enum="SyncDownloadStatusWaitingForUpdatesReason" expires_after="2024-11-03"> <owner>tommycli@chromium.org</owner> <owner>chrome-journeys@google.com</owner> <component>1457319</component> @@ -8765,7 +8765,7 @@ </histogram> <histogram name="PLT.iOS.BrowserInitiatedPageLoadTime2" units="ms" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>djean@chromium.org</owner> <owner>ajuma@chromium.org</owner> <summary> @@ -8811,7 +8811,7 @@ </histogram> <histogram name="PLT.iOS.RendererInitiatedPageLoadTime2" units="ms" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>djean@chromium.org</owner> <owner>ajuma@chromium.org</owner> <summary> @@ -8970,7 +8970,7 @@ </histogram> <histogram name="Process.Sandbox.StartSandboxedWin.{Event}Duration" - units="microseconds" expires_after="2024-09-01"> + units="microseconds" expires_after="2024-11-03"> <owner>ajgo@chromium.org</owner> <owner>src/sandbox/policy/win/OWNERS</owner> <summary> @@ -9060,7 +9060,7 @@ </histogram> <histogram name="PushMessaging.UnregistrationReason" - enum="PushUnregistrationReason" expires_after="2024-09-01"> + enum="PushUnregistrationReason" expires_after="2024-11-03"> <owner>peter@chromium.org</owner> <owner>knollr@chromium.org</owner> <summary> @@ -9351,7 +9351,7 @@ </histogram> <histogram name="RenderTextHarfBuzz.GetFallbackFontsTime" units="ms" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>ccameron@chromium.org</owner> <owner>etienneb@chromium.org</owner> <summary> @@ -9373,7 +9373,7 @@ </histogram> <histogram name="RenderTextHarfBuzz.ShapeRunsFallback" enum="ShapeRunFallback" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>ccameron@chromium.org</owner> <owner>etienneb@chromium.org</owner> <summary> @@ -9383,7 +9383,7 @@ </histogram> <histogram name="RenderTextHarfBuzz.ShapeRunsWithFallbackFontsTime" units="ms" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>ccameron@chromium.org</owner> <owner>etienneb@chromium.org</owner> <summary> @@ -9406,7 +9406,7 @@ </histogram> <histogram name="RenderViewContextMenu.Shown" enum="RenderViewContextMenuItem" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>avi@chromium.org</owner> <owner>edwardjung@chromium.org</owner> <owner>mpearson@chromium.org</owner> @@ -9678,7 +9678,7 @@ </histogram> <histogram name="SB2.RemoteCall.CanCheckUrl" enum="BooleanCanCheckUrl" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>vakh@chromium.org</owner> <owner>chrome-counter-abuse-alerts@google.com</owner> <summary> @@ -9725,7 +9725,7 @@ </summary> </histogram> -<histogram name="SB2.RemoteCall.Elapsed" units="ms" expires_after="2024-09-01"> +<histogram name="SB2.RemoteCall.Elapsed" units="ms" expires_after="2024-11-03"> <owner>vakh@chromium.org</owner> <owner>chrome-counter-abuse-alerts@google.com</owner> <summary> @@ -9754,7 +9754,7 @@ </histogram> <histogram name="SB2.RemoteCall.Result" enum="SB2RemoteCallResult" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>vakh@chromium.org</owner> <owner>chrome-counter-abuse-alerts@google.com</owner> <summary> @@ -9864,7 +9864,7 @@ </histogram> <histogram name="SBIRS.UploadResult" enum="ReportProcessingResult" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>caitkp@google.com</owner> <summary> The result of an attempted report upload by the safe browsing incident @@ -10159,7 +10159,7 @@ </histogram> <histogram name="SignedExchange.LoadResult2" enum="SignedExchangeLoadResult" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>ksakamoto@chromium.org</owner> <owner>webpackage-dev@chromium.org</owner> <summary> @@ -11201,7 +11201,7 @@ </histogram> <histogram name="Touchpad.NaturalScroll.Changed" enum="BooleanEnabled" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>zhangwenyu@google.com</owner> <owner>cros-peripherals@google.com</owner> <summary> @@ -11214,7 +11214,7 @@ </histogram> <histogram name="Touchpad.NaturalScroll.Started" enum="BooleanEnabled" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>zhangwenyu@google.com</owner> <owner>cros-peripherals@google.com</owner> <summary> @@ -11354,7 +11354,7 @@ </histogram> <histogram name="Tracing.Background.FinalizationDisallowedReason" - enum="TracingFinalizationDisallowedReason" expires_after="2024-09-01"> + enum="TracingFinalizationDisallowedReason" expires_after="2024-11-03"> <owner>ssid@chromium.org</owner> <summary> Reason why background tracing finalization was not allowed. Also see @@ -11406,7 +11406,7 @@ </histogram> <histogram name="Tracing.Background.ScenarioState" - enum="BackgroundTracingState" expires_after="2024-09-01"> + enum="BackgroundTracingState" expires_after="2024-11-03"> <owner>oysteine@chromium.org</owner> <summary> Records state of the Background Tracing system, from when scenarios are @@ -11415,7 +11415,7 @@ </histogram> <histogram name="Tracing.Background.UploadingTraceSizeInKB" units="KB" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>oksamyt@chromium.org</owner> <owner>tracing@chromium.org</owner> <owner>chrometto-team@google.com</owner> @@ -11474,7 +11474,7 @@ <histogram name="UpdateClient.BackgroundDownloaderMac.DownloadResultRequestorKnown" - enum="Boolean" expires_after="2024-09-01"> + enum="Boolean" expires_after="2024-11-03"> <owner>noahrose@google.com</owner> <owner>sorin@chromium.org</owner> <owner>waffles@chromium.org</owner> @@ -11497,7 +11497,7 @@ </histogram> <histogram name="UpdateClient.BackgroundDownloaderWin.ExistingJobUsed" - enum="Boolean" expires_after="2024-09-01"> + enum="Boolean" expires_after="2024-11-03"> <owner>noahrose@google.com</owner> <owner>sorin@chromium.org</owner> <owner>waffles@chromium.org</owner> @@ -11508,7 +11508,7 @@ </histogram> <histogram name="UpdateClient.BackgroundDownloaderWin.StaleDownloadAge" - units="hours" expires_after="2024-09-01"> + units="hours" expires_after="2024-11-03"> <owner>noahrose@google.com</owner> <owner>sorin@chromium.org</owner> <owner>waffles@chromium.org</owner> @@ -11518,7 +11518,7 @@ </histogram> <histogram name="UpdateClient.BackgroundDownloaderWin.StaleJobsCleaned" - units="count" expires_after="2024-09-01"> + units="count" expires_after="2024-11-03"> <owner>noahrose@google.com</owner> <owner>sorin@chromium.org</owner> <owner>waffles@chromium.org</owner> @@ -11529,7 +11529,7 @@ </histogram> <histogram name="UpdateClient.Component.CanUpdateResult" - enum="UpdateClientCanUpdateResult" expires_after="2024-09-01"> + enum="UpdateClientCanUpdateResult" expires_after="2024-11-03"> <owner>noahrose@google.com</owner> <owner>sorin@chromium.org</owner> <owner>waffles@chromium.org</owner> @@ -11540,7 +11540,7 @@ </histogram> <histogram name="UpdateClient.Component.UpdateCheckResult" - enum="UpdateClientUpdateCheckResult" expires_after="2024-09-01"> + enum="UpdateClientUpdateCheckResult" expires_after="2024-11-03"> <owner>noahrose@google.com</owner> <owner>sorin@chromium.org</owner> <owner>waffles@chromium.org</owner> @@ -11551,7 +11551,7 @@ </histogram> <histogram name="UpdateClient.Component.Updated" enum="Boolean" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>noahrose@google.com</owner> <owner>sorin@chromium.org</owner> <owner>waffles@chromium.org</owner> @@ -11559,7 +11559,7 @@ </histogram> <histogram name="UpdateClient.CrxDownloader.DownloadCompleteSuccess" - enum="Boolean" expires_after="2024-09-01"> + enum="Boolean" expires_after="2024-11-03"> <owner>noahrose@google.com</owner> <owner>sorin@chromium.org</owner> <owner>waffles@chromium.org</owner> @@ -11570,7 +11570,7 @@ </histogram> <histogram name="UpdateClient.CrxDownloader.Fallback" enum="Boolean" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>noahrose@google.com</owner> <owner>sorin@chromium.org</owner> <owner>waffles@chromium.org</owner> @@ -11581,7 +11581,7 @@ </histogram> <histogram name="UpgradeDetector.DaysBeforeUpgrade" units="days" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>emshack@chromium.org</owner> <owner>pbos@chromium.org</owner> <summary> @@ -11621,7 +11621,7 @@ </histogram> <histogram name="Uptime.ChromeExecToLoginPromptVisibleAfterLogout" units="ms" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>alemate@chromium.org</owner> <owner>cros-oac@google.com</owner> <owner>xiyuan@chromium.org</owner> @@ -11663,7 +11663,7 @@ </summary> </histogram> -<histogram name="Uptime.Logout" units="ms" expires_after="2024-09-01"> +<histogram name="Uptime.Logout" units="ms" expires_after="2024-11-03"> <owner>alemate@chromium.org</owner> <owner>cros-oac@google.com</owner> <owner>xiyuan@chromium.org</owner> @@ -12043,7 +12043,7 @@ </histogram> <histogram name="WebDatabase.FailedMigrationToVersion" units="version" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>battre@chromium.org</owner> <owner>asully@chromium.org</owner> <summary> @@ -12053,7 +12053,7 @@ </histogram> <histogram name="WebDatabase.InitResult" enum="WebDatabaseInitResult" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>battre@chromium.org</owner> <owner>asully@chromium.org</owner> <summary> @@ -12072,7 +12072,7 @@ </histogram> <histogram name="WebFont.BlankTextShownTime" units="ms" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>kenjibaheux@chromium.org</owner> <owner>ksakamoto@chromium.org</owner> <summary> @@ -12108,7 +12108,7 @@ </histogram> <histogram name="WebFont.DownloadTime.LoadError" units="ms" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>kenjibaheux@chromium.org</owner> <owner>ksakamoto@chromium.org</owner> <summary> @@ -12118,7 +12118,7 @@ </histogram> <histogram name="WebFont.HadBlankText" enum="BooleanHadBlankText" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>kenjibaheux@chromium.org</owner> <owner>ksakamoto@chromium.org</owner> <summary> @@ -12129,7 +12129,7 @@ </histogram> <histogram name="WebFont.LocalFontUsed" enum="BooleanUsage" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>hajimehoshi@chromium.org</owner> <owner>kenjibaheux@chromium.org</owner> <owner>kouhei@chromium.org</owner> @@ -12428,7 +12428,7 @@ </histogram> <histogram name="WhatsNew.LoadEvent" enum="WhatsNewLoadEvent" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>rbpotter@chromium.org</owner> <owner>mahmadi@chromium.org</owner> <summary> @@ -12443,7 +12443,7 @@ </histogram> <histogram name="WhatsNew.LoadResponseCode" - enum="CombinedHttpResponseAndNetErrorCode" expires_after="2024-09-01"> + enum="CombinedHttpResponseAndNetErrorCode" expires_after="2024-11-03"> <owner>rbpotter@chromium.org</owner> <owner>mahmadi@chromium.org</owner> <summary> @@ -12454,7 +12454,7 @@ </histogram> <histogram name="WhatsNew.StartupType" enum="WhatsNewStartupType" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>rbpotter@chromium.org</owner> <owner>mahmadi@chromium.org</owner> <summary>
diff --git a/tools/metrics/histograms/metadata/page/histograms.xml b/tools/metrics/histograms/metadata/page/histograms.xml index 766fcc4..37ff274 100644 --- a/tools/metrics/histograms/metadata/page/histograms.xml +++ b/tools/metrics/histograms/metadata/page/histograms.xml
@@ -282,7 +282,7 @@ </histogram> <histogram name="PageLoad.BackForwardCache.Event" - enum="PageLoadBackForwardCacheEvent" expires_after="2024-09-01"> + enum="PageLoadBackForwardCacheEvent" expires_after="2024-11-03"> <owner>altimin@chromium.org</owner> <owner>bmcquade@chromium.org</owner> <owner>hajimehoshi@chromium.org</owner> @@ -366,7 +366,7 @@ </histogram> <histogram name="PageLoad.Clients.Ads.AverageViewportAdDensity" units="%" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>yaoxia@chromium.org</owner> <owner>johnidel@chromium.org</owner> <owner>jkarlin@chromium.org</owner> @@ -1069,7 +1069,7 @@ <histogram name="PageLoad.Clients.MultiTabLoading{OtherLoadingCount}.{Timing}{Background}" - units="ms" expires_after="2024-09-01"> + units="ms" expires_after="2024-11-03"> <owner>chikamune@chromium.org</owner> <owner>chrome-loading@google.com</owner> <summary>{Timing} {OtherLoadingCount} {Background}</summary> @@ -1148,7 +1148,7 @@ <histogram name="PageLoad.Clients.Prerender.InteractiveTiming.FirstInputDelay4{PreloadingTriggerType}" - units="ms" expires_after="2024-09-01"> + units="ms" expires_after="2024-11-03"> <owner>nhiroki@chromium.org</owner> <owner>src/content/browser/preloading/prerender/OWNERS</owner> <summary> @@ -1161,7 +1161,7 @@ <histogram name="PageLoad.Clients.Prerender.LayoutInstability.CumulativeShiftScore.MainFrame{PreloadingTriggerType}" - units="ms" expires_after="2024-09-01"> + units="ms" expires_after="2024-11-03"> <owner>nhiroki@chromium.org</owner> <owner>src/content/browser/preloading/prerender/OWNERS</owner> <summary> @@ -1175,7 +1175,7 @@ <histogram name="PageLoad.Clients.Prerender.LayoutInstability.CumulativeShiftScore{PreloadingTriggerType}" - units="ms" expires_after="2024-09-01"> + units="ms" expires_after="2024-11-03"> <owner>nhiroki@chromium.org</owner> <owner>src/content/browser/preloading/prerender/OWNERS</owner> <summary> @@ -1202,7 +1202,7 @@ <histogram name="PageLoad.Clients.Prerender.NavigationToActivation{PreloadingTriggerType}" - units="ms" expires_after="2024-09-01"> + units="ms" expires_after="2024-11-03"> <owner>nhiroki@chromium.org</owner> <owner>src/content/browser/preloading/prerender/OWNERS</owner> <summary> @@ -1216,7 +1216,7 @@ <histogram name="PageLoad.Clients.Prerender.PaintTiming.ActivationToFirstContentfulPaint{PreloadingTriggerType}" - units="ms" expires_after="2024-09-01"> + units="ms" expires_after="2024-11-03"> <owner>nhiroki@chromium.org</owner> <owner>src/content/browser/preloading/prerender/OWNERS</owner> <summary> @@ -1231,7 +1231,7 @@ <histogram name="PageLoad.Clients.Prerender.PaintTiming.ActivationToFirstPaint{PreloadingTriggerType}" - units="ms" expires_after="2024-09-01"> + units="ms" expires_after="2024-11-03"> <owner>nhiroki@chromium.org</owner> <owner>src/content/browser/preloading/prerender/OWNERS</owner> <summary> @@ -1245,7 +1245,7 @@ <histogram name="PageLoad.Clients.Prerender.PaintTiming.ActivationToLargestContentfulPaint2{PreloadingTriggerType}" - units="ms" expires_after="2024-09-01"> + units="ms" expires_after="2024-11-03"> <owner>nhiroki@chromium.org</owner> <owner>src/content/browser/preloading/prerender/OWNERS</owner> <summary> @@ -1480,7 +1480,7 @@ </histogram> <histogram name="PageLoad.Clients.TPCD.AdTPCAccess.BlockedByExperiment2" - enum="Boolean" expires_after="2024-09-01"> + enum="Boolean" expires_after="2024-11-03"> <owner>johnidel@chromium.org</owner> <owner>victortan@chromium.org</owner> <owner>src/chrome/browser/tpcd/OWNERS</owner> @@ -1494,7 +1494,7 @@ <histogram name="PageLoad.Clients.TPCD.CookieAccess.ThirdPartyCookieAllowMechanism3" - enum="ThirdPartyCookieAllowMechanism" expires_after="2024-09-01"> + enum="ThirdPartyCookieAllowMechanism" expires_after="2024-11-03"> <owner>victortan@chromium.org</owner> <owner>src/chrome/browser/tpcd/OWNERS</owner> <summary> @@ -1509,7 +1509,7 @@ <histogram name="PageLoad.Clients.TPCD.ThirdPartyCookieAccessBlockedByExperiment2" - enum="Boolean" expires_after="2024-09-01"> + enum="Boolean" expires_after="2024-11-03"> <owner>victortan@chromium.org</owner> <owner>src/chrome/browser/tpcd/OWNERS</owner> <summary> @@ -1541,7 +1541,7 @@ <histogram name="PageLoad.Clients.TPCD.TPCAccess.BlockedByExperiment.IsAdOrNonAd2" - enum="Boolean" expires_after="2024-09-01"> + enum="Boolean" expires_after="2024-11-03"> <owner>johnidel@chromium.org</owner> <owner>victortan@chromium.org</owner> <owner>src/chrome/browser/tpcd/OWNERS</owner> @@ -1554,7 +1554,7 @@ </histogram> <histogram name="PageLoad.Clients.TPCD.TPCAccess.CookieReadStatus2" - enum="CookieReadStatus" expires_after="2024-09-01"> + enum="CookieReadStatus" expires_after="2024-11-03"> <owner>johnidel@chromium.org</owner> <owner>src/chrome/browser/tpcd/OWNERS</owner> <summary> @@ -1731,7 +1731,7 @@ </histogram> <histogram name="PageLoad.Cpu.TotalUsageForegrounded" units="ms" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>alexmt@chromium.org</owner> <owner>johnidel@chromium.org</owner> <summary> @@ -1764,7 +1764,7 @@ </histogram> <histogram name="PageLoad.Experimental.ClickInputBurst" units="count" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>dougarnett@chromium.org</owner> <owner>tbansal@chromium.org</owner> <owner>sullivan@chromium.org</owner> @@ -1779,7 +1779,7 @@ </histogram> <histogram name="PageLoad.Experimental.InputTiming.InputToNavigationStart" - units="ms" expires_after="2024-09-01"> + units="ms" expires_after="2024-11-03"> <owner>spelchat@chromium.org</owner> <owner>chrome-brapp-loading@google.com</owner> <summary> @@ -1939,7 +1939,7 @@ <histogram name="PageLoad.Experimental.NavigationTiming.NavigationStartToFinalLoaderCallback" - units="ms" expires_after="2024-09-01"> + units="ms" expires_after="2024-11-03"> <owner>nhiroki@chromium.org</owner> <owner>chrome-loading@google.com</owner> <summary> @@ -2122,7 +2122,7 @@ </histogram> <histogram name="PageLoad.Experimental.PaintTiming.InputToFirstContentfulPaint" - units="ms" expires_after="2024-09-01"> + units="ms" expires_after="2024-11-03"> <owner>sullivan@chromium.org</owner> <summary> The time between the OS-level input event that initiated a navigation, and @@ -2155,7 +2155,7 @@ </histogram> <histogram name="PageLoad.Experimental.TotalForegroundDuration{PageVisitType}" - units="ms" expires_after="2024-09-01"> + units="ms" expires_after="2024-11-03"> <owner>npm@chromium.org</owner> <owner>toyoshim@chromium.org</owner> <owner>speed-metrics-dev@chromium.org</owner> @@ -2424,7 +2424,7 @@ </histogram> <histogram name="PageLoad.InteractiveTiming.FirstInputTimestamp4" units="ms" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>sullivan@chromium.org</owner> <owner>speed-metrics-dev@chromium.org</owner> <summary> @@ -2570,7 +2570,7 @@ </histogram> <histogram name="PageLoad.Internal.PageLoadTimingStatus{Condition}" - enum="PageLoadTimingStatus" expires_after="2024-09-01"> + enum="PageLoadTimingStatus" expires_after="2024-11-03"> <owner>toyoshim@chromium.org</owner> <owner>src/components/page_load_metrics/OWNERS</owner> <owner>src/content/browser/preloading/prerender/OWNERS</owner> @@ -2591,7 +2591,7 @@ </histogram> <histogram name="PageLoad.Internal.PageType" enum="PageLoadTrackerPageType" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>toyoshim@chromium.org</owner> <owner>mparch-dev@chromium.org</owner> <summary> @@ -2615,7 +2615,7 @@ <histogram name="PageLoad.Internal.PaintTiming.LargestContentfulPaint.MainFrame.ContentType" - enum="LargestContentType" expires_after="2024-09-01"> + enum="LargestContentType" expires_after="2024-11-03"> <owner>iclelland@chromium.org</owner> <owner>speed-metrics-dev@chromium.org</owner> <summary> @@ -2640,7 +2640,7 @@ <histogram name="PageLoad.Internal.Prerender2.ActivatedPageLoaderStatus{PreloadingTriggerType}" - enum="NetErrorCodes" expires_after="2024-09-01"> + enum="NetErrorCodes" expires_after="2024-11-03"> <owner>lingqi@chromium.org</owner> <owner>chrome-prerendering@google.com</owner> <summary> @@ -3140,7 +3140,7 @@ </histogram> <histogram name="PageLoad.PaintTiming.NavigationToFirstImagePaint" units="ms" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>sullivan@chromium.org</owner> <owner>speed-metrics-dev@chromium.org</owner> <summary> @@ -3165,7 +3165,7 @@ <histogram name="PageLoad.PaintTiming.NavigationToFirstPaint.AfterBackForwardCacheRestore" - units="ms" expires_after="2024-09-01"> + units="ms" expires_after="2024-11-03"> <owner>altimin@chromium.org</owner> <owner>djw@chromium.org</owner> <owner>bfcache-dev@chromium.org</owner> @@ -3263,7 +3263,7 @@ </histogram> <histogram name="PageLoad.PaintTiming.NavigationToLargestContentfulPaint2" - units="ms" expires_after="2024-09-01"> + units="ms" expires_after="2024-11-03"> <owner>iclelland@chromium.org</owner> <owner>sullivan@chromium.org</owner> <owner>speed-metrics-dev@chromium.org</owner> @@ -3338,7 +3338,7 @@ <histogram name="PageLoad.PaintTiming.NavigationToLargestContentfulPaint2.MainFrame" - units="ms" expires_after="2024-09-01"> + units="ms" expires_after="2024-11-03"> <owner>iclelland@chromium.org</owner> <owner>sullivan@chromium.org</owner> <owner>speed-metrics-dev@chromium.org</owner> @@ -3417,7 +3417,7 @@ </histogram> <histogram name="PageLoad.PaintTiming.ParseStartToFirstContentfulPaint" - units="ms" expires_after="2024-09-01"> + units="ms" expires_after="2024-11-03"> <owner>bmcquade@chromium.org</owner> <owner>csharrison@chromium.org</owner> <owner>speed-metrics-dev@chromium.org</owner>
diff --git a/tools/metrics/histograms/metadata/password/histograms.xml b/tools/metrics/histograms/metadata/password/histograms.xml index cea8146..a3f3004 100644 --- a/tools/metrics/histograms/metadata/password/histograms.xml +++ b/tools/metrics/histograms/metadata/password/histograms.xml
@@ -390,7 +390,7 @@ </histogram> <histogram name="PasswordGeneration.GeneratedPasswordWasEdited" - enum="BooleanGeneratedPasswordWasEdited" expires_after="2024-08-31"> + enum="BooleanGeneratedPasswordWasEdited" expires_after="2024-11-03"> <owner>kazinova@google.com</owner> <owner>shaikhitdin@google.com</owner> <summary> @@ -419,7 +419,7 @@ </histogram> <histogram name="PasswordGeneration.SubmissionEvent" - enum="PasswordSubmissionEvent" expires_after="2024-09-01"> + enum="PasswordSubmissionEvent" expires_after="2024-11-03"> <owner>kazinova@google.com</owner> <owner>shaikhitdin@google.com</owner> <summary> @@ -480,7 +480,7 @@ <histogram name="PasswordManager.AccountStorage.MoveToAccountStoreFlowAccepted2" - enum="PasswordManager.MoveToAccountStoreTrigger" expires_after="2024-09-01"> + enum="PasswordManager.MoveToAccountStoreTrigger" expires_after="2024-11-03"> <owner>treib@chromium.org</owner> <owner>victorvianna@google.com</owner> <owner>mamir@chromium.org</owner> @@ -494,7 +494,7 @@ </histogram> <histogram name="PasswordManager.AccountStorage.MoveToAccountStoreFlowOffered" - enum="PasswordManager.MoveToAccountStoreTrigger" expires_after="2024-09-01"> + enum="PasswordManager.MoveToAccountStoreTrigger" expires_after="2024-11-03"> <owner>treib@chromium.org</owner> <owner>victorvianna@google.com</owner> <owner>mamir@chromium.org</owner> @@ -529,7 +529,7 @@ <histogram name="PasswordManager.AccountStorage.UnsyncedPasswordsFoundDuringSignOut" - units="passwords" expires_after="2024-09-01"> + units="passwords" expires_after="2024-11-03"> <owner>treib@chromium.org</owner> <owner>victorvianna@google.com</owner> <owner>mamir@chromium.org</owner> @@ -542,7 +542,7 @@ <histogram name="PasswordManager.AccountStorageUserStateDuration{UserSyncingType}" - units="ms" expires_after="2024-09-01"> + units="ms" expires_after="2024-11-03"> <owner>mamir@chromium.org</owner> <owner>treib@chromium.org</owner> <summary> @@ -597,7 +597,7 @@ </histogram> <histogram name="PasswordManager.AccountStoreVsProfileStore4.{DifferenceType}" - units="accounts" expires_after="2024-09-01"> + units="accounts" expires_after="2024-11-03"> <owner>mamir@chromium.org</owner> <owner>treib@chromium.org</owner> <summary> @@ -635,7 +635,7 @@ </histogram> <histogram name="PasswordManager.AddCredentialFromSettings.UserAction2" - enum="AddCredentialFromSettingsUserInteractions" expires_after="2024-09-01"> + enum="AddCredentialFromSettingsUserInteractions" expires_after="2024-11-03"> <owner>vidhanj@google.com</owner> <summary> Records the user actions performed when a new credential is added from @@ -678,7 +678,7 @@ </histogram> <histogram name="PasswordManager.AffiliationDatabase.DatabaseSize" units="KB" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>vsemeniuk@google.com</owner> <owner>vasilii@chromium.org</owner> <summary> @@ -840,7 +840,7 @@ </histogram> <histogram name="PasswordManager.BiometricAuthBeforeFillingEnabled2" - enum="BooleanEnabled" expires_after="2024-09-01"> + enum="BooleanEnabled" expires_after="2024-11-03"> <owner>kazinova@google.com</owner> <owner>vsemeniuk@google.com</owner> <summary> @@ -996,7 +996,7 @@ </histogram> <histogram name="PasswordManager.BulkCheck.UserAction" - enum="PasswordCheckInteraction" expires_after="2024-09-01"> + enum="PasswordCheckInteraction" expires_after="2024-11-03"> <owner>vsemeniuk@google.com</owner> <owner>vasilii@chromium.org</owner> <summary> @@ -1050,7 +1050,7 @@ </histogram> <histogram name="PasswordManager.CanUseBiometricsMac" enum="BooleanSuccess" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>vsemeniuk@google.com</owner> <owner>kazinova@google.com</owner> <owner>sygiet@google.com</owner> @@ -1061,7 +1061,7 @@ </histogram> <histogram name="PasswordManager.CompromisedCredentials3.{Issue}" - units="credentials" expires_after="2024-09-01"> + units="credentials" expires_after="2024-11-03"> <owner>vasilii@chromium.org</owner> <owner>vsemeniuk@google.com</owner> <summary> @@ -1197,7 +1197,7 @@ </histogram> <histogram name="PasswordManager.CredentialsWithDuplicates3" units="units" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>kazinova@google.com</owner> <owner>vasilii@chromium.org</owner> <summary> @@ -1238,7 +1238,7 @@ </histogram> <histogram name="PasswordManager.DefaultPasswordStoreSet" - enum="PasswordManager.Store" expires_after="2024-09-01"> + enum="PasswordManager.Store" expires_after="2024-11-03"> <owner>mamir@chromium.org</owner> <owner>treib@chromium.org</owner> <summary> @@ -1283,7 +1283,7 @@ </histogram> <histogram name="PasswordManager.EnableState" enum="PasswordManagerEnableState" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>markusheintz@google.com</owner> <owner>mamir@chromium.org</owner> <summary> @@ -1295,7 +1295,7 @@ <histogram name="PasswordManager.ErrorMessageDismissalReason.{ErrorMessageType}" - enum="MessageDismissReason" expires_after="2024-09-01"> + enum="MessageDismissReason" expires_after="2024-11-03"> <owner>izuzic@google.com</owner> <owner>ioanap@chromium.org</owner> <summary> @@ -1318,7 +1318,7 @@ </histogram> <histogram name="PasswordManager.ErrorMessageDisplayReason" - enum="PasswordStoreBackendErrorType" expires_after="2024-09-01"> + enum="PasswordStoreBackendErrorType" expires_after="2024-11-03"> <owner>izuzic@google.com</owner> <owner>ioanap@chromium.org</owner> <summary> @@ -1373,7 +1373,7 @@ </histogram> <histogram name="PasswordManager.FillingAssistanceForSingleUsername" - enum="SingleUsernameFillingAssistance" expires_after="2024-09-01"> + enum="SingleUsernameFillingAssistance" expires_after="2024-11-03"> <owner>vincb@google.com</owner> <owner>eic@google.com</owner> <owner>bling-transactions@google.com</owner> @@ -1388,7 +1388,7 @@ </histogram> <histogram name="PasswordManager.FillingSource" - enum="PasswordManagerFillingSource" expires_after="2024-09-01"> + enum="PasswordManagerFillingSource" expires_after="2024-11-03"> <owner>mamir@chromium.org</owner> <owner>treib@chromium.org</owner> <summary> @@ -1501,7 +1501,7 @@ </histogram> <histogram name="PasswordManager.Import.DesktopInteractions" - enum="PasswordsImportDesktopInteractions" expires_after="2024-09-01"> + enum="PasswordsImportDesktopInteractions" expires_after="2024-11-03"> <owner>eliaskh@chromium.org</owner> <owner>natiahlyi@google.com</owner> <summary> @@ -1573,7 +1573,7 @@ </histogram> <histogram name="PasswordManager.Import.PerFile.{ErrorType}" units="units" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>eliaskh@chromium.org</owner> <owner>natiahlyi@google.com</owner> <summary> @@ -1600,7 +1600,7 @@ </histogram> <histogram name="PasswordManager.ImportDuration" units="ms" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>eliaskh@chromium.org</owner> <owner>natiahlyi@google.com</owner> <summary> @@ -1635,7 +1635,7 @@ </histogram> <histogram name="PasswordManager.ImportFileSize" units="bytes" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>eliaskh@chromium.org</owner> <owner>natiahlyi@google.com</owner> <summary> @@ -1734,7 +1734,7 @@ </histogram> <histogram name="PasswordManager.IsSyncPasswordHashSaved" - enum="IsSyncPasswordHashSaved" expires_after="2024-09-01"> + enum="IsSyncPasswordHashSaved" expires_after="2024-11-03"> <owner>vakh@chromium.org</owner> <owner>chrome-counter-abuse-alerts@google.com</owner> <summary> @@ -1744,7 +1744,7 @@ </histogram> <histogram name="PasswordManager.ItemSelected.OffTheRecord" units="units" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>arabm@chromium.org</owner> <owner>chrome-privacy-team@google.com</owner> <summary> @@ -1764,7 +1764,7 @@ </histogram> <histogram name="PasswordManager.LeakDetection.AnalyzeSingleLeakResponseResult" - enum="PasswordAnalyzeLeakResponseResult" expires_after="2024-09-01"> + enum="PasswordAnalyzeLeakResponseResult" expires_after="2024-11-03"> <owner>vsemeniuk@google.com</owner> <owner>vasilii@chromium.org</owner> <summary>Result of analyzing a single leak response.</summary> @@ -1790,7 +1790,7 @@ </histogram> <histogram name="PasswordManager.LeakDetection.HttpResponseCode" - enum="HttpResponseCode" expires_after="2024-09-01"> + enum="HttpResponseCode" expires_after="2024-11-03"> <owner>vsemeniuk@google.com</owner> <owner>vasilii@chromium.org</owner> <summary> @@ -1909,7 +1909,7 @@ </histogram> <histogram name="PasswordManager.LoginDatabaseInit2" - enum="LoginDatabaseInitError" expires_after="2024-09-01"> + enum="LoginDatabaseInitError" expires_after="2024-11-03"> <owner>vasilii@chromium.org</owner> <owner>mamir@chromium.org</owner> <summary> @@ -2021,7 +2021,7 @@ <histogram name="PasswordManager.NewlySavedPasswordHasEmptyUsername.{PasswordType}" - enum="Boolean" expires_after="2024-09-01"> + enum="Boolean" expires_after="2024-11-03"> <owner>khamutov@google.com</owner> <owner>kazinova@google.com</owner> <owner>chrome-autofill-alerts@google.com</owner> @@ -2044,7 +2044,7 @@ </histogram> <histogram name="PasswordManager.NonSyncPasswordHashChange" - enum="GaiaPasswordHashChange" expires_after="2024-09-01"> + enum="GaiaPasswordHashChange" expires_after="2024-11-03"> <owner>drubery@chromium.org</owner> <owner>chrome-counter-abuse-alerts@google.com</owner> <summary> @@ -2055,7 +2055,7 @@ </histogram> <histogram name="PasswordManager.OpenedAsShortcut" enum="Boolean" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>vasilii@chromium.org</owner> <owner>vsemeniuk@google.com</owner> <summary> @@ -2089,7 +2089,7 @@ </histogram> <histogram name="PasswordManager.PasswordCheckup.Launch.Success" - enum="BooleanSuccess" expires_after="2024-09-01"> + enum="BooleanSuccess" expires_after="2024-11-03"> <owner>ioanap@chromium.org</owner> <owner>vsemeniuk@google.com</owner> <summary> @@ -2102,7 +2102,7 @@ </histogram> <histogram name="PasswordManager.PasswordCheckup.{Operation}.APIError" - enum="PasswordStoreAndroidBackendAPIError" expires_after="2024-09-01"> + enum="PasswordStoreAndroidBackendAPIError" expires_after="2024-11-03"> <owner>ioanap@chromium.org</owner> <owner>izuzic@google.com</owner> <summary> @@ -2157,7 +2157,7 @@ </histogram> <histogram name="PasswordManager.PasswordCheckup.{Operation}.Success" - enum="BooleanSuccess" expires_after="2024-09-01"> + enum="BooleanSuccess" expires_after="2024-11-03"> <owner>ioanap@chromium.org</owner> <owner>izuzic@google.com</owner> <summary> @@ -2177,7 +2177,7 @@ </histogram> <histogram name="PasswordManager.PasswordDropdownShown" - enum="PasswordDropdownState" expires_after="2024-09-01"> + enum="PasswordDropdownState" expires_after="2024-11-03"> <owner>kazinova@google.com</owner> <owner>vasilii@chromium.org</owner> <summary>Logs the state of the password dropdown when it's shown.</summary> @@ -2233,7 +2233,7 @@ </histogram> <histogram name="PasswordManager.PasswordMigrationWarning.Export.Result2" - enum="HistogramExportResult" expires_after="2024-09-01"> + enum="HistogramExportResult" expires_after="2024-11-03"> <owner>ioanap@chromium.org</owner> <owner>atsvirchkova@google.com</owner> <summary> @@ -2281,7 +2281,7 @@ </histogram> <histogram name="PasswordManager.PasswordNoteActionInSettings2" - enum="PasswordNoteAction" expires_after="2024-09-01"> + enum="PasswordNoteAction" expires_after="2024-11-03"> <owner>derinel@google.com</owner> <owner>mamir@chromium.org</owner> <summary> @@ -2344,7 +2344,7 @@ </histogram> <histogram name="PasswordManager.PasswordReuse.NumberOfMatches" - units="credentials" expires_after="2024-09-01"> + units="credentials" expires_after="2024-11-03"> <owner>vakh@chromium.org</owner> <owner>chrome-counter-abuse-alerts@google.com</owner> <summary> @@ -2360,7 +2360,7 @@ </histogram> <histogram name="PasswordManager.PasswordReuse.PasswordFieldDetected" - enum="PasswordReusePasswordFieldDetected" expires_after="2024-09-01"> + enum="PasswordReusePasswordFieldDetected" expires_after="2024-11-03"> <owner>vakh@chromium.org</owner> <owner>chrome-counter-abuse-alerts@google.com</owner> <summary> @@ -2404,7 +2404,7 @@ <histogram name="PasswordManager.PasswordSettings.{Function}.{Setting}{Type}.APIError1" - enum="PasswordStoreAndroidBackendAPIError" expires_after="2024-09-01"> + enum="PasswordStoreAndroidBackendAPIError" expires_after="2024-11-03"> <owner>izuzic@google.com</owner> <owner>ioanap@chromium.org</owner> <summary> @@ -2467,7 +2467,7 @@ <histogram name="PasswordManager.PasswordSettings.{Function}.{Setting}{Type}.Latency" - units="ms" expires_after="2024-09-01"> + units="ms" expires_after="2024-11-03"> <owner>izuzic@google.com</owner> <owner>ioanap@chromium.org</owner> <summary> @@ -2628,7 +2628,7 @@ </histogram> <histogram name="PasswordManager.PasswordStore.TimesReenrolledInUPM" - units="Times" expires_after="2024-09-01"> + units="Times" expires_after="2024-11-03"> <owner>kazinova@google.com</owner> <owner>vasilii@chromium.org</owner> <summary> @@ -2642,7 +2642,7 @@ <histogram name="PasswordManager.PasswordStore.WasEnrolledInUPMWhenBackendWasCreated" - enum="Boolean" expires_after="2024-09-01"> + enum="Boolean" expires_after="2024-11-03"> <owner>kazinova@google.com</owner> <owner>ioanap@chromium.org</owner> <owner>fhorschig@chromium.org</owner> @@ -2864,7 +2864,7 @@ <histogram name="PasswordManager.PasswordStoreAndroidBackend{Function}.APIError" - enum="PasswordStoreAndroidBackendAPIError" expires_after="2024-09-01"> + enum="PasswordStoreAndroidBackendAPIError" expires_after="2024-11-03"> <owner>maxan@chromium.org</owner> <owner>ioanap@chromium.org</owner> <owner>vasilii@chromium.org</owner> @@ -2893,7 +2893,7 @@ <histogram name="PasswordManager.PasswordStoreAndroidBackend{Function}.ConnectionResultCode" enum="PasswordStoreAndroidBackendConnectionResultCode" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>ioanap@chromium.org</owner> <owner>vasilii@chromium.org</owner> <summary> @@ -2920,7 +2920,7 @@ <histogram name="PasswordManager.PasswordStoreAndroidBackend{Function}.ErrorCode" - enum="PasswordStoreAndroidBackendError" expires_after="2024-09-01"> + enum="PasswordStoreAndroidBackendError" expires_after="2024-11-03"> <owner>maxan@chromium.org</owner> <owner>ioanap@chromium.org</owner> <owner>vasilii@chromium.org</owner> @@ -2984,7 +2984,7 @@ </histogram> <histogram name="PasswordManager.PasswordStoreProxyBackend.{Function}.Fallback" - enum="Boolean" expires_after="2024-09-01"> + enum="Boolean" expires_after="2024-11-03"> <owner>ioanap@chromium.org</owner> <owner>vasilii@chromium.org</owner> <summary> @@ -2997,7 +2997,7 @@ </histogram> <histogram name="PasswordManager.PasswordStore{Backend}.{Function}" - enum="PasswordStoreAndroidBackendRequestStatus" expires_after="2024-09-01"> + enum="PasswordStoreAndroidBackendRequestStatus" expires_after="2024-11-03"> <owner>maxan@chromium.org</owner> <owner>ioanap@chromium.org</owner> <owner>vasilii@chromium.org</owner> @@ -3018,7 +3018,7 @@ </histogram> <histogram name="PasswordManager.PasswordStore{Backend}.{Function}.Latency" - units="ms" expires_after="2024-09-01"> + units="ms" expires_after="2024-11-03"> <owner>maxan@chromium.org</owner> <owner>ioanap@chromium.org</owner> <owner>vasilii@chromium.org</owner> @@ -3038,7 +3038,7 @@ </histogram> <histogram name="PasswordManager.PasswordStore{Backend}.{Function}.Success" - enum="BooleanSuccess" expires_after="2024-09-01"> + enum="BooleanSuccess" expires_after="2024-11-03"> <owner>maxan@chromium.org</owner> <owner>ioanap@chromium.org</owner> <owner>vasilii@chromium.org</owner> @@ -3069,7 +3069,7 @@ </histogram> <histogram name="PasswordManager.PasswordViewPage.UserActions" - enum="PasswordViewPageInteractions" expires_after="2024-09-01"> + enum="PasswordViewPageInteractions" expires_after="2024-11-03"> <owner>derinel@google.com</owner> <owner>mamir@chromium.org</owner> <summary> @@ -3102,7 +3102,7 @@ </histogram> <histogram name="PasswordManager.PrefilledUsernameFillOutcome" - enum="PrefilledUsernameFillOutcome" expires_after="2024-09-01"> + enum="PrefilledUsernameFillOutcome" expires_after="2024-11-03"> <owner>khamutov@google.com</owner> <owner>kazinova@google.com</owner> <summary> @@ -3119,7 +3119,7 @@ <histogram name="PasswordManager.ProcessIncomingPasswordSharingInvitationResult" enum="PasswordManager.ProcessIncomingPasswordSharingInvitationResult" - expires_after="2024-07-07"> + expires_after="2024-11-03"> <owner>mamir@chromium.org</owner> <owner>rushans@google.com</owner> <component>1457410</component> @@ -3263,7 +3263,7 @@ </histogram> <histogram name="PasswordManager.ReusedPasswordType" enum="ReusedPasswordType" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>vakh@chromium.org</owner> <owner>chrome-counter-abuse-alerts@google.com</owner> <summary> @@ -3294,7 +3294,7 @@ </histogram> <histogram name="PasswordManager.SaveUIDismissalReason{UserSyncingType}" - enum="PasswordManagerUIDismissalReason" expires_after="2024-09-01"> + enum="PasswordManagerUIDismissalReason" expires_after="2024-11-03"> <owner>vasilii@chromium.org</owner> <owner>treib@chromium.org</owner> <owner>mamir@chromium.org</owner> @@ -3337,7 +3337,7 @@ </histogram> <histogram name="PasswordManager.SavingOnUsernameFirstFlow" - enum="SavingOnUsernameFirstFlow" expires_after="2024-09-01"> + enum="SavingOnUsernameFirstFlow" expires_after="2024-11-03"> <owner>kazinova@google.com</owner> <owner>vasilii@chromium.org</owner> <summary> @@ -3383,7 +3383,7 @@ </histogram> <histogram name="PasswordManager.Settings.ToggleOfferToSavePasswords" - enum="BooleanEnabled" expires_after="2024-09-01"> + enum="BooleanEnabled" expires_after="2024-11-03"> <owner>ioanap@chromium.org</owner> <owner>kazinova@google.com</owner> <summary> @@ -3420,7 +3420,7 @@ <histogram name="PasswordManager.SingleUsername.ForgotPasswordServerPredictionUsed" - enum="Boolean" expires_after="2024-09-01"> + enum="Boolean" expires_after="2024-11-03"> <owner>kazinova@google.com</owner> <owner>shaikhitdin@google.com</owner> <summary> @@ -3451,7 +3451,7 @@ </histogram> <histogram name="PasswordManager.SingleUsername.VoteDataAvailability" - enum="SingleUsernameVoteDataAvailability" expires_after="2024-09-01"> + enum="SingleUsernameVoteDataAvailability" expires_after="2024-11-03"> <owner>kazinova@google.com</owner> <owner>shaikhitdin@google.com</owner> <summary> @@ -3506,7 +3506,7 @@ </histogram> <histogram name="PasswordManager.SubmittedFormType2" enum="PasswordFormType2" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>kazinova@google.com</owner> <owner>shaikhitdin@google.com</owner> <owner>chrome-password-manager-metrics-alerts@google.com</owner> @@ -3577,7 +3577,7 @@ </histogram> <histogram name="PasswordManager.SyncingAccountState3" - enum="PasswordManagerSyncingAccountState" expires_after="2024-09-01"> + enum="PasswordManagerSyncingAccountState" expires_after="2024-11-03"> <owner>kazinova@google.com</owner> <owner>vasilii@chromium.org</owner> <owner>chrome-password-manager-metrics-alerts@google.com</owner> @@ -3600,7 +3600,7 @@ </histogram> <histogram name="PasswordManager.SyncPasswordHashChange" - enum="GaiaPasswordHashChange" expires_after="2024-09-01"> + enum="GaiaPasswordHashChange" expires_after="2024-11-03"> <owner>drubery@chromium.org</owner> <owner>chrome-counter-abuse-alerts@google.com</owner> <summary> @@ -3748,7 +3748,7 @@ </histogram> <histogram name="PasswordManager.UIDismissalReason" - enum="PasswordManagerUIDismissalReason" expires_after="2024-09-01"> + enum="PasswordManagerUIDismissalReason" expires_after="2024-11-03"> <owner>vasilii@chromium.org</owner> <owner>mamir@chromium.org</owner> <summary> @@ -3942,7 +3942,7 @@ </histogram> <histogram name="PasswordManager.UsernameDetectionMethod" - enum="UsernameDetectionMethod" expires_after="2024-09-01"> + enum="UsernameDetectionMethod" expires_after="2024-11-03"> <owner>kazinova@google.com</owner> <owner>shaikhitdin@google.com</owner> <summary> @@ -4002,7 +4002,7 @@ </histogram> <histogram name="PasswordManager.WellKnownChangePasswordResult" - enum="WellKnownChangePasswordResult" expires_after="2024-09-01"> + enum="WellKnownChangePasswordResult" expires_after="2024-11-03"> <owner>kazinova@google.com</owner> <owner>jkeitel@google.com</owner> <summary> @@ -4013,7 +4013,7 @@ </histogram> <histogram name="PasswordManager.{Function}.TimeSinceInit" units="units" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>vsemeniuk@google.com</owner> <owner>vasilii@chromium.org</owner> <summary> @@ -4030,7 +4030,7 @@ </histogram> <histogram name="PasswordManager.{Location}.AuthenticationResult" - enum="BooleanSuccess" expires_after="2024-09-01"> + enum="BooleanSuccess" expires_after="2024-11-03"> <owner>vsemeniuk@google.com</owner> <owner>vasilii@chromium.org</owner> <summary> @@ -4064,7 +4064,7 @@ <histogram name="PasswordManager.{Store}BlacklistedSitesHiRes3{CustomPassphraseStatus}" - units="sites" expires_after="2024-09-01"> + units="sites" expires_after="2024-11-03"> <owner>kazinova@google.com</owner> <owner>mamir@chromium.org</owner> <owner>treib@chromium.org</owner> @@ -4079,7 +4079,7 @@ </histogram> <histogram name="PasswordManager.{Store}InaccessiblePasswords3" - units="saved passwords" expires_after="2024-09-01"> + units="saved passwords" expires_after="2024-11-03"> <owner>derinel@google.com</owner> <owner>vasilii@chromium.org</owner> <owner>mamir@chromium.org</owner> @@ -4095,7 +4095,7 @@ </histogram> <histogram name="PasswordManager.{Store}LoginDatabaseEncryptionStatus" - enum="LoginDatabaseEncryptionStatus" expires_after="2024-09-01"> + enum="LoginDatabaseEncryptionStatus" expires_after="2024-11-03"> <owner>derinel@google.com</owner> <owner>mamir@chromium.org</owner> <summary> @@ -4135,7 +4135,7 @@ <histogram name="PasswordManager.{Store}TimesPasswordUsed3.{PasswordType}{CustomPassphraseStatus}" - units="PasswordUses" expires_after="2024-09-01"> + units="PasswordUses" expires_after="2024-11-03"> <owner>kazinova@google.com</owner> <owner>battre@chromium.org</owner> <owner>mamir@chromium.org</owner> @@ -4153,7 +4153,7 @@ </histogram> <histogram name="PasswordManager.{Store}TotalAccountsHiRes3.WithScheme{Scheme}" - units="accounts" expires_after="2024-09-01"> + units="accounts" expires_after="2024-11-03"> <owner>battre@chromium.org</owner> <owner>mamir@chromium.org</owner> <owner>treib@chromium.org</owner> @@ -4170,7 +4170,7 @@ <histogram name="PasswordManager.{Store}{Metric3}.{PasswordType}{CustomPassphraseStatus}" - units="units" expires_after="2024-09-01"> + units="units" expires_after="2024-11-03"> <owner>kazinova@google.com</owner> <owner>vasilii@chromium.org</owner> <owner>mamir@chromium.org</owner>
diff --git a/tools/metrics/histograms/metadata/payment/histograms.xml b/tools/metrics/histograms/metadata/payment/histograms.xml index dd9511d..52173175a 100644 --- a/tools/metrics/histograms/metadata/payment/histograms.xml +++ b/tools/metrics/histograms/metadata/payment/histograms.xml
@@ -23,7 +23,7 @@ <histograms> <histogram name="PaymentRequest.CheckoutFunnel" - enum="PaymentRequestCheckoutFunnelSteps" expires_after="2024-09-01"> + enum="PaymentRequestCheckoutFunnelSteps" expires_after="2024-11-03"> <owner>rouslan@chromium.org</owner> <owner>web-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 8548fb6..897e237 100644 --- a/tools/metrics/histograms/metadata/pdf/histograms.xml +++ b/tools/metrics/histograms/metadata/pdf/histograms.xml
@@ -83,7 +83,7 @@ </histogram> <histogram name="PDF.RenderAndPaintVisiblePagesTime" units="ms" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>nigi@chromium.org</owner> <owner>thestig@chromium.org</owner> <summary> @@ -92,7 +92,7 @@ </summary> </histogram> -<histogram name="PDF.Version" enum="PDFVersion" expires_after="2024-09-01"> +<histogram name="PDF.Version" enum="PDFVersion" expires_after="2024-11-03"> <owner>dhoss@chromium.org</owner> <owner>thestig@chromium.org</owner> <summary>Tracks versions of documents opened in the PDF viewer.</summary>
diff --git a/tools/metrics/histograms/metadata/performance_manager/histograms.xml b/tools/metrics/histograms/metadata/performance_manager/histograms.xml index 9e5649ba..4c8be328 100644 --- a/tools/metrics/histograms/metadata/performance_manager/histograms.xml +++ b/tools/metrics/histograms/metadata/performance_manager/histograms.xml
@@ -102,7 +102,7 @@ </histogram> <histogram name="PerformanceManager.Experimental.AccessibilityModeFlag" - enum="AccessibilityModeFlagEnum" expires_after="2024-09-01"> + enum="AccessibilityModeFlagEnum" expires_after="2024-11-03"> <owner>anthonyvd@chromium.org</owner> <owner>chrome-catan@google.com</owner> <summary> @@ -112,7 +112,7 @@ </histogram> <histogram name="PerformanceManager.Experimental.HasAccessibilityModeFlag" - enum="Boolean" expires_after="2024-09-01"> + enum="Boolean" expires_after="2024-11-03"> <owner>anthonyvd@chromium.org</owner> <owner>chrome-catan@google.com</owner> <summary> @@ -123,7 +123,7 @@ <histogram name="PerformanceManager.PerformanceInterventions.CPU.AverageBackgroundCPU.{Timing}" - units="%" expires_after="2024-09-01"> + units="%" expires_after="2024-11-03"> <owner>agale@chromium.org</owner> <owner>joenotcharles@chromium.org</owner> <owner>chrome-catan@google.com</owner> @@ -149,7 +149,7 @@ <histogram name="PerformanceManager.PerformanceInterventions.CPU.BackgroundTabsToGetUnderCPUThreshold.{Timing}" - units="count" expires_after="2024-09-01"> + units="count" expires_after="2024-11-03"> <owner>agale@chromium.org</owner> <owner>joenotcharles@chromium.org</owner> <owner>chrome-catan@google.com</owner> @@ -162,7 +162,7 @@ <histogram name="PerformanceManager.PerformanceInterventions.CPU.DurationOverThreshold" - units="ms" expires_after="2024-09-01"> + units="ms" expires_after="2024-11-03"> <owner>agale@chromium.org</owner> <owner>joenotcharles@chromium.org</owner> <owner>chrome-catan@google.com</owner> @@ -174,7 +174,7 @@ <histogram name="PerformanceManager.PerformanceInterventions.CPU.NonChrome.{Timing}" - units="%" expires_after="2024-09-01"> + units="%" expires_after="2024-11-03"> <owner>agale@chromium.org</owner> <owner>joenotcharles@chromium.org</owner> <owner>chrome-catan@google.com</owner> @@ -189,7 +189,7 @@ <histogram name="PerformanceManager.PerformanceInterventions.CPU.System.{Timing}" - units="%" expires_after="2024-09-01"> + units="%" expires_after="2024-11-03"> <owner>agale@chromium.org</owner> <owner>joenotcharles@chromium.org</owner> <owner>chrome-catan@google.com</owner> @@ -216,7 +216,7 @@ <histogram name="PerformanceManager.PerformanceInterventions.CPU.TopNBackgroundCPU.{N}.{Timing}" - units="%" expires_after="2024-09-01"> + units="%" expires_after="2024-11-03"> <owner>agale@chromium.org</owner> <owner>joenotcharles@chromium.org</owner> <owner>chrome-catan@google.com</owner> @@ -236,7 +236,7 @@ <histogram name="PerformanceManager.PerformanceInterventions.CPU.TotalBackgroundCPU.{Timing}" - units="%" expires_after="2024-09-01"> + units="%" expires_after="2024-11-03"> <owner>agale@chromium.org</owner> <owner>joenotcharles@chromium.org</owner> <owner>chrome-catan@google.com</owner> @@ -249,7 +249,7 @@ <histogram name="PerformanceManager.PerformanceInterventions.CPU.TotalBackgroundTabCount.{Timing}" - units="count" expires_after="2024-09-01"> + units="count" expires_after="2024-11-03"> <owner>agale@chromium.org</owner> <owner>joenotcharles@chromium.org</owner> <owner>chrome-catan@google.com</owner> @@ -261,7 +261,7 @@ <histogram name="PerformanceManager.PerformanceInterventions.CPU.TotalForegroundCPU.{Timing}" - units="%" expires_after="2024-09-01"> + units="%" expires_after="2024-11-03"> <owner>agale@chromium.org</owner> <owner>joenotcharles@chromium.org</owner> <owner>chrome-catan@google.com</owner> @@ -274,7 +274,7 @@ <histogram name="PerformanceManager.PerformanceInterventions.CPU.TotalForegroundTabCount.{Timing}" - units="count" expires_after="2024-09-01"> + units="count" expires_after="2024-11-03"> <owner>agale@chromium.org</owner> <owner>joenotcharles@chromium.org</owner> <owner>chrome-catan@google.com</owner>
diff --git a/tools/metrics/histograms/metadata/permissions/histograms.xml b/tools/metrics/histograms/metadata/permissions/histograms.xml index 67aeda2..caf47ff26 100644 --- a/tools/metrics/histograms/metadata/permissions/histograms.xml +++ b/tools/metrics/histograms/metadata/permissions/histograms.xml
@@ -223,7 +223,7 @@ </histogram> <histogram name="Permissions.Action.{PermissionType}.CrossOriginFrame" - enum="PermissionAction" expires_after="2024-09-01"> + enum="PermissionAction" expires_after="2024-11-03"> <owner>tungnh@chromium.org</owner> <owner>src/components/permissions/PERMISSIONS_OWNERS</owner> <summary> @@ -236,7 +236,7 @@ <histogram name="Permissions.Action.{PermissionType}.CrossOriginFrame.TopLevelHeaderPolicy" - enum="PermissionsPolicyConfiguration" expires_after="2024-09-01"> + enum="PermissionsPolicyConfiguration" expires_after="2024-11-03"> <owner>tungnh@chromium.org</owner> <owner>src/components/permissions/PERMISSIONS_OWNERS</owner> <summary> @@ -251,7 +251,7 @@ <histogram name="Permissions.ActivityIndicator.{Disposition}.{PermissionType}.{Action}" - enum="ActivityIndicatorState" expires_after="2024-09-01"> + enum="ActivityIndicatorState" expires_after="2024-11-03"> <owner>elklm@chromium.org</owner> <owner>src/components/permissions/PERMISSIONS_OWNERS</owner> <summary> @@ -352,7 +352,7 @@ </histogram> <histogram name="Permissions.CrowdDeny.PreloadData.DelayedPushNotification" - units="ms" expires_after="2024-07-31"> + units="ms" expires_after="2024-11-03"> <owner>elklm@chromium.org</owner> <owner>src/components/permissions/PERMISSIONS_OWNERS</owner> <summary> @@ -367,7 +367,7 @@ </histogram> <histogram name="Permissions.CrowdDeny.PreloadData.NotificationUxQuality" - enum="CrowdDenyNotificationUxQuality" expires_after="2024-09-01"> + enum="CrowdDenyNotificationUxQuality" expires_after="2024-11-03"> <owner>andypaicu@chromium.org</owner> <owner>engedy@chromium.org</owner> <owner>hkamila@chromium.org</owner> @@ -400,7 +400,7 @@ </histogram> <histogram name="Permissions.CrowdDeny.SafeBrowsing.Verdict" - enum="CrowdDenySafeBrowsingVerdict" expires_after="2024-09-01"> + enum="CrowdDenySafeBrowsingVerdict" expires_after="2024-11-03"> <owner>engedy@chromium.org</owner> <owner>src/components/permissions/PERMISSIONS_OWNERS</owner> <summary> @@ -506,7 +506,7 @@ <histogram name="Permissions.Experimental.Usage.{PermissionType}.CrossOriginFrame.TopLevelHeaderPolicy" - enum="PermissionsPolicyConfiguration" expires_after="2024-09-01"> + enum="PermissionsPolicyConfiguration" expires_after="2024-11-03"> <owner>tungnh@chromium.org</owner> <owner>src/components/permissions/PERMISSIONS_OWNERS</owner> <summary> @@ -554,7 +554,7 @@ </histogram> <histogram name="Permissions.MissingOSLevelPermission.ShouldShow" - enum="Boolean" expires_after="2024-09-01"> + enum="Boolean" expires_after="2024-11-03"> <owner>andypaicu@chromium.org</owner> <owner>engedy@chromium.org</owner> <owner>hkamila@chromium.org</owner> @@ -609,7 +609,7 @@ <histogram name="Permissions.PageInfo.Changed.{PermissionType}.Reallowed.Outcome" - enum="PermissionChangeInfo" expires_after="2024-09-01"> + enum="PermissionChangeInfo" expires_after="2024-11-03"> <owner>elklm@chromium.org</owner> <owner>src/components/permissions/PERMISSIONS_OWNERS</owner> <summary> @@ -642,7 +642,7 @@ </histogram> <histogram name="Permissions.PageInfo.ChangedWithin1m.{PermissionType}" - enum="PermissionChangeAction" expires_after="2024-09-01"> + enum="PermissionChangeAction" expires_after="2024-11-03"> <owner>fjacky@chromium.org</owner> <owner>src/components/permissions/PERMISSIONS_OWNERS</owner> <summary> @@ -655,7 +655,7 @@ </histogram> <histogram name="Permissions.PredictionService.PredictionSource" - enum="PermissionPredictionSource" expires_after="2024-09-01"> + enum="PermissionPredictionSource" expires_after="2024-11-03"> <owner>ravjit@chromium.org</owner> <owner>src/components/permissions/PERMISSIONS_OWNERS</owner> <summary> @@ -666,7 +666,7 @@ </histogram> <histogram name="Permissions.PredictionService.PredictionThresholdSource" - enum="PermissionPredictionThresholdSource" expires_after="2024-09-01"> + enum="PermissionPredictionThresholdSource" expires_after="2024-11-03"> <owner>ravjit@chromium.org</owner> <owner>src/components/permissions/PERMISSIONS_OWNERS</owner> <summary> @@ -677,7 +677,7 @@ </histogram> <histogram name="Permissions.PredictionService.Response.{PermissionType}" - enum="BooleanIgnored" expires_after="2024-09-01"> + enum="BooleanIgnored" expires_after="2024-11-03"> <owner>ravjit@chromium.org</owner> <owner>src/components/permissions/PERMISSIONS_OWNERS</owner> <summary> @@ -959,7 +959,7 @@ </histogram> <histogram name="Permissions.Prompt.{PermissionType}.{Disposition}.Action" - enum="PermissionAction" expires_after="2024-09-01"> + enum="PermissionAction" expires_after="2024-11-03"> <owner>elklm@chromium.org</owner> <owner>src/components/permissions/PERMISSIONS_OWNERS</owner> <summary> @@ -1201,7 +1201,7 @@ </histogram> <histogram name="Permissions.Request.SameOrigin.{FrameLevel}" - enum="PermissionType" expires_after="2024-09-01"> + enum="PermissionType" expires_after="2024-11-03"> <owner>elklm@chromium.org</owner> <owner>src/components/permissions/PERMISSIONS_OWNERS</owner> <summary> @@ -1383,7 +1383,7 @@ </histogram> <histogram name="WebsiteSettings.Action" enum="WebsiteSettingsAction" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>estark@chromium.org</owner> <owner>dullweber@chromium.org</owner> <summary> @@ -1404,7 +1404,7 @@ </histogram> <histogram name="WebsiteSettings.OriginInfo.PermissionChanged" - enum="ContentType" expires_after="2024-09-01"> + enum="ContentType" expires_after="2024-11-03"> <owner>andypaicu@chromium.org</owner> <owner>engedy@chromium.org</owner> <owner>hkamila@chromium.org</owner>
diff --git a/tools/metrics/histograms/metadata/platform/histograms.xml b/tools/metrics/histograms/metadata/platform/histograms.xml index b0180e7..664630a 100644 --- a/tools/metrics/histograms/metadata/platform/histograms.xml +++ b/tools/metrics/histograms/metadata/platform/histograms.xml
@@ -53,7 +53,7 @@ </histogram> <histogram name="Platform.BootMode.DevSwitch" - enum="Platform.BootMode.SwitchStatus" expires_after="2024-09-01"> + enum="Platform.BootMode.SwitchStatus" expires_after="2024-11-03"> <owner>enlightened@chromium.org</owner> <owner>chromeos-hardening@google.com</owner> <summary> @@ -66,7 +66,7 @@ </histogram> <histogram name="Platform.BootMode.FirmwareWriteProtect.{FirmwareType}" - enum="Platform.BootMode.FirmwareWriteProtect" expires_after="2024-09-01"> + enum="Platform.BootMode.FirmwareWriteProtect" expires_after="2024-11-03"> <owner>enlightened@chromium.org</owner> <owner>chromeos-hardening@google.com</owner> <summary> @@ -161,7 +161,7 @@ </histogram> <histogram name="Platform.Chaps.TokenManager.UnloadToken" - enum="TokenManagerStatus" expires_after="2024-09-01"> + enum="TokenManagerStatus" expires_after="2024-11-03"> <owner>chenyian@google.com</owner> <owner>cros-hwsec-userland-eng+uma@google.com</owner> <summary> @@ -188,7 +188,7 @@ </histogram> <histogram name="Platform.CrashCollector.AddWeightResult" - enum="CrosCrashCollectorAddWeightResult" expires_after="2024-09-01"> + enum="CrosCrashCollectorAddWeightResult" expires_after="2024-11-03"> <owner>iby@chromium.org</owner> <owner>chromeos-data-eng@google.com</owner> <summary> @@ -265,7 +265,7 @@ </histogram> <histogram name="Platform.DetachableBase.AttachedOnBoot" enum="BooleanAttached" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>fshao@chromium.org</owner> <owner>phoenixshen@chromium.org</owner> <owner>chromeos-kukui@google.com</owner> @@ -396,7 +396,7 @@ </histogram> <histogram name="Platform.DiskUsage.NumUserHomeDirectories" - units="home directories" expires_after="2024-09-01"> + units="home directories" expires_after="2024-11-03"> <owner>achuith@chromium.org</owner> <owner>tls@chromium.org</owner> <summary> @@ -564,7 +564,7 @@ </histogram> <histogram name="Platform.FlexCpuIsaLevel" enum="FlexCpuIsaLevel" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>nicholasbishop@google.com</owner> <owner>chromeos-flex-eng@google.com</owner> <summary> @@ -709,7 +709,7 @@ </histogram> <histogram name="Platform.IntelMaxMicroArchitecture" - enum="IntelMaxMicroArchitecture" expires_after="2024-09-01"> + enum="IntelMaxMicroArchitecture" expires_after="2024-11-03"> <owner>fbarchard@chromium.org</owner> <owner>pwnall@chromium.org</owner> <summary> @@ -865,7 +865,7 @@ </histogram> <histogram name="Platform.Libhwsec.RetryAction{Category}" - enum="HwsecRetryActionEnum" expires_after="2024-09-01"> + enum="HwsecRetryActionEnum" expires_after="2024-11-03"> <owner>yich@google.com</owner> <owner>cros-hwsec-userland-eng+uma@google.com</owner> <summary> @@ -1101,7 +1101,7 @@ </summary> </histogram> -<histogram name="Platform.Memory.ARC" units="MiB" expires_after="2024-09-01"> +<histogram name="Platform.Memory.ARC" units="MiB" expires_after="2024-11-03"> <!-- Name completed by histogram_suffixes name="ProcessMemoryType" --> <owner>bgeffon@chromium.org</owner> @@ -1114,7 +1114,7 @@ </histogram> <histogram name="Platform.Memory.Browser" units="MiB" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <!-- Name completed by histogram_suffixes name="ProcessMemoryType" --> <owner>bgeffon@chromium.org</owner> @@ -1136,7 +1136,7 @@ </summary> </histogram> -<histogram name="Platform.Memory.Gpu" units="MiB" expires_after="2024-09-01"> +<histogram name="Platform.Memory.Gpu" units="MiB" expires_after="2024-11-03"> <!-- Name completed by histogram_suffixes name="ProcessMemoryType" --> <owner>bgeffon@chromium.org</owner> @@ -1157,7 +1157,7 @@ </summary> </histogram> -<histogram name="Platform.Memory.VMs" units="MiB" expires_after="2024-09-01"> +<histogram name="Platform.Memory.VMs" units="MiB" expires_after="2024-11-03"> <!-- Name completed by histogram_suffixes name="ProcessMemoryType" --> <owner>bgeffon@chromium.org</owner> @@ -1214,7 +1214,7 @@ </histogram> <histogram name="Platform.MiniDiag.Launch" units="launches" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>roccochen@chromium.org</owner> <owner>chromeos-minidiag-eng@google.com</owner> <summary> @@ -1281,7 +1281,7 @@ </histogram> <histogram name="Platform.Missive.ClientEnqueueResult" - enum="EnterpriseCloudReportingStatusCode" expires_after="2024-09-01"> + enum="EnterpriseCloudReportingStatusCode" expires_after="2024-11-03"> <owner>lbaraz@chromium.org</owner> <owner>xuhong@chromium.org</owner> <owner>cros-reporting-team@google.com</owner> @@ -1449,7 +1449,7 @@ </histogram> <histogram name="Platform.Modemfwd.DlcInstallResult" - enum="ModemfwdDlcInstallResult" expires_after="2024-09-01"> + enum="ModemfwdDlcInstallResult" expires_after="2024-11-03"> <owner>andrewlassalle@google.com</owner> <owner>cros-connectivity@google.com</owner> <summary> @@ -1470,7 +1470,7 @@ </histogram> <histogram name="Platform.Modemfwd.FWInstallResult" - enum="ModemfwdFWInstallResult" expires_after="2024-09-01"> + enum="ModemfwdFWInstallResult" expires_after="2024-11-03"> <owner>andrewlassalle@google.com</owner> <owner>cros-connectivity@google.com</owner> <summary>The result of each modem FW install attempt.</summary> @@ -1488,7 +1488,7 @@ </histogram> <histogram name="Platform.Modemfwd.FWUpdateLocation" - enum="ModemfwdFWUpdateLocation" expires_after="2024-09-01"> + enum="ModemfwdFWUpdateLocation" expires_after="2024-11-03"> <owner>andrewlassalle@google.com</owner> <owner>cros-connectivity@google.com</owner> <summary> @@ -1681,7 +1681,7 @@ </histogram> <histogram name="Platform.StatefulFormat" enum="StatefulFormat" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>sarthakkukreti@chromium.org</owner> <owner>gwendal@chromium.org</owner> <owner>chromeos-storage@google.com</owner> @@ -1932,7 +1932,7 @@ </histogram> <histogram name="Platform.TPM.ApRoVerificationTime" units="ms" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>granaghan@google.com</owner> <owner>cros-hwsec+uma@google.com</owner> <summary> @@ -2031,7 +2031,7 @@ </histogram> <histogram name="Platform.TPM.ExpandedApRoVerificationStatus" - enum="ExpandedApRoVerificationStatus" expires_after="2024-09-01"> + enum="ExpandedApRoVerificationStatus" expires_after="2024-11-03"> <owner>granaghan@google.com</owner> <owner>cros-hwsec+uma@google.com</owner> <summary> @@ -2049,7 +2049,7 @@ </histogram> <histogram name="Platform.TPM.FilesystemInitTime" units="ms" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>granaghan@google.com</owner> <owner>cros-hwsec+uma@google.com</owner> <summary> @@ -2059,7 +2059,7 @@ </histogram> <histogram name="Platform.TPM.FilesystemUtilization" units="bytes" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>granaghan@google.com</owner> <owner>cros-hwsec+uma@google.com</owner> <summary> @@ -2068,7 +2068,7 @@ </histogram> <histogram name="Platform.TPM.FirmwareUpdate.Result" - enum="TPMFirmwareUpdateResult" expires_after="2024-09-01"> + enum="TPMFirmwareUpdateResult" expires_after="2024-11-03"> <owner>apronin@chromium.org</owner> <owner>cros-hwsec+uma@google.com</owner> <summary>Status of a complete TPM firmware update attempt.</summary> @@ -2115,7 +2115,7 @@ </histogram> <histogram name="Platform.TPM.TimeToTakeOwnership" units="ms" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>yich@google.com</owner> <owner>cros-hwsec+uma@google.com</owner> <summary> @@ -2125,7 +2125,7 @@ </histogram> <histogram name="Platform.TPM.TpmManagerSecretStatus" - enum="TpmManagerSecretStatus" expires_after="2024-09-01"> + enum="TpmManagerSecretStatus" expires_after="2024-11-03"> <owner>yich@google.com</owner> <owner>cros-hwsec+uma@google.com</owner> <summary> @@ -2147,7 +2147,7 @@ </histogram> <histogram name="Platform.TPM1.CommandAndResponse.{Client}" - enum="TPM1CommandAndResponse" expires_after="2024-09-01"> + enum="TPM1CommandAndResponse" expires_after="2024-11-03"> <owner>chingkang@chromium.org</owner> <owner>cros-hwsec+uma@google.com</owner> <summary> @@ -2169,7 +2169,7 @@ </histogram> <histogram name="Platform.TPM2.CommandAndResponse.{Client}" - enum="TPM2CommandAndResponse" expires_after="2024-09-01"> + enum="TPM2CommandAndResponse" expires_after="2024-11-03"> <owner>chingkang@chromium.org</owner> <owner>cros-hwsec+uma@google.com</owner> <summary> @@ -2245,7 +2245,7 @@ </histogram> <histogram name="Platform.Trunks.TpmErrorCode" enum="TPMResponseCode" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>yich@google.com</owner> <owner>cros-hwsec+uma@google.com</owner> <summary> @@ -2309,7 +2309,7 @@ </histogram> <histogram name="Platform.UnaggregatedUsageTime" units="seconds" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>iby@chromium.org</owner> <owner>chromeos-data-eng@google.com</owner> <summary> @@ -2458,7 +2458,7 @@ </histogram> <histogram name="Platform.{GSC}.ARVStatus" enum="GscArvStatus" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>vbendeb@chromium.org</owner> <owner>ti50-core+uma@chromium.org</owner> <summary> @@ -2477,7 +2477,7 @@ </histogram> <histogram name="Platform.{GSC}.BoardIdFlags" enum="Cr50BoardIdFlags" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>apronin@chromium.org</owner> <owner>vbendeb@chromium.org</owner> <owner>cros-hwsec+uma@google.com</owner> @@ -2493,7 +2493,7 @@ </histogram> <histogram name="Platform.{GSC}.BoardIdOfRlzMismatch" enum="Cr50CrosRlzCodes" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>vbendeb@chromium.org</owner> <owner>apronin@chromium.org</owner> <owner>cros-hwsec+uma@google.com</owner> @@ -2509,7 +2509,7 @@ </histogram> <histogram name="Platform.{GSC}.FlashLog" enum="Cr50FlashLogs" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>apronin@chromium.org</owner> <owner>vbendeb@chromium.org</owner> <owner>cros-hwsec+uma@google.com</owner> @@ -2542,7 +2542,7 @@ </histogram> <histogram name="Platform.{GSC}.RlzOfBoardIdMismatch" enum="Cr50CrosRlzCodes" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>vbendeb@chromium.org</owner> <owner>apronin@chromium.org</owner> <owner>cros-hwsec+uma@google.com</owner>
diff --git a/tools/metrics/histograms/metadata/power/histograms.xml b/tools/metrics/histograms/metadata/power/histograms.xml index e678c8f3..1e61b6f 100644 --- a/tools/metrics/histograms/metadata/power/histograms.xml +++ b/tools/metrics/histograms/metadata/power/histograms.xml
@@ -308,7 +308,7 @@ <histogram name="PerformanceMonitor.UsageScenario.LongInterval" enum="PerformanceMonitor.UsageScenario.LongInterval" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>olivierli@chromium.org</owner> <owner>catan-team@chromium.org</owner> <summary> @@ -349,7 +349,7 @@ <histogram name="Power.AdaptiveChargingDelayDelta.{AdaptiveChargingState}.{OnTimeStatus}" - units="minutes" expires_after="2024-09-01"> + units="minutes" expires_after="2024-11-03"> <owner>dbasehore@chromium.org</owner> <owner>chromeos-platform-power@google.com</owner> <summary> @@ -672,7 +672,7 @@ </histogram> <histogram name="Power.BatteryDischargeRate" units="mW" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>puthik@chromium.org</owner> <owner>chromeos-platform-power@google.com</owner> <summary> @@ -940,7 +940,7 @@ </histogram> <histogram name="Power.BatterySaver.UserBrightenedSec" units="seconds" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>cwd@google.com</owner> <owner>chromeos-bsm@google.com</owner> <summary> @@ -990,7 +990,7 @@ </histogram> <histogram name="Power.CpuTimeSecondsPerProcessType" enum="ProcessType2" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>eseckler@chromium.org</owner> <owner>skyostil@chromium.org</owner> <owner>woa-performance@google.com</owner> @@ -1304,7 +1304,7 @@ </histogram> <histogram name="Power.ForegroundBatteryDrain.30Seconds{Exclusive}" units="uAh" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>eseckler@chromium.org</owner> <owner>skyostil@chromium.org</owner> <owner>woa-performance@google.com</owner> @@ -1346,7 +1346,7 @@ </histogram> <histogram name="Power.ForegroundBatteryDrain{Exclusive}" units="0.1 mAh" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>eseckler@chromium.org</owner> <owner>skyostil@chromium.org</owner> <owner>woa-performance@google.com</owner> @@ -1560,7 +1560,7 @@ </token> </histogram> -<histogram base="true" name="Power.Mac" units="mW" expires_after="2024-09-01"> +<histogram base="true" name="Power.Mac" units="mW" expires_after="2024-11-03"> <owner>olivierli@chromium.org</owner> <owner>markchang@chromium.org</owner> <summary> @@ -1762,7 +1762,7 @@ </histogram> <histogram name="Power.SuspendAttemptsBeforeCancel" units="units" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>puthik@chromium.org</owner> <owner>chromeos-platform-power@google.com</owner> <summary> @@ -1776,7 +1776,7 @@ </histogram> <histogram name="Power.SuspendAttemptsBeforeSuccess" units="units" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>puthik@chromium.org</owner> <owner>chromeos-platform-power@google.com</owner> <summary>
diff --git a/tools/metrics/histograms/metadata/prefetch/histograms.xml b/tools/metrics/histograms/metadata/prefetch/histograms.xml index 92a9535..2983d35f 100644 --- a/tools/metrics/histograms/metadata/prefetch/histograms.xml +++ b/tools/metrics/histograms/metadata/prefetch/histograms.xml
@@ -35,7 +35,7 @@ <histogram name="PrefetchProxy.AfterClick.BlockUntilHeadDuration.{WasServed}.{SpeculationEagerness}" - units="ms" expires_after="2024-09-01"> + units="ms" expires_after="2024-11-03"> <owner>kouhei@chromium.org</owner> <owner>chrome-loading@chromium.org</owner> <summary> @@ -74,7 +74,7 @@ </histogram> <histogram name="PrefetchProxy.AfterClick.Mainframe.CookieCopyTime" units="ms" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>kouhei@chromium.org</owner> <owner>chrome-loading@chromium.org</owner> <summary> @@ -153,7 +153,7 @@ <histogram name="PrefetchProxy.AfterClick.WasBlockedUntilHeadWhenServing.{SpeculationEagerness}" - enum="Boolean" expires_after="2024-09-01"> + enum="Boolean" expires_after="2024-11-03"> <owner>kouhei@chromium.org</owner> <owner>chrome-loading@chromium.org</owner> <summary> @@ -170,7 +170,7 @@ </histogram> <histogram name="PrefetchProxy.AfterClick.WasFullRedirectChainServed" - enum="Boolean" expires_after="2024-09-01"> + enum="Boolean" expires_after="2024-11-03"> <owner>kouhei@chromium.org</owner> <owner>chrome-loading@chromium.org</owner> <summary> @@ -371,7 +371,7 @@ </histogram> <histogram name="PrefetchProxy.Prefetch.Mainframe.TotalTime" units="ms" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>kouhei@chromium.org</owner> <owner>chrome-loading@chromium.org</owner> <summary> @@ -448,7 +448,7 @@ </histogram> <histogram name="PrefetchProxy.Prefetch.RedirectChainSize" units="count" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>liviutinta@chromium.org</owner> <owner>jbroman@chromium.org</owner> <owner>curranmax@chromium.org</owner> @@ -459,7 +459,7 @@ </histogram> <histogram name="PrefetchProxy.Prefetch.StreamingURLLoaderFinalStatus" - enum="PrefetchStreamingURLLoaderStatus" expires_after="2024-09-01"> + enum="PrefetchStreamingURLLoaderStatus" expires_after="2024-11-03"> <owner>kouhei@chromium.org</owner> <owner>chrome-loading@chromium.org</owner> <summary> @@ -495,7 +495,7 @@ </histogram> <histogram name="PrefetchProxy.Redirect.NetworkContextStateTransition" - enum="PrefetchRedirectNetworkContextTransition" expires_after="2024-09-01"> + enum="PrefetchRedirectNetworkContextTransition" expires_after="2024-11-03"> <owner>kouhei@chromium.org</owner> <owner>chrome-loading@chromium.org</owner> <summary> @@ -507,7 +507,7 @@ </histogram> <histogram name="PrefetchProxy.Redirect.Result" enum="PrefetchRedirectResult" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <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 27e7ab4..f5db933c 100644 --- a/tools/metrics/histograms/metadata/printing/histograms.xml +++ b/tools/metrics/histograms/metadata/printing/histograms.xml
@@ -166,7 +166,7 @@ </histogram> <histogram name="Printing.CUPS.JobDuration.JobDone" units="ms" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>bmgordon@chromium.org</owner> <owner>project-bolton@google.com</owner> <summary> @@ -258,7 +258,7 @@ </histogram> <histogram name="Printing.CUPS.PrinterEditDialogActions" - enum="PrinterEditDialogActions" expires_after="2024-09-01"> + enum="PrinterEditDialogActions" expires_after="2024-11-03"> <owner>nmuggli@google.com</owner> <owner>project-bolton@google.com</owner> <summary> @@ -320,7 +320,7 @@ </histogram> <histogram name="Printing.CUPS.PrinterSetupResult.SettingsDiscoveredPrinters" - enum="PrinterSetupResult" expires_after="2024-09-01"> + enum="PrinterSetupResult" expires_after="2024-11-03"> <owner>gavinwill@chromium.org</owner> <owner>bmgordon@chromium.org</owner> <owner>src/chromeos/printing/OWNERS</owner> @@ -342,7 +342,7 @@ </histogram> <histogram name="Printing.CUPS.PrinterStatusReasons" - enum="PrinterStatusReasons" expires_after="2024-09-01"> + enum="PrinterStatusReasons" expires_after="2024-11-03"> <owner>gavinwill@chromium.org</owner> <owner>cros-peripherals@google.com</owner> <summary> @@ -607,7 +607,7 @@ </histogram> <histogram name="PrintPreview.PrintAttemptOutcome" enum="PrintAttemptOutcome" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>gavinwill@chromium.org</owner> <owner>cros-peripherals@google.com</owner> <summary> @@ -644,7 +644,7 @@ </histogram> <histogram name="PrintPreview.PrinterStatus.{StatusReason}.PrintJobSuccess" - enum="BooleanSuccess" expires_after="2024-09-01"> + enum="BooleanSuccess" expires_after="2024-11-03"> <owner>gavinwill@chromium.org</owner> <owner>cros-peripherals@google.com</owner> <summary> @@ -673,7 +673,7 @@ </histogram> <histogram name="PrintPreview.PrintSettings" enum="PrintSettings" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>thestig@chromium.org</owner> <owner>awscreen@chromium.org</owner> <summary> @@ -738,7 +738,7 @@ </histogram> <histogram name="PrintPreview.RenderToPDFTime" units="ms" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>thestig@chromium.org</owner> <owner>awscreen@chromium.org</owner> <summary>Time taken to render to PDF for print preview.</summary>
diff --git a/tools/metrics/histograms/metadata/privacy/histograms.xml b/tools/metrics/histograms/metadata/privacy/histograms.xml index 2cfd46d..17975a7 100644 --- a/tools/metrics/histograms/metadata/privacy/histograms.xml +++ b/tools/metrics/histograms/metadata/privacy/histograms.xml
@@ -51,7 +51,7 @@ </variants> <histogram name="Privacy.3PCD.AdsHeuristicAddedToOverrides" - enum="AdsHeuristicCookieOverride" expires_after="2024-09-01"> + enum="AdsHeuristicCookieOverride" expires_after="2024-11-03"> <owner>johnidel@chromium.org</owner> <owner>src/chrome/browser/tpcd/OWNERS</owner> <summary> @@ -79,7 +79,7 @@ </histogram> <histogram name="Privacy.3pcd.ProfileEligibilityMismatch" - enum="ProfileEligibilityMismatch" expires_after="2024-09-01"> + enum="ProfileEligibilityMismatch" expires_after="2024-11-03"> <owner>trishalfonso@google.com</owner> <owner>src/chrome/browser/tpcd/OWNERS</owner> <summary> @@ -97,7 +97,7 @@ </histogram> <histogram name="Privacy.3PCD.SecCookieDeprecationHeaderStatus" - enum="SecCookieDeprecationHeaderStatus" expires_after="2024-09-01"> + enum="SecCookieDeprecationHeaderStatus" expires_after="2024-11-03"> <owner>anthonygarant@chromium.org</owner> <owner>src/chrome/browser/tpcd/OWNERS</owner> <summary> @@ -256,7 +256,7 @@ </histogram> <histogram name="Privacy.DIPS.ClearedSitesCount{DIPSCookieMode}" units="sites" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>wanderview@chromium.org</owner> <owner>src/chrome/browser/dips/OWNERS</owner> <summary> @@ -281,7 +281,7 @@ </histogram> <histogram name="Privacy.DIPS.Database.Operation.{DIPSDatabaseOperation}Time" - units="ms" expires_after="2024-09-01"> + units="ms" expires_after="2024-11-03"> <owner>etienneb@chromium.org</owner> <owner>jdh@chromium.org</owner> <owner>src/chrome/browser/dips/OWNERS</owner> @@ -309,7 +309,7 @@ </histogram> <histogram name="Privacy.DIPS.DatabaseErrors" enum="SqliteLoggedResultCode" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>wanderview@chromium.org</owner> <owner>src/chrome/browser/dips/OWNERS</owner> <summary> @@ -333,7 +333,7 @@ </histogram> <histogram name="Privacy.DIPS.DatabaseInit" units="attempts" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>wanderview@chromium.org</owner> <owner>src/chrome/browser/dips/OWNERS</owner> <summary> @@ -343,7 +343,7 @@ </histogram> <histogram name="Privacy.DIPS.DatabaseSize" units="KB" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>wanderview@chromium.org</owner> <owner>src/chrome/browser/dips/OWNERS</owner> <summary> @@ -372,7 +372,7 @@ </histogram> <histogram name="Privacy.DIPS.Deletion{DIPSCookieMode}" - enum="DIPSDeletionAction" expires_after="2024-09-01"> + enum="DIPSDeletionAction" expires_after="2024-11-03"> <owner>njeunje@chromium.org</owner> <owner>src/chrome/browser/dips/OWNERS</owner> <summary> @@ -431,7 +431,7 @@ </histogram> <histogram name="Privacy.QuickDelete" enum="QuickDeleteAction" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>fsenra@google.com</owner> <owner>zalmashni@chromium.org</owner> <summary> @@ -488,7 +488,7 @@ <histogram name="PrivacySandbox.AggregationService.KeyFetcher.Status2" enum="PrivacySandboxAggregationServiceKeyFetcherStatus" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>alexmt@chromium.org</owner> <owner>linnan@chromium.org</owner> <summary> @@ -671,7 +671,7 @@ <histogram name="PrivacySandbox.AggregationService.Storage.Sql.InitStatus" enum="PrivacySandboxAggregationServiceStorageSqlInitStatus" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>alexmt@chromium.org</owner> <owner>linnan@chromium.org</owner> <summary> @@ -787,7 +787,7 @@ <histogram name="PrivacySandbox.Attestations.EstimateMemoryUsage.AttestationsMap" - units="KB" expires_after="2024-09-01"> + units="KB" expires_after="2024-11-03"> <owner>shivanisha@chromium.org</owner> <owner>xiaochenzh@chromium.org</owner> <summary> @@ -835,7 +835,7 @@ </histogram> <histogram name="PrivacySandbox.Attestations.InitializationDuration.Parsing" - units="ms" expires_after="2024-09-01"> + units="ms" expires_after="2024-11-03"> <owner>shivanisha@chromium.org</owner> <owner>xiaochenzh@chromium.org</owner> <summary> @@ -848,7 +848,7 @@ </histogram> <histogram name="PrivacySandbox.Attestations.IsSiteAttested" - enum="PrivacySandboxApiAllowed" expires_after="2024-09-01"> + enum="PrivacySandboxApiAllowed" expires_after="2024-11-03"> <owner>shivanisha@chromium.org</owner> <owner>xiaochenzh@chromium.org</owner> <summary> @@ -860,7 +860,7 @@ </histogram> <histogram name="PrivacySandbox.Attestations.IsSiteAttested.FirstCheckTime" - units="ms" expires_after="2024-09-01"> + units="ms" expires_after="2024-11-03"> <owner>shivanisha@chromium.org</owner> <owner>xiaochenzh@chromium.org</owner> <summary> @@ -883,7 +883,7 @@ </histogram> <histogram name="PrivacySandbox.Attestations.Parsing.Status" - enum="PrivacySandboxAttestationParsingStatus" expires_after="2024-09-01"> + enum="PrivacySandboxAttestationParsingStatus" expires_after="2024-11-03"> <owner>shivanisha@chromium.org</owner> <owner>xiaochenzh@chromium.org</owner> <summary> @@ -954,7 +954,7 @@ <histogram name="PrivacySandbox.PrivateAggregation.Budgeter.NumReportingOriginsStoredPerSite" - units="counts" expires_after="2024-09-01"> + units="counts" expires_after="2024-11-03"> <owner>alexmt@chromium.org</owner> <owner>linnan@chromium.org</owner> <owner>measurement-api-dev+metrics@google.com</owner> @@ -969,7 +969,7 @@ <histogram name="PrivacySandbox.PrivateAggregation.Budgeter.RequestResult3" enum="PrivacySandboxPrivateAggregationBudgeterRequestResult3" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>alexmt@chromium.org</owner> <owner>linnan@chromium.org</owner> <summary> @@ -1037,7 +1037,7 @@ <histogram name="PrivacySandbox.PrivateAggregation.Host.PipeOpenDurationOnShutdown" - units="ms" expires_after="2024-09-01"> + units="ms" expires_after="2024-11-03"> <owner>alexmt@chromium.org</owner> <owner>linnan@chromium.org</owner> <summary> @@ -1050,7 +1050,7 @@ <histogram name="PrivacySandbox.PrivateAggregation.Host.PipeResult" enum="PrivacySandboxPrivateAggregationHostPipeResult" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>alexmt@chromium.org</owner> <owner>linnan@chromium.org</owner> <summary> @@ -1118,7 +1118,7 @@ </histogram> <histogram name="PrivacySandbox.ProtectedAudience.JoiningTopFrameDisplayed" - enum="BooleanShown" expires_after="2024-09-01"> + enum="BooleanShown" expires_after="2024-11-03"> <owner>sauski@google.com</owner> <owner>behamilton@chromium.org</owner> <summary> @@ -1220,7 +1220,7 @@ <histogram name="PrivacySandbox.TrackingProtection.Onboarding.NoticeControllerEvent" - enum="TrackingProtectionNoticeControllerEvent" expires_after="2024-09-01"> + enum="TrackingProtectionNoticeControllerEvent" expires_after="2024-11-03"> <owner>tommasin@chromium.org</owner> <owner>kartoffel-core-eng@google.com</owner> <owner>koilos@google.com</owner>
diff --git a/tools/metrics/histograms/metadata/profile/histograms.xml b/tools/metrics/histograms/metadata/profile/histograms.xml index f94a923..940115a 100644 --- a/tools/metrics/histograms/metadata/profile/histograms.xml +++ b/tools/metrics/histograms/metadata/profile/histograms.xml
@@ -23,13 +23,13 @@ <histograms> <histogram name="Profile.AddNewUser" enum="ProfileAddNewUser" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>rogerta@chromium.org</owner> <summary>The frequency of ways that new user profiles are added.</summary> </histogram> <histogram name="Profile.AddSignInFlowOutcome" - enum="ProfileSignedInFlowOutcome" expires_after="2024-09-01"> + enum="ProfileSignedInFlowOutcome" expires_after="2024-11-03"> <owner>droger@chromium.org</owner> <owner>chrome-signin-team@google.com</owner> <summary> @@ -39,7 +39,7 @@ </histogram> <histogram name="Profile.AllAccounts.Names" enum="ProfileAllAccountsNames" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>droger@chromium.org</owner> <owner>chrome-signin-team@google.com</owner> <summary> @@ -174,7 +174,7 @@ </histogram> <histogram name="Profile.Guest.TypeCreated" enum="GuestProfileCreatedType" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>dgn@chromium.org</owner> <owner>chrome-signin-team@google.com</owner> <summary> @@ -185,7 +185,7 @@ </histogram> <histogram name="Profile.Incognito.Lifetime" units="minutes" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>rhalavati@chromium.org</owner> <owner>chrome-incognito@google.com</owner> <summary> @@ -363,7 +363,7 @@ </histogram> <histogram name="Profile.NumberOfActiveProfiles" units="profiles" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>droger@chromium.org</owner> <owner>feuunk@chromium.org</owner> <summary> @@ -398,7 +398,7 @@ </histogram> <histogram name="Profile.NumberOfProfiles" units="profiles" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>droger@chromium.org</owner> <owner>chrome-signin-team@google.com</owner> <summary> @@ -435,7 +435,7 @@ </histogram> <histogram name="Profile.NumberOfUnusedProfiles" units="profiles" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>msarda@chromium.org</owner> <owner>droger@chromium.org</owner> <summary> @@ -465,7 +465,7 @@ </histogram> <histogram name="Profile.SessionDuration.PerProfile" enum="Profile" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>msarda@chromium.org</owner> <owner>alexilin@chromium.org</owner> <summary> @@ -518,7 +518,7 @@ </histogram> <histogram base="true" name="Profile.State.UnconsentedPrimaryAccountType" - enum="ProfileUnconsentedPrimaryAccountType" expires_after="2024-09-01"> + enum="ProfileUnconsentedPrimaryAccountType" expires_after="2024-11-03"> <owner>droger@chromium.org</owner> <owner>chrome-signin-team@google.com</owner> <summary> @@ -527,7 +527,7 @@ </summary> </histogram> -<histogram name="Profile.TotalSize" units="MB" expires_after="2024-09-01"> +<histogram name="Profile.TotalSize" units="MB" expires_after="2024-11-03"> <owner>etienneb@chromium.org</owner> <owner>gab@chromium.org</owner> <summary>Total size of the profile data (excluding sub-folders).</summary> @@ -705,7 +705,7 @@ </histogram> <histogram name="ProfilePicker.FirstRun.EntryPoint" enum="FirstRunEntryPoint" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>dgn@chromium.org</owner> <owner>for-you-fre@google.com</owner> <summary> @@ -733,7 +733,7 @@ </histogram> <histogram name="ProfilePicker.FirstRun.FinishReason" - enum="FirstRunFinishReason" expires_after="2024-09-01"> + enum="FirstRunFinishReason" expires_after="2024-11-03"> <owner>dgn@chromium.org</owner> <owner>for-you-fre@google.com</owner> <summary> @@ -758,7 +758,7 @@ </histogram> <histogram name="ProfilePicker.FirstRun.PolicyStoreState" - enum="FirstRunCloudPolicyStoreState" expires_after="2024-09-01"> + enum="FirstRunCloudPolicyStoreState" expires_after="2024-11-03"> <owner>dgn@chromium.org</owner> <owner>jyammine@google.com</owner> <owner>chrome-signin-team@google.com</owner> @@ -772,7 +772,7 @@ </histogram> <histogram name="ProfilePicker.FirstRun.ServiceCreated" enum="BooleanCreated" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>dgn@chromium.org</owner> <owner>for-you-fre@google.com</owner> <summary>
diff --git a/tools/metrics/histograms/metadata/quick_answers/histograms.xml b/tools/metrics/histograms/metadata/quick_answers/histograms.xml index 04974d788..a4313403 100644 --- a/tools/metrics/histograms/metadata/quick_answers/histograms.xml +++ b/tools/metrics/histograms/metadata/quick_answers/histograms.xml
@@ -37,7 +37,7 @@ </variants> <histogram name="QuickAnswers.ActiveImpression" enum="QuickAnswersResultType" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>angelaxiao@chromium.org</owner> <owner>yawano@google.com</owner> <owner>llin@google.com</owner> @@ -66,7 +66,7 @@ </histogram> <histogram name="QuickAnswers.Click" enum="QuickAnswersResultType" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>angelaxiao@chromium.org</owner> <owner>yawano@google.com</owner> <owner>llin@google.com</owner>
diff --git a/tools/metrics/histograms/metadata/quota/histograms.xml b/tools/metrics/histograms/metadata/quota/histograms.xml index cb4e43d4..1e957861 100644 --- a/tools/metrics/histograms/metadata/quota/histograms.xml +++ b/tools/metrics/histograms/metadata/quota/histograms.xml
@@ -53,7 +53,7 @@ </histogram> <histogram name="Quota.AvailableDiskSpace2" units="MB" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>ayui@chromium.org</owner> <owner>chrome-owp-storage@google.com</owner> <summary> @@ -158,7 +158,7 @@ </histogram> <histogram name="Quota.EvictedBucketDaysSinceAccess" units="units" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>ayui@chromium.org</owner> <owner>chrome-owp-storage@google.com</owner> <summary> @@ -366,7 +366,7 @@ </summary> </histogram> -<histogram name="Quota.TotalDiskSpace" units="MB" expires_after="2024-09-01"> +<histogram name="Quota.TotalDiskSpace" units="MB" expires_after="2024-11-03"> <owner>ayui@chromium.org</owner> <owner>chrome-owp-storage@google.com</owner> <summary>
diff --git a/tools/metrics/histograms/metadata/readaloud/histograms.xml b/tools/metrics/histograms/metadata/readaloud/histograms.xml index a113729..790a51f8 100644 --- a/tools/metrics/histograms/metadata/readaloud/histograms.xml +++ b/tools/metrics/histograms/metadata/readaloud/histograms.xml
@@ -111,7 +111,7 @@ </histogram> <histogram name="ReadAloud.HighlightingEnabled.OnStartup" enum="BooleanEnabled" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>andreaxg@google.com</owner> <owner>basiaz@google.com</owner> <owner>iwells@chromium.org</owner>
diff --git a/tools/metrics/histograms/metadata/renderer/histograms.xml b/tools/metrics/histograms/metadata/renderer/histograms.xml index 30d35e71..f81110f2 100644 --- a/tools/metrics/histograms/metadata/renderer/histograms.xml +++ b/tools/metrics/histograms/metadata/renderer/histograms.xml
@@ -45,7 +45,7 @@ </variants> <histogram name="Renderer.BrowserLaunchToRunLoopStart" units="ms" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>sky@chromium.org</owner> <owner>jam@chromium.org</owner> <summary> @@ -301,7 +301,7 @@ </histogram> <histogram name="Renderer.Font.PrimaryFont.DomContentLoaded" units="ms" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>kojii@chromium.org</owner> <owner>tkent@chromium.org</owner> <owner>layout-dev@chromium.org</owner> @@ -313,7 +313,7 @@ </histogram> <histogram name="Renderer.Font.PrimaryFont.DomContentLoaded.Style" units="ms" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>kojii@chromium.org</owner> <owner>tkent@chromium.org</owner> <owner>layout-dev@chromium.org</owner> @@ -325,7 +325,7 @@ </histogram> <histogram name="Renderer.Font.PrimaryFont.FCP" units="ms" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>kojii@chromium.org</owner> <owner>tkent@chromium.org</owner> <owner>layout-dev@chromium.org</owner> @@ -337,7 +337,7 @@ </histogram> <histogram name="Renderer.Font.PrimaryFont.FCP.Style" units="ms" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>kojii@chromium.org</owner> <owner>tkent@chromium.org</owner> <owner>layout-dev@chromium.org</owner> @@ -361,7 +361,7 @@ </histogram> <histogram name="Renderer.Font.SystemFallback.FCP" units="ms" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>kojii@chromium.org</owner> <owner>tkent@chromium.org</owner> <owner>layout-dev@chromium.org</owner> @@ -383,7 +383,7 @@ </histogram> <histogram name="Renderer.Images.HasOverfetchedPixels" enum="Boolean" - expires_after="2024-09-03"> + expires_after="2024-11-03"> <owner>iclelland@chromium.org</owner> <owner>speed-metrics-dev@chromium.org</owner> <summary> @@ -404,7 +404,7 @@ </histogram> <histogram name="Renderer.Images.OverfetchedCappedPixels" units="px^2" - expires_after="2024-09-03"> + expires_after="2024-11-03"> <owner>iclelland@chromium.org</owner> <owner>speed-metrics-dev@chromium.org</owner> <summary> @@ -581,7 +581,7 @@ </histogram> <histogram name="Renderer.ReduceSubresourceResponseIPC.DidNotifyBrowser" - enum="Boolean" expires_after="2024-09-01"> + enum="Boolean" expires_after="2024-11-03"> <owner>amanvr@chromium.org</owner> <owner>carlscab@chromium.org</owner> <owner>woa-performance@google.com</owner> @@ -595,7 +595,7 @@ </histogram> <histogram name="Renderer.RenderThreadImpl.Init" units="ms" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>jam@chromium.org</owner> <owner>sky@chromium.org</owner> <summary> @@ -605,7 +605,7 @@ </histogram> <histogram name="RendererScheduler.QueueingDuration.{Priority}Priority" - units="microseconds" expires_after="2024-09-01"> + units="microseconds" expires_after="2024-11-03"> <owner>szager@chromium.org</owner> <owner>paint-dev@chromium.org</owner> <summary>
diff --git a/tools/metrics/histograms/metadata/renderer4/histograms.xml b/tools/metrics/histograms/metadata/renderer4/histograms.xml index 1bf64144..35c78db4 100644 --- a/tools/metrics/histograms/metadata/renderer4/histograms.xml +++ b/tools/metrics/histograms/metadata/renderer4/histograms.xml
@@ -158,7 +158,7 @@ </histogram> <histogram name="Renderer4.MainThreadGestureScrollReason2" - enum="MainThreadScrollingReason2" expires_after="2024-09-01"> + enum="MainThreadScrollingReason2" expires_after="2024-11-03"> <owner>flackr@chromium.org</owner> <owner>pdr@chromium.org</owner> <owner>input-dev@chromium.org</owner> @@ -177,7 +177,7 @@ </histogram> <histogram name="Renderer4.MainThreadWheelScrollReason2" - enum="MainThreadScrollingReason2" expires_after="2024-09-01"> + enum="MainThreadScrollingReason2" expires_after="2024-11-03"> <owner>flackr@chromium.org</owner> <owner>pdr@chromium.org</owner> <owner>input-dev@chromium.org</owner>
diff --git a/tools/metrics/histograms/metadata/safe_browsing/histograms.xml b/tools/metrics/histograms/metadata/safe_browsing/histograms.xml index 591b4602..b704578d 100644 --- a/tools/metrics/histograms/metadata/safe_browsing/histograms.xml +++ b/tools/metrics/histograms/metadata/safe_browsing/histograms.xml
@@ -289,7 +289,7 @@ <histogram name="SafeBrowsing.BrowserThrottle.IsCheckCompletedOnProcessResponse" - enum="BooleanCompleted" expires_after="2024-09-01"> + enum="BooleanCompleted" expires_after="2024-11-03"> <owner>xinghuilu@chromium.org</owner> <owner>chrome-counter-abuse-alerts@google.com</owner> <summary> @@ -337,7 +337,7 @@ </histogram> <histogram name="SafeBrowsing.BrowserThrottle.WillProcessResponseCount" - units="times" expires_after="2024-09-01"> + units="times" expires_after="2024-11-03"> <owner>thefrog@chromium.org</owner> <owner>chrome-counter-abuse-alerts@google.com</owner> <summary> @@ -348,7 +348,7 @@ </histogram> <histogram name="SafeBrowsing.CheckBrowseUrl.HasLocalMatch" - enum="BooleanMatched" expires_after="2024-09-01"> + enum="BooleanMatched" expires_after="2024-11-03"> <owner>vakh@chromium.org</owner> <owner>chrome-counter-abuse-alerts@google.com</owner> <summary> @@ -445,7 +445,7 @@ <histogram name="SafeBrowsing.ClientSafeBrowsingReport.DownloadWarningActionSize" - units="units" expires_after="2024-09-01"> + units="units" expires_after="2024-11-03"> <owner>xinghuilu@chromium.org</owner> <owner>chrome-counter-abuse-alerts@google.com</owner> <summary> @@ -608,7 +608,7 @@ </histogram> <histogram name="SafeBrowsing.CookieAgeHours2" units="hours" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>chlily@chromium.org</owner> <owner>chrome-counter-abuse-alerts@google.com</owner> <summary> @@ -705,7 +705,7 @@ </histogram> <histogram name="SafeBrowsing.EsbDisabled.LastEnabledInterval" units="days" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>xinghuilu@chromium.org</owner> <owner>chrome-counter-abuse-alerts@google.com</owner> <summary> @@ -729,7 +729,7 @@ <histogram name="SafeBrowsing.EsbDisabled.TimesDisabledLast28Days.{EnabledDuration}" - units="times" expires_after="2024-09-01"> + units="times" expires_after="2024-11-03"> <owner>thefrog@chromium.org</owner> <owner>chrome-counter-abuse-alerts@google.com</owner> <summary> @@ -776,7 +776,7 @@ </histogram> <histogram name="SafeBrowsing.ExtensionPersister.PersistedFileSize" - units="bytes" expires_after="2024-09-01"> + units="bytes" expires_after="2024-11-03"> <owner>psarouthakis@google.com</owner> <owner>chrome-counter-abuse-alerts@google.com</owner> <summary> @@ -1054,7 +1054,7 @@ <histogram name="SafeBrowsing.ExtensionTelemetry.WebSocketRequestDataSentOrReceived" - enum="BooleanSentOrReceived" expires_after="2024-09-01"> + enum="BooleanSentOrReceived" expires_after="2024-11-03"> <owner>thefrog@chromium.org</owner> <owner>chrome-counter-abuse-alerts@google.com</owner> <summary> @@ -1286,7 +1286,7 @@ </histogram> <histogram name="SafeBrowsing.HasCookieAtStartup2" enum="Boolean" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>chlily@chromium.org</owner> <owner>chrome-counter-abuse-alerts@google.com</owner> <summary> @@ -1306,7 +1306,7 @@ </histogram> <histogram name="SafeBrowsing.HPRT.AllowlistSizeTooSmall" - enum="BooleanUnavailable" expires_after="2024-09-01"> + enum="BooleanUnavailable" expires_after="2024-11-03"> <owner>thefrog@chromium.org</owner> <owner>chrome-counter-abuse-alerts@google.com</owner> <summary> @@ -1319,7 +1319,7 @@ </histogram> <histogram name="SafeBrowsing.HPRT.AllStoresAvailable" enum="BooleanAvailable" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>thefrog@chromium.org</owner> <owner>chrome-counter-abuse-alerts@google.com</owner> <summary> @@ -1341,7 +1341,7 @@ </histogram> <histogram name="SafeBrowsing.HPRT.BackoffState" enum="BooleanBackoff" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>thefrog@chromium.org</owner> <owner>chrome-counter-abuse-alerts@google.com</owner> <summary> @@ -1353,7 +1353,7 @@ </histogram> <histogram name="SafeBrowsing.HPRT.Cache.FullHashCount" units="entries" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>thefrog@chromium.org</owner> <owner>chrome-counter-abuse-alerts@google.com</owner> <summary> @@ -1365,7 +1365,7 @@ </histogram> <histogram name="SafeBrowsing.HPRT.Cache.HashPrefixCount" units="entries" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>thefrog@chromium.org</owner> <owner>chrome-counter-abuse-alerts@google.com</owner> <summary> @@ -1397,7 +1397,7 @@ </histogram> <histogram name="SafeBrowsing.HPRT.CacheHit" enum="BooleanCacheHit" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>thefrog@chromium.org</owner> <owner>chrome-counter-abuse-alerts@google.com</owner> <summary> @@ -1411,7 +1411,7 @@ </histogram> <histogram name="SafeBrowsing.HPRT.CacheHitAllPrefixes" enum="BooleanCacheHit" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>thefrog@chromium.org</owner> <owner>chrome-counter-abuse-alerts@google.com</owner> <summary> @@ -1446,7 +1446,7 @@ </histogram> <histogram name="SafeBrowsing.HPRT.FoundUnmatchedFullHashes" - enum="BooleanFound" expires_after="2024-09-01"> + enum="BooleanFound" expires_after="2024-11-03"> <owner>thefrog@chromium.org</owner> <owner>chrome-counter-abuse-alerts@google.com</owner> <summary> @@ -1457,7 +1457,7 @@ </histogram> <histogram name="SafeBrowsing.HPRT.GetCache.Time" units="ms" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>thefrog@chromium.org</owner> <owner>chrome-counter-abuse-alerts@google.com</owner> <summary> @@ -1468,7 +1468,7 @@ </histogram> <histogram name="SafeBrowsing.HPRT.HasOhttpKey" enum="BooleanHasKey" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>xinghuilu@chromium.org</owner> <owner>chrome-counter-abuse-alerts@google.com</owner> <summary> @@ -1505,7 +1505,7 @@ </histogram> <histogram name="SafeBrowsing.HPRT.IsLookupServiceFound" enum="BooleanFound" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>thefrog@chromium.org</owner> <owner>chrome-counter-abuse-alerts@google.com</owner> <summary> @@ -1517,7 +1517,7 @@ </histogram> <histogram name="SafeBrowsing.HPRT.LocalMatch.Result" - enum="SafeBrowsingAllowlistAsyncMatch" expires_after="2024-09-01"> + enum="SafeBrowsingAllowlistAsyncMatch" expires_after="2024-11-03"> <owner>thefrog@chromium.org</owner> <owner>chrome-counter-abuse-alerts@google.com</owner> <summary> @@ -1528,7 +1528,7 @@ </histogram> <histogram name="SafeBrowsing.HPRT.Network.HttpResponseCode.{NetError}" - enum="HttpResponseCode" expires_after="2024-09-01"> + enum="HttpResponseCode" expires_after="2024-11-03"> <owner>thefrog@chromium.org</owner> <owner>chrome-counter-abuse-alerts@google.com</owner> <summary> @@ -1554,7 +1554,7 @@ </histogram> <histogram name="SafeBrowsing.HPRT.Network.Time" units="ms" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>thefrog@chromium.org</owner> <owner>chrome-counter-abuse-alerts@google.com</owner> <summary> @@ -1580,7 +1580,7 @@ </histogram> <histogram name="SafeBrowsing.HPRT.Network.{ResponseSource}Result" - enum="CombinedHttpResponseAndNetErrorCode" expires_after="2024-09-01"> + enum="CombinedHttpResponseAndNetErrorCode" expires_after="2024-11-03"> <owner>thefrog@chromium.org</owner> <owner>chrome-counter-abuse-alerts@google.com</owner> <summary> @@ -1600,7 +1600,7 @@ </histogram> <histogram name="SafeBrowsing.HPRT.OhttpKeyService.BackoffState" - enum="BooleanBackoff" expires_after="2024-09-01"> + enum="BooleanBackoff" expires_after="2024-11-03"> <owner>xinghuilu@chromium.org</owner> <owner>chrome-counter-abuse-alerts@google.com</owner> <summary> @@ -1624,7 +1624,7 @@ </histogram> <histogram name="SafeBrowsing.HPRT.OhttpKeyService.HasCachedKey" - enum="BooleanHasKey" expires_after="2024-09-01"> + enum="BooleanHasKey" expires_after="2024-11-03"> <owner>xinghuilu@chromium.org</owner> <owner>chrome-counter-abuse-alerts@google.com</owner> <summary> @@ -1645,7 +1645,7 @@ </histogram> <histogram name="SafeBrowsing.HPRT.OhttpKeyService.Network.Result" - enum="CombinedHttpResponseAndNetErrorCode" expires_after="2024-09-01"> + enum="CombinedHttpResponseAndNetErrorCode" expires_after="2024-11-03"> <owner>xinghuilu@chromium.org</owner> <owner>chrome-counter-abuse-alerts@google.com</owner> <summary> @@ -1655,7 +1655,7 @@ </histogram> <histogram name="SafeBrowsing.HPRT.OhttpKeyService.Network.Time" units="ms" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>xinghuilu@chromium.org</owner> <owner>chrome-counter-abuse-alerts@google.com</owner> <summary> @@ -1665,7 +1665,7 @@ </histogram> <histogram name="SafeBrowsing.HPRT.OperationOutcome" - enum="SafeBrowsingHPRTOperationOutcome" expires_after="2024-09-01"> + enum="SafeBrowsingHPRTOperationOutcome" expires_after="2024-11-03"> <owner>thefrog@chromium.org</owner> <owner>chrome-counter-abuse-alerts@google.com</owner> <summary> @@ -1678,7 +1678,7 @@ </histogram> <histogram name="SafeBrowsing.HPRT.Request.CountOfPrefixes" units="prefixes" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>thefrog@chromium.org</owner> <owner>chrome-counter-abuse-alerts@google.com</owner> <summary> @@ -1689,7 +1689,7 @@ </histogram> <histogram name="SafeBrowsing.HPRT.ThreatInfoSize{SourceDetails}" - units="verdicts" expires_after="2024-09-01"> + units="verdicts" expires_after="2024-11-03"> <owner>thefrog@chromium.org</owner> <owner>chrome-counter-abuse-alerts@google.com</owner> <summary> @@ -1711,7 +1711,7 @@ </histogram> <histogram name="SafeBrowsing.IOS.IsCheckCompletedOnShouldAllowResponse" - enum="BooleanCompleted" expires_after="2024-09-01"> + enum="BooleanCompleted" expires_after="2024-11-03"> <owner>ajuma@chromium.org</owner> <owner>joemerramos@chromium.org</owner> <owner>chrome-counter-abuse-alerts@google.com</owner> @@ -1734,7 +1734,7 @@ </histogram> <histogram name="SafeBrowsing.IOS.TotalDelay" units="ms" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>ajuma@chromium.org</owner> <owner>joemerramos@chromium.org</owner> <owner>chrome-counter-abuse-alerts@google.com</owner> @@ -1875,7 +1875,7 @@ </histogram> <histogram name="SafeBrowsing.PageLoadToken.Duration" units="ms" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>xinghuilu@chromium.org</owner> <owner>chrome-counter-abuse-alerts@google.com</owner> <summary> @@ -1886,7 +1886,7 @@ </histogram> <histogram name="SafeBrowsing.PageLoadToken.HasExpired" enum="BooleanExpired" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>xinghuilu@chromium.org</owner> <owner>chrome-counter-abuse-alerts@google.com</owner> <summary> @@ -1983,7 +1983,7 @@ </histogram> <histogram name="SafeBrowsing.Pref.Enhanced" enum="BooleanEnabled" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>drubery@chromium.org</owner> <owner>chrome-counter-abuse-alerts@google.com</owner> <summary> @@ -2005,7 +2005,7 @@ </histogram> <histogram name="SafeBrowsing.Pref.Extended" enum="BooleanEnabled" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>vakh@chromium.org</owner> <owner>chrome-counter-abuse-alerts@google.com</owner> <summary> @@ -2017,7 +2017,7 @@ </histogram> <histogram name="SafeBrowsing.Pref.General" enum="BooleanEnabled" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>vakh@chromium.org</owner> <owner>chrome-counter-abuse-alerts@google.com</owner> <summary> @@ -2054,7 +2054,7 @@ </histogram> <histogram name="SafeBrowsing.ReferrerURLChainSize" units="units" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>drubery@chromium.org</owner> <owner>chrome-counter-abuse-alerts@google.com</owner> <summary> @@ -2065,7 +2065,7 @@ <histogram name="SafeBrowsing.RendererThrottle.IsCheckCompletedOnProcessResponse" - enum="BooleanCompleted" expires_after="2024-09-01"> + enum="BooleanCompleted" expires_after="2024-11-03"> <owner>xinghuilu@chromium.org</owner> <owner>chrome-counter-abuse-alerts@google.com</owner> <summary> @@ -2117,7 +2117,7 @@ </histogram> <histogram name="SafeBrowsing.RT.AllStoresAvailable" enum="BooleanAvailable" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>xinghuilu@chromium.org</owner> <owner>chrome-counter-abuse-alerts@google.com</owner> <summary> @@ -2162,7 +2162,7 @@ </histogram> <histogram name="SafeBrowsing.RT.CanCheckDatabase" enum="BooleanEnabled" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>xinghuilu@chromium.org</owner> <owner>chrome-counter-abuse-alerts@google.com</owner> <summary> @@ -2228,7 +2228,7 @@ </histogram> <histogram name="SafeBrowsing.RT.GetCacheResult{UserCategory}" - enum="SafeBrowsingRTLookupResponseVerdictType" expires_after="2024-09-01"> + enum="SafeBrowsingRTLookupResponseVerdictType" expires_after="2024-11-03"> <owner>xinghuilu@chromium.org</owner> <owner>chrome-counter-abuse-alerts@google.com</owner> <summary> @@ -2243,7 +2243,7 @@ </histogram> <histogram name="SafeBrowsing.RT.GetToken.Time" units="ms" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>xinghuilu@chromium.org</owner> <owner>chrome-counter-abuse-alerts@google.com</owner> <summary> @@ -2383,7 +2383,7 @@ </histogram> <histogram name="SafeBrowsing.RT.Request.Concurrent{UserCategory}" - enum="Boolean" expires_after="2024-09-01"> + enum="Boolean" expires_after="2024-11-03"> <owner>rogerta@chromium.org</owner> <owner>thefrog@chromium.org</owner> <owner>chrome-counter-abuse-alerts@google.com</owner> @@ -2399,7 +2399,7 @@ </histogram> <histogram name="SafeBrowsing.RT.Request.HadCookie.{RequestType}{UserType}" - enum="BooleanPresent" expires_after="2024-09-01"> + enum="BooleanPresent" expires_after="2024-11-03"> <owner>chlily@chromium.org</owner> <owner>chrome-counter-abuse-alerts@google.com</owner> <summary> @@ -2487,7 +2487,7 @@ </histogram> <histogram name="SafeBrowsing.RT.Response.VerdictType{UserCategory}" - enum="SafeBrowsingRTLookupResponseVerdictType" expires_after="2024-09-01"> + enum="SafeBrowsingRTLookupResponseVerdictType" expires_after="2024-11-03"> <owner>xinghuilu@chromium.org</owner> <owner>chrome-counter-abuse-alerts@google.com</owner> <summary> @@ -2500,7 +2500,7 @@ </histogram> <histogram name="SafeBrowsing.RT.SampledRequestSent" enum="Boolean" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>zackhan@chromium.org</owner> <owner>chrome-counter-abuse-alerts@google.com</owner> <summary> @@ -2512,7 +2512,7 @@ </histogram> <histogram name="SafeBrowsing.RT.ThreatInfoSize{UserCategory}" units="verdicts" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>xinghuilu@chromium.org</owner> <owner>chrome-counter-abuse-alerts@google.com</owner> <summary> @@ -2526,7 +2526,7 @@ </histogram> <histogram name="SafeBrowsing.Settings.UserAction.{AccessPoint}" - enum="SafeBrowsingSettingsUserAction" expires_after="2024-09-01"> + enum="SafeBrowsingSettingsUserAction" expires_after="2024-11-03"> <owner>xinghuilu@chromium.org</owner> <owner>chrome-counter-abuse-alerts@google.com</owner> <summary> @@ -2570,7 +2570,7 @@ <histogram name="SafeBrowsing.TailoredSecurity.ConsentedDesktopDialogEnabledOutcome" - enum="SafeBrowsingTailoredSecurityOutcome" expires_after="2024-09-01"> + enum="SafeBrowsingTailoredSecurityOutcome" expires_after="2024-11-03"> <owner>jacastro@chromium.org</owner> <owner>chrome-safebrowsing-alerts@google.com</owner> <summary> @@ -2606,7 +2606,7 @@ <histogram name="SafeBrowsing.TailoredSecurity.SyncPromptEnabledNotificationResult2" enum="SafeBrowsingTailoredSecurityNotificationResult" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>jacastro@chromium.org</owner> <owner>chrome-counter-abuse-alerts@google.com</owner> <summary> @@ -2619,7 +2619,7 @@ <histogram name="SafeBrowsing.TailoredSecurityConsented{Status}{PromptType}Outcome" - enum="SafeBrowsingTailoredSecurityOutcome" expires_after="2024-09-01"> + enum="SafeBrowsingTailoredSecurityOutcome" expires_after="2024-11-03"> <owner>jacastro@chromium.org</owner> <owner>chrome-counter-abuse-alerts@google.com</owner> <summary> @@ -2693,7 +2693,7 @@ </histogram> <histogram name="SafeBrowsing.TailoredSecurityUnconsented{Flow}MessageOutcome" - enum="SafeBrowsingTailoredSecurityOutcome" expires_after="2024-09-01"> + enum="SafeBrowsingTailoredSecurityOutcome" expires_after="2024-11-03"> <owner>jacastro@chromium.org</owner> <owner>chrome-counter-abuse-alerts@google.com</owner> <summary> @@ -2708,7 +2708,7 @@ </histogram> <histogram name="SafeBrowsing.TokenFetcher.ErrorType" - enum="GoogleServiceAuthError" expires_after="2024-09-01"> + enum="GoogleServiceAuthError" expires_after="2024-11-03"> <owner>xinghuilu@chromium.org</owner> <owner>chrome-counter-abuse-alerts@google.com</owner> <summary> @@ -2741,7 +2741,7 @@ </histogram> <histogram name="SafeBrowsing.Triggers.SuspiciousSite.Event" - enum="SuspiciousSiteTriggerEvent" expires_after="2024-09-01"> + enum="SuspiciousSiteTriggerEvent" expires_after="2024-11-03"> <owner>vakh@chromium.org</owner> <owner>chrome-counter-abuse-alerts@google.com</owner> <summary> @@ -2772,7 +2772,7 @@ </histogram> <histogram name="SafeBrowsing.V4Database.Size" units="KB" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>vakh@chromium.org</owner> <owner>chrome-counter-abuse-alerts@google.com</owner> <summary> @@ -2797,7 +2797,7 @@ </histogram> <histogram name="SafeBrowsing.V4Database.SizeLinear{ThreatType}" units="MB" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>richche@google.com</owner> <owner>chrome-counter-abuse-alerts@google.com</owner> <summary> @@ -2862,7 +2862,7 @@ </histogram> <histogram name="SafeBrowsing.V4GetHash.Network.Result" - enum="CombinedHttpResponseAndNetErrorCode" expires_after="2024-09-01"> + enum="CombinedHttpResponseAndNetErrorCode" expires_after="2024-11-03"> <owner>vakh@google.com</owner> <owner>kcarattini@google.com</owner> <owner>chrome-counter-abuse-alerts@google.com</owner> @@ -2969,7 +2969,7 @@ </histogram> <histogram name="SafeBrowsing.V4ProcessFullUpdate.ApplyUpdateDuration" - units="ms" expires_after="2024-09-01"> + units="ms" expires_after="2024-11-03"> <owner>drubery@chromium.org</owner> <owner>chrome-counter-abuse-alerts@google.com</owner> <summary> @@ -3108,7 +3108,7 @@ </histogram> <histogram name="SafeBrowsing.V4ReadFromDisk.VerifyChecksumDuration" units="ms" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>drubery@chromium.org</owner> <owner>chrome-counter-abuse-alerts@google.com</owner> <summary> @@ -3118,7 +3118,7 @@ </histogram> <histogram name="SafeBrowsing.V4Store.IsStoreValid" enum="BooleanValid" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>xinghuilu@chromium.org</owner> <owner>chrome-counter-abuse-alerts@google.com</owner> <summary> @@ -3130,7 +3130,7 @@ </histogram> <histogram name="SafeBrowsing.V4StoreRead.Result" - enum="SafeBrowsingV4StoreReadResult" expires_after="2024-09-01"> + enum="SafeBrowsingV4StoreReadResult" expires_after="2024-11-03"> <owner>xinghuilu@chromium.org</owner> <owner>chrome-counter-abuse-alerts@google.com</owner> <summary> @@ -3155,7 +3155,7 @@ </histogram> <histogram name="SafeBrowsing.V4UnusedStoreFileExists.{Store}" - enum="BooleanExists" expires_after="2024-09-01"> + enum="BooleanExists" expires_after="2024-11-03"> <owner>drubery@chromium.org</owner> <owner>chrome-safebrowsing-alerts@google.com</owner> <summary> @@ -3169,7 +3169,7 @@ </histogram> <histogram name="SafeBrowsing.V4Update.Network.Result" - enum="CombinedHttpResponseAndNetErrorCode" expires_after="2024-09-01"> + enum="CombinedHttpResponseAndNetErrorCode" expires_after="2024-11-03"> <owner>vakh@chromium.org</owner> <owner>chrome-counter-abuse-alerts@google.com</owner> <summary> @@ -3194,7 +3194,7 @@ </histogram> <histogram name="SafeBrowsing.V4Update.ResponseSizeKB" units="KB" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>vakh@chromium.org</owner> <owner>chrome-counter-abuse-alerts@google.com</owner> <summary> @@ -3217,7 +3217,7 @@ </histogram> <histogram name="SafeBrowsing.WebApiHandshakeCheck.Skipped" - enum="BooleanSkipped" expires_after="2024-09-01"> + enum="BooleanSkipped" expires_after="2024-11-03"> <owner>thefrog@chromium.org</owner> <owner>chrome-counter-abuse-alerts@google.com</owner> <summary> @@ -3237,7 +3237,7 @@ </histogram> <histogram name="SafeBrowsing.WebSocketCheck.Skipped" enum="BooleanSkipped" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>thefrog@chromium.org</owner> <owner>chrome-counter-abuse-alerts@google.com</owner> <summary> @@ -3283,7 +3283,7 @@ <histogram name="SafeBrowsing.{CloudOrLocal}DeepScan.{Connector}{Result}.Duration" - units="ms" expires_after="2024-09-01"> + units="ms" expires_after="2024-11-03"> <owner>domfc@chromium.org</owner> <owner>drubery@chromium.org</owner> <owner>rogerta@chromium.org</owner> @@ -3314,7 +3314,7 @@ <histogram name="SafeBrowsing.{Process}Throttle.IntervalBetweenStartAndProcess{ResponseType}" - units="ms" expires_after="2024-09-01"> + units="ms" expires_after="2024-11-03"> <owner>xinghuilu@chromium.org</owner> <owner>chrome-counter-abuse-alerts@google.com</owner> <summary> @@ -3365,7 +3365,7 @@ </histogram> <histogram name="SafeBrowsingBinaryUploadRequest.DlpResult" - enum="BooleanSuccess" expires_after="2024-09-03"> + enum="BooleanSuccess" expires_after="2024-11-03"> <owner>domfc@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 93185288..57a84630 100644 --- a/tools/metrics/histograms/metadata/sb_client/histograms.xml +++ b/tools/metrics/histograms/metadata/sb_client/histograms.xml
@@ -51,7 +51,7 @@ </histogram> <histogram name="SBClientDownload.AutoOpen{State}FileType" - enum="SBClientDownloadExtensions" expires_after="2024-09-01"> + enum="SBClientDownloadExtensions" expires_after="2024-11-03"> <owner>drubery@chromium.org</owner> <owner>chrome-counter-abuse-alerts@google.com</owner> <summary> @@ -79,7 +79,7 @@ </histogram> <histogram name="SBClientDownload.CheckDownloadStats" - enum="SBClientDownloadCheckDownloadStats" expires_after="2024-09-01"> + enum="SBClientDownloadCheckDownloadStats" expires_after="2024-11-03"> <owner>vakh@chromium.org</owner> <owner>chrome-counter-abuse-alerts@google.com</owner> <owner>mattm@chromium.org</owner> @@ -159,7 +159,7 @@ </histogram> <histogram name="SBClientDownload.DownloadRequestDuration" units="ms" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>vakh@chromium.org</owner> <owner>chrome-counter-abuse-alerts@google.com</owner> <owner>mattm@chromium.org</owner> @@ -325,7 +325,7 @@ </histogram> <histogram name="SBClientDownload.ServerRequestsDeepScanningPrompt{Encryption}" - enum="BooleanRequested" expires_after="2024-09-01"> + enum="BooleanRequested" expires_after="2024-11-03"> <owner>drubery@chromium.org</owner> <owner>chrome-counter-abuse-alerts@google.com</owner> <summary> @@ -492,7 +492,7 @@ </histogram> <histogram name="SBClientDownload.{Encryption}MalwareDeepScanResult2.{trigger}" - enum="SBClientDownloadCheckResult" expires_after="2024-09-01"> + enum="SBClientDownloadCheckResult" expires_after="2024-11-03"> <owner>drubery@chromium.org</owner> <owner>chrome-counter-abuse-alerts@google.com</owner> <summary> @@ -543,7 +543,7 @@ <histogram name="SBClientPhishing.CancelClassificationReason" enum="SBClientPhishingCancelClassificationReason" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>drubery@chromium.org</owner> <owner>chrome-counter-abuse-alerts@google.com</owner> <summary> @@ -682,7 +682,7 @@ </histogram> <histogram name="SBClientPhishing.LocalModelDetectsPhishing" - enum="BooleanIsPhishing" expires_after="2024-09-01"> + enum="BooleanIsPhishing" expires_after="2024-11-03"> <owner>drubery@chromium.org</owner> <owner>chrome-counter-abuse-alerts@google.com</owner> <summary> @@ -726,7 +726,7 @@ </histogram> <histogram name="SBClientPhishing.NetworkResult" - enum="CombinedHttpResponseAndNetErrorCode" expires_after="2024-09-01"> + enum="CombinedHttpResponseAndNetErrorCode" expires_after="2024-11-03"> <owner>drubery@chromium.org</owner> <owner>chrome-counter-abuse-alerts@google.com</owner> <summary>
diff --git a/tools/metrics/histograms/metadata/scanning/histograms.xml b/tools/metrics/histograms/metadata/scanning/histograms.xml index f151f2d..69cfa80 100644 --- a/tools/metrics/histograms/metadata/scanning/histograms.xml +++ b/tools/metrics/histograms/metadata/scanning/histograms.xml
@@ -43,7 +43,7 @@ </histogram> <histogram name="Scanning.DiscoverySession.NumScanners" units="scanners" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>bmgordon@chromium.org</owner> <owner>project-bolton@google.com</owner> <summary>
diff --git a/tools/metrics/histograms/metadata/scheduler/histograms.xml b/tools/metrics/histograms/metadata/scheduler/histograms.xml index f0a3ac5..db2c172 100644 --- a/tools/metrics/histograms/metadata/scheduler/histograms.xml +++ b/tools/metrics/histograms/metadata/scheduler/histograms.xml
@@ -297,7 +297,7 @@ </histogram> <histogram base="true" name="ThreadPool.UnnecessaryWakeup" enum="BooleanHit" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>spvw@chromium.org</owner> <owner>gab@chromium.org</owner> <summary>
diff --git a/tools/metrics/histograms/metadata/search/histograms.xml b/tools/metrics/histograms/metadata/search/histograms.xml index b73087e..ddd801e 100644 --- a/tools/metrics/histograms/metadata/search/histograms.xml +++ b/tools/metrics/histograms/metadata/search/histograms.xml
@@ -29,7 +29,7 @@ </variants> <histogram name="Search.Ambient.Query" enum="AmbientSearchEntryPoint" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>juanmojica@google.com</owner> <owner>schechter@google.com</owner> <owner>stanfield@google.com</owner> @@ -303,7 +303,7 @@ </histogram> <histogram name="Search.ContextualSearch.All.Searches" - enum="BooleanBottomSearchKind" expires_after="2024-09-01"> + enum="BooleanBottomSearchKind" expires_after="2024-11-03"> <!-- TODO(donnd): change expires_after to "never" once established and approved. --> @@ -774,7 +774,7 @@ </histogram> <histogram name="Search.Image.Camera.Open" enum="CameraOpenEntryPoint" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>juanmojica@google.com</owner> <owner>schechter@google.com</owner> <owner>stanfield@google.com</owner> @@ -1006,7 +1006,7 @@ </histogram> <histogram name="Search.RegionSearch.Lens.Result" - enum="LensRegionSearchCaptureResult" expires_after="2024-09-01"> + enum="LensRegionSearchCaptureResult" expires_after="2024-11-03"> <owner>juanmojica@google.com</owner> <owner>benwgold@google.com</owner> <owner>stanfield@google.com</owner>
diff --git a/tools/metrics/histograms/metadata/security/histograms.xml b/tools/metrics/histograms/metadata/security/histograms.xml index 3d81e82c..90243ab 100644 --- a/tools/metrics/histograms/metadata/security/histograms.xml +++ b/tools/metrics/histograms/metadata/security/histograms.xml
@@ -23,7 +23,7 @@ <histograms> <histogram name="Security.DataDecoder.Image.DecodingTime" units="ms" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>lukasza@chromium.org</owner> <owner>rsesek@chromium.org</owner> <summary> @@ -389,7 +389,7 @@ </histogram> <histogram name="Security.PageInfo.AboutThisSiteLanguageSupported" - enum="Boolean" expires_after="2024-09-01"> + enum="Boolean" expires_after="2024-11-03"> <owner>dullweber@chromium.org</owner> <owner>olesiamarukhno@chromium.org</owner> <summary>
diff --git a/tools/metrics/histograms/metadata/service/enums.xml b/tools/metrics/histograms/metadata/service/enums.xml index 862d8492..b8bf1ef 100644 --- a/tools/metrics/histograms/metadata/service/enums.xml +++ b/tools/metrics/histograms/metadata/service/enums.xml
@@ -250,13 +250,6 @@ <int value="9" label="kExceedMaxRouterSize"/> </enum> -<enum name="ServiceWorkerRouterSourceType"> - <int value="0" label="kNetwork"/> - <int value="1" label="kRace"/> - <int value="2" label="kFetchEvent"/> - <int value="3" label="kCache"/> -</enum> - <enum name="ServiceWorkerWriteResponseResult"> <int value="0" label="OK"/> <int value="1" label="Write headers error"/>
diff --git a/tools/metrics/histograms/metadata/service/histograms.xml b/tools/metrics/histograms/metadata/service/histograms.xml index 0a53ec9..59d7f61 100644 --- a/tools/metrics/histograms/metadata/service/histograms.xml +++ b/tools/metrics/histograms/metadata/service/histograms.xml
@@ -151,7 +151,7 @@ </histogram> <histogram name="ServiceWorker.ActivateEvent.Time" units="ms" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>yyanagisawa@chromium.org</owner> <owner>chikamune@chromium.org</owner> <owner>chrome-worker@google.com</owner> @@ -381,7 +381,7 @@ </histogram> <histogram name="ServiceWorker.FetchEvent.Fallback.Time" units="ms" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>yyanagisawa@chromium.org</owner> <owner>chikamune@chromium.org</owner> <owner>chrome-worker@google.com</owner> @@ -394,7 +394,7 @@ </histogram> <histogram name="ServiceWorker.FetchEvent.HasResponse.Time" units="ms" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>yyanagisawa@chromium.org</owner> <owner>chikamune@chromium.org</owner> <owner>chrome-worker@google.com</owner> @@ -406,7 +406,7 @@ </histogram> <histogram name="ServiceWorker.FetchEvent.MainResource.Status" - enum="ServiceWorkerStatusCode" expires_after="2024-09-01"> + enum="ServiceWorkerStatusCode" expires_after="2024-11-03"> <owner>yyanagisawa@chromium.org</owner> <owner>chikamune@chromium.org</owner> <owner>chrome-worker@google.com</owner> @@ -430,7 +430,7 @@ </histogram> <histogram name="ServiceWorker.FetchEvent.Subresource.Status" - enum="ServiceWorkerStatusCode" expires_after="2024-09-01"> + enum="ServiceWorkerStatusCode" expires_after="2024-11-03"> <owner>yyanagisawa@chromium.org</owner> <owner>chikamune@chromium.org</owner> <owner>chrome-worker@google.com</owner> @@ -459,7 +459,7 @@ <histogram name="ServiceWorker.FetchEvent.{Resource}.RaceNetworkRequest.DataTransfer.{Action}" enum="ServiceWorkerRaceNetworkRequestDataTransferMojoResult" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>sisidovski@chromium.org</owner> <owner>chrome-worker@google.com</owner> <summary> @@ -503,7 +503,7 @@ </histogram> <histogram name="ServiceWorker.FetchHandler.SkipReason" - enum="ServiceWorkerFetchHandlerSkipReason" expires_after="2024-09-01"> + enum="ServiceWorkerFetchHandlerSkipReason" expires_after="2024-11-03"> <owner>yyanagisawa@chromium.org</owner> <owner>chrome-worker@google.com</owner> <summary> @@ -537,7 +537,7 @@ <histogram name="ServiceWorker.FindRegistrationForClientUrl.SkippedMojoCall.OnNavigation" - enum="BooleanSkipped" expires_after="2024-09-01"> + enum="BooleanSkipped" expires_after="2024-11-03"> <owner>chikamune@chromium.org</owner> <owner>chrome-worker@google.com</owner> <summary> @@ -548,7 +548,7 @@ </histogram> <histogram name="ServiceWorker.FindRegistrationForClientUrl.Time" units="ms" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>chikamune@chromium.org</owner> <owner>chrome-worker@google.com</owner> <summary> @@ -803,7 +803,7 @@ <histogram name="ServiceWorker.LoadTiming.MainFrame.MainResource.InitialServiceWorkerStatus{NavigationType}{FrameTreeNodeType}{BrowserStartupCompleted}" - enum="InitialServiceWorkerStatus" expires_after="2024-09-01"> + enum="InitialServiceWorkerStatus" expires_after="2024-11-03"> <owner>chikamune@chromium.org</owner> <owner>chrome-worker@google.com</owner> <summary> @@ -1032,7 +1032,7 @@ <histogram name="ServiceWorker.LoadTiming.Subresource.ResponseReceivedToCompleted2" - units="ms" expires_after="2024-09-01"> + units="ms" expires_after="2024-11-03"> <owner>yyanagisawa@chromium.org</owner> <owner>chikamune@chromium.org</owner> <owner>chrome-worker@google.com</owner> @@ -1260,7 +1260,7 @@ </histogram> <histogram name="ServiceWorker.RegisteredStorageKeyCount" units="origins" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>yyanagisawa@chromium.org</owner> <owner>chikamune@chromium.org</owner> <owner>chrome-worker@google.com</owner> @@ -1355,7 +1355,7 @@ </histogram> <histogram name="ServiceWorker.SkipCallingFindRegistrationForClientUrl" - enum="BooleanSkipped" expires_after="2024-09-01"> + enum="BooleanSkipped" expires_after="2024-11-03"> <owner>chikamune@chromium.org</owner> <owner>chrome-worker@google.com</owner> <summary> @@ -1616,7 +1616,7 @@ <histogram name="ServiceWorker.Storage.FindForClientUrlInDB.ScopeCountForStorageKey" - units="count" expires_after="2024-09-01"> + units="count" expires_after="2024-11-03"> <owner>chikamune@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 fa35f72..90f67a4 100644 --- a/tools/metrics/histograms/metadata/session/histograms.xml +++ b/tools/metrics/histograms/metadata/session/histograms.xml
@@ -37,7 +37,7 @@ </histogram> <histogram name="Session.BrowserFullscreen.DurationUpTo24H" units="ms" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>bur@chromium.org</owner> <owner>chrome-mac-dev@google.com</owner> <summary>
diff --git a/tools/metrics/histograms/metadata/settings/histograms.xml b/tools/metrics/histograms/metadata/settings/histograms.xml index a429156..b55e3e5 100644 --- a/tools/metrics/histograms/metadata/settings/histograms.xml +++ b/tools/metrics/histograms/metadata/settings/histograms.xml
@@ -75,7 +75,7 @@ </histogram> <histogram name="Settings.AutocompleteSearches.OnStartup2" - enum="BooleanEnabled" expires_after="2024-09-01"> + enum="BooleanEnabled" expires_after="2024-11-03"> <owner>harrisonsean@chromium.org</owner> <owner>chrome-privacy-controls@google.com</owner> <summary> @@ -85,7 +85,7 @@ </histogram> <histogram name="Settings.ClearBrowsingData.OpenMyActivity" - enum="ClearBrowsingDataMyActivityNavigation" expires_after="2024-09-01"> + enum="ClearBrowsingDataMyActivityNavigation" expires_after="2024-11-03"> <owner>andzaytsev@google.com</owner> <owner>chrome-privacy-controls@google.com</owner> <summary> @@ -200,7 +200,7 @@ </histogram> <histogram name="Settings.OverscrollHistoryNavigation.Enabled" - enum="BooleanEnabled" expires_after="2024-09-01"> + enum="BooleanEnabled" expires_after="2024-11-03"> <owner>charlesmeng@chromium.org</owner> <owner>estalin@chromium.org</owner> <summary> @@ -401,7 +401,7 @@ </histogram> <histogram name="Settings.PrivacySandbox.PromptHelperEvent" - enum="SettingsPrivacySandboxPromptHelperEvent" expires_after="2024-09-01"> + enum="SettingsPrivacySandboxPromptHelperEvent" expires_after="2024-11-03"> <owner>sauski@google.com</owner> <owner>olesiamarukhno@google.com</owner> <owner>kartoffel-core-eng@google.com</owner> @@ -419,7 +419,7 @@ </histogram> <histogram name="Settings.PrivacySandbox.PromptStartupState" - enum="SettingsPrivacySandboxPromptStartupState" expires_after="2024-09-01"> + enum="SettingsPrivacySandboxPromptStartupState" expires_after="2024-11-03"> <owner>sauski@google.com</owner> <owner>olesiamarukhno@chromium.org</owner> <owner>msramek@chromium.org</owner> @@ -452,7 +452,7 @@ </histogram> <histogram name="Settings.PrivacySandbox.Topics.Enabled" enum="BooleanEnabled" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>sauski@google.com</owner> <owner>olesiamarukhno@chromium.org</owner> <owner>msramek@chromium.org</owner> @@ -464,7 +464,7 @@ </histogram> <histogram name="Settings.SafetyCheck.Interactions" - enum="SettingsSafetyCheckInteractions" expires_after="2024-09-01"> + enum="SettingsSafetyCheckInteractions" expires_after="2024-11-03"> <owner>rainhard@chromium.org</owner> <owner>msramek@chromium.org</owner> <owner>anaudrey@chromium.org</owner> @@ -476,7 +476,7 @@ </histogram> <histogram name="Settings.SafetyCheck.NotificationsListCount" - units="suggestions" expires_after="2024-09-01"> + units="suggestions" expires_after="2024-11-03"> <owner>sideyilmaz@chromium.org</owner> <owner>msramek@chromium.org</owner> <owner>hkamila@chromium.org</owner> @@ -502,7 +502,7 @@ <histogram name="Settings.SafetyCheck.NotificationsModuleInteractions" enum="SafetyCheckNotificationsModuleInteractions" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>sideyilmaz@chromium.org</owner> <owner>msramek@chromium.org</owner> <owner>hkamila@chromium.org</owner> @@ -533,7 +533,7 @@ </histogram> <histogram name="Settings.SafetyCheck.UnusedSitePermissionsAllowAgainDays" - units="days" expires_after="2024-09-01"> + units="days" expires_after="2024-11-03"> <owner>sideyilmaz@chromium.org</owner> <owner>msramek@chromium.org</owner> <summary> @@ -546,7 +546,7 @@ </histogram> <histogram name="Settings.SafetyCheck.UnusedSitePermissionsListCount" - units="suggestions" expires_after="2024-09-01"> + units="suggestions" expires_after="2024-11-03"> <owner>sideyilmaz@chromium.org</owner> <owner>msramek@chromium.org</owner> <summary> @@ -558,7 +558,7 @@ <histogram name="Settings.SafetyCheck.UnusedSitePermissionsModuleEntryPointShown" - enum="BooleanVisible" expires_after="2024-09-01"> + enum="BooleanVisible" expires_after="2024-11-03"> <owner>sideyilmaz@chromium.org</owner> <owner>msramek@chromium.org</owner> <owner>hkamila@chromium.org</owner> @@ -572,7 +572,7 @@ <histogram name="Settings.SafetyCheck.UnusedSitePermissionsModuleInteractions" enum="SafetyCheckUnusedSitePermissionsModuleInteractions" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>sideyilmaz@chromium.org</owner> <owner>msramek@chromium.org</owner> <summary> @@ -797,7 +797,7 @@ </histogram> <histogram name="Settings.SearchEngines.Interactions" - enum="SettingsSearchEnginesInteractions" expires_after="2024-09-01"> + enum="SettingsSearchEnginesInteractions" expires_after="2024-11-03"> <owner>yoangela@chromium.org</owner> <owner>chrome-omnibox-team@google.com</owner> <summary> @@ -807,7 +807,7 @@ </histogram> <histogram name="Settings.ShowHomeButton2" enum="BooleanEnabled" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>mpearson@chromium.org</owner> <owner>twellington@chromium.org</owner> <summary> @@ -821,7 +821,7 @@ </histogram> <histogram name="Settings.StartSetAsDefault" enum="BooleanHit" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>pmonette@chromium.org</owner> <owner>robliao@chromium.org</owner> <summary> @@ -831,7 +831,7 @@ </histogram> <histogram name="Settings.StartupPageEngineTypes2" - enum="OmniboxSearchEngineType" expires_after="2024-09-01"> + enum="OmniboxSearchEngineType" expires_after="2024-11-03"> <owner>mpearson@chromium.org</owner> <owner>csharp@chromium.org</owner> <summary> @@ -848,7 +848,7 @@ </histogram> <histogram name="Settings.StartupPageLoadSettings2" enum="SessionStartupPref" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <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 64ec2e1..7513c68 100644 --- a/tools/metrics/histograms/metadata/sharing/histograms.xml +++ b/tools/metrics/histograms/metadata/sharing/histograms.xml
@@ -279,7 +279,7 @@ </histogram> <histogram name="Sharing.MessageReceivedType" enum="SharingMessageType" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>mvanouwerkerk@chromium.org</owner> <owner>peter@chromium.org</owner> <summary>
diff --git a/tools/metrics/histograms/metadata/signin/histograms.xml b/tools/metrics/histograms/metadata/signin/histograms.xml index 8d4e8d5..9985df3 100644 --- a/tools/metrics/histograms/metadata/signin/histograms.xml +++ b/tools/metrics/histograms/metadata/signin/histograms.xml
@@ -23,7 +23,7 @@ <histograms> <histogram name="Signin.AccountCapabilities.FetchLatency" units="ms" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>tju@google.com</owner> <owner>chrome-kids-eng@google.com</owner> <owner>chrome-signin-team@google.com</owner> @@ -74,7 +74,7 @@ </histogram> <histogram name="Signin.AccountCapabilities.ImmediatelyAvailable" - enum="BooleanAvailable" expires_after="2024-09-01"> + enum="BooleanAvailable" expires_after="2024-11-03"> <owner>tju@google.com</owner> <owner>chrome-kids-eng@google.com</owner> <owner>chrome-signin-team@google.com</owner> @@ -91,7 +91,7 @@ </histogram> <histogram name="Signin.AccountCapabilities.UserVisibleLatency" units="ms" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>tju@google.com</owner> <owner>chrome-kids-eng@google.com</owner> <owner>chrome-signin-team@google.com</owner> @@ -163,7 +163,7 @@ </histogram> <histogram name="Signin.AccountConsistencyPromoAction" - enum="AccountConsistencyPromoAction" expires_after="2024-09-01"> + enum="AccountConsistencyPromoAction" expires_after="2024-11-03"> <owner>bsazonov@chromium.org</owner> <owner>chrome-signin-team@google.com</owner> <summary> @@ -173,7 +173,7 @@ </histogram> <histogram name="Signin.AccountConsistencyPromoAction.{PromoEvent}" - enum="SigninAccessPoint" expires_after="2024-09-01"> + enum="SigninAccessPoint" expires_after="2024-11-03"> <owner>bsazonov@chromium.org</owner> <owner>chrome-signin-team@google.com</owner> <summary> @@ -279,7 +279,7 @@ </histogram> <histogram name="Signin.AccountReconcilorState.OnGaiaResponse" - enum="SigninAccountReconcilorState" expires_after="2024-09-01"> + enum="SigninAccountReconcilorState" expires_after="2024-11-03"> <owner>jlebel@chromium.org</owner> <owner>chrome-signin-team@google.com</owner> <summary> @@ -305,7 +305,7 @@ </histogram> <histogram name="Signin.AccountTracker.GaiaIdMigrationState" - enum="OAuth2LoginAccountRevokedMigrationState" expires_after="2024-09-01"> + enum="OAuth2LoginAccountRevokedMigrationState" expires_after="2024-11-03"> <owner>msarda@chromium.org</owner> <owner>sdefresne@chromium.org</owner> <summary> @@ -352,7 +352,7 @@ </histogram> <histogram name="Signin.AccountType.SigninConsent" enum="SigninAccountType" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>jlebel@chromium.org</owner> <owner>chrome-signin-team@chromium.org</owner> <summary> @@ -820,7 +820,7 @@ </histogram> <histogram name="Signin.Extensions.GaiaRemoteConsentFlowResult" - enum="GaiaRemoteConsentFlowResult" expires_after="2024-09-01"> + enum="GaiaRemoteConsentFlowResult" expires_after="2024-11-03"> <owner>alexilin@chromium.org</owner> <owner>droger@chromium.org</owner> <summary> @@ -830,7 +830,7 @@ </histogram> <histogram name="Signin.Extensions.GetAuthTokenResult" - enum="GetAuthTokenResult" expires_after="2024-09-01"> + enum="GetAuthTokenResult" expires_after="2024-11-03"> <!-- Name completed by histogram_suffixes name="GetAuthTokenType" --> <owner>alexilin@chromium.org</owner> @@ -897,7 +897,7 @@ </histogram> <histogram name="Signin.GetAccessTokenFinished" enum="GoogleServiceAuthError" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>droger@chromium.org</owner> <owner>msarda@chromium.org</owner> <summary> @@ -1023,7 +1023,7 @@ </histogram> <histogram name="Signin.Intercept.ChromeSignin.ResponseTime{Result}" units="ms" - expires_after="2024-08-18"> + expires_after="2024-11-03"> <owner>rsult@google.com</owner> <owner>chrome-signin-team@google.com</owner> <summary> @@ -1038,7 +1038,7 @@ </histogram> <histogram name="Signin.Intercept.FRE.Event" - enum="SigninInterceptFREDialogEvent" expires_after="2024-09-01"> + enum="SigninInterceptFREDialogEvent" expires_after="2024-11-03"> <owner>alexilin@chromium.org</owner> <owner>chrome-signin-team@google.com</owner> <summary> @@ -1049,7 +1049,7 @@ <histogram name="Signin.Intercept.Heuristic.ShouldShowChromeSigninBubbleWithReason" - enum="ShouldShowChromeSigninBubbleWithReason" expires_after="2024-09-01"> + enum="ShouldShowChromeSigninBubbleWithReason" expires_after="2024-11-03"> <owner>rsult@google.com</owner> <owner>chrome-signin-team@google.com</owner> <summary> @@ -1066,7 +1066,7 @@ </histogram> <histogram name="Signin.Intercept.HeuristicLatency" units="ms" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>ljjlee@google.com</owner> <owner>chrome-signin-team@google.com</owner> <summary> @@ -1076,7 +1076,7 @@ </histogram> <histogram name="Signin.Intercept.HeuristicOutcome" - enum="SigninInterceptHeuristicOutcome" expires_after="2024-09-01"> + enum="SigninInterceptHeuristicOutcome" expires_after="2024-11-03"> <owner>droger@chromium.org</owner> <owner>alexilin@chromium.org</owner> <summary> @@ -1086,7 +1086,7 @@ </histogram> <histogram base="true" name="Signin.InterceptResult" - enum="SigninInterceptResult" expires_after="2024-09-01"> + enum="SigninInterceptResult" expires_after="2024-11-03"> <!-- Name completed by histogram_suffixes name="SigninInterceptType" --> <owner>alexilin@chromium.org</owner> @@ -1154,7 +1154,7 @@ </histogram> <histogram name="Signin.IOSDeviceRestoreSignedInState" - enum="IOSDeviceRestoreSignedinState" expires_after="2024-08-04"> + enum="IOSDeviceRestoreSignedinState" expires_after="2024-11-03"> <owner>jlebel@chromium.org</owner> <owner>chrome-signin-team@google.com</owner> <summary> @@ -1232,7 +1232,7 @@ </histogram> <histogram name="Signin.ListFamilyMembersRequest.OverallLatency" units="ms" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>tju@google.com</owner> <owner>chrome-kids-eng@google.com</owner> <summary> @@ -1244,7 +1244,7 @@ </histogram> <histogram name="Signin.ListFamilyMembersRequest.OverallStatus" - enum="SupervisedUserProtoFetcherStatus" expires_after="2024-09-01"> + enum="SupervisedUserProtoFetcherStatus" expires_after="2024-11-03"> <owner>tju@google.com</owner> <owner>chrome-kids-eng@google.com</owner> <summary> @@ -1255,7 +1255,7 @@ </histogram> <histogram name="Signin.ListFamilyMembersRequest.RetryCount" units="retries" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>tju@google.com</owner> <owner>chrome-kids-eng@google.com</owner> <summary> @@ -1461,7 +1461,7 @@ </histogram> <histogram name="Signin.Reconciler.Operation" enum="SigninReconcilerOperation" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>msarda@chromium.org</owner> <owner>droger@chromium.org</owner> <summary> @@ -1591,7 +1591,7 @@ </histogram> <histogram name="Signin.SignIn.Completed" enum="SigninAccessPoint" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>bsazonov@chromium.org</owner> <owner>dgn@chromium.org</owner> <owner>chrome-signin-team@google.com</owner> @@ -1616,7 +1616,7 @@ </histogram> <histogram name="Signin.SignIn.Started" enum="SigninAccessPoint" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>bsazonov@chromium.org</owner> <owner>dgn@chromium.org</owner> <owner>chrome-signin-team@google.com</owner> @@ -1637,7 +1637,7 @@ </histogram> <histogram name="Signin.SigninAbortedAccessPoint" enum="SigninAccessPoint" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>bsazonov@chromium.org</owner> <owner>chrome-signin-team@google.com</owner> <summary> @@ -1660,7 +1660,7 @@ </histogram> <histogram name="Signin.SigninCompletedAccessPoint" enum="SigninAccessPoint" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>msarda@chromium.org</owner> <owner>bsazonov@chromium.org</owner> <owner>droger@chromium.org</owner> @@ -1691,7 +1691,7 @@ </histogram> <histogram name="Signin.SigninStartedAccessPoint" enum="SigninAccessPoint" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>msarda@chromium.org</owner> <owner>bsazonov@chromium.org</owner> <owner>droger@chromium.org</owner> @@ -1703,7 +1703,7 @@ </histogram> <histogram name="Signin.SignOut.Completed" enum="SigninSignoutProfile" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>bsazonov@chromium.org</owner> <owner>dgn@chromium.org</owner> <owner>chrome-signin-team@google.com</owner> @@ -1811,7 +1811,7 @@ </histogram> <histogram name="Signin.SyncButtons.Clicked" enum="SyncButtonClicked" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>tju@chromium.org</owner> <owner>chrome-kids-team@google.com</owner> <summary> @@ -1824,7 +1824,7 @@ </histogram> <histogram name="Signin.SyncButtons.Shown" enum="SyncButtonsType" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>tju@chromium.org</owner> <owner>chrome-kids-team@google.com</owner> <summary> @@ -1876,7 +1876,7 @@ </histogram> <histogram name="Signin.SyncOptIn.Completed" enum="SigninAccessPoint" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>bsazonov@chromium.org</owner> <owner>dgn@chromium.org</owner> <owner>chrome-signin-team@google.com</owner> @@ -1889,7 +1889,7 @@ </histogram> <histogram name="Signin.SyncOptIn.OpenedSyncSettings" enum="SigninAccessPoint" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>bsazonov@chromium.org</owner> <owner>dgn@chromium.org</owner> <owner>chrome-signin-team@google.com</owner> @@ -1916,7 +1916,7 @@ </histogram> <histogram name="Signin.SyncOptIn.Started" enum="SigninAccessPoint" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>bsazonov@chromium.org</owner> <owner>dgn@chromium.org</owner> <owner>chrome-signin-team@google.com</owner> @@ -1953,7 +1953,7 @@ </histogram> <histogram name="Signin.SyncTurnOff.Completed" enum="SigninSignoutProfile" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>bsazonov@chromium.org</owner> <owner>dgn@chromium.org</owner> <owner>chrome-signin-team@google.com</owner> @@ -1988,7 +1988,7 @@ </histogram> <histogram name="Signin.TransactionalReauthResult" enum="SigninReauthResult" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <!-- Name completed by histogram_suffixes name="TransactionalReauthEntryPoint" -->
diff --git a/tools/metrics/histograms/metadata/stability/histograms.xml b/tools/metrics/histograms/metadata/stability/histograms.xml index 10c4fab7b..df7f5b1 100644 --- a/tools/metrics/histograms/metadata/stability/histograms.xml +++ b/tools/metrics/histograms/metadata/stability/histograms.xml
@@ -51,7 +51,7 @@ </histogram> <histogram name="Stability.Android.ProcessedRealMinidumps" - enum="AndroidProcessedMinidumps" expires_after="2024-09-01"> + enum="AndroidProcessedMinidumps" expires_after="2024-11-03"> <owner>wnwen@chromium.org</owner> <owner>src/components/minidump_uploader/OWNERS</owner> <summary> @@ -72,7 +72,7 @@ </histogram> <histogram base="true" name="Stability.Android.SystemExitReason" - enum="AndroidProcessExitReason" expires_after="2024-09-01"> + enum="AndroidProcessExitReason" expires_after="2024-11-03"> <owner>boliu@chromium.org</owner> <owner>ssid@chromium.org</owner> <owner>wnwen@chromium.org</owner> @@ -399,7 +399,7 @@ </histogram> <histogram name="Stability.iOS.UTE.BatteryCharge" units="%" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>michaeldo@chromium.org</owner> <owner>olivierrobin@chromium.org</owner> <summary> @@ -412,7 +412,7 @@ </histogram> <histogram name="Stability.iOS.UTE.DeviceThermalState" - enum="IOSDeviceThermalState" expires_after="2024-09-01"> + enum="IOSDeviceThermalState" expires_after="2024-11-03"> <owner>michaeldo@chromium.org</owner> <owner>olivierrobin@chromium.org</owner> <summary> @@ -422,7 +422,7 @@ </histogram> <histogram name="Stability.iOS.UTE.HasPossibleExplanation" - enum="BooleanHasPossibleExplanation" expires_after="2024-09-01"> + enum="BooleanHasPossibleExplanation" expires_after="2024-11-03"> <owner>michaeldo@chromium.org</owner> <owner>olivierrobin@chromium.org</owner> <summary> @@ -433,7 +433,7 @@ </histogram> <histogram name="Stability.iOS.UTE.MobileSessionAppState" enum="IOSAppState" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>justincohen@chromium.org</owner> <owner>olivierrobin@chromium.org</owner> <summary> @@ -444,7 +444,7 @@ </histogram> <histogram name="Stability.iOS.UTE.MobileSessionAppWillTerminateWasReceived" - enum="AppWillTerminateReceived" expires_after="2024-09-01"> + enum="AppWillTerminateReceived" expires_after="2024-11-03"> <owner>michaeldo@chromium.org</owner> <owner>olivierrobin@chromium.org</owner> <summary> @@ -469,7 +469,7 @@ </histogram> <histogram name="Stability.iOS.UTE.OSRestartedAfterPreviousSession" - enum="BooleanRebooted" expires_after="2024-09-01"> + enum="BooleanRebooted" expires_after="2024-11-03"> <owner>olivierrobin@chromium.org</owner> <owner>michaeldo@chromium.org</owner> <summary> @@ -492,7 +492,7 @@ </histogram> <histogram name="Stability.iOS.UTE.TimeBetweenUTEAndNextLaunch" units="ms" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>michaeldo@chromium.org</owner> <owner>olivierrobin@chromium.org</owner> <summary> @@ -537,7 +537,7 @@ </histogram> <histogram name="Stability.RendererAbnormalTermination2.HostedContentType" - enum="RendererHostedContentType" expires_after="2024-09-01"> + enum="RendererHostedContentType" expires_after="2024-11-03"> <owner>fdoray@chromium.org</owner> <owner>catan-team@chromium.org</owner> <summary> @@ -547,7 +547,7 @@ </histogram> <histogram name="Stability.RendererAbnormalTermination2.{HostedContentType}" - enum="TerminationStatus" expires_after="2024-09-01"> + enum="TerminationStatus" expires_after="2024-11-03"> <owner>fdoray@chromium.org</owner> <owner>catan-team@chromium.org</owner> <summary>
diff --git a/tools/metrics/histograms/metadata/startup/histograms.xml b/tools/metrics/histograms/metadata/startup/histograms.xml index d1c4c9b..df9ee2f 100644 --- a/tools/metrics/histograms/metadata/startup/histograms.xml +++ b/tools/metrics/histograms/metadata/startup/histograms.xml
@@ -68,7 +68,7 @@ </histogram> <histogram name="Startup.Android.Cold.FirstPaintOccurredPreForeground" - enum="Boolean" expires_after="2024-09-01"> + enum="Boolean" expires_after="2024-11-03"> <owner>blundell@chromium.org</owner> <owner>yfriedman@chromium.org</owner> <summary> @@ -105,7 +105,7 @@ </histogram> <histogram base="true" name="Startup.Android.Cold.TimeToFirstContentfulPaint" - units="ms" expires_after="2024-09-01"> + units="ms" expires_after="2024-11-03"> <owner>pasko@chromium.org</owner> <owner>alexilin@chromium.org</owner> <summary> @@ -118,7 +118,7 @@ </histogram> <histogram base="true" name="Startup.Android.Cold.TimeToFirstNavigationCommit" - units="ms" expires_after="2024-09-01"> + units="ms" expires_after="2024-11-03"> <owner>pasko@chromium.org</owner> <owner>alexilin@chromium.org</owner> <summary> @@ -132,7 +132,7 @@ </histogram> <histogram name="Startup.Android.Cold.TimeToFirstNavigationCommit2.Tabbed" - units="ms" expires_after="2024-09-01"> + units="ms" expires_after="2024-11-03"> <owner>pasko@chromium.org</owner> <owner>agrieve@chromium.org</owner> <summary> @@ -281,7 +281,7 @@ </histogram> <histogram name="Startup.Android.Cold.TimeToForegroundSessionStart" units="ms" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>pasko@chromium.org</owner> <owner>mthiesse@chromium.org</owner> <summary> @@ -291,7 +291,7 @@ </histogram> <histogram name="Startup.Android.Cold.TimeToVisibleContent" units="ms" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>ckitagawa@chromium.org</owner> <summary> Android: The time from the activity creation point to the moment the content @@ -521,7 +521,7 @@ </histogram> <histogram name="Startup.BringToForegroundReason" - enum="BooleanBringToForegroundReason" expires_after="2024-09-01"> + enum="BooleanBringToForegroundReason" expires_after="2024-11-03"> <owner>peter@chromium.org</owner> <summary> Records the cause, each time Chrome is brought to the foreground. Currently @@ -907,7 +907,7 @@ </histogram> <histogram name="Startup.MobileSessionStartAction" - enum="MobileSessionStartAction" expires_after="2024-09-01"> + enum="MobileSessionStartAction" expires_after="2024-11-03"> <owner>thegreenfrog@chromium.org</owner> <owner>olivierrobin@chromium.org</owner> <summary> @@ -917,14 +917,14 @@ </histogram> <histogram name="Startup.MobileSessionStartFromApps" - enum="MobileSessionCallerApp" expires_after="2024-09-01"> + enum="MobileSessionCallerApp" expires_after="2024-11-03"> <owner>thegreenfrog@chromium.org</owner> <owner>olivierrobin@chromium.org</owner> <summary>The calling application (if any).</summary> </histogram> <histogram name="Startup.PreMainMessageLoopRunImplLongTime" units="ms" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>rkaplow@chromium.org</owner> <summary> The amount of time that elapsed during @@ -934,7 +934,7 @@ <histogram name="Startup.Renderer.LoadTime.ApplicationStartToRendererStartRunLoop" - units="ms" expires_after="2024-09-01"> + units="ms" expires_after="2024-11-03"> <owner>spvw@chromium.org</owner> <owner>etienneb@chromium.org</owner> <summary> @@ -951,7 +951,7 @@ </histogram> <histogram name="Startup.Renderer.LoadTime.ChromeMainToRendererStartRunLoop" - units="ms" expires_after="2024-09-01"> + units="ms" expires_after="2024-11-03"> <owner>spvw@chromium.org</owner> <owner>etienneb@chromium.org</owner> <summary> @@ -966,7 +966,7 @@ <histogram name="Startup.Renderer.LoadTime.ProcessCreationToRendererStartRunLoop" - units="ms" expires_after="2024-09-01"> + units="ms" expires_after="2024-11-03"> <owner>spvw@chromium.org</owner> <owner>etienneb@chromium.org</owner> <summary>
diff --git a/tools/metrics/histograms/metadata/storage/histograms.xml b/tools/metrics/histograms/metadata/storage/histograms.xml index bfd95a64..344f394 100644 --- a/tools/metrics/histograms/metadata/storage/histograms.xml +++ b/tools/metrics/histograms/metadata/storage/histograms.xml
@@ -120,7 +120,7 @@ </histogram> <histogram name="API.StorageAccess.RequestOutcome" - enum="StorageAccessAPIRequestOutcome" expires_after="2024-09-01"> + enum="StorageAccessAPIRequestOutcome" expires_after="2024-11-03"> <owner>cfredric@chromium.org</owner> <owner>brandm@microsoft.com</owner> <summary> @@ -131,7 +131,7 @@ </histogram> <histogram name="API.StorageAccess.RequestStorageAccess2" - enum="RequestStorageResult" expires_after="2024-09-01"> + enum="RequestStorageResult" expires_after="2024-11-03"> <owner>mkwst@chromium.org</owner> <owner>cfredric@chromium.org</owner> <owner>brandm@microsoft.com</owner> @@ -145,7 +145,7 @@ </histogram> <histogram name="API.TopLevelStorageAccess.RequestOutcome" - enum="TopLevelStorageAccessRequestOutcome" expires_after="2024-08-31"> + enum="TopLevelStorageAccessRequestOutcome" expires_after="2024-11-03"> <owner>cfredric@chromium.org</owner> <owner>mreichhoff@chromium.org</owner> <summary> @@ -157,7 +157,7 @@ </histogram> <histogram name="API.TopLevelStorageAccess.RequestStorageAccessFor2" - enum="RequestStorageResult" expires_after="2024-08-31"> + enum="RequestStorageResult" expires_after="2024-11-03"> <owner>cfredric@chromium.org</owner> <owner>mreichhoff@chromium.org</owner> <summary> @@ -169,7 +169,7 @@ </histogram> <histogram name="Clipboard.Read" enum="ClipboardFormatRead" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>huangdarwin@chromium.org</owner> <owner>src/ui/base/clipboard/OWNERS</owner> <summary> @@ -196,7 +196,7 @@ </histogram> <histogram name="Clipboard.Write" enum="ClipboardFormatWrite" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>huangdarwin@chromium.org</owner> <owner>src/ui/base/clipboard/OWNERS</owner> <summary> @@ -248,7 +248,7 @@ </histogram> <histogram name="LevelDBWrapper.CommitDelay" units="ms" - expires_after="2024-08-01"> + expires_after="2024-11-03"> <owner>ayui@chromium.org</owner> <owner>chrome-owp-storage@google.com</owner> <summary> @@ -568,7 +568,7 @@ </histogram> <histogram name="Storage.InterestGroup.DBMaintenanceTime" units="microseconds" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>behamilton@google.com</owner> <owner>pauljensen@chromium.org</owner> <summary> @@ -581,7 +581,7 @@ </histogram> <histogram name="Storage.InterestGroup.DBSize" units="KB" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>behamilton@google.com</owner> <owner>pauljensen@chromium.org</owner> <summary> @@ -591,7 +591,7 @@ </histogram> <histogram name="Storage.InterestGroup.PerSiteCount" units="groups" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>behamilton@google.com</owner> <owner>pauljensen@chromium.org</owner> <summary>
diff --git a/tools/metrics/histograms/metadata/subresource/histograms.xml b/tools/metrics/histograms/metadata/subresource/histograms.xml index e29aafd..e6be71f 100644 --- a/tools/metrics/histograms/metadata/subresource/histograms.xml +++ b/tools/metrics/histograms/metadata/subresource/histograms.xml
@@ -23,7 +23,7 @@ <histograms> <histogram name="SubresourceFilter.Actions2" enum="SubresourceFilterActions2" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>alexmt@chromium.org</owner> <owner>chrome-ads-histograms@google.com</owner> <summary> @@ -257,7 +257,7 @@ </histogram> <histogram name="SubresourceFilter.PageLoad.ActivationList" - enum="ActivationList" expires_after="2024-09-01"> + enum="ActivationList" expires_after="2024-11-03"> <owner>alexmt@chromium.org</owner> <owner>chrome-ads-histograms@google.com</owner> <summary> @@ -267,7 +267,7 @@ </histogram> <histogram name="SubresourceFilter.PageLoad.ActivationState" - enum="SubresourceFilterActivationState" expires_after="2024-09-01"> + enum="SubresourceFilterActivationState" expires_after="2024-11-03"> <owner>alexmt@chromium.org</owner> <owner>chrome-ads-histograms@google.com</owner> <summary> @@ -330,7 +330,7 @@ </histogram> <histogram name="SubresourceFilter.PageLoad.NumSubresourceLoads.MatchedRules" - units="resource loads" expires_after="2024-09-01"> + units="resource loads" expires_after="2024-11-03"> <owner>jkarlin@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 02de046f..4a749f8 100644 --- a/tools/metrics/histograms/metadata/sync/histograms.xml +++ b/tools/metrics/histograms/metadata/sync/histograms.xml
@@ -305,7 +305,7 @@ </histogram> <histogram name="Sync.CommitResponseForUnknownEntity" enum="SyncModelTypes" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>treib@chromium.org</owner> <owner>mastiz@chromium.org</owner> <summary> @@ -329,7 +329,7 @@ </histogram> <histogram name="Sync.ConfigureDataTypeManagerOption" - enum="SyncFeatureOrTransport" expires_after="2024-09-01"> + enum="SyncFeatureOrTransport" expires_after="2024-11-03"> <owner>mastiz@chromium.org</owner> <owner>treib@chromium.org</owner> <summary> @@ -446,7 +446,7 @@ </histogram> <histogram name="Sync.CryptographerPendingKeys" - enum="SyncCryptographerPendingKeysState" expires_after="2024-09-01"> + enum="SyncCryptographerPendingKeysState" expires_after="2024-11-03"> <owner>mastiz@chromium.org</owner> <owner>treib@chromium.org</owner> <summary> @@ -497,7 +497,7 @@ </histogram> <histogram name="Sync.DataTypeActiveForSyncToSigninMigration{SyncModelType}" - enum="BooleanActive" expires_after="2024-09-01"> + enum="BooleanActive" expires_after="2024-11-03"> <owner>treib@chromium.org</owner> <owner>mastiz@chromium.org</owner> <summary> @@ -550,7 +550,7 @@ </histogram> <histogram name="Sync.DeviceCount2.{DeviceType}" units="devices" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>ssid@chromium.org</owner> <owner>mastiz@chromium.org</owner> <owner>chrome-metrics-team@google.com</owner> @@ -567,7 +567,7 @@ </histogram> <histogram name="Sync.EntityEncryptionSucceeded{SyncModelType}" - enum="BooleanSuccess" expires_after="2024-09-01"> + enum="BooleanSuccess" expires_after="2024-11-03"> <owner>rushans@google.com</owner> <owner>treib@chromium.org</owner> <summary> @@ -642,7 +642,7 @@ </histogram> <histogram name="Sync.FeatureStatusForSyncToSigninMigration" - enum="SyncFeatureStatusForSyncToSigninMigration" expires_after="2024-09-01"> + enum="SyncFeatureStatusForSyncToSigninMigration" expires_after="2024-11-03"> <owner>treib@chromium.org</owner> <owner>mastiz@chromium.org</owner> <summary> @@ -711,7 +711,7 @@ </histogram> <histogram name="Sync.IncomingInvalidationStatus" - enum="SyncIncomingInvalidationStatus" expires_after="2024-09-01"> + enum="SyncIncomingInvalidationStatus" expires_after="2024-11-03"> <owner>rushans@google.com</owner> <owner>treib@chromium.org</owner> <summary> @@ -809,7 +809,7 @@ </histogram> <histogram name="Sync.Local.RoamingProfileUnavailable2" enum="BooleanError" - expires_after="2024-08-01"> + expires_after="2024-11-03"> <owner>igorruvinov@chromium.org</owner> <owner>pastarmovj@chromium.org</owner> <summary> @@ -828,7 +828,7 @@ </histogram> <histogram name="Sync.ModelLoadManager.LoadModelsElapsedTime" units="ms" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>ankushkush@google.com</owner> <owner>treib@chromium.org</owner> <summary> @@ -838,7 +838,7 @@ </histogram> <histogram name="Sync.ModelLoadManager.LoadModelsTimeout" enum="SyncModelTypes" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>ankushkush@google.com</owner> <owner>treib@chromium.org</owner> <summary> @@ -958,7 +958,7 @@ </histogram> <histogram name="Sync.ModelTypeErrorSite{SyncModelType}" - enum="SyncModelTypeErrorSite" expires_after="2024-09-01"> + enum="SyncModelTypeErrorSite" expires_after="2024-11-03"> <owner>treib@chromium.org</owner> <owner>rushans@google.com</owner> <summary> @@ -982,7 +982,7 @@ </histogram> <histogram name="Sync.ModelTypeOrphanMetadata.{Operation}" - enum="SyncModelTypes" expires_after="2024-09-01"> + enum="SyncModelTypes" expires_after="2024-11-03"> <owner>mastiz@chromium.org</owner> <owner>treib@chromium.org</owner> <summary> @@ -1282,7 +1282,7 @@ </histogram> <histogram name="Sync.PostedClientToServerMessageLatency" units="ms" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>mastiz@chromium.org</owner> <summary> Time taken for a client-initiated request to be sent over the network and @@ -1291,7 +1291,7 @@ </histogram> <histogram name="Sync.PostedDataTypeCommitRequest" enum="SyncModelTypes" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>mastiz@chromium.org</owner> <owner>rushans@google.com</owner> <summary> @@ -1304,7 +1304,7 @@ </histogram> <histogram name="Sync.PostedDataTypeGetUpdatesRequest" enum="SyncModelTypes" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>mastiz@chromium.org</owner> <owner>rushans@google.com</owner> <summary> @@ -1317,7 +1317,7 @@ </histogram> <histogram name="Sync.PostedGetUpdatesOrigin" enum="SyncGetUpdatesOrigin" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>mastiz@chromium.org</owner> <owner>rushans@google.com</owner> <summary> @@ -1358,7 +1358,7 @@ </histogram> <histogram name="Sync.ResetEngineReason" enum="SyncResetEngineReason" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>rushans@google.com</owner> <owner>treib@chromium.org</owner> <summary> @@ -1585,7 +1585,7 @@ </histogram> <histogram name="Sync.SyncToSigninMigration.ReadingListMigrationStep" - enum="SyncToSigninMigrationReadingListStep" expires_after="2024-09-01"> + enum="SyncToSigninMigrationReadingListStep" expires_after="2024-11-03"> <owner>treib@chromium.org</owner> <owner>mastiz@chromium.org</owner> <summary> @@ -1599,7 +1599,7 @@ </histogram> <histogram name="Sync.SyncToSigninMigrationDecision" - enum="SyncToSigninMigrationDecisionOverall" expires_after="2024-09-01"> + enum="SyncToSigninMigrationDecisionOverall" expires_after="2024-11-03"> <owner>treib@chromium.org</owner> <owner>mastiz@chromium.org</owner> <summary> @@ -1613,7 +1613,7 @@ <histogram name="Sync.SyncToSigninMigrationDecision{SyncToSigninMigrationMode}{SyncModelTypeForSyncToSigninMigration}" - enum="SyncToSigninMigrationDataTypeDecision" expires_after="2024-09-01"> + enum="SyncToSigninMigrationDataTypeDecision" expires_after="2024-11-03"> <owner>treib@chromium.org</owner> <owner>mastiz@chromium.org</owner> <summary> @@ -1628,7 +1628,7 @@ </histogram> <histogram name="Sync.SyncToSigninMigrationOutcome" enum="BooleanSuccess" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>treib@chromium.org</owner> <owner>mastiz@chromium.org</owner> <summary> @@ -1653,7 +1653,7 @@ </histogram> <histogram name="Sync.SyncToSigninMigrationOutcome.PasswordsFileMove" - enum="PlatformFileError" expires_after="2024-09-01"> + enum="PlatformFileError" expires_after="2024-11-03"> <owner>treib@chromium.org</owner> <owner>mastiz@chromium.org</owner> <summary> @@ -1665,7 +1665,7 @@ </histogram> <histogram name="Sync.SyncToSigninMigrationTime" units="ms" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>treib@chromium.org</owner> <owner>mastiz@chromium.org</owner> <summary> @@ -1737,7 +1737,7 @@ </histogram> <histogram name="Sync.TrustedVaultDeviceRegistered" enum="Boolean" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>mmoskvitin@google.com</owner> <owner>mastiz@chromium.org</owner> <summary> @@ -1749,7 +1749,7 @@ </histogram> <histogram name="Sync.TrustedVaultDeviceRegistrationOutcome" - enum="TrustedVaultDeviceRegistrationOutcome" expires_after="2024-09-01"> + enum="TrustedVaultDeviceRegistrationOutcome" expires_after="2024-11-03"> <owner>mmoskvitin@google.com</owner> <owner>mastiz@chromium.org</owner> <summary> @@ -1759,7 +1759,7 @@ </histogram> <histogram name="Sync.TrustedVaultDeviceRegistrationState" - enum="TrustedVaultDeviceRegistrationState" expires_after="2024-09-01"> + enum="TrustedVaultDeviceRegistrationState" expires_after="2024-11-03"> <owner>mmoskvitin@google.com</owner> <owner>mastiz@chromium.org</owner> <summary> @@ -1770,7 +1770,7 @@ </histogram> <histogram name="Sync.TrustedVaultDownloadKeysStatus" - enum="TrustedVaultDownloadKeysStatus" expires_after="2024-09-01"> + enum="TrustedVaultDownloadKeysStatus" expires_after="2024-11-03"> <owner>mmoskvitin@google.com</owner> <owner>mastiz@chromium.org</owner> <summary> @@ -1780,7 +1780,7 @@ </histogram> <histogram name="Sync.TrustedVaultDownloadKeysStatusV1" - enum="TrustedVaultDownloadKeysStatus" expires_after="2024-09-01"> + enum="TrustedVaultDownloadKeysStatus" expires_after="2024-11-03"> <owner>mmoskvitin@google.com</owner> <owner>mastiz@chromium.org</owner> <summary> @@ -1841,14 +1841,14 @@ </histogram> <histogram name="Sync.TrustedVaultFileReadStatus" - enum="TrustedVaultFileReadStatus" expires_after="2024-09-01"> + enum="TrustedVaultFileReadStatus" expires_after="2024-11-03"> <owner>mmoskvitin@google.com</owner> <owner>mastiz@chromium.org</owner> <summary>Recorded when reading local trusted vault file.</summary> </histogram> <histogram name="Sync.TrustedVaultFileWriteSuccess" enum="Boolean" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>mmoskvitin@google.com</owner> <owner>mastiz@chromium.org</owner> <summary> @@ -1880,7 +1880,7 @@ </histogram> <histogram name="Sync.TrustedVaultJavascriptAddRecoveryMethodSucceeded" - enum="BooleanSuccess" expires_after="2024-09-01"> + enum="BooleanSuccess" expires_after="2024-11-03"> <owner>mmoskvitin@google.com</owner> <owner>mastiz@chromium.org</owner> <summary> @@ -1891,7 +1891,7 @@ </histogram> <histogram name="Sync.TrustedVaultJavascriptAddRecoveryMethodUserKnown" - enum="BooleanKnown" expires_after="2024-09-01"> + enum="BooleanKnown" expires_after="2024-11-03"> <owner>mmoskvitin@google.com</owner> <owner>mastiz@chromium.org</owner> <summary> @@ -1902,7 +1902,7 @@ </histogram> <histogram name="Sync.TrustedVaultJavascriptAddRecoveryMethodValidArgs" - enum="BooleanValid" expires_after="2024-09-01"> + enum="BooleanValid" expires_after="2024-11-03"> <owner>mmoskvitin@google.com</owner> <owner>mastiz@chromium.org</owner> <summary> @@ -1925,7 +1925,7 @@ </histogram> <histogram name="Sync.TrustedVaultJavascriptSetEncryptionKeysValidArgs" - enum="BooleanValid" expires_after="2024-09-01"> + enum="BooleanValid" expires_after="2024-11-03"> <owner>mmoskvitin@google.com</owner> <owner>mastiz@chromium.org</owner> <summary> @@ -1936,7 +1936,7 @@ </histogram> <histogram name="Sync.TrustedVaultKeyRetrievalTrigger" - enum="TrustedVaultUserActionTrigger" expires_after="2024-09-01"> + enum="TrustedVaultUserActionTrigger" expires_after="2024-11-03"> <owner>mmoskvitin@google.com</owner> <owner>mastiz@chromium.org</owner> <summary> @@ -1975,7 +1975,7 @@ </histogram> <histogram name="Sync.TrustedVaultRecoverabilityStatusOnRequestCompletion" - enum="TrustedVaultRecoverabilityStatus" expires_after="2024-09-01"> + enum="TrustedVaultRecoverabilityStatus" expires_after="2024-11-03"> <owner>mmrashad@google.com</owner> <owner>mmoskvitin@google.com</owner> <summary>
diff --git a/tools/metrics/histograms/metadata/tab/histograms.xml b/tools/metrics/histograms/metadata/tab/histograms.xml index baf9b01c7..5257509 100644 --- a/tools/metrics/histograms/metadata/tab/histograms.xml +++ b/tools/metrics/histograms/metadata/tab/histograms.xml
@@ -62,7 +62,7 @@ </variants> <histogram name="Discarding.DailyDiscards{TabDiscardReason}" units="tabs" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>vovoy@chromium.org</owner> <owner>fdoray@chromium.org</owner> <summary> @@ -74,7 +74,7 @@ </histogram> <histogram name="Discarding.DailyReloads{TabDiscardReason}" units="tabs" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>vovoy@chromium.org</owner> <owner>fdoray@chromium.org</owner> <summary> @@ -141,7 +141,7 @@ </summary> </histogram> -<histogram name="Tab.AgeAtDeletion" units="ms" expires_after="2024-09-01"> +<histogram name="Tab.AgeAtDeletion" units="ms" expires_after="2024-11-03"> <owner>ewannpv@chromium.org</owner> <owner>gambard@chromium.org</owner> <owner>bling-team@google.com</owner> @@ -267,7 +267,7 @@ </summary> </histogram> -<histogram name="Tab.NewTab" enum="NewTabType" expires_after="2024-09-01"> +<histogram name="Tab.NewTab" enum="NewTabType" expires_after="2024-11-03"> <owner>tbergquist@chromium.org</owner> <owner>bsep@chromium.org</owner> <summary> @@ -446,7 +446,7 @@ </histogram> <histogram name="Tab.PullDownGesture" enum="PullDownGestureAction" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>gambard@chromium.org</owner> <owner>chromeleon@google.com</owner> <summary> @@ -558,7 +558,7 @@ </histogram> <histogram name="TabGroups.CollapsedGroupCountPerLoad" units="groups" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>dpenning@chromium.org</owner> <owner>chrome-desktop-ui-sea@google.com</owner> <summary> @@ -633,7 +633,7 @@ </histogram> <histogram name="TabGroups.SavedTabGroupLifespan" units="minutes" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>dljames@chromium.org</owner> <owner>chrome-desktop-ui-sea@google.com</owner> <summary> @@ -679,7 +679,7 @@ </histogram> <histogram name="TabGroups.SavedTabGroupTabCount" units="tabs" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>dljames@chromium.org</owner> <owner>chrome-desktop-ui-sea@google.com</owner> <summary> @@ -690,7 +690,7 @@ </histogram> <histogram name="TabGroups.SavedTabGroupTabTimeSinceModification" - units="minutes" expires_after="2024-09-01"> + units="minutes" expires_after="2024-11-03"> <owner>dljames@chromium.org</owner> <owner>chrome-desktop-ui-sea@google.com</owner> <summary> @@ -713,7 +713,7 @@ </histogram> <histogram name="TabGroups.TabGroupBubble.TabCount" units="tabs" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>sophiechang@chromium.org</owner> <owner>chrome-desktop-ui-sea@google.com</owner> <summary> @@ -750,7 +750,7 @@ </histogram> <histogram name="TabGroups.UnsavedTabGroupCount" units="groups" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>dljames@chromium.org</owner> <owner>chrome-desktop-ui-sea@google.com</owner> <summary> @@ -761,7 +761,7 @@ </histogram> <histogram name="TabGroups.UnsavedTabGroupTabCount" units="tabs" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>dljames@chromium.org</owner> <owner>chrome-desktop-ui-sea@google.com</owner> <summary> @@ -797,7 +797,7 @@ </histogram> <histogram name="TabGroups.UserGroupCountPerLoad" units="groups" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>dpenning@chromium.org</owner> <owner>chrome-desktop-ui-sea@google.com</owner> <summary> @@ -906,7 +906,7 @@ </histogram> <histogram name="TabManager.Discarding.DiscardToReloadTime" units="ms" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>chrisha@chromium.org</owner> <owner>catan-team@chromium.org</owner> <summary> @@ -994,7 +994,7 @@ </histogram> <histogram name="TabRestore.{RestoreType}.TimeBetweenClosedAndRestored" - units="ms" expires_after="2024-09-01"> + units="ms" expires_after="2024-11-03"> <owner>sreejakshetty@chromium.org</owner> <owner>chrome-brapp-loading@google.com</owner> <summary> @@ -1010,7 +1010,7 @@ </histogram> <histogram name="Tabs.Active.AbsolutePosition" units="index" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>emshack@chromium.org</owner> <owner>chrome-desktop-ui-sea@google.com</owner> <summary> @@ -1020,7 +1020,7 @@ </histogram> <histogram name="Tabs.Active.RelativePosition" units="%" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>emshack@chromium.org</owner> <owner>chrome-desktop-ui-sea@google.com</owner> <summary> @@ -1030,7 +1030,7 @@ </histogram> <histogram name="Tabs.ActiveCountAtStartup" units="tabs" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>alionadangla@chromium.org</owner> <owner>lpromero@chromium.org</owner> <owner>chromeleon@google.com</owner> @@ -1153,7 +1153,7 @@ </histogram> <histogram name="Tabs.InactiveCountAtStartup" units="tabs" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>alionadangla@chromium.org</owner> <owner>lpromero@chromium.org</owner> <owner>chromeleon@google.com</owner> @@ -1478,7 +1478,7 @@ </histogram> <histogram name="Tabs.PinnedCountAtStartup" units="tabs" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>ewannpv@chromium.org</owner> <owner>chromeleon@google.com</owner> <summary>[iOS] The number of pinned tabs opened at cold launch.</summary> @@ -1565,7 +1565,7 @@ </histogram> <histogram name="Tabs.RestoredFromInactiveCount" units="tabs" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>lpromero@google.com</owner> <owner>chromeleon@google.com</owner> <summary> @@ -2407,7 +2407,7 @@ </histogram> <histogram name="Tabs.{TabActiveState}TabWidth" units="px" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>dpenning@chromium.org</owner> <owner>tbergquist@chromium.org</owner> <summary> @@ -2469,7 +2469,7 @@ </histogram> <histogram name="TabStrip.Tab.{Framework}.ActivationAction" - enum="TabActivationTypes" expires_after="2024-09-01"> + enum="TabActivationTypes" expires_after="2024-11-03"> <owner>yuhengh@chromium.org</owner> <owner>tluk@chromium.org</owner> <owner>romanarora@chromium.org</owner> @@ -2505,7 +2505,7 @@ </summary> </histogram> -<histogram name="TabStrip.TimeToSwitch" units="ms" expires_after="2024-09-01"> +<histogram name="TabStrip.TimeToSwitch" units="ms" expires_after="2024-11-03"> <owner>dpenning@chromium.org</owner> <owner>chrome-desktop-ui-sea@google.com</owner> <summary>
diff --git a/tools/metrics/histograms/metadata/ukm/histograms.xml b/tools/metrics/histograms/metadata/ukm/histograms.xml index d3598b10..d29ad680 100644 --- a/tools/metrics/histograms/metadata/ukm/histograms.xml +++ b/tools/metrics/histograms/metadata/ukm/histograms.xml
@@ -23,7 +23,7 @@ <histograms> <histogram name="UKM.AppVersionDifferentWhenPurging" enum="BooleanChanged" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>jwd@google.com</owner> <owner>chrome-metrics-team@google.com</owner> <summary>
diff --git a/tools/metrics/histograms/metadata/uma/histograms.xml b/tools/metrics/histograms/metadata/uma/histograms.xml index 4838d90..05372e5e 100644 --- a/tools/metrics/histograms/metadata/uma/histograms.xml +++ b/tools/metrics/histograms/metadata/uma/histograms.xml
@@ -124,7 +124,7 @@ </histogram> <histogram name="UMA.ChildProcess.Ping.{Source}" enum="UmaChildPingStatus" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>lucnguyen@google.com</owner> <owner>src/base/metrics/OWNERS</owner> <summary> @@ -203,7 +203,7 @@ </histogram> <histogram name="UMA.ClientIdSource" enum="ClientIdSource" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>pdyson@chromium.org</owner> <owner>src/base/metrics/OWNERS</owner> <summary>The source of the client id when its creation is forced.</summary> @@ -342,7 +342,7 @@ </histogram> <histogram name="UMA.InitSequence" enum="UmaInitSequence" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>asvitkine@chromium.org</owner> <owner>src/base/metrics/OWNERS</owner> <summary> @@ -659,7 +659,7 @@ </histogram> <histogram name="UMA.PersistentHistograms.InitResult" - enum="PersistentHistogramsInitResult" expires_after="2024-09-01"> + enum="PersistentHistogramsInitResult" expires_after="2024-11-03"> <owner>asvitkine@chromium.org</owner> <owner>src/base/metrics/OWNERS</owner> <summary> @@ -669,7 +669,7 @@ </histogram> <histogram name="UMA.PrimaryUserType" enum="UserType" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>michaelpg@chromium.org</owner> <owner>yilkal@chromium.org</owner> <owner>src/base/metrics/OWNERS</owner> @@ -894,7 +894,7 @@ </histogram> <histogram name="UMA.StructuredMetrics.InternalError2" - enum="StructuredMetricsInternalError2" expires_after="2024-09-01"> + enum="StructuredMetricsInternalError2" expires_after="2024-11-03"> <owner>jongahn@chromium.org</owner> <owner>tby@chromium.org</owner> <owner>rkaplow@chromium.org</owner> @@ -922,7 +922,7 @@ </histogram> <histogram name="UMA.StructuredMetrics.NumEventsInUpload" units="count" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>jongahn@chromium.org</owner> <owner>tby@chromium.org</owner> <owner>rkaplow@chromium.org</owner> @@ -934,7 +934,7 @@ </histogram> <histogram name="UMA.StructuredMetrics.NumFilesPerExternalMetricsScan" - units="count" expires_after="2024-09-01"> + units="count" expires_after="2024-11-03"> <owner>tby@chromium.org</owner> <owner>jongahn@chromium.org</owner> <summary> @@ -957,7 +957,7 @@ </histogram> <histogram name="UMA.TruncatedEvents.UserAction" units="events" - expires_after="2024-10-28"> + expires_after="2024-11-03"> <owner>rkaplow@chromium.org</owner> <owner>src/base/metrics/OWNERS</owner> <summary> @@ -967,7 +967,7 @@ </histogram> <histogram name="UMA.UnsentLogs.Dropped" units="logs" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>holte@chromium.org</owner> <owner>asvitkine@chromium.org</owner> <owner>lucnguyen@google.com</owner> @@ -981,7 +981,7 @@ </histogram> <histogram name="UMA.UnsentLogs.DroppedSize" units="bytes" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>akirabaruah@chromium.org</owner> <owner>rkaplow@chromium.org</owner> <owner>asvitkine@chromium.org</owner>
diff --git a/tools/metrics/histograms/metadata/user_education/histograms.xml b/tools/metrics/histograms/metadata/user_education/histograms.xml index 4d4f3f6..ebc4ed0b 100644 --- a/tools/metrics/histograms/metadata/user_education/histograms.xml +++ b/tools/metrics/histograms/metadata/user_education/histograms.xml
@@ -126,7 +126,7 @@ </histogram> <histogram name="UserEducation.MessageShown.Subtype" enum="PromoSubtype" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>mickeyburks@chromium.org</owner> <owner>frizzle-team@google.com</owner> <summary> @@ -138,7 +138,7 @@ </histogram> <histogram name="UserEducation.MessageShown.Type" enum="PromoType" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>mickeyburks@chromium.org</owner> <owner>frizzle-team@google.com</owner> <summary>
diff --git a/tools/metrics/histograms/metadata/v8/histograms.xml b/tools/metrics/histograms/metadata/v8/histograms.xml index 5a69964..363ff13e 100644 --- a/tools/metrics/histograms/metadata/v8/histograms.xml +++ b/tools/metrics/histograms/metadata/v8/histograms.xml
@@ -174,7 +174,7 @@ </histogram> <histogram name="V8.CompileMicroSeconds" units="microseconds" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>yangguo@chromium.org</owner> <summary> Time spent in V8 compiler (full codegen) excluding parser. @@ -1153,7 +1153,7 @@ </histogram> <histogram name="V8.GCIncrementalMarkingReason" enum="GarbageCollectionReason" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>mlippautz@chromium.org</owner> <owner>v8-memory-sheriffs@google.com</owner> <summary>Reason an incremental marking was started in V8.</summary> @@ -1679,7 +1679,7 @@ </histogram> <histogram name="V8.UnhandledExceptionCountInWorker" enum="BooleanOccurred" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>chikamune@chromium.org</owner> <owner>sisidovski@chromium.org</owner> <owner>hiroshige@chromium.org</owner> @@ -1759,7 +1759,7 @@ </histogram> <histogram name="V8.WasmCompileFunctionMicroSeconds" units="microseconds" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>ecmziegler@chromium.org</owner> <owner>adamk@chromium.org</owner> <owner>clemensb@chromium.org</owner> @@ -1801,7 +1801,7 @@ </histogram> <histogram name="V8.WasmCompileModuleAsyncMicroSeconds" units="microseconds" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>ecmziegler@chromium.org</owner> <owner>adamk@chromium.org</owner> <owner>clemensb@chromium.org</owner> @@ -1814,7 +1814,7 @@ </histogram> <histogram name="V8.WasmCompileModuleMicroSeconds" units="microseconds" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>ecmziegler@chromium.org</owner> <owner>adamk@chromium.org</owner> <owner>clemensb@chromium.org</owner> @@ -1832,7 +1832,7 @@ </histogram> <histogram name="V8.WasmCompileModuleStreamingMicroSeconds" - units="microseconds" expires_after="2024-09-01"> + units="microseconds" expires_after="2024-11-03"> <owner>ecmziegler@chromium.org</owner> <owner>adamk@chromium.org</owner> <owner>clemensb@chromium.org</owner> @@ -1860,7 +1860,7 @@ </histogram> <histogram name="V8.WasmFinishModuleStreamingMicroSeconds" units="microseconds" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>bbudge@chromium.org</owner> <owner>clemensb@chromium.org</owner> <owner>adamk@chromium.org</owner> @@ -1876,7 +1876,7 @@ </histogram> <histogram name="V8.WasmFunctionsPerModule" units="functions" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>ecmziegler@chromium.org</owner> <owner>adamk@chromium.org</owner> <owner>clemensb@chromium.org</owner> @@ -1888,7 +1888,7 @@ </histogram> <histogram name="V8.WasmHugeFunctionSizeBytes" units="bytes" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>ecmziegler@chromium.org</owner> <owner>adamk@chromium.org</owner> <owner>clemensb@chromium.org</owner> @@ -1901,7 +1901,7 @@ </histogram> <histogram name="V8.WasmInstantiateModuleMicroSeconds" units="microseconds" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>ecmziegler@chromium.org</owner> <owner>adamk@chromium.org</owner> <owner>clemensb@chromium.org</owner> @@ -2004,7 +2004,7 @@ </histogram> <histogram name="V8.WasmMemoryProtectionKeysSupport" enum="BooleanSupported" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>clemensb@chromium.org</owner> <owner>jkummerow@chromium.org</owner> <owner>ecmziegler@chromium.org</owner> @@ -2031,7 +2031,7 @@ </histogram> <histogram name="V8.WasmModuleCodeSizeMiB" units="MB" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>ecmziegler@chromium.org</owner> <owner>adamk@chromium.org</owner> <owner>clemensb@chromium.org</owner> @@ -2043,7 +2043,7 @@ </histogram> <histogram name="V8.WasmModuleCodeSizePercentFreed" units="%" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>ecmziegler@chromium.org</owner> <owner>adamk@chromium.org</owner> <owner>clemensb@chromium.org</owner> @@ -2068,7 +2068,7 @@ </histogram> <histogram name="V8.WasmModuleNumberOfCodeSpaces" units="spaces" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>ecmziegler@chromium.org</owner> <owner>adamk@chromium.org</owner> <owner>clemensb@chromium.org</owner> @@ -2093,7 +2093,7 @@ </histogram> <histogram name="V8.WasmModulesPerEngine" units="count" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>clemensb@chromium.org</owner> <owner>ecmziegler@chromium.org</owner> <owner>wasm-v8@google.com</owner> @@ -2104,7 +2104,7 @@ </histogram> <histogram name="V8.WasmModulesPerIsolate" units="count" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>clemensb@chromium.org</owner> <owner>ecmziegler@chromium.org</owner> <owner>wasm-v8@google.com</owner>
diff --git a/tools/metrics/histograms/metadata/variations/histograms.xml b/tools/metrics/histograms/metadata/variations/histograms.xml index 6f2aabb1c..3bb1712 100644 --- a/tools/metrics/histograms/metadata/variations/histograms.xml +++ b/tools/metrics/histograms/metadata/variations/histograms.xml
@@ -23,7 +23,7 @@ <histograms> <histogram name="Variations.AppliedSeed.Size" units="bytes" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>caitlinfischer@google.com</owner> <owner>src/base/metrics/OWNERS</owner> <summary> @@ -35,7 +35,7 @@ </histogram> <histogram name="Variations.AppliedSeed.StudyCount" units="studies" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>caitlinfischer@google.com</owner> <owner>src/base/metrics/OWNERS</owner> <summary> @@ -80,7 +80,7 @@ </histogram> <histogram name="Variations.ExtendedSafeMode.BeaconFileStateAtStartup" - enum="BeaconFileState" expires_after="2024-09-01"> + enum="BeaconFileState" expires_after="2024-11-03"> <owner>caitlinfischer@google.com</owner> <owner>src/base/metrics/OWNERS</owner> <component>1456342</component> @@ -387,7 +387,7 @@ </histogram> <histogram name="Variations.SafeMode.LoadSafeSeed.Result" - enum="VariationsSeedLoadResult" expires_after="2024-09-01"> + enum="VariationsSeedLoadResult" expires_after="2024-11-03"> <owner>isherman@chromium.org</owner> <owner>asvitkine@chromium.org</owner> <owner>src/base/metrics/OWNERS</owner> @@ -441,7 +441,7 @@ </histogram> <histogram name="Variations.SafeMode.Streak.Crashes" units="crashes" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>isherman@chromium.org</owner> <owner>asvitkine@chromium.org</owner> <owner>src/base/metrics/OWNERS</owner> @@ -455,7 +455,7 @@ </histogram> <histogram name="Variations.SafeMode.Streak.FetchFailures" units="failures" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>isherman@chromium.org</owner> <owner>asvitkine@chromium.org</owner> <owner>src/base/metrics/OWNERS</owner> @@ -720,7 +720,7 @@ </histogram> <histogram name="Variations.UserChannel" enum="UserChannels" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>asvitkine@chromium.org</owner> <owner>rkaplow@chromium.org</owner> <owner>src/base/metrics/OWNERS</owner> @@ -752,7 +752,7 @@ </histogram> <histogram name="Variations.{Mode}CreateTrials.SeedExpiry" - enum="VariationsSeedExpiry" expires_after="2024-09-01"> + enum="VariationsSeedExpiry" expires_after="2024-11-03"> <owner>asvitkine@chromium.org</owner> <owner>rkaplow@chromium.org</owner> <owner>src/base/metrics/OWNERS</owner>
diff --git a/tools/metrics/histograms/metadata/views/histograms.xml b/tools/metrics/histograms/metadata/views/histograms.xml index e141dc61..e9ad9d6 100644 --- a/tools/metrics/histograms/metadata/views/histograms.xml +++ b/tools/metrics/histograms/metadata/views/histograms.xml
@@ -37,7 +37,7 @@ </variants> <histogram name="Bubble.{BubbleName}.CloseReason" enum="WidgetClosedReason" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>kerenzhu@chromium.org</owner> <owner>dayeung@chromium.org</owner> <owner>temao@chromium.org</owner> @@ -49,7 +49,7 @@ </histogram> <histogram name="Bubble.{BubbleName}.CreateToPresentationTime" units="ms" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>temao@chromium.org</owner> <owner>yuhengh@chromium.org</owner> <owner>kerenzhu@chromium.org</owner> @@ -64,7 +64,7 @@ </histogram> <histogram name="Bubble.{BubbleName}.CreateToVisibleTime" units="ms" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>temao@chromium.org</owner> <owner>yuhengh@chromium.org</owner> <owner>kerenzhu@chromium.org</owner> @@ -79,7 +79,7 @@ </histogram> <histogram name="Bubble.{BubbleName}.TimeVisible" units="ms" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>yuhengh@chromium.org</owner> <owner>kerenzhu@chromium.org</owner> <owner>dayeung@chromium.org</owner> @@ -91,7 +91,7 @@ </histogram> <histogram name="Views.ColorProviderCacheSize" units="entries" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>pkasting@chromium.org</owner> <owner>tluk@chromium.org</owner> <owner>skau@chromium.org</owner>
diff --git a/tools/metrics/histograms/metadata/virtualization/histograms.xml b/tools/metrics/histograms/metadata/virtualization/histograms.xml index 7772a10..a3e3241f 100644 --- a/tools/metrics/histograms/metadata/virtualization/histograms.xml +++ b/tools/metrics/histograms/metadata/virtualization/histograms.xml
@@ -37,7 +37,7 @@ </variants> <histogram name="Virtualization.{Name}.Disk.{Duration}.IoCount" units="count" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>uekawa@google.com</owner> <owner>takayas@google.com</owner> <summary> @@ -49,7 +49,7 @@ </histogram> <histogram name="Virtualization.{Name}.Disk.{Duration}.IoSize" units="MiB" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>uekawa@google.com</owner> <owner>takayas@google.com</owner> <summary> @@ -61,7 +61,7 @@ </histogram> <histogram name="Virtualization.{Name}.Disk.{Duration}.IoTicks" - units="Milliseconds" expires_after="2024-09-01"> + units="Milliseconds" expires_after="2024-11-03"> <owner>uekawa@google.com</owner> <owner>takayas@google.com</owner> <summary> @@ -73,7 +73,7 @@ </histogram> <histogram name="Virtualization.{Name}.Disk.{Duration}.KbPerTicks" - units="KiBPerMilliSecond" expires_after="2024-09-01"> + units="KiBPerMilliSecond" expires_after="2024-11-03"> <owner>uekawa@google.com</owner> <owner>takayas@google.com</owner> <summary> @@ -96,7 +96,7 @@ </histogram> <histogram name="Virtualization.{Name}.StartDuration" units="Milliseconds" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>abhishekbh@google.com</owner> <owner>uekawa@google.com</owner> <summary> @@ -108,7 +108,7 @@ </histogram> <histogram name="Virtualization.{Name}.StopDuration" units="Milliseconds" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>abhishekbh@google.com</owner> <owner>uekawa@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 54f3fb39..2a1d9a1 100644 --- a/tools/metrics/histograms/metadata/web_apk/histograms.xml +++ b/tools/metrics/histograms/metadata/web_apk/histograms.xml
@@ -72,7 +72,7 @@ </histogram> <histogram name="WebApk.Install.GooglePlayInstallResult" - enum="WebApkGooglePlayInstallResult" expires_after="2024-09-01"> + enum="WebApkGooglePlayInstallResult" expires_after="2024-11-03"> <owner>hartmanng@chromium.org</owner> <owner>src/chrome/android/webapk/OWNERS</owner> <summary> @@ -104,7 +104,7 @@ </histogram> <histogram name="WebApk.Install.InstallResult" enum="WebApkInstallResult" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>eirage@chromium.org</owner> <owner>hartmanng@chromium.org</owner> <owner>src/chrome/android/webapk/OWNERS</owner> @@ -196,7 +196,7 @@ </histogram> <histogram name="WebApk.ShellApkVersion2{WebApkDistributorType}" units="units" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>hartmanng@chromium.org</owner> <owner>src/chrome/android/webapk/OWNERS</owner> <summary> @@ -277,7 +277,7 @@ </histogram> <histogram name="WebApk.Uninstall{WebApkDistributorType}" enum="BooleanHit" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>hartmanng@chromium.org</owner> <owner>src/chrome/android/webapk/OWNERS</owner> <summary>
diff --git a/tools/metrics/histograms/metadata/web_audio/histograms.xml b/tools/metrics/histograms/metadata/web_audio/histograms.xml index 3eb3fb33..0ac88ac 100644 --- a/tools/metrics/histograms/metadata/web_audio/histograms.xml +++ b/tools/metrics/histograms/metadata/web_audio/histograms.xml
@@ -178,7 +178,7 @@ </histogram> <histogram name="WebAudio.AudioDestination.HardwareBufferSize" units="units" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>mjwilson@chromium.org</owner> <owner>hongchan@chromium.org</owner> <owner>src/third_party/blink/renderer/modules/webaudio/OWNERS</owner>
diff --git a/tools/metrics/histograms/metadata/web_rtc/histograms.xml b/tools/metrics/histograms/metadata/web_rtc/histograms.xml index c017484a..f3d916e 100644 --- a/tools/metrics/histograms/metadata/web_rtc/histograms.xml +++ b/tools/metrics/histograms/metadata/web_rtc/histograms.xml
@@ -159,7 +159,7 @@ </histogram> <histogram name="WebRTC.Audio.AgcClippingAdjustmentAllowed" enum="Boolean" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>hlundin@chromium.org</owner> <owner>webrtc-audio-uma@google.com</owner> <summary> @@ -268,7 +268,7 @@ </histogram> <histogram name="WebRTC.Audio.ApmCaptureOutputLevelAverageRms" - units="dBFS (negated)" expires_after="2024-09-01"> + units="dBFS (negated)" expires_after="2024-11-03"> <owner>peah@chromium.org</owner> <owner>webrtc-audio-uma@google.com</owner> <summary> @@ -281,7 +281,7 @@ </histogram> <histogram name="WebRTC.Audio.ApmCaptureOutputLevelPeakRms" - units="dBFS (negated)" expires_after="2024-09-01"> + units="dBFS (negated)" expires_after="2024-11-03"> <owner>peah@chromium.org</owner> <owner>webrtc-audio-uma@google.com</owner> <summary> @@ -326,7 +326,7 @@ </histogram> <histogram name="WebRTC.Audio.AverageExcessBufferDelayMs" units="ms" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>hlundin@chromium.org</owner> <owner>gustaf@chromium.org</owner> <owner>webrtc-audio-uma@google.com</owner> @@ -353,7 +353,7 @@ </histogram> <histogram name="WebRTC.Audio.DelayedPacketOutageEventsPerMinute" - units="events/minute" expires_after="2024-09-01"> + units="events/minute" expires_after="2024-11-03"> <owner>hlundin@chromium.org</owner> <owner>webrtc-audio-uma@google.com</owner> <summary> @@ -757,7 +757,7 @@ </histogram> <histogram name="WebRTC.BWE.InitialBandwidthEstimate" units="kbps" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>holmer@chromium.org</owner> <summary>The bandwidth estimate 2 seconds into a WebRTC call.</summary> </histogram> @@ -797,7 +797,7 @@ </histogram> <histogram name="WebRTC.BWE.RampUpTimeTo2000kbpsInMs" units="ms" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>holmer@chromium.org</owner> <summary> The time it takes the estimated bandwidth to reach 2000 kbps from the first @@ -839,7 +839,7 @@ </histogram> <histogram name="WebRTC.Call.BitrateReceivedInKbps" units="kbps" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>holmer@chromium.org</owner> <summary> Average total bitrate received during a call (audio + video + RTCP), counted @@ -867,7 +867,7 @@ </histogram> <histogram name="WebRTC.Call.PacerBitrateInKbps" units="kbps" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>holmer@chromium.org</owner> <summary> Average pacer bitrate during a call, counted from first packet sent until @@ -913,7 +913,7 @@ </histogram> <histogram name="WebRTC.Call.VideoBitrateReceivedInKbps" units="kbps" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>holmer@chromium.org</owner> <summary> Average video bitrate received during a call, counted from first packet @@ -1033,7 +1033,7 @@ </histogram> <histogram name="WebRTC.DesktopCapture.Win.DesktopCapturerImpl" - enum="WebRtcDesktopCapturerImpl" expires_after="2024-09-01"> + enum="WebRtcDesktopCapturerImpl" expires_after="2024-11-03"> <owner>alcooper@chromium.org</owner> <owner>henrika@chromium.org</owner> <owner>edgecapabilitiesdev@microsoft.com</owner> @@ -1055,7 +1055,7 @@ </histogram> <histogram name="WebRTC.DesktopCapture.Win.WgcCapturerResult" - enum="WebRtcWgcCapturerResult" expires_after="2024-09-01"> + enum="WebRtcWgcCapturerResult" expires_after="2024-11-03"> <owner>alcooper@chromium.org</owner> <owner>henrika@chromium.org</owner> <owner>edgecapabilitiesdev@microsoft.com</owner> @@ -1066,7 +1066,7 @@ </histogram> <histogram name="WebRTC.DesktopCapture.Win.WgcCaptureSessionGetFrameResult" - enum="WebRtcWgcCaptureSessionGetFrameResult" expires_after="2024-09-01"> + enum="WebRtcWgcCaptureSessionGetFrameResult" expires_after="2024-11-03"> <owner>alcooper@chromium.org</owner> <owner>henrika@chromium.org</owner> <owner>edgecapabilitiesdev@microsoft.com</owner> @@ -1076,7 +1076,7 @@ </histogram> <histogram name="WebRTC.DesktopCapture.Win.WgcCaptureSessionStartResult" - enum="WebRtcWgcCaptureSessionStartResult" expires_after="2024-09-01"> + enum="WebRtcWgcCaptureSessionStartResult" expires_after="2024-11-03"> <owner>alcooper@chromium.org</owner> <owner>henrika@chromium.org</owner> <owner>edgecapabilitiesdev@microsoft.com</owner> @@ -1101,7 +1101,7 @@ </histogram> <histogram name="WebRTC.DesktopCaptureCounters" enum="DesktopCaptureCounters" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>toprice@chromium.org</owner> <owner>webrtc-dev@chromium.org</owner> <summary> @@ -1371,7 +1371,7 @@ </histogram> <histogram name="WebRTC.PeerConnection.RtcpMux" enum="PeerConnectionRtcpMux" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>hta@chromium.org</owner> <owner>webrtc-dev@chromium.org</owner> <summary> @@ -1472,7 +1472,7 @@ </histogram> <histogram name="WebRTC.PeerConnection.ThermalThrottling" enum="Boolean" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>handellm@google.com</owner> <owner>hbos@chromium.org</owner> <summary> @@ -1614,7 +1614,7 @@ </histogram> <histogram name="WebRTC.Screenshare.ZeroHz.TimeUntilFirstFrameMs" units="ms" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>handellm@google.com</owner> <owner>ilnik@chromium.org</owner> <summary> @@ -2248,7 +2248,7 @@ <histogram name="WebRTC.Video.HardwareDecodedFramesBetweenSoftwareFallbacks{WebRtcCodecs}" - units="frames" expires_after="2024-09-01"> + units="frames" expires_after="2024-11-03"> <owner>kron@chromium.org</owner> <owner>webrtc-video@google.com</owner> <summary>
diff --git a/tools/metrics/histograms/metadata/webapps/histograms.xml b/tools/metrics/histograms/metadata/webapps/histograms.xml index cd0c97e..00a636e 100644 --- a/tools/metrics/histograms/metadata/webapps/histograms.xml +++ b/tools/metrics/histograms/metadata/webapps/histograms.xml
@@ -23,7 +23,7 @@ <histograms> <histogram name="AppBanners.BeforeInstallEvent" - enum="AppBannersBeforeInstallEvent" expires_after="2024-09-01"> + enum="AppBannersBeforeInstallEvent" expires_after="2024-11-03"> <owner>dominickn@chromium.org</owner> <owner>pjmclachlan@google.com</owner> <owner>pwa-team@google.com</owner> @@ -38,7 +38,7 @@ </histogram> <histogram name="AppBanners.DismissEvent" enum="AppBannersDismissEvent" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>pjmclachlan@google.com</owner> <owner>pcovell@google.com</owner> <summary> @@ -50,7 +50,7 @@ </histogram> <histogram name="AppBanners.DisplayEvent" enum="AppBannersDisplayEvent" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>pjmclachlan@google.com</owner> <owner>pcovell@google.com</owner> <summary> @@ -62,7 +62,7 @@ </histogram> <histogram name="AppBanners.InstallableStatusCode" enum="InstallableStatusCode" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>dominickn@chromium.org</owner> <owner>pjmclachlan@google.com</owner> <summary> @@ -75,7 +75,7 @@ </histogram> <histogram name="AppBanners.InstallEvent" enum="AppBannersInstallEvent" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>dominickn@chromium.org</owner> <owner>pjmclachlan@google.com</owner> <owner>pcovell@google.com</owner> @@ -88,7 +88,7 @@ </histogram> <histogram name="AppBanners.UserResponse" enum="AppBannersUserResponse" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>dominickn@chromium.org</owner> <owner>pjmclachlan@google.com</owner> <summary> @@ -169,7 +169,7 @@ </histogram> <histogram name="Launch.WebAppDisplayMode" enum="WebAppDisplayMode" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>peter@chromium.org</owner> <owner>yfriedman@chromium.org</owner> <summary> @@ -213,7 +213,7 @@ </histogram> <histogram name="Webapp.AddToHomescreenMediator.AppTypeToMenuEntry" - enum="AppTypeToMenuEntry" expires_after="2024-09-01"> + enum="AppTypeToMenuEntry" expires_after="2024-11-03"> <owner>finnur@chromium.org</owner> <owner>peter@chromium.org</owner> <summary> @@ -259,7 +259,7 @@ </histogram> <histogram name="Webapp.AmbientBadge.Terminate" - enum="InstallableAmbientBadgeState" expires_after="2024-09-01"> + enum="InstallableAmbientBadgeState" expires_after="2024-11-03"> <owner>eirage@chromium.org</owner> <owner>src/chrome/android/webapk/OWNERS</owner> <summary> @@ -549,7 +549,7 @@ </histogram> <histogram name="WebApp.Icon.AppsWithEmptyDownloadedIconSizes" units="web apps" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>alancutter@chromium.org</owner> <owner>pwa-team@google.com</owner> <summary> @@ -571,7 +571,7 @@ </histogram> <histogram name="WebApp.Icon.AppsWithEmptyIconFile" units="web apps" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>alancutter@chromium.org</owner> <owner>pwa-team@google.com</owner> <summary> @@ -592,7 +592,7 @@ </histogram> <histogram name="WebApp.Icon.AppsWithGeneratedIconFlag" units="web apps" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>alancutter@chromium.org</owner> <owner>pwa-team@google.com</owner> <summary> @@ -618,7 +618,7 @@ </histogram> <histogram name="WebApp.Icon.AppsWithMissingIconFile" units="web apps" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>alancutter@chromium.org</owner> <owner>pwa-team@google.com</owner> <summary> @@ -790,7 +790,7 @@ </histogram> <histogram name="Webapp.Install.InstallEvent" enum="WebappInstallSource" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>alancutter@chromium.org</owner> <owner>dominickn@chromium.org</owner> <owner>pwa-team@google.com</owner> @@ -840,7 +840,7 @@ </histogram> <histogram name="WebApp.InstallConfirmation.CloseReason" - enum="WidgetClosedReason" expires_after="2024-09-01"> + enum="WidgetClosedReason" expires_after="2024-11-03"> <owner>dmurph@chromium.org</owner> <owner>desktop-pwa-team@google.com</owner> <summary> @@ -888,7 +888,7 @@ </histogram> <histogram name="Webapp.InstallResult" enum="WebAppInstallResultCode" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <!-- Name completed by histogram_suffixes name="WebAppType" --> <owner>ortuno@chromium.org</owner> @@ -993,7 +993,7 @@ </histogram> <histogram name="WebApp.LaunchContainer" enum="AppLaunchContainer" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>phillis@chromium.org</owner> <owner>pwa-team@google.com</owner> <summary> @@ -1004,7 +1004,7 @@ </histogram> <histogram name="WebApp.Launcher.LaunchResult" - enum="WebAppLauncherLaunchResult" expires_after="2024-09-01"> + enum="WebAppLauncherLaunchResult" expires_after="2024-11-03"> <owner>davidbienvenu@chromium.org</owner> <owner>jessemckenna@google.com</owner> <summary> @@ -1119,7 +1119,7 @@ </histogram> <histogram name="WebApp.OsSettingsUninstallRegistration.Result" - enum="BooleanSuccess" expires_after="2024-06-30"> + enum="BooleanSuccess" expires_after="2024-11-03"> <owner>dmurph@chromium.org</owner> <owner>pwa-team@google.com</owner> <summary> @@ -1373,14 +1373,14 @@ </histogram> <histogram name="WebApp.Shortcuts.Creation.Result" - enum="ShortcutsCreationResult" expires_after="2024-09-01"> + enum="ShortcutsCreationResult" expires_after="2024-11-03"> <owner>phillis@chromium.org</owner> <owner>dmurph@chromium.org</owner> <summary>Records the result of shortcut creation for PWA.</summary> </histogram> <histogram name="WebApp.Shortcuts.Delete.Result" enum="BooleanSuccess" - expires_after="2024-06-30"> + expires_after="2024-11-03"> <owner>dmurph@google.com</owner> <owner>pwa-team@google.com</owner> <summary> @@ -1394,7 +1394,7 @@ </histogram> <histogram name="WebApp.Shortcuts.Update.Result" enum="BooleanSuccess" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>camdenking@google.com</owner> <owner>pwa-team@google.com</owner> <summary> @@ -1498,7 +1498,7 @@ </histogram> <histogram name="Webapp.SystemApps.FreshInstallDuration" units="ms" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>ortuno@chromium.org</owner> <owner>cros-web-apps-infra-team@google.com</owner> <summary> @@ -1603,7 +1603,7 @@ </histogram> <histogram name="Webapp.WebAppUrlLoaderPrepareForLoadResult" - enum="WebAppUrlLoaderResult" expires_after="2024-09-01"> + enum="WebAppUrlLoaderResult" expires_after="2024-11-03"> <owner>ortuno@chromium.org</owner> <owner>pwa-team@google.com</owner> <summary>Records the result of WebAppUrlLoader::PrepareForLoad().</summary>
diff --git a/tools/metrics/histograms/metadata/webauthn/histograms.xml b/tools/metrics/histograms/metadata/webauthn/histograms.xml index 6a1db32..8bf4a0f 100644 --- a/tools/metrics/histograms/metadata/webauthn/histograms.xml +++ b/tools/metrics/histograms/metadata/webauthn/histograms.xml
@@ -23,7 +23,7 @@ <histograms> <histogram name="WebAuthentication.Android.CredManAvailability" enum="Boolean" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>derinel@google.com</owner> <owner>kenrb@chromium.org</owner> <summary> @@ -53,7 +53,7 @@ </histogram> <histogram name="WebAuthentication.Android.CredManModalRequests" - enum="CredManGetRequestEnum" expires_after="2024-09-01"> + enum="CredManGetRequestEnum" expires_after="2024-11-03"> <owner>derinel@google.com</owner> <owner>kenrb@chromium.org</owner> <summary>
diff --git a/tools/metrics/histograms/metadata/windows/histograms.xml b/tools/metrics/histograms/metadata/windows/histograms.xml index 2fd9a08..4c8895141 100644 --- a/tools/metrics/histograms/metadata/windows/histograms.xml +++ b/tools/metrics/histograms/metadata/windows/histograms.xml
@@ -55,7 +55,7 @@ </histogram> <histogram name="Windows.CetEnabled" enum="BooleanEnabled" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>ajgo@chromium.org</owner> <owner>wfh@chromium.org</owner> <summary> @@ -91,7 +91,7 @@ </histogram> <histogram name="Windows.HasHighResolutionTimeTicks" enum="Boolean" - expires_after="2024-09-01"> + expires_after="2024-11-03"> <owner>brucedawson@chromium.org</owner> <owner>gab@chromium.org</owner> <summary>
diff --git a/tools/metrics/histograms/metadata/xr/histograms.xml b/tools/metrics/histograms/metadata/xr/histograms.xml index 4c1948d..abf88dc 100644 --- a/tools/metrics/histograms/metadata/xr/histograms.xml +++ b/tools/metrics/histograms/metadata/xr/histograms.xml
@@ -22,7 +22,7 @@ <histograms> -<histogram name="VRSessionTime.WebVR" units="ms" expires_after="2024-09-01"> +<histogram name="VRSessionTime.WebVR" units="ms" expires_after="2024-11-03"> <owner>alcooper@chromium.org</owner> <owner>xr-dev@chromium.org</owner> <summary>
diff --git a/tools/metrics/ukm/ukm.xml b/tools/metrics/ukm/ukm.xml index 239b091..71cf4e6 100644 --- a/tools/metrics/ukm/ukm.xml +++ b/tools/metrics/ukm/ukm.xml
@@ -24526,6 +24526,44 @@ </metric> </event> +<event name="ServiceWorker.MainResourceLoadCompleted"> + <owner>suzukikeita@chromium.org</owner> + <owner>chrome-worker@google.com</owner> + <summary> + Events taken when the main resource is loaded. This only occurs when the + static routing API is used. + </summary> + <metric name="ActualRouterSourceType" enum="ServiceWorkerRouterSourceType"> + <summary> + The actual router source type for Static Routing API. This indicates which + source type was actually used to get the resource. This will be recorded + only when the router has matched the incoming resource. + </summary> + </metric> + <metric name="MatchedFirstRouterSourceType" + enum="ServiceWorkerRouterSourceType"> + <summary> + The result of the router evaluation of the Static Routing API. This + indicates which source type is specified to get the resource. This will be + recorded only when the router has matched the incoming resource. + </summary> + </metric> + <metric name="RouterRuleCount"> + <summary> + The sum of registered router rules with the Static Routing API in main + resource. Recorded per navigation when the service worker, which has + associated routing info, is activated. This is rounded down to the nearest + exponential bucket (with a bucket ratio on 1.15). + </summary> + </metric> + <metric name="WorkerStatusOnEvaluation" enum="ServiceWorkerStatus"> + <summary> + ServiceWorker running status at the time when router evaluation is + conducted. + </summary> + </metric> +</event> + <event name="ServiceWorker.OnLoad"> <owner>yyanagisawa@chromium.org</owner> <owner>chrome-worker@google.com</owner>
diff --git a/tools/traffic_annotation/safe_list.txt b/tools/traffic_annotation/safe_list.txt index 10e42e8e..9688554 100644 --- a/tools/traffic_annotation/safe_list.txt +++ b/tools/traffic_annotation/safe_list.txt
@@ -27,6 +27,7 @@ missing,ash/birch/birch_item.cc missing,chrome/browser/ui/webui/ash/emoji/seal.cc missing,components/manta/mahi_provider.cc +missing,components/manta/sparky/sparky_provider.cc # Android-specific annotations. # TODO(crbug.com/40641204): Complete these.
diff --git a/ui/accessibility/accessibility_features.cc b/ui/accessibility/accessibility_features.cc index 4254f53..bd5b45c 100644 --- a/ui/accessibility/accessibility_features.cc +++ b/ui/accessibility/accessibility_features.cc
@@ -277,6 +277,14 @@ return base::FeatureList::IsEnabled(::features::kLayoutExtraction); } +// This feature is only used in tests and must not be enabled by default. +BASE_FEATURE(kMainNodeAnnotations, + "MainNodeAnnotations", + base::FEATURE_DISABLED_BY_DEFAULT); +bool IsMainNodeAnnotationsEnabled() { + return base::FeatureList::IsEnabled(::features::kMainNodeAnnotations); +} + BASE_FEATURE(kPdfOcr, "PdfOcr", #if BUILDFLAG(IS_CHROMEOS) @@ -406,13 +414,13 @@ return base::FeatureList::IsEnabled(::features::kScreenAITestMode); } -// This feature is only used in tests and must not be enabled by default. -BASE_FEATURE(kMainNodeAnnotations, - "MainNodeAnnotations", +BASE_FEATURE(kUseScreen2xV2, + "UseScreen2xV2", base::FEATURE_DISABLED_BY_DEFAULT); -bool IsMainNodeAnnotationsEnabled() { - return base::FeatureList::IsEnabled(::features::kMainNodeAnnotations); +bool UseScreen2xV2() { + return base::FeatureList::IsEnabled(::features::kUseScreen2xV2); } + #endif // !BUILDFLAG(IS_ANDROID) #if BUILDFLAG(IS_MAC)
diff --git a/ui/accessibility/accessibility_features.h b/ui/accessibility/accessibility_features.h index 9191864..ba9a6ba 100644 --- a/ui/accessibility/accessibility_features.h +++ b/ui/accessibility/accessibility_features.h
@@ -214,6 +214,11 @@ AX_BASE_EXPORT BASE_DECLARE_FEATURE(kLayoutExtraction); AX_BASE_EXPORT bool IsLayoutExtractionEnabled(); +// Identify and annotate the main node of the AXTree where one was not already +// provided. +AX_BASE_EXPORT BASE_DECLARE_FEATURE(kMainNodeAnnotations); +AX_BASE_EXPORT bool IsMainNodeAnnotationsEnabled(); + // Use OCR to make inaccessible (i.e. untagged) PDFs // accessibility. (Note: Due to the size of the OCR component, this feature // targets only desktop versions of Chrome for now.) @@ -297,10 +302,9 @@ AX_BASE_EXPORT BASE_DECLARE_FEATURE(kScreenAITestMode); AX_BASE_EXPORT bool IsScreenAITestModeEnabled(); -// Identify and annotate the main node of the AXTree where one was not already -// provided. -AX_BASE_EXPORT BASE_DECLARE_FEATURE(kMainNodeAnnotations); -AX_BASE_EXPORT bool IsMainNodeAnnotationsEnabled(); +// Use screen2x version 2. +AX_BASE_EXPORT BASE_DECLARE_FEATURE(kUseScreen2xV2); +AX_BASE_EXPORT bool UseScreen2xV2(); #endif // !BUILDFLAG(IS_ANDROID)