// Copyright 2018 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef ASH_WEBUI_SYSTEM_APPS_PUBLIC_SYSTEM_WEB_APP_TYPE_H_
#define ASH_WEBUI_SYSTEM_APPS_PUBLIC_SYSTEM_WEB_APP_TYPE_H_
#include "build/chromeos_buildflags.h"
#if !BUILDFLAG(IS_CHROMEOS_ASH)
#error "Ash-only"
#endif
namespace ash {
// An enum that lists the different System Apps that exist. Can be used to
// retrieve the App ID from the underlying Web App system.
//
// These values are persisted to the web_app database. Entries should not be
// renumbered and numeric values should never be reused.
//
// When deprecating, comment out the entry so that it's not accidentally
// re-used.
enum class SystemWebAppType {
FILE_MANAGER = 1,
// TELEMETRY_DEPRECATED = 2,
// A sample System Web App to illustrate SWA development best practices, and
// various SWA platform features.
//
// This App is only enabled on non-official builds. You can find a brief SWA
// platform introduction (Google internal) at: http://go/system-web-apps.
//
// Source: //ash/webui/sample_system_web_app_ui/
// Contact: [email protected], [email protected]
SAMPLE = 3,
SETTINGS = 4,
CAMERA = 5,
TERMINAL = 6,
MEDIA = 7,
HELP = 8,
PRINT_MANAGEMENT = 9,
SCANNING = 10,
DIAGNOSTICS = 11,
CONNECTIVITY_DIAGNOSTICS = 12,
ECHE = 13,
CROSH = 14,
PERSONALIZATION = 15,
SHORTCUT_CUSTOMIZATION = 16,
// SHIMLESS RMA Flow is SWA that provides step by step guides for the
// repair/RMA process.
//
// You can find information about this SWA at: http://go/shimless-ux.
//
// Source: //ash/webui/shimless_rma/
// Contact: [email protected]
SHIMLESS_RMA = 17,
// A System Web App that launches on Demo Mode startup, to display animated
// content that highlights various features of ChromeOS
//
// Prefer to file bugs to the internal Demo Mode component:
// b/components/812312
//
// Source: //ash/webui/demo_mode_app_ui/
// Contact: [email protected]
DEMO_MODE = 18,
// OS FEEDBACK is a SWA that provides step by step guides to submit a
// feedback report on Chrome OS.
//
// Source: //ash/webui/os_feedback_ui
// contact: [email protected]
OS_FEEDBACK = 19,
// Projector aka Screencast (go/projector-player-dd) aims to make it simple
// for teachers and students to record and share instructional videos on a
// Chromebook. This app enables teachers to create a library of
// custom-tailored instructional content that students can search and view at
// home.
//
// Source: //ash/webui/projector_app/
// Contact: [email protected]
// Buganizer component: b/components/1080013
// This app is only included in Chrome-branded builds. Non-official builds
// will have a mock page.
PROJECTOR = 20,
// OsUrlHandler is called by Lacros to show Ash internal chrome:// pages as
// applications to the user. Note that these pages are accessible to the user
// as os://<page> through search.
// contact: [email protected]
OS_URL_HANDLER = 21,
// FIRMWARE UPDATE App is SWA that lets users update all their peripheral
// firmwares in one place.
// You can find information about this SWA at: http://go/fwupd-app.
// Source: //ash/webui/firmware_update/
// Contact: [email protected]
FIRMWARE_UPDATE = 22,
// OsFlags is called by Lacros to show the chrome://flags page as
// applications to the user. Note that this page is accessible to the user
// as os://flags through search.
// contact: [email protected]
OS_FLAGS = 23,
// FaceML was deprecated.
// FACE_ML = 24,
// VC Background allows users to control webcam settings, including blur and
// background image.
// Source: //ash/webui/vc_background_ui/
// Contact: [email protected]
VC_BACKGROUND = 25,
// CrOS implementation of the print preview surface.
// Source: //ash/webui/print_preview_cros/
// Contact: [email protected]
PRINT_PREVIEW_CROS = 26,
// Boca implementation.
// Source: //ash/webui/boca_ui/
// Contact: [email protected]
BOCA = 27,
// Mall is an app for finding and installing other apps.
// Source: //ash/webui/mall/
// Contact: [email protected]
MALL = 28,
// CrOS SWA that performs a soft reset for the users.
// Source: //ash/webui/sanitize_ui/
// Contact: [email protected]
// Contact: [email protected]
OS_SANITIZE = 29,
// Recorder app for ChromeOS.
//
// Source: //ash/webui/recorder_app_ui/
// Contact: [email protected]
RECORDER = 30,
// Graduation app for ChromeOS EDU users.
//
// Source: //ash/webui/graduation_ui/
// Contact: [email protected]
GRADUATION = 31,
// When adding a new System App, remember to:
//
// 1. Add a corresponding histogram suffix in WebAppSystemAppInternalName
// (histogram_suffixes_list.xml). The suffix name should match the App's
// |internal_name|. This is for reporting per-app install results.
//
// 2. Add a corresponding proto enum entry (with the same numerical value) to
// SystemWebAppDataProto in system_web_app_data.proto. This is for
// identifying system apps during Chrome start-up (i.e. when
// SystemWebAppManager hasn't finished synchronizing all apps).
//
// 3. Add a comment above the enum entry in this file. It should include a
// description (what it does in one sentence), at least one email contact,
// source location (if it's in chromium source tree), and other relevant
// information.
//
// Other relevant information should come in separate paragraphs after the
// description. This can be anything useful for triaging or routing bugs.
// For example, your team doesn't use chromium's bug tracker, the App is
// only available on certain devices.
//
// Source location should point to where the App's WebUIController is
// defined. It doesn't have to include the complete source repository (e.g.
// if the App is hosted in internal repositories).
//
// 4. Put a blank line after each enum (before next enum's comment).
//
// 5. Use ash::LaunchSystemWebAppAsync to launch your SWA (with the type
// added above). This provides extra safety in edge cases (e.g. when in
// incognito or guest sessions).
//
// 6. Update kMaxValue.
//
// 7. Add your System Web App to |kSystemWebAppsMapping| in
// chrome/browser/apps/app_service/policy_util.cc to make it discoverable
// in policies.
//
// 8. Have one of System Web App Platform owners review the CL.
// See: //ash/webui/PLATFORM_OWNERS
kMaxValue = GRADUATION,
};
} // namespace ash
#endif // ASH_WEBUI_SYSTEM_APPS_PUBLIC_SYSTEM_WEB_APP_TYPE_H_