Skip to content

[Deploy] Comparison reports#6012

Draft
mstange wants to merge 38 commits intofirefox-devtools:mainfrom
mstange:comparison-reports
Draft

[Deploy] Comparison reports#6012
mstange wants to merge 38 commits intofirefox-devtools:mainfrom
mstange:comparison-reports

Conversation

@mstange
Copy link
Copy Markdown
Contributor

@mstange mstange commented May 8, 2026

No description provided.

mstange and others added 30 commits May 7, 2026 15:50
This allows applying wasm symbols to existing profiles that were captured
with a stripped wasm bundle.

The script looks for functions with names of the shape `wasm-function[123]`,
which is what Firefox uses when the wasm file doesn't have a names section.

Usage:

```
yarn build-node-tools && \
node node-tools-dist/profiler-edit.js -i input.json.gz \
--symbolicate-wasm http://host/a.wasm=./a-unstripped.wasm \
--symbolicate-wasm http://host/b.wasm=./b-unstripped.wasm \
-o out.json.gz
```
This command takes a .toml file and adds label frames to a profile based on 
matching function names.

We want to use this for profiles from samply, to insert labels for DOM calls 
and Layout / Style / etc.

Example:
Before: https://share.firefox.dev/48wEADM
After: https://share.firefox.dev/3P9d3BQ

The toml file has to be provided by the user, because the matched function
names are specific to the program being profiled.

Here's an example toml file:
https://gist.github.com/mstange/827c40404c987bc566b8b324efc0a04f
When we make columns sortable, this will offer a bigger click
target and mousedown feedback area.
mstange added 8 commits May 8, 2026 15:12
…ings

- Fix wrong tab slug ('calltree' → 'function-list') in _onEnterOrDoubleClick
  for SelfWing, UpperWingFlameGraph, LowerWing, and UpperWing so that
  double-clicking a call node opens the bottom box for the correct tab
- Add a contextMenuId prop to FlameGraph (defaulting to 'CallNodeContextMenu')
  so wings can specify a different context menu
- Wire up FunctionListContextMenu for UpperWingFlameGraph and SelfWing:
  right-clicking now dispatches changeRightClickedFunctionIndex so the
  FunctionListContextMenu (already rendered in Details) can respond
The tooltip uses `position: fixed` which interprets `left/top` as viewport-relative,
but `ChartCanvas` was storing `event.pageX/pageY` (document-relative, including 
scroll offsets). In a non-scrolling page these match, but inside a scrollable 
container like our benchmark page they diverge by `window.scrollY`, dragging the 
tooltip down.

Switched the state field from `pageX/pageY` to `clientX/clientY`.
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.

1 participant