Closed Bug 1726568 Opened 3 years ago Closed 3 years ago

MarkupView broken with BFCache navigation

Categories

(DevTools :: Inspector, defect, P2)

defect

Tracking

(firefox94 fixed)

RESOLVED FIXED
94 Branch
Tracking Status
firefox94 --- fixed

People

(Reporter: Honza, Assigned: bomsy)

References

Details

(Whiteboard: dt-perf-stability-mvp)

Attachments

(2 files)

STR:

Prefs set to true:

  • fission.autostart
  • devtools.browsertoolbox.fission
  • devtools.target-switching.server.enabled
  • fission.bfcacheInParent
  1. Load http://janodvarko.cz/tests/fission/case1/index.html
  2. Open DevTools select the Inspector panel
  3. Load google.com (or any other page)
  4. Go back in history (press the Back button)
  5. Right click on the IFrame and execute "This Frame -> Reload Frame"
  6. The Markup View in the Inspector panel goes blank -> BUG

ER: The Markup view should work as expected


It works when fission.bfcacheInParent is false

Has STR: --- → yes
Whiteboard: dt-fission-m3-triage
Component: Netmonitor → Inspector

ni? to add proper meta or keyword for fission cleanups

Severity: -- → S3
Flags: needinfo?(odvarko)
Priority: -- → P2

This issue highlight some race condition in TargetCommand where, in case of bfcache navigation, we sometime receive the iframe target before the top level one.
Because of this, we receive the iframe target first, add it to the cache, notify it to the panel.
But then, when we receive the top document, we destroy the iframe target because of this code:
https://searchfox.org/mozilla-central/rev/9dceacf3d761eb91237108ec438d64099a56f442/devtools/shared/commands/target/target-command.js#168

We probably have to workaround the fact that the platform code doesn't fire pageshow event in DevToolsFrameChild in the best order for us.
https://searchfox.org/mozilla-central/rev/9dceacf3d761eb91237108ec438d64099a56f442/devtools/server/connectors/js-window-actor/DevToolsFrameChild.jsm#616

Sounds like something we should fix sooner than later, but given that it is specific to bfcache and iframes, it doesn't justify backing out SSTS, nor delaying M3.
It is yet another edgecase related to bfcache navigations.

Not blocking Fission M3, but should be triaged for "Performance & Stability" project.

Flags: needinfo?(odvarko)
Whiteboard: dt-fission-m3-triage → dt-perf-stability-triage
Whiteboard: dt-perf-stability-triage → dt-perf-stability-mvp
Assignee: nobody → hmanilla
Status: NEW → ASSIGNED
Pushed by hmanilla@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/cd3599144199 [devtools] Cache and flush early iframe targets after the top-level target is available r=ochameau
Status: ASSIGNED → RESOLVED
Closed: 3 years ago
Resolution: --- → FIXED
Target Milestone: --- → 94 Branch
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: