// Copyright 2023 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_METRICS_SITE_MANIFEST_METRICS_TASK_H_ #define COMPONENTS_WEBAPPS_BROWSER_INSTALLABLE_METRICS_SITE_MANIFEST_METRICS_TASK_H_ #include "base/functional/callback_forward.h" #include "base/memory/raw_ptr.h" #include "base/memory/raw_ref.h" #include "base/memory/weak_ptr.h" #include "components/webapps/browser/installable/installable_data.h" #include "mojo/public/cpp/bindings/struct_ptr.h" #include "third_party/blink/public/mojom/manifest/manifest.mojom.h" namespace content { class WebContents; } // namespace content namespace webapps { // This class is responsible for gathing metrics for the given site on the given // web contents to emit the "Site.Manifest" UKM events. To stop collection, // simply destroy this object. // // Invariants: // - `WebContents` is alive during its lifetime of this class. // - `WebContents` is not navigated during the lifetime of this class and the // metrics gathered from it are valid for the `GetLastCommittedURL()` // retrieved on construction of this class. // // Browsertests are located in // chrome/browser/web_applications/ml_promotion_browsertest.cc class InstallableManager; struct InstallableData; class SiteManifestMetricsTask { … }; } // namespace webapps #endif // COMPONENTS_WEBAPPS_BROWSER_INSTALLABLE_METRICS_SITE_MANIFEST_METRICS_TASK_H_