1// Copyright 2020 The Chromium Authors 2// Use of this source code is governed by a BSD-style license that can be 3// found in the LICENSE file. 4 5syntax = "proto2"; 6 7import public "protos/perfetto/trace/track_event/track_event.proto"; 8import public "protos/perfetto/trace/track_event/debug_annotation.proto"; 9 10package perfetto.protos; 11 12enum ChromeAppState { 13 APP_STATE_FOREGROUND = 1; 14 APP_STATE_BACKGROUND = 2; 15} 16 17enum MemoryPressureLevel { 18 MEMORY_PRESSURE_LEVEL_NONE = 0; 19 MEMORY_PRESSURE_LEVEL_MODERATE = 1; 20 MEMORY_PRESSURE_LEVEL_CRITICAL = 2; 21} 22 23message ChromeMemoryPressureNotification { 24 optional MemoryPressureLevel level = 1; 25 26 // ID of interned source location where MemoryPressureListener was created 27 optional uint64 creation_location_iid = 2; 28} 29 30message BlinkTaskScope { 31 enum TaskScopeType { 32 TASK_SCOPE_UNKNOWN = 0; 33 TASK_SCOPE_CALLBACK = 1; 34 TASK_SCOPE_SCHEDULED_ACTION = 2; 35 TASK_SCOPE_SCRIPT_EXECUTION = 3; 36 TASK_SCOPE_POST_MESSAGE = 4; 37 TASK_SCOPE_POP_STATE = 5; 38 TASK_SCOPE_SCHEDULER_POST_TASK = 6; 39 TASK_SCOPE_REQUEST_IDLE_CALLBACK = 7; 40 } 41 optional TaskScopeType type = 1; 42 optional int64 scope_task_id = 2; 43 optional int64 running_task_id_to_be_restored = 3; 44 optional int64 continuation_task_id_to_be_restored = 4; 45 optional int64 parent_task_id = 5; 46} 47 48message ChromeTaskAnnotator { 49 enum DelayPolicy { 50 FLEXIBLE_NO_SOONER = 0; 51 FLEXIBLE_PREFER_EARLY = 1; 52 PRECISE = 2; 53 } 54 optional uint32 ipc_hash = 1; 55 // The delay in microseconds that was specified, if any, when this task was 56 // posted. This is only valid for delayed tasks. 57 optional uint64 task_delay_us = 2; 58 optional DelayPolicy delay_policy = 3; 59} 60 61message ChromeBrowserContext { 62 reserved 1; 63 optional string id = 2; 64} 65 66message ChromeProfileDestroyer { 67 optional fixed64 profile_ptr = 1; 68 optional bool is_off_the_record = 2; 69 optional string otr_profile_id = 3; 70 optional uint32 host_count_at_creation = 4; 71 optional uint32 host_count_at_destruction = 5; 72 optional fixed64 render_process_host_ptr = 6; 73} 74 75message ChromeTaskPostedToDisabledQueue { 76 optional string task_queue_name = 1; 77 optional uint64 time_since_disabled_ms = 2; 78 optional uint32 ipc_hash = 3; 79 optional uint64 source_location_iid = 4; 80} 81 82message ChromeRasterTask { 83 optional int64 source_frame_number = 1; 84} 85 86message ChromeMessagePumpForUI { 87 // The MSG defined in winuser.h. 88 optional uint32 message_id = 1; 89} 90 91// An enumeration specifying the reason of the RenderFrame deletion. 92// This is copied from content/common/frame.mojom. 93enum FrameDeleteIntention { 94 // The frame being deleted isn't a (speculative) main frame. 95 FRAME_DELETE_INTENTION_NOT_MAIN_FRAME = 0; 96 97 // The frame being deleted is a speculative main frame, and it is being 98 // deleted as part of the shutdown for that WebContents. The entire RenderView 99 // etc will be destroyed by a separate IPC sent later. 100 FRAME_DELETE_INTENTION_SPECULATIVE_MAIN_FRAME_FOR_SHUTDOWN = 1; 101 102 // The frame being deleted is a speculative main frame, and it is being 103 // deleted because the speculative navigation was cancelled. This is not part 104 // of shutdown. 105 FRAME_DELETE_INTENTION_SPECULATIVE_MAIN_FRAME_FOR_NAVIGATION_CANCELLED = 2; 106} 107 108message RenderFrameImplDeletion { 109 // The intent for the deletion. 110 optional FrameDeleteIntention intent = 1; 111 112 // Whether the frame that's about to be deleted has a pending navigation 113 // commit. 114 optional bool has_pending_commit = 2; 115 116 // Whether the frame that's about to be deleted has a pending cross-document 117 // navigation commit. 118 optional bool has_pending_cross_document_commit = 3; 119 120 // The FrameTreeNode ID of the frame that's about to be deleted. 121 optional uint64 frame_tree_node_id = 4; 122} 123 124// Matches content::ShouldSwapBrowsingInstance. 125enum ShouldSwapBrowsingInstance { 126 // Was used for all "no BrowsingInstance swap" scenarios, now broken down in 127 // separate reasons. 128 SHOULD_SWAP_BROWSING_INSTANCE_NO = 0; 129 130 // Forced BrowsingInstance swap. 131 SHOULD_SWAP_BROWSING_INSTANCE_YES_FORCE_SWAP = 1; 132 133 // Proactive BrowsingInstance swap for cross-site navigation. 134 SHOULD_SWAP_BROWSING_INSTANCE_YES_CROSS_SITE_PROACTIVE_SWAP = 2; 135 136 // Proactive BrowsingInstance swap for same-site navigation. 137 SHOULD_SWAP_BROWSING_INSTANCE_YES_SAME_SITE_PROACTIVE_SWAP = 3; 138 139 SHOULD_SWAP_BROWSING_INSTANCE_NO_PROACTIVE_SWAP_DISABLED = 4; 140 SHOULD_SWAP_BROWSING_INSTANCE_NO_NOT_MAIN_FRAME = 5; 141 SHOULD_SWAP_BROWSING_INSTANCE_NO_HAS_RELATED_ACTIVE_CONTENTS = 6; 142 SHOULD_SWAP_BROWSING_INSTANCE_NO_DOES_NOT_HAVE_SITE = 7; 143 SHOULD_SWAP_BROWSING_INSTANCE_NO_SOURCE_URL_SCHEME_NOT_HTTP_OR_HTTPS = 8; 144 SHOULD_SWAP_BROWSING_INSTANCE_NO_DESTINATION_URL_SCHEME_NOT_HTTP_OR_HTTPS = 9; 145 SHOULD_SWAP_BROWSING_INSTANCE_NO_SAME_SITE_NAVIGATION = 10; 146 SHOULD_SWAP_BROWSING_INSTANCE_NO_RELOADING_ERROR_PAGE = 11; 147 SHOULD_SWAP_BROWSING_INSTANCE_NO_ALREADY_HAS_MATCHING_BROWSING_INSTANCE = 12; 148 SHOULD_SWAP_BROWSING_INSTANCE_NO_RENDERER_DEBUG_URL = 13; 149 SHOULD_SWAP_BROWSING_INSTANCE_NO_NOT_NEEDED_FOR_BACK_FORWARD_CACHE = 14; 150 SHOULD_SWAP_BROWSING_INSTANCE_NO_SAME_DOCUMENT_NAVIGATION = 15; 151 SHOULD_SWAP_BROWSING_INSTANCE_NO_SAME_URL_NAVIGATION = 16; 152 SHOULD_SWAP_BROWSING_INSTANCE_NO_WILL_REPLACE_ENTRY = 17; 153 SHOULD_SWAP_BROWSING_INSTANCE_NO_RELOAD = 18; 154 SHOULD_SWAP_BROWSING_INSTANCE_NO_GUEST = 19; 155 SHOULD_SWAP_BROWSING_INSTANCE_NO_HAS_NOT_COMMITTED_ANY_NAVIGATION = 20; 156 // The following reason was deprecated from https://crrev.com/c/3858766 157 SHOULD_SWAP_BROWSING_INSTANCE_NO_UNLOAD_HANDLER_EXISTS_ON_SAME_SITE_NAVIGATION = 158 21; 159 SHOULD_SWAP_BROWSING_INSTANCE_NO_NOT_PRIMARY_MAIN_FRAME = 22; 160} 161 162message ShouldSwapBrowsingInstancesResult { 163 // The FrameTreeNode ID. 164 optional uint64 frame_tree_node_id = 1; 165 166 // Whether a navigation will do a BrowsingInstance swap or not. 167 optional ShouldSwapBrowsingInstance result = 2; 168} 169 170message FrameTreeNodeInfo { 171 // The FrameTreeNode ID. 172 optional uint64 frame_tree_node_id = 1; 173 174 // Whether the frame is a main frame or not. 175 optional bool is_main_frame = 2; 176 177 // Whether there's a speculative RenderFrameHost or not. 178 optional bool has_speculative_render_frame_host = 3; 179 180 optional RenderFrameHost current_frame_host = 4; 181 optional RenderFrameHost speculative_frame_host = 5; 182 183 // NOTE: this proto must be kept consistent with 184 // content::FrameType. 185 enum FrameType { 186 UNSPECIFIED_FRAME_TYPE = 0; 187 SUBFRAME = 1; 188 PRIMARY_MAIN_FRAME = 2; 189 PRERENDER_MAIN_FRAME = 3; 190 FENCED_FRAME_ROOT = 4; 191 } 192 193 optional FrameType frame_type = 6; 194 195 // Additional untyped debug information associated with this 196 // FrameTreeNode, populated via TracedProto::AddDebugAnnotations API. 197 repeated DebugAnnotation debug_annotations = 99; 198} 199 200message ChromeHashedPerformanceMark { 201 optional uint32 site_hash = 1; 202 optional string site = 2; 203 optional uint32 mark_hash = 3; 204 optional string mark = 4; 205 206 // A randomly generated unique identifier for a given ExecutionContext 207 // (document, worker, etc). Used to be able to correlate events in a process 208 // where there are multiple execution contexts from the same site. 209 optional uint32 execution_context_id = 5; 210 211 // Indicates the sequence number of this particular mark being emitted from 212 // a particular site in the scope of a single ExecutionContext. Typical 213 // sites emit batches of events that are correlated in time (a thing started, 214 // a thing reached a given milestone, a thing completed). When these events 215 // are intermixed it is useful to know which ones are semantically related. 216 // The value is generated by the content itself, but shifted by a fixed 217 // random offset at runtime so as to limit usage as a side channel. 218 optional uint32 sequence_number = 6; 219} 220 221// Sent on SQL errors where we need string diagnostics. Corresponds to 222// `Database::DatabaseDiagnostics` in the Chrome SQL code. Does not contain any 223// PII, because the bound values are not included in the SQL statement. 224message ChromeSqlDiagnostics { 225 optional int32 reported_sqlite_error_code = 1; 226 optional int32 error_code = 2; 227 optional int32 last_errno = 3; 228 optional string sql_statement = 4; 229 optional int32 version = 5; 230 231 // Most rows in 'sql_schema' have a non-NULL 'sql' column. Those rows' 'sql' 232 // contents are logged here, one element per row. 233 repeated string schema_sql_rows = 6; 234 235 // Some rows of 'sql_schema' have a NULL 'sql' column. They are typically 236 // autogenerated indices, like "sqlite_autoindex_downloads_slices_1". These 237 // are also logged here by their 'name' column, one element per row. 238 repeated string schema_other_row_names = 7; 239 240 optional bool has_valid_header = 8; 241 optional bool has_valid_schema = 9; 242 optional string error_message = 10; 243} 244 245message ChromeWebAppBadNavigate { 246 optional bool is_kiosk = 1; 247 optional bool has_hosted_app_controller = 2; 248 optional string app_name = 3; 249 optional uint32 system_app_type = 4; 250 optional bool web_app_provider_registry_ready = 5; 251 optional bool system_web_app_manager_synchronized = 6; 252} 253 254// These IDs are generated at compile time and differ for each chrome version. 255// IDs are stable on for a given chrome version but are changing when resources 256// are added or removed to chrome. 257message ResourceBundle { 258 optional uint32 resource_id = 1; 259} 260 261// Information about RenderProcessHost. 262message RenderProcessHost { 263 // Unique Id to identify the RenderProcessHost. This is the browser-side, 264 // persistent id for this RenderProcessHost that stays constant even across OS 265 // layer processes managed by this RenderProcessHost. 266 optional uint32 id = 1; 267 // See ProcessLock::ToString(). 268 optional string process_lock = 2; 269 // The PID of the child process. 270 optional int32 child_process_id = 3; 271 272 // Details about the associated browser context. 273 optional ChromeBrowserContext browser_context = 4; 274 275 // Additional untyped debug information associated with this 276 // RenderProcessHost, populated via TracedProto::AddDebugAnnotations API. 277 repeated DebugAnnotation debug_annotations = 99; 278} 279 280message RenderProcessHostListener { 281 // Routing ID of the listener to the RenderProcessHost, recorded when a new ID 282 // is added or when an ID is removed. 283 optional uint32 routing_id = 1; 284} 285 286message RenderProcessHostCleanup { 287 // Number of IPC listeners registered to the host when Cleanup() was called. 288 optional uint32 listener_count = 1; 289 // Number of "keep alive" references active in the RenderProcessHost, recorded 290 // when Cleanup() was called. 291 optional uint32 keep_alive_ref_count = 2; 292 // Number of "shutdown delay" references active in the RenderProcessHost, 293 // recorded when Cleanup() was called. 294 optional uint32 shutdown_delay_ref_count = 3; 295 // Number of "worker delay" references active in the RenderProcessHost, 296 // recorded when Cleanup() was called. 297 optional uint32 worker_ref_count = 4; 298 // Number of "pending reuse" references active in the RenderProcessHost, 299 // recorded when Cleanup() was called. 300 optional uint32 pending_reuse_ref_count = 5; 301} 302 303message ChildProcessLauncherPriority { 304 // True if the new priority set to background. 305 optional bool is_backgrounded = 1; 306 // True if the renderer proecss has pending views. 307 optional bool has_pending_views = 2; 308 309 // Importance of the child process in Android. 310 enum Importance { 311 IMPORTANCE_NORMAL = 1; 312 IMPORTANCE_MODERATE = 2; 313 IMPORTANCE_IMPORTANT = 3; 314 } 315 optional Importance importance = 3; 316} 317 318// Information that identifies a Chrome Extension. 319message ChromeExtensionId { 320 // Unique id that identifies a Chrome Extension. 321 optional string extension_id = 1; 322 323 // Pseudonymized `extension_id` field (see also 324 // content::PseudonymizationUtil::PseudonymizeString method). 325 optional uint32 pseudonymized_extension_id = 2; 326} 327 328message SiteInstance { 329 // The ID of the SiteInstance. 330 optional int32 site_instance_id = 1; 331 332 // The ID of the BrowsingInstance that the SiteInstance belongs to. 333 optional int32 browsing_instance_id = 2; 334 335 // Whether the SiteInstance is the "default SiteInstance" or not. Non-isolated 336 // sites on Android are not assigned to their own specific per-site process, 337 // and shares SiteInstances with each other (the default SiteInstance). 338 optional bool is_default = 3; 339 340 // Whether this SiteInstance has a running process associated with it. 341 optional bool has_process = 4; 342 343 // Returns the total active WebContents count for this SiteInstance and all 344 // related SiteInstances in the same BrowsingInstance. 345 optional int32 related_active_contents_count = 5; 346 347 // The number of active RenderFrameHosts this SiteInstance's SiteInstanceGroup 348 // has. 349 optional int32 active_rfh_count = 6; 350 351 // The SiteInstanceGroup this SiteInstance belongs to. 352 optional SiteInstanceGroup site_instance_group = 7; 353 354 // Additional untyped debug information associated with this 355 // SiteInstance, populated via TracedProto::AddDebugAnnotations API. 356 repeated DebugAnnotation debug_annotations = 99; 357} 358 359message SiteInstanceGroup { 360 // The ID of the SiteInstanceGroup. 361 optional int32 site_instance_group_id = 1; 362 363 // The number of active frames in this SiteInstanceGroup. 364 optional int32 active_frame_count = 2; 365 366 // The process ID of the SiteInstanceGroup. 367 optional RenderProcessHost process = 3; 368 369 // Additional untyped debug information associated with this 370 // SiteInstanceGroup, populated via TracedProto::AddDebugAnnotations API. 371 repeated DebugAnnotation debug_annotations = 99; 372} 373 374// Next ID: 7 375message RenderViewHost { 376 // The RenderViewHostMapId for the RenderViewHost. 377 optional int32 rvh_map_id = 1; 378 379 // The routing ID for the RenderViewHost. 380 optional int32 routing_id = 2; 381 382 // The process ID of the RenderViewHost. Deprecated in favour of |process|. 383 optional int32 process_id = 3; 384 385 // Process this RenderViewHost is associated with. 386 optional RenderProcessHost process = 6; 387 388 // Whether the RenderViewHost is in back/forward cache or not. 389 optional bool is_in_back_forward_cache = 4; 390 391 // Whether the renderer-side RenderView is created. 392 optional bool renderer_view_created = 5; 393 394 // Additional untyped debug information associated with this 395 // RenderViewHost, populated via TracedProto::AddDebugAnnotations API. 396 repeated DebugAnnotation debug_annotations = 99; 397} 398 399message RenderFrameProxyHost { 400 // The routing ID for the RenderFrameProxyHost. 401 optional int32 routing_id = 1; 402 403 // The process ID of the RenderFrameProxyHost. 404 optional int32 process_id = 2; 405 406 // The RenderViewHostMapId of the RenderViewHost associated with the 407 // RenderFrameProxyHost. 408 optional int32 rvh_map_id = 3; 409 410 // The SiteInstanceId of the SiteInstance associated with the 411 // RenderFrameProxyHost. 412 optional int32 site_instance_id = 4; 413 414 // Whether the renderer-side RenderFrameProxy is live or not. 415 optional bool is_render_frame_proxy_live = 5; 416 417 // The SiteInstanceGroupId of the SiteInstanceGroup associated with the 418 // RenderFrameProxyHost. 419 optional int32 site_instance_group_id = 6; 420 421 // Additional untyped debug information associated with this 422 // RenderFrameProxyHost, populated via TracedProto::AddDebugAnnotations API. 423 repeated DebugAnnotation debug_annotations = 99; 424} 425 426message AndroidView { 427 optional int32 id = 1; 428 optional int32 parent_id = 2; 429 optional bool is_shown = 3; 430 optional bool is_dirty = 4; 431 optional string class_name = 5; 432 optional string resource_name = 6; 433} 434 435message AndroidActivity { 436 optional string name = 1; 437 repeated AndroidView view = 2; 438} 439 440message AndroidViewDump { 441 repeated AndroidActivity activity = 1; 442} 443 444message ParkableStringCompressInBackground { 445 // The size of the string that is being compressed, in bytes. 446 optional int32 size_bytes = 1; 447} 448 449message ParkableStringUnpark { 450 // The size of the string that is being unparked, in bytes. 451 optional int32 size_bytes = 1; 452 453 // The elapsed time since the string was written to disk (in seconds), or -1 454 // if it hadn't yet been written to disk. 455 optional int32 time_since_last_disk_write_sec = 2; 456} 457 458message ChromeSamplingProfilerSampleCollected { 459 optional int32 frame_count = 1; 460 461 enum WriteStatus { 462 WRITE_STATUS_NONE = 0; 463 WRITE_STATUS_BUFFERING_SAMPLE = 1; 464 WRITE_STATUS_WRITING_BUFFERED = 2; 465 WRITE_STATUS_WRITING_TO_TRACE = 3; 466 } 467 optional WriteStatus write_status = 2; 468 469 optional int32 sampled_thread_id = 3; 470} 471 472// Reports the latency caused by each breakdown in the 473// SendBeginMainFrameToCommit stage of the PipelineReporter. 474message SendBeginMainFrameToCommitBreakdown { 475 // Handle input events breakdown 476 optional uint64 handle_input_events_us = 1; 477 478 // Animate breakdown 479 optional uint64 animate_us = 2; 480 481 // Style update breakdown 482 optional uint64 style_update_us = 3; 483 484 // Layout update breakdown 485 optional uint64 layout_update_us = 4; 486 487 // Accessibility update breakdown 488 optional uint64 accessibility_update_us = 12; 489 490 // Prepaint breakdown 491 optional uint64 prepaint_us = 5; 492 493 // Compositing inputs breakdown 494 optional uint64 compositing_inputs_us = 6; 495 496 // Compositing assignments breakdown 497 optional uint64 compositing_assignments_us = 7; 498 499 // Paint breakdown 500 optional uint64 paint_us = 8; 501 502 // Composite commit breakdown 503 optional uint64 composite_commit_us = 9; 504 505 // Update layers breakdown 506 optional uint64 update_layers_us = 10; 507 508 // Beginmainsenttostarted breakdown 509 optional uint64 begin_main_sent_to_started_us = 11; 510} 511 512message GlobalRenderFrameHostId { 513 optional int32 routing_id = 1; 514 optional int32 process_id = 2; 515} 516 517message BrowsingContextState { 518 // The ID of the BrowsingInstance that the BrowsingContextState belongs to. 519 optional int32 browsing_instance_id = 1; 520 521 // The ID of the CoopRelatedGroup that the BrowsingContextState belongs to. 522 optional int32 coop_related_group_id = 2 [deprecated = true]; 523 524 // The token of the CoopRelatedGroup that the BrowsingContextState belongs to. 525 optional string coop_related_group_token = 3; 526 527 // Additional untyped debug information associated with this 528 // FrameTreeNode, populated via TracedProto::AddDebugAnnotations API. 529 repeated DebugAnnotation debug_annotations = 99; 530} 531 532message RenderFrameHost { 533 optional RenderProcessHost process = 1; 534 optional GlobalRenderFrameHostId render_frame_host_id = 2; 535 536 // NOTE: this proto must be kept consistent with 537 // RenderFrameHostImpl::LifecycleStateImpl. 538 enum LifecycleState { 539 UNSPECIFIED = 0; 540 SPECULATIVE = 1; 541 PENDING_COMMIT = 2; 542 PRERENDERING = 3; 543 ACTIVE = 4; 544 IN_BACK_FORWARD_CACHE = 5; 545 RUNNING_UNLOAD_HANDLERS = 6; 546 READY_TO_BE_DELETED = 7; 547 } 548 549 optional LifecycleState lifecycle_state = 3; 550 optional string origin = 4; 551 optional string url = 5; 552 optional uint64 frame_tree_node_id = 6; 553 optional SiteInstance site_instance = 7; 554 optional RenderFrameHost parent = 8; 555 optional RenderFrameHost outer_document = 9; 556 optional RenderFrameHost embedder = 10; 557 optional BrowsingContextState browsing_context_state = 11; 558 optional FrameTreeNodeInfo.FrameType frame_type = 12; 559 560 // Additional untyped debug information associated with this 561 // RenderViewHost, populated via TracedProto::AddDebugAnnotations API. 562 repeated DebugAnnotation debug_annotations = 99; 563} 564 565message ChromeThreadPoolTask { 566 enum Priority { 567 PRIORITY_UNSPECIFIED = 0; 568 PRIORITY_BEST_EFFORT = 1; 569 PRIORITY_USER_VISIBLE = 2; 570 PRIORITY_USER_BLOCKING = 3; 571 } 572 573 enum ExecutionMode { 574 EXECTUION_MODE_UNSPECIFIED = 0; 575 EXECUTION_MODE_PARALLEL = 1; 576 EXECUTION_MODE_SEQUENCED = 2; 577 EXECUTION_MODE_SINGLE_THREAD = 3; 578 EXECUTION_MODE_JOB = 4; 579 } 580 581 enum ShutdownBehavior { 582 SHUTDOWN_BEHAVIOR_UNSPECIFIED = 0; 583 SHUTDOWN_BEHAVIOR_CONTINUE_ON_SHUTDOWN = 1; 584 SHUTDOWN_BEHAVIOR_SKIP_ON_SHUTDOWN = 2; 585 SHUTDOWN_BEHAVIOR_BLOCK_SHUTDOWN = 3; 586 } 587 588 optional Priority task_priority = 1; 589 optional ExecutionMode execution_mode = 2; 590 optional int64 sequence_token = 3; 591 optional ShutdownBehavior shutdown_behavior = 4; 592} 593 594// TODO(crbug.com/1258495): Add more information. 595message BackForwardCacheCanStoreDocumentResult { 596 enum BackForwardCacheNotRestoredReason { 597 NOT_MAIN_FRAME = 1; 598 // BackForwardCache is disabled due to low memory device, base::Feature or 599 // command line. Note that the more specific NotRestoredReasons 600 // BACK_FORWARD_CACHE_DISABLED_BY_LOW_MEMORY and 601 // BACK_FORWARD_CACHE_DISABLED_BY_COMMAND_LINE will also be set as other 602 // reasons along with this when appropriate. 603 BACK_FORWARD_CACHE_DISABLED = 2; 604 RELATED_ACTIVE_CONTENTS_EXIST = 3; 605 HTTP_STATUS_NOT_OK = 4; 606 SCHEME_NOT_HTTP_OR_HTTPS = 5; 607 LOADING = 6; 608 WAS_GRANTED_MEDIA_ACCESS = 7; 609 BLOCKLISTED_FEATURES = 8; 610 DISABLE_FOR_RENDER_FRAME_HOST_CALLED = 9; 611 DOMAIN_NOT_ALLOWED = 10; 612 HTTP_METHOD_NOT_GET = 11; 613 SUBFRAME_IS_NAVIGATING = 12; 614 TIMEOUT = 13; 615 CACHE_LIMIT = 14; 616 JAVASCRIPT_EXECUTION = 15; 617 RENDERER_PROCESS_KILLED = 16; 618 RENDERER_PROCESS_CRASHED = 17; 619 GRANTED_MEDIA_STREAM_ACCESS = 19; 620 SCHEDULER_TRACKED_FEATURE_USED = 20; 621 CONFLICTING_BROWSING_INSTANCE = 21; 622 CACHE_FLUSHED = 22; 623 SERVICE_WORKER_VERSION_ACTIVATION = 23; 624 SESSION_RESTORED = 24; 625 UNKNOWN = 25; 626 SERVICE_WORKER_POST_MESSAGE = 26; 627 ENTERED_BACK_FORWARD_CACHE_BEFORE_SERVICE_WORKER_HOST_ADDED = 27; 628 NOT_MOST_RECENT_NAVIGATION_ENTRY = 28; 629 SERVICE_WORKER_CLAIM = 29; 630 IGNORE_EVENT_AND_EVICT = 30; 631 HAVE_INNER_CONTENTS = 31; 632 TIMEOUT_PUTTING_IN_CACHE = 32; 633 // BackForwardCache is disabled due to low memory device. 634 BACK_FORWARD_CACHE_DISABLED_BY_LOW_MEMORY = 33; 635 // BackForwardCache is disabled due to command-line switch (may include 636 // cases where the embedder disabled it due to, e.g., enterprise policy). 637 BACK_FORWARD_CACHE_DISABLED_BY_COMMAND_LINE = 34; 638 NETWORK_REQUEST_REDIRECTED = 35; 639 NETWORK_REQUEST_TIMEOUT = 36; 640 NETWORK_EXCEEDS_BUFFER_LIMIT = 37; 641 NAVIGATION_CANCELLED_WHILE_RESTORING = 38; 642 BACK_FORWARD_CACHE_DISABLED_FOR_PRERENDER = 39; 643 USER_AGENT_OVERRIDE_DIFFERS = 40; 644 NETWORK_REQUEST_DATAPIPE_DRAINED_AS_BYTES_CONSUMER = 41; 645 FOREGROUND_CACHE_LIMIT = 42; 646 BROWSING_INSTANCE_NOT_SWAPPED = 43; 647 BACK_FORWARD_CACHE_DISABLED_FOR_DELEGATE = 44; 648 OPT_IN_UNLOAD_HEADER_NOT_PRESENT = 45; 649 UNLOAD_HANDLER_EXISTS_IN_MAIN_FRAME = 46; 650 UNLOAD_HANDLER_EXISTS_IN_SUBFRAME = 47; 651 SERVICE_WORKER_UNREGISTRATION = 48; 652 CACHE_CONTROL_NO_STORE = 49; 653 CACHE_CONTROL_NO_STORE_COOKIE_MODIFIED = 50; 654 CACHE_CONTROL_NO_STORE_HTTP_ONLY_COOKIE_MODIFIED = 51; 655 NO_RESPONSE_HEAD = 52; 656 ACTIVATION_NAVIGATION_DISALLOWED_FOR_BUG_1234857 = 53; 657 ERROR_DOCUMENT = 54; 658 FENCED_FRAMES_EMBEDDER = 55; 659 COOKIE_DISABLED = 56; 660 HTTP_AUTH_REQUIRED = 57; 661 COOKIE_FLUSHED = 58; 662 } 663 664 optional BackForwardCacheNotRestoredReason 665 back_forward_cache_not_restored_reason = 1; 666} 667 668message RendererMainThreadTaskExecution { 669 enum TaskType { 670 TASK_TYPE_UNKNOWN = 0; 671 TASK_TYPE_DOM_MANIPULATION = 1; 672 TASK_TYPE_USER_INTERACTION = 2; 673 TASK_TYPE_NETWORKING = 3; 674 TASK_TYPE_NETWORKING_CONTROL = 4; 675 TASK_TYPE_HISTORY_TRAVERSAL = 5; 676 TASK_TYPE_EMBED = 6; 677 TASK_TYPE_MEDIA_ELEMENT_EVENT = 7; 678 TASK_TYPE_CANVAS_BLOB_SERIALIZATION = 8; 679 TASK_TYPE_MICROTASK = 9; 680 TASK_TYPE_JAVASCRIPT_TIMER_DELAYED_HIGH_NESTING = 10; 681 TASK_TYPE_REMOTE_EVENT = 11; 682 TASK_TYPE_WEB_SOCKET = 12; 683 TASK_TYPE_POSTED_MESSAGE = 13; 684 TASK_TYPE_UNSHIPPED_PORT_MESSAGE = 14; 685 TASK_TYPE_FILE_READING = 15; 686 TASK_TYPE_DATABASE_ACCESS = 16; 687 TASK_TYPE_PRESENTATION = 17; 688 TASK_TYPE_SENSOR = 18; 689 TASK_TYPE_PERFORMANCE_TIMELINE = 19; 690 TASK_TYPE_WEB_GL = 20; 691 TASK_TYPE_IDLE_TASK = 21; 692 TASK_TYPE_MISC_PLATFORM_API = 22; 693 TASK_TYPE_INTERNAL_DEFAULT = 23; 694 TASK_TYPE_INTERNAL_LOADING = 24; 695 696 TASK_TYPE_INTERNAL_TEST = 26; 697 TASK_TYPE_INTERNAL_WEB_CRYPTO = 27; 698 699 TASK_TYPE_INTERNAL_MEDIA = 29; 700 TASK_TYPE_INTERNAL_MEDIA_REALTIME = 30; 701 702 TASK_TYPE_INTERNAL_USER_INTERACTION = 32; 703 TASK_TYPE_INTERNAL_INSPECTOR = 33; 704 705 TASK_TYPE_MAIN_THREAD_TASK_QUEUE_V8 = 37; 706 TASK_TYPE_MAIN_THREAD_TASK_QUEUE_COMPOSITOR = 38; 707 TASK_TYPE_MAIN_THREAD_TASK_QUEUE_DEFAULT = 39; 708 TASK_TYPE_MAIN_THREAD_TASK_QUEUE_INPUT = 40; 709 TASK_TYPE_MAIN_THREAD_TASK_QUEUE_IDLE = 41; 710 711 TASK_TYPE_MAIN_THREAD_TASK_QUEUE_CONTROL = 43; 712 TASK_TYPE_INTERNAL_INTERSECTION_OBSERVER = 44; 713 TASK_TYPE_COMPOSITOR_THREAD_TASK_QUEUE_DEFAULT = 45; 714 TASK_TYPE_WORKER_THREAD_TASK_QUEUE_DEFAULT = 46; 715 TASK_TYPE_WORKER_THREAD_TASK_QUEUE_V8 = 47; 716 TASK_TYPE_WORKER_THREAD_TASK_QUEUE_COMPOSITOR = 48; 717 TASK_TYPE_COMPOSITOR_THREAD_TASK_QUEUE_INPUT = 49; 718 719 // TODO(crbug.com/860545): Obsolete. Remove. 720 TASK_TYPE_NETWORKING_WITH_URL_LOADER_ANNOTATION = 50; 721 722 TASK_TYPE_WORKER_ANIMATION = 51; 723 724 TASK_TYPE_INTERNAL_TRANSLATION = 55; 725 TASK_TYPE_FONT_LOADING = 56; 726 TASK_TYPE_APPLICATION_LIFECYCLE = 57; 727 TASK_TYPE_BACKGROUND_FETCH = 58; 728 TASK_TYPE_PERMISSION = 59; 729 TASK_TYPE_SERVICE_WORKER_CLIENT_MESSAGE = 60; 730 TASK_TYPE_INTERNAL_CONTENT_CAPTURE = 61; 731 TASK_TYPE_MAIN_THREAD_TASK_QUEUE_MEMORY_PURGE = 62; 732 TASK_TYPE_INTERNAL_NAVIGATION_ASSOCIATED = 63; 733 TASK_TYPE_INTERNAL_NAVIGATION_ASSOCIATED_UNFREEZABLE = 64; 734 TASK_TYPE_INTERNAL_CONTINUE_SCRIPT_LOADING = 65; 735 TASK_TYPE_WEB_LOCKS = 66; 736 TASK_TYPE_WEB_SCHEDULING_POSTED_TASK = 67; 737 TASK_TYPE_INTERNAL_FRAME_LIFE_CYCLE_CONTROL = 68; 738 TASK_TYPE_MAIN_THREAD_TASK_QUEUE_NON_WAKING = 69; 739 TASK_TYPE_INTERNAL_FIND_IN_PAGE = 70; 740 TASK_TYPE_INTERNAL_HIGH_PRIORITY_LOCAL_FRAME = 71; 741 TASK_TYPE_JAVASCRIPT_TIMER_IMMEDIATE = 72; 742 TASK_TYPE_JAVASCRIPT_TIMER_DELAYED_LOW_NESTING = 73; 743 TASK_TYPE_MAIN_THREAD_TASK_QUEUE_IPC_TRACKING = 74; 744 TASK_TYPE_NETWORKING_UNFREEZABLE = 75; 745 TASK_TYPE_WAKE_LOCK = 76; 746 TASK_TYPE_INTERNAL_INPUT_BLOCKING = 77; 747 TASK_TYPE_WEB_GPU = 78; 748 TASK_TYPE_INTERNAL_POST_MESSAGE_FORWARDING = 79; 749 TASK_TYPE_INTERNAL_NAVIGATION_CANCELLATION = 80; 750 TASK_TYPE_LOW_PRIORITY_SCRIPT_EXECUTION = 81; 751 TASK_TYPE_STORAGE = 82; 752 TASK_TYPE_NETWORKING_UNFREEZABLE_IMAGE_LOADING = 83; 753 TASK_TYPE_MAIN_THREAD_TASK_QUEUE_V8_LOW_PRIORITY = 84; 754 } 755 756 enum FrameType { 757 FRAME_TYPE_UNSPECIFIED = 0; 758 FRAME_TYPE_MAIN_FRAME = 1; 759 FRAME_TYPE_SAME_ORIGIN_SUBFRAME = 2; 760 FRAME_TYPE_CROSS_ORIGIN_SUBFRAME = 3; 761 } 762 763 optional TaskType task_type = 1; 764 765 // FrameScheduler related data 766 optional bool frame_visible = 2; 767 optional bool page_visible = 3; 768 optional FrameType frame_type = 4; 769 optional bool is_ad_frame = 5; 770} 771 772message EventLatency { 773 enum EventType { 774 EVENT_TYPE_UNSPECIFIED = 0; 775 MOUSE_PRESSED = 1; 776 MOUSE_RELEASED = 2; 777 MOUSE_WHEEL = 3; 778 KEY_PRESSED = 4; 779 KEY_RELEASED = 5; 780 TOUCH_PRESSED = 6; 781 TOUCH_RELEASED = 7; 782 TOUCH_MOVED = 8; 783 GESTURE_SCROLL_BEGIN = 9; 784 GESTURE_SCROLL_UPDATE = 10; 785 GESTURE_SCROLL_END = 11; 786 GESTURE_DOUBLE_TAP = 12; 787 GESTURE_LONG_PRESS = 13; 788 GESTURE_LONG_TAP = 14; 789 GESTURE_SHOW_PRESS = 15; 790 GESTURE_TAP = 16; 791 GESTURE_TAP_CANCEL = 17; 792 GESTURE_TAP_DOWN = 18; 793 GESTURE_TAP_UNCONFIRMED = 19; 794 GESTURE_TWO_FINGER_TAP = 20; 795 FIRST_GESTURE_SCROLL_UPDATE = 21; 796 MOUSE_DRAGGED = 22; 797 GESTURE_PINCH_BEGIN = 23; 798 GESTURE_PINCH_END = 24; 799 GESTURE_PINCH_UPDATE = 25; 800 INERTIAL_GESTURE_SCROLL_UPDATE = 26; 801 MOUSE_MOVED_EVENT = 27; 802 } 803 804 optional EventType event_type = 1; 805 optional bool has_high_latency = 2; 806 repeated string high_latency_stage = 3; 807 // This is same as LatencyInfo's trace_id, using the name event_latency_id to 808 // move away from the generic trace_id name used at other places as well. 809 optional int64 event_latency_id = 4; 810 // This is set only for scroll updates and is based on the 811 // Event.ScrollJank.DelayedFramesPercentage.FixedWindow metric. 812 optional bool is_janky_scrolled_frame = 5; 813} 814 815message ProcessSingleton { 816 enum RemoteProcessInteractionResult { 817 INTERACTION_RESULT_UNSPECIFIED = 0; 818 TERMINATE_FAILED = 1; 819 REMOTE_PROCESS_NOT_FOUND = 2; 820 TERMINATE_WAIT_TIMEOUT = 3; 821 RUNNING_PROCESS_NOTIFY_ERROR = 4; 822 TERMINATE_NOT_ENOUGH_PERMISSIONS = 5; 823 REMOTE_PROCESS_SHUTTING_DOWN = 6; 824 PROFILE_UNLOCKED = 7; 825 PROFILE_UNLOCKED_BEFORE_KILL = 8; 826 SAME_BROWSER_INSTANCE = 9; 827 SAME_BROWSER_INSTANCE_BEFORE_KILL = 10; 828 FAILED_TO_EXTRACT_PID = 11; 829 INVALID_LOCK_FILE = 12; 830 ORPHANED_LOCK_FILE = 13; 831 USER_REFUSED_TERMINATION = 14; 832 TERMINATE_SUCCEEDED = 100; 833 } 834 835 enum RemoteHungProcessTerminateReason { 836 TERMINATE_REASON_UNSPECIFIED = 0; 837 USER_ACCEPTED_TERMINATION = 1; 838 NO_VISIBLE_WINDOW_FOUND = 2; 839 NOTIFY_ATTEMPTS_EXCEEDED = 3; 840 SOCKET_WRITE_FAILED = 4; 841 SOCKET_READ_FAILED = 5; 842 } 843 844 optional RemoteProcessInteractionResult remote_process_interaction_result = 1; 845 optional RemoteHungProcessTerminateReason remote_process_terminate_reason = 2; 846} 847 848message NavigationHandle { 849 optional int64 navigation_id = 1; 850 optional bool has_committed = 2; 851 optional bool is_error_page = 3; 852 optional FrameTreeNodeInfo frame_tree_node = 4; 853 optional RenderFrameHost render_frame_host = 5; 854 855 // Additional untyped debug information associated with this 856 // NavigationHandle/Request, populated via TracedProto::AddDebugAnnotations 857 // API. 858 repeated DebugAnnotation debug_annotations = 99; 859} 860 861enum DeviceThermalState { 862 DEVICE_THERMAL_STATE_UNKNOWN = 0; 863 DEVICE_THERMAL_STATE_NOMINAL = 1; 864 DEVICE_THERMAL_STATE_FAIR = 2; 865 DEVICE_THERMAL_STATE_SERIOUS = 3; 866 DEVICE_THERMAL_STATE_CRITICAL = 4; 867} 868 869// Used to log which Android IPC was called and how long it took. 870message AndroidIPC { 871 optional string name = 1; 872 optional int64 dur_ms = 2; 873} 874 875message SequenceManagerTask { 876 enum Priority { 877 UNKNOWN = 0; 878 CONTROL_PRIORITY = 1; 879 HIGHEST_PRIORITY = 2; 880 VERY_HIGH_PRIORITY = 3; 881 HIGH_PRIORITY = 4; 882 NORMAL_PRIORITY = 5; 883 LOW_PRIORITY = 6; 884 BEST_EFFORT_PRIORITY = 7; 885 886 // Renderer-specific priorities. 887 HIGH_PRIORITY_CONTINUATION = 8; 888 NORMAL_PRIORITY_CONTINUATION = 9; 889 LOW_PRIORITY_CONTINUATION = 10; 890 EXTREMELY_HIGH_PRIORITY = 11; 891 } 892 893 enum QueueName { 894 UNKNOWN_TQ = 0; 895 DEFAULT_TQ = 1; 896 TASK_ENVIRONMENT_DEFAULT_TQ = 2; 897 TEST2_TQ = 3; 898 TEST_TQ = 4; 899 CONTROL_TQ = 5; 900 901 SUBTHREAD_CONTROL_TQ = 6; 902 SUBTHREAD_DEFAULT_TQ = 7; 903 SUBTHREAD_INPUT_TQ = 8; 904 905 UI_BEST_EFFORT_TQ = 9; 906 UI_BOOTSTRAP_TQ = 10; 907 UI_CONTROL_TQ = 11; 908 UI_DEFAULT_TQ = 12; 909 UI_NAVIGATION_NETWORK_RESPONSE_TQ = 13; 910 UI_RUN_ALL_PENDING_TQ = 14; 911 UI_SERVICE_WORKER_STORAGE_CONTROL_RESPONSE_TQ = 15; 912 UI_THREAD_TQ = 16; 913 UI_USER_BLOCKING_TQ = 17; 914 UI_USER_INPUT_TQ = 18; 915 UI_USER_VISIBLE_TQ = 19; 916 917 IO_BEST_EFFORT_TQ = 20; 918 IO_BOOTSTRAP_TQ = 21; 919 IO_CONTROL_TQ = 22; 920 IO_DEFAULT_TQ = 23; 921 IO_NAVIGATION_NETWORK_RESPONSE_TQ = 24; 922 IO_RUN_ALL_PENDING_TQ = 25; 923 IO_SERVICE_WORKER_STORAGE_CONTROL_RESPONSE_TQ = 26; 924 IO_THREAD_TQ = 27; 925 IO_USER_BLOCKING_TQ = 28; 926 IO_USER_INPUT_TQ = 29; 927 IO_USER_VISIBLE_TQ = 30; 928 929 COMPOSITOR_TQ = 31; 930 DETACHED_TQ = 32; 931 FRAME_DEFERRABLE_TQ = 33; 932 FRAME_LOADING_CONTROL_TQ = 34; 933 FRAME_LOADING_TQ = 35; 934 FRAME_PAUSABLE_TQ = 36; 935 FRAME_THROTTLEABLE_TQ = 37; 936 FRAME_UNPAUSABLE_TQ = 38; 937 IDLE_TQ = 39; 938 INPUT_TQ = 40; 939 IPC_TRACKING_FOR_CACHED_PAGES_TQ = 41; 940 NON_WAKING_TQ = 42; 941 OTHER_TQ = 43; 942 V8_TQ = 44; 943 WEB_SCHEDULING_TQ = 45; 944 945 WORKER_IDLE_TQ = 46; 946 WORKER_PAUSABLE_TQ = 47; 947 WORKER_THREAD_INTERNAL_TQ = 48; 948 WORKER_THROTTLEABLE_TQ = 49; 949 WORKER_UNPAUSABLE_TQ = 50; 950 WORKER_WEB_SCHEDULING_TQ = 51; 951 952 UI_USER_BLOCKING_DEFERRABLE_TQ = 52; 953 IO_USER_BLOCKING_DEFERRABLE_TQ = 53; 954 955 UI_BEFORE_UNLOAD_BROWSER_RESPONSE_TQ = 54; 956 IO_BEFORE_UNLOAD_BROWSER_RESPONSE_TQ = 55; 957 958 V8_LOW_PRIORITY_TQ = 56; 959 } 960 961 optional Priority priority = 1; 962 optional QueueName queue_name = 2; 963} 964 965message AndroidToolbar { 966 enum BlockCaptureReason { 967 BLOCKED_UNKNOWN = 0; 968 BLOCKED_TOOLBAR_OR_RESULT_NULL = 1; 969 BLOCKED_VIEW_NOT_DIRTY = 2; 970 BLOCKED_SNAPSHOT_SAME = 3; 971 BLOCKED_URL_BAR_HAS_FOCUS = 4; 972 BLOCKED_URL_BAR_FOCUS_IN_PROGRESS = 5; 973 BLOCKED_OPTIONAL_BUTTON_ANIMATION_IN_PROGRESS = 6; 974 BLOCKED_STATUS_ICON_ANIMATION_IN_PROGRESS = 7; 975 BLOCKED_SCROLL_ABLATION = 8; 976 BLOCKED_BROWSER_CONTROLS_LOCKED = 9; 977 BLOCKED_TAB_SWITCHER_MODE = 10; 978 BLOCKED_COMPOSITOR_IN_MOTION = 11; 979 BLOCKED_NTP_Y_TRANSLATION = 12; 980 BLOCKED_FULLSCREEN = 13; 981 } 982 enum AllowCaptureReason { 983 ALLOWED_UNKNOWN = 0; 984 ALLOWED_FORCE_CAPTURE = 1; 985 ALLOWED_SNAPSHOT_DIFFERENCE = 2; 986 } 987 enum SnapshotDifference { 988 DIFF_NONE = 0; 989 DIFF_NULL = 1; 990 DIFF_TINT = 2; 991 DIFF_TAB_COUNT = 3; 992 DIFF_OPTIONAL_BUTTON = 4; 993 DIFF_VISUAL_STATE = 5; 994 DIFF_SECURITY_ICON = 6; 995 DIFF_SHOWING_UPDATE_BADGE = 7; 996 DIFF_PAINT_PREVIEW = 8; 997 DIFF_PROGRESS = 9; 998 DIFF_LOCATION_BAR_WIDTH = 10; 999 DIFF_URL_TEXT = 11; 1000 DIFF_HOME_BUTTON = 12; 1001 DIFF_TITLE_TEXT = 13; 1002 DIFF_CCT_ANIMATION = 14; 1003 DIFF_BOOKMARK_BUTTON = 15; 1004 DIFF_BACK_BUTTON = 16; 1005 DIFF_FORWARD_BUTTON = 17; 1006 DIFF_RELOAD_BUTTON = 18; 1007 } 1008 1009 optional BlockCaptureReason block_capture_reason = 1; 1010 optional AllowCaptureReason allow_capture_reason = 2; 1011 optional SnapshotDifference snapshot_difference = 3; 1012} 1013 1014message ActiveProcesses { 1015 repeated int32 pid = 1; 1016} 1017 1018message UkmPageLoadTimingUpdate { 1019 // This can be used to uniquely identify a navigation from the point of view 1020 // of UKM. 1021 optional int64 ukm_source_id = 1; 1022 1023 // The URL of a page can change throughout its lifetime. This is the current 1024 // url when this timing update was dispatched. 1025 optional string latest_url = 2; 1026 1027 // Latest fully aggregated value of Cumulative Layout Shift. 1028 optional float latest_cumulative_layout_shift = 3; 1029 1030 // Latest fully aggregated value of Largest Contentful Paint. 1031 optional double latest_largest_contentful_paint_ms = 4; 1032 1033 optional double first_contentful_paint_ms = 5; 1034} 1035 1036// A serialisation of v8StackFrame class. 1037message V8StackFrame { 1038 // Code location (path to the script and line/column number) 1039 message ScriptLocation { 1040 optional string source_url = 1; 1041 optional int64 line_number = 2; 1042 optional int64 column_number = 3; 1043 } 1044 1045 // The name of the function that was called 1046 optional string function_name = 1; 1047 1048 // If the function was defined in a script, contains the location within the 1049 // script. 1050 optional ScriptLocation script_location = 2; 1051} 1052 1053// Serializes the blink::ExecutionContext object. 1054message BlinkExecutionContext { 1055 // Definition of different context types. 1056 enum ContextType { 1057 UNKNOWN_CONTEXT = 0; 1058 WINDOW = 1; 1059 WORKLET = 2; 1060 DEDICATED_WORKER = 3; 1061 SHARED_WORKER = 4; 1062 SERVICE_WORKER = 5; 1063 } 1064 1065 // Definition of world type. 1066 enum WorldType { 1067 WORLD_UNKNOWN = 0; 1068 WORLD_MAIN = 1; 1069 WORLD_ISOLATED = 2; 1070 WORLD_INSPECTOR_ISOLATED = 3; 1071 WORLD_REG_EXP = 4; 1072 WORLD_FOR_V8_CONTEXT_SNAPSHOT_NON_MAIN = 5; 1073 WORLD_WORKER = 6; 1074 WORLD_SHADOW_REALM = 7; 1075 } 1076 1077 optional ContextType type = 1; 1078 // Contains url of frame or worker. 1079 optional string url = 2; 1080 // The origin of the execution context. 1081 optional string origin = 3; 1082 // The world type of the execution context. 1083 optional WorldType world_type = 4; 1084} 1085 1086// Serializes the blink::SourceLocation object. 1087message BlinkSourceLocation { 1088 optional string function_name = 1; 1089 optional int32 script_id = 2; 1090 optional string url = 3; 1091 optional int32 line_number = 4; 1092 optional int32 column_number = 5; 1093 optional string stack_trace = 6; 1094 repeated V8StackFrame stack_frames = 7; 1095} 1096 1097// Contains the meta information for high entropy events (like api calls) 1098// that are to be traced for debugging in the context of identifiability study. 1099message BlinkHighEntropyAPI { 1100 // Serialization of a parameter passed to a javascript function. 1101 // Contains the stringified type of the object and some string representation 1102 // of its value. 1103 message JSFunctionArgument { 1104 // Definition of different types of function parameters. 1105 enum ArgumentType { 1106 UNKNOWN_TYPE = 0; 1107 NULL_TYPE = 1; 1108 UNDEFINED = 2; 1109 BIGINT = 3; 1110 BOOLEAN = 4; 1111 FUNCTION = 5; 1112 NUMBER = 6; 1113 STRING = 7; 1114 SYMBOL = 8; 1115 OBJECT = 9; 1116 } 1117 optional ArgumentType type = 1; 1118 optional string value = 2; 1119 } 1120 1121 // Describes a Javascript API call. 1122 message CalledJsApi { 1123 // Contains class and function name of api called 1124 // similar to "Navigator.languages.get". 1125 optional string identifier = 1; 1126 repeated JSFunctionArgument func_arguments = 2; 1127 1128 // Deprecated in favour of outer source_location. Not filled anymore in 1129 // newer versions of chrome. 1130 optional BlinkSourceLocation source_location = 3 [deprecated = true]; 1131 } 1132 optional BlinkExecutionContext execution_context = 1; 1133 optional CalledJsApi called_api = 2; 1134 optional BlinkSourceLocation source_location = 3; 1135 1136 // Describes lookup of a font. 1137 message FontLookup { 1138 enum FontLookupType { 1139 FONT_LOOKUP_UNKNOWN_TYPE = 0; 1140 FONT_LOOKUP_UNIQUE_OR_FAMILY_NAME = 1; 1141 FONT_LOOKUP_UNIQUE_NAME_ONLY = 2; 1142 } 1143 optional FontLookupType type = 1; 1144 optional string name = 2; 1145 optional uint64 weight = 3; 1146 optional uint64 width = 4; 1147 optional uint64 slope = 5; 1148 } 1149 optional FontLookup font_lookup = 4; 1150} 1151 1152// Contains information about a tab switch measurement. 1153message TabSwitchMeasurement { 1154 // Possible outcomes of a tab switch. Maps to 1155 // blink::ContentToVisibleTimeReporter::TabSwitchResult. 1156 enum Result { 1157 RESULT_UNSPECIFIED = 0; 1158 // A frame was successfully presented after a tab switch. 1159 RESULT_SUCCESS = 1; 1160 // Tab was hidden before a frame was presented after a tab switch. 1161 RESULT_INCOMPLETE = 2; 1162 // TabWasShown called twice for a frame without TabWasHidden between. Treat 1163 // the first TabWasShown as an incomplete tab switch. 1164 RESULT_MISSED_TAB_HIDE = 3; 1165 } 1166 1167 // State of the target tab. Corresponds to the suffixes of the 1168 // Browser.TabSwitchResult2.* histograms. 1169 enum TabState { 1170 STATE_UNSPECIFIED = 0; 1171 // The tab has frames in the frame cache, which can be composited in the 1172 // browser process. 1173 STATE_WITH_SAVED_FRAMES = 1; 1174 // The tab has no frames in the frame cache so must be rendered and 1175 // composited in a renderer process. 1176 STATE_LOADED_NO_SAVED_FRAMES = 2; 1177 // The tab has no frames in the frame cache and is not fully loaded, so it 1178 // must be reloaded before it can be rendered and composited in a renderer 1179 // process. 1180 STATE_NOT_LOADED_NO_SAVED_FRAMES = 3; 1181 } 1182 1183 optional Result result = 1; 1184 optional TabState tab_state = 2; 1185} 1186 1187// Data about scroll deltas and offsets. 1188// All values are in physical screen pixels. 1189message ScrollDeltas { 1190 // The trace_id of the current input. 1191 optional int64 trace_id = 1; 1192 // The original delta for current input. That is, this is the delta that 1193 // the Browser receives from Android, but already scaled to the device's 1194 // screen. 1195 optional float original_delta_x = 2; 1196 optional float original_delta_y = 3; 1197 // The trace_id of the input that the current input is coalesced with. 1198 // If input is not coalesced, this field is null. 1199 optional int64 coalesced_to_trace_id = 4; 1200 // The delta which arrived to compositor. 1201 // This is the sum of all the inputs coalesced together 1202 // with the resampler applied to them. 1203 // This delta is used to calculate a |visual_offset|. 1204 optional float provided_to_compositor_delta_x = 5; 1205 optional float provided_to_compositor_delta_y = 6; 1206 // The offset which compositor set. 1207 optional int64 visual_offset_x = 7; 1208 optional int64 visual_offset_y = 8; 1209 1210 // Data which GPU returns. 1211 // Number of inputs which were shown together in one GPU frame. 1212 optional int32 event_count_in_gpu_frame = 9; 1213 // The trace_ids of inputs which were shown together in one GPU frame. 1214 repeated int64 trace_ids_in_gpu_frame = 10; 1215 // The sum of original deltas of inputs which were shown together in one GPU 1216 // frame. 1217 optional float original_delta_in_gpu_frame_y = 11; 1218 // The sum of predicted deltas of inputs which were shown together in one GPU 1219 // frame. 1220 optional float predicted_delta_in_gpu_frame_y = 12; 1221 // The array of original deltas of inputs which were shown together in one GPU 1222 // frame. 1223 repeated float segregated_original_deltas_in_gpu_frame_y = 13; 1224 // The array of predicted deltas of inputs which were shown together in one 1225 // GPU frame. 1226 repeated float segregated_predicted_deltas_in_gpu_frame_y = 14; 1227} 1228 1229// Debug information for system layer of audio rendering on Windows. 1230message WinRenderAudioFromSource { 1231 // Buffer size used by the platform. 1232 optional uint32 iaudioclient_buffer_size_frames = 1; 1233 // Number of available frames in the platform buffer. 1234 optional uint32 iaudioclient_buffer_unfilled_frames = 2; 1235 // Number of frames requested from the audio stream client. 1236 optional uint32 packet_size_frames = 3; 1237 // Total number of frames requested from the client and written to the 1238 // platform buffer during the stream lifetime. 1239 optional uint64 num_written_frames = 4; 1240 // Total number of frames played by the platform during the stream lifetime. 1241 optional uint64 num_played_out_frames = 5; 1242 // Device frequency reported by the platform; used to convert the stream 1243 // position to frames. 1244 optional uint64 iaudioclock_device_frequency = 6; 1245 // Stream position reported by the platform. 1246 optional uint64 iaudioclock_stream_position = 7; 1247 // Performance counter position reported by the platform. 1248 optional uint64 iaudioclock_qpc_position = 8; 1249 // Stream position increase since the last call, converted to milliseconds. 1250 optional int64 iaudioclock_stream_position_increase_ms = 9; 1251 // Performance counter position since the last call, converted to 1252 // milliseconds. 1253 optional int64 iaudioclock_qpc_position_increase_ms = 10; 1254 // Estimated playout delay, milliseconds. 1255 optional int64 playout_delay_ms = 11; 1256}; 1257 1258// Debug information for system layer of audio rendering on Mac. 1259message MacAUHALStream { 1260 // The number of frames that the stream requests from the audio source. 1261 optional int32 input_buffer_size = 1; 1262 // The number of frames that the OS requests for playout. 1263 optional uint32 output_buffer_size = 2; 1264 // Sample rate of the stream. 1265 optional int32 sample_rate = 3; 1266 // The time that the audio requested by the OS is expected to play out. 1267 optional int64 os_request_playout_timeticks_us = 4; 1268 // Total number of frames requested from the audio source. 1269 optional int32 source_request_frames = 5; 1270 // The delay between the request for audio from the source and when the audio 1271 // is expected to be played out. 1272 optional int64 source_request_playout_delay_us = 6; 1273 // The time when the audio that is requested from the source is expected to 1274 // play out. 1275 optional int64 source_request_playout_timeticks_us = 7; 1276 // The time when audio audio is requested from the source. 1277 optional int64 source_request_current_timeticks_us = 8; 1278 // The audio playout latency that comes from hardware, in milliseconds. 1279 optional int64 hardware_latency_us = 9; 1280 // Whether the kAudioTimeStampHostTimeValid is set on the output 1281 // AudioTimeStamp. 1282 optional bool audiotimestamp_host_time_valid = 10; 1283 // The playout time based on the machine time from AudioTimeStamp. 1284 optional int64 audiotimestamp_mach_timeticks_us = 11; 1285 // The time that the audio requested by the os is expected to be consumed by 1286 // the hardware. Measured in frames since the start of playout. 1287 optional double audiotimestamp_sample_time_frames = 12; 1288 // The time that the previous audio requested by the os was expected to be 1289 // consumed by the hardware. Measured in frames since the start of playout. 1290 optional double audiotimestamp_last_sample_time_frames = 13; 1291 // The duration of audio that was estimated to be lost in the case of a 1292 // glitch. 1293 optional int64 lost_audio_duration_us = 14; 1294}; 1295 1296// Debug information for system layer of audio rendering using ALSA on Linux. 1297message LinuxAlsaOutput { 1298 // The delay between the request for audio from the source and when the audio 1299 // is expected to be played out. 1300 optional int64 source_request_playout_delay_us = 1; 1301 // The number of bytes that are already present in the buffer on a call to 1302 // BufferPacket. 1303 optional int32 forward_bytes = 2; 1304 // Sample rate of the stream. 1305 optional int32 sample_rate = 3; 1306 // Delay obtained by the OS in frames. 1307 optional int32 getcurrentdelay_pcm_delay_frames = 4; 1308 // The number of frames in ALSA's buffer. 1309 optional int32 getcurrentdelay_alsa_buffer_frames = 5; 1310 // The number of frames that can be written to in ALSA's buffer. 1311 optional int32 getcurrentdelay_available_frames = 6; 1312 // The final delay that GetCurrentDelay arrives on, in frames. 1313 optional int32 getcurrentdelay_final_delay_frames = 7; 1314}; 1315 1316// Debug information for system layer of audio rendering using Pulse on Linux. 1317message LinuxPulseOutput { 1318 // The delay between the request for audio from the source and when the audio 1319 // is expected to be played out. 1320 optional int64 source_request_playout_delay_us = 1; 1321 // Sample rate of the stream. 1322 optional int32 sample_rate = 2; 1323 // The number of frames that the stream requests from the audio source. 1324 optional int32 input_buffer_size_frames = 3; 1325 // The number of bytes that the OS requests. 1326 optional uint32 stream_request_bytes = 4; 1327 // The number of bytes in a single frame. 1328 optional uint32 frame_size_bytes = 5; 1329}; 1330 1331// Debug information for system layer of audio rendering on ChromeOS. 1332message CrasUnified { 1333 // The total duration of silence due to missing samples during the stream. 1334 optional int64 underrun_duration_us = 1; 1335 // Previous underrun duration, used for calculating the length of silence 1336 // since the last callback. 1337 optional int64 last_underrun_duration_us = 2; 1338 // Difference in total underrun duration since the last callback. Logged only 1339 // when positive, which is when a glitch occurs. 1340 optional int64 underrun_glitch_duration_us = 3; 1341 // OS playout latency reported by cras. 1342 optional int64 latency_us = 4; 1343 // The number of frames that the stream requests from the audio source. 1344 optional int32 requested_frames = 5; 1345 // The number of frames that the source provided. 1346 optional uint32 filled_frames = 6; 1347 // Sample rate of the stream. 1348 optional int32 sample_rate = 7; 1349}; 1350 1351message ChromeUnguessableToken { 1352 optional uint64 low_token = 1; 1353 optional uint64 high_token = 2; 1354} 1355 1356message FrameSinkId { 1357 optional uint32 frame_sink_client_id = 1; 1358 optional uint32 frame_sink_id = 2; 1359} 1360 1361message LocalSurfaceId { 1362 optional uint32 parent_sequence_number = 1; 1363 optional uint32 child_sequence_number = 2; 1364 optional ChromeUnguessableToken unguessable_token = 3; 1365} 1366 1367message ChromeGraphicsPipeline { 1368 enum StepName { 1369 STEP_UNKNOWN = 0; 1370 STEP_DID_NOT_PRODUCE_FRAME = 1; 1371 STEP_GENERATE_COMPOSITOR_FRAME = 2; 1372 STEP_GENERATE_RENDER_PASS = 3; 1373 STEP_ISSUE_BEGIN_FRAME = 4; 1374 STEP_RECEIVE_COMPOSITOR_FRAME = 5; 1375 STEP_RECEIVE_BEGIN_FRAME = 6; 1376 STEP_RECEIVE_BEGIN_FRAME_DISCARD = 7; 1377 STEP_SEND_BEGIN_MAIN_FRAME = 8; 1378 STEP_SUBMIT_COMPOSITOR_FRAME = 9; 1379 STEP_SURFACE_AGGREGATION = 10; 1380 STEP_SEND_BUFFER_SWAP = 11; 1381 STEP_BUFFER_SWAP_POST_SUBMIT = 12; 1382 STEP_FINISH_BUFFER_SWAP = 13; 1383 STEP_SWAP_BUFFERS_ACK = 14; 1384 } 1385 enum FrameSkippedReason { 1386 SKIPPED_REASON_UNKNOWN = 0; 1387 SKIPPED_REASON_RECOVER_LATENCY = 1; 1388 SKIPPED_REASON_NO_DAMAGE = 2; 1389 SKIPPED_REASON_WAITING_ON_MAIN = 3; 1390 SKIPPED_REASON_DRAW_THROTTLED = 4; 1391 } 1392 optional StepName step = 1; 1393 optional FrameSinkId frame_sink_id = 2; 1394 optional int64 display_trace_id = 3; 1395 optional LocalSurfaceId local_surface_id = 4; 1396 optional int64 frame_sequence = 5; 1397 optional FrameSkippedReason frame_skipped_reason = 6; 1398}; 1399 1400message LibunwindstackUnwinder { 1401 // The enum is a copy of ErrorCode enum inside third_party/libunwindstack, 1402 // ideally this should be in sync with that. 1403 enum ErrorCode { 1404 ERROR_NONE = 0; // No error. 1405 ERROR_MEMORY_INVALID = 1; // Memory read failed. 1406 ERROR_UNWIND_INFO = 2; // Unable to use unwind information to unwind. 1407 ERROR_UNSUPPORTED = 3; // Encountered unsupported feature. 1408 ERROR_INVALID_MAP = 4; // Unwind in an invalid map. 1409 ERROR_MAX_FRAMES_EXCEEDED = 5; // The number of frames exceed the total 1410 // allowed. 1411 ERROR_REPEATED_FRAME = 6; // The last frame has the same pc/sp as the next. 1412 ERROR_INVALID_ELF = 7; // Unwind in an invalid elf. 1413 ERROR_THREAD_DOES_NOT_EXIST = 8; // Attempt to unwind a local thread that 1414 // does not exist. 1415 ERROR_THREAD_TIMEOUT = 9; // Timeout trying to unwind a local thread. 1416 ERROR_SYSTEM_CALL = 10; // System call failed while unwinding. 1417 ERROR_BAD_ARCH = 11; // Arch invalid (none, or mismatched). 1418 ERROR_MAPS_PARSE = 12; // Failed to parse maps data. 1419 ERROR_INVALID_PARAMETER_LIBUNWINDSTACK = 1420 13; // Invalid parameter passed to function. 1421 ERROR_PTRACE_CALL = 14; // Ptrace call failed while unwinding. 1422 } 1423 optional ErrorCode error_code = 1; 1424 optional int32 num_frames = 2; 1425}; 1426 1427message ScrollPredictorMetrics { 1428 message EventFrameValue { 1429 optional int64 event_trace_id = 1; 1430 // The fractional pixels (can be fractional after the predictor adjusts in 1431 // resampling of input) that the page was scrolled by this frame. 1432 optional float delta_value_pixels = 2; 1433 }; 1434 // Data from the previous, current, and next frame used to determine the 1435 // values below as according to the metric doc: 1436 // http://doc/1Y0u0Tq5eUZff75nYUzQVw6JxmbZAW9m64pJidmnGWsY. 1437 optional EventFrameValue prev_event_frame_value = 1; 1438 optional EventFrameValue cur_event_frame_value = 2; 1439 optional EventFrameValue next_event_frame_value = 3; 1440 // This is the amount of delta processed in this frame that was above the 1441 // janky threshold (as defined by 1442 // http://doc/1Y0u0Tq5eUZff75nYUzQVw6JxmbZAW9m64pJidmnGWsY) 1443 optional float janky_value_pixels = 4; 1444 // True if we are also missing frames (so multiple frames are being presented 1445 // at once). 1446 optional bool has_missed_vsyncs = 5; 1447 // True if we're moving less than the slow scroll threshold as defined by the 1448 // doc above. 1449 optional bool is_slow_scroll = 6; 1450}; 1451 1452// 1453// Critical User Interaction metrics 1454// 1455 1456message PageLoad { 1457 optional int64 navigation_id = 1; 1458 optional string url = 2; 1459} 1460 1461message StartUp { 1462 // This enum must be kept up to date with LaunchCauseMetrics.LaunchCause. 1463 enum LaunchCauseType { 1464 OTHER = 0; 1465 CUSTOM_TAB = 1; 1466 TWA = 2; 1467 RECENTS = 3; 1468 RECENTS_OR_BACK = 4; 1469 FOREGROUND_WHEN_LOCKED = 5; 1470 MAIN_LAUNCHER_ICON = 6; 1471 MAIN_LAUNCHER_ICON_SHORTCUT = 7; 1472 HOME_SCREEN_WIDGET = 8; 1473 OPEN_IN_BROWSER_FROM_MENU = 9; 1474 EXTERNAL_SEARCH_ACTION_INTENT = 10; 1475 NOTIFICATION = 11; 1476 EXTERNAL_VIEW_INTENT = 12; 1477 OTHER_CHROME = 13; 1478 WEBAPK_CHROME_DISTRIBUTOR = 14; 1479 WEBAPK_OTHER_DISTRIBUTOR = 15; 1480 HOME_SCREEN_SHORTCUT = 16; 1481 SHARE_INTENT = 17; 1482 NFC = 18; 1483 } 1484 1485 optional int64 activity_id = 1; 1486 // deprecated field 2. 1487 optional LaunchCauseType launch_cause = 3; 1488} 1489 1490message WebContentInteraction { 1491 enum Type { 1492 INTERACTION_UNSPECIFIED = 0; 1493 INTERACTION_KEYBOARD = 1; 1494 INTERACTION_CLICK_TAP = 2; 1495 INTERACTION_DRAG = 3; 1496 } 1497 1498 optional Type type = 1; 1499 optional int64 total_duration_ms = 2; 1500} 1501 1502message ChromeTrackEvent { 1503 // Extension range for Chrome: 1000-1999 1504 // Next ID: 1059 1505 extend TrackEvent { 1506 optional ChromeAppState chrome_app_state = 1000; 1507 1508 optional ChromeMemoryPressureNotification 1509 chrome_memory_pressure_notification = 1001; 1510 1511 optional ChromeTaskAnnotator chrome_task_annotator = 1002; 1512 1513 optional ChromeBrowserContext chrome_browser_context = 1003; 1514 1515 optional ChromeProfileDestroyer chrome_profile_destroyer = 1004; 1516 1517 optional ChromeTaskPostedToDisabledQueue 1518 chrome_task_posted_to_disabled_queue = 1005; 1519 1520 optional ChromeRasterTask chrome_raster_task = 1006; 1521 1522 optional ChromeMessagePumpForUI chrome_message_pump_for_ui = 1007; 1523 1524 optional RenderFrameImplDeletion render_frame_impl_deletion = 1008; 1525 1526 optional ShouldSwapBrowsingInstancesResult 1527 should_swap_browsing_instances_result = 1009; 1528 1529 optional FrameTreeNodeInfo frame_tree_node_info = 1010; 1530 1531 optional ChromeHashedPerformanceMark chrome_hashed_performance_mark = 1011; 1532 1533 optional RenderProcessHost render_process_host = 1012; 1534 optional RenderProcessHostCleanup render_process_host_cleanup = 1013; 1535 optional RenderProcessHostListener render_process_host_listener_changed = 1536 1014; 1537 optional ChildProcessLauncherPriority child_process_launcher_priority = 1538 1015; 1539 1540 optional ResourceBundle resource_bundle = 1016; 1541 1542 optional ChromeWebAppBadNavigate chrome_web_app_bad_navigate = 1017; 1543 1544 optional ChromeExtensionId chrome_extension_id = 1018; 1545 1546 optional SiteInstance site_instance = 1019; 1547 1548 optional RenderViewHost render_view_host = 1020; 1549 1550 optional RenderFrameProxyHost render_frame_proxy_host = 1021; 1551 1552 optional AndroidViewDump android_view_dump = 1022; 1553 1554 optional ParkableStringCompressInBackground 1555 parkable_string_compress_in_background = 1023; 1556 optional ParkableStringUnpark parkable_string_unpark = 1024; 1557 1558 optional ChromeSamplingProfilerSampleCollected 1559 chrome_sampling_profiler_sample_completed = 1025; 1560 optional SendBeginMainFrameToCommitBreakdown 1561 send_begin_mainframe_to_commit_breakdown = 1026; 1562 1563 optional GlobalRenderFrameHostId global_render_frame_host_id = 1027; 1564 1565 optional RenderFrameHost render_frame_host = 1028; 1566 1567 optional ChromeThreadPoolTask thread_pool_task = 1029; 1568 1569 optional BackForwardCacheCanStoreDocumentResult 1570 back_forward_cache_can_store_document_result = 1030; 1571 1572 optional RendererMainThreadTaskExecution 1573 renderer_main_thread_task_execution = 1031; 1574 1575 optional EventLatency event_latency = 1032; 1576 1577 optional ProcessSingleton process_singleton = 1033; 1578 1579 optional SiteInstanceGroup site_instance_group = 1034; 1580 1581 optional BrowsingContextState browsing_context_state = 1035; 1582 1583 optional DeviceThermalState device_thermal_state = 1036; 1584 1585 optional NavigationHandle navigation = 1037; 1586 1587 optional AndroidIPC android_ipc = 1038; 1588 1589 optional ChromeSqlDiagnostics sql_diagnostics = 1039; 1590 1591 optional SequenceManagerTask sequence_manager_task = 1040; 1592 1593 optional AndroidToolbar android_toolbar = 1041; 1594 1595 optional ActiveProcesses active_processes = 1042; 1596 1597 optional BlinkTaskScope blink_task_scope = 1043; 1598 1599 optional UkmPageLoadTimingUpdate ukm_page_load_timing_update = 1044; 1600 1601 optional BlinkHighEntropyAPI high_entropy_api = 1045; 1602 1603 optional TabSwitchMeasurement tab_switch_measurement = 1046; 1604 1605 optional ScrollDeltas scroll_deltas = 1047; 1606 1607 optional WinRenderAudioFromSource win_render_audio_from_source = 1048; 1608 1609 optional MacAUHALStream mac_auhal_stream = 1049; 1610 1611 optional LinuxAlsaOutput linux_alsa_output = 1050; 1612 1613 optional LinuxPulseOutput linux_pulse_output = 1051; 1614 1615 optional ChromeGraphicsPipeline chrome_graphics_pipeline = 1052; 1616 1617 optional CrasUnified chromeos_cras_unified = 1053; 1618 1619 optional LibunwindstackUnwinder libunwindstack_unwinder = 1054; 1620 1621 optional ScrollPredictorMetrics scroll_predictor_metrics = 1055; 1622 1623 optional PageLoad page_load = 1056; 1624 1625 optional StartUp startup = 1057; 1626 1627 optional WebContentInteraction web_content_interaction = 1058; 1628 } 1629} 1630