Closed
Bug 1443889
Opened 7 years ago
Closed 6 years ago
Web Replay: Support web workers
Categories
(Core :: General, enhancement)
Core
General
Tracking
()
RESOLVED
INVALID
Tracking | Status | |
---|---|---|
firefox60 | --- | affected |
People
(Reporter: bhackett1024, Assigned: bhackett1024)
References
Details
Attachments
(5 files)
18.19 KB,
patch
|
Details | Diff | Splinter Review | |
2.62 KB,
patch
|
Details | Diff | Splinter Review | |
593 bytes,
patch
|
Details | Diff | Splinter Review | |
609 bytes,
patch
|
Details | Diff | Splinter Review | |
2.24 KB,
patch
|
Details | Diff | Splinter Review |
The following patches add support for web workers when using Web Replay. Executions using workers can be recorded and replayed, but the debugger cannot yet be used to set breakpoints in worker code or otherwise observe their state.
Assignee | ||
Comment 1•7 years ago
|
||
The trigger and weak pointer APIs in web replay could not be used off the main thread. This patch fixes that and tweaks the semantics of ExecuteTriggers to support its use on web worker threads.
Assignee: nobody → bhackett1024
Assignee | ||
Comment 2•7 years ago
|
||
Only consider scripts and other content from the JSRuntime on the main thread in the replay debugger, and do a little cleanup.
Assignee | ||
Comment 3•7 years ago
|
||
Web workers need larger stacks than most other threads, and since with web replay we spawn all threads up front and give them a fixed stack size before content has tried to spawn them and indicate a stack size, this patch just increases the stack size for all spawned threads.
Assignee | ||
Comment 4•7 years ago
|
||
Since part 1 allows ExecuteTriggers to be called on any thread, this patch fixes the call to this in the nsThread event loop so that it is called on all such threads (including those for web workers).
Assignee | ||
Comment 5•7 years ago
|
||
Remove the restriction that web workers can't be used when recording/replaying. This also makes a couple fixes to the worker code for web replay:
- Don't process callbacks during the JS interrupt callback. This callback runs at non-deterministic points during replay so can't perform actions that interact with the recording at all. This change might cause problems for workers that iloop, and might need a more robust/complicated alternative approach in the future.
- Use the record/replay trigger mechanism to perform cycle collections at deterministic points in execution.
Assignee | ||
Comment 6•7 years ago
|
||
https://hg.mozilla.org/projects/ash/rev/d865512815e936a3313e4b846196a99178f809c7
https://hg.mozilla.org/projects/ash/rev/62e651110f591bf7023e5be8c0730a901dfb9225
https://hg.mozilla.org/projects/ash/rev/1525a52989f7cadc2e8d8373e161bc3409c6a061
https://hg.mozilla.org/projects/ash/rev/91af7e277433fbb302e1041c90d99591482cb7da
https://hg.mozilla.org/projects/ash/rev/70e30746eb6cb231cd61d56545c9641e1b0fe679
Assignee | ||
Comment 7•6 years ago
|
||
Closing this bug, all the changes here will be reviewed in separate bugs dependent on bug 1422587.
Status: NEW → RESOLVED
Closed: 6 years ago
Resolution: --- → INVALID
You need to log in
before you can comment on or make changes to this bug.
Description
•