blob: 9f1fbaa57ac71552e90cc111e11149bd04d278c2 [file] [log] [blame]
// Copyright 2016 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 CHROME_BROWSER_INSTALLABLE_INSTALLABLE_LOGGING_H_
#define CHROME_BROWSER_INSTALLABLE_INSTALLABLE_LOGGING_H_
#include <string>
namespace content {
class WebContents;
}
// These values are a central reference for installability errors. The
// InstallableManager will specify an InstallableStatusCode (or
// NO_ERROR_DETECTED) in its result. Clients may also add their own error codes,
// and utilise LogErrorToConsole to write a message to the devtools console.
// This enum backs an UMA histogram, so it must be treated as append-only.
enum InstallableStatusCode {
NO_ERROR_DETECTED = 0,
RENDERER_EXITING = 1,
RENDERER_CANCELLED = 2,
USER_NAVIGATED = 3,
NOT_IN_MAIN_FRAME = 4,
NOT_FROM_SECURE_ORIGIN = 5,
NO_MANIFEST = 6,
MANIFEST_EMPTY = 7,
START_URL_NOT_VALID = 8,
MANIFEST_MISSING_NAME_OR_SHORT_NAME = 9,
MANIFEST_DISPLAY_NOT_SUPPORTED = 10,
MANIFEST_MISSING_SUITABLE_ICON = 11,
NO_MATCHING_SERVICE_WORKER = 12,
NO_ACCEPTABLE_ICON = 13,
CANNOT_DOWNLOAD_ICON = 14,
NO_ICON_AVAILABLE = 15,
PLATFORM_NOT_SUPPORTED_ON_ANDROID = 16,
NO_ID_SPECIFIED = 17,
IDS_DO_NOT_MATCH = 18,
ALREADY_INSTALLED = 19,
INSUFFICIENT_ENGAGEMENT = 20,
PACKAGE_NAME_OR_START_URL_EMPTY = 21,
PREVIOUSLY_BLOCKED = 22,
PREVIOUSLY_IGNORED = 23,
SHOWING_NATIVE_APP_BANNER = 24,
SHOWING_WEB_APP_BANNER = 25,
FAILED_TO_CREATE_BANNER = 26,
URL_NOT_SUPPORTED_FOR_WEBAPK = 27,
IN_INCOGNITO = 28,
NOT_OFFLINE_CAPABLE = 29,
WAITING_FOR_MANIFEST = 30,
WAITING_FOR_INSTALLABLE_CHECK = 31,
NO_GESTURE = 32,
WAITING_FOR_NATIVE_DATA = 33,
SHOWING_APP_INSTALLATION_DIALOG = 34,
MAX_ERROR_CODE,
};
// Logs a message associated with |code| to the devtools console attached to
// |web_contents|. Does nothing if |web_contents| is nullptr.
void LogErrorToConsole(content::WebContents* web_contents,
InstallableStatusCode code);
#endif // CHROME_BROWSER_INSTALLABLE_INSTALLABLE_LOGGING_H_