diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-06-12 05:43:14 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-06-12 05:43:14 +0000 |
commit | 8dd16259287f58f9273002717ec4d27e97127719 (patch) | |
tree | 3863e62a53829a84037444beab3abd4ed9dfc7d0 /devtools/server/actors/inspector/css-logic.js | |
parent | Releasing progress-linux version 126.0.1-1~progress7.99u1. (diff) | |
download | firefox-8dd16259287f58f9273002717ec4d27e97127719.tar.xz firefox-8dd16259287f58f9273002717ec4d27e97127719.zip |
Merging upstream version 127.0.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'devtools/server/actors/inspector/css-logic.js')
-rw-r--r-- | devtools/server/actors/inspector/css-logic.js | 33 |
1 files changed, 21 insertions, 12 deletions
diff --git a/devtools/server/actors/inspector/css-logic.js b/devtools/server/actors/inspector/css-logic.js index 8ef0978915..0a602a55cc 100644 --- a/devtools/server/actors/inspector/css-logic.js +++ b/devtools/server/actors/inspector/css-logic.js @@ -253,19 +253,28 @@ class CssLogic { if (cssSheet._passId != this._passId) { cssSheet._passId = this._passId; - // Find import and keyframes rules. - for (const aDomRule of cssSheet.getCssRules()) { - const ruleClassName = ChromeUtils.getClassName(aDomRule); - if ( - ruleClassName === "CSSImportRule" && - aDomRule.styleSheet && - this.mediaMatches(aDomRule) - ) { - this._cacheSheet(aDomRule.styleSheet); - } else if (ruleClassName === "CSSKeyframesRule") { - this._keyframesRules.push(aDomRule); + // Find import and keyframes rules. We loop through all the stylesheet recursively, + // so we can go through nested rules. + const traverseRules = ruleList => { + for (const aDomRule of ruleList) { + const ruleClassName = ChromeUtils.getClassName(aDomRule); + if ( + ruleClassName === "CSSImportRule" && + aDomRule.styleSheet && + this.mediaMatches(aDomRule) + ) { + this._cacheSheet(aDomRule.styleSheet); + } else if (ruleClassName === "CSSKeyframesRule") { + this._keyframesRules.push(aDomRule); + } + + if (aDomRule.cssRules) { + traverseRules(aDomRule.cssRules); + } } - } + }; + + traverseRules(cssSheet.getCssRules()); } } |