#include "chrome/browser/extensions/pending_extension_manager.h"
#include "base/containers/contains.h"
#include "base/containers/flat_set.h"
#include "base/feature_list.h"
#include "base/logging.h"
#include "base/metrics/histogram_functions.h"
#include "base/ranges/algorithm.h"
#include "base/version.h"
#include "chrome/browser/profiles/profile.h"
#include "chrome/browser/web_applications/preinstalled_web_apps/preinstalled_web_apps.h"
#include "chrome/common/chrome_features.h"
#include "chrome/common/extensions/extension_constants.h"
#include "content/public/browser/browser_thread.h"
#include "extensions/browser/extension_prefs.h"
#include "extensions/browser/extension_registry.h"
#include "extensions/common/constants.h"
#include "extensions/common/extension.h"
#include "url/gurl.h"
BrowserThread;
ManifestLocation;
namespace {
bool AlwaysInstall(const extensions::Extension* extension,
content::BrowserContext* context) { … }
std::string GetVersionString(const base::Version& version) { … }
}
namespace extensions {
PendingExtensionManager::PendingExtensionManager(
content::BrowserContext* context)
: … { … }
PendingExtensionManager::~PendingExtensionManager() { … }
const PendingExtensionInfo* PendingExtensionManager::GetById(
const std::string& id) const { … }
bool PendingExtensionManager::Remove(const std::string& id) { … }
bool PendingExtensionManager::IsIdPending(const std::string& id) const { … }
bool PendingExtensionManager::HasPendingExtensions() const { … }
bool PendingExtensionManager::HasPendingExtensionFromSync() const { … }
bool PendingExtensionManager::HasHighPriorityPendingExtension() const { … }
bool PendingExtensionManager::AddFromSync(
const std::string& id,
const GURL& update_url,
const base::Version& version,
PendingExtensionInfo::ShouldAllowInstallPredicate should_allow_install,
bool remote_install) { … }
bool PendingExtensionManager::AddFromExtensionImport(
const std::string& id,
const GURL& update_url,
PendingExtensionInfo::ShouldAllowInstallPredicate should_allow_install) { … }
bool PendingExtensionManager::AddFromExternalUpdateUrl(
const std::string& id,
const std::string& install_parameter,
const GURL& update_url,
ManifestLocation location,
int creation_flags,
bool mark_acknowledged) { … }
bool PendingExtensionManager::AddFromExternalFile(
const std::string& id,
mojom::ManifestLocation install_source,
const base::Version& version,
int creation_flags,
bool mark_acknowledged) { … }
std::list<std::string> PendingExtensionManager::GetPendingIdsForUpdateCheck()
const { … }
void PendingExtensionManager::AddObserver(Observer* observer) { … }
void PendingExtensionManager::RemoveObserver(Observer* observer) { … }
bool PendingExtensionManager::AddExtensionImpl(
const std::string& id,
const std::string& install_parameter,
const GURL& update_url,
const base::Version& version,
PendingExtensionInfo::ShouldAllowInstallPredicate should_allow_install,
bool is_from_sync,
mojom::ManifestLocation install_source,
int creation_flags,
bool mark_acknowledged,
bool remote_install) { … }
void PendingExtensionManager::
EnsureMigratedDefaultChromeAppIdsCachePopulated() { … }
void PendingExtensionManager::AddForTesting(
PendingExtensionInfo pending_extension_info) { … }
void PendingExtensionManager::AddToMap(const std::string& id,
PendingExtensionInfo info) { … }
}