Skip to content

Conversation

@canova
Copy link
Member

@canova canova commented Oct 21, 2025

Changes:

[Markus Stange] Streamline some code related to profile publishing (#5608)
[Nazım Can Altınova] Implement fetching JS sources from browser via WebChannel (#5506)
[Nisarg Jhaveri] Remove "Back to home" link on import errors when not loading from file (#5279)
[Florian Quèze] Show the 'inl' badge on inlined frames showing in marker stacks. (#5628)
[Florian Quèze] Add a 'filter' button next to the tooltip label of markers. (#5626)

And thanks to our localizers:

de: Michael Köhler
el: Jim Spentzos
en-GB: Ian Neal
es-CL: ravmn
fr: brumedautomne127
fur: Fabio Tomat
fy-NL: Fjoerfoks
ia: Melo46
it: Francesco Lodolo [:flod]
nl: Mark Heijl
pt-BR: Marcelo Ghelman
ru: Valery Ledovskoy
sv-SE: Andreas Pettersson
tr: Grk, Selim Şumlu
zh-CN: Olvcpr423
zh-TW: Pin-guang Chen

Firefox Profiler [bot] and others added 30 commits September 6, 2025 08:03
Co-authored-by: Selim Şumlu <selim@sum.lu> (tr)
Co-authored-by: Selim Şumlu <selim@sum.lu> (tr)
Co-authored-by: Grk <gu0townkg@relay.firefox.com> (tr)
The checkbox knows whether it's changing to checked or unchecked,
we don't want the reducer to make a different choice than the
checkbox.
Redux allows us to cleanly separate asynchronous work from synchronous state:
Anything that happens asynchronously should happen in the action creators.
The Redux state, and the selectors, should always synchronously reflect the
"current truth" about the world.

Our profile publishing code was calling the asynchronous "compress" function
from within a selector. This change moves this into an action creator.
[Production](https://profiler.firefox.com/public/283zgs51v5kc3yxtjkm5w2x249468x99ydds610/flame-graph/?globalTrackOrder=1w46705&hiddenGlobalTracks=5&hiddenLocalTracksByPid=5472-0wAiAkwBhBjwE6E8wEhEjwFiFkwHv~5511-0wyp~5607-0wxhxjwCj~5696-0wxj~5855-0wCbCdwDi~6253-0whkwy4&localTrackOrderByPid=5472-HnwHpHbBaBcBnBpAnEhEfEgBlC8FeDqBkEqD7E5CjCkghy6z7zdA1EaA2A3E3EvF0FlF1FnF2FoG3G4FpG5GbGcG7GdGfGgGeGhwGoGuGpwGtGvH2H0H1H3H4HhwHmAuEuFawFcH7HvCtAgDcAoAsAtC7ClCsDsHrHsE0CuBgAbwAeAvB0B2wB4B6wB9BbBdBoBqwC2ErEtAiE9ElEmEoEjHfHgA7wAaF3F4jkA5A6DrDtDuAjAkF5wF9FvwG2AlAqB1G8EeHdC3FdC5DeDfEcE1E7ArBjEsHqHcAfCqCpCiDpC9DgCawChDhwDoBhAhilwy5y7wz6z8wzczewA0HaE2C4FkBeG9HtEdA4BfDdHeEpBmE6FfwFiFqwFtGaEkH9FmG6H8EbEnD8wDaC6CvwD6f0weBiFjFuApCrAmE8EiDvE4B5CmCnHuCoDbH5H6~6253-8mursewgy0wy2cdapx3x1n9txhwxm7x4hx5bx06oxewxgqx6wxd3w5021vliwkxnwxvy4x2y3~5855-D5DhCrC9Cagwimwox0wx8xbxcxexdxfwxhxjwxlxpwy1y4wybydwyuz0wz2z6wz8zcwzkzqwAnApwBoC6wC8CuD2CvD0DbwDdCqqCbD9Day2y3ycD1krx9xaxiz3wz5znwzpDfD7DiD6zlzmAoC2BpwC1yvjlpD4DeCsD8swvxmwxoz9wzbD3dwf0w4b5wacCtDgCpC5C3C4CdCgwCeChCjwClCiCmwCoCc&thread=Kv&v=11)
| [Main
branch](https://main--perf-html.netlify.app/public/283zgs51v5kc3yxtjkm5w2x249468x99ydds610/flame-graph/?globalTrackOrder=1w46705&hiddenGlobalTracks=5&hiddenLocalTracksByPid=5472-0wAiAkwBhBjwE6E8wEhEjwFiFkwHv~5511-0wyp~5607-0wxhxjwCj~5696-0wxj~5855-0wCbCdwDi~6253-0whkwy4&localTrackOrderByPid=5472-HnwHpHbBaBcBnBpAnEhEfEgBlC8FeDqBkEqD7E5CjCkghy6z7zdA1EaA2A3E3EvF0FlF1FnF2FoG3G4FpG5GbGcG7GdGfGgGeGhwGoGuGpwGtGvH2H0H1H3H4HhwHmAuEuFawFcH7HvCtAgDcAoAsAtC7ClCsDsHrHsE0CuBgAbwAeAvB0B2wB4B6wB9BbBdBoBqwC2ErEtAiE9ElEmEoEjHfHgA7wAaF3F4jkA5A6DrDtDuAjAkF5wF9FvwG2AlAqB1G8EeHdC3FdC5DeDfEcE1E7ArBjEsHqHcAfCqCpCiDpC9DgCawChDhwDoBhAhilwy5y7wz6z8wzczewA0HaE2C4FkBeG9HtEdA4BfDdHeEpBmE6FfwFiFqwFtGaEkH9FmG6H8EbEnD8wDaC6CvwD6f0weBiFjFuApCrAmE8EiDvE4B5CmCnHuCoDbH5H6~6253-8mursewgy0wy2cdapx3x1n9txhwxm7x4hx5bx06oxewxgqx6wxd3w5021vliwkxnwxvy4x2y3~5855-D5DhCrC9Cagwimwox0wx8xbxcxexdxfwxhxjwxlxpwy1y4wybydwyuz0wz2z6wz8zcwzkzqwAnApwBoC6wC8CuD2CvD0DbwDdCqqCbD9Day2y3ycD1krx9xaxiz3wz5znwzpDfD7DiD6zlzmAoC2BpwC1yvjlpD4DeCsD8swvxmwxoz9wzbD3dwf0w4b5wacCtDgCpC5C3C4CdCgwCeChCjwClCiCmwCoCc&thread=Kv&v=11)
| [Deploy
preview](https://deploy-preview-5608--perf-html.netlify.app/public/283zgs51v5kc3yxtjkm5w2x249468x99ydds610/flame-graph/?globalTrackOrder=1w46705&hiddenGlobalTracks=5&hiddenLocalTracksByPid=5472-0wAiAkwBhBjwE6E8wEhEjwFiFkwHv~5511-0wyp~5607-0wxhxjwCj~5696-0wxj~5855-0wCbCdwDi~6253-0whkwy4&localTrackOrderByPid=5472-HnwHpHbBaBcBnBpAnEhEfEgBlC8FeDqBkEqD7E5CjCkghy6z7zdA1EaA2A3E3EvF0FlF1FnF2FoG3G4FpG5GbGcG7GdGfGgGeGhwGoGuGpwGtGvH2H0H1H3H4HhwHmAuEuFawFcH7HvCtAgDcAoAsAtC7ClCsDsHrHsE0CuBgAbwAeAvB0B2wB4B6wB9BbBdBoBqwC2ErEtAiE9ElEmEoEjHfHgA7wAaF3F4jkA5A6DrDtDuAjAkF5wF9FvwG2AlAqB1G8EeHdC3FdC5DeDfEcE1E7ArBjEsHqHcAfCqCpCiDpC9DgCawChDhwDoBhAhilwy5y7wz6z8wzczewA0HaE2C4FkBeG9HtEdA4BfDdHeEpBmE6FfwFiFqwFtGaEkH9FmG6H8EbEnD8wDaC6CvwD6f0weBiFjFuApCrAmE8EiDvE4B5CmCnHuCoDbH5H6~6253-8mursewgy0wy2cdapx3x1n9txhwxm7x4hx5bx06oxewxgqx6wxd3w5021vliwkxnwxvy4x2y3~5855-D5DhCrC9Cagwimwox0wx8xbxcxexdxfwxhxjwxlxpwy1y4wybydwyuz0wz2z6wz8zcwzkzqwAnApwBoC6wC8CuD2CvD0DbwDdCqqCbD9Day2y3ycD1krx9xaxiz3wz5znwzpDfD7DiD6zlzmAoC2BpwC1yvjlpD4DeCsD8swvxmwxoz9wzbD3dwf0w4b5wacCtDgCpC5C3C4CdCgwCeChCjwClCiCmwCoCc&thread=Kv&v=11)

I was looking at this code when I was doing the worker compression stuff
and noticed some opportunities for improvement. Nothing urgent here,
just some cleanup.

The "Simplify profile publishing flow" commit fixes one bug: If you
trigger a new compression while an existing compression is already going
on, and the new compression finishes before the old compression, then
the old compression's completion will no longer overwrite the size in
the download button with an outdated value.
This is needed for the following patches to make sure that we don't have
a circular dependency. Previously this class was only used for our own
profile processing from the gecko profile data. But in the next commits
I'm changing the profile importers to use this as well for easy profile
shared data collection.
This patch adds the sources table but it doesn't use that yet. The
following commits will be changing the funcTable and then start using
it.

Note that this gathers all sources, including the JS and native sources.
This way, we have a single source of truth for them. But this will
happen in the following patches.

This patch:
- Adds a `geckoProfile.sources` table to the gecko profile format.
- Handles the processing of gecko profile -> processed profile format.
Note that this gathers all sources, including the JS and native sources.
This way, we have a single source of truth for them.

This patch:
- Changes the `thread.funcTable` to have a `source` array instead of a
  `fileName` array.
- Changes the rest of the codebase to make sure that everything uses the
  new format.
Add an upgrader for frameTable.location changes that include JS
sourceIds in brackets.
mozilla-pontoon and others added 27 commits September 29, 2025 16:32
Co-authored-by: Olvcpr423 <oliverchan86@outlook.com> (zh-CN)
Co-authored-by: depfu[bot] <23717796+depfu[bot]@users.noreply.github.com>
Co-authored-by: Jim Spentzos <jimspentzos2000@gmail.com> (el)
Co-authored-by: brumedautomne127 <brumedautomne127@gmail.com> (fr)
Co-authored-by: depfu[bot] <23717796+depfu[bot]@users.noreply.github.com>
Co-authored-by: Nazım Can Altınova <canaltinova@gmail.com>
Co-authored-by: Valery Ledovskoy <valery@ledovskoy.com> (ru)
Co-authored-by: Fjoerfoks <fryskefirefox@gmail.com> (fy-NL)
Co-authored-by: Mark Heijl <markh@babelzilla.org> (nl)
Co-authored-by: Francesco Lodolo [:flod] <flod+pontoon@mozilla.com> (it)
Co-authored-by: Andreas Pettersson <amvpet@gmail.com> (sv-SE)
Co-authored-by: Michael Köhler <michael.koehler1@gmx.de> (de)
Co-authored-by: Pin-guang Chen <petercpg@mail.moztw.org> (zh-TW)
Co-authored-by: Melo46 <melo@carmu.com> (ia)
Co-authored-by: Ian Neal <iann_bugzilla@blueyonder.co.uk> (en-GB)
Updated locales: de, el, en-GB, es-CL, fr, fur, fy-NL, ia, it, nl,
pt-BR, ru, sv-SE, tr, zh-CN, zh-TW.
Co-authored-by: Nazım Can Altınova <canaltinova@gmail.com>
@canova canova requested a review from a team as a code owner October 21, 2025 12:58
@canova canova removed the request for review from a team October 21, 2025 12:59
@canova canova merged commit 619ce5e into production Oct 21, 2025
16 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.

7 participants