1effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch// Copyright 2014 The Chromium Authors. All rights reserved.
2effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch// Use of this source code is governed by a BSD-style license that can be
3effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch// found in the LICENSE file.
4effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch
5effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch#include "chrome/common/extensions/api/webstore/webstore_api_constants.h"
6effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch
75f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)#include "base/macros.h"
85f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)#include "chrome/common/extensions/webstore_install_result.h"
95f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)
10effb81e5f8246d0db0270817048dc992db66e9fbBen Murdochnamespace extensions {
11effb81e5f8246d0db0270817048dc992db66e9fbBen Murdochnamespace api {
12effb81e5f8246d0db0270817048dc992db66e9fbBen Murdochnamespace webstore {
13effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch
145f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)// IMPORTANT: Keep this list in sync with both the definition in
155f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)// chrome/common/extensions/api/webstore.json and
165f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)// chrome/common/extensions/webstore_install_result.h!
175f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)const char* kInstallResultCodes[] = {
185f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)  "success",
195f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)  "otherError",
205f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)  "aborted",
215f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)  "installInProgress",
225f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)  "notPermitted",
235f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)  "invalidId",
245f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)  "webstoreRequestError",
255f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)  "invalidWebstoreResponse",
265f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)  "invalidManifest",
275f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)  "iconError",
285f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)  "userCancelled",
295f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)  "blacklisted",
305f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)  "missingDependencies",
315f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)  "requirementViolations",
325f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)  "blockedByPolicy",
335f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)  "launchFeatureDisabled",
345f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)  "launchUnsupportedExtensionType",
355f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)  "launchInProgress",
365f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)};
375f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)
385f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)COMPILE_ASSERT(arraysize(kInstallResultCodes) ==
395f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)                   webstore_install::RESULT_LAST + 1,
405f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)               must_keep_webstore_install_result_and_api_constants_in_sync);
415f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)
42effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch// The "downloading" stage begins when the installer starts downloading modules
43effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch// for the extension.
44effb81e5f8246d0db0270817048dc992db66e9fbBen Murdochconst char kInstallStageDownloading[] = "downloading";
45effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch
46effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch// The "installing" stage begins once all downloads are complete, and the
47effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch// CrxInstaller begins.
48effb81e5f8246d0db0270817048dc992db66e9fbBen Murdochconst char kInstallStageInstalling[] = "installing";
49effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch
50effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch// The method in custom_webstore_bindings.js triggered when we enter a new
51effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch// install stage ("downloading" or "installing").
52effb81e5f8246d0db0270817048dc992db66e9fbBen Murdochconst char kOnInstallStageChangedMethodName[] = "onInstallStageChanged";
53effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch
54effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch// The method in custom_webstore_bindings.js triggered when we update
55effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch// download progress.
56effb81e5f8246d0db0270817048dc992db66e9fbBen Murdochconst char kOnDownloadProgressMethodName[] = "onDownloadProgress";
57effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch
58effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch}  // namespace webstore
59effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch}  // namespace api
60effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch}  // namespace extensions
61