commit | ce83108c40eea7900a627eed9a4e0c5c18373525 | [log] [tgz] |
---|---|---|
author | Hector Dearman <hjd@google.com> | Thu Jun 23 15:10:04 2022 +0100 |
committer | Hector Dearman <hjd@google.com> | Thu Jun 23 15:10:04 2022 +0100 |
tree | 7d61f7e8bddb6f0580e9dfe9eedc2bc183b5152a | |
parent | 8cafb589b7e414c21a0ef2647fd30c1d1a3a0572 [diff] |
ui: Add initial plugin architecture Builds on the existing track importer script to make it work more 'plugin' like. Rather than the plugin importing parts of the core the plugin instead exposes a single function ('activate') which takes will eventually take a 'plugin interface' which is how the plugin actually extends the system. As a first step towards that this: - Creates a plugin registory - Extends registries generally to support iteration - Adds a (currently empty) activate() function to each track. - Calls activate for every registered plugin at page load - Updates tools/gen_ui_imports to generate code like: import {pluginRegistry} from '../common/plugins'; import {activate as fooTrack} from '../tracks/foo_track'; import {activate as barTrack} from '../tracks/bar_track'; pluginRegistry.register({ kind: 'fooTrack', activate: fooTrack, }); pluginRegistry.register({ kind: 'barTrack', activate: barTrack, }); Change-Id: I475e4ee49642568ecc868e43904cf0d35557818e
Perfetto is a production-grade open-source stack for performance instrumentation and trace analysis. It offers services and libraries and for recording system-level and app-level traces, native + java heap profiling, a library for analyzing traces using SQL and a web-based UI to visualize and explore multi-GB traces.
See https://perfetto.dev/docs or the /docs/ directory for documentation.