browser_app_instance_registry_mojom_traits.h 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108
  1. // Copyright 2021 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. #ifndef CHROMEOS_CROSAPI_MOJOM_BROWSER_APP_INSTANCE_REGISTRY_MOJOM_TRAITS_H_
  5. #define CHROMEOS_CROSAPI_MOJOM_BROWSER_APP_INSTANCE_REGISTRY_MOJOM_TRAITS_H_
  6. #include "components/services/app_service/public/cpp/browser_app_instance_update.h"
  7. #include "components/services/app_service/public/cpp/browser_window_instance_update.h"
  8. #include "chromeos/crosapi/mojom/browser_app_instance_registry.mojom.h"
  9. namespace mojo {
  10. template <>
  11. struct StructTraits<crosapi::mojom::BrowserWindowInstanceUpdateDataView,
  12. apps::BrowserWindowInstanceUpdate> {
  13. static bool Read(crosapi::mojom::BrowserWindowInstanceUpdateDataView input,
  14. apps::BrowserWindowInstanceUpdate* output);
  15. static const base::UnguessableToken& id(
  16. const apps::BrowserWindowInstanceUpdate& update) {
  17. return update.id;
  18. }
  19. static const std::string& window_id(
  20. const apps::BrowserWindowInstanceUpdate& update) {
  21. return update.window_id;
  22. }
  23. static bool is_active(const apps::BrowserWindowInstanceUpdate& update) {
  24. return update.is_active;
  25. }
  26. static uint32_t browser_session_id(
  27. const apps::BrowserWindowInstanceUpdate& update) {
  28. return update.browser_session_id;
  29. }
  30. static uint32_t restored_browser_session_id(
  31. const apps::BrowserWindowInstanceUpdate& update) {
  32. return update.restored_browser_session_id;
  33. }
  34. };
  35. template <>
  36. struct StructTraits<crosapi::mojom::BrowserAppInstanceUpdateDataView,
  37. apps::BrowserAppInstanceUpdate> {
  38. static bool Read(crosapi::mojom::BrowserAppInstanceUpdateDataView input,
  39. apps::BrowserAppInstanceUpdate* output);
  40. static const base::UnguessableToken& id(
  41. const apps::BrowserAppInstanceUpdate& update) {
  42. return update.id;
  43. }
  44. static apps::BrowserAppInstanceUpdate::Type type(
  45. const apps::BrowserAppInstanceUpdate& update) {
  46. return update.type;
  47. }
  48. static const std::string& app_id(
  49. const apps::BrowserAppInstanceUpdate& update) {
  50. return update.app_id;
  51. }
  52. static const std::string& window_id(
  53. const apps::BrowserAppInstanceUpdate& update) {
  54. return update.window_id;
  55. }
  56. static const std::string& title(
  57. const apps::BrowserAppInstanceUpdate& update) {
  58. return update.title;
  59. }
  60. static bool is_browser_active(const apps::BrowserAppInstanceUpdate& update) {
  61. return update.is_browser_active;
  62. }
  63. static bool is_web_contents_active(
  64. const apps::BrowserAppInstanceUpdate& update) {
  65. return update.is_web_contents_active;
  66. }
  67. static uint32_t browser_session_id(
  68. const apps::BrowserAppInstanceUpdate& update) {
  69. return update.browser_session_id;
  70. }
  71. static uint32_t restored_browser_session_id(
  72. const apps::BrowserAppInstanceUpdate& update) {
  73. return update.restored_browser_session_id;
  74. }
  75. };
  76. template <>
  77. struct EnumTraits<crosapi::mojom::BrowserAppInstanceType,
  78. apps::BrowserAppInstanceUpdate::Type> {
  79. static crosapi::mojom::BrowserAppInstanceType ToMojom(
  80. apps::BrowserAppInstanceUpdate::Type input);
  81. static bool FromMojom(crosapi::mojom::BrowserAppInstanceType input,
  82. apps::BrowserAppInstanceUpdate::Type* output);
  83. };
  84. } // namespace mojo
  85. #endif // CHROMEOS_CROSAPI_MOJOM_BROWSER_APP_INSTANCE_REGISTRY_MOJOM_TRAITS_H_