Bug 985517 - Remove pseudo class locks of children to prevent ending up with broken pseudo class state. r=pbro

MozReview-Commit-ID: LAh6HdKKJsk

--HG--
extra : rebase_source : 357903791b7722557b9e4b26286b20f78d5084b9
This commit is contained in:
Alexandre Poirot 2016-11-02 06:44:48 -07:00
Родитель c75e435109
Коммит bef6c35300
1 изменённых файлов: 9 добавлений и 0 удалений

Просмотреть файл

@ -1844,6 +1844,15 @@ var WalkerActor = protocol.ActorClassWithSpec(walkerSpec, {
this._removePseudoClassLock(node, pseudo);
// Remove pseudo class for children as we don't want to allow
// turning it on for some childs without setting it on some parents
for (let locked of this._activePseudoClassLocks) {
if (node.rawNode.contains(locked.rawNode) &&
DOMUtils.hasPseudoClassLock(locked.rawNode, pseudo)) {
this._removePseudoClassLock(locked, pseudo);
}
}
if (!options.parents) {
return;
}