#include "chrome/browser/web_applications/web_contents/web_app_data_retriever.h"
#include <memory>
#include <optional>
#include <set>
#include <string>
#include <utility>
#include <vector>
#include "base/functional/bind.h"
#include "base/functional/callback.h"
#include "base/strings/utf_string_conversions.h"
#include "base/task/sequenced_task_runner.h"
#include "chrome/browser/web_applications/web_app_constants.h"
#include "chrome/browser/web_applications/web_app_helpers.h"
#include "chrome/browser/web_applications/web_app_icon_generator.h"
#include "chrome/browser/web_applications/web_app_install_info.h"
#include "chrome/browser/web_applications/web_app_install_utils.h"
#include "components/webapps/browser/installable/installable_data.h"
#include "components/webapps/browser/installable/installable_logging.h"
#include "components/webapps/browser/installable/installable_manager.h"
#include "components/webapps/browser/installable/installable_params.h"
#include "components/webapps/common/web_app_id.h"
#include "components/webapps/common/web_page_metadata.mojom.h"
#include "components/webapps/common/web_page_metadata_agent.mojom.h"
#include "content/public/browser/browser_context.h"
#include "content/public/browser/navigation_entry.h"
#include "content/public/browser/render_frame_host.h"
#include "content/public/browser/web_contents.h"
#include "net/base/registry_controlled_domains/registry_controlled_domain.h"
#include "third_party/blink/public/common/associated_interfaces/associated_interface_provider.h"
#include "third_party/blink/public/common/manifest/manifest_util.h"
#include "third_party/blink/public/mojom/manifest/manifest.mojom.h"
#include "third_party/skia/include/core/SkColor.h"
namespace web_app {
void WebAppDataRetriever::PopulateWebAppInfoFromMetadata(
WebAppInstallInfo* info,
const webapps::mojom::WebPageMetadata& metadata) { … }
WebAppDataRetriever::WebAppDataRetriever() = default;
WebAppDataRetriever::~WebAppDataRetriever() = default;
void WebAppDataRetriever::GetWebAppInstallInfo(
content::WebContents* web_contents,
GetWebAppInstallInfoCallback callback) { … }
void WebAppDataRetriever::CheckInstallabilityAndRetrieveManifest(
content::WebContents* web_contents,
CheckInstallabilityCallback callback,
std::optional<webapps::InstallableParams> params) { … }
void WebAppDataRetriever::GetIcons(content::WebContents* web_contents,
const IconUrlSizeSet& extra_icon_urls,
bool skip_page_favicons,
bool fail_all_if_any_fail,
GetIconsCallback callback) { … }
void WebAppDataRetriever::WebContentsDestroyed() { … }
void WebAppDataRetriever::PrimaryMainFrameRenderProcessGone(
base::TerminationStatus status) { … }
void WebAppDataRetriever::OnGetWebPageMetadata(
mojo::AssociatedRemote<webapps::mojom::WebPageMetadataAgent> metadata_agent,
int last_committed_nav_entry_unique_id,
webapps::mojom::WebPageMetadataPtr metadata) { … }
void WebAppDataRetriever::OnDidPerformInstallableCheck(
const webapps::InstallableData& data) { … }
void WebAppDataRetriever::OnIconsDownloaded(
IconsDownloadedResult result,
IconsMap icons_map,
DownloadedIconsHttpResults icons_http_results) { … }
void WebAppDataRetriever::CallCallbackOnError(
webapps::InstallableStatusCode error_code) { … }
bool WebAppDataRetriever::ShouldStopRetrieval() const { … }
}