proto_enum_conversions.cc 31 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799
  1. // Copyright (c) 2012 The Chromium Authors. All rights reserved.
  2. // Use of this source code is governed by a BSD-style license that can be
  3. // found in the LICENSE file.
  4. #include "components/sync/protocol/proto_enum_conversions.h"
  5. #include "base/logging.h"
  6. #include "base/notreached.h"
  7. namespace syncer {
  8. #define ASSERT_ENUM_BOUNDS(enum_parent, enum_type, enum_min, enum_max) \
  9. static_assert(enum_parent::enum_type##_MIN == enum_parent::enum_min, \
  10. #enum_type "_MIN should be " #enum_min); \
  11. static_assert(enum_parent::enum_type##_MAX == enum_parent::enum_max, \
  12. #enum_type "_MAX should be " #enum_max);
  13. #define ENUM_CASE(enum_parent, enum_value) \
  14. case enum_parent::enum_value: \
  15. return #enum_value
  16. const char* ProtoEnumToString(
  17. sync_pb::AppListSpecifics::AppListItemType item_type) {
  18. ASSERT_ENUM_BOUNDS(sync_pb::AppListSpecifics, AppListItemType, TYPE_APP,
  19. TYPE_PAGE_BREAK);
  20. switch (item_type) {
  21. ENUM_CASE(sync_pb::AppListSpecifics, TYPE_APP);
  22. ENUM_CASE(sync_pb::AppListSpecifics, TYPE_REMOVE_DEFAULT_APP);
  23. ENUM_CASE(sync_pb::AppListSpecifics, TYPE_FOLDER);
  24. ENUM_CASE(sync_pb::AppListSpecifics, TYPE_OBSOLETE_URL);
  25. ENUM_CASE(sync_pb::AppListSpecifics, TYPE_PAGE_BREAK);
  26. }
  27. NOTREACHED();
  28. return "";
  29. }
  30. const char* ProtoEnumToString(sync_pb::AppSpecifics::LaunchType launch_type) {
  31. ASSERT_ENUM_BOUNDS(sync_pb::AppSpecifics, LaunchType, PINNED, WINDOW);
  32. switch (launch_type) {
  33. ENUM_CASE(sync_pb::AppSpecifics, PINNED);
  34. ENUM_CASE(sync_pb::AppSpecifics, REGULAR);
  35. ENUM_CASE(sync_pb::AppSpecifics, FULLSCREEN);
  36. ENUM_CASE(sync_pb::AppSpecifics, WINDOW);
  37. }
  38. NOTREACHED();
  39. return "";
  40. }
  41. const char* ProtoEnumToString(
  42. sync_pb::AutofillProfileSpecifics::VerificationStatus status) {
  43. ASSERT_ENUM_BOUNDS(sync_pb::AutofillProfileSpecifics, VerificationStatus,
  44. VERIFICATION_STATUS_UNSPECIFIED, SERVER_PARSED);
  45. switch (status) {
  46. ENUM_CASE(sync_pb::AutofillProfileSpecifics,
  47. VERIFICATION_STATUS_UNSPECIFIED);
  48. ENUM_CASE(sync_pb::AutofillProfileSpecifics, PARSED);
  49. ENUM_CASE(sync_pb::AutofillProfileSpecifics, FORMATTED);
  50. ENUM_CASE(sync_pb::AutofillProfileSpecifics, OBSERVED);
  51. ENUM_CASE(sync_pb::AutofillProfileSpecifics, USER_VERIFIED);
  52. ENUM_CASE(sync_pb::AutofillProfileSpecifics, SERVER_PARSED);
  53. }
  54. NOTREACHED();
  55. return "";
  56. }
  57. const char* ProtoEnumToString(
  58. sync_pb::AutofillWalletSpecifics::WalletInfoType wallet_info_type) {
  59. ASSERT_ENUM_BOUNDS(sync_pb::AutofillWalletSpecifics, WalletInfoType, UNKNOWN,
  60. CREDIT_CARD_CLOUD_TOKEN_DATA);
  61. switch (wallet_info_type) {
  62. ENUM_CASE(sync_pb::AutofillWalletSpecifics, UNKNOWN);
  63. ENUM_CASE(sync_pb::AutofillWalletSpecifics, MASKED_CREDIT_CARD);
  64. ENUM_CASE(sync_pb::AutofillWalletSpecifics, POSTAL_ADDRESS);
  65. ENUM_CASE(sync_pb::AutofillWalletSpecifics, CUSTOMER_DATA);
  66. ENUM_CASE(sync_pb::AutofillWalletSpecifics, CREDIT_CARD_CLOUD_TOKEN_DATA);
  67. }
  68. NOTREACHED();
  69. return "";
  70. }
  71. const char* ProtoEnumToString(sync_pb::BookmarkSpecifics::Type type) {
  72. ASSERT_ENUM_BOUNDS(sync_pb::BookmarkSpecifics, Type, UNSPECIFIED, FOLDER);
  73. switch (type) {
  74. ENUM_CASE(sync_pb::BookmarkSpecifics, UNSPECIFIED);
  75. ENUM_CASE(sync_pb::BookmarkSpecifics, URL);
  76. ENUM_CASE(sync_pb::BookmarkSpecifics, FOLDER);
  77. }
  78. NOTREACHED();
  79. return "";
  80. }
  81. const char* ProtoEnumToString(
  82. sync_pb::CommitResponse::ResponseType response_type) {
  83. ASSERT_ENUM_BOUNDS(sync_pb::CommitResponse, ResponseType, SUCCESS,
  84. TRANSIENT_ERROR);
  85. switch (response_type) {
  86. ENUM_CASE(sync_pb::CommitResponse, SUCCESS);
  87. ENUM_CASE(sync_pb::CommitResponse, CONFLICT);
  88. ENUM_CASE(sync_pb::CommitResponse, RETRY);
  89. ENUM_CASE(sync_pb::CommitResponse, INVALID_MESSAGE);
  90. ENUM_CASE(sync_pb::CommitResponse, OVER_QUOTA);
  91. ENUM_CASE(sync_pb::CommitResponse, TRANSIENT_ERROR);
  92. }
  93. NOTREACHED();
  94. return "";
  95. }
  96. const char* ProtoEnumToString(
  97. sync_pb::ContactInfoSpecifics::VerificationStatus verification_status) {
  98. ASSERT_ENUM_BOUNDS(sync_pb::ContactInfoSpecifics, VerificationStatus,
  99. VERIFICATION_STATUS_UNSPECIFIED, SERVER_PARSED);
  100. switch (verification_status) {
  101. ENUM_CASE(sync_pb::ContactInfoSpecifics, VERIFICATION_STATUS_UNSPECIFIED);
  102. ENUM_CASE(sync_pb::ContactInfoSpecifics, PARSED);
  103. ENUM_CASE(sync_pb::ContactInfoSpecifics, FORMATTED);
  104. ENUM_CASE(sync_pb::ContactInfoSpecifics, OBSERVED);
  105. ENUM_CASE(sync_pb::ContactInfoSpecifics, USER_VERIFIED);
  106. ENUM_CASE(sync_pb::ContactInfoSpecifics, SERVER_PARSED);
  107. }
  108. NOTREACHED();
  109. return "";
  110. }
  111. const char* ProtoEnumToString(
  112. sync_pb::GetUpdatesCallerInfo::GetUpdatesSource updates_source) {
  113. ASSERT_ENUM_BOUNDS(sync_pb::GetUpdatesCallerInfo, GetUpdatesSource, UNKNOWN,
  114. PROGRAMMATIC);
  115. switch (updates_source) {
  116. ENUM_CASE(sync_pb::GetUpdatesCallerInfo, UNKNOWN);
  117. ENUM_CASE(sync_pb::GetUpdatesCallerInfo, FIRST_UPDATE);
  118. ENUM_CASE(sync_pb::GetUpdatesCallerInfo, LOCAL);
  119. ENUM_CASE(sync_pb::GetUpdatesCallerInfo, NOTIFICATION);
  120. ENUM_CASE(sync_pb::GetUpdatesCallerInfo, PERIODIC);
  121. ENUM_CASE(sync_pb::GetUpdatesCallerInfo, SYNC_CYCLE_CONTINUATION);
  122. ENUM_CASE(sync_pb::GetUpdatesCallerInfo, NEWLY_SUPPORTED_DATATYPE);
  123. ENUM_CASE(sync_pb::GetUpdatesCallerInfo, MIGRATION);
  124. ENUM_CASE(sync_pb::GetUpdatesCallerInfo, NEW_CLIENT);
  125. ENUM_CASE(sync_pb::GetUpdatesCallerInfo, RECONFIGURATION);
  126. ENUM_CASE(sync_pb::GetUpdatesCallerInfo, DATATYPE_REFRESH);
  127. ENUM_CASE(sync_pb::GetUpdatesCallerInfo, RETRY);
  128. ENUM_CASE(sync_pb::GetUpdatesCallerInfo, PROGRAMMATIC);
  129. }
  130. NOTREACHED();
  131. return "";
  132. }
  133. const char* ProtoEnumToString(sync_pb::NigoriSpecifics::PassphraseType type) {
  134. ASSERT_ENUM_BOUNDS(sync_pb::NigoriSpecifics, PassphraseType, UNKNOWN,
  135. TRUSTED_VAULT_PASSPHRASE);
  136. switch (type) {
  137. ENUM_CASE(sync_pb::NigoriSpecifics, UNKNOWN);
  138. ENUM_CASE(sync_pb::NigoriSpecifics, IMPLICIT_PASSPHRASE);
  139. ENUM_CASE(sync_pb::NigoriSpecifics, KEYSTORE_PASSPHRASE);
  140. ENUM_CASE(sync_pb::NigoriSpecifics, FROZEN_IMPLICIT_PASSPHRASE);
  141. ENUM_CASE(sync_pb::NigoriSpecifics, CUSTOM_PASSPHRASE);
  142. ENUM_CASE(sync_pb::NigoriSpecifics, TRUSTED_VAULT_PASSPHRASE);
  143. }
  144. NOTREACHED();
  145. return "";
  146. }
  147. const char* ProtoEnumToString(
  148. sync_pb::ReadingListSpecifics::ReadingListEntryStatus status) {
  149. ASSERT_ENUM_BOUNDS(sync_pb::ReadingListSpecifics, ReadingListEntryStatus,
  150. UNREAD, UNSEEN);
  151. switch (status) {
  152. ENUM_CASE(sync_pb::ReadingListSpecifics, UNREAD);
  153. ENUM_CASE(sync_pb::ReadingListSpecifics, READ);
  154. ENUM_CASE(sync_pb::ReadingListSpecifics, UNSEEN);
  155. }
  156. NOTREACHED();
  157. return "";
  158. }
  159. const char* ProtoEnumToString(
  160. sync_pb::SavedTabGroup::SavedTabGroupColor color) {
  161. ASSERT_ENUM_BOUNDS(sync_pb::SavedTabGroup, SavedTabGroupColor,
  162. SAVED_TAB_GROUP_COLOR_UNSPECIFIED,
  163. SAVED_TAB_GROUP_COLOR_ORANGE);
  164. switch (color) {
  165. ENUM_CASE(sync_pb::SavedTabGroup, SAVED_TAB_GROUP_COLOR_UNSPECIFIED);
  166. ENUM_CASE(sync_pb::SavedTabGroup, SAVED_TAB_GROUP_COLOR_GREY);
  167. ENUM_CASE(sync_pb::SavedTabGroup, SAVED_TAB_GROUP_COLOR_BLUE);
  168. ENUM_CASE(sync_pb::SavedTabGroup, SAVED_TAB_GROUP_COLOR_RED);
  169. ENUM_CASE(sync_pb::SavedTabGroup, SAVED_TAB_GROUP_COLOR_YELLOW);
  170. ENUM_CASE(sync_pb::SavedTabGroup, SAVED_TAB_GROUP_COLOR_GREEN);
  171. ENUM_CASE(sync_pb::SavedTabGroup, SAVED_TAB_GROUP_COLOR_PINK);
  172. ENUM_CASE(sync_pb::SavedTabGroup, SAVED_TAB_GROUP_COLOR_PURPLE);
  173. ENUM_CASE(sync_pb::SavedTabGroup, SAVED_TAB_GROUP_COLOR_CYAN);
  174. ENUM_CASE(sync_pb::SavedTabGroup, SAVED_TAB_GROUP_COLOR_ORANGE);
  175. }
  176. NOTREACHED();
  177. return "";
  178. }
  179. const char* ProtoEnumToString(
  180. sync_pb::SearchEngineSpecifics::ActiveStatus is_active) {
  181. ASSERT_ENUM_BOUNDS(sync_pb::SearchEngineSpecifics, ActiveStatus,
  182. ACTIVE_STATUS_UNSPECIFIED, ACTIVE_STATUS_FALSE);
  183. switch (is_active) {
  184. ENUM_CASE(sync_pb::SearchEngineSpecifics, ACTIVE_STATUS_UNSPECIFIED);
  185. ENUM_CASE(sync_pb::SearchEngineSpecifics, ACTIVE_STATUS_TRUE);
  186. ENUM_CASE(sync_pb::SearchEngineSpecifics, ACTIVE_STATUS_FALSE);
  187. }
  188. NOTREACHED();
  189. return "";
  190. }
  191. const char* ProtoEnumToString(sync_pb::SessionTab::FaviconType favicon_type) {
  192. ASSERT_ENUM_BOUNDS(sync_pb::SessionTab, FaviconType, TYPE_WEB_FAVICON,
  193. TYPE_WEB_FAVICON);
  194. switch (favicon_type) { ENUM_CASE(sync_pb::SessionTab, TYPE_WEB_FAVICON); }
  195. NOTREACHED();
  196. return "";
  197. }
  198. const char* ProtoEnumToString(sync_pb::SyncEnums::BrowserType browser_type) {
  199. ASSERT_ENUM_BOUNDS(sync_pb::SyncEnums, BrowserType, TYPE_TABBED,
  200. TYPE_CUSTOM_TAB);
  201. switch (browser_type) {
  202. ENUM_CASE(sync_pb::SyncEnums, TYPE_TABBED);
  203. ENUM_CASE(sync_pb::SyncEnums, TYPE_POPUP);
  204. ENUM_CASE(sync_pb::SyncEnums, TYPE_CUSTOM_TAB);
  205. }
  206. NOTREACHED();
  207. return "";
  208. }
  209. const char* ProtoEnumToString(sync_pb::SyncEnums::Action action) {
  210. ASSERT_ENUM_BOUNDS(sync_pb::SyncEnums, Action, UPGRADE_CLIENT,
  211. UNKNOWN_ACTION);
  212. switch (action) {
  213. ENUM_CASE(sync_pb::SyncEnums, UPGRADE_CLIENT);
  214. ENUM_CASE(sync_pb::SyncEnums, UNKNOWN_ACTION);
  215. }
  216. NOTREACHED();
  217. return "";
  218. }
  219. const char* ProtoEnumToString(sync_pb::SyncEnums::DeviceType device_type) {
  220. ASSERT_ENUM_BOUNDS(sync_pb::SyncEnums, DeviceType, TYPE_UNSET, TYPE_TABLET);
  221. switch (device_type) {
  222. ENUM_CASE(sync_pb::SyncEnums, TYPE_UNSET);
  223. ENUM_CASE(sync_pb::SyncEnums, TYPE_WIN);
  224. ENUM_CASE(sync_pb::SyncEnums, TYPE_MAC);
  225. ENUM_CASE(sync_pb::SyncEnums, TYPE_LINUX);
  226. ENUM_CASE(sync_pb::SyncEnums, TYPE_CROS);
  227. ENUM_CASE(sync_pb::SyncEnums, TYPE_OTHER);
  228. ENUM_CASE(sync_pb::SyncEnums, TYPE_PHONE);
  229. ENUM_CASE(sync_pb::SyncEnums, TYPE_TABLET);
  230. }
  231. NOTREACHED();
  232. return "";
  233. }
  234. const char* ProtoEnumToString(sync_pb::SyncEnums::ErrorType error_type) {
  235. ASSERT_ENUM_BOUNDS(sync_pb::SyncEnums, ErrorType, SUCCESS, UNKNOWN);
  236. switch (error_type) {
  237. ENUM_CASE(sync_pb::SyncEnums, SUCCESS);
  238. ENUM_CASE(sync_pb::SyncEnums, NOT_MY_BIRTHDAY);
  239. ENUM_CASE(sync_pb::SyncEnums, THROTTLED);
  240. ENUM_CASE(sync_pb::SyncEnums, CLEAR_PENDING);
  241. ENUM_CASE(sync_pb::SyncEnums, TRANSIENT_ERROR);
  242. ENUM_CASE(sync_pb::SyncEnums, MIGRATION_DONE);
  243. ENUM_CASE(sync_pb::SyncEnums, DISABLED_BY_ADMIN);
  244. ENUM_CASE(sync_pb::SyncEnums, PARTIAL_FAILURE);
  245. ENUM_CASE(sync_pb::SyncEnums, CLIENT_DATA_OBSOLETE);
  246. ENUM_CASE(sync_pb::SyncEnums, ENCRYPTION_OBSOLETE);
  247. ENUM_CASE(sync_pb::SyncEnums, UNKNOWN);
  248. }
  249. NOTREACHED();
  250. return "";
  251. }
  252. const char* ProtoEnumToString(sync_pb::SyncEnums::GetUpdatesOrigin origin) {
  253. ASSERT_ENUM_BOUNDS(sync_pb::SyncEnums, GetUpdatesOrigin, UNKNOWN_ORIGIN,
  254. PROGRAMMATIC);
  255. switch (origin) {
  256. ENUM_CASE(sync_pb::SyncEnums, UNKNOWN_ORIGIN);
  257. ENUM_CASE(sync_pb::SyncEnums, PERIODIC);
  258. ENUM_CASE(sync_pb::SyncEnums, NEWLY_SUPPORTED_DATATYPE);
  259. ENUM_CASE(sync_pb::SyncEnums, MIGRATION);
  260. ENUM_CASE(sync_pb::SyncEnums, NEW_CLIENT);
  261. ENUM_CASE(sync_pb::SyncEnums, RECONFIGURATION);
  262. ENUM_CASE(sync_pb::SyncEnums, GU_TRIGGER);
  263. ENUM_CASE(sync_pb::SyncEnums, RETRY);
  264. ENUM_CASE(sync_pb::SyncEnums, PROGRAMMATIC);
  265. }
  266. NOTREACHED();
  267. return "";
  268. }
  269. const char* ProtoEnumToString(
  270. sync_pb::SyncEnums::PageTransition page_transition) {
  271. ASSERT_ENUM_BOUNDS(sync_pb::SyncEnums, PageTransition, LINK,
  272. KEYWORD_GENERATED);
  273. switch (page_transition) {
  274. ENUM_CASE(sync_pb::SyncEnums, LINK);
  275. ENUM_CASE(sync_pb::SyncEnums, TYPED);
  276. ENUM_CASE(sync_pb::SyncEnums, AUTO_BOOKMARK);
  277. ENUM_CASE(sync_pb::SyncEnums, AUTO_SUBFRAME);
  278. ENUM_CASE(sync_pb::SyncEnums, MANUAL_SUBFRAME);
  279. ENUM_CASE(sync_pb::SyncEnums, GENERATED);
  280. ENUM_CASE(sync_pb::SyncEnums, AUTO_TOPLEVEL);
  281. ENUM_CASE(sync_pb::SyncEnums, FORM_SUBMIT);
  282. ENUM_CASE(sync_pb::SyncEnums, RELOAD);
  283. ENUM_CASE(sync_pb::SyncEnums, KEYWORD);
  284. ENUM_CASE(sync_pb::SyncEnums, KEYWORD_GENERATED);
  285. }
  286. NOTREACHED();
  287. return "";
  288. }
  289. const char* ProtoEnumToString(
  290. sync_pb::SyncEnums::PageTransitionRedirectType page_transition_qualifier) {
  291. ASSERT_ENUM_BOUNDS(sync_pb::SyncEnums, PageTransitionRedirectType,
  292. CLIENT_REDIRECT, SERVER_REDIRECT);
  293. switch (page_transition_qualifier) {
  294. ENUM_CASE(sync_pb::SyncEnums, CLIENT_REDIRECT);
  295. ENUM_CASE(sync_pb::SyncEnums, SERVER_REDIRECT);
  296. }
  297. NOTREACHED();
  298. return "";
  299. }
  300. const char* ProtoEnumToString(
  301. sync_pb::SyncEnums::SingletonDebugEventType type) {
  302. ASSERT_ENUM_BOUNDS(sync_pb::SyncEnums, SingletonDebugEventType,
  303. CONNECTION_STATUS_CHANGE, TRUSTED_VAULT_KEY_ACCEPTED);
  304. switch (type) {
  305. ENUM_CASE(sync_pb::SyncEnums, CONNECTION_STATUS_CHANGE);
  306. ENUM_CASE(sync_pb::SyncEnums, UPDATED_TOKEN);
  307. ENUM_CASE(sync_pb::SyncEnums, PASSPHRASE_REQUIRED);
  308. ENUM_CASE(sync_pb::SyncEnums, PASSPHRASE_ACCEPTED);
  309. ENUM_CASE(sync_pb::SyncEnums, INITIALIZATION_COMPLETE);
  310. ENUM_CASE(sync_pb::SyncEnums, STOP_SYNCING_PERMANENTLY);
  311. ENUM_CASE(sync_pb::SyncEnums, ACTIONABLE_ERROR);
  312. ENUM_CASE(sync_pb::SyncEnums, ENCRYPTED_TYPES_CHANGED);
  313. ENUM_CASE(sync_pb::SyncEnums, PASSPHRASE_TYPE_CHANGED);
  314. ENUM_CASE(sync_pb::SyncEnums, DEPRECATED_KEYSTORE_TOKEN_UPDATED);
  315. ENUM_CASE(sync_pb::SyncEnums, CONFIGURE_COMPLETE);
  316. ENUM_CASE(sync_pb::SyncEnums, DEPRECATED_BOOTSTRAP_TOKEN_UPDATED);
  317. ENUM_CASE(sync_pb::SyncEnums, TRUSTED_VAULT_KEY_REQUIRED);
  318. ENUM_CASE(sync_pb::SyncEnums, TRUSTED_VAULT_KEY_ACCEPTED);
  319. }
  320. NOTREACHED();
  321. return "";
  322. }
  323. const char* ProtoEnumToString(sync_pb::TabNavigation::BlockedState state) {
  324. ASSERT_ENUM_BOUNDS(sync_pb::TabNavigation, BlockedState, STATE_ALLOWED,
  325. STATE_BLOCKED);
  326. switch (state) {
  327. ENUM_CASE(sync_pb::TabNavigation, STATE_ALLOWED);
  328. ENUM_CASE(sync_pb::TabNavigation, STATE_BLOCKED);
  329. }
  330. NOTREACHED();
  331. return "";
  332. }
  333. const char* ProtoEnumToString(sync_pb::SyncEnums::PasswordState state) {
  334. ASSERT_ENUM_BOUNDS(sync_pb::SyncEnums, PasswordState, PASSWORD_STATE_UNKNOWN,
  335. HAS_PASSWORD_FIELD);
  336. switch (state) {
  337. ENUM_CASE(sync_pb::SyncEnums, PASSWORD_STATE_UNKNOWN);
  338. ENUM_CASE(sync_pb::SyncEnums, NO_PASSWORD_FIELD);
  339. ENUM_CASE(sync_pb::SyncEnums, HAS_PASSWORD_FIELD);
  340. }
  341. NOTREACHED();
  342. return "";
  343. }
  344. const char* ProtoEnumToString(sync_pb::UserConsentTypes::ConsentStatus status) {
  345. ASSERT_ENUM_BOUNDS(sync_pb::UserConsentTypes, ConsentStatus,
  346. CONSENT_STATUS_UNSPECIFIED, GIVEN);
  347. switch (status) {
  348. ENUM_CASE(sync_pb::UserConsentTypes, CONSENT_STATUS_UNSPECIFIED);
  349. ENUM_CASE(sync_pb::UserConsentTypes, NOT_GIVEN);
  350. ENUM_CASE(sync_pb::UserConsentTypes, GIVEN);
  351. }
  352. NOTREACHED();
  353. return "";
  354. }
  355. const char* ProtoEnumToString(
  356. sync_pb::GaiaPasswordReuse::PasswordReuseDetected::SafeBrowsingStatus::
  357. ReportingPopulation safe_browsing_reporting_population) {
  358. ASSERT_ENUM_BOUNDS(
  359. sync_pb::GaiaPasswordReuse::PasswordReuseDetected::SafeBrowsingStatus,
  360. ReportingPopulation, REPORTING_POPULATION_UNSPECIFIED, SCOUT);
  361. switch (safe_browsing_reporting_population) {
  362. ENUM_CASE(
  363. sync_pb::GaiaPasswordReuse::PasswordReuseDetected::SafeBrowsingStatus,
  364. REPORTING_POPULATION_UNSPECIFIED);
  365. ENUM_CASE(
  366. sync_pb::GaiaPasswordReuse::PasswordReuseDetected::SafeBrowsingStatus,
  367. NONE);
  368. ENUM_CASE(
  369. sync_pb::GaiaPasswordReuse::PasswordReuseDetected::SafeBrowsingStatus,
  370. EXTENDED_REPORTING);
  371. ENUM_CASE(
  372. sync_pb::GaiaPasswordReuse::PasswordReuseDetected::SafeBrowsingStatus,
  373. SCOUT);
  374. }
  375. NOTREACHED();
  376. return "";
  377. }
  378. const char* ProtoEnumToString(
  379. sync_pb::GaiaPasswordReuse::PasswordReuseDialogInteraction::
  380. InteractionResult interaction_result) {
  381. ASSERT_ENUM_BOUNDS(sync_pb::GaiaPasswordReuse::PasswordReuseDialogInteraction,
  382. InteractionResult, UNSPECIFIED,
  383. WARNING_ACTION_TAKEN_ON_SETTINGS);
  384. switch (interaction_result) {
  385. ENUM_CASE(sync_pb::GaiaPasswordReuse::PasswordReuseDialogInteraction,
  386. UNSPECIFIED);
  387. ENUM_CASE(sync_pb::GaiaPasswordReuse::PasswordReuseDialogInteraction,
  388. WARNING_ACTION_TAKEN);
  389. ENUM_CASE(sync_pb::GaiaPasswordReuse::PasswordReuseDialogInteraction,
  390. WARNING_ACTION_IGNORED);
  391. ENUM_CASE(sync_pb::GaiaPasswordReuse::PasswordReuseDialogInteraction,
  392. WARNING_UI_IGNORED);
  393. ENUM_CASE(sync_pb::GaiaPasswordReuse::PasswordReuseDialogInteraction,
  394. WARNING_ACTION_TAKEN_ON_SETTINGS);
  395. }
  396. NOTREACHED();
  397. return "";
  398. }
  399. const char* ProtoEnumToString(
  400. sync_pb::GaiaPasswordReuse::PasswordReuseLookup::LookupResult
  401. lookup_result) {
  402. ASSERT_ENUM_BOUNDS(sync_pb::GaiaPasswordReuse::PasswordReuseLookup,
  403. LookupResult, UNSPECIFIED, TURNED_OFF_BY_POLICY);
  404. switch (lookup_result) {
  405. ENUM_CASE(sync_pb::GaiaPasswordReuse::PasswordReuseLookup, UNSPECIFIED);
  406. ENUM_CASE(sync_pb::GaiaPasswordReuse::PasswordReuseLookup, WHITELIST_HIT);
  407. ENUM_CASE(sync_pb::GaiaPasswordReuse::PasswordReuseLookup, CACHE_HIT);
  408. ENUM_CASE(sync_pb::GaiaPasswordReuse::PasswordReuseLookup, REQUEST_SUCCESS);
  409. ENUM_CASE(sync_pb::GaiaPasswordReuse::PasswordReuseLookup, REQUEST_FAILURE);
  410. ENUM_CASE(sync_pb::GaiaPasswordReuse::PasswordReuseLookup, URL_UNSUPPORTED);
  411. ENUM_CASE(sync_pb::GaiaPasswordReuse::PasswordReuseLookup,
  412. ENTERPRISE_WHITELIST_HIT);
  413. ENUM_CASE(sync_pb::GaiaPasswordReuse::PasswordReuseLookup,
  414. TURNED_OFF_BY_POLICY);
  415. }
  416. NOTREACHED();
  417. return "";
  418. }
  419. const char* ProtoEnumToString(
  420. sync_pb::GaiaPasswordReuse::PasswordReuseLookup::ReputationVerdict
  421. verdict) {
  422. ASSERT_ENUM_BOUNDS(sync_pb::GaiaPasswordReuse::PasswordReuseLookup,
  423. ReputationVerdict, VERDICT_UNSPECIFIED, PHISHING);
  424. switch (verdict) {
  425. ENUM_CASE(sync_pb::GaiaPasswordReuse::PasswordReuseLookup,
  426. VERDICT_UNSPECIFIED);
  427. ENUM_CASE(sync_pb::GaiaPasswordReuse::PasswordReuseLookup, SAFE);
  428. ENUM_CASE(sync_pb::GaiaPasswordReuse::PasswordReuseLookup, LOW_REPUTATION);
  429. ENUM_CASE(sync_pb::GaiaPasswordReuse::PasswordReuseLookup, PHISHING);
  430. }
  431. NOTREACHED();
  432. return "";
  433. }
  434. // TODO(markusheintz): Remove.
  435. const char* ProtoEnumToString(
  436. sync_pb::GaiaPasswordReuse::PasswordCaptured::EventTrigger trigger) {
  437. ASSERT_ENUM_BOUNDS(sync_pb::GaiaPasswordReuse::PasswordCaptured, EventTrigger,
  438. UNSPECIFIED, EXPIRED_28D_TIMER);
  439. switch (trigger) {
  440. ENUM_CASE(sync_pb::GaiaPasswordReuse::PasswordCaptured, UNSPECIFIED);
  441. ENUM_CASE(sync_pb::GaiaPasswordReuse::PasswordCaptured, USER_LOGGED_IN);
  442. ENUM_CASE(sync_pb::GaiaPasswordReuse::PasswordCaptured, EXPIRED_28D_TIMER);
  443. }
  444. NOTREACHED();
  445. return "";
  446. }
  447. const char* ProtoEnumToString(
  448. sync_pb::UserEventSpecifics::GaiaPasswordCaptured::EventTrigger trigger) {
  449. ASSERT_ENUM_BOUNDS(sync_pb::UserEventSpecifics::GaiaPasswordCaptured,
  450. EventTrigger, UNSPECIFIED, EXPIRED_28D_TIMER);
  451. switch (trigger) {
  452. ENUM_CASE(sync_pb::UserEventSpecifics::GaiaPasswordCaptured, UNSPECIFIED);
  453. ENUM_CASE(sync_pb::UserEventSpecifics::GaiaPasswordCaptured,
  454. USER_LOGGED_IN);
  455. ENUM_CASE(sync_pb::UserEventSpecifics::GaiaPasswordCaptured,
  456. EXPIRED_28D_TIMER);
  457. }
  458. NOTREACHED();
  459. return "";
  460. }
  461. const char* ProtoEnumToString(
  462. sync_pb::UserEventSpecifics::FlocIdComputed::EventTrigger trigger) {
  463. ASSERT_ENUM_BOUNDS(sync_pb::UserEventSpecifics::FlocIdComputed, EventTrigger,
  464. UNSPECIFIED, HISTORY_DELETE);
  465. switch (trigger) {
  466. ENUM_CASE(sync_pb::UserEventSpecifics::FlocIdComputed, UNSPECIFIED);
  467. ENUM_CASE(sync_pb::UserEventSpecifics::FlocIdComputed, NEW);
  468. ENUM_CASE(sync_pb::UserEventSpecifics::FlocIdComputed, REFRESHED);
  469. ENUM_CASE(sync_pb::UserEventSpecifics::FlocIdComputed, HISTORY_DELETE);
  470. }
  471. NOTREACHED();
  472. return "";
  473. }
  474. const char* ProtoEnumToString(
  475. sync_pb::WalletMaskedCreditCard::VirtualCardEnrollmentState
  476. virtual_card_enrollment_state) {
  477. ASSERT_ENUM_BOUNDS(sync_pb::WalletMaskedCreditCard,
  478. VirtualCardEnrollmentState, UNSPECIFIED,
  479. UNENROLLED_AND_ELIGIBLE);
  480. switch (virtual_card_enrollment_state) {
  481. ENUM_CASE(sync_pb::WalletMaskedCreditCard, UNSPECIFIED);
  482. ENUM_CASE(sync_pb::WalletMaskedCreditCard, UNENROLLED);
  483. ENUM_CASE(sync_pb::WalletMaskedCreditCard, ENROLLED);
  484. ENUM_CASE(sync_pb::WalletMaskedCreditCard, UNENROLLED_AND_NOT_ELIGIBLE);
  485. ENUM_CASE(sync_pb::WalletMaskedCreditCard, UNENROLLED_AND_ELIGIBLE);
  486. }
  487. NOTREACHED();
  488. return "";
  489. }
  490. const char* ProtoEnumToString(
  491. sync_pb::WalletMaskedCreditCard::WalletCardStatus wallet_card_status) {
  492. ASSERT_ENUM_BOUNDS(sync_pb::WalletMaskedCreditCard, WalletCardStatus, VALID,
  493. EXPIRED);
  494. switch (wallet_card_status) {
  495. ENUM_CASE(sync_pb::WalletMaskedCreditCard, VALID);
  496. ENUM_CASE(sync_pb::WalletMaskedCreditCard, EXPIRED);
  497. }
  498. NOTREACHED();
  499. return "";
  500. }
  501. const char* ProtoEnumToString(
  502. sync_pb::WalletMaskedCreditCard::WalletCardType wallet_card_type) {
  503. ASSERT_ENUM_BOUNDS(sync_pb::WalletMaskedCreditCard, WalletCardType, UNKNOWN,
  504. ELO);
  505. switch (wallet_card_type) {
  506. ENUM_CASE(sync_pb::WalletMaskedCreditCard, UNKNOWN);
  507. ENUM_CASE(sync_pb::WalletMaskedCreditCard, AMEX);
  508. ENUM_CASE(sync_pb::WalletMaskedCreditCard, DISCOVER);
  509. ENUM_CASE(sync_pb::WalletMaskedCreditCard, JCB);
  510. ENUM_CASE(sync_pb::WalletMaskedCreditCard, MAESTRO);
  511. ENUM_CASE(sync_pb::WalletMaskedCreditCard, MASTER_CARD);
  512. ENUM_CASE(sync_pb::WalletMaskedCreditCard, SOLO);
  513. ENUM_CASE(sync_pb::WalletMaskedCreditCard, SWITCH);
  514. ENUM_CASE(sync_pb::WalletMaskedCreditCard, VISA);
  515. ENUM_CASE(sync_pb::WalletMaskedCreditCard, UNIONPAY);
  516. ENUM_CASE(sync_pb::WalletMaskedCreditCard, ELO);
  517. }
  518. NOTREACHED();
  519. return "";
  520. }
  521. const char* ProtoEnumToString(sync_pb::CardIssuer::Issuer issuer) {
  522. switch (issuer) {
  523. ENUM_CASE(sync_pb::CardIssuer, ISSUER_UNKNOWN);
  524. ENUM_CASE(sync_pb::CardIssuer, GOOGLE);
  525. }
  526. NOTREACHED();
  527. return "";
  528. }
  529. const char* ProtoEnumToString(
  530. sync_pb::WalletMetadataSpecifics::Type wallet_metadata_type) {
  531. ASSERT_ENUM_BOUNDS(sync_pb::WalletMetadataSpecifics, Type, UNKNOWN, ADDRESS);
  532. switch (wallet_metadata_type) {
  533. ENUM_CASE(sync_pb::WalletMetadataSpecifics, UNKNOWN);
  534. ENUM_CASE(sync_pb::WalletMetadataSpecifics, CARD);
  535. ENUM_CASE(sync_pb::WalletMetadataSpecifics, ADDRESS);
  536. }
  537. NOTREACHED();
  538. return "";
  539. }
  540. const char* ProtoEnumToString(sync_pb::WebAppIconInfo::Purpose purpose) {
  541. ASSERT_ENUM_BOUNDS(sync_pb::WebAppIconInfo, Purpose, UNSPECIFIED, MONOCHROME);
  542. switch (purpose) {
  543. ENUM_CASE(sync_pb::WebAppIconInfo, UNSPECIFIED);
  544. ENUM_CASE(sync_pb::WebAppIconInfo, ANY);
  545. ENUM_CASE(sync_pb::WebAppIconInfo, MASKABLE);
  546. ENUM_CASE(sync_pb::WebAppIconInfo, MONOCHROME);
  547. }
  548. NOTREACHED();
  549. return "";
  550. }
  551. const char* ProtoEnumToString(
  552. sync_pb::WebAppSpecifics::UserDisplayMode user_display_mode) {
  553. ASSERT_ENUM_BOUNDS(sync_pb::WebAppSpecifics, UserDisplayMode, UNSPECIFIED,
  554. TABBED);
  555. switch (user_display_mode) {
  556. ENUM_CASE(sync_pb::WebAppSpecifics, UNSPECIFIED);
  557. ENUM_CASE(sync_pb::WebAppSpecifics, BROWSER);
  558. ENUM_CASE(sync_pb::WebAppSpecifics, STANDALONE);
  559. ENUM_CASE(sync_pb::WebAppSpecifics, TABBED);
  560. }
  561. NOTREACHED();
  562. return "";
  563. }
  564. const char* ProtoEnumToString(
  565. sync_pb::WifiConfigurationSpecifics::SecurityType security_type) {
  566. ASSERT_ENUM_BOUNDS(sync_pb::WifiConfigurationSpecifics, SecurityType,
  567. SECURITY_TYPE_UNSPECIFIED, SECURITY_TYPE_PSK);
  568. switch (security_type) {
  569. ENUM_CASE(sync_pb::WifiConfigurationSpecifics, SECURITY_TYPE_UNSPECIFIED);
  570. ENUM_CASE(sync_pb::WifiConfigurationSpecifics, SECURITY_TYPE_NONE);
  571. ENUM_CASE(sync_pb::WifiConfigurationSpecifics, SECURITY_TYPE_WEP);
  572. ENUM_CASE(sync_pb::WifiConfigurationSpecifics, SECURITY_TYPE_PSK);
  573. }
  574. NOTREACHED();
  575. return "";
  576. }
  577. const char* ProtoEnumToString(
  578. sync_pb::WifiConfigurationSpecifics::AutomaticallyConnectOption
  579. automatically_connect_option) {
  580. ASSERT_ENUM_BOUNDS(
  581. sync_pb::WifiConfigurationSpecifics, AutomaticallyConnectOption,
  582. AUTOMATICALLY_CONNECT_UNSPECIFIED, AUTOMATICALLY_CONNECT_ENABLED);
  583. switch (automatically_connect_option) {
  584. ENUM_CASE(sync_pb::WifiConfigurationSpecifics,
  585. AUTOMATICALLY_CONNECT_UNSPECIFIED);
  586. ENUM_CASE(sync_pb::WifiConfigurationSpecifics,
  587. AUTOMATICALLY_CONNECT_DISABLED);
  588. ENUM_CASE(sync_pb::WifiConfigurationSpecifics,
  589. AUTOMATICALLY_CONNECT_ENABLED);
  590. }
  591. NOTREACHED();
  592. return "";
  593. }
  594. const char* ProtoEnumToString(
  595. sync_pb::WifiConfigurationSpecifics::IsPreferredOption
  596. is_preferred_option) {
  597. ASSERT_ENUM_BOUNDS(sync_pb::WifiConfigurationSpecifics, IsPreferredOption,
  598. IS_PREFERRED_UNSPECIFIED, IS_PREFERRED_ENABLED);
  599. switch (is_preferred_option) {
  600. ENUM_CASE(sync_pb::WifiConfigurationSpecifics, IS_PREFERRED_UNSPECIFIED);
  601. ENUM_CASE(sync_pb::WifiConfigurationSpecifics, IS_PREFERRED_DISABLED);
  602. ENUM_CASE(sync_pb::WifiConfigurationSpecifics, IS_PREFERRED_ENABLED);
  603. }
  604. NOTREACHED();
  605. return "";
  606. }
  607. const char* ProtoEnumToString(
  608. sync_pb::WifiConfigurationSpecifics::MeteredOption metered_option) {
  609. ASSERT_ENUM_BOUNDS(sync_pb::WifiConfigurationSpecifics, MeteredOption,
  610. METERED_OPTION_UNSPECIFIED, METERED_OPTION_AUTO);
  611. switch (metered_option) {
  612. ENUM_CASE(sync_pb::WifiConfigurationSpecifics, METERED_OPTION_UNSPECIFIED);
  613. ENUM_CASE(sync_pb::WifiConfigurationSpecifics, METERED_OPTION_NO);
  614. ENUM_CASE(sync_pb::WifiConfigurationSpecifics, METERED_OPTION_YES);
  615. ENUM_CASE(sync_pb::WifiConfigurationSpecifics, METERED_OPTION_AUTO);
  616. }
  617. NOTREACHED();
  618. return "";
  619. }
  620. const char* ProtoEnumToString(
  621. sync_pb::WifiConfigurationSpecifics::ProxyConfiguration::ProxyOption
  622. proxy_option) {
  623. ASSERT_ENUM_BOUNDS(sync_pb::WifiConfigurationSpecifics::ProxyConfiguration,
  624. ProxyOption, PROXY_OPTION_UNSPECIFIED,
  625. PROXY_OPTION_MANUAL);
  626. switch (proxy_option) {
  627. ENUM_CASE(sync_pb::WifiConfigurationSpecifics::ProxyConfiguration,
  628. PROXY_OPTION_UNSPECIFIED);
  629. ENUM_CASE(sync_pb::WifiConfigurationSpecifics::ProxyConfiguration,
  630. PROXY_OPTION_DISABLED);
  631. ENUM_CASE(sync_pb::WifiConfigurationSpecifics::ProxyConfiguration,
  632. PROXY_OPTION_AUTOMATIC);
  633. ENUM_CASE(sync_pb::WifiConfigurationSpecifics::ProxyConfiguration,
  634. PROXY_OPTION_AUTODISCOVERY);
  635. ENUM_CASE(sync_pb::WifiConfigurationSpecifics::ProxyConfiguration,
  636. PROXY_OPTION_MANUAL);
  637. }
  638. NOTREACHED();
  639. return "";
  640. }
  641. const char* ProtoEnumToString(
  642. sync_pb::WorkspaceDeskSpecifics::WindowState window_state) {
  643. ASSERT_ENUM_BOUNDS(sync_pb::WorkspaceDeskSpecifics, WindowState,
  644. UNKNOWN_WINDOW_STATE, SECONDARY_SNAPPED);
  645. switch (window_state) {
  646. ENUM_CASE(sync_pb::WorkspaceDeskSpecifics, UNKNOWN_WINDOW_STATE);
  647. ENUM_CASE(sync_pb::WorkspaceDeskSpecifics, NORMAL);
  648. ENUM_CASE(sync_pb::WorkspaceDeskSpecifics, MINIMIZED);
  649. ENUM_CASE(sync_pb::WorkspaceDeskSpecifics, MAXIMIZED);
  650. ENUM_CASE(sync_pb::WorkspaceDeskSpecifics, FULLSCREEN);
  651. ENUM_CASE(sync_pb::WorkspaceDeskSpecifics, PRIMARY_SNAPPED);
  652. ENUM_CASE(sync_pb::WorkspaceDeskSpecifics, SECONDARY_SNAPPED);
  653. }
  654. NOTREACHED();
  655. return "";
  656. }
  657. const char* ProtoEnumToString(
  658. sync_pb::WorkspaceDeskSpecifics::LaunchContainer container) {
  659. ASSERT_ENUM_BOUNDS(sync_pb::WorkspaceDeskSpecifics, LaunchContainer,
  660. LAUNCH_CONTAINER_UNSPECIFIED, LAUNCH_CONTAINER_NONE);
  661. switch (container) {
  662. ENUM_CASE(sync_pb::WorkspaceDeskSpecifics, LAUNCH_CONTAINER_UNSPECIFIED);
  663. ENUM_CASE(sync_pb::WorkspaceDeskSpecifics, LAUNCH_CONTAINER_WINDOW);
  664. ENUM_CASE(sync_pb::WorkspaceDeskSpecifics,
  665. LAUNCH_CONTAINER_PANEL_DEPRECATED);
  666. ENUM_CASE(sync_pb::WorkspaceDeskSpecifics, LAUNCH_CONTAINER_TAB);
  667. ENUM_CASE(sync_pb::WorkspaceDeskSpecifics, LAUNCH_CONTAINER_NONE);
  668. }
  669. NOTREACHED();
  670. return "";
  671. }
  672. const char* ProtoEnumToString(
  673. sync_pb::WorkspaceDeskSpecifics::WindowOpenDisposition disposition) {
  674. ASSERT_ENUM_BOUNDS(sync_pb::WorkspaceDeskSpecifics, WindowOpenDisposition,
  675. UNKNOWN, NEW_PICTURE_IN_PICTURE);
  676. switch (disposition) {
  677. ENUM_CASE(sync_pb::WorkspaceDeskSpecifics, UNKNOWN);
  678. ENUM_CASE(sync_pb::WorkspaceDeskSpecifics, CURRENT_TAB);
  679. ENUM_CASE(sync_pb::WorkspaceDeskSpecifics, SINGLETON_TAB);
  680. ENUM_CASE(sync_pb::WorkspaceDeskSpecifics, NEW_FOREGROUND_TAB);
  681. ENUM_CASE(sync_pb::WorkspaceDeskSpecifics, NEW_BACKGROUND_TAB);
  682. ENUM_CASE(sync_pb::WorkspaceDeskSpecifics, NEW_POPUP);
  683. ENUM_CASE(sync_pb::WorkspaceDeskSpecifics, NEW_WINDOW);
  684. ENUM_CASE(sync_pb::WorkspaceDeskSpecifics, SAVE_TO_DISK);
  685. ENUM_CASE(sync_pb::WorkspaceDeskSpecifics, OFF_THE_RECORD);
  686. ENUM_CASE(sync_pb::WorkspaceDeskSpecifics, IGNORE_ACTION);
  687. ENUM_CASE(sync_pb::WorkspaceDeskSpecifics, SWITCH_TO_TAB);
  688. ENUM_CASE(sync_pb::WorkspaceDeskSpecifics, NEW_PICTURE_IN_PICTURE);
  689. }
  690. NOTREACHED();
  691. return "";
  692. }
  693. const char* ProtoEnumToString(
  694. sync_pb::UserConsentTypes::AssistantActivityControlConsent::SettingType
  695. setting_type) {
  696. ASSERT_ENUM_BOUNDS(sync_pb::UserConsentTypes::AssistantActivityControlConsent,
  697. SettingType, SETTING_TYPE_UNSPECIFIED, DEVICE_APPS);
  698. switch (setting_type) {
  699. ENUM_CASE(sync_pb::UserConsentTypes::AssistantActivityControlConsent,
  700. SETTING_TYPE_UNSPECIFIED);
  701. ENUM_CASE(sync_pb::UserConsentTypes::AssistantActivityControlConsent, ALL);
  702. ENUM_CASE(sync_pb::UserConsentTypes::AssistantActivityControlConsent,
  703. WEB_AND_APP_ACTIVITY);
  704. ENUM_CASE(sync_pb::UserConsentTypes::AssistantActivityControlConsent,
  705. DEVICE_APPS);
  706. }
  707. NOTREACHED();
  708. return "";
  709. }
  710. const char* ProtoEnumToString(sync_pb::WorkspaceDeskSpecifics::DeskType type) {
  711. ASSERT_ENUM_BOUNDS(sync_pb::WorkspaceDeskSpecifics, DeskType, UNKNOWN_TYPE,
  712. SAVE_AND_RECALL);
  713. switch (type) {
  714. ENUM_CASE(sync_pb::WorkspaceDeskSpecifics, UNKNOWN_TYPE);
  715. ENUM_CASE(sync_pb::WorkspaceDeskSpecifics, TEMPLATE);
  716. ENUM_CASE(sync_pb::WorkspaceDeskSpecifics, SAVE_AND_RECALL);
  717. }
  718. NOTREACHED();
  719. return "";
  720. }
  721. const char* ProtoEnumToString(
  722. sync_pb::WorkspaceDeskSpecifics::TabGroupColor color) {
  723. ASSERT_ENUM_BOUNDS(sync_pb::WorkspaceDeskSpecifics, TabGroupColor,
  724. UNKNOWN_COLOR, ORANGE);
  725. switch (color) {
  726. ENUM_CASE(sync_pb::WorkspaceDeskSpecifics, UNKNOWN_COLOR);
  727. ENUM_CASE(sync_pb::WorkspaceDeskSpecifics, GREY);
  728. ENUM_CASE(sync_pb::WorkspaceDeskSpecifics, BLUE);
  729. ENUM_CASE(sync_pb::WorkspaceDeskSpecifics, RED);
  730. ENUM_CASE(sync_pb::WorkspaceDeskSpecifics, YELLOW);
  731. ENUM_CASE(sync_pb::WorkspaceDeskSpecifics, GREEN);
  732. ENUM_CASE(sync_pb::WorkspaceDeskSpecifics, PINK);
  733. ENUM_CASE(sync_pb::WorkspaceDeskSpecifics, PURPLE);
  734. ENUM_CASE(sync_pb::WorkspaceDeskSpecifics, CYAN);
  735. ENUM_CASE(sync_pb::WorkspaceDeskSpecifics, ORANGE);
  736. }
  737. NOTREACHED();
  738. return "";
  739. }
  740. #undef ASSERT_ENUM_BOUNDS
  741. #undef ENUM_CASE
  742. } // namespace syncer