Perfetto does support embedding though I concede it's not as seamless as it was with chrome://tracing.
As with Chrome://tracing, you can put the UI inside an iframe and pass the trace to the UI via postMessage (see https://perfetto.dev/docs/visualization/deep-linking-to-perf...). There are quite a few people that do this: the big ones I'm aware of is the Rust language CI for performance (https://github.com/rust-lang/rustc-perf/issues/1857) and Flutter Devtools (https://github.com/flutter/devtools/pull/4386/files).
There's also an effort via contributions from some external folk to add more "proper" support for embedding (i.e. compiling Perfetto directly into a larger application, more like a library). That discussion is happening at https://github.com/google/perfetto/pull/2267 and the PRs spawned off it. We're hoping to have some more public documentation on this once that effort finishes up.
oooh fantastic. Thanks! Exciting
My initial test looks pretty good, seems I will need to muck around a bit to get to "one click runs the simulation and displays the trace and stats" but that rust link seems to have clues.
It sure is pleasing to see perfetto handles long durations well - we work in hours and days not ns and us...
I don't suppose there is some supported way to inject macros or "ui automation" [1] into the iframe?
[1] https://perfetto.dev/docs/visualization/ui-automation
> I don't suppose there is some supported way to inject macros or "ui automation" [1] into the iframe?
This is exactly what https://github.com/google/perfetto/issues/1342 is about :) It's not the highest priority issue but it is something I want to implement sooner than later.
Oh and separately you're right we should add support for also passing macros over the postMessage API. Will file a bug for this.