browser_app_instance_registry_mojom_traits.cc 2.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  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. #include "chromeos/crosapi/mojom/browser_app_instance_registry_mojom_traits.h"
  5. namespace mojo {
  6. bool StructTraits<crosapi::mojom::BrowserWindowInstanceUpdateDataView,
  7. apps::BrowserWindowInstanceUpdate>::
  8. Read(crosapi::mojom::BrowserWindowInstanceUpdateDataView input,
  9. apps::BrowserWindowInstanceUpdate* output) {
  10. apps::BrowserWindowInstanceUpdate update;
  11. if (input.ReadId(&update.id) && input.ReadWindowId(&update.window_id)) {
  12. update.is_active = input.is_active();
  13. update.browser_session_id = input.browser_session_id();
  14. update.restored_browser_session_id = input.restored_browser_session_id();
  15. *output = std::move(update);
  16. return true;
  17. }
  18. return false;
  19. }
  20. bool StructTraits<crosapi::mojom::BrowserAppInstanceUpdateDataView,
  21. apps::BrowserAppInstanceUpdate>::
  22. Read(crosapi::mojom::BrowserAppInstanceUpdateDataView input,
  23. apps::BrowserAppInstanceUpdate* output) {
  24. apps::BrowserAppInstanceUpdate update;
  25. if (input.ReadId(&update.id) && input.ReadType(&update.type) &&
  26. input.ReadAppId(&update.app_id) &&
  27. input.ReadWindowId(&update.window_id) && input.ReadTitle(&update.title)) {
  28. update.is_browser_active = input.is_browser_active();
  29. update.is_web_contents_active = input.is_web_contents_active();
  30. update.browser_session_id = input.browser_session_id();
  31. update.restored_browser_session_id = input.restored_browser_session_id();
  32. *output = std::move(update);
  33. return true;
  34. }
  35. return false;
  36. }
  37. crosapi::mojom::BrowserAppInstanceType
  38. EnumTraits<crosapi::mojom::BrowserAppInstanceType,
  39. apps::BrowserAppInstanceUpdate::Type>::
  40. ToMojom(apps::BrowserAppInstanceUpdate::Type input) {
  41. switch (input) {
  42. case apps::BrowserAppInstanceUpdate::Type::kAppTab:
  43. return crosapi::mojom::BrowserAppInstanceType::kAppTab;
  44. case apps::BrowserAppInstanceUpdate::Type::kAppWindow:
  45. return crosapi::mojom::BrowserAppInstanceType::kAppWindow;
  46. }
  47. }
  48. bool EnumTraits<crosapi::mojom::BrowserAppInstanceType,
  49. apps::BrowserAppInstanceUpdate::Type>::
  50. FromMojom(crosapi::mojom::BrowserAppInstanceType input,
  51. apps::BrowserAppInstanceUpdate::Type* output) {
  52. switch (input) {
  53. case crosapi::mojom::BrowserAppInstanceType::kAppTab:
  54. *output = apps::BrowserAppInstanceUpdate::Type::kAppTab;
  55. return true;
  56. case crosapi::mojom::BrowserAppInstanceType::kAppWindow:
  57. *output = apps::BrowserAppInstanceUpdate::Type::kAppWindow;
  58. return true;
  59. }
  60. }
  61. } // namespace mojo