Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 5 additions & 5 deletions docs-developer/call-tree.md
Original file line number Diff line number Diff line change
Expand Up @@ -67,9 +67,9 @@ One key point of the aggregation done in the call tree is that it's focused on w

Imagine this simplified example of 3 samples of mixed C++, JavaScript Code (js), and JIT optimized JavaScript (JIT). The functions are all labeled as to their implementation.

| Sample index | Sample's stack |
| ------------ | ---------------------------------------------------------------------------------------------- |
| 0 | `JS::RunScript [c++] ➡ onLoad [js] ➡ a [js] ➡ b [js]` |
| Sample index | Sample's stack |
| ------------ | ------------------------------------------------------------------------------------------ |
| 0 | `JS::RunScript [c++] ➡ onLoad [js] ➡ a [js] ➡ b [js]` |
| 1 | `JS::RunScript [c++] ➡ onLoad [js] ➡ js::jit::IonCannon [c++] ➡ a [JIT] ➡ b [JIT]` |
| 2 | `JS::RunScript [c++] ➡ onLoad [js] ➡ js::jit::IonCannon [c++] ➡ a [JIT] ➡ b [JIT]` |

Expand Down Expand Up @@ -113,8 +113,8 @@ Now, taking the stacks and building a call tree produces the following:

This is the correct tree of what you would want to see. But since we are mixing languages together into the same stack system, it might be nice to view only JS functions. In order to do that we hide any C++ stacks, and assign them to the nearest JS stack. Our tables would be updated to look like the following.

| Sample index | Sample's stack |
| ------------ | --------------------------------------- |
| Sample index | Sample's stack |
| ------------ | ------------------------------------- |
| 0 | `onLoad [js] ➡ a [js] ➡ b [js]` |
| 1 | `onLoad [js] ➡ a [JIT] ➡ b [JIT]` |
| 2 | `onLoad [js] ➡ a [JIT] ➡ b [JIT]` |
Expand Down
6 changes: 3 additions & 3 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -124,7 +124,7 @@
"@types/common-tags": "^1.8.4",
"@types/jest": "^30.0.0",
"@types/minimist": "^1.2.5",
"@types/node": "^22.19.1",
"@types/node": "^22.19.2",
"@types/query-string": "^6.3.0",
"@types/react": "^18.3.27",
"@types/react-dom": "^18.3.1",
Expand All @@ -151,7 +151,7 @@
"eslint-config-prettier": "^10.1.8",
"eslint-import-resolver-alias": "^1.1.2",
"eslint-plugin-import": "^2.32.0",
"eslint-plugin-jest": "^29.1.0",
"eslint-plugin-jest": "^29.2.1",
"eslint-plugin-jest-dom": "^5.5.0",
"eslint-plugin-jest-formatting": "^3.1.0",
"eslint-plugin-react": "^7.37.5",
Expand All @@ -175,7 +175,7 @@
"postcss": "^8.5.6",
"postcss-loader": "^8.2.0",
"postinstall-postinstall": "^2.1.0",
"prettier": "^3.6.2",
"prettier": "^3.7.4",
"rimraf": "^6.1.2",
"style-loader": "^4.0.0",
"stylelint": "^16.26.1",
Expand Down
6 changes: 3 additions & 3 deletions src/components/app/ProfileLoaderAnimation.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -60,9 +60,9 @@ class ProfileLoaderAnimationImpl extends PureComponent<ProfileLoaderAnimationPro
const showLoader = Boolean(loadingMessage);
const showBackHomeLink = Boolean(
'additionalData' in view &&
view.additionalData &&
view.additionalData.message &&
dataSource === 'from-file'
view.additionalData &&
view.additionalData.message &&
dataSource === 'from-file'
);

return (
Expand Down
5 changes: 2 additions & 3 deletions src/profile-logic/process-profile.ts
Original file line number Diff line number Diff line change
Expand Up @@ -1989,9 +1989,8 @@ export async function unserializeProfileOfArbitraryFormat(
if (isArtTraceFormat(profileBytes)) {
arbitraryFormat = convertArtTraceProfile(profileBytes);
} else if (verifyMagic(SIMPLEPERF_MAGIC, profileBytes)) {
const { convertSimpleperfTraceProfile } = await import(
'./import/simpleperf'
);
const { convertSimpleperfTraceProfile } =
await import('./import/simpleperf');
arbitraryFormat = convertSimpleperfTraceProfile(profileBytes);
} else {
try {
Expand Down
40 changes: 26 additions & 14 deletions src/types/gecko-profile.ts
Original file line number Diff line number Diff line change
Expand Up @@ -140,9 +140,11 @@ export type GeckoSamples = {
// milliseconds since the last event was processed in this
// thread's event loop at the time that the sample was taken
Milliseconds,
// CPU usage value of the current thread.
// It's present only when the CPU Utilization feature is enabled in Firefox.
number | null,
(
// CPU usage value of the current thread.
// It's present only when the CPU Utilization feature is enabled in Firefox.
number | null
),
]
>;
};
Expand Down Expand Up @@ -206,19 +208,29 @@ export type GeckoFrameTable = {
IndexIntoStringTable,
// for label frames, whether this frame should be shown in "JS only" stacks
boolean,
// innerWindowID of JS frames. See the comment inside FrameTable in src/types/profile.js
// for more information.
null | number,
(
// innerWindowID of JS frames. See the comment inside FrameTable in src/types/profile.js
// for more information.
null | number
),
// for JS frames, an index into the string table, usually "Baseline" or "Ion"
null | IndexIntoStringTable,
// The line of code
null | number,
// The column of code
null | number,
// index into profile.meta.categories
null | number,
// index into profile.meta.categories[category].subcategories. Always non-null if category is non-null.
null | number,
(
// The line of code
null | number
),
(
// The column of code
null | number
),
(
// index into profile.meta.categories
null | number
),
(
// index into profile.meta.categories[category].subcategories. Always non-null if category is non-null.
null | number
),
]
>;
};
Expand Down
4 changes: 1 addition & 3 deletions src/utils/query-api.ts
Original file line number Diff line number Diff line change
Expand Up @@ -120,9 +120,7 @@ export interface ExternalCommunicationCallbacks {
*
* It also takes an object with callbacks, for loading indicators.
*/
export class RegularExternalCommunicationDelegate
implements ExternalCommunicationDelegate
{
export class RegularExternalCommunicationDelegate implements ExternalCommunicationDelegate {
_browserConnection: BrowserConnection | null;
_callbacks: ExternalCommunicationCallbacks;

Expand Down
24 changes: 12 additions & 12 deletions yarn.lock
Original file line number Diff line number Diff line change
Expand Up @@ -2338,10 +2338,10 @@
dependencies:
"@types/node" "*"

"@types/node@*", "@types/node@>=13.7.0", "@types/node@^22.19.1":
version "22.19.1"
resolved "https://registry.yarnpkg.com/@types/node/-/node-22.19.1.tgz#1188f1ddc9f46b4cc3aec76749050b4e1f459b7b"
integrity sha512-LCCV0HdSZZZb34qifBsyWlUmok6W7ouER+oQIGBScS8EsZsQbrtFTUrDX4hOl+CS6p7cnNC4td+qrSVGSCTUfQ==
"@types/node@*", "@types/node@>=13.7.0", "@types/node@^22.19.2":
version "22.19.2"
resolved "https://registry.yarnpkg.com/@types/node/-/node-22.19.2.tgz#2f0956fba46518aaf7578c84e37bddab55f85d01"
integrity sha512-LPM2G3Syo1GLzXLGJAKdqoU35XvrWzGJ21/7sgZTUpbkBaOasTj8tjwn6w+hCkqaa1TfJ/w67rJSwYItlJ2mYw==
dependencies:
undici-types "~6.21.0"

Expand Down Expand Up @@ -5083,10 +5083,10 @@ eslint-plugin-jest-formatting@^3.1.0:
resolved "https://registry.yarnpkg.com/eslint-plugin-jest-formatting/-/eslint-plugin-jest-formatting-3.1.0.tgz#b26dd5a40f432b642dcc880021a771bb1c93dcd2"
integrity sha512-XyysraZ1JSgGbLSDxjj5HzKKh0glgWf+7CkqxbTqb7zEhW7X2WHo5SBQ8cGhnszKN+2Lj3/oevBlHNbHezoc/A==

eslint-plugin-jest@^29.1.0:
version "29.1.0"
resolved "https://registry.yarnpkg.com/eslint-plugin-jest/-/eslint-plugin-jest-29.1.0.tgz#ba59f94bb303fe72417d54232842148f305ab6be"
integrity sha512-LabxXbASXVjguqL+kBHTPMf3gUeSqwH4fsrEyHTY/MCs42I/p9+ctg09SJpYiD8eGaIsP6GwYr5xW6xWS9XgZg==
eslint-plugin-jest@^29.2.1:
version "29.2.1"
resolved "https://registry.yarnpkg.com/eslint-plugin-jest/-/eslint-plugin-jest-29.2.1.tgz#e56c5f79b6475dafa551ce8e762ac25d4bd21ea4"
integrity sha512-0WLIezrIxitUGbjMIGwznVzSIp0uFJV0PZ2fiSvpyVcxe+QMXKUt7MRhUpzdbctnnLwiOTOFkACplgB0wAglFw==
dependencies:
"@typescript-eslint/utils" "^8.0.0"

Expand Down Expand Up @@ -10197,10 +10197,10 @@ prelude-ls@^1.2.1:
resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396"
integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==

prettier@^3.6.2:
version "3.6.2"
resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.6.2.tgz#ccda02a1003ebbb2bfda6f83a074978f608b9393"
integrity sha512-I7AIg5boAr5R0FFtJ6rCfD+LFsWHp81dolrFD8S79U9tb8Az2nGrJncnMSnys+bpQJfRUzqs9hnA81OAA3hCuQ==
prettier@^3.7.4:
version "3.7.4"
resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.7.4.tgz#d2f8335d4b1cec47e1c8098645411b0c9dff9c0f"
integrity sha512-v6UNi1+3hSlVvv8fSaoUbggEM5VErKmmpGA7Pl3HF8V6uKY7rvClBOJlH6yNwQtfTueNkGVpOv/mtWL9L4bgRA==

pretty-bytes@^5.3.0:
version "5.6.0"
Expand Down