jlfwong / jlfwong/speedscope

Feature request: embed full input in URL

Open
#489 0 comments 0 reactions 0 assignees View on GitHub
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.