// Copyright 2016 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. // Next MinVersion: 2 module arc.mojom; [Extensible] enum BootType { // This is used only for backward compatibility reasons and the value has to // be 0. UNKNOWN = 0, // This is for the very first (opt-in) boot. FIRST_BOOT = 1, // This is for the first boot after Chrome OS update which also updates the // ARC image. FIRST_BOOT_AFTER_UPDATE = 2, // This is for a regular boot. REGULAR_BOOT = 3, }; // Describes a boot progress event. struct BootProgressEvent { // Name of the boot progress event in Android. Currently there are // 11 boot progress events found in Android source repository: // system/core/logcat/event.logtags // frameworks/base/services/core/java/com/android/server/am/ // EventLogTags.logtags // frameworks/base/services/core/java/com/android/server/ // EventLogTags.logtags string event; // Timestamp of the event in uptime obtained in ARC. The uptime // is from clock source MONOTONIC_CLOCK since Chrome OS boots up. // Therefore, we need to calibrate the correct elapsed time of the // event by comparing the uptime with the ARC start time from // the same clock source MONOTONIC_CLOCK in session manager. int64 uptimeMillis; }; // Next method ID: 1 interface MetricsHost { // Report boot progress events from ARC instance. ReportBootProgress@0(array events, [MinVersion=1] BootType boot_type); }; // Next method ID: 1 interface MetricsInstance { Init@0(MetricsHost host_ptr); };