#include "chrome/browser/ui/webui/app_management/app_management_page_handler_base.h"
#include <memory>
#include <set>
#include <string>
#include <utility>
#include <vector>
#include "base/containers/fixed_flat_set.h"
#include "base/functional/callback_helpers.h"
#include "base/i18n/message_formatter.h"
#include "base/notreached.h"
#include "base/strings/string_util.h"
#include "base/strings/stringprintf.h"
#include "base/strings/utf_string_conversions.h"
#include "build/build_config.h"
#include "build/chromeos_buildflags.h"
#include "chrome/browser/apps/app_service/app_service_proxy.h"
#include "chrome/browser/apps/app_service/app_service_proxy_factory.h"
#include "chrome/browser/profiles/profile.h"
#include "chrome/browser/web_applications/locks/all_apps_lock.h"
#include "chrome/browser/web_applications/os_integration/os_integration_manager.h"
#include "chrome/browser/web_applications/web_app_utils.h"
#include "chrome/grit/generated_resources.h"
#include "components/app_constants/constants.h"
#include "components/services/app_service/public/cpp/app_registry_cache.h"
#include "components/services/app_service/public/cpp/intent_filter.h"
#include "components/services/app_service/public/cpp/intent_filter_util.h"
#include "components/services/app_service/public/cpp/intent_util.h"
#include "components/services/app_service/public/cpp/permission.h"
#include "components/services/app_service/public/cpp/types_util.h"
#include "extensions/common/constants.h"
#include "mojo/public/cpp/bindings/pending_receiver.h"
#include "mojo/public/cpp/bindings/pending_remote.h"
#include "mojo/public/cpp/bindings/receiver.h"
#include "mojo/public/cpp/bindings/remote.h"
#include "third_party/blink/public/common/features.h"
#include "ui/base/l10n/l10n_util.h"
#include "ui/events/event_constants.h"
#include "ui/webui/resources/cr_components/app_management/app_management.mojom.h"
#include "url/gurl.h"
#include "url/origin.h"
#if BUILDFLAG(IS_CHROMEOS_ASH)
#include "chrome/browser/ash/app_list/arc/arc_app_utils.h"
#endif
#if BUILDFLAG(IS_WIN)
#include "base/win/default_apps_util.h"
#endif
namespace {
const char kFileHandlingLearnMore[] = …;
bool ShouldHideMoreSettings(const std::string app_id) { … }
bool ShouldHidePinToShelf(const std::string app_id) { … }
bool ShouldHideStoragePermission(const std::string app_id) { … }
bool CanShowDefaultAppAssociationsUi() { … }
}
AppManagementPageHandlerBase::~AppManagementPageHandlerBase() { … }
void AppManagementPageHandlerBase::GetApps(GetAppsCallback callback) { … }
void AppManagementPageHandlerBase::GetApp(const std::string& app_id,
GetAppCallback callback) { … }
void AppManagementPageHandlerBase::SetPermission(
const std::string& app_id,
apps::PermissionPtr permission) { … }
void AppManagementPageHandlerBase::OpenNativeSettings(
const std::string& app_id) { … }
void AppManagementPageHandlerBase::SetFileHandlingEnabled(
const std::string& app_id,
bool enabled) { … }
AppManagementPageHandlerBase::AppManagementPageHandlerBase(
mojo::PendingReceiver<app_management::mojom::PageHandler> receiver,
mojo::PendingRemote<app_management::mojom::Page> page,
Profile* profile)
: … { … }
app_management::mojom::AppPtr AppManagementPageHandlerBase::CreateApp(
const std::string& app_id) { … }
void AppManagementPageHandlerBase::NotifyAppChanged(const std::string& app_id) { … }
app_management::mojom::AppPtr
AppManagementPageHandlerBase::CreateAppFromAppUpdate(
const apps::AppUpdate& update) { … }
void AppManagementPageHandlerBase::OnAppUpdate(const apps::AppUpdate& update) { … }
void AppManagementPageHandlerBase::OnAppRegistryCacheWillBeDestroyed(
apps::AppRegistryCache* cache) { … }