// Copyright 2016 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. syntax = "proto2"; option optimize_for = LITE_RUNTIME; option java_package = "org.chromium.components.metrics"; option java_outer_classname = "ExecutionContextProtos"; package metrics; // Enums corresponding to the Chrome execution context in which data was // collected. // Chrome process type. Derived from content/public/common/process_type.h. enum Process { UNKNOWN_PROCESS = 0; BROWSER_PROCESS = 1; RENDERER_PROCESS = 2; GPU_PROCESS = 3; UTILITY_PROCESS = 4; ZYGOTE_PROCESS = 5; SANDBOX_HELPER_PROCESS = 6; PPAPI_PLUGIN_PROCESS = 7; PPAPI_BROKER_PROCESS = 8; NETWORK_SERVICE_PROCESS = 10; // A Chrome process not identified by any other enum. Defined for the benefit // of Chrome OS. Do not use for the Chrome sampling profiler; define a new // enum instead. OTHER_PROCESS = 9; } // Chrome thread. This list is not exhaustive. enum Thread { UNKNOWN_THREAD = 0; // The 'main thread' in various processes. In browser process, this is // sometimes also called the 'ui thread'. MAIN_THREAD = 1; FILE_THREAD = 2; // Deprecated. FILE_USER_BLOCKING_THREAD = 3; // Deprecated. PROCESS_LAUNCHER_THREAD = 4; // Deprecated. CACHE_THREAD = 5; // Deprecated. IO_THREAD = 6; DB_THREAD = 7; // Deprecated. GPU_MAIN_THREAD = 8; // Deprecated. RENDER_THREAD = 9; // Deprecated. UTILITY_THREAD = 10; // Deprecated. // Compositor thread (can be in both renderer and gpu processes). COMPOSITOR_THREAD = 11; // Task scheduler thread. SCHEDULER_WORKER_THREAD = 13; COMPOSITOR_TILE_WORKER_THREAD = 14; SERVICE_WORKER_THREAD = 15; // DedicatedWorker thread in the renderer process. DEDICATED_WORKER_THREAD = 18; // Thread pool thread (can be in different Chrome processes). THREAD_POOL_THREAD = 16; // GPU memory thread (in renderer process). GPU_MEMORY_THREAD = 17; // The thread for Chrome memory tracing (can be in different processes). MEMORY_INFRA_THREAD = 19; // Media thread (in renderer process). MEDIA_THREAD = 20; // WebRTC threads, e.g. WebRTC_Signaling,WebRTC_Network (in renderer process). WEBRTC_THREAD = 21; // DRM threads (in GPU process). DRM_THREAD = 22; // Audio device threads (in renderer process), a worker thread type used to // transfer data between the browser and the renderer process. AUDIO_DEVICE_THREAD = 23; // Audio threads that are not in the renderer processes. AUDIO_THREAD = 24; // Dav1d worker threads (in renderer process), which runs the AV1 codec. DAV1D_WORKER_THREAD = 25; // Stack sampling profiler uses this thread to periodically stop a thread // and get stack execution information. // Spawned at // https://source.chromium.org/chromium/chromium/src/+/main:base/profiler/stack_sampling_profiler.cc;l=379;drc=ada6c70d141251b40840a6cab657737bf63eed9d. STACK_SAMPLING_THREAD = 26; // Used for batching frames for video streams. // Spawned at // https://source.chromium.org/chromium/chromium/src/+/main:content/renderer/renderer_blink_platform_impl.cc;l=988;drc=7172fffc3c545134d5c88af8ab07b04fcb1d628e. VIDEO_FRAME_COMPOSITOR_THREAD = 27; // A Chrome thread not identified by any other enum. Defined for the benefit // of Chrome OS. Do not use for the Chrome sampling profiler; define a new // enum instead. OTHER_THREAD = 12; } // Process phases, or where in the lifetime of the process it is such as // startup, normal operation, shutdown, etc. These don't necessarily occur in // the order defined here so it's fine to add new ones to further segregrate // the lifetime of a process. enum ProcessPhase { // The browser's main message loop has been started. // Based on histogram Startup.MessageLoopStartTime MAIN_LOOP_START = 0; // The beginning of navigation in the first web contents' main frame. // Based on histogram Startup.FirstWebContents.MainNavigationStart MAIN_NAVIGATION_START = 1; // The navigation is committed (first bytes received) in the first web // contents' main frame. // Based on histogram Startup.FirstWebContents.MainNavigationFinished MAIN_NAVIGATION_FINISHED = 2; // First non-empty paint of the first web contents. // Based on histogram Startup.FirstWebContents.NonEmptyPaint2 FIRST_NONEMPTY_PAINT = 3; // Process shutdown has begun. SHUTDOWN_START = 4; }