From bef6c3530022d799ea984c5a0cbc3e1cdf85b25e Mon Sep 17 00:00:00 2001 From: Alexandre Poirot Date: Wed, 2 Nov 2016 06:44:48 -0700 Subject: [PATCH] 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 --- devtools/server/actors/inspector.js | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/devtools/server/actors/inspector.js b/devtools/server/actors/inspector.js index a3c06aa56504..77d2c1df3443 100644 --- a/devtools/server/actors/inspector.js +++ b/devtools/server/actors/inspector.js @@ -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; }