chromium/third_party/metrics_proto/custom_tab_session.proto

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

syntax = "proto2";

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

option java_outer_classname = "CustomTabSessionProtos";

package metrics;

// Stores information about a Custom Tabs session. Custom Tabs are a Chrome on
// Android feature that allow a Chrome tab to be launched as part of another
// application. The launching app has the ability to close the Custom Tab. This
// proto will let us detect apps that open a Custom Tab (loading a given URL
// with the user's cookie jar) and then kill it without the user interacting.
// Next tag: 7
message CustomTabSessionProto {
  // The time the recording was taken. Recorded as seconds since epoch.
  optional int64 time_sec = 1;

  // The package name of the app that launched the Custom Tab.
  optional string package_name = 2;

  // How long the Custom Tab was open for. It is recorded in seconds with a 10%
  // fuzzing (real numbers will be fuzzed uniformity in the range of -10% to 10%
  // before recording). It is capped at 300 seconds (exclusive).
  optional int32 session_duration_sec = 3;

  // Did the user interact with the page displayed by the Custom Tab?
  optional bool did_user_interact = 4;

  // True if the Custom Tab was closed through a user action (for example
  // hitting the Close Button or the Android Back button).
  optional bool was_user_closed = 5;

  // Was the Custom Tab launched as a Partial Custom Tab
  // (go/prd-partial-custom-tabs)
  optional bool is_partial = 6;
}