NavigaraNavigara
OrganizationsDistributionCompareResearch
NavigaraNavigara
OrganizationsDistributionCompareResearch
All developers

Kean Mariotti

Developer

Kean Mariotti

keanmariotti@google.com

22 commits~8 files/commit

Performance

2026Previous year

Insights

Key patterns and highlights from this developer's activity.

Peak MonthApr'25424 performance
Growth Trend↑46%vs prior period
Avg Files/Commit8files per commit
Active Days19of 455 days
Top Repoperfetto22 commits

Effort Over Time

Breakdown of growth, maintenance, and fixes effort over time.

Bug Behavior

Beta

Bugs introduced vs. fixed over time.

No bugs introduced or fixed in this period.

Recent Activity

Latest analyzed commits from this developer.

HashMessageDateFilesEffort
597706bThis commit introduces a **new capability** to the **Perfetto tracing system** by adding a `rendering_hints` field to the `WindowLayoutParamsProto` message definition. This enhancement specifically affects the **Android window management tracing** subsystem, allowing for the capture and storage of additional rendering-related information. By extending the `protos/perfetto/trace/android/view/windowlayoutparams.proto` schema, this change provides more granular data for analyzing window rendering behavior and performance within Perfetto traces.Feb 261grow
ff5b751This commit **integrates ProtoVM** into the **Trace Processor** to enable **incremental tracing**, a **major new capability** for handling trace data. It introduces the `ProtoVmIncrementalTracing` class and modifies the `ProtoTraceReader` to process trace provenance, ProtoVM definitions, and apply patches to trace packets. This allows for more efficient and smaller trace files by enabling incremental updates. The change also includes a **refactoring** in the `protozero` library's `ProtoDecoder` for improved performance, updates to various **build configurations**, and comprehensive **test coverage** for the new functionality.Feb 2013grow
cf77fe8This commit performs a **maintenance refactoring** within the **`protovm` subsystem** to **optimize its serialization API**. It modifies `Vm::SerializeIncrementalState` and `RwProto::Serialize` to write incremental state directly into a `protozero::Message` output parameter, thereby **eliminating intermediate `std::string` copies**. This change significantly **reduces memory allocations and improves performance** for clients, such as the **`tracing_service`**, which has been updated to use the new, more efficient API. The `Vm` class also gains a new `SerializeIncrementalStateAsString` helper for convenience. Existing tests for `protovm` components were also updated to reflect these API changes.Feb 167maint
152e9ddThis commit performs a significant **refactoring** of header file organization by **renaming and relocating** core utility headers, specifically `intrusive_list.h` and `intrusive_tree.h`, from `src/base` to `include/perfetto/ext/base`. This **maintenance** effort updates all affected include paths across various source files, including those within the **`protovm`** component and `src/base` utilities, along with their corresponding unit tests. Crucially, it also modifies the **Bazel and GN build configurations** to reflect these new header locations. The primary goal of this change is to **fix the Chromium build**, ensuring the project compiles correctly within that environment by resolving outdated header references.Feb 1211maint
2353a95This commit **integrates the ProtoVM** into the Perfetto tracing system, enabling dynamic, in-trace processing of data. This **new capability** introduces new **protobuf messages** across `perfetto_config.proto`, `trace_packet.proto`, `data_source_config.proto`, and `data_source_descriptor.proto` to specify ProtoVM configurations, programs, and instances. The **tracing service (`TracingServiceImpl`)** and **trace buffer (`TraceBufferV2`)** are significantly updated to set up, manage, and execute ProtoVM logic, including handling incremental state and cloning VMs. The integration also includes minor **ProtoVM refactoring** and comprehensive **unit tests** to ensure correct functionality. This enhances the flexibility of trace data collection by allowing data sources to embed custom processing logic directly within the tracing pipeline.Feb 1139grow
68f3401This commit introduces the **initial implementation** of the **TraceProvenance packet** into the **tracing service**, adhering to RFC-002. It defines a new `TraceProvenance` protobuf message and integrates it as a field within the core `TracePacket` structure, enabling traces to carry essential metadata about their origin and generation. The `TracingServiceImpl` is updated to `EmitTraceProvenance` during initial packet emission, providing crucial information for **ProtoVM integration**. This **new capability** ensures that trace data includes vital provenance details, with corresponding build system updates and unit tests to verify correct emission.Feb 610grow
a8194d5This commit **fixes a regression** in the **Android build system configuration** by restoring missing entries to the `javastream protos allowlist`. It **re-adds erroneously removed protobuf definitions** within `Android.bp.extras` that are crucial for `javastream` functionality. This **maintenance fix** ensures the build process correctly recognizes and compiles these protobufs, preventing potential build failures or runtime issues for components relying on them. The change directly addresses an oversight from a previous commit, restoring the intended allowlist state.Dec 313–
bccce62This commit introduces a **new capability** for **Perfetto's input method tracing**, enabling **fine-grained configuration** of data collection. A new `InputMethodConfig` protobuf definition is added and integrated into `DataSourceConfig`, allowing users to individually enable or disable client, IMS, and IMMS tracing. This enhancement to the **Android tracing subsystem** provides more precise control over input method data, improving the efficiency and relevance of collected traces. The necessary build configurations (`Android.bp`, `BUILD`, `BUILD.gn`) have been updated to incorporate this new proto definition.Dec 298grow
4624592This commit significantly improves the **robustness** of the **Trace Processor's WinScope importer** by making its **WindowManager** data parsing more fault-tolerant. Previously, the `WindowManagerHierarchyWalker` would abort its traversal upon encountering an invalid or unexpected proto format, leading to incomplete data. Now, the `ExtractWindowContainers` function and its children are modified to **continue parsing** even when errors occur, collecting all available valid data and signaling any parsing issues via a new `ExtractResult` struct. This **feature enhancement** ensures that the `WindowManager` table in the trace processor receives **more complete data**, even from partially malformed WinScope traces, preventing premature termination of data ingestion.Nov 264maint
3625041This commit **enables host support** for the `perfetto_winscope-lite` **Java library** by updating its build configuration in `Android.bp` and `Android.bp.extras` to include `host_supported: true`. This **feature enhancement** allows the library to be compiled and utilized in **host-side development environments and tests**, expanding its usability beyond device-specific builds. Consequently, components that depend on `perfetto_winscope-lite` can now be more thoroughly tested and integrated on the host, improving overall development efficiency and code quality.Nov 122grow
8398656This commit introduces **new Protocol Buffer wrapper messages** to enhance **Android Input Method Editor (IME) tracing** within the `perfetto` system. It adds `InputMethodClientsTraceFileProto`, `InputMethodServiceTraceFileProto`, and `InputMethodManagerServiceTraceFileProto` to `protos/perfetto/trace/android/inputmethodeditor.proto`. This **new feature** provides distinct message types for various IME tracing scenarios, improving the granularity and organization of collected trace data. The addition of these wrappers will enable more precise analysis of IME client, service, and manager interactions in Android traces.Nov 103grow
fe97deaThis commit **increases the WebAssembly stack size to 2MB** by adjusting the `STACK_SIZE` compiler flag within `gn/standalone/wasm.gni`. This **bug fix** specifically addresses **stack overflows** that occurred during **window manager hierarchy traversal** operations within the Wasm runtime. The previous 64KB default was insufficient for the recursive Depth-First Search (DFS) performed by `WindowManagerHierarchyWalker`, which allocates substantial `protozero` decoders on the stack. This **configuration adjustment** enhances the stability and reliability of Wasm-based features requiring deep call stacks.Sep 251maint
29a523dThis commit introduces a **new feature** to the **Trace Processor's Winscope module** by flattening the complex Android WindowManager (WM) hierarchy into a dedicated `__intrinsic_windowmanager_windowcontainer` table. It revamps the **WindowManager parsing logic** to traverse the WM protobuf hierarchy, extract individual elements, and calculate their visibility and screen positions. This **refactoring** provides a more accessible and queryable representation of WM data, exposed through the new `android_windowmanager_windowcontainer` SQL view, significantly improving the analysis capabilities for WM state.Sep 2219grow
b3b98a3IME proto: more messages to be javastream compiled (#1755)Jun 102–
e4c0c80This commit **updates the persistent configuration** to modify the tracing behavior for **Android SurfaceFlinger transactions**. It specifically changes the `android.surfaceflinger.transactions` tracing mode within `persistent_cfg.pbtxt` from `MODE_ACTIVE` to `MODE_CONTINUOUS`. This **configuration enhancement** ensures that `SurfaceFlinger` transaction tracing operates continuously, providing more comprehensive data for debugging and performance analysis of the Android graphics system. The change impacts the **system's tracing capabilities** for display-related operations.Jun 101grow
44b4b71This commit **introduces a new tracing capability** to Perfetto by adding the `prevent_ime_startup_unless_text_editor` boolean field to the `InputMethodManagerServiceProto` in `protos/perfetto/trace/android/server/inputmethod/inputmethodmanagerservice.proto`. This **new field** allows the **Perfetto tracing system** to capture the state of an Android configuration option that controls whether the Input Method Editor (IME) starts up only when a text editor is focused. This **enhancement to Android IMMS tracing** is a **new capability** that significantly improves the ability to **debug input method-related issues**, especially those encountered in `CtsInputMethodTestCases`, by providing crucial visibility into this configuration's value within traces.Jun 61grow
d578361This commit introduces a **new capability** to the **Perfetto tracing system** by adding the `concurrent_multi_user_mode_enabled` field to the `InputMethodManagerServiceProto` message. This optional boolean field, located in `protos/perfetto/trace/android/server/inputmethod/inputmethodmanagerservice.proto`, will indicate if the Android Input Method Manager Service (IMMS) is configured for concurrent multi-user operation. This **schema extension** enhances the **trace data collected for Android input methods**, providing crucial context for system analysis. As a **refactoring** and data model update, this change is not expected to cause immediate visible issues.Jun 61grow
10d3010This commit significantly **refactors** the `protovm` **slab allocator** to improve its performance, memory efficiency, and overall robustness, moving it towards production quality. The allocator now uses **4KB-aligned slabs** for direct memory page allocation, implements an `O(1)` lookup mechanism via a hash map to quickly find a slab from an element's address during deallocation, and maintains an intrusive list of non-full slabs for `O(1)` allocation. Furthermore, empty slabs are now properly deallocated, enhancing resource management within the `protovm` subsystem. These changes ensure more efficient memory utilization and faster allocation/deallocation operations, with corresponding unit tests updated to cover the new design.May 62maint
ae22099This commit addresses a **compilation issue** within the **`protovm` subsystem** by adding the necessary `#include <new>` directive to `src/protovm/error_handling.h`. This **bug fix** ensures that types and functions, potentially related to memory allocation or exception handling, are correctly declared, preventing build failures. The change is a **maintenance update** that improves the robustness and portability of the `protovm` module's error handling mechanisms, ensuring its proper compilation and functionality.Apr 291waste
e03aa8dThis commit introduces the **initial implementation of the `protovm` subsystem**, a **new virtual machine** designed for **schema-agnostic manipulation of protobuf messages**. It provides core components like an `Allocator`, `Executor`, `Parser`, and `Vm` class, enabling dynamic operations such as patching and incremental serialization of protobuf data without requiring compile-time proto definitions. The work includes defining the VM's instruction set via `vm_program.proto`, robust error handling, and specialized cursors (`RoCursor`, `RwProtoCursor`) for read-write access to protobuf fields. This **new capability** significantly enhances the project's ability to process and modify protobufs dynamically, supported by comprehensive **build system integration** and **extensive unit tests** for all core components.Apr 2838grow
597706bFeb 26

This commit introduces a **new capability** to the **Perfetto tracing system** by adding a `rendering_hints` field to the `WindowLayoutParamsProto` message definition. This enhancement specifically affects the **Android window management tracing** subsystem, allowing for the capture and storage of additional rendering-related information. By extending the `protos/perfetto/trace/android/view/windowlayoutparams.proto` schema, this change provides more granular data for analyzing window rendering behavior and performance within Perfetto traces.

1 filesgrow
ff5b751Feb 20

This commit **integrates ProtoVM** into the **Trace Processor** to enable **incremental tracing**, a **major new capability** for handling trace data. It introduces the `ProtoVmIncrementalTracing` class and modifies the `ProtoTraceReader` to process trace provenance, ProtoVM definitions, and apply patches to trace packets. This allows for more efficient and smaller trace files by enabling incremental updates. The change also includes a **refactoring** in the `protozero` library's `ProtoDecoder` for improved performance, updates to various **build configurations**, and comprehensive **test coverage** for the new functionality.

13 filesgrow
cf77fe8Feb 16

This commit performs a **maintenance refactoring** within the **`protovm` subsystem** to **optimize its serialization API**. It modifies `Vm::SerializeIncrementalState` and `RwProto::Serialize` to write incremental state directly into a `protozero::Message` output parameter, thereby **eliminating intermediate `std::string` copies**. This change significantly **reduces memory allocations and improves performance** for clients, such as the **`tracing_service`**, which has been updated to use the new, more efficient API. The `Vm` class also gains a new `SerializeIncrementalStateAsString` helper for convenience. Existing tests for `protovm` components were also updated to reflect these API changes.

7 filesmaint
152e9ddFeb 12

This commit performs a significant **refactoring** of header file organization by **renaming and relocating** core utility headers, specifically `intrusive_list.h` and `intrusive_tree.h`, from `src/base` to `include/perfetto/ext/base`. This **maintenance** effort updates all affected include paths across various source files, including those within the **`protovm`** component and `src/base` utilities, along with their corresponding unit tests. Crucially, it also modifies the **Bazel and GN build configurations** to reflect these new header locations. The primary goal of this change is to **fix the Chromium build**, ensuring the project compiles correctly within that environment by resolving outdated header references.

11 filesmaint
2353a95Feb 11

This commit **integrates the ProtoVM** into the Perfetto tracing system, enabling dynamic, in-trace processing of data. This **new capability** introduces new **protobuf messages** across `perfetto_config.proto`, `trace_packet.proto`, `data_source_config.proto`, and `data_source_descriptor.proto` to specify ProtoVM configurations, programs, and instances. The **tracing service (`TracingServiceImpl`)** and **trace buffer (`TraceBufferV2`)** are significantly updated to set up, manage, and execute ProtoVM logic, including handling incremental state and cloning VMs. The integration also includes minor **ProtoVM refactoring** and comprehensive **unit tests** to ensure correct functionality. This enhances the flexibility of trace data collection by allowing data sources to embed custom processing logic directly within the tracing pipeline.

39 filesgrow
68f3401Feb 6

This commit introduces the **initial implementation** of the **TraceProvenance packet** into the **tracing service**, adhering to RFC-002. It defines a new `TraceProvenance` protobuf message and integrates it as a field within the core `TracePacket` structure, enabling traces to carry essential metadata about their origin and generation. The `TracingServiceImpl` is updated to `EmitTraceProvenance` during initial packet emission, providing crucial information for **ProtoVM integration**. This **new capability** ensures that trace data includes vital provenance details, with corresponding build system updates and unit tests to verify correct emission.

10 filesgrow
a8194d5Dec 31

This commit **fixes a regression** in the **Android build system configuration** by restoring missing entries to the `javastream protos allowlist`. It **re-adds erroneously removed protobuf definitions** within `Android.bp.extras` that are crucial for `javastream` functionality. This **maintenance fix** ensures the build process correctly recognizes and compiles these protobufs, preventing potential build failures or runtime issues for components relying on them. The change directly addresses an oversight from a previous commit, restoring the intended allowlist state.

3 files–
bccce62Dec 29

This commit introduces a **new capability** for **Perfetto's input method tracing**, enabling **fine-grained configuration** of data collection. A new `InputMethodConfig` protobuf definition is added and integrated into `DataSourceConfig`, allowing users to individually enable or disable client, IMS, and IMMS tracing. This enhancement to the **Android tracing subsystem** provides more precise control over input method data, improving the efficiency and relevance of collected traces. The necessary build configurations (`Android.bp`, `BUILD`, `BUILD.gn`) have been updated to incorporate this new proto definition.

8 filesgrow
4624592Nov 26

This commit significantly improves the **robustness** of the **Trace Processor's WinScope importer** by making its **WindowManager** data parsing more fault-tolerant. Previously, the `WindowManagerHierarchyWalker` would abort its traversal upon encountering an invalid or unexpected proto format, leading to incomplete data. Now, the `ExtractWindowContainers` function and its children are modified to **continue parsing** even when errors occur, collecting all available valid data and signaling any parsing issues via a new `ExtractResult` struct. This **feature enhancement** ensures that the `WindowManager` table in the trace processor receives **more complete data**, even from partially malformed WinScope traces, preventing premature termination of data ingestion.

4 filesmaint
3625041Nov 12

This commit **enables host support** for the `perfetto_winscope-lite` **Java library** by updating its build configuration in `Android.bp` and `Android.bp.extras` to include `host_supported: true`. This **feature enhancement** allows the library to be compiled and utilized in **host-side development environments and tests**, expanding its usability beyond device-specific builds. Consequently, components that depend on `perfetto_winscope-lite` can now be more thoroughly tested and integrated on the host, improving overall development efficiency and code quality.

2 filesgrow
8398656Nov 10

This commit introduces **new Protocol Buffer wrapper messages** to enhance **Android Input Method Editor (IME) tracing** within the `perfetto` system. It adds `InputMethodClientsTraceFileProto`, `InputMethodServiceTraceFileProto`, and `InputMethodManagerServiceTraceFileProto` to `protos/perfetto/trace/android/inputmethodeditor.proto`. This **new feature** provides distinct message types for various IME tracing scenarios, improving the granularity and organization of collected trace data. The addition of these wrappers will enable more precise analysis of IME client, service, and manager interactions in Android traces.

3 filesgrow
fe97deaSep 25

This commit **increases the WebAssembly stack size to 2MB** by adjusting the `STACK_SIZE` compiler flag within `gn/standalone/wasm.gni`. This **bug fix** specifically addresses **stack overflows** that occurred during **window manager hierarchy traversal** operations within the Wasm runtime. The previous 64KB default was insufficient for the recursive Depth-First Search (DFS) performed by `WindowManagerHierarchyWalker`, which allocates substantial `protozero` decoders on the stack. This **configuration adjustment** enhances the stability and reliability of Wasm-based features requiring deep call stacks.

1 filesmaint
29a523dSep 22

This commit introduces a **new feature** to the **Trace Processor's Winscope module** by flattening the complex Android WindowManager (WM) hierarchy into a dedicated `__intrinsic_windowmanager_windowcontainer` table. It revamps the **WindowManager parsing logic** to traverse the WM protobuf hierarchy, extract individual elements, and calculate their visibility and screen positions. This **refactoring** provides a more accessible and queryable representation of WM data, exposed through the new `android_windowmanager_windowcontainer` SQL view, significantly improving the analysis capabilities for WM state.

19 filesgrow
b3b98a3Jun 10

IME proto: more messages to be javastream compiled (#1755)

2 files–
e4c0c80Jun 10

This commit **updates the persistent configuration** to modify the tracing behavior for **Android SurfaceFlinger transactions**. It specifically changes the `android.surfaceflinger.transactions` tracing mode within `persistent_cfg.pbtxt` from `MODE_ACTIVE` to `MODE_CONTINUOUS`. This **configuration enhancement** ensures that `SurfaceFlinger` transaction tracing operates continuously, providing more comprehensive data for debugging and performance analysis of the Android graphics system. The change impacts the **system's tracing capabilities** for display-related operations.

1 filesgrow
44b4b71Jun 6

This commit **introduces a new tracing capability** to Perfetto by adding the `prevent_ime_startup_unless_text_editor` boolean field to the `InputMethodManagerServiceProto` in `protos/perfetto/trace/android/server/inputmethod/inputmethodmanagerservice.proto`. This **new field** allows the **Perfetto tracing system** to capture the state of an Android configuration option that controls whether the Input Method Editor (IME) starts up only when a text editor is focused. This **enhancement to Android IMMS tracing** is a **new capability** that significantly improves the ability to **debug input method-related issues**, especially those encountered in `CtsInputMethodTestCases`, by providing crucial visibility into this configuration's value within traces.

1 filesgrow
d578361Jun 6

This commit introduces a **new capability** to the **Perfetto tracing system** by adding the `concurrent_multi_user_mode_enabled` field to the `InputMethodManagerServiceProto` message. This optional boolean field, located in `protos/perfetto/trace/android/server/inputmethod/inputmethodmanagerservice.proto`, will indicate if the Android Input Method Manager Service (IMMS) is configured for concurrent multi-user operation. This **schema extension** enhances the **trace data collected for Android input methods**, providing crucial context for system analysis. As a **refactoring** and data model update, this change is not expected to cause immediate visible issues.

1 filesgrow
10d3010May 6

This commit significantly **refactors** the `protovm` **slab allocator** to improve its performance, memory efficiency, and overall robustness, moving it towards production quality. The allocator now uses **4KB-aligned slabs** for direct memory page allocation, implements an `O(1)` lookup mechanism via a hash map to quickly find a slab from an element's address during deallocation, and maintains an intrusive list of non-full slabs for `O(1)` allocation. Furthermore, empty slabs are now properly deallocated, enhancing resource management within the `protovm` subsystem. These changes ensure more efficient memory utilization and faster allocation/deallocation operations, with corresponding unit tests updated to cover the new design.

2 filesmaint
ae22099Apr 29

This commit addresses a **compilation issue** within the **`protovm` subsystem** by adding the necessary `#include <new>` directive to `src/protovm/error_handling.h`. This **bug fix** ensures that types and functions, potentially related to memory allocation or exception handling, are correctly declared, preventing build failures. The change is a **maintenance update** that improves the robustness and portability of the `protovm` module's error handling mechanisms, ensuring its proper compilation and functionality.

1 fileswaste
e03aa8dApr 28

This commit introduces the **initial implementation of the `protovm` subsystem**, a **new virtual machine** designed for **schema-agnostic manipulation of protobuf messages**. It provides core components like an `Allocator`, `Executor`, `Parser`, and `Vm` class, enabling dynamic operations such as patching and incremental serialization of protobuf data without requiring compile-time proto definitions. The work includes defining the VM's instruction set via `vm_program.proto`, robust error handling, and specialized cursors (`RoCursor`, `RwProtoCursor`) for read-write access to protobuf fields. This **new capability** significantly enhances the project's ability to process and modify protobufs dynamically, supported by comprehensive **build system integration** and **extensive unit tests** for all core components.

38 filesgrow

Work Patterns

Beta

Commit activity distribution by hour and day of week. Shows when this developer is most active.

Collaboration

Beta

Developers who frequently work on the same files and symbols. Higher score means stronger code collaboration.

NavigaraNavigara
OrganizationsDistributionCompareResearch