blob: 860eab9fd199617b8126a47465d73fd0628d32eb [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,
RENDERER_EXITING,
RENDERER_CANCELLED,
USER_NAVIGATED,
NOT_IN_MAIN_FRAME,
NOT_FROM_SECURE_ORIGIN,
NO_MANIFEST,
MANIFEST_EMPTY,
START_URL_NOT_VALID,
MANIFEST_MISSING_NAME_OR_SHORT_NAME,
MANIFEST_DISPLAY_NOT_SUPPORTED,
MANIFEST_MISSING_SUITABLE_ICON,
NO_MATCHING_SERVICE_WORKER,
NO_ACCEPTABLE_ICON,
CANNOT_DOWNLOAD_ICON,
NO_ICON_AVAILABLE,
PLATFORM_NOT_SUPPORTED_ON_ANDROID,
NO_ID_SPECIFIED,
IDS_DO_NOT_MATCH,
ALREADY_INSTALLED,
INSUFFICIENT_ENGAGEMENT,
PACKAGE_NAME_OR_START_URL_EMPTY,
PREVIOUSLY_BLOCKED,
PREVIOUSLY_IGNORED,
SHOWING_NATIVE_APP_BANNER,
SHOWING_WEB_APP_BANNER,
FAILED_TO_CREATE_BANNER,
URL_NOT_SUPPORTED_FOR_WEBAPK,
IN_INCOGNITO,
NOT_OFFLINE_CAPABLE,
WAITING_FOR_MANIFEST,
WAITING_FOR_INSTALLABLE_CHECK,
NO_GESTURE,
WAITING_FOR_NATIVE_DATA,
SHOWING_APP_INSTALLATION_DIALOG,
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_