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 optional uint32 ipc_hash = 1; 50 // The delay in microseconds that was specified, if any, when this task was 51 // posted. This is only valid for delayed tasks. 52 optional uint64 task_delay_us = 2; 53} 54 55message ChromeBrowserContext { 56 reserved 1; 57 optional string id = 2; 58} 59 60message ChromeProfileDestroyer { 61 optional fixed64 profile_ptr = 1; 62 optional bool is_off_the_record = 2; 63 optional string otr_profile_id = 3; 64 optional uint32 host_count_at_creation = 4; 65 optional uint32 host_count_at_destruction = 5; 66 optional fixed64 render_process_host_ptr = 6; 67} 68 69message ChromeTaskPostedToDisabledQueue { 70 optional string task_queue_name = 1; 71 optional uint64 time_since_disabled_ms = 2; 72 optional uint32 ipc_hash = 3; 73 optional uint64 source_location_iid = 4; 74} 75 76message ChromeRasterTask { 77 optional int64 source_frame_number = 1; 78} 79 80message ChromeMessagePumpForUI { 81 // The MSG defined in winuser.h. 82 optional uint32 message_id = 1; 83} 84 85// An enumeration specifying the reason of the RenderFrame deletion. 86// This is copied from content/common/frame.mojom. 87enum FrameDeleteIntention { 88 // The frame being deleted isn't a (speculative) main frame. 89 FRAME_DELETE_INTENTION_NOT_MAIN_FRAME = 0; 90 91 // The frame being deleted is a speculative main frame, and it is being 92 // deleted as part of the shutdown for that WebContents. The entire RenderView 93 // etc will be destroyed by a separate IPC sent later. 94 FRAME_DELETE_INTENTION_SPECULATIVE_MAIN_FRAME_FOR_SHUTDOWN = 1; 95 96 // The frame being deleted is a speculative main frame, and it is being 97 // deleted because the speculative navigation was cancelled. This is not part 98 // of shutdown. 99 FRAME_DELETE_INTENTION_SPECULATIVE_MAIN_FRAME_FOR_NAVIGATION_CANCELLED = 2; 100} 101 102message RenderFrameImplDeletion { 103 // The intent for the deletion. 104 optional FrameDeleteIntention intent = 1; 105 106 // Whether the frame that's about to be deleted has a pending navigation 107 // commit. 108 optional bool has_pending_commit = 2; 109 110 // Whether the frame that's about to be deleted has a pending cross-document 111 // navigation commit. 112 optional bool has_pending_cross_document_commit = 3; 113 114 // The FrameTreeNode ID of the frame that's about to be deleted. 115 optional uint64 frame_tree_node_id = 4; 116} 117 118// Matches content::ShouldSwapBrowsingInstance. 119enum ShouldSwapBrowsingInstance { 120 // Was used for all "no BrowsingInstance swap" scenarios, now broken down in 121 // separate reasons. 122 SHOULD_SWAP_BROWSING_INSTANCE_NO = 0; 123 124 // Forced BrowsingInstance swap. 125 SHOULD_SWAP_BROWSING_INSTANCE_YES_FORCE_SWAP = 1; 126 127 // Proactive BrowsingInstance swap for cross-site navigation. 128 SHOULD_SWAP_BROWSING_INSTANCE_YES_CROSS_SITE_PROACTIVE_SWAP = 2; 129 130 // Proactive BrowsingInstance swap for same-site navigation. 131 SHOULD_SWAP_BROWSING_INSTANCE_YES_SAME_SITE_PROACTIVE_SWAP = 3; 132 133 SHOULD_SWAP_BROWSING_INSTANCE_NO_PROACTIVE_SWAP_DISABLED = 4; 134 SHOULD_SWAP_BROWSING_INSTANCE_NO_NOT_MAIN_FRAME = 5; 135 SHOULD_SWAP_BROWSING_INSTANCE_NO_HAS_RELATED_ACTIVE_CONTENTS = 6; 136 SHOULD_SWAP_BROWSING_INSTANCE_NO_DOES_NOT_HAVE_SITE = 7; 137 SHOULD_SWAP_BROWSING_INSTANCE_NO_SOURCE_URL_SCHEME_NOT_HTTP_OR_HTTPS = 8; 138 SHOULD_SWAP_BROWSING_INSTANCE_NO_DESTINATION_URL_SCHEME_NOT_HTTP_OR_HTTPS = 9; 139 SHOULD_SWAP_BROWSING_INSTANCE_NO_SAME_SITE_NAVIGATION = 10; 140 SHOULD_SWAP_BROWSING_INSTANCE_NO_RELOADING_ERROR_PAGE = 11; 141 SHOULD_SWAP_BROWSING_INSTANCE_NO_ALREADY_HAS_MATCHING_BROWSING_INSTANCE = 12; 142 SHOULD_SWAP_BROWSING_INSTANCE_NO_RENDERER_DEBUG_URL = 13; 143 SHOULD_SWAP_BROWSING_INSTANCE_NO_NOT_NEEDED_FOR_BACK_FORWARD_CACHE = 14; 144 SHOULD_SWAP_BROWSING_INSTANCE_NO_SAME_DOCUMENT_NAVIGATION = 15; 145 SHOULD_SWAP_BROWSING_INSTANCE_NO_SAME_URL_NAVIGATION = 16; 146 SHOULD_SWAP_BROWSING_INSTANCE_NO_WILL_REPLACE_ENTRY = 17; 147 SHOULD_SWAP_BROWSING_INSTANCE_NO_RELOAD = 18; 148 SHOULD_SWAP_BROWSING_INSTANCE_NO_GUEST = 19; 149 SHOULD_SWAP_BROWSING_INSTANCE_NO_HAS_NOT_COMMITTED_ANY_NAVIGATION = 20; 150 // The following reason was deprecated from https://crrev.com/c/3858766 151 SHOULD_SWAP_BROWSING_INSTANCE_NO_UNLOAD_HANDLER_EXISTS_ON_SAME_SITE_NAVIGATION = 152 21; 153 SHOULD_SWAP_BROWSING_INSTANCE_NO_NOT_PRIMARY_MAIN_FRAME = 22; 154} 155 156message ShouldSwapBrowsingInstancesResult { 157 // The FrameTreeNode ID. 158 optional uint64 frame_tree_node_id = 1; 159 160 // Whether a navigation will do a BrowsingInstance swap or not. 161 optional ShouldSwapBrowsingInstance result = 2; 162} 163 164message FrameTreeNodeInfo { 165 // The FrameTreeNode ID. 166 optional uint64 frame_tree_node_id = 1; 167 168 // Whether the frame is a main frame or not. 169 optional bool is_main_frame = 2; 170 171 // Whether there's a speculative RenderFrameHost or not. 172 optional bool has_speculative_render_frame_host = 3; 173 174 optional RenderFrameHost current_frame_host = 4; 175 optional RenderFrameHost speculative_frame_host = 5; 176 177 // NOTE: this proto must be kept consistent with 178 // content::FrameType. 179 enum FrameType { 180 UNSPECIFIED_FRAME_TYPE = 0; 181 SUBFRAME = 1; 182 PRIMARY_MAIN_FRAME = 2; 183 PRERENDER_MAIN_FRAME = 3; 184 FENCED_FRAME_ROOT = 4; 185 } 186 187 optional FrameType frame_type = 6; 188 189 // Additional untyped debug information associated with this 190 // FrameTreeNode, populated via TracedProto::AddDebugAnnotations API. 191 repeated DebugAnnotation debug_annotations = 99; 192} 193 194message ChromeHashedPerformanceMark { 195 optional uint32 site_hash = 1; 196 optional string site = 2; 197 optional uint32 mark_hash = 3; 198 optional string mark = 4; 199 200 // A randomly generated unique identifier for a given ExecutionContext 201 // (document, worker, etc). Used to be able to correlate events in a process 202 // where there are multiple execution contexts from the same site. 203 optional uint32 execution_context_id = 5; 204 205 // Indicates the sequence number of this particular mark being emitted from 206 // a particular site in the scope of a single ExecutionContext. Typical 207 // sites emit batches of events that are correlated in time (a thing started, 208 // a thing reached a given milestone, a thing completed). When these events 209 // are intermixed it is useful to know which ones are semantically related. 210 // The value is generated by the content itself, but shifted by a fixed 211 // random offset at runtime so as to limit usage as a side channel. 212 optional uint32 sequence_number = 6; 213} 214 215// Sent on SQL errors where we need string diagnostics. Corresponds to 216// `Database::DatabaseDiagnostics` in the Chrome SQL code. Does not contain any 217// PII, because the bound values are not included in the SQL statement. 218message ChromeSqlDiagnostics { 219 optional int32 reported_sqlite_error_code = 1; 220 optional int32 error_code = 2; 221 optional int32 last_errno = 3; 222 optional string sql_statement = 4; 223 optional int32 version = 5; 224 225 // Most rows in 'sql_schema' have a non-NULL 'sql' column. Those rows' 'sql' 226 // contents are logged here, one element per row. 227 repeated string schema_sql_rows = 6; 228 229 // Some rows of 'sql_schema' have a NULL 'sql' column. They are typically 230 // autogenerated indices, like "sqlite_autoindex_downloads_slices_1". These 231 // are also logged here by their 'name' column, one element per row. 232 repeated string schema_other_row_names = 7; 233 234 optional bool has_valid_header = 8; 235 optional bool has_valid_schema = 9; 236 optional string error_message = 10; 237} 238 239message ChromeWebAppBadNavigate { 240 optional bool is_kiosk = 1; 241 optional bool has_hosted_app_controller = 2; 242 optional string app_name = 3; 243 optional uint32 system_app_type = 4; 244 optional bool web_app_provider_registry_ready = 5; 245 optional bool system_web_app_manager_synchronized = 6; 246} 247 248// These IDs are generated at compile time and differ for each chrome version. 249// IDs are stable on for a given chrome version but are changing when resources 250// are added or removed to chrome. 251message ResourceBundle { 252 optional uint32 resource_id = 1; 253} 254 255// Information about RenderProcessHost. 256message RenderProcessHost { 257 // Unique Id to identify the RenderProcessHost. This is the browser-side, 258 // persistent id for this RenderProcessHost that stays constant even across OS 259 // layer processes managed by this RenderProcessHost. 260 optional uint32 id = 1; 261 // See ProcessLock::ToString(). 262 optional string process_lock = 2; 263 // The PID of the child process. 264 optional int32 child_process_id = 3; 265 266 // Details about the associated browser context. 267 optional ChromeBrowserContext browser_context = 4; 268 269 // Additional untyped debug information associated with this 270 // RenderProcessHost, populated via TracedProto::AddDebugAnnotations API. 271 repeated DebugAnnotation debug_annotations = 99; 272} 273 274message RenderProcessHostListener { 275 // Routing ID of the listener to the RenderProcessHost, recorded when a new ID 276 // is added or when an ID is removed. 277 optional uint32 routing_id = 1; 278} 279 280message RenderProcessHostCleanup { 281 // Number of IPC listeners registered to the host when Cleanup() was called. 282 optional uint32 listener_count = 1; 283 // Number of "keep alive" references active in the RenderProcessHost, recorded 284 // when Cleanup() was called. 285 optional uint32 keep_alive_ref_count = 2; 286 // Number of "shutdown delay" references active in the RenderProcessHost, 287 // recorded when Cleanup() was called. 288 optional uint32 shutdown_delay_ref_count = 3; 289 // Number of "worker delay" references active in the RenderProcessHost, 290 // recorded when Cleanup() was called. 291 optional uint32 worker_ref_count = 4; 292 // Number of "pending reuse" references active in the RenderProcessHost, 293 // recorded when Cleanup() was called. 294 optional uint32 pending_reuse_ref_count = 5; 295} 296 297message ChildProcessLauncherPriority { 298 // True if the new priority set to background. 299 optional bool is_backgrounded = 1; 300 // True if the renderer proecss has pending views. 301 optional bool has_pending_views = 2; 302 303 // Importance of the child process in Android. 304 enum Importance { 305 IMPORTANCE_NORMAL = 1; 306 IMPORTANCE_MODERATE = 2; 307 IMPORTANCE_IMPORTANT = 3; 308 } 309 optional Importance importance = 3; 310} 311 312// Information that identifies a Chrome Extension. 313message ChromeExtensionId { 314 // Unique id that identifies a Chrome Extension. 315 optional string extension_id = 1; 316 317 // Pseudonymized `extension_id` field (see also 318 // content::PseudonymizationUtil::PseudonymizeString method). 319 optional uint32 pseudonymized_extension_id = 2; 320} 321 322message SiteInstance { 323 // The ID of the SiteInstance. 324 optional int32 site_instance_id = 1; 325 326 // The ID of the BrowsingInstance that the SiteInstance belongs to. 327 optional int32 browsing_instance_id = 2; 328 329 // Whether the SiteInstance is the "default SiteInstance" or not. Non-isolated 330 // sites on Android are not assigned to their own specific per-site process, 331 // and shares SiteInstances with each other (the default SiteInstance). 332 optional bool is_default = 3; 333 334 // Whether this SiteInstance has a running process associated with it. 335 optional bool has_process = 4; 336 337 // Returns the total active WebContents count for this SiteInstance and all 338 // related SiteInstances in the same BrowsingInstance. 339 optional int32 related_active_contents_count = 5; 340 341 // The number of active RenderFrameHosts this SiteInstance's SiteInstanceGroup 342 // has. 343 optional int32 active_rfh_count = 6; 344 345 // The SiteInstanceGroup this SiteInstance belongs to. 346 optional SiteInstanceGroup site_instance_group = 7; 347 348 // Additional untyped debug information associated with this 349 // SiteInstance, populated via TracedProto::AddDebugAnnotations API. 350 repeated DebugAnnotation debug_annotations = 99; 351} 352 353message SiteInstanceGroup { 354 // The ID of the SiteInstanceGroup. 355 optional int32 site_instance_group_id = 1; 356 357 // The number of active frames in this SiteInstanceGroup. 358 optional int32 active_frame_count = 2; 359 360 // The process ID of the SiteInstanceGroup. 361 optional RenderProcessHost process = 3; 362 363 // Additional untyped debug information associated with this 364 // SiteInstanceGroup, populated via TracedProto::AddDebugAnnotations API. 365 repeated DebugAnnotation debug_annotations = 99; 366} 367 368// Next ID: 7 369message RenderViewHost { 370 // The RenderViewHostMapId for the RenderViewHost. 371 optional int32 rvh_map_id = 1; 372 373 // The routing ID for the RenderViewHost. 374 optional int32 routing_id = 2; 375 376 // The process ID of the RenderViewHost. Deprecated in favour of |process|. 377 optional int32 process_id = 3; 378 379 // Process this RenderViewHost is associated with. 380 optional RenderProcessHost process = 6; 381 382 // Whether the RenderViewHost is in back/forward cache or not. 383 optional bool is_in_back_forward_cache = 4; 384 385 // Whether the renderer-side RenderView is created. 386 optional bool renderer_view_created = 5; 387 388 // Additional untyped debug information associated with this 389 // RenderViewHost, populated via TracedProto::AddDebugAnnotations API. 390 repeated DebugAnnotation debug_annotations = 99; 391} 392 393message RenderFrameProxyHost { 394 // The routing ID for the RenderFrameProxyHost. 395 optional int32 routing_id = 1; 396 397 // The process ID of the RenderFrameProxyHost. 398 optional int32 process_id = 2; 399 400 // The RenderViewHostMapId of the RenderViewHost associated with the 401 // RenderFrameProxyHost. 402 optional int32 rvh_map_id = 3; 403 404 // The SiteInstanceId of the SiteInstance associated with the 405 // RenderFrameProxyHost. 406 optional int32 site_instance_id = 4; 407 408 // Whether the renderer-side RenderFrameProxy is live or not. 409 optional bool is_render_frame_proxy_live = 5; 410 411 // The SiteInstanceGroupId of the SiteInstanceGroup associated with the 412 // RenderFrameProxyHost. 413 optional int32 site_instance_group_id = 6; 414 415 // Additional untyped debug information associated with this 416 // RenderFrameProxyHost, populated via TracedProto::AddDebugAnnotations API. 417 repeated DebugAnnotation debug_annotations = 99; 418} 419 420message AndroidView { 421 optional int32 id = 1; 422 optional int32 parent_id = 2; 423 optional bool is_shown = 3; 424 optional bool is_dirty = 4; 425 optional string class_name = 5; 426 optional string resource_name = 6; 427} 428 429message AndroidActivity { 430 optional string name = 1; 431 repeated AndroidView view = 2; 432} 433 434message AndroidViewDump { 435 repeated AndroidActivity activity = 1; 436} 437 438message ParkableStringCompressInBackground { 439 // The size of the string that is being compressed, in bytes. 440 optional int32 size_bytes = 1; 441} 442 443message ParkableStringUnpark { 444 // The size of the string that is being unparked, in bytes. 445 optional int32 size_bytes = 1; 446 447 // The elapsed time since the string was written to disk (in seconds), or -1 448 // if it hadn't yet been written to disk. 449 optional int32 time_since_last_disk_write_sec = 2; 450} 451 452message ChromeSamplingProfilerSampleCollected { 453 optional int32 frame_count = 1; 454 455 enum WriteStatus { 456 WRITE_STATUS_NONE = 0; 457 WRITE_STATUS_BUFFERING_SAMPLE = 1; 458 WRITE_STATUS_WRITING_BUFFERED = 2; 459 WRITE_STATUS_WRITING_TO_TRACE = 3; 460 } 461 optional WriteStatus write_status = 2; 462 463 optional int32 sampled_thread_id = 3; 464} 465 466// Reports the latency caused by each breakdown in the 467// SendBeginMainFrameToCommit stage of the PipelineReporter. 468message SendBeginMainFrameToCommitBreakdown { 469 // Handle input events breakdown 470 optional uint64 handle_input_events_us = 1; 471 472 // Animate breakdown 473 optional uint64 animate_us = 2; 474 475 // Style update breakdown 476 optional uint64 style_update_us = 3; 477 478 // Layout update breakdown 479 optional uint64 layout_update_us = 4; 480 481 // Accessibility update breakdown 482 optional uint64 accessibility_update_us = 12; 483 484 // Prepaint breakdown 485 optional uint64 prepaint_us = 5; 486 487 // Compositing inputs breakdown 488 optional uint64 compositing_inputs_us = 6; 489 490 // Compositing assignments breakdown 491 optional uint64 compositing_assignments_us = 7; 492 493 // Paint breakdown 494 optional uint64 paint_us = 8; 495 496 // Composite commit breakdown 497 optional uint64 composite_commit_us = 9; 498 499 // Update layers breakdown 500 optional uint64 update_layers_us = 10; 501 502 // Beginmainsenttostarted breakdown 503 optional uint64 begin_main_sent_to_started_us = 11; 504} 505 506message GlobalRenderFrameHostId { 507 optional int32 routing_id = 1; 508 optional int32 process_id = 2; 509} 510 511message BrowsingContextState { 512 // The ID of the BrowsingInstance that the BrowsingContextState belongs to. 513 optional int32 browsing_instance_id = 1; 514 515 // Additional untyped debug information associated with this 516 // FrameTreeNode, populated via TracedProto::AddDebugAnnotations API. 517 repeated DebugAnnotation debug_annotations = 99; 518} 519 520message RenderFrameHost { 521 optional RenderProcessHost process = 1; 522 optional GlobalRenderFrameHostId render_frame_host_id = 2; 523 524 // NOTE: this proto must be kept consistent with 525 // RenderFrameHostImpl::LifecycleStateImpl. 526 enum LifecycleState { 527 UNSPECIFIED = 0; 528 SPECULATIVE = 1; 529 PENDING_COMMIT = 2; 530 PRERENDERING = 3; 531 ACTIVE = 4; 532 IN_BACK_FORWARD_CACHE = 5; 533 RUNNING_UNLOAD_HANDLERS = 6; 534 READY_TO_BE_DELETED = 7; 535 } 536 537 optional LifecycleState lifecycle_state = 3; 538 optional string origin = 4; 539 optional string url = 5; 540 optional uint64 frame_tree_node_id = 6; 541 optional SiteInstance site_instance = 7; 542 optional RenderFrameHost parent = 8; 543 optional RenderFrameHost outer_document = 9; 544 optional RenderFrameHost embedder = 10; 545 optional BrowsingContextState browsing_context_state = 11; 546 optional FrameTreeNodeInfo.FrameType frame_type = 12; 547 548 // Additional untyped debug information associated with this 549 // RenderViewHost, populated via TracedProto::AddDebugAnnotations API. 550 repeated DebugAnnotation debug_annotations = 99; 551} 552 553message ChromeThreadPoolTask { 554 enum Priority { 555 PRIORITY_UNSPECIFIED = 0; 556 PRIORITY_BEST_EFFORT = 1; 557 PRIORITY_USER_VISIBLE = 2; 558 PRIORITY_USER_BLOCKING = 3; 559 } 560 561 enum ExecutionMode { 562 EXECTUION_MODE_UNSPECIFIED = 0; 563 EXECUTION_MODE_PARALLEL = 1; 564 EXECUTION_MODE_SEQUENCED = 2; 565 EXECUTION_MODE_SINGLE_THREAD = 3; 566 EXECUTION_MODE_JOB = 4; 567 } 568 569 enum ShutdownBehavior { 570 SHUTDOWN_BEHAVIOR_UNSPECIFIED = 0; 571 SHUTDOWN_BEHAVIOR_CONTINUE_ON_SHUTDOWN = 1; 572 SHUTDOWN_BEHAVIOR_SKIP_ON_SHUTDOWN = 2; 573 SHUTDOWN_BEHAVIOR_BLOCK_SHUTDOWN = 3; 574 } 575 576 optional Priority task_priority = 1; 577 optional ExecutionMode execution_mode = 2; 578 optional int64 sequence_token = 3; 579 optional ShutdownBehavior shutdown_behavior = 4; 580} 581 582// TODO(crbug.com/1258495): Add more information. 583message BackForwardCacheCanStoreDocumentResult { 584 enum BackForwardCacheNotRestoredReason { 585 NOT_MAIN_FRAME = 1; 586 // BackForwardCache is disabled due to low memory device, base::Feature or 587 // command line. Note that the more specific NotRestoredReasons 588 // BACK_FORWARD_CACHE_DISABLED_BY_LOW_MEMORY and 589 // BACK_FORWARD_CACHE_DISABLED_BY_COMMAND_LINE will also be set as other 590 // reasons along with this when appropriate. 591 BACK_FORWARD_CACHE_DISABLED = 2; 592 RELATED_ACTIVE_CONTENTS_EXIST = 3; 593 HTTP_STATUS_NOT_OK = 4; 594 SCHEME_NOT_HTTP_OR_HTTPS = 5; 595 LOADING = 6; 596 WAS_GRANTED_MEDIA_ACCESS = 7; 597 BLOCKLISTED_FEATURES = 8; 598 DISABLE_FOR_RENDER_FRAME_HOST_CALLED = 9; 599 DOMAIN_NOT_ALLOWED = 10; 600 HTTP_METHOD_NOT_GET = 11; 601 SUBFRAME_IS_NAVIGATING = 12; 602 TIMEOUT = 13; 603 CACHE_LIMIT = 14; 604 JAVASCRIPT_EXECUTION = 15; 605 RENDERER_PROCESS_KILLED = 16; 606 RENDERER_PROCESS_CRASHED = 17; 607 GRANTED_MEDIA_STREAM_ACCESS = 19; 608 SCHEDULER_TRACKED_FEATURE_USED = 20; 609 CONFLICTING_BROWSING_INSTANCE = 21; 610 CACHE_FLUSHED = 22; 611 SERVICE_WORKER_VERSION_ACTIVATION = 23; 612 SESSION_RESTORED = 24; 613 UNKNOWN = 25; 614 SERVICE_WORKER_POST_MESSAGE = 26; 615 ENTERED_BACK_FORWARD_CACHE_BEFORE_SERVICE_WORKER_HOST_ADDED = 27; 616 NOT_MOST_RECENT_NAVIGATION_ENTRY = 28; 617 SERVICE_WORKER_CLAIM = 29; 618 IGNORE_EVENT_AND_EVICT = 30; 619 HAVE_INNER_CONTENTS = 31; 620 TIMEOUT_PUTTING_IN_CACHE = 32; 621 // BackForwardCache is disabled due to low memory device. 622 BACK_FORWARD_CACHE_DISABLED_BY_LOW_MEMORY = 33; 623 // BackForwardCache is disabled due to command-line switch (may include 624 // cases where the embedder disabled it due to, e.g., enterprise policy). 625 BACK_FORWARD_CACHE_DISABLED_BY_COMMAND_LINE = 34; 626 NETWORK_REQUEST_REDIRECTED = 35; 627 NETWORK_REQUEST_TIMEOUT = 36; 628 NETWORK_EXCEEDS_BUFFER_LIMIT = 37; 629 NAVIGATION_CANCELLED_WHILE_RESTORING = 38; 630 BACK_FORWARD_CACHE_DISABLED_FOR_PRERENDER = 39; 631 USER_AGENT_OVERRIDE_DIFFERS = 40; 632 NETWORK_REQUEST_DATAPIPE_DRAINED_AS_BYTES_CONSUMER = 41; 633 FOREGROUND_CACHE_LIMIT = 42; 634 BROWSING_INSTANCE_NOT_SWAPPED = 43; 635 BACK_FORWARD_CACHE_DISABLED_FOR_DELEGATE = 44; 636 OPT_IN_UNLOAD_HEADER_NOT_PRESENT = 45; 637 UNLOAD_HANDLER_EXISTS_IN_MAIN_FRAME = 46; 638 UNLOAD_HANDLER_EXISTS_IN_SUBFRAME = 47; 639 SERVICE_WORKER_UNREGISTRATION = 48; 640 CACHE_CONTROL_NO_STORE = 49; 641 CACHE_CONTROL_NO_STORE_COOKIE_MODIFIED = 50; 642 CACHE_CONTROL_NO_STORE_HTTP_ONLY_COOKIE_MODIFIED = 51; 643 NO_RESPONSE_HEAD = 52; 644 ACTIVATION_NAVIGATION_DISALLOWED_FOR_BUG_1234857 = 53; 645 ERROR_DOCUMENT = 54; 646 FENCED_FRAMES_EMBEDDER = 55; 647 } 648 649 optional BackForwardCacheNotRestoredReason 650 back_forward_cache_not_restored_reason = 1; 651} 652 653message RendererMainThreadTaskExecution { 654 enum TaskType { 655 TASK_TYPE_UNKNOWN = 0; 656 TASK_TYPE_DOM_MANIPULATION = 1; 657 TASK_TYPE_USER_INTERACTION = 2; 658 TASK_TYPE_NETWORKING = 3; 659 TASK_TYPE_NETWORKING_CONTROL = 4; 660 TASK_TYPE_HISTORY_TRAVERSAL = 5; 661 TASK_TYPE_EMBED = 6; 662 TASK_TYPE_MEDIA_ELEMENT_EVENT = 7; 663 TASK_TYPE_CANVAS_BLOB_SERIALIZATION = 8; 664 TASK_TYPE_MICROTASK = 9; 665 TASK_TYPE_JAVASCRIPT_TIMER_DELAYED_HIGH_NESTING = 10; 666 TASK_TYPE_REMOTE_EVENT = 11; 667 TASK_TYPE_WEB_SOCKET = 12; 668 TASK_TYPE_POSTED_MESSAGE = 13; 669 TASK_TYPE_UNSHIPPED_PORT_MESSAGE = 14; 670 TASK_TYPE_FILE_READING = 15; 671 TASK_TYPE_DATABASE_ACCESS = 16; 672 TASK_TYPE_PRESENTATION = 17; 673 TASK_TYPE_SENSOR = 18; 674 TASK_TYPE_PERFORMANCE_TIMELINE = 19; 675 TASK_TYPE_WEB_GL = 20; 676 TASK_TYPE_IDLE_TASK = 21; 677 TASK_TYPE_MISC_PLATFORM_API = 22; 678 TASK_TYPE_INTERNAL_DEFAULT = 23; 679 TASK_TYPE_INTERNAL_LOADING = 24; 680 681 TASK_TYPE_INTERNAL_TEST = 26; 682 TASK_TYPE_INTERNAL_WEB_CRYPTO = 27; 683 684 TASK_TYPE_INTERNAL_MEDIA = 29; 685 TASK_TYPE_INTERNAL_MEDIA_REALTIME = 30; 686 687 TASK_TYPE_INTERNAL_USER_INTERACTION = 32; 688 TASK_TYPE_INTERNAL_INSPECTOR = 33; 689 690 TASK_TYPE_MAIN_THREAD_TASK_QUEUE_V8 = 37; 691 TASK_TYPE_MAIN_THREAD_TASK_QUEUE_COMPOSITOR = 38; 692 TASK_TYPE_MAIN_THREAD_TASK_QUEUE_DEFAULT = 39; 693 TASK_TYPE_MAIN_THREAD_TASK_QUEUE_INPUT = 40; 694 TASK_TYPE_MAIN_THREAD_TASK_QUEUE_IDLE = 41; 695 696 TASK_TYPE_MAIN_THREAD_TASK_QUEUE_CONTROL = 43; 697 TASK_TYPE_INTERNAL_INTERSECTION_OBSERVER = 44; 698 TASK_TYPE_COMPOSITOR_THREAD_TASK_QUEUE_DEFAULT = 45; 699 TASK_TYPE_WORKER_THREAD_TASK_QUEUE_DEFAULT = 46; 700 TASK_TYPE_WORKER_THREAD_TASK_QUEUE_V8 = 47; 701 TASK_TYPE_WORKER_THREAD_TASK_QUEUE_COMPOSITOR = 48; 702 TASK_TYPE_COMPOSITOR_THREAD_TASK_QUEUE_INPUT = 49; 703 704 // TODO(crbug.com/860545): Obsolete. Remove. 705 TASK_TYPE_NETWORKING_WITH_URL_LOADER_ANNOTATION = 50; 706 707 TASK_TYPE_WORKER_ANIMATION = 51; 708 709 TASK_TYPE_INTERNAL_TRANSLATION = 55; 710 TASK_TYPE_FONT_LOADING = 56; 711 TASK_TYPE_APPLICATION_LIFECYCLE = 57; 712 TASK_TYPE_BACKGROUND_FETCH = 58; 713 TASK_TYPE_PERMISSION = 59; 714 TASK_TYPE_SERVICE_WORKER_CLIENT_MESSAGE = 60; 715 TASK_TYPE_INTERNAL_CONTENT_CAPTURE = 61; 716 TASK_TYPE_MAIN_THREAD_TASK_QUEUE_MEMORY_PURGE = 62; 717 TASK_TYPE_INTERNAL_NAVIGATION_ASSOCIATED = 63; 718 TASK_TYPE_INTERNAL_NAVIGATION_ASSOCIATED_UNFREEZABLE = 64; 719 TASK_TYPE_INTERNAL_CONTINUE_SCRIPT_LOADING = 65; 720 TASK_TYPE_WEB_LOCKS = 66; 721 TASK_TYPE_WEB_SCHEDULING_POSTED_TASK = 67; 722 TASK_TYPE_INTERNAL_FRAME_LIFE_CYCLE_CONTROL = 68; 723 TASK_TYPE_MAIN_THREAD_TASK_QUEUE_NON_WAKING = 69; 724 TASK_TYPE_INTERNAL_FIND_IN_PAGE = 70; 725 TASK_TYPE_INTERNAL_HIGH_PRIORITY_LOCAL_FRAME = 71; 726 TASK_TYPE_JAVASCRIPT_TIMER_IMMEDIATE = 72; 727 TASK_TYPE_JAVASCRIPT_TIMER_DELAYED_LOW_NESTING = 73; 728 TASK_TYPE_MAIN_THREAD_TASK_QUEUE_IPC_TRACKING = 74; 729 TASK_TYPE_NETWORKING_UNFREEZABLE = 75; 730 TASK_TYPE_WAKE_LOCK = 76; 731 TASK_TYPE_INTERNAL_INPUT_BLOCKING = 77; 732 TASK_TYPE_WEB_GPU = 78; 733 TASK_TYPE_INTERNAL_POST_MESSAGE_FORWARDING = 79; 734 TASK_TYPE_INTERNAL_NAVIGATION_CANCELLATION = 80; 735 TASK_TYPE_LOW_PRIORITY_SCRIPT_EXECUTION = 81; 736 TASK_TYPE_STORAGE = 82; 737 } 738 739 enum FrameType { 740 FRAME_TYPE_UNSPECIFIED = 0; 741 FRAME_TYPE_MAIN_FRAME = 1; 742 FRAME_TYPE_SAME_ORIGIN_SUBFRAME = 2; 743 FRAME_TYPE_CROSS_ORIGIN_SUBFRAME = 3; 744 } 745 746 optional TaskType task_type = 1; 747 748 // FrameScheduler related data 749 optional bool frame_visible = 2; 750 optional bool page_visible = 3; 751 optional FrameType frame_type = 4; 752 optional bool is_ad_frame = 5; 753} 754 755message EventLatency { 756 enum EventType { 757 EVENT_TYPE_UNSPECIFIED = 0; 758 MOUSE_PRESSED = 1; 759 MOUSE_RELEASED = 2; 760 MOUSE_WHEEL = 3; 761 KEY_PRESSED = 4; 762 KEY_RELEASED = 5; 763 TOUCH_PRESSED = 6; 764 TOUCH_RELEASED = 7; 765 TOUCH_MOVED = 8; 766 GESTURE_SCROLL_BEGIN = 9; 767 GESTURE_SCROLL_UPDATE = 10; 768 GESTURE_SCROLL_END = 11; 769 GESTURE_DOUBLE_TAP = 12; 770 GESTURE_LONG_PRESS = 13; 771 GESTURE_LONG_TAP = 14; 772 GESTURE_SHOW_PRESS = 15; 773 GESTURE_TAP = 16; 774 GESTURE_TAP_CANCEL = 17; 775 GESTURE_TAP_DOWN = 18; 776 GESTURE_TAP_UNCONFIRMED = 19; 777 GESTURE_TWO_FINGER_TAP = 20; 778 FIRST_GESTURE_SCROLL_UPDATE = 21; 779 MOUSE_DRAGGED = 22; 780 GESTURE_PINCH_BEGIN = 23; 781 GESTURE_PINCH_END = 24; 782 GESTURE_PINCH_UPDATE = 25; 783 INERTIAL_GESTURE_SCROLL_UPDATE = 26; 784 } 785 786 optional EventType event_type = 1; 787 optional bool has_high_latency = 2; 788 repeated string high_latency_stage = 3; 789} 790 791message ProcessSingleton { 792 enum RemoteProcessInteractionResult { 793 INTERACTION_RESULT_UNSPECIFIED = 0; 794 TERMINATE_FAILED = 1; 795 REMOTE_PROCESS_NOT_FOUND = 2; 796 TERMINATE_WAIT_TIMEOUT = 3; 797 RUNNING_PROCESS_NOTIFY_ERROR = 4; 798 TERMINATE_NOT_ENOUGH_PERMISSIONS = 5; 799 REMOTE_PROCESS_SHUTTING_DOWN = 6; 800 PROFILE_UNLOCKED = 7; 801 PROFILE_UNLOCKED_BEFORE_KILL = 8; 802 SAME_BROWSER_INSTANCE = 9; 803 SAME_BROWSER_INSTANCE_BEFORE_KILL = 10; 804 FAILED_TO_EXTRACT_PID = 11; 805 INVALID_LOCK_FILE = 12; 806 ORPHANED_LOCK_FILE = 13; 807 USER_REFUSED_TERMINATION = 14; 808 TERMINATE_SUCCEEDED = 100; 809 } 810 811 enum RemoteHungProcessTerminateReason { 812 TERMINATE_REASON_UNSPECIFIED = 0; 813 USER_ACCEPTED_TERMINATION = 1; 814 NO_VISIBLE_WINDOW_FOUND = 2; 815 NOTIFY_ATTEMPTS_EXCEEDED = 3; 816 SOCKET_WRITE_FAILED = 4; 817 SOCKET_READ_FAILED = 5; 818 } 819 820 optional RemoteProcessInteractionResult remote_process_interaction_result = 1; 821 optional RemoteHungProcessTerminateReason remote_process_terminate_reason = 2; 822} 823 824message NavigationHandle { 825 optional int64 navigation_id = 1; 826 optional bool has_committed = 2; 827 optional bool is_error_page = 3; 828 optional FrameTreeNodeInfo frame_tree_node = 4; 829 optional RenderFrameHost render_frame_host = 5; 830 831 // Additional untyped debug information associated with this 832 // NavigationHandle/Request, populated via TracedProto::AddDebugAnnotations 833 // API. 834 repeated DebugAnnotation debug_annotations = 99; 835} 836 837enum DeviceThermalState { 838 DEVICE_THERMAL_STATE_UNKNOWN = 0; 839 DEVICE_THERMAL_STATE_NOMINAL = 1; 840 DEVICE_THERMAL_STATE_FAIR = 2; 841 DEVICE_THERMAL_STATE_SERIOUS = 3; 842 DEVICE_THERMAL_STATE_CRITICAL = 4; 843} 844 845// Used to log which Android IPC was called and how long it took. 846message AndroidIPC { 847 optional string name = 1; 848 optional int64 dur_ms = 2; 849} 850 851message SequenceManagerTask { 852 enum Priority { 853 UNKNOWN = 0; 854 CONTROL_PRIORITY = 1; 855 HIGHEST_PRIORITY = 2; 856 VERY_HIGH_PRIORITY = 3; 857 HIGH_PRIORITY = 4; 858 NORMAL_PRIORITY = 5; 859 LOW_PRIORITY = 6; 860 BEST_EFFORT_PRIORITY = 7; 861 862 // Renderer-specific priorities. 863 HIGH_PRIORITY_CONTINUATION = 8; 864 NORMAL_PRIORITY_CONTINUATION = 9; 865 LOW_PRIORITY_CONTINUATION = 10; 866 } 867 868 enum QueueName { 869 UNKNOWN_TQ = 0; 870 DEFAULT_TQ = 1; 871 TASK_ENVIRONMENT_DEFAULT_TQ = 2; 872 TEST2_TQ = 3; 873 TEST_TQ = 4; 874 CONTROL_TQ = 5; 875 876 SUBTHREAD_CONTROL_TQ = 6; 877 SUBTHREAD_DEFAULT_TQ = 7; 878 SUBTHREAD_INPUT_TQ = 8; 879 880 UI_BEST_EFFORT_TQ = 9; 881 UI_BOOTSTRAP_TQ = 10; 882 UI_CONTROL_TQ = 11; 883 UI_DEFAULT_TQ = 12; 884 UI_NAVIGATION_NETWORK_RESPONSE_TQ = 13; 885 UI_RUN_ALL_PENDING_TQ = 14; 886 UI_SERVICE_WORKER_STORAGE_CONTROL_RESPONSE_TQ = 15; 887 UI_THREAD_TQ = 16; 888 UI_USER_BLOCKING_TQ = 17; 889 UI_USER_INPUT_TQ = 18; 890 UI_USER_VISIBLE_TQ = 19; 891 892 IO_BEST_EFFORT_TQ = 20; 893 IO_BOOTSTRAP_TQ = 21; 894 IO_CONTROL_TQ = 22; 895 IO_DEFAULT_TQ = 23; 896 IO_NAVIGATION_NETWORK_RESPONSE_TQ = 24; 897 IO_RUN_ALL_PENDING_TQ = 25; 898 IO_SERVICE_WORKER_STORAGE_CONTROL_RESPONSE_TQ = 26; 899 IO_THREAD_TQ = 27; 900 IO_USER_BLOCKING_TQ = 28; 901 IO_USER_INPUT_TQ = 29; 902 IO_USER_VISIBLE_TQ = 30; 903 904 COMPOSITOR_TQ = 31; 905 DETACHED_TQ = 32; 906 FRAME_DEFERRABLE_TQ = 33; 907 FRAME_LOADING_CONTROL_TQ = 34; 908 FRAME_LOADING_TQ = 35; 909 FRAME_PAUSABLE_TQ = 36; 910 FRAME_THROTTLEABLE_TQ = 37; 911 FRAME_UNPAUSABLE_TQ = 38; 912 IDLE_TQ = 39; 913 INPUT_TQ = 40; 914 IPC_TRACKING_FOR_CACHED_PAGES_TQ = 41; 915 NON_WAKING_TQ = 42; 916 OTHER_TQ = 43; 917 V8_TQ = 44; 918 WEB_SCHEDULING_TQ = 45; 919 920 WORKER_IDLE_TQ = 46; 921 WORKER_PAUSABLE_TQ = 47; 922 WORKER_THREAD_INTERNAL_TQ = 48; 923 WORKER_THROTTLEABLE_TQ = 49; 924 WORKER_UNPAUSABLE_TQ = 50; 925 WORKER_WEB_SCHEDULING_TQ = 51; 926 927 UI_USER_BLOCKING_DEFERRABLE_TQ = 52; 928 IO_USER_BLOCKING_DEFERRABLE_TQ = 53; 929 } 930 931 optional Priority priority = 1; 932 optional QueueName queue_name = 2; 933} 934 935message AndroidToolbar { 936 enum BlockCaptureReason { 937 BLOCKED_UNKNOWN = 0; 938 BLOCKED_TOOLBAR_OR_RESULT_NULL = 1; 939 BLOCKED_VIEW_NOT_DIRTY = 2; 940 BLOCKED_SNAPSHOT_SAME = 3; 941 BLOCKED_URL_BAR_HAS_FOCUS = 4; 942 BLOCKED_URL_BAR_FOCUS_IN_PROGRESS = 5; 943 BLOCKED_OPTIONAL_BUTTON_ANIMATION_IN_PROGRESS = 6; 944 BLOCKED_STATUS_ICON_ANIMATION_IN_PROGRESS = 7; 945 BLOCKED_SCROLL_ABLATION = 8; 946 BLOCKED_BROWSER_CONTROLS_LOCKED = 9; 947 BLOCKED_TAB_SWITCHER_MODE = 10; 948 BLOCKED_COMPOSITOR_IN_MOTION = 11; 949 BLOCKED_NTP_Y_TRANSLATION = 12; 950 } 951 enum AllowCaptureReason { 952 ALLOWED_UNKNOWN = 0; 953 ALLOWED_FORCE_CAPTURE = 1; 954 ALLOWED_SNAPSHOT_DIFFERENCE = 2; 955 } 956 enum SnapshotDifference { 957 DIFF_NONE = 0; 958 DIFF_NULL = 1; 959 DIFF_TINT = 2; 960 DIFF_TAB_COUNT = 3; 961 DIFF_OPTIONAL_BUTTON = 4; 962 DIFF_VISUAL_STATE = 5; 963 DIFF_SECURITY_ICON = 6; 964 DIFF_SHOWING_UPDATE_BADGE = 7; 965 DIFF_PAINT_PREVIEW = 8; 966 DIFF_PROGRESS = 9; 967 DIFF_LOCATION_BAR_WIDTH = 10; 968 DIFF_URL_TEXT = 11; 969 DIFF_HOME_BUTTON = 12; 970 DIFF_TITLE_TEXT = 13; 971 DIFF_CCT_ANIMATION = 14; 972 DIFF_BOOKMARK_BUTTON = 15; 973 DIFF_BACK_BUTTON = 16; 974 DIFF_FORWARD_BUTTON = 17; 975 DIFF_RELOAD_BUTTON = 18; 976 } 977 978 optional BlockCaptureReason block_capture_reason = 1; 979 optional AllowCaptureReason allow_capture_reason = 2; 980 optional SnapshotDifference snapshot_difference = 3; 981} 982 983message ActiveProcesses { 984 repeated int32 pid = 1; 985} 986 987message UkmPageLoadTimingUpdate { 988 // This can be used to uniquely identify a navigation from the point of view 989 // of UKM. 990 optional int64 ukm_source_id = 1; 991 992 // The URL of a page can change throughout its lifetime. This is the current 993 // url when this timing update was dispatched. 994 optional string latest_url = 2; 995 996 // Latest fully aggregated value of Cumulative Layout Shift. 997 optional float latest_cumulative_layout_shift = 3; 998 999 // Latest fully aggregated value of Largest Contentful Paint. 1000 optional double latest_largest_contentful_paint_ms = 4; 1001 1002 optional double first_contentful_paint_ms = 5; 1003} 1004 1005// A serialisation of v8StackFrame class. 1006message V8StackFrame { 1007 // Code location (path to the script and line/column number) 1008 message ScriptLocation { 1009 optional string source_url = 1; 1010 optional int64 line_number = 2; 1011 optional int64 column_number = 3; 1012 } 1013 1014 // The name of the function that was called 1015 optional string function_name = 1; 1016 1017 // If the function was defined in a script, contains the location within the 1018 // script. 1019 optional ScriptLocation script_location = 2; 1020} 1021 1022// Serializes the blink::ExecutionContext object. 1023message BlinkExecutionContext { 1024 // Definition of different context types. 1025 enum ContextType { 1026 UNKNOWN_CONTEXT = 0; 1027 WINDOW = 1; 1028 WORKLET = 2; 1029 DEDICATED_WORKER = 3; 1030 SHARED_WORKER = 4; 1031 SERVICE_WORKER = 5; 1032 } 1033 1034 // Definition of world type. 1035 enum WorldType { 1036 WORLD_UNKNOWN = 0; 1037 WORLD_MAIN = 1; 1038 WORLD_ISOLATED = 2; 1039 WORLD_INSPECTOR_ISOLATED = 3; 1040 WORLD_REG_EXP = 4; 1041 WORLD_FOR_V8_CONTEXT_SNAPSHOT_NON_MAIN = 5; 1042 WORLD_WORKER = 6; 1043 WORLD_SHADOW_REALM = 7; 1044 } 1045 1046 optional ContextType type = 1; 1047 // Contains url of frame or worker. 1048 optional string url = 2; 1049 // The origin of the execution context. 1050 optional string origin = 3; 1051 // The world type of the execution context. 1052 optional WorldType world_type = 4; 1053} 1054 1055// Serializes the blink::SourceLocation object. 1056message BlinkSourceLocation { 1057 optional string function_name = 1; 1058 optional int32 script_id = 2; 1059 optional string url = 3; 1060 optional int32 line_number = 4; 1061 optional int32 column_number = 5; 1062 optional string stack_trace = 6; 1063 repeated V8StackFrame stack_frames = 7; 1064} 1065 1066// Contains the meta information for high entropy events (like api calls) 1067// that are to be traced for debugging in the context of identifiability study. 1068message BlinkHighEntropyAPI { 1069 // Serialization of a parameter passed to a javascript function. 1070 // Contains the stringified type of the object and some string representation 1071 // of its value. 1072 message JSFunctionArgument { 1073 // Definition of different types of function parameters. 1074 enum ArgumentType { 1075 UNKNOWN_TYPE = 0; 1076 NULL_TYPE = 1; 1077 UNDEFINED = 2; 1078 BIGINT = 3; 1079 BOOLEAN = 4; 1080 FUNCTION = 5; 1081 NUMBER = 6; 1082 STRING = 7; 1083 SYMBOL = 8; 1084 OBJECT = 9; 1085 } 1086 optional ArgumentType type = 1; 1087 optional string value = 2; 1088 } 1089 1090 // Describes a Javascript API call. 1091 message CalledJsApi { 1092 // Contains class and function name of api called 1093 // similar to "Navigator.languages.get". 1094 optional string identifier = 1; 1095 repeated JSFunctionArgument func_arguments = 2; 1096 1097 // Deprecated in favour of outer source_location. 1098 optional BlinkSourceLocation source_location = 3; 1099 } 1100 optional BlinkExecutionContext execution_context = 1; 1101 optional CalledJsApi called_api = 2; 1102 optional BlinkSourceLocation source_location = 3; 1103 1104 // Describes lookup of a font. 1105 message FontLookup { 1106 enum FontLookupType { 1107 FONT_LOOKUP_UNKNOWN_TYPE = 0; 1108 FONT_LOOKUP_UNIQUE_OR_FAMILY_NAME = 1; 1109 FONT_LOOKUP_UNIQUE_NAME_ONLY = 2; 1110 } 1111 optional FontLookupType type = 1; 1112 optional string name = 2; 1113 optional uint64 weight = 3; 1114 optional uint64 width = 4; 1115 optional uint64 slope = 5; 1116 } 1117 optional FontLookup font_lookup = 4; 1118} 1119 1120// Contains information about a tab switch measurement. 1121message TabSwitchMeasurement { 1122 // Possible outcomes of a tab switch. Maps to 1123 // blink::ContentToVisibleTimeReporter::TabSwitchResult. 1124 enum Result { 1125 RESULT_UNSPECIFIED = 0; 1126 // A frame was successfully presented after a tab switch. 1127 RESULT_SUCCESS = 1; 1128 // Tab was hidden before a frame was presented after a tab switch. 1129 RESULT_INCOMPLETE = 2; 1130 // TabWasShown called twice for a frame without TabWasHidden between. Treat 1131 // the first TabWasShown as an incomplete tab switch. 1132 RESULT_MISSED_TAB_HIDE = 3; 1133 } 1134 1135 // State of the target tab. Corresponds to the suffixes of the 1136 // Browser.TabSwitchResult2.* histograms. 1137 enum TabState { 1138 STATE_UNSPECIFIED = 0; 1139 // The tab has frames in the frame cache, which can be composited in the 1140 // browser process. 1141 STATE_WITH_SAVED_FRAMES = 1; 1142 // The tab has no frames in the frame cache so must be rendered and 1143 // composited in a renderer process. 1144 STATE_LOADED_NO_SAVED_FRAMES = 2; 1145 // The tab has no frames in the frame cache and is not fully loaded, so it 1146 // must be reloaded before it can be rendered and composited in a renderer 1147 // process. 1148 STATE_NOT_LOADED_NO_SAVED_FRAMES = 3; 1149 } 1150 1151 optional Result result = 1; 1152 optional TabState tab_state = 2; 1153} 1154 1155// Data about scroll deltas and offsets. 1156// All values are in physical screen pixels. 1157message ScrollDeltas { 1158 // The trace_id of the current input. 1159 optional int64 trace_id = 1; 1160 // The original delta for current input. That is, this is the delta that 1161 // the Browser receives from Android, but already scaled to the device's 1162 // screen. 1163 optional float original_delta_x = 2; 1164 optional float original_delta_y = 3; 1165 // The trace_id of the input that the current input is coalesced with. 1166 // If input is not coalesced, this field is null. 1167 optional int64 coalesced_to_trace_id = 4; 1168 // The delta which arrived to compositor. 1169 // This is the sum of all the inputs coalesced together 1170 // with the resampler applied to them. 1171 // This delta is used to calculate a |visual_offset|. 1172 optional float provided_to_compositor_delta_x = 5; 1173 optional float provided_to_compositor_delta_y = 6; 1174 // The offset which compositor set. 1175 optional int64 visual_offset_x = 7; 1176 optional int64 visual_offset_y = 8; 1177 1178 // Data which GPU returns. 1179 // Number of inputs which were shown together in one GPU frame. 1180 optional int32 event_count_in_gpu_frame = 9; 1181 // The trace_ids of inputs which were shown together in one GPU frame. 1182 repeated int64 trace_ids_in_gpu_frame = 10; 1183 // The sum of original deltas of inputs which were shown together in one GPU 1184 // frame. 1185 optional float original_delta_in_gpu_frame_y = 11; 1186 // The sum of predicted deltas of inputs which were shown together in one GPU 1187 // frame. 1188 optional float predicted_delta_in_gpu_frame_y = 12; 1189 // The array of original deltas of inputs which were shown together in one GPU 1190 // frame. 1191 repeated float segregated_original_deltas_in_gpu_frame_y = 13; 1192 // The array of predicted deltas of inputs which were shown together in one 1193 // GPU frame. 1194 repeated float segregated_predicted_deltas_in_gpu_frame_y = 14; 1195} 1196 1197message ChromeTrackEvent { 1198 // Extension range for Chrome: 1000-1999 1199 // Next ID: 1048 1200 extend TrackEvent { 1201 optional ChromeAppState chrome_app_state = 1000; 1202 1203 optional ChromeMemoryPressureNotification 1204 chrome_memory_pressure_notification = 1001; 1205 1206 optional ChromeTaskAnnotator chrome_task_annotator = 1002; 1207 1208 optional ChromeBrowserContext chrome_browser_context = 1003; 1209 1210 optional ChromeProfileDestroyer chrome_profile_destroyer = 1004; 1211 1212 optional ChromeTaskPostedToDisabledQueue 1213 chrome_task_posted_to_disabled_queue = 1005; 1214 1215 optional ChromeRasterTask chrome_raster_task = 1006; 1216 1217 optional ChromeMessagePumpForUI chrome_message_pump_for_ui = 1007; 1218 1219 optional RenderFrameImplDeletion render_frame_impl_deletion = 1008; 1220 1221 optional ShouldSwapBrowsingInstancesResult 1222 should_swap_browsing_instances_result = 1009; 1223 1224 optional FrameTreeNodeInfo frame_tree_node_info = 1010; 1225 1226 optional ChromeHashedPerformanceMark chrome_hashed_performance_mark = 1011; 1227 1228 optional RenderProcessHost render_process_host = 1012; 1229 optional RenderProcessHostCleanup render_process_host_cleanup = 1013; 1230 optional RenderProcessHostListener render_process_host_listener_changed = 1231 1014; 1232 optional ChildProcessLauncherPriority child_process_launcher_priority = 1233 1015; 1234 1235 optional ResourceBundle resource_bundle = 1016; 1236 1237 optional ChromeWebAppBadNavigate chrome_web_app_bad_navigate = 1017; 1238 1239 optional ChromeExtensionId chrome_extension_id = 1018; 1240 1241 optional SiteInstance site_instance = 1019; 1242 1243 optional RenderViewHost render_view_host = 1020; 1244 1245 optional RenderFrameProxyHost render_frame_proxy_host = 1021; 1246 1247 optional AndroidViewDump android_view_dump = 1022; 1248 1249 optional ParkableStringCompressInBackground 1250 parkable_string_compress_in_background = 1023; 1251 optional ParkableStringUnpark parkable_string_unpark = 1024; 1252 1253 optional ChromeSamplingProfilerSampleCollected 1254 chrome_sampling_profiler_sample_completed = 1025; 1255 optional SendBeginMainFrameToCommitBreakdown 1256 send_begin_mainframe_to_commit_breakdown = 1026; 1257 1258 optional GlobalRenderFrameHostId global_render_frame_host_id = 1027; 1259 1260 optional RenderFrameHost render_frame_host = 1028; 1261 1262 optional ChromeThreadPoolTask thread_pool_task = 1029; 1263 1264 optional BackForwardCacheCanStoreDocumentResult 1265 back_forward_cache_can_store_document_result = 1030; 1266 1267 optional RendererMainThreadTaskExecution 1268 renderer_main_thread_task_execution = 1031; 1269 1270 optional EventLatency event_latency = 1032; 1271 1272 optional ProcessSingleton process_singleton = 1033; 1273 1274 optional SiteInstanceGroup site_instance_group = 1034; 1275 1276 optional BrowsingContextState browsing_context_state = 1035; 1277 1278 optional DeviceThermalState device_thermal_state = 1036; 1279 1280 optional NavigationHandle navigation = 1037; 1281 1282 optional AndroidIPC android_ipc = 1038; 1283 1284 optional ChromeSqlDiagnostics sql_diagnostics = 1039; 1285 1286 optional SequenceManagerTask sequence_manager_task = 1040; 1287 1288 optional AndroidToolbar android_toolbar = 1041; 1289 1290 optional ActiveProcesses active_processes = 1042; 1291 1292 optional BlinkTaskScope blink_task_scope = 1043; 1293 1294 optional UkmPageLoadTimingUpdate ukm_page_load_timing_update = 1044; 1295 1296 optional BlinkHighEntropyAPI high_entropy_api = 1045; 1297 1298 optional TabSwitchMeasurement tab_switch_measurement = 1046; 1299 1300 optional ScrollDeltas scroll_deltas = 1047; 1301 } 1302} 1303