install_result_code.cc 3.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. // Copyright 2022 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/webapps/browser/install_result_code.h"
  5. #include <ostream>
  6. namespace webapps {
  7. bool IsSuccess(InstallResultCode code) {
  8. // TODO(crbug.com/1296447): enumerate all the constants instead of the default
  9. // clause to prevent accidentally implicitly returning false on any newly
  10. // added value.
  11. switch (code) {
  12. case InstallResultCode::kSuccessNewInstall:
  13. case InstallResultCode::kSuccessAlreadyInstalled:
  14. case InstallResultCode::kSuccessOfflineOnlyInstall:
  15. case InstallResultCode::kSuccessOfflineFallbackInstall:
  16. return true;
  17. default:
  18. return false;
  19. }
  20. }
  21. bool IsNewInstall(InstallResultCode code) {
  22. return IsSuccess(code) && code != InstallResultCode::kSuccessAlreadyInstalled;
  23. }
  24. std::ostream& operator<<(std::ostream& os, InstallResultCode code) {
  25. switch (code) {
  26. case InstallResultCode::kSuccessNewInstall:
  27. return os << "kSuccessNewInstall";
  28. case InstallResultCode::kSuccessAlreadyInstalled:
  29. return os << "kSuccessAlreadyInstalled";
  30. case InstallResultCode::kGetWebAppInstallInfoFailed:
  31. return os << "kGetWebAppInstallInfoFailed";
  32. case InstallResultCode::kPreviouslyUninstalled:
  33. return os << "kPreviouslyUninstalled";
  34. case InstallResultCode::kWebContentsDestroyed:
  35. return os << "kWebContentsDestroyed";
  36. case InstallResultCode::kInstallTaskDestroyed:
  37. return os << "kInstallTaskDestroyed";
  38. case InstallResultCode::kWriteDataFailed:
  39. return os << "kWriteDataFailed";
  40. case InstallResultCode::kUserInstallDeclined:
  41. return os << "kUserInstallDeclined";
  42. case InstallResultCode::kNotValidManifestForWebApp:
  43. return os << "kNotValidManifestForWebApp";
  44. case InstallResultCode::kIntentToPlayStore:
  45. return os << "kIntentToPlayStore";
  46. case InstallResultCode::kWebAppDisabled:
  47. return os << "kWebAppDisabled";
  48. case InstallResultCode::kInstallURLRedirected:
  49. return os << "kInstallURLRedirected";
  50. case InstallResultCode::kInstallURLLoadFailed:
  51. return os << "kInstallURLLoadFailed";
  52. case InstallResultCode::kExpectedAppIdCheckFailed:
  53. return os << "kExpectedAppIdCheckFailed";
  54. case InstallResultCode::kInstallURLLoadTimeOut:
  55. return os << "kInstallURLLoadTimeOut";
  56. case InstallResultCode::kFailedPlaceholderUninstall:
  57. return os << "kFailedPlaceholderUninstall";
  58. case InstallResultCode::kNotInstallable:
  59. return os << "kNotInstallable";
  60. case InstallResultCode::kApkWebAppInstallFailed:
  61. return os << "kApkWebAppInstallFailed";
  62. case InstallResultCode::kCancelledOnWebAppProviderShuttingDown:
  63. return os << "kCancelledOnWebAppProviderShuttingDown";
  64. case InstallResultCode::kWebAppProviderNotReady:
  65. return os << "kWebAppProviderNotReady";
  66. case InstallResultCode::kSuccessOfflineOnlyInstall:
  67. return os << "kSuccessOfflineOnlyInstall";
  68. case InstallResultCode::kSuccessOfflineFallbackInstall:
  69. return os << "kSuccessOfflineFallbackInstall";
  70. case InstallResultCode::kUpdateTaskFailed:
  71. return os << "kUpdateTaskFailed";
  72. case InstallResultCode::kAppNotInRegistrarAfterCommit:
  73. return os << "kAppNotInRegistrarAfterCommit";
  74. case InstallResultCode::kHaltedBySyncUninstall:
  75. return os << "kHaltedBySyncUninstall";
  76. }
  77. }
  78. } // namespace webapps