saved_desk_builder.cc 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108
  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/desks_storage/core/saved_desk_builder.h"
  5. #include "ash/public/cpp/desk_template.h"
  6. #include "base/guid.h"
  7. #include "base/time/time.h"
  8. #include "components/app_restore/app_launch_info.h"
  9. #include "components/desks_storage/core/saved_desk_test_util.h"
  10. namespace desks_storage {
  11. SavedDeskBuilder::SavedDeskBuilder()
  12. : desk_name_("unnamed desk"),
  13. desk_source_(ash::DeskTemplateSource::kUser),
  14. desk_type_(ash::DeskTemplateType::kTemplate),
  15. restore_data_(std::make_unique<app_restore::RestoreData>()) {
  16. desk_uuid_ = base::GUID::GenerateRandomV4();
  17. created_time_ = base::Time::Now();
  18. };
  19. SavedDeskBuilder::~SavedDeskBuilder(){};
  20. std::unique_ptr<ash::DeskTemplate> SavedDeskBuilder::Build() {
  21. auto desk_template = std::make_unique<ash::DeskTemplate>(
  22. desk_uuid_, desk_source_, desk_name_, created_time_, desk_type_);
  23. desk_template->set_desk_restore_data(std::move(restore_data_));
  24. return desk_template;
  25. }
  26. SavedDeskBuilder& SavedDeskBuilder::SetUuid(const std::string& uuid) {
  27. desk_uuid_ = base::GUID::ParseCaseInsensitive(uuid);
  28. return *this;
  29. }
  30. SavedDeskBuilder& SavedDeskBuilder::SetName(const std::string& name) {
  31. desk_name_ = name;
  32. return *this;
  33. }
  34. SavedDeskBuilder& SavedDeskBuilder::SetType(ash::DeskTemplateType desk_type) {
  35. desk_type_ = desk_type;
  36. return *this;
  37. }
  38. SavedDeskBuilder& SavedDeskBuilder::SetSource(
  39. ash::DeskTemplateSource desk_source) {
  40. desk_source_ = desk_source;
  41. return *this;
  42. }
  43. SavedDeskBuilder& SavedDeskBuilder::SetCreatedTime(base::Time& created_time) {
  44. created_time_ = created_time;
  45. return *this;
  46. }
  47. SavedDeskBuilder& SavedDeskBuilder::AddAshBrowserAppWindow(
  48. int window_id,
  49. std::vector<GURL> urls) {
  50. saved_desk_test_util::AddBrowserWindow(/*is_lacros=*/false, window_id, urls,
  51. restore_data_.get());
  52. return *this;
  53. }
  54. SavedDeskBuilder& SavedDeskBuilder::AddLacrosBrowserAppWindow(
  55. int window_id,
  56. std::vector<GURL> urls) {
  57. saved_desk_test_util::AddBrowserWindow(/*is_lacros=*/true, window_id, urls,
  58. restore_data_.get());
  59. return *this;
  60. }
  61. SavedDeskBuilder& SavedDeskBuilder::AddAshPwaAppWindow(int window_id,
  62. const std::string url) {
  63. saved_desk_test_util::AddPwaWindow(/*is_lacros=*/false, window_id, url,
  64. restore_data_.get());
  65. return *this;
  66. }
  67. SavedDeskBuilder& SavedDeskBuilder::AddLacrosPwaAppWindow(
  68. int window_id,
  69. const std::string url) {
  70. saved_desk_test_util::AddPwaWindow(/*is_lacros=*/true, window_id, url,
  71. restore_data_.get());
  72. return *this;
  73. }
  74. SavedDeskBuilder& SavedDeskBuilder::AddChromeAppWindow(
  75. int window_id,
  76. const std::string app_id) {
  77. saved_desk_test_util::AddGenericAppWindow(window_id, app_id,
  78. restore_data_.get());
  79. return *this;
  80. }
  81. SavedDeskBuilder& SavedDeskBuilder::AddGenericAppWindow(
  82. int window_id,
  83. const std::string app_id) {
  84. saved_desk_test_util::AddGenericAppWindow(window_id, app_id,
  85. restore_data_.get());
  86. return *this;
  87. }
  88. } // namespace desks_storage