// 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/files/file_path.h"
#include "base/strings/string_piece_forward.h"
#include "components/services/app_service/public/mojom/types.mojom.h"
#include "components/version_info/channel.h"
#include "ui/base/layout.h"

namespace user_scripts {

// // Scheme we serve extension content from.
// extern const char kExtensionScheme[];

// // The name of the manifest inside an extension.
// extern const base::FilePath::CharType kManifestFilename[];

// // The name of the differential fingerprint file inside an extension.
// extern const base::FilePath::CharType kDifferentialFingerprintFilename[];

// // 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 name of the gzipped messages file inside an extension.
// extern const base::FilePath::CharType kGzippedMessagesFilename[];

// // 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[];

// // Name of the indexed ruleset directory for the Declarative Net Request API.
// extern const base::FilePath::CharType kIndexedRulesetDirectory[];

// // 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 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[];

// // Mime type strings
// extern const char kMimeTypeJpeg[];
// extern const char kMimeTypePng[];

// // The extension id of the Web Store component application.
// extern const char kWebStoreAppId[];

// // The key used for signing some pieces of data from the webstore.
// extern const uint8_t kWebstoreSignaturesPublicKey[];
// extern const size_t kWebstoreSignaturesPublicKeySize;

// // Thread identifier for the main renderer thread (as opposed to a service
// // worker thread).
// // This is the default thread id used for extension event listeners registered
// // from a non-service worker context
// extern const int kMainThreadId;

// using apps::mojom::AppLaunchSource;
// using apps::mojom::LaunchContainer;

// // This enum is used for the launch type the user wants to use for an
// // application.
// // Do not remove items or re-order this enum as it is used in preferences
// // and histograms.
// enum LaunchType {
//   LAUNCH_TYPE_INVALID = -1,
//   LAUNCH_TYPE_FIRST = 0,
//   LAUNCH_TYPE_PINNED = LAUNCH_TYPE_FIRST,
//   LAUNCH_TYPE_REGULAR = 1,
//   LAUNCH_TYPE_FULLSCREEN = 2,
//   LAUNCH_TYPE_WINDOW = 3,
//   NUM_LAUNCH_TYPES,

//   // Launch an app in the in the way a click on the NTP would,
//   // if no user pref were set.  Update this constant to change
//   // the default for the NTP and chrome.management.launchApp().
//   LAUNCH_TYPE_DEFAULT = LAUNCH_TYPE_REGULAR
// };

// // The origin of injected CSS.
enum CSSOrigin { CSS_ORIGIN_AUTHOR, CSS_ORIGIN_USER };
// static const CSSOrigin CSS_ORIGIN_LAST = CSS_ORIGIN_USER;

}  // namespace extensions

// namespace extension_misc {

// // Matches chrome.tabs.TAB_ID_NONE.
// const int kUnknownTabId = -1;

// // Matches chrome.windows.WINDOW_ID_NONE.
// const int kUnknownWindowId = -1;

// // Matches chrome.windows.WINDOW_ID_CURRENT.
// const int kCurrentWindowId = -2;

// 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_BITTY = 16,
//   EXTENSION_ICON_INVALID = 0,
// };

// // The extension id of the ChromeVox extension.
// extern const char kChromeVoxExtensionId[];

// // The extension id of the feedback component extension.
// extern const char kFeedbackExtensionId[];

// // The extension id of the PDF extension.
// extern const char kPdfExtensionId[];

// // The extension id of the Office Viewer component extension.
// extern const char kQuickOfficeComponentExtensionId[];

// // The extension id of the Office Viewer extension on the internal webstore.
// extern const char kQuickOfficeInternalExtensionId[];

// // The extension id of the Office Viewer extension.
// extern const char kQuickOfficeExtensionId[];

// // The extension id used for testing mimeHandlerPrivate.
// extern const char kMimeHandlerPrivateTestExtensionId[];

// // The extension id of the Camera application.
// extern const char kCameraAppId[];

// // The extension id of the devoloper version of Camera application.
// extern const char kCameraAppDevId[];

// // The extension id of the Chrome component application.
// extern const char kChromeAppId[];

// // Fake extension ID for the Lacros chrome browser application.
// extern const char kLacrosAppId[];

// // The extension id of the Files Manager application.
// extern const char kFilesManagerAppId[];

// // The extension id of the Calculator application.
// extern const char kCalculatorAppId[];

// // The extension id of the demo Calendar application.
// extern const char kCalendarDemoAppId[];

// // The extension id of the GMail application.
// extern const char kGMailAppId[];

// // The extension id of the demo Google Docs application.
// extern const char kGoogleDocsDemoAppId[];

// // The extension id of the Google Drive application.
// extern const char kGoogleDriveAppId[];

// // The extension id of the demo Google Sheets application.
// extern const char kGoogleSheetsDemoAppId[];

// // The extension id of the demo Google Slides application.
// extern const char kGoogleSlidesDemoAppId[];

// // The extension id of the Google Keep application.
// extern const char kGoogleKeepAppId[];

// // The extension id of the Youtube application.
// extern const char kYoutubeAppId[];

// // The extension id of the genius (Get Help) app.
// extern const char kGeniusAppId[];

// #if defined(OS_CHROMEOS)
// // The extension id of the default Demo Mode Highlights app.
// extern const char kHighlightsAppId[];

// // The extension id of the eve Demo Mode Highlights app.
// extern const char kHighlightsEveAppId[];

// // The extension id of the nocturne Demo Mode Highlights app.
// extern const char kHighlightsNocturneAppId[];

// // The extension id of the atlas Demo Mode Highlights app.
// extern const char kHighlightsAtlasAppId[];

// // The extension id of the default Demo Mode screensaver app.
// extern const char kScreensaverAppId[];

// // The extension id of the eve Demo Mode screensaver app.
// extern const char kScreensaverEveAppId[];

// // The extension id of the nocturne Demo Mode screensaver app.
// extern const char kScreensaverNocturneAppId[];

// // The extension id of the atlas Demo Mode screensaver app.
// extern const char kScreensaverAtlasAppId[];

// // The extension id of the kukui Demo Mode screensaver app.
// extern const char kScreensaverKukuiAppId[];

// // The id of the testing extension allowed in the signin profile.
// extern const char kSigninProfileTestExtensionId[];

// // Returns true if this app is part of the "system UI". Generally this is UI
// // that that on other operating systems would be considered part of the OS,
// // for example the file manager.
// bool IsSystemUIApp(base::StringPiece extension_id);
// #endif

// // The extension id for the production version of Hangouts.
// extern const char kProdHangoutsExtensionId[];

// // Extension ids used by Hangouts.
// extern const char* const kHangoutsExtensionIds[6];

// // Error message when enterprise policy blocks scripting of webpage.
// extern const char kPolicyBlockedScripting[];

// // The default block size for hashing used in content verification.
// extern const int kContentVerificationDefaultBlockSize;

// // The minimum severity of a log or error in order to report it to the browser.
// extern const logging::LogSeverity kMinimumSeverityToReportError;

// // The minimum channel where Service Worker based extensions can run.
// constexpr version_info::Channel kMinChannelForServiceWorkerBasedExtension =
//     version_info::Channel::DEV;

// // IDs for the Media Router Component Extension.
// extern const char kCastExtensionIdRelease[];
// extern const char kCastExtensionIdDev[];

// }  // namespace extension_misc

#endif  // EXTENSIONS_COMMON_CONSTANTS_H_
