11320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci// Copyright 2014 The Chromium Authors. All rights reserved.
21320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci// Use of this source code is governed by a BSD-style license that can be
31320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci// found in the LICENSE file.
41320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci
51320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#include "chrome/browser/extensions/extension_management_constants.h"
61320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci
71320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#include "base/macros.h"
81320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci
91320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tuccinamespace extensions {
101320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tuccinamespace schema_constants {
111320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci
121320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucciconst char kWildcard[] = "*";
131320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci
141320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucciconst char kInstallationMode[] = "installation_mode";
151320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucciconst char kAllowed[] = "allowed";
161320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucciconst char kBlocked[] = "blocked";
171320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucciconst char kForceInstalled[] = "force_installed";
181320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucciconst char kNormalInstalled[] = "normal_installed";
191320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci
201320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucciconst char kUpdateUrl[] = "update_url";
211320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucciconst char kInstallSources[] = "install_sources";
221320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucciconst char kAllowedTypes[] = "allowed_types";
231320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci
241320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucciconst char kUpdateUrlPrefix[] = "update_url:";
251320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci
261320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucciconst AllowedTypesMapEntry kAllowedTypesMap[] = {
271320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  { "extension",           Manifest::TYPE_EXTENSION },
281320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  { "theme",               Manifest::TYPE_THEME },
291320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  { "user_script",         Manifest::TYPE_USER_SCRIPT },
301320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  { "hosted_app",          Manifest::TYPE_HOSTED_APP },
311320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  { "legacy_packaged_app", Manifest::TYPE_LEGACY_PACKAGED_APP },
321320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  { "platform_app",        Manifest::TYPE_PLATFORM_APP },
331320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  // TODO(binjin): Add shared_module type here and update ExtensionAllowedTypes
341320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  // policy.
351320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci};
361320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci
371320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucciconst size_t kAllowedTypesMapSize = arraysize(kAllowedTypesMap);
381320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci
391320f92c476a1ad9d19dba2a48c72b75566198e9Primiano TucciManifest::Type GetManifestType(const std::string& name) {
401320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  for (size_t index = 0; index < kAllowedTypesMapSize; ++index) {
411320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci    if (kAllowedTypesMap[index].name == name)
421320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci      return kAllowedTypesMap[index].manifest_type;
431320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  }
441320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  return Manifest::TYPE_UNKNOWN;
451320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci}
461320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci
471320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci}  // namespace schema_constants
481320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci}  // namespace extensions
49