1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141
|
// 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;
// Display Compositor thread (in GPU process).
DISPLAY_COMPOSITOR_THREAD = 28;
// Codec worker thread.
// Spawned at
// https://source.chromium.org/chromium/chromium/src/+/main:media/base/codec_worker_impl.h;drc=923a33e9d5e24f4fb64f40dd2ffc182b2de93b0f;l=41.
CODEC_WORKER_THREAD = 29;
// 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;
}
|