Closed Bug 1576318 Opened 3 months ago Closed 3 months ago

Fix previewing for special-cased objects

Categories

(Core :: Web Replay, defect)

defect
Not set

Tracking

()

RESOLVED FIXED
mozilla70
Tracking Status
firefox70 --- fixed

People

(Reporter: bhackett, Assigned: bhackett)

Details

Attachments

(6 files)

Attached patch patchSplinter Review

An assortment of objects don't preview correctly when using web replay. Additionally, even if objects do preview correctly, doing so might require making debugger requests, which requires a replaying process to be at the point where the debugger is paused at and prevents us from being able to fully update the UI based on cached pause data.

The attached patch fixes these issues for an assortment of objects --- typed arrays, sets, maps, weak sets, weak maps, regexps, dates, errors. I also tried to call the right native instead of accessing properties which might have been overridden, like RegExp.prototype.toString, for more consistency with how we handle typed arrays.

Type: enhancement → defect
Pushed by bhackett@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/52a541822f42
Part 1 - Supply contents of containers and additional information needed while previewing to the ReplayDebugger, r=loganfsmyth.
https://hg.mozilla.org/integration/autoland/rev/19ab89cb9468
Part 2 - Use replay-friendly methods when previewing objects and getting the contents of container objects, r=loganfsmyth.
https://hg.mozilla.org/integration/autoland/rev/607ed403709d
Part 3 - Avoid rerendering messages when the paused execution point has not changed, r=loganfsmyth,nchevobbe.
https://hg.mozilla.org/integration/autoland/rev/aa75f0814cbe
Part 4 - Add testing method to get the debugger requests and associated stacks for the current pause, r=loganfsmyth.
https://hg.mozilla.org/integration/autoland/rev/ed6ce702ad2a
Part 5 - Add tests that we can preview assorted objects while replaying, and pause the debugger without making debugger requests, r=loganfsmyth.
You need to log in before you can comment on or make changes to this bug.