Commit a149d5b6 authored by Eugene But's avatar Eugene But Committed by Commit Bot

[ios] Report User Actions on navigating to/from Settings screens

These user actions will be uploaded with crashreports as breadcrumbs to
aid with stability fixes.

This CL reuses user actions from other platforms where possible
and defines new actions where necessary.

Bug: 1082912
Change-Id: I110e9b67a986228c370ea89c65982c0d4d98c1ba
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2252857
Auto-Submit: Eugene But <eugenebut@chromium.org>
Reviewed-by: default avatarSteven Holte <holte@chromium.org>
Reviewed-by: default avatarSergio Collazos <sczs@chromium.org>
Commit-Queue: Steven Holte <holte@chromium.org>
Cr-Commit-Position: refs/heads/master@{#781573}
parent 38ec3f40
......@@ -5,11 +5,13 @@
#ifndef IOS_CHROME_BROWSER_UI_SETTINGS_ABOUT_CHROME_TABLE_VIEW_CONTROLLER_H_
#define IOS_CHROME_BROWSER_UI_SETTINGS_ABOUT_CHROME_TABLE_VIEW_CONTROLLER_H_
#import "ios/chrome/browser/ui/settings/settings_controller_protocol.h"
#import "ios/chrome/browser/ui/settings/settings_root_table_view_controller.h"
// Controller for the About Google Chrome Table View, which allows users to
// view open source licenses, terms of service, etc.
@interface AboutChromeTableViewController : SettingsRootTableViewController
@interface AboutChromeTableViewController
: SettingsRootTableViewController <SettingsControllerProtocol>
- (instancetype)init NS_DESIGNATED_INITIALIZER;
......
......@@ -8,6 +8,8 @@
#import "base/ios/block_types.h"
#import "base/mac/foundation_util.h"
#include "base/metrics/user_metrics.h"
#include "base/metrics/user_metrics_action.h"
#include "base/notreached.h"
#include "base/strings/sys_string_conversions.h"
#include "base/strings/utf_string_conversions.h"
......@@ -118,6 +120,16 @@ const CGFloat kDefaultHeight = 70;
[model setFooter:version forSectionWithIdentifier:SectionIdentifierLinks];
}
#pragma mark - SettingsControllerProtocol
- (void)reportDismissalUserAction {
base::RecordAction(base::UserMetricsAction("MobileAboutSettingsClose"));
}
- (void)reportBackUserAction {
base::RecordAction(base::UserMetricsAction("MobileAboutSettingsBack"));
}
#pragma mark - UITableViewDelegate
- (UIView*)tableView:(UITableView*)tableView
......
......@@ -5,6 +5,7 @@
#ifndef IOS_CHROME_BROWSER_UI_SETTINGS_AUTOFILL_AUTOFILL_CREDIT_CARD_TABLE_VIEW_CONTROLLER_H_
#define IOS_CHROME_BROWSER_UI_SETTINGS_AUTOFILL_AUTOFILL_CREDIT_CARD_TABLE_VIEW_CONTROLLER_H_
#import "ios/chrome/browser/ui/settings/settings_controller_protocol.h"
#import "ios/chrome/browser/ui/settings/settings_root_table_view_controller.h"
class Browser;
......@@ -12,7 +13,7 @@ class ChromeBrowserState;
// The table view for the Autofill settings.
@interface AutofillCreditCardTableViewController
: SettingsRootTableViewController
: SettingsRootTableViewController <SettingsControllerProtocol>
// The designated initializer. |browser| must not be nil.
- (instancetype)initWithBrowser:(Browser*)browser NS_DESIGNATED_INITIALIZER;
......
......@@ -123,7 +123,6 @@ typedef NS_ENUM(NSInteger, ItemType) {
self.navigationController.toolbar.accessibilityIdentifier =
kAutofillPaymentMethodsToolbarId;
base::RecordAction(base::UserMetricsAction("AutofillCreditCardsViewed"));
[self setToolbarItems:@[ [self flexibleSpace], self.addPaymentMethodButton ]
animated:YES];
[self updateUIForEditState];
......@@ -260,6 +259,16 @@ typedef NS_ENUM(NSInteger, ItemType) {
return !_personalDataManager->GetLocalCreditCards().empty();
}
#pragma mark - SettingsControllerProtocol
- (void)reportDismissalUserAction {
base::RecordAction(base::UserMetricsAction("MobileCreditCardSettingsClose"));
}
- (void)reportBackUserAction {
base::RecordAction(base::UserMetricsAction("MobileCreditCardSettingsBack"));
}
#pragma mark - SettingsRootTableViewController
- (BOOL)shouldShowEditButton {
......
......@@ -5,12 +5,14 @@
#ifndef IOS_CHROME_BROWSER_UI_SETTINGS_AUTOFILL_AUTOFILL_PROFILE_TABLE_VIEW_CONTROLLER_H_
#define IOS_CHROME_BROWSER_UI_SETTINGS_AUTOFILL_AUTOFILL_PROFILE_TABLE_VIEW_CONTROLLER_H_
#import "ios/chrome/browser/ui/settings/settings_controller_protocol.h"
#import "ios/chrome/browser/ui/settings/settings_root_table_view_controller.h"
class ChromeBrowserState;
// The TableView for the Autofill settings.
@interface AutofillProfileTableViewController : SettingsRootTableViewController
@interface AutofillProfileTableViewController
: SettingsRootTableViewController <SettingsControllerProtocol>
// The designated initializer. |browserState| must not be nil.
- (instancetype)initWithBrowserState:(ChromeBrowserState*)browserState
......
......@@ -6,6 +6,8 @@
#include "base/check.h"
#include "base/mac/foundation_util.h"
#include "base/metrics/user_metrics.h"
#include "base/metrics/user_metrics_action.h"
#include "base/strings/sys_string_conversions.h"
#include "components/autofill/core/browser/personal_data_manager.h"
#include "components/autofill/core/common/autofill_prefs.h"
......@@ -218,6 +220,16 @@ typedef NS_ENUM(NSInteger, ItemType) {
return !_personalDataManager->GetProfiles().empty();
}
#pragma mark - SettingsControllerProtocol
- (void)reportDismissalUserAction {
base::RecordAction(base::UserMetricsAction("MobileAddressesSettingsClose"));
}
- (void)reportBackUserAction {
base::RecordAction(base::UserMetricsAction("MobileAddressesSettingsBack"));
}
#pragma mark - SettingsRootTableViewController
- (BOOL)shouldShowEditButton {
......
......@@ -5,6 +5,7 @@
#ifndef IOS_CHROME_BROWSER_UI_SETTINGS_BANDWIDTH_MANAGEMENT_TABLE_VIEW_CONTROLLER_H_
#define IOS_CHROME_BROWSER_UI_SETTINGS_BANDWIDTH_MANAGEMENT_TABLE_VIEW_CONTROLLER_H_
#import "ios/chrome/browser/ui/settings/settings_controller_protocol.h"
#import "ios/chrome/browser/ui/settings/settings_root_table_view_controller.h"
class ChromeBrowserState;
......@@ -12,7 +13,7 @@ class ChromeBrowserState;
// Controller for the UI that allows the user to change settings that affect
// bandwidth usage: prefetching and the data reduction proxy.
@interface BandwidthManagementTableViewController
: SettingsRootTableViewController
: SettingsRootTableViewController <SettingsControllerProtocol>
// The designated initializer. |browserState| must not be nil.
- (instancetype)initWithBrowserState:(ChromeBrowserState*)browserState
......
......@@ -5,6 +5,8 @@
#import "ios/chrome/browser/ui/settings/bandwidth_management_table_view_controller.h"
#include "base/mac/foundation_util.h"
#include "base/metrics/user_metrics.h"
#include "base/metrics/user_metrics_action.h"
#import "components/prefs/ios/pref_observer_bridge.h"
#include "components/prefs/pref_change_registrar.h"
#include "components/prefs/pref_service.h"
......@@ -108,6 +110,16 @@ typedef NS_ENUM(NSInteger, ItemType) {
forSectionWithIdentifier:SectionIdentifierActions];
}
#pragma mark - SettingsControllerProtocol
- (void)reportDismissalUserAction {
base::RecordAction(base::UserMetricsAction("MobileBandwidthSettingsClose"));
}
- (void)reportBackUserAction {
base::RecordAction(base::UserMetricsAction("MobileBandwidthSettingsBack"));
}
#pragma mark - UITableViewDelegate
- (UIView*)tableView:(UITableView*)tableView
......
......@@ -5,13 +5,15 @@
#ifndef IOS_CHROME_BROWSER_UI_SETTINGS_CONTENT_SETTINGS_TABLE_VIEW_CONTROLLER_H_
#define IOS_CHROME_BROWSER_UI_SETTINGS_CONTENT_SETTINGS_TABLE_VIEW_CONTROLLER_H_
#import "ios/chrome/browser/ui/settings/settings_controller_protocol.h"
#import "ios/chrome/browser/ui/settings/settings_root_table_view_controller.h"
class ChromeBrowserState;
// Controller for the UI that allows the user to change content settings like
// blocking popups.
@interface ContentSettingsTableViewController : SettingsRootTableViewController
@interface ContentSettingsTableViewController
: SettingsRootTableViewController <SettingsControllerProtocol>
// The designated initializer. |browserState| must not be nil.
- (instancetype)initWithBrowserState:(ChromeBrowserState*)browserState
......
......@@ -6,6 +6,8 @@
#include "base/check_op.h"
#include "base/feature_list.h"
#include "base/metrics/user_metrics.h"
#include "base/metrics/user_metrics_action.h"
#include "components/content_settings/core/browser/host_content_settings_map.h"
#include "components/content_settings/core/common/content_settings.h"
#include "components/content_settings/core/common/content_settings_types.h"
......@@ -111,6 +113,16 @@ typedef NS_ENUM(NSInteger, ItemType) {
}
}
#pragma mark - SettingsControllerProtocol
- (void)reportDismissalUserAction {
base::RecordAction(base::UserMetricsAction("MobileContentSettingsClose"));
}
- (void)reportBackUserAction {
base::RecordAction(base::UserMetricsAction("MobileContentSettingsBack"));
}
#pragma mark - ContentSettingsTableViewController
- (TableViewItem*)blockPopupsItem {
......
......@@ -162,6 +162,10 @@ typedef NS_ENUM(NSInteger, ItemType) {
base::RecordAction(base::UserMetricsAction("MobileAccountsSettingsClose"));
}
- (void)reportBackUserAction {
base::RecordAction(base::UserMetricsAction("MobileAccountsSettingsBack"));
}
- (void)settingsWillBeDismissed {
[_alertCoordinator stop];
[self.removeAccountCoordinator stop];
......
......@@ -8,6 +8,7 @@
#import "ios/chrome/browser/ui/settings/settings_root_table_view_controller.h"
#import "ios/chrome/browser/ui/settings/google_services/google_services_settings_consumer.h"
#import "ios/chrome/browser/ui/settings/settings_controller_protocol.h"
@class GoogleServicesSettingsViewController;
@protocol GoogleServicesSettingsServiceDelegate;
......@@ -25,7 +26,8 @@
// View controller to related to Google services settings.
@interface GoogleServicesSettingsViewController
: SettingsRootTableViewController <GoogleServicesSettingsConsumer>
: SettingsRootTableViewController <GoogleServicesSettingsConsumer,
SettingsControllerProtocol>
// Presentation delegate.
@property(nonatomic, weak)
......
......@@ -63,6 +63,11 @@
base::UserMetricsAction("MobileGoogleServicesSettingsClose"));
}
- (void)reportBackUserAction {
base::RecordAction(
base::UserMetricsAction("MobileGoogleServicesSettingsBack"));
}
#pragma mark - GoogleServicesSettingsConsumer
- (void)insertSections:(NSIndexSet*)sections {
......
......@@ -165,6 +165,10 @@ typedef NS_ENUM(NSInteger, ItemType) {
NOTREACHED();
}
- (void)reportBackUserAction {
base::RecordAction(base::UserMetricsAction("MobileLanguageSettingsBack"));
}
- (void)settingsWillBeDismissed {
[self.dataSource stopObservingModel];
}
......
......@@ -6,6 +6,7 @@
#define IOS_CHROME_BROWSER_UI_SETTINGS_PASSWORD_PASSWORDS_TABLE_VIEW_CONTROLLER_H_
#import "ios/chrome/browser/ui/settings/password/password_details_table_view_controller_delegate.h"
#import "ios/chrome/browser/ui/settings/settings_controller_protocol.h"
#import "ios/chrome/browser/ui/settings/settings_navigation_controller.h"
#import "ios/chrome/browser/ui/settings/settings_root_table_view_controller.h"
......
......@@ -431,6 +431,10 @@ std::vector<std::unique_ptr<autofill::PasswordForm>> CopyOf(
base::RecordAction(base::UserMetricsAction("MobilePasswordsSettingsClose"));
}
- (void)reportBackUserAction {
base::RecordAction(base::UserMetricsAction("MobilePasswordsSettingsBack"));
}
- (void)settingsWillBeDismissed {
// Dismiss the search bar if presented, otherwise the VC will be retained by
// UIKit thus cause a memory leak.
......
......@@ -7,6 +7,7 @@
#import "ios/chrome/browser/ui/settings/privacy/cookies_status_consumer.h"
#import "ios/chrome/browser/ui/settings/privacy/cookies_status_description.h"
#import "ios/chrome/browser/ui/settings/settings_controller_protocol.h"
#import "ios/chrome/browser/ui/settings/settings_root_table_view_controller.h"
class Browser;
......@@ -28,7 +29,8 @@ extern NSString* const kPrivacyTableViewId;
@end
@interface PrivacyTableViewController
: SettingsRootTableViewController <CookiesStatusConsumer>
: SettingsRootTableViewController <CookiesStatusConsumer,
SettingsControllerProtocol>
// Presentation delegate.
@property(nonatomic, weak) id<PrivacyTableViewControllerPresentationDelegate>
......
......@@ -6,6 +6,8 @@
#include "base/check.h"
#import "base/mac/foundation_util.h"
#include "base/metrics/user_metrics.h"
#include "base/metrics/user_metrics_action.h"
#include "components/content_settings/core/common/features.h"
#include "components/handoff/pref_names_ios.h"
#import "components/prefs/ios/pref_observer_bridge.h"
......@@ -211,6 +213,16 @@ const char kGoogleServicesSettingsURL[] = "settings://open_google_services";
return detailItem;
}
#pragma mark - SettingsControllerProtocol
- (void)reportDismissalUserAction {
base::RecordAction(base::UserMetricsAction("MobilePrivacySettingsClose"));
}
- (void)reportBackUserAction {
base::RecordAction(base::UserMetricsAction("MobilePrivacySettingsBack"));
}
#pragma mark - UITableViewDelegate
- (UIView*)tableView:(UITableView*)tableView
......
......@@ -5,12 +5,14 @@
#ifndef IOS_CHROME_BROWSER_UI_SETTINGS_SEARCH_ENGINE_TABLE_VIEW_CONTROLLER_H_
#define IOS_CHROME_BROWSER_UI_SETTINGS_SEARCH_ENGINE_TABLE_VIEW_CONTROLLER_H_
#import "ios/chrome/browser/ui/settings/settings_controller_protocol.h"
#import "ios/chrome/browser/ui/settings/settings_root_table_view_controller.h"
class ChromeBrowserState;
// This class is the table view for the Search Engine settings.
@interface SearchEngineTableViewController : SettingsRootTableViewController
@interface SearchEngineTableViewController
: SettingsRootTableViewController <SettingsControllerProtocol>
// The designated initializer. |browserState| must not be nil.
- (instancetype)initWithBrowserState:(ChromeBrowserState*)browserState
......
......@@ -8,6 +8,8 @@
#include "base/mac/foundation_util.h"
#include "base/metrics/histogram_macros.h"
#include "base/metrics/user_metrics.h"
#include "base/metrics/user_metrics_action.h"
#include "base/strings/sys_string_conversions.h"
#include "components/search_engines/template_url_service.h"
#include "components/search_engines/template_url_service_observer.h"
......@@ -213,6 +215,17 @@ const char kUmaSelectDefaultSearchEngine[] =
}
}
#pragma mark - SettingsControllerProtocol
- (void)reportDismissalUserAction {
base::RecordAction(
base::UserMetricsAction("MobileSearchEngineSettingsClose"));
}
- (void)reportBackUserAction {
base::RecordAction(base::UserMetricsAction("MobileSearchEngineSettingsBack"));
}
#pragma mark - SettingsRootTableViewController
- (void)deleteItems:(NSArray<NSIndexPath*>*)indexPaths {
......
......@@ -16,6 +16,10 @@
// method and report dismissal User Action.
- (void)reportDismissalUserAction;
// Called when user goes back to SettingsTableViewController. View controllers
// must implement this method and report appropriate User Action.
- (void)reportBackUserAction;
@optional
// Notifies the controller that the settings screen is being dismissed.
......
......@@ -461,6 +461,13 @@ NSString* const kSettingsDoneButtonId = @"kSettingsDoneButtonId";
- (void)navigationController:(UINavigationController*)navigationController
willShowViewController:(UIViewController*)viewController
animated:(BOOL)animated {
if ([viewController isMemberOfClass:[SettingsTableViewController class]] &&
[self.currentPresentedViewController
conformsToProtocol:@protocol(SettingsControllerProtocol)]) {
// Navigated back to SettingsTableViewController.
[self.currentPresentedViewController
performSelector:@selector(reportBackUserAction)];
}
self.currentPresentedViewController = base::mac::ObjCCast<
UIViewController<UIAdaptivePresentationControllerDelegate>>(
viewController);
......
......@@ -821,25 +821,32 @@ NSString* kDevViewSourceKey = @"DevViewSource";
closeSettingsOnAddAccount:NO];
break;
case ItemGoogleServices:
base::RecordAction(base::UserMetricsAction("Settings.GoogleServices"));
[self showSyncGoogleService];
break;
case ItemTypeSearchEngine:
base::RecordAction(base::UserMetricsAction("EditSearchEngines"));
controller = [[SearchEngineTableViewController alloc]
initWithBrowserState:_browserState];
break;
case ItemTypePasswords:
base::RecordAction(
base::UserMetricsAction("Options_ShowPasswordManager"));
controller = [[PasswordsTableViewController alloc]
initWithBrowserState:_browserState];
break;
case ItemTypeAutofillCreditCard:
base::RecordAction(base::UserMetricsAction("AutofillCreditCardsViewed"));
controller = [[AutofillCreditCardTableViewController alloc]
initWithBrowser:_browser];
break;
case ItemTypeAutofillProfile:
base::RecordAction(base::UserMetricsAction("AutofillAddressesViewed"));
controller = [[AutofillProfileTableViewController alloc]
initWithBrowserState:_browserState];
break;
case ItemTypeVoiceSearch:
base::RecordAction(base::UserMetricsAction("Settings.VoiceSearch"));
controller = [[VoiceSearchTableViewController alloc]
initWithPrefs:_browserState->GetPrefs()];
break;
......@@ -847,9 +854,11 @@ NSString* kDevViewSourceKey = @"DevViewSource";
[self showSafetyCheck];
break;
case ItemTypePrivacy:
base::RecordAction(base::UserMetricsAction("Settings.Privacy"));
[self showPrivacy];
break;
case ItemTypeLanguageSettings: {
base::RecordAction(base::UserMetricsAction("Settings.Language"));
LanguageSettingsMediator* mediator =
[[LanguageSettingsMediator alloc] initWithBrowserState:_browserState];
LanguageSettingsTableViewController* languageSettingsTableViewController =
......@@ -861,14 +870,17 @@ NSString* kDevViewSourceKey = @"DevViewSource";
break;
}
case ItemTypeContentSettings:
base::RecordAction(base::UserMetricsAction("Settings.ContentSettings"));
controller = [[ContentSettingsTableViewController alloc]
initWithBrowserState:_browserState];
break;
case ItemTypeBandwidth:
base::RecordAction(base::UserMetricsAction("Settings.Bandwidth"));
controller = [[BandwidthManagementTableViewController alloc]
initWithBrowserState:_browserState];
break;
case ItemTypeAboutChrome:
base::RecordAction(base::UserMetricsAction("AboutChrome"));
controller = [[AboutChromeTableViewController alloc] init];
break;
case ItemTypeMemoryDebugging:
......@@ -1125,6 +1137,11 @@ NSString* kDevViewSourceKey = @"DevViewSource";
base::RecordAction(base::UserMetricsAction("MobileSettingsClose"));
}
- (void)reportBackUserAction {
// Not called for root settings controller.
NOTREACHED();
}
- (void)settingsWillBeDismissed {
DCHECK(!_settingsHasBeenDismissed);
......
......@@ -515,6 +515,10 @@ const CGFloat kSpinnerButtonPadding = 18;
base::UserMetricsAction("MobileSyncPassphraseSettingsClose"));
}
- (void)reportBackUserAction {
NOTREACHED();
}
- (void)settingsWillBeDismissed {
[self stopObserving];
}
......
......@@ -5,12 +5,14 @@
#ifndef IOS_CHROME_BROWSER_UI_SETTINGS_VOICE_SEARCH_TABLE_VIEW_CONTROLLER_H_
#define IOS_CHROME_BROWSER_UI_SETTINGS_VOICE_SEARCH_TABLE_VIEW_CONTROLLER_H_
#import "ios/chrome/browser/ui/settings/settings_controller_protocol.h"
#import "ios/chrome/browser/ui/settings/settings_root_table_view_controller.h"
class PrefService;
// Table view controller for the voice search language selection.
@interface VoiceSearchTableViewController : SettingsRootTableViewController
@interface VoiceSearchTableViewController
: SettingsRootTableViewController <SettingsControllerProtocol>
// The designated initializer.
- (instancetype)initWithPrefs:(PrefService*)prefs NS_DESIGNATED_INITIALIZER;
......
......@@ -6,6 +6,8 @@
#include "base/check_op.h"
#include "base/mac/foundation_util.h"
#include "base/metrics/user_metrics.h"
#include "base/metrics/user_metrics_action.h"
#include "base/strings/sys_string_conversions.h"
#include "components/prefs/pref_member.h"
#include "components/prefs/pref_service.h"
......@@ -127,6 +129,16 @@ typedef NS_ENUM(NSInteger, ItemType) {
}
}
#pragma mark - SettingsControllerProtocol
- (void)reportDismissalUserAction {
base::RecordAction(base::UserMetricsAction("MobileVoiceSearchSettingsClose"));
}
- (void)reportBackUserAction {
base::RecordAction(base::UserMetricsAction("MobileVoiceSearchSettingsBack"));
}
#pragma mark - UITableViewDelegate
- (UITableViewCell*)tableView:(UITableView*)tableView
......
......@@ -12316,6 +12316,32 @@ should be able to be added at any place in this file.
</description>
</action>
<action name="MobileAboutSettingsBack">
<owner>eugenebut@chromium.org</owner>
<owner>sczs@chromium.org</owner>
<description>
Reported when user goes back from Chrome About Settings UI to root Settings
screen. iOS only.
</description>
</action>
<action name="MobileAboutSettingsClose">
<owner>eugenebut@chromium.org</owner>
<owner>sczs@chromium.org</owner>
<description>
Reported when Chrome About Settings UI was dismissed. iOS only.
</description>
</action>
<action name="MobileAccountsSettingsBack">
<owner>msarda@chromium.org</owner>
<owner>jlebel@chromium.org</owner>
<description>
Reported when user goes back from Accounts Settings UI to root Settings
screen. iOS only.
</description>
</action>
<action name="MobileAccountsSettingsClose">
<owner>msarda@chromium.org</owner>
<owner>jlebel@chromium.org</owner>
......@@ -12419,6 +12445,40 @@ should be able to be added at any place in this file.
</description>
</action>
<action name="MobileAddressesSettingsBack">
<owner>olivierrobin@chromium.org</owner>
<owner>sczs@chromium.org</owner>
<description>
Reported when user goes back from Addresses Settings UI to root Settings
screen. iOS only.
</description>
</action>
<action name="MobileAddressesSettingsClose">
<owner>olivierrobin@chromium.org</owner>
<owner>sczs@chromium.org</owner>
<description>
Reported when Addresses Settings UI was dismissed. iOS only.
</description>
</action>
<action name="MobileBandwidthSettingsBack">
<owner>eugenebut@chromium.org</owner>
<owner>sczs@chromium.org</owner>
<description>
Reported when user goes back from Bandwidth Settings UI to root Settings
screen. iOS only.
</description>
</action>
<action name="MobileBandwidthSettingsClose">
<owner>eugenebut@chromium.org</owner>
<owner>sczs@chromium.org</owner>
<description>
Reported when Bandwidth Settings UI was dismissed. iOS only.
</description>
</action>
<action name="MobileBeamCallbackSuccess">
<obsolete>Deprecated as of 1/2020</obsolete>
<owner>Please list the metric's owners. Add more owner tags as needed.</owner>
......@@ -12736,6 +12796,23 @@ should be able to be added at any place in this file.
</description>
</action>
<action name="MobileContentSettingsBack">
<owner>eugenebut@chromium.org</owner>
<owner>sczs@chromium.org</owner>
<description>
Reported when user goes back from Content Settings UI to root Settings
screen. iOS only.
</description>
</action>
<action name="MobileContentSettingsClose">
<owner>eugenebut@chromium.org</owner>
<owner>sczs@chromium.org</owner>
<description>
s Reported when Content Settings UI was dismissed. iOS only.
</description>
</action>
<action name="MobileContextMenuCopyImageLinkAddress">
<obsolete>Deprecated as of 8/2015</obsolete>
<owner>Please list the metric's owners. Add more owner tags as needed.</owner>
......@@ -12895,6 +12972,23 @@ should be able to be added at any place in this file.
</description>
</action>
<action name="MobileCreditCardSettingsBack">
<owner>olivierrobin@chromium.org</owner>
<owner>sczs@chromium.org</owner>
<description>
Reported when user goes back from Credit Card Settings UI to root Settings
screen. iOS only.
</description>
</action>
<action name="MobileCreditCardSettingsClose">
<owner>olivierrobin@chromium.org</owner>
<owner>sczs@chromium.org</owner>
<description>
Reported when Credit Card Settings UI was dismissed. iOS only.
</description>
</action>
<action name="MobileCustomFeedback">
<obsolete>
Deprecated 12/2018. CustomFeedback never shipped to 100% and is no longer
......@@ -13052,6 +13146,15 @@ should be able to be added at any place in this file.
</description>
</action>
<action name="MobileGoogleServicesSettingsBack">
<owner>eugenebut@chromium.org</owner>
<owner>sczs@chromium.org</owner>
<description>
Reported when user goes back from Google Services Settings UI to root
Settings screen. iOS only.
</description>
</action>
<action name="MobileGoogleServicesSettingsClose">
<owner>msarda@chromium.org</owner>
<owner>jlebel@chromium.org</owner>
......@@ -13872,6 +13975,15 @@ should be able to be added at any place in this file.
<description>Please enter the description of this user action.</description>
</action>
<action name="MobilePasswordsSettingsBack">
<owner>eugenebut@chromium.org</owner>
<owner>sczs@chromium.org</owner>
<description>
Reported when user goes back from Passwords Settings UI to root Settings
screen. iOS only.
</description>
</action>
<action name="MobilePasswordsSettingsClose">
<owner>djean@chromium.org</owner>
<owner>javierrobles@chromium.org</owner>
......@@ -13919,6 +14031,23 @@ should be able to be added at any place in this file.
<description>User closes the tab while preview page is loaded.</description>
</action>
<action name="MobilePrivacySettingsBack">
<owner>msramek@chromium.org</owner>
<owner>sczs@chromium.org</owner>
<description>
Reported when user goes back from Privacy Settings UI to root Settings
screen. iOS only.
</description>
</action>
<action name="MobilePrivacySettingsClose">
<owner>msramek@chromium.org</owner>
<owner>sczs@chromium.org</owner>
<description>
Reported when Privacy Settings UI was dismissed. iOS only.
</description>
</action>
<action name="MobilePullGestureCloseTab">
<owner>eugenebut@chromium.org</owner>
<owner>michaeldo@chromium.org</owner>
......@@ -14130,6 +14259,23 @@ should be able to be added at any place in this file.
</description>
</action>
<action name="MobileSearchEngineSettingsBack">
<owner>eugenebut@chromium.org</owner>
<owner>sczs@chromium.org</owner>
<description>
Reported when user goes back from Search Engine Settings UI to root Settings
screen. iOS only.
</description>
</action>
<action name="MobileSearchEngineSettingsClose">
<owner>eugenebut@chromium.org</owner>
<owner>sczs@chromium.org</owner>
<description>
Reported when Search Engine Settings UI was dismissed. iOS only.
</description>
</action>
<action name="MobileSettingsClose">
<owner>edchin@chromium.org</owner>
<owner>gambard@chromium.org</owner>
......@@ -14888,6 +15034,23 @@ should be able to be added at any place in this file.
</description>
</action>
<action name="MobileVoiceSearchSettingsBack">
<owner>rohitrao@chromium.org</owner>
<owner>sczs@chromium.org</owner>
<description>
Reported when user goes back from Voice Search Settings UI to root Settings
screen. iOS only.
</description>
</action>
<action name="MobileVoiceSearchSettingsClose">
<owner>rohitrao@chromium.org</owner>
<owner>sczs@chromium.org</owner>
<description>
Reported when Voice Search Settings UI was dismissed. iOS only.
</description>
</action>
<action name="MobileWebContextMenuCopyImage">
<owner>eugenebut@chromium.org</owner>
<owner>michaeldo@chromium.org</owner>
......@@ -19794,6 +19957,30 @@ should be able to be added at any place in this file.
</description>
</action>
<action name="Settings.Bandwidth">
<owner>eugenebut@chromium.org</owner>
<owner>sczs@chromium.org</owner>
<description>
Reported when user navigates to Bandwidth Settings. iOS only.
</description>
</action>
<action name="Settings.ContentSettings">
<owner>eugenebut@chromium.org</owner>
<owner>sczs@chromium.org</owner>
<description>
Reported when user navigates to Content Settings. iOS only.
</description>
</action>
<action name="Settings.GoogleServices">
<owner>jlebel@chromium.org</owner>
<owner>fernandex@chromium.org</owner>
<description>
Reported when user navigates to Google Services Settings. iOS only.
</description>
</action>
<action name="Settings.Homepage.LocationChanged">
<obsolete>
Removed as original metrics is over counting. Replaced with
......@@ -19841,6 +20028,14 @@ should be able to be added at any place in this file.
</description>
</action>
<action name="Settings.Privacy">
<owner>thgreenfrog@chromium.org</owner>
<owner>sczs@chromium.org</owner>
<description>
Reported when user navigates to Language Settings. iOS only.
</description>
</action>
<action name="Settings.SafetyCheck.ManagePasswords">
<owner>rainhard@chromium.org</owner>
<owner>andzaytsev@google.com</owner>
......@@ -19893,6 +20088,14 @@ should be able to be added at any place in this file.
</description>
</action>
<action name="Settings.VoiceSearch">
<owner>rohitrao@chromium.org</owner>
<owner>sczs@chromium.org</owner>
<description>
Reported when user navigates to Voice Search Settings. iOS only.
</description>
</action>
<action name="Settings_A11y_ShelfNavigationButtonsLearnMoreClicked">
<owner>gzadina@chromium.org</owner>
<owner>tbarzic@chromium.org</owner>
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment