Link to script which causes a frame to be marked as an ad frame

For frames which are labelled as being an ad, if the backend sends
information about `adScriptId` and `debuggerId`, use this info to create
a link to the script from the frame details view. This link points from
the ad frame to the (bottom-most) script which is responsible for the
frame to be labelled as an ad.

In order to achieve this, we need to
1) keep track of which `debuggerId` corresponds to which `target`. We
do this in `TargetManager`.
2) not lose `adScriptId` and `debuggerId` during a frame's OOPIF
transfer. We take care of this in the `FrameManager`, which already has
been doing analogous work for stack traces.

Screencast: https://i.imgur.com/gF56hEc.mp4

This is a follow-up to https://crrev.com/c/3168916

Bug: 1217041
Change-Id: I99ce83567389f076130d8b48af0f2bb9bf6a3111
Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/3653565
Reviewed-by: Benedikt Meurer <bmeurer@chromium.org>
Commit-Queue: Danil Somsikov <dsv@chromium.org>
8 files changed
tree: 949308f1038ad18a11135a79b50a40f495fe16d0
  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. ARCHITECTURE.md
  27. AUTHORS
  28. BUILD.gn
  29. codereview.settings
  30. DEPS
  31. LICENSE
  32. OWNERS
  33. package-lock.json
  34. package.json
  35. PRESUBMIT.py
  36. README.md
  37. tsconfig.json
  38. 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.

Design guidelines

Please be aware that DevTools follows additional development guidelines.

Issue triage

The issue triage guidelines can be found in docs/triage_guidelines.md.

Workflows

Instructions to set up, use, and maintain a DevTools frontend checkout can be found in docs/workflows.md.

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