commit | fed56fa5117ab994d35372ec08622c02a9f1c579 | [log] [tgz] |
---|---|---|
author | Tommy Nyquist <nyquist@google.com> | Wed Jun 19 13:36:45 2019 -0700 |
committer | Tommy Nyquist <nyquist@google.com> | Wed Jun 19 13:36:45 2019 -0700 |
tree | 15fecee9e1f15c97483ac7fa1987202e3728baa4 | |
parent | c63be46c502089deed3fc93217425e4b6ea2f517 [diff] |
Add support for opening traces from postMessage. Up until now the only way for opening traces has been to either have it available at a specific URL or as a local file. However, going forward we also want to be able to push a trace to the Perfetto UI from other domains, using postMessage(). This CL therefore adds a window messsage handler that is able to store an incoming trace in the State's EngineConfig source property, which now considers ArrayBuffer a valid type. When the trace has been received, it is automatically opened. Since the source origin will not be ui.perfetto.dev, the site that triggers opening the window will not be able to listen to when the site has fully loaded. We therefore add functionality to reply to any message with the content 'PING' with a simple 'PONG', which tells the source site that ui.perfetto.dev is ready to receive traces. The next message is then typically the trace itself as an ArrayBuffer. When the source is external, we do not want to keep the functionality to share and download traces, so whenever an external trace is opened, we set the UI in a localOnlyMode, which disables those functions in the UI and adds decorations so this is intuitive to understand. This state is reset when a trace of a different source type is opened. Bug: 133367518 Change-Id: I738b7626669b27042f7c0edcf3beeb8176ed10b2
Perfetto is an open-source project for performance instrumentation and tracing of Linux/Android/Chrome platforms and user-space apps.
See www.perfetto.dev for docs.