chromium/third_party/metrics_proto/ukm/web_features.proto

// 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.

syntax = "proto2";

option optimize_for = LITE_RUNTIME;
option java_package = "org.chromium.components.metrics";

package ukm;

// Tracks what high-level web features are used on a web page.
// Next tag: 5
message HighLevelWebFeatures {
  // Encoding of a subset of web features used on a webpage, as a bit
  // vector to save storage space.
  optional bytes bit_vector = 1;
  // The max value in blink::mojom::WebDxFeature when the bit vector is encoded.
  // This is used to distinguish between the case where a feature at an index
  // existed but is unused by the client and the case where a feature wasn't
  // yet defined for a Chrome client running an older binary.
  optional int32 max_index = 4;
  // The id of the Source that these web feature usage data is associated with.
  optional int64 source_id = 2;
  // Version of the encoding used. When WebFeature enum values have changed or
  // been renumbered, the version number should be incremented. This is for
  // supporting parsing of different encoding versions server-side.
  optional uint32 encoding_version = 3 [default = 0];
}