Auto merge of #26220 - servo:layout-2020-rule-tree-new-on-write, r=emilio
Auto merge of #26220 - servo:layout-2020-rule-tree-new-on-write, r=emilio

Always upgrade existing weak child references in the rule tree

Just because we didn't find a child when read-locking a node children list
doesn't mean it still won't exist while we wait to upgrade the read lock
into a write lock to create the child.

KiChjang/servo,splav/servo,splav/servo,splav/servo,KiChjang/servo,KiChjang/servo,KiChjang/servo,splav/servo,KiChjang/servo,KiChjang/servo,KiChjang/servo,splav/servo,splav/servo,KiChjang/servo,splav/servo,splav/servo,KiChjang/servo,KiChjang/servo,splav/servo,splav/servo