Open Bug 1446302 Opened 6 years ago Updated 2 years ago

"Got a mutation for an unexpected actor" after checking numChildren for nodes with anonymous children

Categories

(DevTools :: Inspector, enhancement, P3)

enhancement

Tracking

(Not tracked)

People

(Reporter: jdescottes, Unassigned)

Details

Attachments

(1 file)

When creating a node actor and returning it to the client, we send the number of children as an additional information: 

https://searchfox.org/mozilla-central/rev/6e96a3f1e44e286ddae5fdafab737709741d237a/devtools/server/actors/inspector/node.js#202

If the node contains anonymous nodes (as in "getAnonymousNodes returns elements"), then we call the walker actor children method to "count" children. However this will also register those children in the map of known nodes for the walker actor.

This map is used when we get mutations, to know if the mutation is interesting for the client:
https://searchfox.org/mozilla-central/rev/6e96a3f1e44e286ddae5fdafab737709741d237a/devtools/server/actors/inspector/walker.js#1607

However in this case, we have nodes that are in the map of the walker actor, but which were never sent to the client. The fronts (who also maintain a map of known fronts) might therefore receive mutations for nodes they have never seen. This most likely happens when inspecting XUL UIs, since I think getAnonymousNodes mostly returns nodes for XBL bindings?

We should have a way to count children using the actor without registering the nodes in the map of known nodes.
Product: Firefox → DevTools
Severity: normal → S3
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: