chromium/tools/metrics/structured/sync/structured.xml

<structured-metrics>

<project name="PopularDisplays">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <id>none</id>
  <scope>device</scope>
  <key-rotation>90</key-rotation>
  <summary>
    Project for recording monitor infos
  </summary>

  <event name="MonitorInfo">
    <summary>
      Records a unique external monitor information, only once when it's plugged
      in by a user for the very first time on that device.
    </summary>
    <metric name="DisplayName" type="raw-string">
      <summary>
        The Name of the Monitor.
      </summary>
    </metric>
    <metric name="ManufacturerId" type="raw-string">
      <summary>
        ID of the monitor's manufacturer.
      </summary>
    </metric>
    <metric name="ProductId" type="int">
      <summary>
        Monitor's Product ID.
      </summary>
    </metric>
    <metric name="NativeModeSize" type="raw-string">
      <summary>
        The Monitor's Native Mode Size.
      </summary>
    </metric>
    <metric name="NativeModeRefreshRate" type="double">
      <summary>
        The Monitor's Native Mode Refresh Rate.
      </summary>
    </metric>
    <metric name="PhysicalSize" type="raw-string">
      <summary>
        The Physical Size of the Monitor in inches.
      </summary>
    </metric>
    <metric name="ConnectionType" type="raw-string">
      <summary>
        The Connection type used to connect the display into the chromebook.
      </summary>
    </metric>
    <metric name="IsVrrCapable" type="int">
      <summary>
        The Monitor's Ability to support Variable Refresh Rate.
      </summary>
    </metric>
  </event>
</project>

<project name="FastPair">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <id>none</id>
  <scope>profile</scope>
  <key-rotation>30</key-rotation>
  <summary>
    Metrics for the ChromeOS Fast Pair implementation.
  </summary>

  <event name="DiscoveryNotificationShown">
    <summary>
      The user is shown a notification which can start the pairing process.
    </summary>
    <metric name="Protocol" type="int">
      <summary>
        The pairing protocol of the discovered device.
      </summary>
    </metric>
    <metric name="FastPairVersion" type="int">
      <summary>
        The Fast Pair spec version the device implements.
      </summary>
    </metric>
    <metric name="ModelId" type="int">
      <summary>
        The model ID of the discovered device.
      </summary>
    </metric>
    <metric name="RSSI" type="int">
      <summary>
        The inquiry RSSI of the discovered device, recorded at the time of metrics
        emission, with a range of -128 to 127. If inquiry RSSI is unknown, we report
        -129.
      </summary>
    </metric>
    <metric name="TxPower" type="int">
      <summary>
        The inquiry TxPower of the discovered device, recorded at the time of
        metrics emission, with a range of -128 to 127. If inquiry TxPower is
        unknown, we report -129.
      </summary>
    </metric>
  </event>

  <event name="PairingStart">
    <summary>
      The starting of the pairing process.
    </summary>
    <metric name="Protocol" type="int">
      <summary>
        The pairing protocol being started.
      </summary>
    </metric>
    <metric name="FastPairVersion" type="int">
      <summary>
        The Fast Pair spec version the device implements.
      </summary>
    </metric>
    <metric name="ModelId" type="int">
      <summary>
        The model ID of the device being paired.
      </summary>
    </metric>
    <metric name="RSSI" type="int">
      <summary>
        The inquiry RSSI of the pairing device, recorded at the time of metrics
        emission, with a range of -128 to 127. If inquiry RSSI is unknown, we report
        -129.
      </summary>
    </metric>
    <metric name="TxPower" type="int">
      <summary>
        The inquiry TxPower of the pairing device, recorded at the time of metrics
        emission, with a range of -128 to 127. If inquiry TxPower is unknown, we
        report -129.
      </summary>
    </metric>
  </event>

  <event name="PairingComplete">
    <summary>
      The end of the pairing process.
    </summary>
    <metric name="Protocol" type="int">
      <summary>
        The pairing protocol being started.
      </summary>
    </metric>
    <metric name="FastPairVersion" type="int">
      <summary>
        The Fast Pair spec version the device implements.
      </summary>
    </metric>
    <metric name="ModelId" type="int">
      <summary>
        The model ID of the device being paired.
      </summary>
    </metric>
    <metric name="RSSI" type="int">
      <summary>
        The inquiry RSSI of the paired device, recorded at the time of metrics
        emission, with a range of -128 to 127. If inquiry RSSI is unknown, we report
        -129.
      </summary>
    </metric>
    <metric name="TxPower" type="int">
      <summary>
        The inquiry TxPower of the paired device, recorded at the time of metrics
        emission, with a range of -128 to 127. If inquiry TxPower is unknown, we
        report -129.
      </summary>
    </metric>
  </event>

  <event name="PairFailure">
    <summary>
      The pairing process failed for the provided reason.
    </summary>
    <metric name="Protocol" type="int">
      <summary>
        The pairing protocol being started.
      </summary>
    </metric>
    <metric name="FastPairVersion" type="int">
      <summary>
        The Fast Pair spec version the device implements.
      </summary>
    </metric>
    <metric name="Reason" type="int">
      <summary>
        The pairing failure reason.
      </summary>
    </metric>
    <metric name="ModelId" type="int">
      <summary>
        The model ID of the device being paired.
      </summary>
    </metric>
  </event>
</project>

<project name="Hindsight">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <id>per-project</id>
  <scope>profile</scope>
  <key-rotation>90</key-rotation>
  <summary>
    Project for recording CrOSActions.
  </summary>

  <event name="CrOSActionEvent.FileOpened">
    <summary>
      Records whenever a file is opened in the File App on ChromeOS.
    </summary>
    <metric name="Filename" type="hmac-string">
      <summary>
        The absolute path of the file.
      </summary>
    </metric>
    <metric name="OpenType" type="int">
      <summary>
        The type of file open, defined in FileTaskObserver::OpenType.
      </summary>
    </metric>
    <metric name="SequenceId" type="int">
      <summary>
        Sequence of this action across all CrOSActionEvent.
      </summary>
    </metric>
    <metric name="TimeSinceLastAction" type="int">
      <summary>
        Time in milliseconds since last CrOSActionLogging.
      </summary>
    </metric>
  </event>

  <event name="CrOSActionEvent.SearchResultLaunched">
    <summary>
      Records information about the launch of an item from ChromeOS launcher.
    </summary>
    <metric name="Query" type="hmac-string">
      <summary>
        The search query associated with this launch.
      </summary>
    </metric>
    <metric name="ResultType" type="int">
      <summary>
        Which type of search provider the launched result was created by.
      </summary>
    </metric>
    <metric name="SearchResultId" type="hmac-string">
      <summary>
        The ID of the launched result result. For example, the app ID for app
        results, or the URL for omnibox results.
      </summary>
    </metric>
    <metric name="SequenceId" type="int">
      <summary>
        Sequence of this action across all CrOSActionEvent.
      </summary>
    </metric>
    <metric name="TimeSinceLastAction" type="int">
      <summary>
        Time in milliseconds since last CrOSActionLogging.
      </summary>
    </metric>
  </event>

  <event name="CrOSActionEvent.SettingChanged">
    <summary>
      Records when a setting is changed; only records quick settings for now.
    </summary>
    <metric name="CurrentValue" type="int">
      <summary>
        Value of the setting after the change.
      </summary>
    </metric>
    <metric name="PreviousValue" type="int">
      <summary>
        Value of the setting before the change.
      </summary>
    </metric>
    <metric name="SequenceId" type="int">
      <summary>
        Sequence of this action across all CrOSActionEvent.
      </summary>
    </metric>
    <metric name="SettingId" type="int">
      <summary>
        The setting id (in ash::ml::UserSettingsEvent::Event::SettingId) that
        represents the type of the changed setting.
      </summary>
    </metric>
    <metric name="SettingType" type="int">
      <summary>
        Enum that represents where the settings event originated from (in
        ash::ml::UserSettingsEvent::Event::SettingType).
      </summary>
    </metric>
    <metric name="TimeSinceLastAction" type="int">
      <summary>
        Time in milliseconds since last CrOSActionLogging.
      </summary>
    </metric>
  </event>

  <event name="CrOSActionEvent.TabEvent.TabNavigated">
    <summary>
      Records a tab activity of navigating to a new url.
    </summary>
    <metric name="PageTransition" type="int">
      <summary>
        The types of transition between pages. See more on ui::PageTransition.
      </summary>
    </metric>
    <metric name="SequenceId" type="int">
      <summary>
        Sequence of this action across all CrOSActionEvent.
      </summary>
    </metric>
    <metric name="TimeSinceLastAction" type="int">
      <summary>
        Time in milliseconds since last CrOSActionLogging.
      </summary>
    </metric>
    <metric name="URL" type="hmac-string">
      <summary>
        The URL of the current event.
      </summary>
    </metric>
    <metric name="Visibility" type="int">
      <summary>
        The visibility of this url, see more on content::Visibility.
      </summary>
    </metric>
  </event>

  <event name="CrOSActionEvent.TabEvent.TabOpened">
    <summary>
      Records a tab activity of opening a new url with ctrl+click.
    </summary>
    <metric name="SequenceId" type="int">
      <summary>
        Sequence of this action across all CrOSActionEvent.
      </summary>
    </metric>
    <metric name="TimeSinceLastAction" type="int">
      <summary>
        Time in milliseconds since last CrOSActionLogging.
      </summary>
    </metric>
    <metric name="URL" type="hmac-string">
      <summary>
        The URL of the current event.
      </summary>
    </metric>
    <metric name="URLOpened" type="hmac-string">
      <summary>
        The URL that is opened from the current url.
      </summary>
    </metric>
    <metric name="WindowOpenDisposition" type="int">
      <summary>
        Enum that indicates where the new tab is opened, see more on
        WindowOpenDisposition.
      </summary>
    </metric>
  </event>

  <event name="CrOSActionEvent.TabEvent.TabReactivated">
    <summary>
      Records a tab activity of reactivating an existing tab.
    </summary>
    <metric name="SequenceId" type="int">
      <summary>
        Sequence of this action across all CrOSActionEvent.
      </summary>
    </metric>
    <metric name="TimeSinceLastAction" type="int">
      <summary>
        Time in milliseconds since last CrOSActionLogging.
      </summary>
    </metric>
    <metric name="URL" type="hmac-string">
      <summary>
        The URL of the current event.
      </summary>
    </metric>
  </event>
</project>

<project name="LauncherUsage">
  <owner>[email protected]</owner>
  <id>per-project</id>
  <scope>profile</scope>
  <key-rotation>90</key-rotation>
  <summary>
    See event summary.
  </summary>

  <event name="LauncherUsage">
    <summary>
      Records information about the launch of an item (such as an app or a file)
      from the ChromeOS launcher. One event is recorded for every launch
      originating from any launcher UI component, and this is the only
      circumstance that records events.
    </summary>
    <metric name="App" type="hmac-string">
      <summary>
        App ID of the most-recently-opened app when this launch occurred. This can
        be an app ID of a Chrome app, Arc++ app, or PWA.
      </summary>
    </metric>
    <metric name="Domain" type="hmac-string">
      <summary>
        The most-recently-visited domain when this launch occurred.
      </summary>
    </metric>
    <metric name="Hour" type="int">
      <summary>
        The hour of launch. This is the user's local time rounded to the nearest
        hour, 0 to 23 inclusive.
      </summary>
    </metric>
    <metric name="ProviderType" type="int">
      <summary>
        Which type of search provider the launched result was created by. This comes
        from the AppListSearchResultType enum.
      </summary>
    </metric>
    <metric name="Score" type="int">
      <summary>
        The relevance score of the launched result. This is a double multiplied by
        1000 and cast to an int64. Results that don't have a score report 0.
      </summary>
    </metric>
    <metric name="SearchQuery" type="hmac-string">
      <summary>
        The search query associated with this launch. Before hashing, the query is
        the empty string if there was no search query.
      </summary>
    </metric>
    <metric name="SearchQueryLength" type="int">
      <summary>
        String length of the search query associated with this launch. If there was
        no query, this is zero.
      </summary>
    </metric>
    <metric name="Target" type="hmac-string">
      <summary>
        The target item of this launch, eg. an app ID, filepath, or omnibox URL.
      </summary>
    </metric>
  </event>
</project>

<project name="NearbyShare">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <id>none</id>
  <scope>profile</scope>
  <key-rotation>30</key-rotation>
  <summary>
    Metrics for the ChromeOS Nearby Share implementation.
  </summary>

  <event name="Discovery">
    <summary>
      A share target has been discovered by a sender.
    </summary>
    <metric name="Platform" type="int">
      <summary>
        The platform of the discovered share target.
      </summary>
    </metric>
    <metric name="DeviceRelationship" type="int">
      <summary>
        The relationship type of the discovered share target.
      </summary>
    </metric>
    <metric name="TimeToDiscovery" type="int">
      <summary>
        The time in milliseconds it took to discovery this share target from the
        start of the discovery process.
      </summary>
    </metric>
  </event>

  <event name="Throughput">
    <summary>
      A snapshot of the transfer rate of an in progress transfer.
    </summary>
    <metric name="IsReceiving" type="int">
      <summary>
        A boolean value describing if this devices is receiving this transfer. If
        false, it is assumed to be the sender.
      </summary>
    </metric>
    <metric name="Platform" type="int">
      <summary>
        The platform of the share target used for this transfer.
      </summary>
    </metric>
    <metric name="DeviceRelationship" type="int">
      <summary>
        The relationship type of the share target used for this transfer.
      </summary>
    </metric>
    <metric name="Medium" type="int">
      <summary>
        The medium used during this segment of the transfer.
      </summary>
    </metric>
    <metric name="UpdateBytes" type="int">
      <summary>
        The number of bytes transferred during this segment of the transfer.
      </summary>
    </metric>
    <metric name="UpdateMillis" type="int">
      <summary>
        The duration in milliseconds of this segment of the transfer.
      </summary>
    </metric>
    <metric name="TransferredBytes" type="int">
      <summary>
        The number of bytes transferred so far.
      </summary>
    </metric>
    <metric name="TotalTransferBytes" type="int">
      <summary>
        The total size in bytes for this transfer.
      </summary>
    </metric>
  </event>

  <event name="FileAttachment">
    <summary>
      A file attachment transferred over Nearby Share.
    </summary>
    <metric name="IsReceiving" type="int">
      <summary>
        A boolean value describing if this devices is receiving this transfer. If
        false, it is assumed to be the sender.
      </summary>
    </metric>
    <metric name="Platform" type="int">
      <summary>
        The platform of the share target used for this attachment.
      </summary>
    </metric>
    <metric name="DeviceRelationship" type="int">
      <summary>
        The relationship type of the share target used for this attachment.
      </summary>
    </metric>
    <metric name="FileType" type="int">
      <summary>
        The file type of this attachment.
      </summary>
    </metric>
    <metric name="Size" type="int">
      <summary>
        The size in bytes for attachment.
      </summary>
    </metric>
    <metric name="Result" type="int">
      <summary>
        The end result of the transfer for this attachment.
      </summary>
    </metric>
  </event>

  <event name="TextAttachment">
    <summary>
      A text attachment transferred over Nearby Share.
    </summary>
    <metric name="IsReceiving" type="int">
      <summary>
        A boolean value describing if this devices is receiving this transfer. If
        false, it is assumed to be the sender.
      </summary>
    </metric>
    <metric name="Platform" type="int">
      <summary>
        The platform of the share target used for this attachment.
      </summary>
    </metric>
    <metric name="DeviceRelationship" type="int">
      <summary>
        The relationship type of the share target used for this attachment.
      </summary>
    </metric>
    <metric name="TextType" type="int">
      <summary>
        The text type of this attachment.
      </summary>
    </metric>
    <metric name="Size" type="int">
      <summary>
        The size in bytes for attachment.
      </summary>
    </metric>
    <metric name="Result" type="int">
      <summary>
        The end result of the transfer for this attachment.
      </summary>
    </metric>
  </event>

  <event name="ShareSession">
    <summary>
      A Nearby Share session. This is emitted when the session completes,
      regardless of whether or not the transfer was successful.
    </summary>
    <metric name="IsReceiving" type="int">
      <summary>
        A boolean value describing if this devices is receiving this transfer. If
        false, it is assumed to be the sender.
      </summary>
    </metric>
    <metric name="Platform" type="int">
      <summary>
        The platform of the share target used for this attachment.
      </summary>
    </metric>
    <metric name="DeviceRelationship" type="int">
      <summary>
        The relationship type of the share target used for this attachment.
      </summary>
    </metric>
    <metric name="TimeToDiscovery" type="int">
      <summary>
        The time in milliseconds it took to discovery this share target from the
        start of the discovery process.
      </summary>
    </metric>
    <metric name="TimeToSelect" type="int">
      <summary>
        The time in milliseconds it took to select this share target from the time
        the target was discovered. This is only emitted for the sending flow.
      </summary>
    </metric>
    <metric name="TimeToConnect" type="int">
      <summary>
        The time in milliseconds it took to connect to this share target from the
        time the target was discovered. This is only emitted for the sending flow.
        This will not be set for targets that fail to connect.
      </summary>
    </metric>
    <metric name="TimeToAccept" type="int">
      <summary>
        The time in milliseconds it took the receiver to accept or reject the
        transfer from the time the target was discovered. Receivers begin the Nearby
        Share flow at discovery. This will not be set for a sender that fails to
        connect. It will always be set for receivers.
      </summary>
    </metric>
    <metric name="TimeToTransferComplete" type="int">
      <summary>
        The time in milliseconds it took the transfer to complete from the time the
        target was discovered.
      </summary>
    </metric>
    <metric name="InitialMedium" type="int">
      <summary>
        The initial medium used for this transfer.
      </summary>
    </metric>
    <metric name="TimeToUpgrade" type="int">
      <summary>
        The time in milliseconds it took the connection to upgrade the transfer
        medium from the time the target was discovered. This will only be set if an
        upgrade occurred.
      </summary>
    </metric>
    <metric name="FinalMedium" type="int">
      <summary>
        The final medium used for this transfer. This changes when there is a
        bandwidth upgrade.
      </summary>
    </metric>
    <metric name="NumberOfFiles" type="int">
      <summary>
        The number of file attachments for this transfer.
      </summary>
    </metric>
    <metric name="NumberOfTexts" type="int">
      <summary>
        The number of text attachments for this transfer.
      </summary>
    </metric>
    <metric name="NumberOfWiFiCredentials" type="int">
      <summary>
        The number of WiFi credentials attachments for this transfer.
      </summary>
    </metric>
    <metric name="TotalTransferBytes" type="int">
      <summary>
        The total size in bytes of all attachments for this transfer.
      </summary>
    </metric>
    <metric name="BytesTransferred" type="int">
      <summary>
        The number of bytes send or received during this transfer. This will be
        different than the total transfer size when the transfer fails or is
        cancelled.
      </summary>
    </metric>
    <metric name="Result" type="int">
      <summary>
        The end result of the transfer for this attachment.
      </summary>
    </metric>
  </event>
</project>

<project name="PhoneHub">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <id>none</id>
  <scope>profile</scope>
  <key-rotation>90</key-rotation>
  <summary>
    Metrics for ChromeOS Phone Hub connection workflow.
  </summary>

  <event name="SessionDetails">
    <summary>
      Records phone and chromebook info for the current session.
    </summary>
    <metric name="SessionId" type="raw-string">
      <summary>
        The unique id for each Phone Hub session. Will be reset after disconnection.
      </summary>
    </metric>
    <metric name="Timestamp" type="int">
      <summary>
        The timestamp when the event is logged.
      </summary>
    </metric>
    <metric name="ConnectionMedium" type="int">
      <summary>
        The medium the Phone Hub connection is using.
      </summary>
    </metric>
    <metric name="ChromebookBluetoothStack" type="int">
      <summary>
        Which bluetooth stach the chromebook is using, BlueZ or Floss.
      </summary>
    </metric>
    <metric name="DevicesNetworkState" type="int">
      <summary>
        The states of both devices network (same network, different network or phone
        is on cellular).
      </summary>
    </metric>
    <metric name="ChromebookLocale" type="raw-string">
      <summary>
        The locale of the chromebook.
      </summary>
    </metric>
    <metric name="ChromebookPseudonymousId" type="raw-string">
      <summary>
        The unique identifier of the user of this profile. Will rotate every 90 days
        at maximum.
      </summary>
    </metric>
    <metric name="PhoneManufacturer" type="raw-string">
      <summary>
        The manufacturer name of the connected phone.
      </summary>
    </metric>
    <metric name="PhoneModel" type="raw-string">
      <summary>
        The model name of the connected phone.
      </summary>
    </metric>
    <metric name="PhoneAndroidVersion" type="int">
      <summary>
        The Android version number of the connected phone.
      </summary>
    </metric>
    <metric name="PhoneAmbientApkVersion" type="int">
      <summary>
        The version of Ambient apk installed on the connected phone.
      </summary>
    </metric>
    <metric name="PhoneGmsCoreVersion" type="int">
      <summary>
        The version of GMS core apk installed on the connected phone.
      </summary>
    </metric>
    <metric name="PhoneProfile" type="int">
      <summary>
        Which profile the phone is using, personal or managed.
      </summary>
    </metric>
    <metric name="PhoneNetworkStatus" type="int">
      <summary>
        What network the connected phone is using.
      </summary>
    </metric>
    <metric name="PhoneLocale" type="raw-string">
      <summary>
        The locale of the connected phone.
      </summary>
    </metric>
    <metric name="PhonePseudonymousId" type="raw-string">
      <summary>
        The unique identifier ofthe connected phone. Will rotate at the same time
        with chromebook_pseudonymous_id.
      </summary>
    </metric>
    <metric name="PhoneInfoLastUpdatedTimestamp" type="int">
      <summary>
        The timestamp that the last time the cached phone information is updated.
      </summary>
    </metric>
  </event>

  <event name="DiscoveryStarted">
    <summary>
      Records when there is an attempt to dicover connected phone.
    </summary>
    <metric name="SessionId" type="raw-string">
      <summary>
        The unique id for each Phone Hub session. Will be reset after disconnection.
      </summary>
    </metric>
    <metric name="Timestamp" type="int">
      <summary>
        The timestamp when the event is logged.
      </summary>
    </metric>
    <metric name="DiscoveryEntrypoint" type="int">
      <summary>
        The entrypoint of this attempt to discovery phone.
      </summary>
    </metric>
  </event>

  <event name="DiscoveryFinished">
    <summary>
      Records when a discoery attempt finished.
    </summary>
    <metric name="SessionId" type="raw-string">
      <summary>
        The unique id for each Phone Hub session. Will be reset after disconnection.
      </summary>
    </metric>
    <metric name="Timestamp" type="int">
      <summary>
        The timestamp when the event is logged.
      </summary>
    </metric>
    <metric name="DiscoeryResult" type="int">
      <summary>
        The result of this discovery attempt.
      </summary>
    </metric>
    <metric name="DiscoveryResultErrorCode" type="int">
      <summary>
        The error code if the dicovery attempt failed.
      </summary>
    </metric>
  </event>

  <event name="NearbyConnection">
    <summary>
      Records the Nearby Connection events.
    </summary>
    <metric name="SessionId" type="raw-string">
      <summary>
        The unique id for each Phone Hub session. Will be reset after disconnection.
      </summary>
    </metric>
    <metric name="Timestamp" type="int">
      <summary>
        The timestamp when the event is logged.
      </summary>
    </metric>
    <metric name="NearbyConnectionStep" type="int">
      <summary>
        Each step happens during Nearby Connection.
      </summary>
    </metric>
    <metric name="NearbyConnectionStepResult" type="int">
      <summary>
        The result of each Nearby Connection step.
      </summary>
    </metric>
  </event>

  <event name="SecureChannelAuthentication">
    <summary>
      Records the Secure Channel authentication events.
    </summary>
    <metric name="SessionId" type="raw-string">
      <summary>
        The unique id for each Phone Hub session. Will be reset after disconnection.
      </summary>
    </metric>
    <metric name="Timestamp" type="int">
      <summary>
        The timestamp when the event is logged.
      </summary>
    </metric>
    <metric name="SecureChannelAuthenticationState" type="int">
      <summary>
        Each state during Secure Channel authentication process.
      </summary>
    </metric>
  </event>

  <event name="PhoneHubMessage">
    <summary>
      Records the Phone Hub sending/receiving message activities.
    </summary>
    <metric name="SessionId" type="raw-string">
      <summary>
        The unique id for each Phone Hub session. Will be reset after disconnection.
      </summary>
    </metric>
    <metric name="Timestamp" type="int">
      <summary>
        The timestamp when the event is logged.
      </summary>
    </metric>
    <metric name="PhoneHubMessageType" type="int">
      <summary>
        The type of this message.
      </summary>
    </metric>
    <metric name="PhoneHubMessageDirection" type="int">
      <summary>
        Which direction the message is going (phone to chromebook, or chromebook to
        phone).
      </summary>
    </metric>
  </event>

  <event name="PhoneHubUiUpdate">
    <summary>
      Records the Phone Hub sending/receiving message activities.
    </summary>
    <metric name="SessionId" type="raw-string">
      <summary>
        The unique id for each Phone Hub session. Will be reset after disconnection.
      </summary>
    </metric>
    <metric name="Timestamp" type="int">
      <summary>
        The timestamp when the event is logged.
      </summary>
    </metric>
    <metric name="PhoneHubUiState" type="int">
      <summary>
        The current Phone Hub UI state.
      </summary>
    </metric>
  </event>
</project>

<project name="StructuredMetrics">
  <owner>[email protected]</owner>
  <owner>[email protected]</owner>
  <id>per-project</id>
  <scope>device</scope>
  <key-rotation>90</key-rotation>
  <summary>
    Structured Metrics is a logging framework for events. This project is used
    for monitoring the framework itself.
  </summary>

  <event name="Initialization">
    <summary>
      Records metadata about initialization of Structured Metrics and will be
      recorded immediately after initialization is successful. Will be sent once
      per initialization during browser process initialization.
    </summary>
    <metric name="Platform" type="int">
      <summary>
        The platform for which the client is initialized on. 0: Uninitialized, 1:
        ASH_CHROME, 2: LACROS_CHROME.
      </summary>
    </metric>
  </event>
</project>

<project name="CrOSEvents" cros_events="true" targets="webui,chromium">
  <owner>[email protected]</owner>
  <id>per-project</id>
  <scope>device</scope>
  <key-rotation>120</key-rotation>
  <summary>
    Project used to record a sequence of events that are related to each other.
  </summary>
  <enum name="AppInstallSurface">
    <variant value="0">APP_PRELOAD_SERVICE_OEM</variant>
    <variant value="1">APP_PRELOAD_SERVICE_DEFAULT</variant>
    <variant value="2">OOBE_APP_RECOMMENDATIONS</variant>
    <variant value="3">APP_INSTALL_URI_UNKNOWN</variant>
    <variant value="4">APP_INSTALL_URI_SHOWOFF</variant>
    <variant value="5">APP_INSTALL_URI_MALL</variant>
    <variant value="6">APP_INSTALL_URI_GETIT</variant>
    <variant value="7">APP_INSTALL_URI_LAUNCHER</variant>
    <variant value="8">APP_INSTALL_URI_PERIPHERALS</variant>
  </enum>

  <enum name="CameraAppLaunchType">
    <variant value="0">DEFAULT</variant>
    <variant value="1">ASSISTANT</variant>
  </enum>

  <enum name="CameraAppMode">
    <variant value="0">PHOTO</variant>
    <variant value="1">VIDEO</variant>
    <variant value="2">SCAN</variant>
    <variant value="3">PORTRAIT</variant>
  </enum>

  <enum name="CameraAppFacing">
    <variant value="0">ENVIRONMENT</variant>
    <variant value="1">USER</variant>
    <variant value="2">EXTERNAL</variant>
    <variant value="3">UNKNOWN</variant>
  </enum>

  <enum name="CameraAppGridType">
    <variant value="0">NONE</variant>
    <variant value="1">THREE_BY_THREE</variant>
    <variant value="2">FOUR_BY_FOUR</variant>
    <variant value="3">GOLDEN</variant>
  </enum>

  <enum name="CameraAppTimerType">
    <variant value="0">NONE</variant>
    <variant value="1">THREE_SECONDS</variant>
    <variant value="2">TEN_SECONDS</variant>
  </enum>

  <enum name="CameraAppShutterType">
    <variant value="0">UNKNOWN</variant>
    <variant value="1">ASSISTANT</variant>
    <variant value="2">KEYBOARD</variant>
    <variant value="3">MOUSE</variant>
    <variant value="4">TOUCH</variant>
    <variant value="5">VOLUME_KEY</variant>
  </enum>

  <enum name="CameraAppPressure">
    <variant value="0">NOMINAL</variant>
    <variant value="1">FAIR</variant>
    <variant value="2">SERIOUS</variant>
    <variant value="3">CRITICAL</variant>
  </enum>

  <enum name="CameraAppAndroidIntentResultType">
    <variant value="0">NON_INTENT</variant>
    <variant value="1">CONFIRMED</variant>
    <variant value="2">CANCELED</variant>
  </enum>

  <enum name="CameraAppResolutionLevel">
    <variant value="0">UNKNOWN</variant>
    <variant value="1">FOUR_K</variant>
    <variant value="2">QUAD_HD</variant>
    <variant value="3">FULL_HD</variant>
    <variant value="4">HD</variant>
    <variant value="5">THREE_HUNDRED_THIRTY_P</variant>
    <variant value="6">FULL</variant>
    <variant value="7">MEDIUM</variant>
  </enum>

  <enum name="CameraAppAspectRatioSet">
    <variant value="0">OTHERS</variant>
    <variant value="1">FOUR_TO_THREE</variant>
    <variant value="2">SIXTEEN_TO_NINE</variant>
    <variant value="3">SQUARE</variant>
  </enum>

  <enum name="CameraAppRecordType">
    <variant value="0">NOT_RECORDING</variant>
    <variant value="1">NORMAL</variant>
    <variant value="2">GIF</variant>
    <variant value="3">TIMELAPSE</variant>
  </enum>

  <enum name="CameraAppGifResultType">
    <variant value="0">NOT_GIF</variant>
    <variant value="1">RETAKE</variant>
    <variant value="2">SHARE</variant>
    <variant value="3">SAVE</variant>
  </enum>

  <enum name="CameraAppDocScanActionType">
    <variant value="0">ADD_PAGE</variant>
    <variant value="1">DELETE_PAGE</variant>
    <variant value="2">FIX</variant>
  </enum>

  <enum name="CameraAppDocScanResultType">
    <variant value="0">CANCEL</variant>
    <variant value="1">SAVE_AS_PDF</variant>
    <variant value="2">SAVE_AS_PHOTO</variant>
    <variant value="3">SHARE</variant>
  </enum>

  <enum name="CameraAppLowStorageActionType">
    <variant value="0">MANAGE_STORAGE_AUTO_STOP</variant>
    <variant value="1">MANAGE_STORAGE_CANNOT_START</variant>
    <variant value="2">SHOW_AUTO_STOP_DIALOG</variant>
    <variant value="3">SHOW_CANNOT_START_DIALOG</variant>
    <variant value="4">SHOW_WARNING_MESSAGE</variant>
  </enum>

  <enum name="CameraAppBarcodeContentType">
    <variant value="0">TEXT</variant>
    <variant value="1">URL</variant>
    <variant value="2">WIFI</variant>
  </enum>

  <enum name="CameraAppWifiSecurityType">
    <variant value="0">NONE</variant>
    <variant value="1">EAP</variant>
    <variant value="2">WEP</variant>
    <variant value="3">WPA</variant>
  </enum>

  <enum name="CameraAppPerfEventType">
    <variant value="0">CAMERA_SWITCHING</variant>
    <variant value="1">GIF_CAPTURE_POST_PROCESSING</variant>
    <variant value="2">LAUNCHING_FROM_LAUNCH_APP_COLD</variant>
    <variant value="3">LAUNCHING_FROM_LAUNCH_APP_WARM</variant>
    <variant value="4">LAUNCHING_FROM_WINDOW_CREATION</variant>
    <variant value="5">MODE_SWITCHING</variant>
    <variant value="6">PHOTO_CAPTURE_POST_PROCESSING_SAVING</variant>
    <variant value="7">PHOTO_CAPTURE_SHUTTER</variant>
    <variant value="8">PHOTO_TAKING</variant>
    <variant value="9">PORTRAIT_MODE_CAPTURE_POST_PROCESSING_SAVING</variant>
    <variant value="10">TIMELAPSE_CAPTURE_POST_PROCESSING_SAVING</variant>
    <variant value="11">VIDEO_CAPTURE_POST_PROCESSING_SAVING</variant>
    <variant value="12">SNAPSHOT_TAKING</variant>
    <variant value="13">DOCUMENT_CAPTURE_POST_PROCESSING</variant>
    <variant value="14">DOCUMENT_PDF_SAVING</variant>
    <variant value="15">OCR_SCANNING</variant>
    <variant value="16">GIF_CAPTURE_SAVING</variant>
  </enum>

  <enum name="CameraAppOcrEventType">
    <variant value="0">COPY_TEXT</variant>
    <variant value="1">TEXT_DETECTED</variant>
  </enum>

  <enum name="CampaignButtonId">
    <variant value="0">PRIMARY</variant>
    <variant value="1">SECONDARY</variant>
    <variant value="2">OTHERS</variant>
    <variant value="3">CLOSE</variant>
  </enum>

  <enum name="QuickStartAbortFlowReason">
    <variant value="0">USER_CLICKED_BACK</variant>
    <variant value="1">USER_CLICKED_CANCEL</variant>
    <variant value="2">SIGNIN_SCHOOL</variant>
    <variant value="3">ENTERPRISE_ENROLLMENT</variant>
    <variant value="4">QS_ERROR</variant>
    <variant value="5">ADD_CHILD</variant>
  </enum>

  <enum name="QuickStartEntryPoint">
    <variant value="0">WELCOME_SCREEN</variant>
    <variant value="1">NETWORK_SCREEN</variant>
    <variant value="2">GAIA_INFO_SCREEN</variant>
    <variant value="3">GAIA_SCREEN</variant>
  </enum>

  <enum name="QuickStartScreenName">
    <variant value="0">OTHER</variant>
    <variant value="1">NONE</variant>
    <variant value="2">WELCOME_SCREEN</variant>
    <variant value="3">NETWORK_SCREEN</variant>
    <variant value="4">GAIA_SCREEN</variant>
    <variant value="5">QS_SETUP_WITH_ANDROID_PHONE</variant>
    <variant value="6">QS_CONNECTING_TO_WIFI</variant>
    <variant value="7">CHECKING_FOR_UPDATE_AND_DETERMINING_DEVICE_CONFIG</variant>
    <variant value="8">CHOOSE_CHROMEBOOK_SETUP</variant>
    <variant value="9">CONSUMER_UPDATE</variant>
    <variant value="10">QS_RESUMING_CONNECTION_AFTER_UPDATE</variant>
    <variant value="11">QS_GETTING_GOOGLE_ACCOUNT_INFO</variant>
    <variant value="12">QS_COMPLETE</variant>
    <variant value="13">SETUP_DEVICE_PIN</variant>
    <variant value="14">ADD_CHILD</variant>
    <variant value="15">REVIEW_PRIVACY_AND_TERMS</variant>
    <variant value="16">UNIFIED_SETUP</variant>
    <variant value="17">GAIA_INFO_SCREEN</variant>
    <variant value="18">QS_WIFI_CREDENTIALS_RECEIVED</variant>
    <variant value="19">QS_SELECT_GOOGLE_ACCOUNT</variant>
    <variant value="20">QS_CREATING_ACCOUNT</variant>
    <variant value="21">QS_FALLBACK_URL</variant>
  </enum>

  <enum name="PickerInputFieldType">
    <variant value="0">NONE</variant>
    <variant value="1">PLAIN_TEXT</variant>
    <variant value="2">RICH_TEXT</variant>
    <variant value="3">PASSWORD</variant>
    <variant value="4">SEARCH</variant>
    <variant value="5">EMAIL</variant>
    <variant value="6">NUMBER</variant>
    <variant value="7">TELEPHONE</variant>
    <variant value="8">URL</variant>
    <variant value="9">DATE_TIME</variant>
    <variant value="10">OTHER</variant>
  </enum>

  <enum name="PickerSessionOutcome">
    <variant value="0">UNKNOWN</variant>
    <variant value="1">INSERTED_OR_COPIED</variant>
    <variant value="2">ABANDONED</variant>
    <variant value="3">REDIRECTED</variant>
    <variant value="4">FORMAT</variant>
    <variant value="5">OPEN_FILE</variant>
    <variant value="6">OPEN_LINK</variant>
    <variant value="7">CREATE</variant>
  </enum>

  <enum name="PickerAction">
    <variant value="0">UNKNOWN</variant>
    <variant value="1">OPEN_EDITOR_WRITE</variant>
    <variant value="2">OPEN_EDITOR_REWRITE</variant>
    <variant value="3">OPEN_LINKS</variant>
    <variant value="4">OPEN_EXPRESSIONS</variant>
    <variant value="5">OPEN_CLIPBOARD</variant>
    <variant value="6">OPEN_DRIVE_FILES</variant>
    <variant value="7">OPEN_LOCAL_FILES</variant>
    <variant value="8">OPEN_DATES_TIMES</variant>
    <variant value="9">OPEN_UNITS_MATHS</variant>
    <variant value="10">TRANSFORM_UPPER_CASE</variant>
    <variant value="11">TRANSFORM_LOWER_CASE</variant>
    <variant value="12">TRANSFORM_SENTENCE_CASE</variant>
    <variant value="13">TRANSFORM_TITLE_CASE</variant>
    <variant value="14">CAPS_ON</variant>
    <variant value="15">CAPS_OFF</variant>
  </enum>

  <enum name="PickerResultSource">
    <variant value="0">UNKNOWN</variant>
    <variant value="1">OMNIBOX</variant>
    <variant value="2">EMOJI</variant>
    <variant value="3">CLIPBOARD</variant>
    <variant value="4">DRIVE_FILES</variant>
    <variant value="5">LOCAL_FILES</variant>
    <variant value="6">DATES_TIMES</variant>
    <variant value="7">UNITS_MATHS</variant>
    <variant value="8">CASE_TRANSFORM</variant>
    <variant value="9">DEPRECATED_TENOR</variant>
  </enum>

  <enum name="PickerResultType">
    <variant value="0">UNKNOWN</variant>
    <variant value="1">TEXT</variant>
    <variant value="2">EMOJI</variant>
    <variant value="3">SYMBOL</variant>
    <variant value="4">EMOTICON</variant>
    <variant value="5">CLIPBOARD_FILE</variant>
    <variant value="6">CLIPBOARD_TEXT</variant>
    <variant value="7">CLIPBOARD_IMAGE</variant>
    <variant value="8">CLIPBOARD_HTML</variant>
    <variant value="9">DEPRECATED_GIF</variant>
    <variant value="10">LINK</variant>
    <variant value="11">LOCAL_FILE</variant>
    <variant value="12">DRIVE_FILE</variant>
  </enum>
  <event name="AppDiscovery.AppInstalled">
    <summary>
      Recorded whenever a new app is installed on Chrome OS.
    </summary>
    <metric name="AppId" type="raw-string">
      <summary>
        Key that identifies an app.
      </summary>
    </metric>
    <metric name="AppType" type="int">
      <summary>
        The type of app that was installed (ie ARC, native, Crostini, etc.).
      </summary>
    </metric>
    <metric name="InstallSource" type="int">
      <summary>
        Origin from which the app was installed (ie launcher, playstore).
      </summary>
    </metric>
    <metric name="InstallReason" type="int">
      <summary>
        Reason for which the app was installed.
      </summary>
    </metric>
  </event>

  <event name="AppDiscovery.AppInstallService.InstallRequested">
    <summary>
      Recorded when an app discovery surface requests an app be installed through
      App Install Service. This is called very early in the App Install Service
      process, before any user confirmation/validity checks/network requests.
    </summary>
    <metric name="AppId" type="raw-string">
      <summary>
        App ID of the app requested to be installed.
      </summary>
    </metric>
    <metric name="Surface" type="AppInstallSurface">
      <summary>
        UI surface from which this install was requested.
      </summary>
    </metric>
  </event>

  <event name="AppDiscovery.AppLaunched">
    <summary>
      Recorded whenever a new app is launched on Chrome OS.
    </summary>
    <metric name="AppId" type="raw-string">
      <summary>
        Key that identifies an app.
      </summary>
    </metric>
    <metric name="AppType" type="int">
      <summary>
        The type of app that was installed (ie ARC, native, Crostini, etc.).
      </summary>
    </metric>
    <metric name="LaunchSource" type="int">
      <summary>
        From where the app was launched from (ie launcher, shelf).
      </summary>
    </metric>
  </event>

  <event name="AppDiscovery.AppUninstall">
    <summary>
      Recorded whenever an app is uninstalled on Chrome OS.
    </summary>
    <metric name="AppId" type="raw-string">
      <summary>
        Key that identifies an app.
      </summary>
    </metric>
    <metric name="AppType" type="int">
      <summary>
        The type of app that was installed (ie ARC, native, Crostini, etc.).
      </summary>
    </metric>
    <metric name="UninstallSource" type="int">
      <summary>
        From where the app was uninstalled.
      </summary>
    </metric>
  </event>

  <event name="AppDiscovery.AppStateChanged">
    <summary>
      Recorded when a change in an app state has been detected.
    </summary>
    <metric name="AppId" type="raw-string">
      <summary>
        Key that identifies an app.
      </summary>
    </metric>
    <metric name="AppState" type="int">
      <summary>
        Denotes a change in an app state. 0 - INACTIVE, 1 - ACTIVE, 2 - CLOSED.
      </summary>
    </metric>
  </event>

  <event name="AppDiscovery.ArcAppCameraAccessed">
    <summary>
      Recorded when a camera is accessed from an ARC app.
    </summary>
    <metric name="AppId" type="raw-string">
      <summary>
        Key that identifies an app.
      </summary>
    </metric>
  </event>

  <event name="AppDiscovery.LauncherOpen">
    <summary>
      Event collected if the launcher is opened. This is recorded when a zero-
      state query is initiated.
    </summary>

  </event>

  <event name="AppDiscovery.AppLauncherResultOpened">
    <summary>
      Event collected if a result iis opened in the launcher.
    </summary>
    <metric name="FuzzyStringMatch" type="double">
      <summary>
        Score that represents how close the initial query was to the app result
        selected. A score of 1.0 represents an exact match.
      </summary>
    </metric>
    <metric name="AppId" type="raw-string">
      <summary>
        App ID that identifies an app on the client. This will only be recorded if
        the user has consented into app-sync.
      </summary>
    </metric>
    <metric name="AppName" type="raw-string">
      <summary>
        Name of the app that was launched. Names are UTF-16 string encoding.
      </summary>
    </metric>
    <metric name="ResultCategory" type="int">
      <summary>
        Enum representing the category of app the result is. This enum should map to
        ash::SearchResultType.
      </summary>
    </metric>
  </event>

  <event name="AppDiscovery.Browser.OmniboxInstallIconClicked">
    <summary>
      Event recorded when the PWA Install Icon is clicked.
    </summary>
    <metric name="IPHShown" type="int">
      <summary>
        Boolean if the IPH (In-product help) was shown when the icon was clicked. 1
        if the IPH was shown 0 otherwise.
      </summary>
    </metric>
  </event>

  <event name="AppDiscovery.Browser.AppInstallDialogShown">
    <summary>
      Event recorded when the PWA confirmation dialog is shown.
    </summary>
    <metric name="AppId" type="raw-string">
      <summary>
        Identifier of the app for which the bubble view is shown.
      </summary>
    </metric>
  </event>

  <event name="AppDiscovery.Browser.AppInstallDialogResult">
    <summary>
      Event capturing the result of the app install dialog shown in the browser.
      This event will be captured if the install is accepted or cancelled. If a
      user switches to a different tab, this will result in a "cancel".
    </summary>
    <metric name="WebAppInstallStatus" type="int">
      <summary>
        1 if accepted. 0 if cancelled. The status is considered cancelled if the
        bubble dialog is closed before an "Accept" status has been detected.
      </summary>
    </metric>
    <metric name="AppId" type="raw-string">
      <summary>
        Identifier of the app for which the bubble view is shown.
      </summary>
    </metric>
  </event>

  <event name="AppDiscovery.Browser.ClickInstallAppFromMenu">
    <summary>
      Event recorded when a PWA is installed from the browser menu.
    </summary>
    <metric name="AppId" type="raw-string">
      <summary>
        Identifier of the app that is being installed.
      </summary>
    </metric>
  </event>

  <event name="AppDiscovery.Browser.CreateShortcut">
    <summary>
      Event recorded when a web app or PWA is installed by creating a shortcut.
    </summary>
    <metric name="AppId" type="raw-string">
      <summary>
        Identifier of the app that is being installed.
      </summary>
    </metric>
  </event>

  <event name="CameraApp.StartSession">
    <summary>
      Event recorded when the camera app is started.
    </summary>
    <metric name="LaunchType" type="CameraAppLaunchType">
      <summary>
        The type indicates how the camera app is launched.
      </summary>
    </metric>
    <metric name="Language" type="int">
      <summary>
        The integer maps to the LocaleCodeISO639 enum indicating the language that
        CCA UI uses.
      </summary>
    </metric>
  </event>

  <event name="CameraApp.Capture">
    <summary>
      Event recorded when the camera app executes a capture.
    </summary>
    <metric name="Mode" type="CameraAppMode">
      <summary>
        The mode where the capture happens.
      </summary>
    </metric>
    <metric name="Facing" type="CameraAppFacing">
      <summary>
        The facing of the capturing camera.
      </summary>
    </metric>
    <metric name="IsMirrored" type="int">
      <summary>
        Boolean indicating whether the camera preview is mirrored when the capture
        happens.
      </summary>
    </metric>
    <metric name="GridType" type="CameraAppGridType">
      <summary>
        The applied grid setting when the capture happens.
      </summary>
    </metric>
    <metric name="TimerType" type="CameraAppTimerType">
      <summary>
        The applied timer setting when the capture happens.
      </summary>
    </metric>
    <metric name="ShutterType" type="CameraAppShutterType">
      <summary>
        The shutter type which triggers the camera capture.
      </summary>
    </metric>
    <metric name="AndroidIntentResultType" type="CameraAppAndroidIntentResultType">
      <summary>
        The type of Android intent result which the capture leads to.
      </summary>
    </metric>
    <metric name="IsWindowMaximized" type="int">
      <summary>
        Boolean indicating whether the window is maximized when the capture happens.
      </summary>
    </metric>
    <metric name="IsWindowPortrait" type="int">
      <summary>
        Boolean indicating whether the window is in portrait orientation when the
        capture happens.
      </summary>
    </metric>
    <metric name="ResolutionWidth" type="int">
      <summary>
        The width of the capture resolution.
      </summary>
    </metric>
    <metric name="ResolutionHeight" type="int">
      <summary>
        The height of the capture resolution.
      </summary>
    </metric>
    <metric name="ResolutionLevel" type="CameraAppResolutionLevel">
      <summary>
        The level that the capture resolution falls within.
      </summary>
    </metric>
    <metric name="AspectRatioSet" type="CameraAppAspectRatioSet">
      <summary>
        The aspect ratio set that the capture aspect ratio falls within.
      </summary>
    </metric>
    <metric name="IsVideoSnapshot" type="int">
      <summary>
        Boolean indicating whether the photo is a snapshot taken during video
        recording.
      </summary>
    </metric>
    <metric name="IsMuted" type="int">
      <summary>
        Boolean indicating whether the video is recorded with mic muted.
      </summary>
    </metric>
    <metric name="Fps" type="int">
      <summary>
        The targeting frame rate of the video recording. 0 if the capture is not
        recording.
      </summary>
    </metric>
    <metric name="EverPaused" type="int">
      <summary>
        Boolean indicating whether the user has ever paused the recording.
      </summary>
    </metric>
    <metric name="Duration" type="int">
      <summary>
        The duration of the captured video in milliseconds.
      </summary>
    </metric>
    <metric name="RecordType" type="CameraAppRecordType">
      <summary>
        The type of the video recording.
      </summary>
    </metric>
    <metric name="GifResultType" type="CameraAppGifResultType">
      <summary>
        The type of the GIF recording result.
      </summary>
    </metric>
    <metric name="TimelapseSpeed" type="int">
      <summary>
        The acceleration speed that time-lapse feature applied. 0 if the capture is
        not time-lapse.
      </summary>
    </metric>
    <metric name="ZoomRatio" type="double">
      <summary>
        The zoom ratio set when users use digital zoom to take a photo or record
        a video.
      </summary>
    </metric>
  </event>

  <event name="CameraApp.AndroidIntent">
    <summary>
      Event recorded when the camera app is successfully handled an Android camera
      intent.
    </summary>
    <metric name="Mode" type="CameraAppMode">
      <summary>
        The mode where the Android camera intent is corresponding to.
      </summary>
    </metric>
    <metric name="ShouldHandleResult" type="int">
      <summary>
        Boolean indicating whether the camera app should handle the captured result
        for the Android camera intent.
      </summary>
    </metric>
    <metric name="ShouldDownscale" type="int">
      <summary>
        Boolean indicating whether the camera app should downscale the captured
        result for the Android camera intent.
      </summary>
    </metric>
    <metric name="IsSecure" type="int">
      <summary>
        Boolean indicating whether the camera intent is launched under the secure
        mode.
      </summary>
    </metric>
  </event>

  <event name="CameraApp.OpenPTZPanel">
    <summary>
      Event recorded when the PTZ panel is opened in the camera app.
    </summary>
    <metric name="SupportPan" type="int">
      <summary>
        Boolean indicating whether pan control is supported on the current camera.
      </summary>
    </metric>
    <metric name="SupportTilt" type="int">
      <summary>
        Boolean indicating whether tilt control is supported on the current camera.
      </summary>
    </metric>
    <metric name="SupportZoom" type="int">
      <summary>
        Boolean indicating whether zoom control is supported on the current camera.
      </summary>
    </metric>
  </event>

  <event name="CameraApp.DocScanAction">
    <summary>
      Event recorded when action related to document scanning is performed.
    </summary>
    <metric name="ActionType" type="CameraAppDocScanActionType">
      <summary>
        The type of the document scanning related action.
      </summary>
    </metric>
  </event>

  <event name="CameraApp.DocScanResult">
    <summary>
      Event recorded when the user finishes a document scanning session.
    </summary>
    <metric name="ResultType" type="CameraAppDocScanResultType">
      <summary>
        The type of the result of this document scanning session.
      </summary>
    </metric>
    <metric name="FixTypes" type="int">
      <summary>
        Integer used as a bit mask indicating the type(s) of fix that the user
        applied on the document scanning result.
      </summary>
    </metric>
    <metric name="FixCount" type="int">
      <summary>
        Integer indicating how many times the user performed a fix on the document
        scanning result.
      </summary>
    </metric>
    <metric name="PageCount" type="int">
      <summary>
        Integer indicating how many pages are saved from document scanning.
      </summary>
    </metric>
  </event>

  <event name="CameraApp.OpenCamera">
    <summary>
      Event recorded when the camera is opened in the camera app.
    </summary>
    <metric name="CameraModuleId" type="raw-string">
      <summary>
        String showing the camera module ID in "[VID]:[PID]" format if the camera
        module is in the top 20 list. Otherwise, it will be "others".
      </summary>
    </metric>
  </event>

  <event name="CameraApp.LowStorageAction">
    <summary>
      Event recorded when a action is performed in the camera app due to low
      storage detection.
    </summary>
    <metric name="ActionType" type="CameraAppLowStorageActionType">
      <summary>
        The type of the action for low storage handling.
      </summary>
    </metric>
  </event>

  <event name="CameraApp.BarcodeDetected">
    <summary>
      Event recorded when a barcode is detected on the preview of the camera app.
    </summary>
    <metric name="ContentType" type="CameraAppBarcodeContentType">
      <summary>
        The type of the content detected via the barcode.
      </summary>
    </metric>
    <metric name="WifiSecurityType" type="CameraAppWifiSecurityType">
      <summary>
        The Wi-Fi security type brought in the Wi-Fi QR code. If the barcode content
        is not Wi-Fi, the type will be set to none.
      </summary>
    </metric>
  </event>

  <event name="CameraApp.Perf">
    <summary>
      Event recorded when a performance measurement is done in the camera app.
    </summary>
    <metric name="EventType" type="CameraAppPerfEventType">
      <summary>
        The type of the performance measurement.
      </summary>
    </metric>
    <metric name="Duration" type="int">
      <summary>
        The duration of the performance event in milliseconds.
      </summary>
    </metric>
    <metric name="Facing" type="CameraAppFacing">
      <summary>
        The facing of the current camera. Will be unknown if the camera facing is
        irrelevant.
      </summary>
    </metric>
    <metric name="ResolutionWidth" type="int">
      <summary>
        The resolution width of the camera. Will be 0 if the resolution information
        is not provided.
      </summary>
    </metric>
    <metric name="ResolutionHeight" type="int">
      <summary>
        The resolution height of the camera. Will be 0 if the resolution information
        is not provided.
      </summary>
    </metric>
    <metric name="PageCount" type="int">
      <summary>
        Integer indicating how many pages are there in the document scanning result.
      </summary>
    </metric>
    <metric name="Pressure" type="CameraAppPressure">
      <summary>
        The CPU pressure level.
      </summary>
    </metric>
  </event>

  <event name="CameraApp.UnsupportedProtocol">
    <summary>
      Event recorded when a barcode is detected and it is unsupported protocol.
    </summary>

  </event>

  <event name="CameraApp.EndSession">
    <summary>
      Event recorded when the camera app is closed.
    </summary>
    <metric name="Duration" type="int">
      <summary>
        The duration of the camera app session in milliseconds.
      </summary>
    </metric>
  </event>

  <event name="CameraApp.MemoryUsage">
    <summary>
      Event recorded the memory usage summary of the camera session sent at the
      end of a camera session.
    </summary>
    <metric name="Behaviors" type="int">
      <summary>
        Bit mask indicating the combination of user behavior(s) that the user
        performed within the session.
      </summary>
    </metric>
    <metric name="MemoryUsage" type="int">
      <summary>
        Integer indicating the maximum memory usage within the session in bytes.
      </summary>
    </metric>
  </event>

  <event name="CameraApp.Ocr">
    <summary>
      Event recorded when OCR detects text on the preview or users interact with
      the detected text.
    </summary>
    <metric name="EventType" type="CameraAppOcrEventType">
      <summary>
        The type of the event about the OCR feature.
      </summary>
    </metric>
    <metric name="IsPrimaryLanguage" type="int">
      <summary>
        Boolean indicating whether the language of detected text is the same as the
        user's primary language.
      </summary>
    </metric>
    <metric name="LineCount" type="int">
      <summary>
        The number of lines of the detected text.
      </summary>
    </metric>
    <metric name="WordCount" type="int">
      <summary>
        The number of words of the detected text.
      </summary>
    </metric>
  </event>

  <event name="Growth.Ui.ButtonPressed">
    <summary>
      Event recorded when the button in the UI is pressed.
    </summary>
    <metric name="CampaignId" type="int">
      <summary>
        ID of the campaign.
      </summary>
    </metric>
    <metric name="ButtonId" type="CampaignButtonId">
      <summary>
        ID of the button pressed in the UI.
      </summary>
    </metric>
  </event>

  <event name="Growth.Ui.Dismissed">
    <summary>
      Event recorded when the UI is dismissed.
    </summary>
    <metric name="CampaignId" type="int">
      <summary>
        ID of the campaign.
      </summary>
    </metric>
  </event>

  <event name="Growth.Ui.Impression">
    <summary>
      Event recorded when it is ready to log a UI impression.
    </summary>
    <metric name="CampaignId" type="int">
      <summary>
        ID of the campaign.
      </summary>
    </metric>
  </event>

  <event name="OOBE.GaiaSigninRequested" force_record="true">
    <summary>
      Recorded after the password is entered for authentication in the GAIA Sign-
      in screen. Note: this is not recorded for SAML flows.
    </summary>
    <metric name="IsReauthentication" type="int">
      <summary>
        Boolean for whether the sign-in is for the online reauthintication an
        existing user.
      </summary>
    </metric>
    <metric name="IsFlexFlow" type="int">
      <summary>
        Boolean for whether the device is a ChromeOS Flex device.
      </summary>
    </metric>
    <metric name="IsDemoModeFlow" type="int">
      <summary>
        Boolean for whether the event is reported during the demo mode setup flow.
      </summary>
    </metric>
    <metric name="IsOwnerUser" type="int">
      <summary>
        Boolean for whether the event is reported while the active user is the owner
        of the device.
      </summary>
    </metric>
    <metric name="IsEphemeralOrMGS" type="int">
      <summary>
        Boolean for whether the event is reported while the active user is an
        ephemeral user or a managed guest session.
      </summary>
    </metric>
    <metric name="IsFirstOnboarding" type="int">
      <summary>
        Boolean for whether the event is reported during the first onboarding flow
        and before entering the session for the first time (without crashing into
        session).
      </summary>
    </metric>
    <metric name="ChromeMilestone" type="int">
      <summary>
        The major version of chrome at the time of recording the event.
      </summary>
    </metric>
  </event>

  <event name="OOBE.GaiaSigninCompleted" force_record="true">
    <summary>
      Recorded after a successful authentication in the GAIA Sign-in screen. Note:
      this is not recorded for SAML flows.
    </summary>
    <metric name="IsReauthentication" type="int">
      <summary>
        Boolean for whether the sign-in is for the online reauthintication an
        existing user.
      </summary>
    </metric>
    <metric name="IsFlexFlow" type="int">
      <summary>
        Boolean for whether the device is a ChromeOS Flex device.
      </summary>
    </metric>
    <metric name="IsDemoModeFlow" type="int">
      <summary>
        Boolean for whether the event is reported during the demo mode setup flow.
      </summary>
    </metric>
    <metric name="IsOwnerUser" type="int">
      <summary>
        Boolean for whether the event is reported while the active user is the owner
        of the device.
      </summary>
    </metric>
    <metric name="IsEphemeralOrMGS" type="int">
      <summary>
        Boolean for whether the event is reported while the active user is an
        ephemeral user or a managed guest session.
      </summary>
    </metric>
    <metric name="IsFirstOnboarding" type="int">
      <summary>
        Boolean for whether the event is reported during the first onboarding flow
        and before entering the session for the first time (without crashing into
        session).
      </summary>
    </metric>
    <metric name="ChromeMilestone" type="int">
      <summary>
        The major version of chrome at the time of recording the event.
      </summary>
    </metric>
  </event>

  <event name="OOBE.OobeStarted" force_record="true">
    <summary>
      Recorded at the first start of OOBE before the first OOBE screen is shown.
    </summary>
    <metric name="IsFlexFlow" type="int">
      <summary>
        Boolean for whether the device is in OOBE flow for ChromeOS Flex.
      </summary>
    </metric>
    <metric name="ChromeMilestone" type="int">
      <summary>
        The major version of chrome at the time of recording the event.
      </summary>
    </metric>
  </event>

  <event name="OOBE.PreLoginOobeCompleted" force_record="true">
    <summary>
      Recorded after the completion of the pre-login part of the flow.
    </summary>
    <metric name="CompletedFlowType" type="int">
      <summary>
        Enum representing the type of completed pre-login OOBE flow. This enum
        should map to ash::OobeMetricsHelper::CompletedPreLoginOobeFlowType.
      </summary>
    </metric>
    <metric name="IsFlexFlow" type="int">
      <summary>
        Boolean for whether the device is a ChromeOS Flex device.
      </summary>
    </metric>
    <metric name="IsDemoModeFlow" type="int">
      <summary>
        Boolean for whether the event is reported during the demo mode setup flow.
      </summary>
    </metric>
    <metric name="ChromeMilestone" type="int">
      <summary>
        The major version of chrome at the time of recording the event.
      </summary>
    </metric>
  </event>

  <event name="OOBE.DeviceRegistered" force_record="true">
    <summary>
      Recorded after the completion of the pre-login part of the flow.
    </summary>
    <metric name="IsFirstOnboarding" type="int">
      <summary>
        Boolean for whether the event is reported during the first onboarding flow
        and before entering the session for the first time (without crashing into
        session).
      </summary>
    </metric>
    <metric name="IsFlexFlow" type="int">
      <summary>
        Boolean for whether the device is a ChromeOS Flex device.
      </summary>
    </metric>
    <metric name="IsDemoModeFlow" type="int">
      <summary>
        Boolean for whether the event is reported during the demo mode setup flow.
      </summary>
    </metric>
    <metric name="ChromeMilestone" type="int">
      <summary>
        The major version of chrome at the time of recording the event.
      </summary>
    </metric>
  </event>

  <event name="OOBE.OobeCompleted" force_record="true">
    <summary>
      Recorded after the completion of the last screen in the onboarding flow and
      before the start of the session for the first user.
    </summary>
    <metric name="IsFlexFlow" type="int">
      <summary>
        Boolean for whether the device is a ChromeOS Flex device.
      </summary>
    </metric>
    <metric name="IsDemoModeFlow" type="int">
      <summary>
        Boolean for whether the event is reported during the demo mode setup flow.
      </summary>
    </metric>
    <metric name="IsOwnerUser" type="int">
      <summary>
        Boolean for whether the event is reported while the active user is the owner
        of the device.
      </summary>
    </metric>
    <metric name="IsEphemeralOrMGS" type="int">
      <summary>
        Boolean for whether the event is reported while the active user is an
        ephemeral user or a managed guest session.
      </summary>
    </metric>
    <metric name="IsFirstOnboarding" type="int">
      <summary>
        Boolean for whether the event is reported during the first onboarding flow
        and before entering the session for the first time (without crashing into
        session).
      </summary>
    </metric>
    <metric name="ChromeMilestone" type="int">
      <summary>
        The major version of chrome at the time of recording the event.
      </summary>
    </metric>
  </event>

  <event name="OOBE.OnboardingStarted" force_record="true">
    <summary>
      Recorded after a new user logs-in and before the first onboarding screen is
      shown.
    </summary>
    <metric name="IsFlexFlow" type="int">
      <summary>
        Boolean for whether the device is a ChromeOS Flex device.
      </summary>
    </metric>
    <metric name="IsDemoModeFlow" type="int">
      <summary>
        Boolean for whether the event is reported during the demo mode setup flow.
      </summary>
    </metric>
    <metric name="IsOwnerUser" type="int">
      <summary>
        Boolean for whether the event is reported while the active user is the owner
        of the device.
      </summary>
    </metric>
    <metric name="IsEphemeralOrMGS" type="int">
      <summary>
        Boolean for whether the event is reported while the active user is an
        ephemeral user or a managed guest session.
      </summary>
    </metric>
    <metric name="IsFirstOnboarding" type="int">
      <summary>
        Boolean for whether the event is reported during the first onboarding flow
        and before entering the session for the first time (without crashing into
        session).
      </summary>
    </metric>
    <metric name="ChromeMilestone" type="int">
      <summary>
        The major version of chrome at the time of recording the event.
      </summary>
    </metric>
  </event>

  <event name="OOBE.OnboardingCompleted" force_record="true">
    <summary>
      Recorded after the completion of the last screen in the onboarding flow and
      before the start of the session.
    </summary>
    <metric name="IsFlexFlow" type="int">
      <summary>
        Boolean for whether the device is a ChromeOS Flex device.
      </summary>
    </metric>
    <metric name="IsDemoModeFlow" type="int">
      <summary>
        Boolean for whether the event is reported during the demo mode setup flow.
      </summary>
    </metric>
    <metric name="IsOwnerUser" type="int">
      <summary>
        Boolean for whether the event is reported while the active user is the owner
        of the device.
      </summary>
    </metric>
    <metric name="IsEphemeralOrMGS" type="int">
      <summary>
        Boolean for whether the event is reported while the active user is an
        ephemeral user or a managed guest session.
      </summary>
    </metric>
    <metric name="IsFirstOnboarding" type="int">
      <summary>
        Boolean for whether the event is reported during the first onboarding flow
        and before entering the session for the first time (without crashing into
        session).
      </summary>
    </metric>
    <metric name="ChromeMilestone" type="int">
      <summary>
        The major version of chrome at the time of recording the event.
      </summary>
    </metric>
  </event>

  <event name="OOBE.PageEntered" force_record="true">
    <summary>
      Recorded after a screen is shown to the user.
    </summary>
    <metric name="PageId" type="raw-string">
      <summary>
        The ID of the screen exited. PageId is the screen ID defined in the screen
        handlers. For example, the ID of the Welcome screen is "connect".
      </summary>
    </metric>
    <metric name="IsFlexFlow" type="int">
      <summary>
        Boolean for whether the device is a ChromeOS Flex device.
      </summary>
    </metric>
    <metric name="IsDemoModeFlow" type="int">
      <summary>
        Boolean for whether the event is reported during the demo mode setup flow.
      </summary>
    </metric>
    <metric name="IsOwnerUser" type="int">
      <summary>
        Boolean for whether the event is reported while the active user is the owner
        of the device.
      </summary>
    </metric>
    <metric name="IsEphemeralOrMGS" type="int">
      <summary>
        Boolean for whether the event is reported while the active user is an
        ephemeral user or a managed guest session.
      </summary>
    </metric>
    <metric name="IsFirstOnboarding" type="int">
      <summary>
        Boolean for whether the event is reported during the first onboarding flow
        and before entering the session for the first time (without crashing into
        session).
      </summary>
    </metric>
    <metric name="ChromeMilestone" type="int">
      <summary>
        The major version of chrome at the time of recording the event.
      </summary>
    </metric>
  </event>

  <event name="OOBE.PageSkippedBySystem" force_record="true">
    <summary>
      Recorded after a screen was skipped by the system.
    </summary>
    <metric name="PageId" type="raw-string">
      <summary>
        The ID of the screen skipped.
      </summary>
    </metric>
    <metric name="IsFlexFlow" type="int">
      <summary>
        Boolean for whether the device is a ChromeOS Flex device.
      </summary>
    </metric>
    <metric name="IsDemoModeFlow" type="int">
      <summary>
        Boolean for whether the event is reported during the demo mode setup flow.
      </summary>
    </metric>
    <metric name="IsOwnerUser" type="int">
      <summary>
        Boolean for whether the event is reported while the active user is the owner
        of the device.
      </summary>
    </metric>
    <metric name="IsEphemeralOrMGS" type="int">
      <summary>
        Boolean for whether the event is reported while the active user is an
        ephemeral user or a managed guest session.
      </summary>
    </metric>
    <metric name="IsFirstOnboarding" type="int">
      <summary>
        Boolean for whether the event is reported during the first onboarding flow
        and before entering the session for the first time (without crashing into
        session).
      </summary>
    </metric>
    <metric name="ChromeMilestone" type="int">
      <summary>
        The major version of chrome at the time of recording the event.
      </summary>
    </metric>
  </event>

  <event name="OOBE.PageLeft" force_record="true">
    <summary>
      Recorded after a screen was exited.
    </summary>
    <metric name="PageId" type="raw-string">
      <summary>
        The ID of the screen exited.
      </summary>
    </metric>
    <metric name="ExitReason" type="raw-string">
      <summary>
        The ID of the reason for exiting the screen.
      </summary>
    </metric>
    <metric name="IsFlexFlow" type="int">
      <summary>
        Boolean for whether the device is a ChromeOS Flex device.
      </summary>
    </metric>
    <metric name="IsDemoModeFlow" type="int">
      <summary>
        Boolean for whether the event is reported during the demo mode setup flow.
      </summary>
    </metric>
    <metric name="IsOwnerUser" type="int">
      <summary>
        Boolean for whether the event is reported while the active user is the owner
        of the device.
      </summary>
    </metric>
    <metric name="IsEphemeralOrMGS" type="int">
      <summary>
        Boolean for whether the event is reported while the active user is an
        ephemeral user or a managed guest session.
      </summary>
    </metric>
    <metric name="IsFirstOnboarding" type="int">
      <summary>
        Boolean for whether the event is reported during the first onboarding flow
        and before entering the session for the first time (without crashing into
        session).
      </summary>
    </metric>
    <metric name="ChromeMilestone" type="int">
      <summary>
        The major version of chrome at the time of recording the event.
      </summary>
    </metric>
  </event>

  <event name="OOBE.PreLoginOobeResumed" force_record="true">
    <summary>
      Recorded after the determination to resume the pre-login OOBE flow and
      before showing the pending screen.
    </summary>
    <metric name="PendingPageId" type="raw-string">
      <summary>
        The ID of the screen to resume from.
      </summary>
    </metric>
    <metric name="ExitReason" type="raw-string">
      <summary>
        The ID of the reason for exiting the screen.
      </summary>
    </metric>
    <metric name="IsFlexFlow" type="int">
      <summary>
        Boolean for whether the device is a ChromeOS Flex device.
      </summary>
    </metric>
    <metric name="IsDemoModeFlow" type="int">
      <summary>
        Boolean for whether the event is reported during the demo mode setup flow.
      </summary>
    </metric>
    <metric name="IsOwnerUser" type="int">
      <summary>
        Boolean for whether the event is reported while the active user is the owner
        of the device.
      </summary>
    </metric>
    <metric name="IsEphemeralOrMGS" type="int">
      <summary>
        Boolean for whether the event is reported while the active user is an
        ephemeral user or a managed guest session.
      </summary>
    </metric>
    <metric name="IsFirstOnboarding" type="int">
      <summary>
        Boolean for whether the event is reported during the first onboarding flow
        and before entering the session for the first time (without crashing into
        session).
      </summary>
    </metric>
    <metric name="ChromeMilestone" type="int">
      <summary>
        The major version of chrome at the time of recording the event.
      </summary>
    </metric>
  </event>

  <event name="OOBE.OnboardingResumed" force_record="true">
    <summary>
      Recorded after the determination to resume the onboarding flow and before
      showing the pending screen.
    </summary>
    <metric name="PendingPageId" type="raw-string">
      <summary>
        The ID of the screen to resume form.
      </summary>
    </metric>
    <metric name="ExitReason" type="raw-string">
      <summary>
        The ID of the reason for exiting the screen.
      </summary>
    </metric>
    <metric name="IsFlexFlow" type="int">
      <summary>
        Boolean for whether the device is a ChromeOS Flex device.
      </summary>
    </metric>
    <metric name="IsDemoModeFlow" type="int">
      <summary>
        Boolean for whether the event is reported during the demo mode setup flow.
      </summary>
    </metric>
    <metric name="IsOwnerUser" type="int">
      <summary>
        Boolean for whether the event is reported while the active user is the owner
        of the device.
      </summary>
    </metric>
    <metric name="IsEphemeralOrMGS" type="int">
      <summary>
        Boolean for whether the event is reported while the active user is an
        ephemeral user or a managed guest session.
      </summary>
    </metric>
    <metric name="IsFirstOnboarding" type="int">
      <summary>
        Boolean for whether the event is reported during the first onboarding flow
        and before entering the session for the first time (without crashing into
        session).
      </summary>
    </metric>
    <metric name="ChromeMilestone" type="int">
      <summary>
        The major version of chrome at the time of recording the event.
      </summary>
    </metric>
  </event>

  <event name="OOBE.ChoobeResumed" force_record="true">
    <summary>
      Recorded after the determination to resume the CHOOBE flow and before
      showing the pending screen.
    </summary>
    <metric name="ExitReason" type="raw-string">
      <summary>
        The ID of the reason for exiting the screen.
      </summary>
    </metric>
    <metric name="IsFlexFlow" type="int">
      <summary>
        Boolean for whether the device is a ChromeOS Flex device.
      </summary>
    </metric>
    <metric name="IsDemoModeFlow" type="int">
      <summary>
        Boolean for whether the event is reported during the demo mode setup flow.
      </summary>
    </metric>
    <metric name="IsOwnerUser" type="int">
      <summary>
        Boolean for whether the event is reported while the active user is the owner
        of the device.
      </summary>
    </metric>
    <metric name="IsEphemeralOrMGS" type="int">
      <summary>
        Boolean for whether the event is reported while the active user is an
        ephemeral user or a managed guest session.
      </summary>
    </metric>
    <metric name="IsFirstOnboarding" type="int">
      <summary>
        Boolean for whether the event is reported during the first onboarding flow
        and before entering the session for the first time (without crashing into
        session).
      </summary>
    </metric>
    <metric name="ChromeMilestone" type="int">
      <summary>
        The major version of chrome at the time of recording the event.
      </summary>
    </metric>
  </event>

  <event name="Picker.StartSession">
    <summary>
      Recorded when user opens the picker window and starts a session.
    </summary>
    <metric name="InputFieldType" type="PickerInputFieldType">
      <summary>
        Type of input field that was focused when the session starts.
      </summary>
    </metric>
    <metric name="SelectionLength" type="int">
      <summary>
        Number of UTF-16 code units selected when the session starts.
      </summary>
    </metric>
  </event>

  <event name="Picker.FinishSession">
    <summary>
      Recorded when user closes the picker window and finishes a session.
    </summary>
    <metric name="Outcome" type="PickerSessionOutcome">
      <summary>
        Outcome of the session.
      </summary>
    </metric>
    <metric name="Action" type="PickerAction">
      <summary>
        Action the user takes during a session. The user can only take at most
        1 action during a session. UNKNOWN if the user didn't take any action.
      </summary>
    </metric>
    <metric name="ResultSource" type="PickerResultSource">
      <summary>
        Source of the inserted result. UNKNOWN if no result is inserted.
      </summary>
    </metric>
    <metric name="ResultType" type="PickerResultType">
      <summary>
        Type of the inserted result. UNKNOWN if no result is inserted.
      </summary>
    </metric>
    <metric name="TotalEdits" type="int">
      <summary>
        Total number of edits of the query text during the session.
      </summary>
    </metric>
    <metric name="FinalQuerySize" type="int">
      <summary>
        Number of UTF-16 code units of the query text when the session
        finishes.
      </summary>
    </metric>
    <metric name="ResultIndex" type="int">
      <summary>
        Index of the inserted result. -1 no result is inserted.
      </summary>
    </metric>
  </event>

  <event name="QuickStart.ScreenOpened">
    <summary>
      Recorded when a new UI view is shown to a Quick Start user. It can either be
      a new OOBE screen that occurs in the middle of Quick Start or one of the
      Quick Start UI views.
    </summary>
    <metric name="ScreenName" type="QuickStartScreenName">
      <summary>
        Screen shown to Quick Start user.
      </summary>
    </metric>
  </event>

  <event name="QuickStart.ScreenClosed">
    <summary>
      Recorded when a UI view shown to a Quick Start user leaves. It can either be
      a new OOBE screen that occurs in the middle of Quick Start or one of the
      Quick Start UI views.
    </summary>
    <metric name="ScreenName" type="QuickStartScreenName">
      <summary>
        Screen closed for Quick Start user.
      </summary>
    </metric>
  </event>

  <event name="QuickStart.Initiated">
    <summary>
      Recorded when a user initiates Quick Start.
    </summary>
    <metric name="EntryPoint" type="QuickStartEntryPoint">
      <summary>
        Entry Point from where the user entered Quick Start.
      </summary>
    </metric>
  </event>

  <event name="QuickStart.FlowAborted">
    <summary>
      Recorded when the Quick Start flow is prematurely aborted, either due to an
      error or user action.
    </summary>
    <metric name="Reason" type="QuickStartAbortFlowReason">
      <summary>
        Reason the Quick Start flow is aborted.
      </summary>
    </metric>
  </event>

  <event name="QuickStart.EstablishConnection">
    <summary>
      Recorded once a connection is established with the source device or an error
      occurs attempting to bootstrap the connection.
    </summary>
    <metric name="Success" type="int">
      <summary>
        Boolean indicating whether the connection is successfully established.
      </summary>
    </metric>
  </event>

  <event name="QuickStart.AutomaticResumeAfterUpdate">
    <summary>
      Recorded once a connection is automatically established with the source
      device after an update or when an error occurs attempting to automatically
      bootstrap the connection.
    </summary>
    <metric name="Success" type="int">
      <summary>
        Boolean indicating whether the connection is successfully established during
        the automatic resume attempt.
      </summary>
    </metric>
  </event>

  <event name="QuickStart.GetWifiCredentials">
    <summary>
      Recorded when the Wi-Fi credentials are received during Quick Start, or when
      an error occurs attempting to receive them.
    </summary>
    <metric name="Success" type="int">
      <summary>
        Boolean indicating whether the Wi-Fi credentials were successfully received.
      </summary>
    </metric>
  </event>

  <event name="QuickStart.InstallForcedUpdate">
    <summary>
      Recorded when the Quick Start user begins to install a forced update.
    </summary>

  </event>

  <event name="QuickStart.InstallConsumerUpdate">
    <summary>
      Recorded when the Quick Start user begins to install a consumer update.
    </summary>

  </event>

  <event name="QuickStart.ConsumerUpdateCancelled">
    <summary>
      Recorded when the Quick Start user cancels after beginning to install a
      consumer update.
    </summary>

  </event>

  <event name="QuickStart.AccountTransferStarted">
    <summary>
      Recorded when the Quick Start account transfer process begins.
    </summary>

  </event>

  <event name="QuickStart.AccountTransferComplete">
    <summary>
      Recorded when the Quick Start account transfer process finishes or an error
      occurs during.
    </summary>
    <metric name="Success" type="int">
      <summary>
        Boolean indicating whether the account transfer was successful.
      </summary>
    </metric>
  </event>

  <event name="UserLogin">
    <summary>
      An event to signify a user is using the system.
    </summary>

  </event>

  <event name="UserLogout">
    <summary>
      An event to signify a user explicitly logged out of the system.
    </summary>

  </event>

  <event name="SystemSuspended">
    <summary>
      An event to signify the system has gone to sleep.
    </summary>
    <metric name="Reason" type="int">
      <summary>
        The reason the system was suspended, maps to the SuspendImminent::Reason.
      </summary>
    </metric>
  </event>

  <event name="Test1">
    <summary>
      Test event used for unit tests to ensure that the code-gen for the event
      sequence project is working properly.
    </summary>
    <metric name="Metric1" type="double">
      <summary>
        Test metric1
      </summary>
    </metric>
  </event>

  <event name="NoMetricsEvent">
    <summary>
      Test event for events without metrics.
    </summary>

  </event>
</project>

<project name="DevTools">
  <owner>[email protected]</owner>
  <id>per-project</id>
  <scope>device</scope>
  <key-rotation>120</key-rotation>
  <summary>
    Interaction metrics for the Chrome DevTools — debugging tools and
    capabilities offered by Chrome.
  </summary>

  <event name="SessionStart">
    <summary>
      Recorded whenever DevTools is opened
    </summary>
    <metric name="Trigger" type="int">
      <summary>
        What caused DevTools to open (e.g. shortcut, inpsect menu item, etc)
      </summary>
    </metric>
    <metric name="DockSide" type="int">
      <summary>
        Which side is devtools docked to
      </summary>
    </metric>
    <metric name="SessionId" type="int">
      <summary>
        Unique ID of this debugging session. If DevTools is opened on multiple tabs,
        each instance would have a unique ID.
      </summary>
    </metric>
  </event>

  <event name="SessionEnd">
    <summary>
      Recorded whenever DevTools is closed
    </summary>
    <metric name="Trigger" type="int">
      <summary>
        What caused DevTools to close (e.g. shortcut, close button, etc)
      </summary>
    </metric>
    <metric name="TimeSinceSessionStart" type="int">
      <summary>
        Time in milliseconds since DevTools sessions start.
      </summary>
    </metric>
    <metric name="SessionId" type="int">
      <summary>
        Unique ID of this debugging session. If DevTools is opened on multiple tabs,
        each instance would have a unique ID.
      </summary>
    </metric>
  </event>

  <event name="Impression">
    <summary>
      Recorded whenever a new visual element is first shown to the user
    </summary>
    <metric name="VeId" type="int">
      <summary>
        Visual Element ID
      </summary>
    </metric>
    <metric name="VeType" type="int">
      <summary>
        Visual Element type.
      </summary>
    </metric>
    <metric name="VeParent" type="int">
      <summary>
        ID of a parent of the visual element.
      </summary>
    </metric>
    <metric name="VeContext" type="int">
      <summary>
        Arbitrary contextual information for the visual element.
      </summary>
    </metric>
    <metric name="TimeSinceSessionStart" type="int">
      <summary>
        Time in milliseconds since DevTools sessions start.
      </summary>
    </metric>
    <metric name="SessionId" type="int">
      <summary>
        Unique ID of this debugging session. If DevTools is opened on multiple tabs,
        each instance would have a unique ID.
      </summary>
    </metric>
    <metric name="Width" type="int">
      <summary>
        Width of the element in pixels
      </summary>
    </metric>
    <metric name="Height" type="int">
      <summary>
        Height of the element in pixels
      </summary>
    </metric>
  </event>

  <event name="Resize">
    <summary>
      Recorded whenever a visual element significantly changes in size
    </summary>
    <metric name="VeId" type="int">
      <summary>
        Visual Element ID
      </summary>
    </metric>
    <metric name="TimeSinceSessionStart" type="int">
      <summary>
        Time in milliseconds since DevTools sessions start.
      </summary>
    </metric>
    <metric name="SessionId" type="int">
      <summary>
        Unique ID of this debugging session. If DevTools is opened on multiple tabs,
        each instance would have a unique ID.
      </summary>
    </metric>
    <metric name="Width" type="int">
      <summary>
        Width of the element in pixels
      </summary>
    </metric>
    <metric name="Height" type="int">
      <summary>
        Height of the element in pixels
      </summary>
    </metric>
  </event>

  <event name="Click">
    <summary>
      Recorded whenever user clicks on a tracked visual element.
    </summary>
    <metric name="VeId" type="int">
      <summary>
        Visual Element ID
      </summary>
    </metric>
    <metric name="MouseButton" type="int">
      <summary>
        An index of a mouse button as defined in JavaScript MouseEvent.
      </summary>
    </metric>
    <metric name="DoubleClick" type="int">
      <summary>
        A boolean describing if the event is a double click.
      </summary>
    </metric>
    <metric name="Context" type="int">
      <summary>
        Arbitrary contextual information for the event.
      </summary>
    </metric>
    <metric name="TimeSinceSessionStart" type="int">
      <summary>
        Time in milliseconds since DevTools sessions start.
      </summary>
    </metric>
    <metric name="SessionId" type="int">
      <summary>
        Unique ID of this debugging session. If DevTools is opened on multiple tabs,
        each instance would have a unique ID.
      </summary>
    </metric>
  </event>

  <event name="Hover">
    <summary>
      Recorded whenever user hovers on a tracked visual element.
    </summary>
    <metric name="VeId" type="int">
      <summary>
        Visual Element ID
      </summary>
    </metric>
    <metric name="Time" type="int">
      <summary>
        Number of seconds the hover has lasted
      </summary>
    </metric>
    <metric name="Context" type="int">
      <summary>
        Arbitrary contextual information for the event.
      </summary>
    </metric>
    <metric name="TimeSinceSessionStart" type="int">
      <summary>
        Time in milliseconds since DevTools sessions start.
      </summary>
    </metric>
    <metric name="SessionId" type="int">
      <summary>
        Unique ID of this debugging session. If DevTools is opened on multiple tabs,
        each instance would have a unique ID.
      </summary>
    </metric>
  </event>

  <event name="Drag">
    <summary>
      Recorded whenever user drags in a tracked visual element.
    </summary>
    <metric name="VeId" type="int">
      <summary>
        Visual Element ID
      </summary>
    </metric>
    <metric name="Distance" type="int">
      <summary>
        Number of pixels dragged
      </summary>
    </metric>
    <metric name="Context" type="int">
      <summary>
        Arbitrary contextual information for the event.
      </summary>
    </metric>
    <metric name="TimeSinceSessionStart" type="int">
      <summary>
        Time in milliseconds since DevTools sessions start.
      </summary>
    </metric>
    <metric name="SessionId" type="int">
      <summary>
        Unique ID of this debugging session. If DevTools is opened on multiple tabs,
        each instance would have a unique ID.
      </summary>
    </metric>
  </event>

  <event name="Change">
    <summary>
      Recorded whenever user changes a value of a tracked visual element.
    </summary>
    <metric name="VeId" type="int">
      <summary>
        Visual Element ID
      </summary>
    </metric>
    <metric name="Context" type="int">
      <summary>
        Arbitrary contextual information for the event.
      </summary>
    </metric>
    <metric name="TimeSinceSessionStart" type="int">
      <summary>
        Time in milliseconds since DevTools sessions start.
      </summary>
    </metric>
    <metric name="SessionId" type="int">
      <summary>
        Unique ID of this debugging session. If DevTools is opened on multiple tabs,
        each instance would have a unique ID.
      </summary>
    </metric>
  </event>

  <event name="KeyDown">
    <summary>
      Recorded presses key on a tracked visual element.
    </summary>
    <metric name="VeId" type="int">
      <summary>
        Visual Element ID
      </summary>
    </metric>
    <metric name="Context" type="int">
      <summary>
        Arbitrary contextual information for the event.
      </summary>
    </metric>
    <metric name="TimeSinceSessionStart" type="int">
      <summary>
        Time in milliseconds since DevTools sessions start.
      </summary>
    </metric>
    <metric name="SessionId" type="int">
      <summary>
        Unique ID of this debugging session. If DevTools is opened on multiple tabs,
        each instance would have a unique ID.
      </summary>
    </metric>
  </event>
</project>

<project name="TestProjectOne">
  <owner>[email protected]</owner>
  <id>per-project</id>
  <scope>profile</scope>
  <key-rotation>90</key-rotation>
  <summary>
    Project for unit testing, do not use.
  </summary>

  <event name="TestEventOne">
    <summary>
      Event for unit testing, do not use.
    </summary>
    <metric name="TestMetricOne" type="hmac-string">
      <summary>
        A per-user keyed hashed value.
      </summary>
    </metric>
    <metric name="TestMetricTwo" type="int">
      <summary>
        An unhashed value, recorded as-is.
      </summary>
    </metric>
  </event>
</project>

<project name="TestProjectTwo">
  <owner>[email protected]</owner>
  <id>per-project</id>
  <scope>profile</scope>
  <key-rotation>90</key-rotation>
  <summary>
    Project for unit testing, do not use.
  </summary>

  <event name="TestEventThree">
    <summary>
      Event for unit testing, do not use.
    </summary>
    <metric name="TestMetricFour" type="hmac-string">
      <summary>
        A per-user keyed hashed value.
      </summary>
    </metric>
  </event>

  <event name="TestEventTwo">
    <summary>
      Event for unit testing, do not use.
    </summary>
    <metric name="TestMetricThree" type="hmac-string">
      <summary>
        A per-user keyed hashed value.
      </summary>
    </metric>
  </event>
</project>

<project name="TestProjectThree">
  <owner>[email protected]</owner>
  <id>uma</id>
  <scope>profile</scope>
  <key-rotation>90</key-rotation>
  <summary>
    Project for unit testing, do not use.
  </summary>

  <event name="TestEventFour">
    <summary>
      Event for unit testing, do not use.
    </summary>
    <metric name="TestMetricFour" type="int">
      <summary>
        An unhashed value, recorded as-is.
      </summary>
    </metric>
  </event>
</project>

<project name="TestProjectFour">
  <owner>[email protected]</owner>
  <id>per-project</id>
  <scope>device</scope>
  <key-rotation>90</key-rotation>
  <summary>
    Project for unit testing, do not use.
  </summary>

  <event name="TestEventFive">
    <summary>
      Event for unit testing, do not use.
    </summary>
    <metric name="TestMetricFive" type="hmac-string">
      <summary>
        A per-device keyed hashed value.
      </summary>
    </metric>
  </event>
</project>

<project name="TestProjectFive">
  <owner>[email protected]</owner>
  <id>none</id>
  <scope>profile</scope>
  <key-rotation>90</key-rotation>
  <summary>
    Project for unit testing, do not use.
  </summary>

  <event name="TestEventSix">
    <summary>
      Event for unit testing, do not use.
    </summary>
    <metric name="TestMetricSix" type="raw-string">
      <summary>
        A unhashed string value.
      </summary>
    </metric>
  </event>
</project>

<project name="TestProjectSix">
  <owner>[email protected]</owner>
  <id>none</id>
  <scope>profile</scope>
  <key-rotation>90</key-rotation>
  <summary>
    Project for unit testing, do not use.
  </summary>
  <enum name="Enum1">
    <variant value="1">VARIANT1</variant>
    <variant value="2">VARIANT2</variant>
    <variant value="5">VARIANT3</variant>
  </enum>
  <event name="TestEventSeven">
    <summary>
      Event for unit testing, do not use.
    </summary>
    <metric name="TestMetricSeven" type="double">
      <summary>
        A floating point value.
      </summary>
    </metric>
  </event>

  <event name="TestEnum">
    <summary>
      Event for unit testing, do not use.
    </summary>
    <metric name="TestEnumMetric" type="Enum1">
      <summary>
        An enum value.
      </summary>
    </metric>
  </event>
</project>

<project name="TestProjectSeven">
  <owner>[email protected]</owner>
  <id>none</id>
  <scope>profile</scope>
  <key-rotation>90</key-rotation>
  <summary>
    Project for unit testing, do not use.
  </summary>

  <event name="TestEventEight" force_record="true">
    <summary>
      Event for unit testing, do not use.
    </summary>
    <metric name="TestMetricEight" type="double">
      <summary>
        A floating point value.
      </summary>
    </metric>
  </event>
</project>

<project name="SequencedTestProject" cros_events="true">
  <owner>[email protected]</owner>
  <id>per-project</id>
  <scope>profile</scope>
  <key-rotation>90</key-rotation>
  <summary>
    Project for unit testing, do not use.
  </summary>

  <event name="Test1">
    <summary>
      Test event used for unit tests to ensure that the code-gen for the event
      sequence project is working properly.
    </summary>
    <metric name="Metric1" type="double">
      <summary>
        Test metric1
      </summary>
    </metric>
  </event>
</project>

</structured-metrics>