| // Copyright 2020 The Chromium Authors | 
 | // Use of this source code is governed by a BSD-style license that can be | 
 | // found in the LICENSE file. | 
 |  | 
 | #ifndef COMPONENTS_APP_RESTORE_APP_LAUNCH_INFO_H_ | 
 | #define COMPONENTS_APP_RESTORE_APP_LAUNCH_INFO_H_ | 
 |  | 
 | #include <optional> | 
 | #include <vector> | 
 |  | 
 | #include "base/component_export.h" | 
 | #include "base/files/file_path.h" | 
 | #include "components/app_restore/window_info.h" | 
 | #include "components/services/app_service/public/cpp/app_launch_util.h" | 
 | #include "components/services/app_service/public/cpp/intent.h" | 
 | #include "ui/base/window_open_disposition.h" | 
 |  | 
 | namespace app_restore { | 
 |  | 
 | // This class is the parameter for the interface SaveAppLaunchInfo, to save the | 
 | // app launch information. | 
 | struct COMPONENT_EXPORT(APP_RESTORE) AppLaunchInfo { | 
 |   AppLaunchInfo(const std::string& app_id, | 
 |                 int32_t window_id, | 
 |                 apps::LaunchContainer container, | 
 |                 WindowOpenDisposition disposition, | 
 |                 int64_t display_id, | 
 |                 std::vector<base::FilePath> launch_files, | 
 |                 apps::IntentPtr intent); | 
 |  | 
 |   AppLaunchInfo(const std::string& app_id, int32_t window_id); | 
 |  | 
 |   AppLaunchInfo(const std::string& app_id, | 
 |                 apps::LaunchContainer container, | 
 |                 WindowOpenDisposition disposition, | 
 |                 int64_t display_id, | 
 |                 std::vector<base::FilePath> launch_files, | 
 |                 apps::IntentPtr intent); | 
 |  | 
 |   AppLaunchInfo(const std::string& app_id, | 
 |                 int32_t event_flags, | 
 |                 int32_t arc_session_id, | 
 |                 int64_t display_id); | 
 |  | 
 |   AppLaunchInfo(const std::string& app_id, | 
 |                 int32_t event_flags, | 
 |                 apps::IntentPtr intent, | 
 |                 int32_t arc_session_id, | 
 |                 int64_t display_id); | 
 |  | 
 |   AppLaunchInfo(const std::string& app_id, | 
 |                 const std::string& handler_id, | 
 |                 std::vector<base::FilePath> launch_files); | 
 |  | 
 |   AppLaunchInfo(const AppLaunchInfo&) = delete; | 
 |   AppLaunchInfo& operator=(const AppLaunchInfo&) = delete; | 
 |  | 
 |   ~AppLaunchInfo(); | 
 |  | 
 |   std::string app_id; | 
 |   std::optional<int32_t> window_id; | 
 |  | 
 |   // App launch parameters. | 
 |   std::optional<int32_t> event_flag; | 
 |   std::optional<int32_t> container; | 
 |   std::optional<int32_t> disposition; | 
 |   std::optional<GURL> override_url; | 
 |   std::optional<int32_t> arc_session_id; | 
 |   std::optional<int64_t> display_id; | 
 |   std::optional<std::string> handler_id; | 
 |   std::vector<base::FilePath> file_paths; | 
 |   apps::IntentPtr intent = nullptr; | 
 |  | 
 |   // Additional info for browsers. | 
 |   BrowserExtraInfo browser_extra_info; | 
 | }; | 
 |  | 
 | }  // namespace app_restore | 
 |  | 
 | #endif  // COMPONENTS_APP_RESTORE_APP_LAUNCH_INFO_H_ |