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