1// Copyright (c) 2012 The Chromium Authors. All rights reserved. 2// Use of this source code is governed by a BSD-style license that can be 3// found in the LICENSE file. 4 5#ifndef EXTENSIONS_COMMON_CONSTANTS_H_ 6#define EXTENSIONS_COMMON_CONSTANTS_H_ 7 8#include "base/basictypes.h" 9#include "base/files/file_path.h" 10#include "ui/base/layout.h" 11 12namespace extensions { 13 14// Scheme we serve extension content from. 15extern const char kExtensionScheme[]; 16 17// Canonical schemes you can use as input to GURL.SchemeIs(). 18extern const char kExtensionResourceScheme[]; 19 20// The name of the manifest inside an extension. 21extern const base::FilePath::CharType kManifestFilename[]; 22 23// The name of locale folder inside an extension. 24extern const base::FilePath::CharType kLocaleFolder[]; 25 26// The name of the messages file inside an extension. 27extern const base::FilePath::CharType kMessagesFilename[]; 28 29// The base directory for subdirectories with platform-specific code. 30extern const base::FilePath::CharType kPlatformSpecificFolder[]; 31 32// A directory reserved for metadata, generated either by the webstore 33// or chrome. 34extern const base::FilePath::CharType kMetadataFolder[]; 35 36// Name of the verified contents file within the metadata folder. 37extern const base::FilePath::CharType kVerifiedContentsFilename[]; 38 39// Name of the computed hashes file within the metadata folder. 40extern const base::FilePath::CharType kComputedHashesFilename[]; 41 42// The name of the directory inside the profile where extensions are 43// installed to. 44extern const char kInstallDirectoryName[]; 45 46// The name of a temporary directory to install an extension into for 47// validation before finalizing install. 48extern const char kTempExtensionName[]; 49 50// The file to write our decoded images to, relative to the extension_path. 51extern const char kDecodedImagesFilename[]; 52 53// The file to write our decoded message catalogs to, relative to the 54// extension_path. 55extern const char kDecodedMessageCatalogsFilename[]; 56 57// The filename to use for a background page generated from 58// background.scripts. 59extern const char kGeneratedBackgroundPageFilename[]; 60 61// Path to imported modules. 62extern const char kModulesDir[]; 63 64// The file extension (.crx) for extensions. 65extern const base::FilePath::CharType kExtensionFileExtension[]; 66 67// The file extension (.pem) for private key files. 68extern const base::FilePath::CharType kExtensionKeyFileExtension[]; 69 70// Default frequency for auto updates, if turned on. 71extern const int kDefaultUpdateFrequencySeconds; 72 73// The name of the directory inside the profile where per-app local settings 74// are stored. 75extern const char kLocalAppSettingsDirectoryName[]; 76 77// The name of the directory inside the profile where per-extension local 78// settings are stored. 79extern const char kLocalExtensionSettingsDirectoryName[]; 80 81// The name of the directory inside the profile where per-app synced settings 82// are stored. 83extern const char kSyncAppSettingsDirectoryName[]; 84 85// The name of the directory inside the profile where per-extension synced 86// settings are stored. 87extern const char kSyncExtensionSettingsDirectoryName[]; 88 89// The name of the directory inside the profile where per-extension persistent 90// managed settings are stored. 91extern const char kManagedSettingsDirectoryName[]; 92 93// The name of the database inside the profile where chrome-internal 94// extension state resides. 95extern const char kStateStoreName[]; 96 97// The name of the database inside the profile where declarative extension 98// rules are stored. 99extern const char kRulesStoreName[]; 100 101// The URL query parameter key corresponding to multi-login user index. 102extern const char kAuthUserQueryKey[]; 103 104// Mime type strings 105extern const char kMimeTypeJpeg[]; 106extern const char kMimeTypePng[]; 107 108// The extension id of the Web Store component application. 109extern const char kWebStoreAppId[]; 110 111} // namespace extensions 112 113namespace extension_misc { 114 115// Matches chrome.windows.WINDOW_ID_NONE. 116const int kUnknownWindowId = -1; 117 118// Matches chrome.windows.WINDOW_ID_CURRENT. 119const int kCurrentWindowId = -2; 120 121// NOTE: If you change this list, you should also change kExtensionIconSizes 122// in cc file. 123enum ExtensionIcons { 124 EXTENSION_ICON_GIGANTOR = 512, 125 EXTENSION_ICON_EXTRA_LARGE = 256, 126 EXTENSION_ICON_LARGE = 128, 127 EXTENSION_ICON_MEDIUM = 48, 128 EXTENSION_ICON_SMALL = 32, 129 EXTENSION_ICON_SMALLISH = 24, 130 EXTENSION_ICON_ACTION = 19, 131 EXTENSION_ICON_BITTY = 16, 132 EXTENSION_ICON_INVALID = 0, 133}; 134 135// List of sizes for extension icons that can be defined in the manifest. 136extern const int kExtensionIconSizes[]; 137extern const size_t kNumExtensionIconSizes; 138 139struct IconRepresentationInfo { 140 // Size in pixels. 141 const int size; 142 // Size as a string that will be used to retrieve representation value from 143 // ExtensionAction SetIcon function arguments. 144 const char* const size_string; 145 // Scale factor for which the representation should be used. 146 const ui::ScaleFactor scale; 147}; 148 149// The icon representations for extension actions. 150extern const IconRepresentationInfo kExtensionActionIconSizes[]; 151const size_t kNumExtensionActionIconSizes = 2u; 152 153} // namespace extension_misc 154 155#endif // EXTENSIONS_COMMON_CONSTANTS_H_ 156