chromium/tools/metrics/histograms/metadata/fingerprinting_protection/histograms.xml

<!--
Copyright 2024 The Chromium Authors
Use of this source code is governed by a BSD-style license that can be
found in the LICENSE file.
-->

<!--
This file is used to generate a comprehensive list of Fingerprinting Protection
histograms along with a detailed description for each histogram.

For best practices on writing histogram descriptions, see
https://chromium.googlesource.com/chromium/src.git/+/HEAD/tools/metrics/histograms/README.md

Please follow the instructions in the OWNERS file in this directory to find a
reviewer. If no OWNERS file exists, please consider signing up at
go/reviewing-metrics (Googlers only), as all subdirectories are expected to
have an OWNERS file. As a last resort you can send the CL to
[email protected].
-->

<histogram-configuration>

<histograms>

<histogram
    name="FingerprintingProtection.DocumentLoad.SubframeFilteringDelay.{Result}"
    units="microseconds" expires_after="2025-04-30">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records the total time a child frame navigation was delayed while
    calculating whether it should be disallowed or not. Logged for all
    navigations that were marked {Result}.

    This metric uses UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES to acccount for
    clients with low-resolution clocks.
  </summary>
  <token key="Result">
    <variant name="Allowed"/>
    <variant name="Disallowed"/>
    <variant name="WouldDisallow"/>
  </token>
</histogram>

<histogram name="FingerprintingProtection.IndexRuleset.CPUDuration" units="ms"
    expires_after="2025-06-28">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Measures the CPU time it takes for the ruleset to get indexed by the
    RulesetService using thread ticks. Recorded every time the RulesetService
    kicks off a ruleset indexing process for Fingerprinting Protection.
  </summary>
</histogram>

<histogram name="FingerprintingProtection.IndexRuleset.NumUnsupportedRules"
    units="rules" expires_after="2025-04-30">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The number of rules that could be not be successfully indexed and therefore
    have been ignored. Recorded every time the RulesetService kicks off a
    ruleset indexing process and it reaches the point where rules are getting
    indexed. This is logged when a new ruleset is indexed for the first time on
    Chrome start for Fingerprinting Protection.
  </summary>
</histogram>

<histogram name="FingerprintingProtection.IndexRuleset.Verify.Status"
    enum="SubresourceFilterVerifyStatus" expires_after="2025-07-26">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The result of the IndexRulesetMatcher Verify method. Either pass if both the
    checksum and verifier succeeded, or a value indicating which combination of
    them failed. Note that a zero checksum indicates that the checksum has not
    yet been stored during indexing (for rulesets indexed prior to the
    checksumming code). This is logged when the indexed ruleset is loaded on
    Chrome start.
  </summary>
</histogram>

<histogram name="FingerprintingProtection.IndexRuleset.Verify2.WallDuration"
    units="ms" expires_after="2025-07-26">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Measures total time it took to verify the indexed ruleset in the browser
    process. Logged every time verification occurs, which usually occurs when
    the first page with activation is navigated to. This is logged when the
    indexed ruleset is loaded on Chrome start.
  </summary>
</histogram>

<histogram name="FingerprintingProtection.IndexRuleset.WallDuration" units="ms"
    expires_after="2025-06-28">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Measures the time it takes for the ruleset to get indexed by the
    RulesetService. Recorded every time the RulesetService kicks off a ruleset
    indexing process for Fingerprinting Protection.
  </summary>
</histogram>

<histogram name="FingerprintingProtection.PageLoad.ActivationDecision"
    enum="FingerprintingProtectionActivationDecision"
    expires_after="2025-04-30">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records the ActivationDecision computed by the
    FingerprintingProtectionPageActivationThrottle, considering the tracking
    protection content setting values, on the navigation. Computed once in
    WillProcessResponse, before committing the navigation.
  </summary>
</histogram>

<histogram name="FingerprintingProtection.PageLoad.ActivationLevel"
    enum="FingerprintingProtectionActivationLevel" expires_after="2025-04-30">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Records the ActivationLevel computed by the
    FingerprintingProtectionPageActivationThrottle, considering the tracking
    protection content setting values, on the navigation. Computed once in
    WillProcessResponse, before committing the navigation.
  </summary>
</histogram>

<histogram
    name="FingerprintingProtection.PageLoad.NumSubresourceLoads.Disallowed"
    units="resource loads" expires_after="2025-08-05">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Whenever a page load is finished with subresource filtering activated,
    records the total number of subresource loads that have been disallowed.
    This only differs from `MatchedRules` when filtering is performed in dry-run
    mode.
  </summary>
</histogram>

<histogram
    name="FingerprintingProtection.PageLoad.NumSubresourceLoads.Evaluated"
    units="resource loads" expires_after="2025-08-05">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Whenever a page load is finished with subresource filtering activated,
    records the total number of subresource loads that have been evaluated. This
    only differs from 'Total' when some of subdocuments is subject to a
    deactivating rule with DOCUMENT activation type.
  </summary>
</histogram>

<histogram
    name="FingerprintingProtection.PageLoad.NumSubresourceLoads.MatchedRules"
    units="resource loads" expires_after="2025-08-05">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Whenever a page load is finished with subresource filtering activated,
    records the total number of subresource loads that have matched filtering
    rules. This only differs from `Disallowed` when filtering is performed in
    dry-run mode.
  </summary>
</histogram>

<histogram name="FingerprintingProtection.PageLoad.NumSubresourceLoads.Total"
    units="resource loads" expires_after="2025-08-05">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Whenever a page load is finished with subresource filtering activated,
    records the total number of subresource loads that have gone through the
    subresource filtering pipeline.
  </summary>
</histogram>

<histogram
    name="FingerprintingProtection.PageLoad.RootNavigation.ActivationState"
    enum="SubresourceFilterActivationState" expires_after="2025-07-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Whenever a document load is committed in a root frame, records whether
    fingerprinting protection filtering should be activated for that load. Also
    records the same for the initial document load, even if it was not
    committed.
  </summary>
</histogram>

<histogram
    name="FingerprintingProtection.PageLoad.RootNavigation.ActivationState.DidInherit"
    enum="SubresourceFilterActivationState" expires_after="2025-07-01">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Whenever a document load is committed in a root frame that inherits from its
    same-origin opener, records whether fingerprinting protection filtering
    should be activated for that load. Also records the same for the initial
    document load (if it inherits its activation) even if it was not committed.
  </summary>
</histogram>

<histogram
    name="FingerprintingProtection.PageLoad.SubresourceEvaluation.TotalCPUDuration"
    units="microseconds" expires_after="2025-08-05">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Whenever a page load is finished with subresource filtering activated,
    records the total CPU time in thread ticks spent on evaluating subresource
    requests, aggregated across all frames.

    Note: this histogram is emitted for all clients, both ones which have
    high-resolution timer available and those which don't.
  </summary>
</histogram>

<histogram
    name="FingerprintingProtection.PageLoad.SubresourceEvaluation.TotalWallDuration"
    units="microseconds" expires_after="2025-08-05">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Whenever a page load is finished with subresource filtering activated,
    records the total time spent on evaluating subresource requests, aggregated
    across all frames.

    Note: this histogram is emitted for all clients, both ones which have
    high-resolution timer available and those which don't.
  </summary>
</histogram>

<histogram name="FingerprintingProtection.WebContentsObserver.RefreshCount"
    units="refresh counts" expires_after="2025-08-20">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    The count of refreshes on the first document after a Fingerprinting
    Protection throttling completes. This metric is experimental and for
    data-gathering.
  </summary>
</histogram>

<histogram name="FingerprintingProtection.WriteRuleset.Result"
    enum="SubresourceFilterWriteRulesetResult" expires_after="2025-04-30">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <summary>
    Whether indexing a version of the ruleset and writing it to disk succeeded,
    or failed at a particular step. Recorded every time the RulesetService kicks
    off a ruleset indexing process for Fingerprinting Protection.
  </summary>
</histogram>

</histograms>

</histogram-configuration>