Skip to content

Deploy July 9, 2026#6156

Merged
canova merged 53 commits into
productionfrom
main
Jul 9, 2026
Merged

Deploy July 9, 2026#6156
canova merged 53 commits into
productionfrom
main

Conversation

@canova

@canova canova commented Jul 9, 2026

Copy link
Copy Markdown
Member

Main | Deploy preview

Changes:

[Nazım Can Altınova] Bump profiler-cli version to 0.4.0 (#6132)
[Florian Quèze] Add "/" and "f" keyboard shortcuts to focus the panel filter box (#6025)
[Markus Stange] Change profile.shared.stackTable.prefix to prefixOffset (delta from current index) (#6089)
[Sky Ning] Add workflow to insert PR preview links (#6133)
[Markus Stange] Implement column sorting in the marker table (#6083)
[Markus Stange] Make it easier to create upside-down flame graphs (#6128)
[Markus Stange] Use appropriate highlighter dialects for ts + jsx (#6141)
[cathaysia] style: add .editorconfig (#6142)
[Nazım Can Altınova] Prevent long source URLs from overflowing the code error overlay (#6147)
[Nazım Can Altınova] Extract a runCommand helper for profiler-cli command handlers (#6148)
[cathaysia] feat(theme): add color-scheme meta (#6150)
[Nazım Can Altınova] Add an early throw for the this.querier and remove the non-null asserts in the cli codebase (#6145)
[cathaysia] feat: invert call stack in flame graph to render as icicle graph (#6090)
[skylarkning] Improve preview link discovery (#6149)
[Nazım Can Altınova] 🔃 Sync: l10n -> main (July 9, 2026) (#6155)

And special thanks to our localizers:

de: Michael Köhler
el: Jim Spentzos
en-GB: Ian Neal
es-CL: ravmn
fr: Théo Chevalier
fy-NL: Fjoerfoks
ia: Melo46
it: Francesco Lodolo [:flod]
nl: Fjoerfoks
ru: Valery Ledovskoy
tr: Nazım Can Altınova
zh-TW: Pin-guang Chen

Firefox Profiler [bot] and others added 30 commits June 29, 2026 09:46
Co-authored-by: depfu[bot] <23717796+depfu[bot]@users.noreply.github.com>
"/" now focuses the filter input on any panel that has one (Call Tree,
Flame Graph, Stack Chart, Marker Chart, Marker Table, Network Chart).
The shortcut is discoverable through the input placeholder, which now
reads "Enter filter terms (/)".

"f" is an additional undocumented shortcut with the same effect, but
only on panels where "f" is not already used as a call node transform
shortcut (i.e. Marker Chart, Marker Table and Network Chart). It is
opt-in via a new alsoFocusOnF prop on PanelSearch.

Both shortcuts are no-ops when the user is already typing in an input,
textarea or contenteditable element, and when modifier keys are held.
…), Dutch (nl), Italian (it)

Co-authored-by: Théo Chevalier <theo@theochevalier.org> (fr)
Co-authored-by: Pin-guang Chen <petercpg@mail.moztw.org> (zh-TW)
Co-authored-by: Fjoerfoks <fryskefirefox@gmail.com> (nl)
Co-authored-by: Francesco Lodolo [:flod] <flod+pontoon@mozilla.com> (it)
Co-authored-by: Jim Spentzos <jimspentzos2000@gmail.com> (el)
Co-authored-by: Fjoerfoks <fryskefirefox@gmail.com> (fy-NL)
Co-authored-by: Michael Köhler <michael.koehler1@gmx.de> (de)
Co-authored-by: Ian Neal <iann_bugzilla@blueyonder.co.uk> (en-GB)
Co-authored-by: Valery Ledovskoy <valery@ledovskoy.com> (ru)
Now we use `-1` (instead of `null`) to indicate that a stack node is a root.

This only changes the derived `StackTable`; the `RawStackTable` stored in
the files still uses a regular array with nulls.
It's not used by any TreeView users yet.

The next commit will use it for the marker table.
The intention is to also use it for the function list.
The sort is also persisted in the URL.
Co-authored-by: Melo46 <melo@carmu.com> (ia)
Replace `RawStackTable.prefix` with a `prefixOffset` column. For each
stack i, `prefixOffset[i] === 0` means i is a root, and `prefixOffset[i]
=== k` (with k > 0) means i's parent is at index i - k. All values are
non-negative because the stack table is stored in topological order.

This results in large size savings after gzipping, because chains of
`1,1,1,1` compress much better than chains of `123,124,125,126`.

It's common to have these "immediate precedent is the prefix" chains
because of how the stack table is usually created: You have a list of
frames and you want to make a stack node for it. You find an existing
stack node for a prefix that already exists, and then you create the
other stack nodes for the remainder. Those new stack nodes form such
a chain.

The `prefixOffset` change is only made for the `RawStackTable`, i.e. for
what we store in the file.

The derived `StackTable` still uses `prefix`, with `-1` indicating roots.
…urrent index) (#6089)

Another new version on top of #6087:

- v66: Change stackTable.prefix to prefixOffset (with 0 for root nodes
and `i - prefix[i]` offsets for non-roots)

Here's how this change impacts profile sizes and loading times on this
profile:
https://storage.googleapis.com/profiler-get-symbols-fixtures/large-speedometer3-profile.json.gz
(with [this corresponding size
profile](https://share.firefox.dev/49IHi9U))

| Version | .jslb.gz size | .jslb size | Load time | Profile of it
loading |

|---------|---------------|------------|-------------|-----------------------------------|
| 64 | 122 MB | 605 MB | 7.6 seconds | https://share.firefox.dev/4ogUKba
|
| 65 | 125 MB | 544 MB | 6.0 seconds | https://share.firefox.dev/3Qopiem
|
| 66 | 89 MB | 468 MB | 5.3 seconds | https://share.firefox.dev/49JetKx
|

125 MB -> 89 MB on the compressed size! That's a 29% reduction!
## Summary

Adds a GitHub Actions workflow that automatically inserts profiler
preview links into PR descriptions when they are missing.

The workflow:

- Runs on `pull_request_target`
- Checks whether the PR body already has a deploy preview link
- Looks for profiler/share links in the PR body or linked issue
body/comments
- Resolves `share.firefox.dev` links to the final profiler path
- Adds `[Main] | [Deploy preview]` links to the PR description

## Testing

- `node --test .github/scripts/add-preview-links.test.mjs`
- `node --check .github/scripts/add-preview-links.mjs`
- `node --check .github/scripts/add-preview-links.test.mjs`
- Live-tested on my fork with a temporary issue and PR; the workflow
successfully updated the PR body with the expected preview links.
… flame graph code.

For the non-inverted call node info, the two are equivalent.

But if we want to use the flame graph on an inverted call node info,
such as for the "called by" view in the function list, the old code
would not work because the callNodeTable is always the non-inverted
call node table. So this change removes one barrier for inverted
flame graphs.
startsAtBottom={true} is the regular flame graph layout.
startsAtBottom={false} can be used for icicle-style flame graphs.
This PR extracts some ideas from #6090. But it doesn't add UI to show an
inverted flame graph.

I'm planning to have an upside-down flame graph in the function list
(for the callers of the selected function), so the function list PR
depends on this one.
Co-authored-by: depfu[bot] <23717796+depfu[bot]@users.noreply.github.com>
mstange and others added 23 commits July 6, 2026 07:53
<!-- profiler-preview-links:start -->
[Main](https://main--perf-html.netlify.app/) | [Deploy
preview](https://deploy-preview-6141--perf-html.netlify.app/)
<!-- profiler-preview-links:end -->

I noticed incorrect highlighting in the source view for a .ts file (from
a source map).
Signed-off-by: loongtao.zhang <loongtao.zhang@outlook.com>
Co-authored-by: Nazım Can Altınova <canaltinova@gmail.com>
Very long source file URLs broke the source code error overlay. The URL
was rendered as one unbreakable token that pushed the box past its
max-width horizontally. This commit fixes that so it doesn't show the
whole url and makes sure that the wrapping happens properly.
This is mostly a cleanup commit. For every command action we pretty much
had the same code at the end. This patch adds a shared `runCommand`
function that sends the command and prints the formatted result in one
place to reduce the code duplication.
Co-authored-by: ravmn <ravmn@ravmn.cl> (es-CL)
Signed-off-by: loongtao.zhang <loongtao.zhang@outlook.com>
<!-- profiler-preview-links:start -->
[Main](https://main--perf-html.netlify.app/) | [Deploy
preview](https://deploy-preview-6150--perf-html.netlify.app/)
<!-- profiler-preview-links:end -->

add color-scheme meta so that allow disable dark-reader.

Since firefox-profiler already has a dark theme, you can disable
datareader for a better visual experience.

before:

<img width="918" height="206" alt="image"
src="https://github.com/user-attachments/assets/09cc2ee6-e6b9-44b6-80ce-8f42852821b2"
/>

after:

<img width="738" height="130" alt="image"
src="https://github.com/user-attachments/assets/23a9e243-bde6-434f-98b7-f4566cd2e6c2"
/>

Oddly enough, before this patch was applied, dark-reader sometimes
recognized dark mode and sometimes it didn't.

However, this patch gives dark-reader a deterministic behavior in any
case.
…lameGraph

As requested by the maintainer, this makes the invert state distinct for the call tree and flame graph panels so they default independently to non-inverted when switching tabs.
<img width="468" height="186" alt="image"
src="https://github.com/user-attachments/assets/0227c0fa-271f-47f4-b88d-a6152bb1f4ff"
/>

add a invert callstack checkbox.

before:

<img width="3806" height="732" alt="image"
src="https://github.com/user-attachments/assets/f531607a-321b-4289-823b-149f1985ef30"
/>

after:
<img width="3834" height="776" alt="image"
src="https://github.com/user-attachments/assets/bf9dd906-a04d-4b9d-82e5-e3cc43990a2f"
/>

fix #6077
## Summary

- The preview-link bot now will follow referenced PRs as well as issues.
- Let it reuse paths from existing Main and Deploy preview links.
- Keep broken share.firefox.dev links non-fatal so the bot can keep
looking or fall back to `/`.

## Example

If PR `#6137` says `Follow-up to #6017`, and `#6017` has:

```markdown
[Main](https://main--perf-html.netlify.app/public/abc/)
```

then the bot can add this to PR `#6137`:

```markdown
[Main](https://main--perf-html.netlify.app/public/abc/) | [Deploy preview](https://deploy-preview-6137--perf-html.netlify.app/public/abc/)
```

## Test

```bash
node --test .github/scripts/add-preview-links.test.mjs
```
Co-authored-by: depfu[bot] <23717796+depfu[bot]@users.noreply.github.com>
Co-authored-by: Nazım Can Altınova <canaltinova@gmail.com> (tr)
Updated locales: be, de, el, en-CA, en-GB, es-CL, fr, fur, fy-NL, ia,
it, kab, nl, pt-BR, ru, sr, sv-SE, tr, uk, zh-CN, zh-TW.
@canova canova requested review from a team and fatadel as code owners July 9, 2026 13:45
@canova canova removed request for a team and fatadel July 9, 2026 13:50
@canova canova merged commit 03c34e0 into production Jul 9, 2026
41 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants