Skip to content

fix(FilterNavigatorBar): clip overflow so many breadcrumbs do not expand the parent#6085

Merged
mstange merged 1 commit into
firefox-devtools:mainfrom
spokodev:fix/filter-navigator-bar-overflow
Jun 4, 2026
Merged

fix(FilterNavigatorBar): clip overflow so many breadcrumbs do not expand the parent#6085
mstange merged 1 commit into
firefox-devtools:mainfrom
spokodev:fix/filter-navigator-bar-overflow

Conversation

@spokodev

@spokodev spokodev commented Jun 4, 2026

Copy link
Copy Markdown
Contributor

Fixes #6028.

Without overflow: hidden, the breadcrumb bar's intrinsic min-content width (sum of all nowrap children) propagates up through the flex column parent and forces #flame-graph-tab to grow horizontally past the viewport. On the profile shared in the issue (https://share.firefox.dev/3RKVQPY) the tab ends up around 15k px wide and gains a horizontal scrollbar.

The change is one CSS line on .filterNavigatorBar in src/components/shared/FilterNavigatorBar.css:

   display: flex;
+  overflow: hidden;
   height: 24px;

Items inside the bar already have text-overflow: ellipsis on .filterNavigatorBarItemContent, so clipping at the bar level is the intended behaviour. The pre-existing comment in this file explicitly noted that overflow: hidden was omitted to preserve a fade-out animation on items at the end; that animation has since been removed, so the constraint no longer applies. The comment is updated to describe the current reason for overflow: hidden.

Verification

  • yarn ts clean
  • yarn lint-css clean (the stylelint order/properties-order rule wants overflow directly after display)
  • yarn fmt-check clean
  • yarn lint-js clean
  • yarn license-check clean
  • Targeted tests green: yarn test FilterNavigatorBar|ProfileFilterNavigator|FlameGraph -> 2 suites, 19 tests, 9 snapshots, all pass. Snapshots are unchanged because the React structure is the same; the fix is CSS only.

This is a CSS-only fix, so there is no unit test surface inside Jest. The profile from the issue is the manual verification path: load it into a local dev server before and after the change and observe whether #flame-graph-tab overflows.

Related

…and the parent

Without overflow: hidden the bar's intrinsic min-content width (sum of all
nowrap children) propagates up through the flex column parent and makes the
flame-graph tab grow horizontally past the viewport. With many breadcrumbs
the tab ends up around 15k px wide and gains a horizontal scrollbar.

Items inside the bar already have text-overflow: ellipsis on
.filterNavigatorBarItemContent, so clipping at the bar level is the
intended behaviour. The original comment noted that overflow was omitted
to preserve a fade-out animation on items at the end; that animation has
since been removed, so the constraint no longer applies.

Closes firefox-devtools#6028
@mstange

mstange commented Jun 4, 2026

Copy link
Copy Markdown
Contributor

Thank you! I noticed this too recently.

@codecov

codecov Bot commented Jun 4, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 83.70%. Comparing base (3d1ca29) to head (cef92f1).
⚠️ Report is 1 commits behind head on main.

Additional details and impacted files
@@           Coverage Diff           @@
##             main    #6085   +/-   ##
=======================================
  Coverage   83.70%   83.70%           
=======================================
  Files         337      337           
  Lines       35575    35575           
  Branches     9973     9878   -95     
=======================================
  Hits        29778    29778           
  Misses       5369     5369           
  Partials      428      428           

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@mstange mstange marked this pull request as ready for review June 4, 2026 14:14
@mstange mstange merged commit 0d3c35c into firefox-devtools:main Jun 4, 2026
23 checks passed
spokodev added a commit to spokodev/spoko-studio that referenced this pull request Jun 4, 2026
Activates /upstream page in header nav (gate publishedCount >= 3 now satisfied):

- amannn/next-intl#2330 — URL-safe base64 for auto-generated message keys
- raycast/extensions#28425 — Hong Kong and Macau ISO codes for own flags
- firefox-devtools/profiler#6085 — clip flame-graph filter bar overflow

EN + UK summaries hand-authored; six other locales seeded as EN stubs
pending pnpm translate polish.
@canova canova mentioned this pull request Jun 16, 2026
canova added a commit that referenced this pull request Jun 16, 2026
Changes:

[Nazım Can Altınova] Fix call node context menu being hidden behind
source view bottom box (#6045)
[Nazım Can Altınova] Pass `--use-env-proxy` only when the node version
is >= 24 (#6064)
[fatadel] Upgrade @firefox-devtools/react-contextmenu to 5.2.4 (#6066)
[Markus Stange] Switch profiler-edit from minimist to commander (#6065)
[Markus Stange] Support reading profiles from JsonSlabs files (#6037)
[Florian Quèze] Don't fail profile processing when a marker's stack
field is not a backtrace (#6069)
[fatadel] Replace the footer-links overlay with a settings menu (#6042)
[fatadel] Upgrade @types/node to match Node 24 (#6070)
[fatadel] Remove unused undici-types package (#6074)
[cathaysia] Update isLocalURL to include LAN addresses, .local domains,
and hostn… (#5973)
[Markus Stange] Fix from-url with binary profiles (#6072)
[fatadel] Upgrade to React 19 (#6067)
[Markus Stange] Add an insertStackLabels helper. (#6076)
[fatadel] Drive counter tooltips from a tooltipRows schema (#6023)
[fatadel] Add TrackPower--tooltip-average-power-microwatt (#6080)
[Markus Stange] Downgrade to React 19.1 to fix unusable dev build
performance. (#6082)
[Nazım Can Altınova] Add source map symbolication and source view
support (#6018)
[spokodev] fix(FilterNavigatorBar): clip overflow so many breadcrumbs do
not expand the parent (#6085)
[Markus Stange] Move paddings inside the tree header cells. (#6002)
[Markus Stange] Add an --insert-label-frames argument to the
profiler-edit tool (#5966)
[Markus Stange] Stop printing "error: too many arguments" during tests.
(#6088)
[Markus Stange] More additions to profiler-edit, for sp3 profiles
(#6009)
[Nazım Can Altınova] Do not rely on localized texts in the settings menu
tests (#6101)

And special thanks to our localizers:

be: Andrei Mukamolau
de: Ger
de: Michael Köhler
de: Ralf Duehnfahr
el: Jim Spentzos
en-CA: chutten
en-GB: Ian Neal
es-CL: ravmn
fr: Théo Chevalier
fr: wy
fur: Fabio Tomat
fy-NL: Fjoerfoks
ia: Melo46
it: Francesco Lodolo [:flod]
nl: Mark Heijl
ru: Valery Ledovskoy
sr: Марко Костић (Marko Kostić)
sv-SE: Andreas Pettersson
tr: Grk
tr: Selim Şumlu
zh-CN: Olvcpr423
zh-TW: Pin-guang Chen
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.

Flame graph: Large number of breadcrumbs expands graph width excessively

2 participants