#include "chrome/browser/web_applications/commands/manifest_update_check_command.h"
#include "base/feature_list.h"
#include "base/functional/callback_forward.h"
#include "base/i18n/time_formatting.h"
#include "base/notreached.h"
#include "base/strings/to_string.h"
#include "base/strings/utf_string_conversions.h"
#include "base/values.h"
#include "chrome/browser/web_applications/callback_utils.h"
#include "chrome/browser/web_applications/generated_icon_fix_util.h"
#include "chrome/browser/web_applications/locks/app_lock.h"
#include "chrome/browser/web_applications/manifest_update_manager.h"
#include "chrome/browser/web_applications/web_app.h"
#include "chrome/browser/web_applications/web_app_helpers.h"
#include "chrome/browser/web_applications/web_app_icon_operations.h"
#include "chrome/browser/web_applications/web_app_install_utils.h"
#include "chrome/browser/web_applications/web_app_registrar.h"
#include "chrome/browser/web_applications/web_app_registry_update.h"
#include "chrome/browser/web_applications/web_app_sync_bridge.h"
#include "chrome/browser/web_applications/web_app_ui_manager.h"
#include "chrome/browser/web_applications/web_contents/web_app_icon_downloader.h"
#include "chrome/common/chrome_features.h"
#include "content/public/browser/navigation_handle.h"
#include "content/public/browser/web_contents.h"
#include "content/public/browser/web_contents_observer.h"
#include "url/gurl.h"
#include "url/origin.h"
namespace web_app {
ManifestUpdateCheckCommand::ManifestUpdateCheckCommand(
const GURL& url,
const webapps::AppId& app_id,
base::Time check_time,
base::WeakPtr<content::WebContents> web_contents,
CompletedCallback callback,
std::unique_ptr<WebAppDataRetriever> data_retriever,
std::unique_ptr<WebAppIconDownloader> icon_downloader)
: … { … }
ManifestUpdateCheckCommand::~ManifestUpdateCheckCommand() = default;
void ManifestUpdateCheckCommand::StartWithLock(std::unique_ptr<AppLock> lock) { … }
void ManifestUpdateCheckCommand::DidFinishNavigation(
content::NavigationHandle* navigation_handle) { … }
void ManifestUpdateCheckCommand::DownloadNewManifestData(
base::OnceClosure next_step_callback) { … }
void ManifestUpdateCheckCommand::DownloadNewManifestJson(
WebAppDataRetriever::CheckInstallabilityCallback next_step_callback) { … }
void ManifestUpdateCheckCommand::StashNewManifestJson(
base::OnceClosure next_step_callback,
blink::mojom::ManifestPtr opt_manifest,
bool valid_manifest_for_web_app,
webapps::InstallableStatusCode installable_status) { … }
void ManifestUpdateCheckCommand::DownloadNewIconBitmaps(
WebAppIconDownloader::WebAppIconDownloaderCallback next_step_callback) { … }
void ManifestUpdateCheckCommand::StashNewIconBitmaps(
base::OnceClosure next_step_callback,
IconsDownloadedResult result,
IconsMap icons_map,
DownloadedIconsHttpResults icons_http_results) { … }
void ManifestUpdateCheckCommand::ValidateNewScopeExtensions(
OnDidGetWebAppOriginAssociations next_step_callback) { … }
void ManifestUpdateCheckCommand::StashValidatedScopeExtensions(
base::OnceClosure next_step_callback,
ScopeExtensions validated_scope_extensions) { … }
void ManifestUpdateCheckCommand::LoadExistingManifestData(
base::OnceClosure next_step_callback) { … }
void ManifestUpdateCheckCommand::LoadExistingAppIcons(
WebAppIconManager::ReadIconBitmapsCallback next_step_callback) { … }
void ManifestUpdateCheckCommand::StashExistingAppIcons(
base::OnceClosure next_step_callback,
IconBitmaps icon_bitmaps) { … }
void ManifestUpdateCheckCommand::LoadExistingShortcutsMenuIcons(
WebAppIconManager::ReadShortcutsMenuIconsCallback next_step_callback) { … }
void ManifestUpdateCheckCommand::StashExistingShortcutsMenuIcons(
base::OnceClosure next_step_callback,
ShortcutsMenuIconBitmaps shortcuts_menu_icon_bitmaps) { … }
void ManifestUpdateCheckCommand::CompareManifestData(
base::OnceClosure next_step_callback) { … }
void ManifestUpdateCheckCommand::ResolveIdentityChanges(
base::OnceClosure next_step_callback) { … }
IdentityUpdateDecision
ManifestUpdateCheckCommand::MakeAppNameIdentityUpdateDecision() const { … }
IdentityUpdateDecision
ManifestUpdateCheckCommand::MakeAppIconIdentityUpdateDecision() const { … }
void ManifestUpdateCheckCommand::ConfirmAppIdentityUpdate(
base::OnceClosure next_step_callback) { … }
void ManifestUpdateCheckCommand::OnIdentityUpdateConfirmationComplete(
base::OnceClosure next_step_callback,
AppIdentityUpdate app_identity_update) { … }
void ManifestUpdateCheckCommand::RevertIdentityChangesIfNeeded() { … }
void ManifestUpdateCheckCommand::CheckComplete() { … }
const WebApp& ManifestUpdateCheckCommand::GetWebApp() const { … }
bool ManifestUpdateCheckCommand::IsWebContentsDestroyed() { … }
void ManifestUpdateCheckCommand::CompleteCommandAndSelfDestruct(
ManifestUpdateCheckResult check_result) { … }
}