WebReplay mochitests broken by bug 1521189
Categories
(Core Graveyard :: Web Replay, enhancement)
Tracking
(firefox67 fixed)
Tracking | Status | |
---|---|---|
firefox67 | --- | fixed |
People
(Reporter: nika, Assigned: bhackett1024)
References
Details
Attachments
(1 file)
1.53 KB,
patch
|
nika
:
review+
|
Details | Diff | Splinter Review |
These tests began failing after changes from bug 1521189 - it looks like WebReplay changes the shutdown lifecycle of PBrowser actors in a way which isn't compatible with this new actor's lifecycle.
Assignee | ||
Comment 1•5 years ago
|
||
The problem here is that IPDL messages sent to the middleman are forwarded to their recording child process unless there is special handling for the message in ParentForwarding.cpp. The middleman has its own WindowGlobalChild actors, and if it sends a Destroy to the parent then the parent's delete response ends up being received in the recording process, which crashes.
The attached patch fixes this by dispatching parent->child PWindowGlobal messages to either the middleman or the recording process, depending on whether there is an actor with the right routing ID in the middleman.
Reporter | ||
Comment 2•5 years ago
|
||
Comment on attachment 9039622 [details] [diff] [review] patch Review of attachment 9039622 [details] [diff] [review]: ----------------------------------------------------------------- ::: toolkit/recordreplay/ipc/ParentForwarding.cpp @@ +140,5 @@ > + found = true; > + break; > + } > + } > + } Couldn't this entire check be simplified to: ``` IProtocol* actor = contentChild->Lookup(aMessage.routing_id()); if (actor && actor->GetProtocolTypeId() == PWindowGlobalStart) { // ... } ```
Pushed by bhackett@mozilla.com: https://hg.mozilla.org/integration/mozilla-inbound/rev/2220ce4355d5 Handle WindowGlobal messages within the middleman when appropriate, r=nika.
Comment 4•5 years ago
|
||
bugherder |
Updated•4 years ago
|
Description
•