Feature request: embed full input in URL
- Dominant language
- TypeScript
- Stars
- 6.8k
- Forks
- 320
- PR merge metrics
- No merged PRs in 30d
Description
Right now, to show someone a profile on speedscope, I either have to:
* Give them my trace file and have them import it into speedscope
* Upload my trace file somewhere (e.g. GitHub Gist) and send them a speedscope link with a `#profileURL` fragment
I'd like to be able to embed the input directly into the URL, like `http://speedscope.app#profileBlob=`. This would let me give people links that they can check out without any extra steps and without depending on 3rd-party services. It would also make it easy for tools—say, CI workflows—to output speedscope links.
The traces that I work with are ~500 kB. Chrome supposedly allows URLs as big as 2 MB, though I haven't tested this.
I've tried a `data:` URL, like this:
```
https://www.speedscope.app/#profileURL=data:text/plain;charset=utf-8;base64,cm9ib3Rfc2VydmVyLmFwcDty...
```
But speedscope gives me a "something went wrong" error and I see this in the console:
```
Failed to load resource: net::ERR_INVALID_URL
speedscope.6f107512.js:183 Failed to load format TypeError: Failed to fetch
```
If this feature sounds good, I'm happy to try working on it.
Contributor guide
Research direction
Start by tracing the existing #profileURL handling and the data: URL failure described in the issue. Determine how an embedded profileBlob should be encoded, decoded, and loaded within browser URL limits. Done means a generated link can open the embedded trace without importing a file or relying on a third-party service.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- typescript
- Domain
- frontend, web-dev
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100