Fix FrameManager's handling of OOPIF transitions

When a frame is being turned into an OOPIF, the frame is being detached
from its original target and added to a new target. Usually the order of
events is:
1) added to original target
2) added to new target
3) detached from original target

But there is no guarantee for this order of events and sometimes the
order of steps 2) and 3) is inverted (detected by a flaky test on the
Mac bot). This CL ensures that the FrameManager is able to correctly
handle both cases. This mainly means taking care of copying frame
creation stack traces.

Disable test CL: https://crrev.com/c/2862803
Update and enable test CL: https://crrev.com/c/2862770

Bug: 1202024
Change-Id: Ie42efcaf75c4aa8a0e71649c9790b23c7eff9e33
Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/2846335
Commit-Queue: Wolfgang Beyer <wolfi@chromium.org>
Reviewed-by: Sigurd Schneider <sigurds@chromium.org>
6 files changed
tree: f1b684d5e83038f184ff4fc4edf86e62629bd27a
  1. build_overrides/
  2. config/
  3. docs/
  4. front_end/
  5. inspector_overlay/
  6. node_modules/
  7. scripts/
  8. test/
  9. third_party/
  10. v8/
  11. .clang-format
  12. .editorconfig
  13. .eslintignore
  14. .eslintrc.js
  15. .gitattributes
  16. .gitignore
  17. .gn
  18. .npmignore
  19. .npmrc
  20. .style.yapf
  21. .stylelintignore
  22. .stylelintrc.json
  23. ARCHITECTURE.md
  24. AUTHORS
  25. BUILD.gn
  26. DEPS
  27. LICENSE
  28. OWNERS
  29. package-lock.json
  30. package.json
  31. PRESUBMIT.py
  32. README.md
  33. tsconfig.base.json
  34. tsconfig.json
  35. 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