#include "chrome/browser/web_applications/web_app_command_manager.h"
#include <memory>
#include <optional>
#include <tuple>
#include <utility>
#include "base/containers/contains.h"
#include "base/feature_list.h"
#include "base/functional/bind.h"
#include "base/functional/callback.h"
#include "base/functional/callback_forward.h"
#include "base/location.h"
#include "base/memory/weak_ptr.h"
#include "base/run_loop.h"
#include "base/task/sequenced_task_runner.h"
#include "base/types/pass_key.h"
#include "base/values.h"
#include "chrome/browser/browser_process.h"
#include "chrome/browser/profiles/profile.h"
#include "chrome/browser/profiles/profile_manager.h"
#include "chrome/browser/profiles/profile_manager_observer.h"
#include "chrome/browser/web_applications/commands/web_app_command.h"
#include "chrome/browser/web_applications/locks/lock.h"
#include "chrome/browser/web_applications/locks/web_app_lock_manager.h"
#include "chrome/browser/web_applications/web_app_constants.h"
#include "chrome/browser/web_applications/web_app_install_manager.h"
#include "chrome/browser/web_applications/web_app_install_utils.h"
#include "chrome/browser/web_applications/web_app_provider.h"
#include "chrome/browser/web_applications/web_contents/web_contents_manager.h"
#include "chrome/common/chrome_features.h"
#include "components/webapps/browser/web_contents/web_app_url_loader.h"
#include "content/public/browser/web_contents.h"
namespace web_app {
WebAppCommandManager::WebAppCommandManager(Profile* profile)
: … { … }
WebAppCommandManager::~WebAppCommandManager() { … }
void WebAppCommandManager::SetProvider(base::PassKey<WebAppProvider>,
WebAppProvider& provider) { … }
void WebAppCommandManager::Start() { … }
void WebAppCommandManager::ScheduleCommand(
std::unique_ptr<internal::CommandBase> command,
const base::Location& location) { … }
void WebAppCommandManager::StartCommand(
base::WeakPtr<internal::CommandBase> command,
base::OnceClosure start_command) { … }
void WebAppCommandManager::Shutdown() { … }
base::Value WebAppCommandManager::ToDebugValue() { … }
void WebAppCommandManager::LogToInstallManager(base::Value::Dict log) { … }
bool WebAppCommandManager::IsInstallingForWebContents(
const content::WebContents* web_contents) const { … }
std::size_t WebAppCommandManager::GetCommandCountForTesting() { … }
int WebAppCommandManager::GetStartedCommandCountForTesting() { … }
std::size_t
WebAppCommandManager::GetCommandsInstallingForWebContentsForTesting() { … }
void WebAppCommandManager::AwaitAllCommandsCompleteForTesting() { … }
void WebAppCommandManager::OnCommandComplete(
base::PassKey<internal::CommandBase>,
internal::CommandBase* command,
CommandResult result,
base::OnceClosure completion_callback) { … }
void WebAppCommandManager::OnProfileMarkedForPermanentDeletion(
Profile* profile_to_be_deleted) { … }
void WebAppCommandManager::OnProfileManagerDestroying() { … }
void WebAppCommandManager::ClearSharedWebContentsIfUnused() { … }
void WebAppCommandManager::AddCommandToLog(
const internal::CommandBase& command) { … }
void WebAppCommandManager::AddValueToLog(base::Value value) { … }
content::WebContents* WebAppCommandManager::EnsureWebContentsCreated(
base::PassKey<WebAppLockManager>) { … }
content::WebContents* WebAppCommandManager::EnsureWebContentsCreated() { … }
}