@@ -52,8 +52,8 @@ void DispatchOnLaunchedEventImpl(
52
52
app_runtime::LaunchSource source,
53
53
std::unique_ptr<base::DictionaryValue> launch_data,
54
54
BrowserContext* context) {
55
- UMA_HISTOGRAM_ENUMERATION (
56
- " Extensions.AppLaunchSource " , source, NUM_APP_LAUNCH_SOURCES );
55
+ UMA_HISTOGRAM_ENUMERATION (" Extensions.AppLaunchSource " , source,
56
+ app_runtime::LaunchSource::LAUNCH_SOURCE_LAST + 1 );
57
57
58
58
// "Forced app mode" is true for Chrome OS kiosk mode.
59
59
launch_data->SetBoolean (
@@ -76,53 +76,42 @@ void DispatchOnLaunchedEventImpl(
76
76
->SetLastLaunchTime (extension_id, base::Time::Now ());
77
77
}
78
78
79
+ #define ASSERT_ENUM_EQUAL (Name ) ASSERT_ENUM_EQUAL_FULL(Name, Name)
80
+
81
+ #define ASSERT_ENUM_EQUAL_FULL (Name, Name2 ) \
82
+ static_assert (static_cast <int >(extensions::Name) == \
83
+ static_cast <int >(app_runtime::LAUNCH_##Name2), \
84
+ " The value of extensions::" #Name \
85
+ " and app_runtime::LAUNCH_" #Name2 " should be the same" );
86
+
79
87
app_runtime::LaunchSource GetLaunchSourceEnum (
80
88
extensions::AppLaunchSource source) {
81
- switch (source) {
82
- case extensions::SOURCE_UNTRACKED:
83
- return app_runtime::LAUNCH_SOURCE_UNTRACKED;
84
- case extensions::SOURCE_APP_LAUNCHER:
85
- return app_runtime::LAUNCH_SOURCE_APP_LAUNCHER;
86
- case extensions::SOURCE_NEW_TAB_PAGE:
87
- return app_runtime::LAUNCH_SOURCE_NEW_TAB_PAGE;
88
- case extensions::SOURCE_RELOAD:
89
- return app_runtime::LAUNCH_SOURCE_RELOAD;
90
- case extensions::SOURCE_RESTART:
91
- return app_runtime::LAUNCH_SOURCE_RESTART;
92
- case extensions::SOURCE_LOAD_AND_LAUNCH:
93
- return app_runtime::LAUNCH_SOURCE_LOAD_AND_LAUNCH;
94
- case extensions::SOURCE_COMMAND_LINE:
95
- return app_runtime::LAUNCH_SOURCE_COMMAND_LINE;
96
- case extensions::SOURCE_FILE_HANDLER:
97
- return app_runtime::LAUNCH_SOURCE_FILE_HANDLER;
98
- case extensions::SOURCE_URL_HANDLER:
99
- return app_runtime::LAUNCH_SOURCE_URL_HANDLER;
100
- case extensions::SOURCE_SYSTEM_TRAY:
101
- return app_runtime::LAUNCH_SOURCE_SYSTEM_TRAY;
102
- case extensions::SOURCE_ABOUT_PAGE:
103
- return app_runtime::LAUNCH_SOURCE_ABOUT_PAGE;
104
- case extensions::SOURCE_KEYBOARD:
105
- return app_runtime::LAUNCH_SOURCE_KEYBOARD;
106
- case extensions::SOURCE_EXTENSIONS_PAGE:
107
- return app_runtime::LAUNCH_SOURCE_EXTENSIONS_PAGE;
108
- case extensions::SOURCE_MANAGEMENT_API:
109
- return app_runtime::LAUNCH_SOURCE_MANAGEMENT_API;
110
- case extensions::SOURCE_EPHEMERAL_APP_DEPRECATED:
111
- return app_runtime::LAUNCH_SOURCE_EPHEMERAL_APP;
112
- case extensions::SOURCE_BACKGROUND:
113
- return app_runtime::LAUNCH_SOURCE_BACKGROUND;
114
- case extensions::SOURCE_KIOSK:
115
- return app_runtime::LAUNCH_SOURCE_KIOSK;
116
- case extensions::SOURCE_CHROME_INTERNAL:
117
- return app_runtime::LAUNCH_SOURCE_CHROME_INTERNAL;
118
- case extensions::SOURCE_TEST:
119
- return app_runtime::LAUNCH_SOURCE_TEST;
120
- case extensions::SOURCE_INSTALLED_NOTIFICATION:
121
- return app_runtime::LAUNCH_SOURCE_INSTALLED_NOTIFICATION;
122
-
123
- default :
124
- return app_runtime::LAUNCH_SOURCE_NONE;
125
- }
89
+ ASSERT_ENUM_EQUAL (SOURCE_NONE);
90
+ ASSERT_ENUM_EQUAL (SOURCE_UNTRACKED);
91
+ ASSERT_ENUM_EQUAL (SOURCE_APP_LAUNCHER);
92
+ ASSERT_ENUM_EQUAL (SOURCE_NEW_TAB_PAGE);
93
+ ASSERT_ENUM_EQUAL (SOURCE_RELOAD);
94
+ ASSERT_ENUM_EQUAL (SOURCE_RESTART);
95
+ ASSERT_ENUM_EQUAL (SOURCE_LOAD_AND_LAUNCH);
96
+ ASSERT_ENUM_EQUAL (SOURCE_COMMAND_LINE);
97
+ ASSERT_ENUM_EQUAL (SOURCE_FILE_HANDLER);
98
+ ASSERT_ENUM_EQUAL (SOURCE_URL_HANDLER);
99
+ ASSERT_ENUM_EQUAL (SOURCE_SYSTEM_TRAY);
100
+ ASSERT_ENUM_EQUAL (SOURCE_ABOUT_PAGE);
101
+ ASSERT_ENUM_EQUAL (SOURCE_KEYBOARD);
102
+ ASSERT_ENUM_EQUAL (SOURCE_EXTENSIONS_PAGE);
103
+ ASSERT_ENUM_EQUAL (SOURCE_MANAGEMENT_API);
104
+ ASSERT_ENUM_EQUAL_FULL (SOURCE_EPHEMERAL_APP_DEPRECATED, SOURCE_EPHEMERAL_APP);
105
+ ASSERT_ENUM_EQUAL (SOURCE_BACKGROUND);
106
+ ASSERT_ENUM_EQUAL (SOURCE_KIOSK);
107
+ ASSERT_ENUM_EQUAL (SOURCE_CHROME_INTERNAL);
108
+ ASSERT_ENUM_EQUAL (SOURCE_TEST);
109
+ ASSERT_ENUM_EQUAL (SOURCE_INSTALLED_NOTIFICATION);
110
+ static_assert (extensions::NUM_APP_LAUNCH_SOURCES ==
111
+ app_runtime::LaunchSource::LAUNCH_SOURCE_LAST + 1 ,
112
+ " " );
113
+
114
+ return static_cast <app_runtime::LaunchSource>(source);
126
115
}
127
116
128
117
} // namespace
0 commit comments