//
// Copyright (C) 2020 The Android Open Source Project
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//      http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

// @generated by protoc-gen-es v2.2.2 with parameter "target=ts"
// @generated from file protos/perfetto/trace/track_event/chrome_latency_info.proto (package perfetto.protos, syntax proto2)
/* eslint-disable */

import type { GenEnum, GenFile, GenMessage } from "@bufbuild/protobuf/codegenv1";
import { enumDesc, fileDesc, messageDesc } from "@bufbuild/protobuf/codegenv1";
import type { Message } from "@bufbuild/protobuf";

/**
 * Describes the file protos/perfetto/trace/track_event/chrome_latency_info.proto.
 */
export const file_protos_perfetto_trace_track_event_chrome_latency_info: GenFile = /*@__PURE__*/
  fileDesc("Cjtwcm90b3MvcGVyZmV0dG8vdHJhY2UvdHJhY2tfZXZlbnQvY2hyb21lX2xhdGVuY3lfaW5mby5wcm90bxIPcGVyZmV0dG8ucHJvdG9zIvYNChFDaHJvbWVMYXRlbmN5SW5mbxIQCgh0cmFjZV9pZBgBIAEoAxI1CgRzdGVwGAIgASgOMicucGVyZmV0dG8ucHJvdG9zLkNocm9tZUxhdGVuY3lJbmZvLlN0ZXASGgoSZnJhbWVfdHJlZV9ub2RlX2lkGAMgASgFEkgKDmNvbXBvbmVudF9pbmZvGAQgAygLMjAucGVyZmV0dG8ucHJvdG9zLkNocm9tZUxhdGVuY3lJbmZvLkNvbXBvbmVudEluZm8SFAoMaXNfY29hbGVzY2VkGAUgASgIEhkKEWdlc3R1cmVfc2Nyb2xsX2lkGAYgASgDEhAKCHRvdWNoX2lkGAcgASgDEkAKCmlucHV0X3R5cGUYCCABKA4yLC5wZXJmZXR0by5wcm90b3MuQ2hyb21lTGF0ZW5jeUluZm8uSW5wdXRUeXBlGnEKDUNvbXBvbmVudEluZm8STwoOY29tcG9uZW50X3R5cGUYASABKA4yNy5wZXJmZXR0by5wcm90b3MuQ2hyb21lTGF0ZW5jeUluZm8uTGF0ZW5jeUNvbXBvbmVudFR5cGUSDwoHdGltZV91cxgCIAEoBCKSAwoEU3RlcBIUChBTVEVQX1VOU1BFQ0lGSUVEEAASHAoYU1RFUF9TRU5EX0lOUFVUX0VWRU5UX1VJEAMSIAocU1RFUF9IQU5ETEVfSU5QVVRfRVZFTlRfSU1QTBAFEigKJFNURVBfRElEX0hBTkRMRV9JTlBVVF9BTkRfT1ZFUlNDUk9MTBAIEiAKHFNURVBfSEFORExFX0lOUFVUX0VWRU5UX01BSU4QBBIiCh5TVEVQX01BSU5fVEhSRUFEX1NDUk9MTF9VUERBVEUQAhInCiNTVEVQX0hBTkRMRV9JTlBVVF9FVkVOVF9NQUlOX0NPTU1JVBABEikKJVNURVBfSEFORExFRF9JTlBVVF9FVkVOVF9NQUlOX09SX0lNUEwQCRIhCh1TVEVQX0hBTkRMRURfSU5QVVRfRVZFTlRfSU1QTBAKEhUKEVNURVBfU1dBUF9CVUZGRVJTEAYSFgoSU1RFUF9EUkFXX0FORF9TV0FQEAcSHgoaU1RFUF9GSU5JU0hFRF9TV0FQX0JVRkZFUlMQCyL1BQoUTGF0ZW5jeUNvbXBvbmVudFR5cGUSGQoVQ09NUE9ORU5UX1VOU1BFQ0lGSUVEEAASKwonQ09NUE9ORU5UX0lOUFVUX0VWRU5UX0xBVEVOQ1lfQkVHSU5fUldIEAESOAo0Q09NUE9ORU5UX0lOUFVUX0VWRU5UX0xBVEVOQ1lfU0NST0xMX1VQREFURV9PUklHSU5BTBACEj4KOkNPTVBPTkVOVF9JTlBVVF9FVkVOVF9MQVRFTkNZX0ZJUlNUX1NDUk9MTF9VUERBVEVfT1JJR0lOQUwQAxIqCiZDT01QT05FTlRfSU5QVVRfRVZFTlRfTEFURU5DWV9PUklHSU5BTBAEEiQKIENPTVBPTkVOVF9JTlBVVF9FVkVOVF9MQVRFTkNZX1VJEAUSLworQ09NUE9ORU5UX0lOUFVUX0VWRU5UX0xBVEVOQ1lfUkVOREVSRVJfTUFJThAGEjoKNkNPTVBPTkVOVF9JTlBVVF9FVkVOVF9MQVRFTkNZX1JFTkRFUklOR19TQ0hFRFVMRURfTUFJThAHEjoKNkNPTVBPTkVOVF9JTlBVVF9FVkVOVF9MQVRFTkNZX1JFTkRFUklOR19TQ0hFRFVMRURfSU1QTBAIEjoKNkNPTVBPTkVOVF9JTlBVVF9FVkVOVF9MQVRFTkNZX1NDUk9MTF9VUERBVEVfTEFTVF9FVkVOVBAJEikKJUNPTVBPTkVOVF9JTlBVVF9FVkVOVF9MQVRFTkNZX0FDS19SV0gQChIvCitDT01QT05FTlRfSU5QVVRfRVZFTlRfTEFURU5DWV9SRU5ERVJFUl9TV0FQEAsSLworQ09NUE9ORU5UX0RJU1BMQVlfQ09NUE9TSVRPUl9SRUNFSVZFRF9GUkFNRRAMEikKJUNPTVBPTkVOVF9JTlBVVF9FVkVOVF9HUFVfU1dBUF9CVUZGRVIQDRIsCihDT01QT05FTlRfSU5QVVRfRVZFTlRfTEFURU5DWV9GUkFNRV9TV0FQEA4irAEKCUlucHV0VHlwZRIYChRVTlNQRUNJRklFRF9PUl9PVEhFUhAAEg8KC1RPVUNIX01PVkVEEAESGAoUR0VTVFVSRV9TQ1JPTExfQkVHSU4QAhIZChVHRVNUVVJFX1NDUk9MTF9VUERBVEUQAxIWChJHRVNUVVJFX1NDUk9MTF9FTkQQBBIPCgtHRVNUVVJFX1RBUBAFEhYKEkdFU1RVUkVfVEFQX0NBTkNFTBAG");

/**
 * @generated from message perfetto.protos.ChromeLatencyInfo
 */
export type ChromeLatencyInfo = Message<"perfetto.protos.ChromeLatencyInfo"> & {
  /**
   * @generated from field: optional int64 trace_id = 1;
   */
  traceId: bigint;

  /**
   * @generated from field: optional perfetto.protos.ChromeLatencyInfo.Step step = 2;
   */
  step: ChromeLatencyInfo_Step;

  /**
   * @generated from field: optional int32 frame_tree_node_id = 3;
   */
  frameTreeNodeId: number;

  /**
   * @generated from field: repeated perfetto.protos.ChromeLatencyInfo.ComponentInfo component_info = 4;
   */
  componentInfo: ChromeLatencyInfo_ComponentInfo[];

  /**
   * @generated from field: optional bool is_coalesced = 5;
   */
  isCoalesced: boolean;

  /**
   * @generated from field: optional int64 gesture_scroll_id = 6;
   */
  gestureScrollId: bigint;

  /**
   * @generated from field: optional int64 touch_id = 7;
   */
  touchId: bigint;

  /**
   * The type of input corresponding to this `ChromeLatencyInfo`.
   *
   * @generated from field: optional perfetto.protos.ChromeLatencyInfo.InputType input_type = 8;
   */
  inputType: ChromeLatencyInfo_InputType;
};

/**
 * Describes the message perfetto.protos.ChromeLatencyInfo.
 * Use `create(ChromeLatencyInfoSchema)` to create a new message.
 */
export const ChromeLatencyInfoSchema: GenMessage<ChromeLatencyInfo> = /*@__PURE__*/
  messageDesc(file_protos_perfetto_trace_track_event_chrome_latency_info, 0);

/**
 * @generated from message perfetto.protos.ChromeLatencyInfo.ComponentInfo
 */
export type ChromeLatencyInfo_ComponentInfo = Message<"perfetto.protos.ChromeLatencyInfo.ComponentInfo"> & {
  /**
   * @generated from field: optional perfetto.protos.ChromeLatencyInfo.LatencyComponentType component_type = 1;
   */
  componentType: ChromeLatencyInfo_LatencyComponentType;

  /**
   * Microsecond timestamp in CLOCK_MONOTONIC domain
   *
   * @generated from field: optional uint64 time_us = 2;
   */
  timeUs: bigint;
};

/**
 * Describes the message perfetto.protos.ChromeLatencyInfo.ComponentInfo.
 * Use `create(ChromeLatencyInfo_ComponentInfoSchema)` to create a new message.
 */
export const ChromeLatencyInfo_ComponentInfoSchema: GenMessage<ChromeLatencyInfo_ComponentInfo> = /*@__PURE__*/
  messageDesc(file_protos_perfetto_trace_track_event_chrome_latency_info, 0, 0);

/**
 * NEXT ID: 12
 * All step are optional but the enum is ordered (not by number) below in the
 * order we expect them to appear if they are emitted in trace in a blocking
 * fashion.
 *
 * @generated from enum perfetto.protos.ChromeLatencyInfo.Step
 */
export enum ChromeLatencyInfo_Step {
  /**
   * @generated from enum value: STEP_UNSPECIFIED = 0;
   */
  UNSPECIFIED = 0,

  /**
   * Emitted on the browser main thread.
   *
   * @generated from enum value: STEP_SEND_INPUT_EVENT_UI = 3;
   */
  SEND_INPUT_EVENT_UI = 3,

  /**
   * Happens on the renderer's compositor.
   *
   * @generated from enum value: STEP_HANDLE_INPUT_EVENT_IMPL = 5;
   */
  HANDLE_INPUT_EVENT_IMPL = 5,

  /**
   * @generated from enum value: STEP_DID_HANDLE_INPUT_AND_OVERSCROLL = 8;
   */
  DID_HANDLE_INPUT_AND_OVERSCROLL = 8,

  /**
   * Occurs on the Renderer's main thread.
   *
   * @generated from enum value: STEP_HANDLE_INPUT_EVENT_MAIN = 4;
   */
  HANDLE_INPUT_EVENT_MAIN = 4,

  /**
   * @generated from enum value: STEP_MAIN_THREAD_SCROLL_UPDATE = 2;
   */
  MAIN_THREAD_SCROLL_UPDATE = 2,

  /**
   * @generated from enum value: STEP_HANDLE_INPUT_EVENT_MAIN_COMMIT = 1;
   */
  HANDLE_INPUT_EVENT_MAIN_COMMIT = 1,

  /**
   * Could be emitted on both the renderer's main OR compositor.
   *
   * @generated from enum value: STEP_HANDLED_INPUT_EVENT_MAIN_OR_IMPL = 9;
   */
  HANDLED_INPUT_EVENT_MAIN_OR_IMPL = 9,

  /**
   * Optionally sometimes HANDLED_INPUT_EVENT_MAIN_OR_IMPL will proxy to the
   * renderer's compositor and this will be emitted.
   *
   * @generated from enum value: STEP_HANDLED_INPUT_EVENT_IMPL = 10;
   */
  HANDLED_INPUT_EVENT_IMPL = 10,

  /**
   * Renderer's compositor.
   *
   * @generated from enum value: STEP_SWAP_BUFFERS = 6;
   */
  SWAP_BUFFERS = 6,

  /**
   * Happens on the VizCompositor in the GPU process.
   *
   * @generated from enum value: STEP_DRAW_AND_SWAP = 7;
   */
  DRAW_AND_SWAP = 7,

  /**
   * Happens on the GPU main thread after the swap has completed.
   *
   * See above for NEXT ID, enum steps are not ordered by tag number.
   *
   * @generated from enum value: STEP_FINISHED_SWAP_BUFFERS = 11;
   */
  FINISHED_SWAP_BUFFERS = 11,
}

/**
 * Describes the enum perfetto.protos.ChromeLatencyInfo.Step.
 */
export const ChromeLatencyInfo_StepSchema: GenEnum<ChromeLatencyInfo_Step> = /*@__PURE__*/
  enumDesc(file_protos_perfetto_trace_track_event_chrome_latency_info, 0, 0);

/**
 * This enum is a copy of LatencyComponentType enum in Chrome, located in
 * ui/latency/latency_info.h, modulo added UNKNOWN value per protobuf
 * practices.
 *
 * @generated from enum perfetto.protos.ChromeLatencyInfo.LatencyComponentType
 */
export enum ChromeLatencyInfo_LatencyComponentType {
  /**
   * @generated from enum value: COMPONENT_UNSPECIFIED = 0;
   */
  COMPONENT_UNSPECIFIED = 0,

  /**
   * @generated from enum value: COMPONENT_INPUT_EVENT_LATENCY_BEGIN_RWH = 1;
   */
  COMPONENT_INPUT_EVENT_LATENCY_BEGIN_RWH = 1,

  /**
   * @generated from enum value: COMPONENT_INPUT_EVENT_LATENCY_SCROLL_UPDATE_ORIGINAL = 2;
   */
  COMPONENT_INPUT_EVENT_LATENCY_SCROLL_UPDATE_ORIGINAL = 2,

  /**
   * @generated from enum value: COMPONENT_INPUT_EVENT_LATENCY_FIRST_SCROLL_UPDATE_ORIGINAL = 3;
   */
  COMPONENT_INPUT_EVENT_LATENCY_FIRST_SCROLL_UPDATE_ORIGINAL = 3,

  /**
   * @generated from enum value: COMPONENT_INPUT_EVENT_LATENCY_ORIGINAL = 4;
   */
  COMPONENT_INPUT_EVENT_LATENCY_ORIGINAL = 4,

  /**
   * @generated from enum value: COMPONENT_INPUT_EVENT_LATENCY_UI = 5;
   */
  COMPONENT_INPUT_EVENT_LATENCY_UI = 5,

  /**
   * @generated from enum value: COMPONENT_INPUT_EVENT_LATENCY_RENDERER_MAIN = 6;
   */
  COMPONENT_INPUT_EVENT_LATENCY_RENDERER_MAIN = 6,

  /**
   * @generated from enum value: COMPONENT_INPUT_EVENT_LATENCY_RENDERING_SCHEDULED_MAIN = 7;
   */
  COMPONENT_INPUT_EVENT_LATENCY_RENDERING_SCHEDULED_MAIN = 7,

  /**
   * @generated from enum value: COMPONENT_INPUT_EVENT_LATENCY_RENDERING_SCHEDULED_IMPL = 8;
   */
  COMPONENT_INPUT_EVENT_LATENCY_RENDERING_SCHEDULED_IMPL = 8,

  /**
   * @generated from enum value: COMPONENT_INPUT_EVENT_LATENCY_SCROLL_UPDATE_LAST_EVENT = 9;
   */
  COMPONENT_INPUT_EVENT_LATENCY_SCROLL_UPDATE_LAST_EVENT = 9,

  /**
   * @generated from enum value: COMPONENT_INPUT_EVENT_LATENCY_ACK_RWH = 10;
   */
  COMPONENT_INPUT_EVENT_LATENCY_ACK_RWH = 10,

  /**
   * @generated from enum value: COMPONENT_INPUT_EVENT_LATENCY_RENDERER_SWAP = 11;
   */
  COMPONENT_INPUT_EVENT_LATENCY_RENDERER_SWAP = 11,

  /**
   * @generated from enum value: COMPONENT_DISPLAY_COMPOSITOR_RECEIVED_FRAME = 12;
   */
  COMPONENT_DISPLAY_COMPOSITOR_RECEIVED_FRAME = 12,

  /**
   * @generated from enum value: COMPONENT_INPUT_EVENT_GPU_SWAP_BUFFER = 13;
   */
  COMPONENT_INPUT_EVENT_GPU_SWAP_BUFFER = 13,

  /**
   * @generated from enum value: COMPONENT_INPUT_EVENT_LATENCY_FRAME_SWAP = 14;
   */
  COMPONENT_INPUT_EVENT_LATENCY_FRAME_SWAP = 14,
}

/**
 * Describes the enum perfetto.protos.ChromeLatencyInfo.LatencyComponentType.
 */
export const ChromeLatencyInfo_LatencyComponentTypeSchema: GenEnum<ChromeLatencyInfo_LatencyComponentType> = /*@__PURE__*/
  enumDesc(file_protos_perfetto_trace_track_event_chrome_latency_info, 0, 1);

/**
 * @generated from enum perfetto.protos.ChromeLatencyInfo.InputType
 */
export enum ChromeLatencyInfo_InputType {
  /**
   * @generated from enum value: UNSPECIFIED_OR_OTHER = 0;
   */
  UNSPECIFIED_OR_OTHER = 0,

  /**
   * @generated from enum value: TOUCH_MOVED = 1;
   */
  TOUCH_MOVED = 1,

  /**
   * @generated from enum value: GESTURE_SCROLL_BEGIN = 2;
   */
  GESTURE_SCROLL_BEGIN = 2,

  /**
   * @generated from enum value: GESTURE_SCROLL_UPDATE = 3;
   */
  GESTURE_SCROLL_UPDATE = 3,

  /**
   * @generated from enum value: GESTURE_SCROLL_END = 4;
   */
  GESTURE_SCROLL_END = 4,

  /**
   * @generated from enum value: GESTURE_TAP = 5;
   */
  GESTURE_TAP = 5,

  /**
   * @generated from enum value: GESTURE_TAP_CANCEL = 6;
   */
  GESTURE_TAP_CANCEL = 6,
}

/**
 * Describes the enum perfetto.protos.ChromeLatencyInfo.InputType.
 */
export const ChromeLatencyInfo_InputTypeSchema: GenEnum<ChromeLatencyInfo_InputType> = /*@__PURE__*/
  enumDesc(file_protos_perfetto_trace_track_event_chrome_latency_info, 0, 2);

