// Copyright (c) 2012 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef EXTENSIONS_COMMON_CONSTANTS_H_
#define EXTENSIONS_COMMON_CONSTANTS_H_
#include "base/basictypes.h"
#include "base/files/file_path.h"
namespace extensions {
// Scheme we serve extension content from.
extern const char kExtensionScheme[];
// Canonical schemes you can use as input to GURL.SchemeIs().
extern const char kExtensionResourceScheme[];
// The name of the manifest inside an extension.
extern const base::FilePath::CharType kManifestFilename[];
// The name of locale folder inside an extension.
extern const base::FilePath::CharType kLocaleFolder[];
// The name of the messages file inside an extension.
extern const base::FilePath::CharType kMessagesFilename[];
// The base directory for subdirectories with platform-specific code.
extern const base::FilePath::CharType kPlatformSpecificFolder[];
// A directory reserved for metadata, generated either by the webstore
// or chrome.
extern const base::FilePath::CharType kMetadataFolder[];
// Name of the verified contents file within the metadata folder.
extern const base::FilePath::CharType kVerifiedContentsFilename[];
// Name of the computed hashes file within the metadata folder.
extern const base::FilePath::CharType kComputedHashesFilename[];
// The name of the directory inside the profile where extensions are
// installed to.
extern const char kInstallDirectoryName[];
// The name of a temporary directory to install an extension into for
// validation before finalizing install.
extern const char kTempExtensionName[];
// The file to write our decoded images to, relative to the extension_path.
extern const char kDecodedImagesFilename[];
// The file to write our decoded message catalogs to, relative to the
// extension_path.
extern const char kDecodedMessageCatalogsFilename[];
// The filename to use for a background page generated from
// background.scripts.
extern const char kGeneratedBackgroundPageFilename[];
// Path to imported modules.
extern const char kModulesDir[];
// The file extension (.crx) for extensions.
extern const base::FilePath::CharType kExtensionFileExtension[];
// The file extension (.pem) for private key files.
extern const base::FilePath::CharType kExtensionKeyFileExtension[];
// Default frequency for auto updates, if turned on.
extern const int kDefaultUpdateFrequencySeconds;
// The name of the directory inside the profile where per-app local settings
// are stored.
extern const char kLocalAppSettingsDirectoryName[];
// The name of the directory inside the profile where per-extension local
// settings are stored.
extern const char kLocalExtensionSettingsDirectoryName[];
// The name of the directory inside the profile where per-app synced settings
// are stored.
extern const char kSyncAppSettingsDirectoryName[];
// The name of the directory inside the profile where per-extension synced
// settings are stored.
extern const char kSyncExtensionSettingsDirectoryName[];
// The name of the directory inside the profile where per-extension persistent
// managed settings are stored.
extern const char kManagedSettingsDirectoryName[];
// The name of the database inside the profile where chrome-internal
// extension state resides.
extern const char kStateStoreName[];
// The name of the database inside the profile where declarative extension
// rules are stored.
extern const char kRulesStoreName[];
// The URL query parameter key corresponding to multi-login user index.
extern const char kAuthUserQueryKey[];
} // namespace extensions
namespace extension_misc {
// Matches chrome.windows.WINDOW_ID_NONE.
const int kUnknownWindowId = -1;
// Matches chrome.windows.WINDOW_ID_CURRENT.
const int kCurrentWindowId = -2;
// Note: this structure is an ASN.1 which encodes the algorithm used
// with its parameters. This is defined in PKCS #1 v2.1 (RFC 3447).
// It is encoding: { OID sha1WithRSAEncryption PARAMETERS NULL }
const uint8 kSignatureAlgorithm[15] = {0x30, 0x0d, 0x06, 0x09, 0x2a,
0x86, 0x48, 0x86, 0xf7, 0x0d,
0x01, 0x01, 0x05, 0x05, 0x00};
// NOTE: If you change this list, you should also change kExtensionIconSizes
// in cc file.
enum ExtensionIcons {
EXTENSION_ICON_GIGANTOR = 512,
EXTENSION_ICON_EXTRA_LARGE = 256,
EXTENSION_ICON_LARGE = 128,
EXTENSION_ICON_MEDIUM = 48,
EXTENSION_ICON_SMALL = 32,
EXTENSION_ICON_SMALLISH = 24,
EXTENSION_ICON_ACTION = 19,
EXTENSION_ICON_BITTY = 16,
EXTENSION_ICON_INVALID = 0,
};
// List of sizes for extension icons that can be defined in the manifest.
extern const int kExtensionIconSizes[];
extern const size_t kNumExtensionIconSizes;
// List of sizes for extension icons that can be defined in the manifest.
extern const int kExtensionActionIconSizes[];
extern const size_t kNumExtensionActionIconSizes;
} // namespace extension_misc
#endif // EXTENSIONS_COMMON_CONSTANTS_H_