RPP: ImagePaintingHandler

In the legacy engine we have the ability to associate DecodeImage events
to PaintImage events. The main reason for this is so if the user clicks a
DecodeImage event, we can show them the right DOM node via the
BackendNodeID, but the BackendNodeID is stored on the PaintImage event,
not the DecodeImage.

Sometimes we can do this directly and go from DecodeImage>PaintImage.

However, other times we need to detour via two other events:
DrawLazyPixelRef and DecodeLaxyPixelRef.

When we see a DrawLazyPixelRef, we associate it to the last PaintImage
event on that thread via the LazyPixelRef key.

When we see a DecodeLaxyPixelRef, we can find its last PaintImage event
by looking up the LazyPixelRef key.

All of this means that when we get a DecodeImage event, we can either
go:

=> DecodeImage > PaintImage

or:

=> DecodeImage > DecodeLaxyPixelRef > PaintImage (via LazyPixelRef key
from the DrawLazyPixelRef event)

Bug: 336237398
Change-Id: I8676d57f30f09719333610b79e9b88635f6e5758
Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/5471673
Auto-Submit: Jack Franklin <jacktfranklin@chromium.org>
Reviewed-by: Andres Olivares <andoli@chromium.org>
Commit-Queue: Jack Franklin <jacktfranklin@chromium.org>
6 files changed
tree: 962b52613dcfd5904e4542288841d540d625b9b3
  1. .vscode/
  2. build_overrides/
  3. config/
  4. docs/
  5. extension-api/
  6. extensions/
  7. front_end/
  8. inspector_overlay/
  9. node_modules/
  10. scripts/
  11. test/
  12. third_party/
  13. v8/
  14. .clang-format
  15. .editorconfig
  16. .eslintignore
  17. .eslintrc.js
  18. .git-blame-ignore-revs
  19. .gitattributes
  20. .gitignore
  21. .gitmodules
  22. .gn
  23. .mailmap
  24. .npmignore
  25. .npmrc
  26. .style.yapf
  27. .stylelintignore
  28. .stylelintrc.json
  29. AUTHORS
  30. BUILD.gn
  31. codereview.settings
  32. DEPS
  33. LICENSE
  34. OWNERS
  35. package-lock.json
  36. package.json
  37. PRESUBMIT.py
  38. README.md
  39. tsconfig.json
  40. WATCHLISTS
README.md

Chrome DevTools frontend

npm package

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

Source code and documentation

The frontend is available on chromium.googlesource.com. 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