#include "chrome/browser/ui/extensions/extensions_overrides/simple_overrides.h"
#include "extensions/common/api/incognito.h"
#include "extensions/common/extension.h"
#include "extensions/common/manifest_constants.h"
namespace {
constexpr const char* kAllowlistedManifestKeys[] = {
"author",
extensions::manifest_keys::kAboutPage,
extensions::manifest_keys::kCurrentLocale,
extensions::manifest_keys::kDefaultLocale,
extensions::manifest_keys::kDescription,
extensions::manifest_keys::kDifferentialFingerprint,
extensions::manifest_keys::kHomepageURL,
extensions::manifest_keys::kIcons,
extensions::manifest_keys::kIconVariants,
extensions::manifest_keys::kKey,
extensions::manifest_keys::kManifestVersion,
extensions::manifest_keys::kMinimumChromeVersion,
extensions::manifest_keys::kName,
extensions::manifest_keys::kOfflineEnabled,
extensions::manifest_keys::kOptionsPage,
extensions::manifest_keys::kOptionsUI,
extensions::manifest_keys::kSettingsOverride,
extensions::manifest_keys::kShortName,
extensions::manifest_keys::kUpdateURL,
extensions::manifest_keys::kVersion,
extensions::manifest_keys::kVersionName,
extensions::api::incognito::ManifestKeys::kIncognito,
};
}
namespace simple_overrides {
bool IsSimpleOverrideExtension(const extensions::Extension& extension) {
for (const auto [key, value] : extension.manifest()->available_values()) {
if (std::ranges::find(kAllowlistedManifestKeys, key) ==
std::end(kAllowlistedManifestKeys)) {
return false;
}
}
return true;
}
std::vector<std::string> GetAllowlistedManifestKeysForTesting() {
return std::vector<std::string>(std::begin(kAllowlistedManifestKeys),
std::end(kAllowlistedManifestKeys));
}
}