#include "chrome/browser/webapps/webapps_client_desktop.h"
#include "base/auto_reset.h"
#include "base/check_is_test.h"
#include "base/logging.h"
#include "base/no_destructor.h"
#include "build/build_config.h"
#include "chrome/browser/banners/app_banner_manager_desktop.h"
#include "chrome/browser/profiles/profile.h"
#include "chrome/browser/segmentation_platform/segmentation_platform_service_factory.h"
#include "chrome/browser/user_education/user_education_service.h"
#include "chrome/browser/user_education/user_education_service_factory.h"
#include "chrome/browser/web_applications/web_app_helpers.h"
#include "chrome/browser/web_applications/web_app_pref_guardrails.h"
#include "chrome/browser/web_applications/web_app_provider.h"
#include "chrome/browser/web_applications/web_app_registrar.h"
#include "chrome/browser/web_applications/web_app_tab_helper.h"
#include "chrome/browser/web_applications/web_app_ui_manager.h"
#include "chrome/common/url_constants.h"
#include "components/infobars/content/content_infobar_manager.h"
#include "components/security_state/content/security_state_tab_helper.h"
#include "components/webapps/browser/installable/installable_metrics.h"
#include "content/public/browser/web_contents.h"
#include "url/origin.h"
namespace webapps {
void WebappsClientDesktop::CreateSingleton() { … }
WebappInstallSource WebappsClientDesktop::GetInstallSource(
content::WebContents* web_contents,
InstallTrigger trigger) { … }
AppBannerManager* WebappsClientDesktop::GetAppBannerManager(
content::WebContents* web_contents) { … }
bool WebappsClientDesktop::DoesNewWebAppConflictWithExistingInstallation(
content::BrowserContext* browser_context,
const GURL& start_url,
const ManifestId& manifest_id) const { … }
bool WebappsClientDesktop::IsInAppBrowsingContext(
content::WebContents* web_contents) const { … }
bool WebappsClientDesktop::IsAppPartiallyInstalledForSiteUrl(
content::BrowserContext* browser_context,
const GURL& site_url) const { … }
bool WebappsClientDesktop::IsAppFullyInstalledForSiteUrl(
content::BrowserContext* browser_context,
const GURL& site_url) const { … }
void WebappsClientDesktop::SaveInstallationDismissedForMl(
content::BrowserContext* browser_context,
const GURL& manifest_id) const { … }
void WebappsClientDesktop::SaveInstallationIgnoredForMl(
content::BrowserContext* browser_context,
const GURL& manifest_id) const { … }
void WebappsClientDesktop::SaveInstallationAcceptedForMl(
content::BrowserContext* browser_context,
const GURL& manifest_id) const { … }
bool WebappsClientDesktop::IsMlPromotionBlockedByHistoryGuardrail(
content::BrowserContext* browser_context,
const GURL& manifest_id) const { … }
segmentation_platform::SegmentationPlatformService*
WebappsClientDesktop::GetSegmentationPlatformService(
content::BrowserContext* browser_context) const { … }
std::optional<webapps::AppId> WebappsClientDesktop::GetAppIdForWebContents(
content::WebContents* web_contents) { … }
}