#include "chrome/browser/sessions/app_session_service.h"
#include <algorithm>
#include <set>
#include <utility>
#include "build/build_config.h"
#include "build/chromeos_buildflags.h"
#include "chrome/browser/apps/app_service/launch_utils.h"
#include "chrome/browser/background/background_mode_manager.h"
#include "chrome/browser/browser_process.h"
#include "chrome/browser/defaults.h"
#include "chrome/browser/prefs/session_startup_pref.h"
#include "chrome/browser/profiles/profile.h"
#include "chrome/browser/sessions/session_common_utils.h"
#include "chrome/browser/sessions/session_data_deleter.h"
#include "chrome/browser/sessions/session_service_utils.h"
#include "chrome/browser/ui/browser_list.h"
#include "chrome/browser/ui/browser_window.h"
#include "components/sessions/content/content_serialized_navigation_builder.h"
#include "components/sessions/content/session_tab_helper.h"
#include "components/sessions/core/command_storage_manager.h"
#include "components/sessions/core/session_command.h"
#include "components/sessions/core/session_constants.h"
#include "components/sessions/core/session_types.h"
#include "content/public/browser/navigation_details.h"
#include "content/public/browser/navigation_entry.h"
#include "content/public/browser/session_storage_namespace.h"
#include "content/public/browser/web_contents.h"
#if BUILDFLAG(IS_CHROMEOS_ASH)
#include "chrome/browser/ash/crostini/crostini_util.h"
#endif
#if BUILDFLAG(IS_MAC)
#include "chrome/browser/app_controller_mac.h"
#endif
NavigationEntry;
WebContents;
ContentSerializedNavigationBuilder;
SerializedNavigationEntry;
AppSessionService::AppSessionService(Profile* profile)
: … { … }
AppSessionService::~AppSessionService() { … }
void AppSessionService::TabClosed(SessionID window_id, SessionID tab_id) { … }
void AppSessionService::WindowOpened(Browser* browser) { … }
void AppSessionService::WindowClosing(SessionID window_id) { … }
void AppSessionService::WindowClosed(SessionID window_id) { … }
void AppSessionService::SetWindowType(SessionID window_id, Browser::Type type) { … }
Browser::Type AppSessionService::GetDesiredBrowserTypeForWebContents() { … }
bool AppSessionService::ShouldRestoreWindowOfType(
sessions::SessionWindow::WindowType window_type) const { … }
void AppSessionService::ScheduleResetCommands() { … }
void AppSessionService::RebuildCommandsIfRequired() { … }