// Copyright 2017 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef COMPONENTS_WEBAPPS_BROWSER_INSTALLABLE_INSTALLABLE_METRICS_H_ #define COMPONENTS_WEBAPPS_BROWSER_INSTALLABLE_INSTALLABLE_METRICS_H_ #include <iosfwd> namespace content { class WebContents; } // namespace content namespace webapps { // A Java counterpart will be generated for this enum. // GENERATED_JAVA_ENUM_PACKAGE: org.chromium.components.webapps enum class InstallTrigger { … }; // Sources for triggering webapp installation. Each install source must map to // one web_app::Source::Type that is calculated in the method // `web_app::ConvertExternalInstallSourceToSource`. // // These values are persisted to logs. Entries should not be renumbered and // numeric values should never be reused. // // NOTE: each enum entry which is reportable must be added to // InstallableMetrics::IsReportableInstallSource(). This enum backs a UMA // histogram and must be treated as append-only. A Java counterpart will be // generated for this enum. // // This should be kept in sync with WebappInstallSource in // tools/metrics/histograms/enums.xml. // // GENERATED_JAVA_ENUM_PACKAGE: org.chromium.components.webapps enum class WebappInstallSource { … }; std::ostream& operator<<(std::ostream& os, WebappInstallSource source); // Uninstall surface from which an uninstall was initiated. This value cannot be // used to infer an install source. These values are persisted to logs. Entries // should not be renumbered and numeric values should never be reused. enum class WebappUninstallSource { … }; std::ostream& operator<<(std::ostream& os, WebappUninstallSource source); bool IsUserUninstall(WebappUninstallSource source); class InstallableMetrics { … }; } // namespace webapps #endif // COMPONENTS_WEBAPPS_BROWSER_INSTALLABLE_INSTALLABLE_METRICS_H_