#ifndef EXTENSIONS_COMMON_CONSTANTS_H_
#define EXTENSIONS_COMMON_CONSTANTS_H_
#include <cstddef>
#include <cstdint>
#include <string_view>
#include "base/containers/span.h"
#include "base/files/file_path.h"
#include "base/time/time.h"
#include "build/chromeos_buildflags.h"
#include "extensions/common/extensions_export.h"
namespace extensions {
inline constexpr char kExtensionScheme[] = "chrome-extension";
inline constexpr char kExtensionInvalidRequestURL[] =
"chrome-extension://invalid/";
#if BUILDFLAG(ARKWEB_ARKWEB_EXTENSIONS)
inline constexpr char kArkwebExtensionScheme[] = "arkweb-extension";
#endif
inline constexpr base::FilePath::CharType kManifestFilename[] =
FILE_PATH_LITERAL("manifest.json");
inline constexpr base::FilePath::CharType kDifferentialFingerprintFilename[] =
FILE_PATH_LITERAL("manifest.fingerprint");
inline constexpr base::FilePath::CharType kLocaleFolder[] =
FILE_PATH_LITERAL("_locales");
inline constexpr base::FilePath::CharType kMessagesFilename[] =
FILE_PATH_LITERAL("messages.json");
inline constexpr base::FilePath::CharType kGzippedMessagesFilename[] =
FILE_PATH_LITERAL("messages.json.gz");
inline constexpr base::FilePath::CharType kPlatformSpecificFolder[] =
FILE_PATH_LITERAL("_platform_specific");
inline constexpr base::FilePath::CharType kMetadataFolder[] =
FILE_PATH_LITERAL("_metadata");
inline constexpr base::FilePath::CharType kVerifiedContentsFilename[] =
FILE_PATH_LITERAL("verified_contents.json");
inline constexpr base::FilePath::CharType kComputedHashesFilename[] =
FILE_PATH_LITERAL("computed_hashes.json");
inline constexpr base::FilePath::CharType kIndexedRulesetDirectory[] =
FILE_PATH_LITERAL("generated_indexed_rulesets");
inline constexpr char kInstallDirectoryName[] = "Extensions";
inline constexpr char kUnpackedInstallDirectoryName[] = "UnpackedExtensions";
inline constexpr char kTempExtensionName[] = "CRX_INSTALL";
inline constexpr char kDecodedMessageCatalogsFilename[] =
"DECODED_MESSAGE_CATALOGS";
inline constexpr char kGeneratedBackgroundPageFilename[] =
"_generated_background_page.html";
inline constexpr char kFaviconSourcePath[] = "_favicon";
inline constexpr char kModulesDir[] = "_modules";
inline constexpr base::FilePath::CharType kExtensionFileExtension[] =
FILE_PATH_LITERAL(".crx");
inline constexpr base::FilePath::CharType kExtensionKeyFileExtension[] =
FILE_PATH_LITERAL(".pem");
inline constexpr base::TimeDelta kDefaultUpdateFrequency = base::Hours(5);
inline constexpr base::FilePath::CharType kLocalAppSettingsDirectoryName[] =
FILE_PATH_LITERAL("Local App Settings");
inline constexpr base::FilePath::CharType
kLocalExtensionSettingsDirectoryName[] =
FILE_PATH_LITERAL("Local Extension Settings");
inline constexpr base::FilePath::CharType kSyncAppSettingsDirectoryName[] =
FILE_PATH_LITERAL("Sync App Settings");
inline constexpr base::FilePath::CharType
kSyncExtensionSettingsDirectoryName[] =
FILE_PATH_LITERAL("Sync Extension Settings");
inline constexpr base::FilePath::CharType kManagedSettingsDirectoryName[] =
FILE_PATH_LITERAL("Managed Extension Settings");
inline constexpr base::FilePath::CharType kStateStoreName[] =
FILE_PATH_LITERAL("Extension State");
inline constexpr base::FilePath::CharType kRulesStoreName[] =
FILE_PATH_LITERAL("Extension Rules");
inline constexpr base::FilePath::CharType kScriptsStoreName[] =
FILE_PATH_LITERAL("Extension Scripts");
inline constexpr char kSettingsDatabaseUMAClientName[] = "Settings";
inline constexpr char kRulesDatabaseUMAClientName[] = "Rules";
inline constexpr char kStateDatabaseUMAClientName[] = "State";
inline constexpr char kScriptsDatabaseUMAClientName[] = "Scripts";
inline constexpr char kMimeTypeJpeg[] = "image/jpeg";
inline constexpr char kMimeTypePng[] = "image/png";
inline constexpr char kWebStoreAppId[] = "ahfgeienlihckogmohjhadlkjgocpleb";
EXTENSIONS_EXPORT extern const base::span<const uint8_t>
kWebstoreSignaturesPublicKey;
inline constexpr char kUpdateURLData[] = "update_url_data";
inline constexpr int kMainThreadId = 0;
enum class AppLaunchSource {
kSourceNone = 0,
kSourceUntracked = 1,
kSourceAppLauncher = 2,
kSourceNewTabPage = 3,
kSourceReload = 4,
kSourceRestart = 5,
kSourceLoadAndLaunch = 6,
kSourceCommandLine = 7,
kSourceFileHandler = 8,
kSourceUrlHandler = 9,
kSourceSystemTray = 10,
kSourceAboutPage = 11,
kSourceKeyboard = 12,
kSourceExtensionsPage = 13,
kSourceManagementApi = 14,
kSourceEphemeralAppDeprecated = 15,
kSourceBackground = 16,
kSourceKiosk = 17,
kSourceChromeInternal = 18,
kSourceTest = 19,
kSourceInstalledNotification = 20,
kSourceContextMenu = 21,
kSourceArc = 22,
kSourceIntentUrl = 23,
kSourceRunOnOsLogin = 24,
kSourceProtocolHandler = 25,
kSourceReparenting = 26,
kSourceAppHomePage = 27,
kSourceFocusMode = 28,
kSourceSparky = 29,
kMaxValue = kSourceSparky,
};
enum LaunchType {
kInvalid = -1,
kFirst = 0,
kPinned = kFirst,
kRegular = 1,
kFullscreen = 2,
kWindow = 3,
kNumLaunchTypes,
kDefault = kRegular,
LAUNCH_TYPE_INVALID = kInvalid,
LAUNCH_TYPE_FIRST = kFirst,
LAUNCH_TYPE_PINNED = kPinned,
LAUNCH_TYPE_REGULAR = kRegular,
LAUNCH_TYPE_FULLSCREEN = kFullscreen,
LAUNCH_TYPE_WINDOW = kWindow,
NUM_LAUNCH_TYPES = kNumLaunchTypes,
LAUNCH_TYPE_DEFAULT = kDefault
};
}
namespace extension_misc {
inline constexpr int kUnknownTabId = -1;
inline constexpr int kUnknownWindowId = -1;
inline constexpr int kCurrentWindowId = -2;
using ExtensionIcons = int;
inline constexpr ExtensionIcons EXTENSION_ICON_GIGANTOR = 512;
inline constexpr ExtensionIcons EXTENSION_ICON_EXTRA_LARGE = 256;
inline constexpr ExtensionIcons EXTENSION_ICON_LARGE = 128;
inline constexpr ExtensionIcons EXTENSION_ICON_MEDIUM = 48;
inline constexpr ExtensionIcons EXTENSION_ICON_SMALL = 32;
inline constexpr ExtensionIcons EXTENSION_ICON_SMALLISH = 24;
inline constexpr ExtensionIcons EXTENSION_ICON_BITTY = 16;
inline constexpr ExtensionIcons EXTENSION_ICON_INVALID = 0;
inline constexpr char kChromeVoxExtensionId[] =
#if BUILDFLAG(IS_CHROMEOS)
"mndnfokpggljbaajbnioimlmbfngpief";
#else
"kgejglhpjiefppelpmljglcjbhoiplfn";
#endif
inline constexpr char kPdfExtensionId[] = "mhjfbmdgcfjbbpaeojofohoefgiehjai";
#if BUILDFLAG(IS_CHROMEOS)
inline constexpr char kQuickOfficeComponentExtensionId[] =
"bpmcpldpdmajfigpchkicefoigmkfalc";
#endif
inline constexpr char kQuickOfficeInternalExtensionId[] =
"ehibbfinohgbchlgdbfpikodjaojhccn";
inline constexpr char kQuickOfficeExtensionId[] =
"gbkeegbaiigmenfmjfclcdgdpimamgkj";
inline constexpr char kMimeHandlerPrivateTestExtensionId[] =
"oickdpebdnfbgkcaoklfcdhjniefkcji";
inline constexpr char kFilesManagerAppId[] = "hhaomjibdihmijegdhdafkllkbggdgoj";
inline constexpr char kFilesManagerSWAId[] = "fkiggjmkendpmbegkagpmagjepfkpmeb";
inline constexpr char kCalculatorAppId[] = "joodangkbfjnajiiifokapkpmhfnpleo";
inline constexpr char kCalendarDemoAppId[] = "fpgfohogebplgnamlafljlcidjedbdeb";
inline constexpr char kCameraAppId[] = "njfbnohfdkmbmnjapinfcopialeghnmh";
inline constexpr char kGmailAppId[] = "pjkljhegncpnkpknbcohdijeoejaedia";
inline constexpr char kGoogleDocsDemoAppId[] =
"chdaoodbokekbiiphekbfjdmiodccljl";
inline constexpr char kGoogleDocsPwaAppId[] =
"cepkndkdlbllfhpfhledabdcdbidehkd";
inline constexpr char kGoogleDriveAppId[] = "apdfllckaahabafndbhieahigkjlhalf";
inline constexpr char kGoogleMeetPwaAppId[] =
"dkainijpcknoofiakgccliajhbmlbhji";
inline constexpr char kGoogleSheetsDemoAppId[] =
"nifkmgcdokhkjghdlgflonppnefddien";
inline constexpr char kGoogleSheetsPwaAppId[] =
"hcgjdbbnhkmopplfiibmdgghhdhbiidh";
inline constexpr char kGoogleSlidesDemoAppId[] =
"hdmobeajeoanbanmdlabnbnlopepchip";
inline constexpr char kGoogleKeepAppId[] = "hmjkmjkepdijhoojdojkdfohbdgmmhki";
inline constexpr char kYoutubeAppId[] = "blpcfgokakmgnkcojhhkbfbldkacnbeo";
inline constexpr char kYoutubePwaAppId[] = "agimnkijcaahngcdmfeangaknmldooml";
inline constexpr char kSpotifyAppId[] = "pjibgclleladliembfgfagdaldikeohf";
inline constexpr char kBeFunkyAppId[] = "fjoomcalbeohjbnlcneddljemclcekeg";
inline constexpr char kClipchampAppId[] = "pfepfhbcedkbjdkanpimmmdjfgoddhkg";
inline constexpr char kGeForceNowAppId[] = "egmafekfmcnknbdlbfbhafbllplmjlhn";
inline constexpr char kZoomAppId[] = "ddamjdmghnhnicfnliimfobemngigiom";
inline constexpr char kSumoAppId[] = "genadphlobhbpdnafiphnppelkagmghm";
inline constexpr char kGeminiAppId[] = "caidcmannjgahlnbpmidmiecjcoiiigg";
inline constexpr char kGeminiAppByPolicyId[] =
"gdfaincndogidkdcdkhapmbffkckdkhn";
inline constexpr char kAdobeSparkAppId[] = "magefboookdoiehjohjmbjmkepngibhm";
inline constexpr char kGoogleDocsAppId[] = "aohghmighlieiainnegkcijnfilokake";
inline constexpr char kGoogleSheetsAppId[] = "felcaaldnbdncclmgdcncolpebgiejap";
inline constexpr char kGoogleSlidesAppId[] = "aapocclcgogkmnckokdopfmhonfmgoek";
#if BUILDFLAG(IS_CHROMEOS)
inline constexpr char kSigninProfileTestExtensionId[] =
"mecfefiddjlmabpeilblgegnbioikfmp";
inline constexpr char kGuestModeTestExtensionId[] =
"behllobkkfkfnphdnhnkndlbkcpglgmj";
inline constexpr char kAmazonLunaAppIdCA[] = "agmpcdnpkedhhjldepagpgebdindblfd";
inline constexpr char kAmazonLunaAppIdDE[] = "lhedecbjcehgjijkmihhhfmdicbkkgkm";
inline constexpr char kAmazonLunaAppIdES[] = "befdkfemegjbohkncpbchjcgndhgajfg";
inline constexpr char kAmazonLunaAppIdFR[] = "khklcoifabacgdieoekhmfcilgfmdmbh";
inline constexpr char kAmazonLunaAppIdIT[] = "agcdabkknemgfgbjdpckaehhncgkfcdi";
inline constexpr char kAmazonLunaAppIdNL[] = "opkohmiamoeiojmgmhgelaaieecjifod";
inline constexpr char kAmazonLunaAppIdPL[] = "alddamigfjonblpigkpieckmhbjdgadd";
inline constexpr char kAmazonLunaAppIdUK[] = "aolalpmkbpdlpjhmhhmcobipjkhlimkj";
inline constexpr char kAmazonLunaAppIdUS[] = "mdjpfbokiopdhidmalnpnmekjbajopld";
inline constexpr char kBoosteroidAppId[] = "ncjnbebeamfkkddkofiijnlpkcnobgin";
inline constexpr char kCoolMathGamesAppId[] =
"moflhbhdponafajiefoaamnkbhpigdoc";
inline constexpr char kNowGGAppIdUK[] = "nphngfagcmpkdicidafibmfcijfighif";
inline constexpr char kNowGGAppIdUS[] = "dgfmnbibgdaghllenpkjalbnljbffabj";
inline constexpr char kPokiAppId[] = "nccldcgjjeeglpgcgebibmhmkakanigi";
inline constexpr char kXboxCloudGamingAppId[] =
"chcecgcbjkilfgeccdhoeaillkophnhg";
EXTENSIONS_EXPORT bool IsSystemUIApp(std::string_view extension_id);
inline constexpr char kHighlightsAppId[] = "lpmakjfjcconjeehbidjclhdlpjmfjjj";
inline constexpr char kScreensaverAppId[] = "mnoijifedipmbjaoekhadjcijipaijjc";
inline constexpr char kNewAttractLoopAppId[] =
"igilkdghcdehjdcpndaodgnjgdggiemm";
inline constexpr char kNewHighlightsAppId[] =
"enchmnkoajljphdmahljlebfmpkkbnkj";
inline constexpr char kDemoModeSWA[] = "bmpphkbpdoljalglilnffmikoggpdolg";
EXTENSIONS_EXPORT bool IsDemoModeChromeApp(std::string_view extension_id);
#endif
EXTENSIONS_EXPORT bool IsQuickOfficeExtension(std::string_view extension_id);
EXTENSIONS_EXPORT bool IsPreinstalledAppId(std::string_view app_id);
inline constexpr char kPolicyBlockedScripting[] =
"This page cannot be scripted due to an ExtensionsSettings policy.";
inline constexpr char kCookiesAllowedIncognitoErrorMessage[] =
"Third-party cookies are blocked in incognito and cannot be re-allowed.";
inline constexpr char kIncognitoErrorMessage[] =
"You do not have permission to access incognito preferences.";
inline constexpr char kIncognitoSessionOnlyErrorMessage[] =
"You cannot set a preference with scope 'incognito_session_only' when no "
"incognito window is open.";
inline constexpr char kInvalidColorError[] =
"The color specification could not be parsed.";
inline constexpr int kContentVerificationDefaultBlockSize = 4096;
inline constexpr char kDocsOfflineExtensionId[] =
"ghbmnnjooekpmoecnnnilnnbdlolhkhi";
inline constexpr char kId[] = "id";
}
#endif