From f0a398040265973ff40c934aa3a3bd56464fb493 Mon Sep 17 00:00:00 2001 From: Perfetto Team Date: Tue, 14 Apr 2026 12:31:27 -0700 Subject: [PATCH] Copybara import from Chromium: proto and stdlib changes - 93215cb6533b7bf6caca38b9bf09b3c44cddd82e Support cross-document navigations triggered by actor scr... by Mason Freed - 7544681114afa6f141d7af91115ed4544a32dbaa Sync feature protos. by Googler - 13d88985f5f5c895b5ea654fc2038d230f8001e9 [WV] Make WebView layout inflation work without triggerin... by Abhijith Nair - 5401d84f0a8dedfba5b7e35246b227bb2e0fbf07 Emit chrome preferred frame timeline. by Kartar Singh - 5c6c84aa6ca9afbd6f2c4cf39ec9fc76040c8f61 [ax] Add native_event to NotifyWinEvent trace event args by Sean Maher - dea0b523ef4664707b69665281725ef921e9ccb4 Implement the macOS accessibility AXTextOperation paramet... by Samar Sunkaria - a5ddd3cdc46fb1a079139961b31eaf2db4cf3467 [ScrollJankV4] Add has_inertial_input to Synthetic proto by Aman Verma COPYBARA_IMPORT=Project import generated by Copybara. GitOrigin-RevId: 93215cb6533b7bf6caca38b9bf09b3c44cddd82e --- .../chromium/chrome_track_event.proto | 25 ++++++++++++++++--- .../common_quality_data.proto | 14 +++++++++-- 2 files changed, 34 insertions(+), 5 deletions(-) diff --git a/protos/third_party/chromium/chrome_track_event.proto b/protos/third_party/chromium/chrome_track_event.proto index ac10158fb21..7371515164f 100644 --- a/protos/third_party/chromium/chrome_track_event.proto +++ b/protos/third_party/chromium/chrome_track_event.proto @@ -43,6 +43,7 @@ message BlinkTaskScope { TASK_SCOPE_MISC_EVENT = 10; TASK_SCOPE_MICROTASK = 11; TASK_SCOPE_RESOURCE_TIMING = 12; + TASK_SCOPE_SCRIPT_TOOL_EXECUTION = 13; } optional TaskScopeType type = 1; optional int64 scope_task_id = 2; @@ -1030,6 +1031,10 @@ message EventLatency { // Trace IDs of the first synthetic scroll update included in this // frame. Can be joined with EventLatency.event_latency_id. optional int64 first_event_latency_id = 1; + + // True if the synthetic scroll update was generated from an inertial + // input (e.g. a fling). + optional bool has_inertial_input = 2; } optional Synthetic synthetic = 2; @@ -2273,6 +2278,7 @@ message WebViewStartup { STATIC_GET_RENDERER_LIBRARY_PREFETCH_MODE = 106; GET_DEFAULT_COOKIE_MANAGER = 107; GET_PROFILE_STORE = 108; + WEBVIEW_INSTANCE_GET_SETTINGS = 109; // Remember to update WebViewStartupCallSite in enums.xml when adding new // values here. } @@ -2620,7 +2626,7 @@ message EventTiming { // Frame information provided by Android's Choreographer. // See // https://developer.android.com/ndk/reference/group/choreographer#achoreographerframecallbackdata. -// Next ID: 4 +// Next ID: 5 message AndroidChoreographerFrameCallbackData { // The time in microseconds at which the frame started being rendered. // See @@ -2658,6 +2664,9 @@ message AndroidChoreographerFrameCallbackData { // See // https://developer.android.com/ndk/reference/group/choreographer#achoreographerframecallbackdata_getpreferredframetimelineindex. optional int64 preferred_frame_timeline_index = 3; + + // The chrome-preferred frame timeline. + optional FrameTimeline chrome_preferred_frame_timeline = 4; } message ChromeFrameReporter2 { @@ -2908,9 +2917,16 @@ message FrameIntervalDecider { optional FrameIntervalMatcherType matcher_type = 2; } +message ChromeAccessibilityWinNotifyWinEvent { + // The DWORD `event` parameter to ::NotifyWinEvent(). See + // https://learn.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-notifywinevent + // One of the following constants: + // https://learn.microsoft.com/en-us/windows/win32/winauto/event-constants + optional uint32 native_event = 1; +} + message ChromeTrackEvent { - reserved 1045, 1080; - reserved "chrome_accessibility_win_notify_win_event"; + reserved 1045; // Extension range for Chrome: 1000-1999 // Next ID: 1083 @@ -3085,6 +3101,9 @@ message ChromeTrackEvent { // trace event, to identify which objects cause delays in a trace. optional MemoryDumpProvider memory_dump_provider = 1079; + optional ChromeAccessibilityWinNotifyWinEvent + chrome_accessibility_win_notify_win_event = 1080; + optional FrameIntervalDecider frame_interval_decider = 1081; optional BeginFrameArgsV2 begin_frame_args = 1082; diff --git a/protos/third_party/chromium/optimization_guide/common_quality_data.proto b/protos/third_party/chromium/optimization_guide/common_quality_data.proto index 22ed648974a..a231d741113 100644 --- a/protos/third_party/chromium/optimization_guide/common_quality_data.proto +++ b/protos/third_party/chromium/optimization_guide/common_quality_data.proto @@ -376,7 +376,7 @@ message ContentAttributes { } // The geometry of the content, in the page coordinate system. -// Next ID: 7 +// Next ID: 8 // NOTE: If `visual_bounding_box` is empty, i.e., the content is offscreen and // it's in an iframe, the `outer_bounding_box` may be incorrect. See crbug.com/384996050 // for details. @@ -401,6 +401,14 @@ message Geometry { // hit-testable in the DOM. BoundingRect visible_bounding_box = 2 [features = { field_presence: EXPLICIT }]; + // The bounding box of the content node relative to the viewport including all + // ancestor clipping. This is conceptually the same as `visible_bounding_box`, + // but with coordinates calculated by the compositor on the client side. This + // geometry should be more in sync with the browser screenshot, and should be + // used for screenshot redaction when present. See crbug.com/441532128 for more + // details. + BoundingRect compositor_bounding_box = 7 [features = { field_presence: EXPLICIT }]; + // Multiple boxes are used when there are multiple rectangles belonging to // the same node, e.g.: across multiple lines, columns or pages. In layout // terms, a node that does this is called a fragmentainer. @@ -2085,7 +2093,7 @@ enum AXIntListAttribute { } // AX StringList attribute enum. -// Next ID: 4 +// Next ID: 5 enum AXStringListAttribute { AX_SLA_NONE = 0; @@ -2094,6 +2102,8 @@ enum AXStringListAttribute { AX_SLA_ARIANOTIFICATIONANNOUNCEMENTS = 2; AX_SLA_ARIANOTIFICATIONTYPES = 3; + + AX_SLA_TEXTOPERATIONREPLACEMENTSTRINGS = 4; } // This will be updated when there is a significant change in the parsing logic.