jlfwong / speedscope

🔬 A fast, interactive web-based viewer for performance profiles.
https://www.speedscope.app
MIT License
5.45k stars 237 forks source link

Allow accept header to be specified alongside profileURL #461

Open BlakeWilliams opened 8 months ago

BlakeWilliams commented 8 months ago

I have an endpoint I'd like to profile that returns HTML or JSON based on the accept header. By default it returns JSON but I'd like to provide a quick link via profileURL that will profile the HTML response instead.

Since speedscope doesn't specify an accept header fetch defaults to */*, which ends up using the default format of that endpoint. I'd like to be able to specify the accept header explicitly so I can generate quick links to both JSON And HTML profiles.

To solve that ask, this adds a new parameter to the hash based param logic, profileAccepts (better name suggestions welcome). This allows you to specify the accept header so that you can explicitly choose which content type to profile when using #profileURL.

Usage: https://speedscope.app/#profileURL=http://mywebsite/page-to-profile&#profileAccepts=application%2Fjson

I didn't update the README or add any documentation, but happy to if requested!