[Perf Panel Node] (Part 2/2) Don't skip the system nodes when build the callFrames

Currently, when we build the fake jsFrame events for cpuProfile, the system nodes ( idle node, garbage collector node & program node) are skipped. This CL just let them be handled like normal, so they will be displayed. The special case is garbage collector node, which has no parent, so we use the precious system node as its parent, which is same as JS profiler and other cpuProfile viewer.

This also solve the time calculation wrong problem, because in Perf panel frontend, it will auto fill the empty gap, so for example when there is no '(idle)' node, the previous function will fill the time period of '(idle)', and Perf panel also will also add this time to the previous event, so the previous function's time is amplified.

Screenshot: https://imgur.com/a/QMFyWUr
Fixed: 1382733, 1080918
Change-Id: I2f741aed7a32ab3971213605168a81857e27ede8
Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/4118545
Reviewed-by: Jack Franklin <jacktfranklin@chromium.org>
Commit-Queue: Nancy Li <nancyly@chromium.org>
1 file changed
tree: 970cbabb022f2f4e5d5554208731673a345eaa7a
  1. .vscode/
  2. build_overrides/
  3. config/
  4. docs/
  5. extension-api/
  6. front_end/
  7. inspector_overlay/
  8. node_modules/
  9. scripts/
  10. test/
  11. third_party/
  12. v8/
  13. .clang-format
  14. .editorconfig
  15. .eslintignore
  16. .eslintrc.js
  17. .gitattributes
  18. .gitignore
  19. .gn
  20. .mailmap
  21. .npmignore
  22. .npmrc
  23. .style.yapf
  24. .stylelintignore
  25. .stylelintrc.json
  26. AUTHORS
  27. BUILD.gn
  28. codereview.settings
  29. DEPS
  30. LICENSE
  31. OWNERS
  32. package-lock.json
  33. package.json
  34. PRESUBMIT.py
  35. README.md
  36. tsconfig.json
  37. WATCHLISTS
README.md

Chrome DevTools frontend

npm package

The client-side of the Chrome DevTools, including all JS & CSS to run the DevTools webapp.

Source code

The frontend is available on chromium.googlesource.com.

Project documentation

Check out the project documentation for instructions to set up, use, and maintain a DevTools front-end checkout, as well as design guidelines, and architectural documentation.

Additional references

Source mirrors

DevTools frontend repository is mirrored on GitHub.

DevTools frontend is also available on NPM as the chrome-devtools-frontend package. It's not currently available via CJS or ES modules, so consuming this package in other tools may require some effort.

The version number of the npm package (e.g. 1.0.373466) refers to the Chromium commit position of latest frontend git commit. It's incremented with every Chromium commit, however the package is updated roughly daily.

Getting in touch