910e62b5创建于 1月15日历史提交
// Copyright 2022 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

module attribution_reporting.mojom;

import "components/attribution_reporting/registration.mojom";
import "components/attribution_reporting/registration_header_error.mojom";

// Browser-process interface responsible for processing attribution
// configurations registered by the renderer. These configurations may be sent
// out of the normal frame lifecycle, e.g. after the frame is destroyed.
interface DataHost {
  // Called when data from the renderer is available for a given attributionsrc
  // request.
  SourceDataAvailable(attribution_reporting.mojom.SuitableOrigin reporting_origin,
                      attribution_reporting.mojom.SourceRegistration data,
                      bool was_fetched_via_service_worker);

  // Called when trigger data from the renderer is available for a given
  // attributionsrc request.
  TriggerDataAvailable(attribution_reporting.mojom.SuitableOrigin reporting_origin,
                       attribution_reporting.mojom.TriggerRegistration data,
                       bool was_fetched_via_service_worker);

  // Called when OS source data from the renderer is available for a given
  // attributionsrc request. The OS will make subsequent requests to
  // to obtain the actual registration.
  OsSourceDataAvailable(attribution_reporting.mojom.OsRegistration registration,
                        bool was_fetched_via_service_worker);

  // Called when OS trigger data from the renderer is available for a given
  // attributionsrc request. The OS will make subsequent requests to
  // to obtain the actual registration.
  OsTriggerDataAvailable(attribution_reporting.mojom.OsRegistration registration,
                         bool was_fetched_via_service_worker);

  // Called when an error occurs during header validation in the renderer for
  // a given attributionsrc request.
  ReportRegistrationHeaderError(
    attribution_reporting.mojom.SuitableOrigin reporting_origin,
    attribution_reporting.mojom.RegistrationHeaderError error);
};

// Enum to log the number of calls to OsSourceDataAvailable in Blink and the
// number of calls received in the Browser process.
// These values are persisted to logs. Entries should not be renumbered and
// numeric values should never be reused.
//
// LINT.IfChange(DataAvailableCallsite)
enum DataAvailableCallsite {
  kBlink = 0,
  kBrowser,
};
// LINT.ThenChange(//tools/metrics/histograms/metadata/attribution_reporting/enums.xml:DataAvailableCallsite)