1// Copyright 2014 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#include "chrome/browser/extensions/extension_management_constants.h"
6
7#include "base/macros.h"
8
9namespace extensions {
10namespace schema_constants {
11
12const char kWildcard[] = "*";
13
14const char kInstallationMode[] = "installation_mode";
15const char kAllowed[] = "allowed";
16const char kBlocked[] = "blocked";
17const char kForceInstalled[] = "force_installed";
18const char kNormalInstalled[] = "normal_installed";
19
20const char kUpdateUrl[] = "update_url";
21const char kInstallSources[] = "install_sources";
22const char kAllowedTypes[] = "allowed_types";
23
24const char kUpdateUrlPrefix[] = "update_url:";
25
26const AllowedTypesMapEntry kAllowedTypesMap[] = {
27  { "extension",           Manifest::TYPE_EXTENSION },
28  { "theme",               Manifest::TYPE_THEME },
29  { "user_script",         Manifest::TYPE_USER_SCRIPT },
30  { "hosted_app",          Manifest::TYPE_HOSTED_APP },
31  { "legacy_packaged_app", Manifest::TYPE_LEGACY_PACKAGED_APP },
32  { "platform_app",        Manifest::TYPE_PLATFORM_APP },
33  // TODO(binjin): Add shared_module type here and update ExtensionAllowedTypes
34  // policy.
35};
36
37const size_t kAllowedTypesMapSize = arraysize(kAllowedTypesMap);
38
39Manifest::Type GetManifestType(const std::string& name) {
40  for (size_t index = 0; index < kAllowedTypesMapSize; ++index) {
41    if (kAllowedTypesMap[index].name == name)
42      return kAllowedTypesMap[index].manifest_type;
43  }
44  return Manifest::TYPE_UNKNOWN;
45}
46
47}  // namespace schema_constants
48}  // namespace extensions
49