|
@@ -42,15 +42,15 @@ this.RulesMatcher = this.RulesMatcher || (() => {
|
|
|
this.doc = doc;
|
|
this.doc = doc;
|
|
|
this.mediaAllInfo = createMediaInfo(MEDIA_ALL);
|
|
this.mediaAllInfo = createMediaInfo(MEDIA_ALL);
|
|
|
const matchedElementsCache = new Map();
|
|
const matchedElementsCache = new Map();
|
|
|
- doc.querySelectorAll("style").forEach((styleElement, styleIndex) => {
|
|
|
|
|
|
|
+ doc.querySelectorAll("style").forEach((styleElement, sheetIndex) => {
|
|
|
if (styleElement.sheet) {
|
|
if (styleElement.sheet) {
|
|
|
let cssRules = styleElement.sheet.cssRules;
|
|
let cssRules = styleElement.sheet.cssRules;
|
|
|
if (styleElement.media && styleElement.media != MEDIA_ALL) {
|
|
if (styleElement.media && styleElement.media != MEDIA_ALL) {
|
|
|
const mediaInfo = createMediaInfo(styleElement.media);
|
|
const mediaInfo = createMediaInfo(styleElement.media);
|
|
|
- this.mediaAllInfo.medias.set(styleIndex + "-" + styleElement.media, mediaInfo);
|
|
|
|
|
- getMatchedElementsRules(doc, cssRules, mediaInfo, styleIndex, matchedElementsCache);
|
|
|
|
|
|
|
+ this.mediaAllInfo.medias.set("style-" + sheetIndex + "-" + styleElement.media.mediaText, mediaInfo);
|
|
|
|
|
+ getMatchedElementsRules(doc, cssRules, mediaInfo, sheetIndex, matchedElementsCache);
|
|
|
} else {
|
|
} else {
|
|
|
- getMatchedElementsRules(doc, cssRules, this.mediaAllInfo, styleIndex, matchedElementsCache);
|
|
|
|
|
|
|
+ getMatchedElementsRules(doc, cssRules, this.mediaAllInfo, sheetIndex, matchedElementsCache);
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
});
|
|
});
|
|
@@ -71,7 +71,7 @@ this.RulesMatcher = this.RulesMatcher || (() => {
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- getAllMatchedRules() {
|
|
|
|
|
|
|
+ getMediaAllInfo() {
|
|
|
return this.mediaAllInfo;
|
|
return this.mediaAllInfo;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -87,6 +87,7 @@ this.RulesMatcher = this.RulesMatcher || (() => {
|
|
|
};
|
|
};
|
|
|
|
|
|
|
|
function getMatchedElementsRules(doc, cssRules, mediaInfo, sheetIndex, matchedElementsCache) {
|
|
function getMatchedElementsRules(doc, cssRules, mediaInfo, sheetIndex, matchedElementsCache) {
|
|
|
|
|
+ let mediaIndex = 0;
|
|
|
let startTime;
|
|
let startTime;
|
|
|
if (DEBUG && cssRules.length > 1) {
|
|
if (DEBUG && cssRules.length > 1) {
|
|
|
startTime = Date.now();
|
|
startTime = Date.now();
|
|
@@ -97,7 +98,8 @@ this.RulesMatcher = this.RulesMatcher || (() => {
|
|
|
if (cssRuleType == CSSRule.MEDIA_RULE) {
|
|
if (cssRuleType == CSSRule.MEDIA_RULE) {
|
|
|
const cssRuleMedia = cssRule.media;
|
|
const cssRuleMedia = cssRule.media;
|
|
|
const ruleMediaInfo = createMediaInfo(cssRuleMedia);
|
|
const ruleMediaInfo = createMediaInfo(cssRuleMedia);
|
|
|
- mediaInfo.medias.set(cssRuleMedia, ruleMediaInfo);
|
|
|
|
|
|
|
+ mediaInfo.medias.set("rule-" + sheetIndex + "-" + mediaIndex + "-" + cssRuleMedia.mediaText, ruleMediaInfo);
|
|
|
|
|
+ mediaIndex++;
|
|
|
getMatchedElementsRules(doc, cssRule.cssRules, ruleMediaInfo, sheetIndex, matchedElementsCache);
|
|
getMatchedElementsRules(doc, cssRule.cssRules, ruleMediaInfo, sheetIndex, matchedElementsCache);
|
|
|
} else if (cssRuleType == CSSRule.STYLE_RULE) {
|
|
} else if (cssRuleType == CSSRule.STYLE_RULE) {
|
|
|
const selectorText = cssRule.selectorText;
|
|
const selectorText = cssRule.selectorText;
|