|
|
@@ -41,38 +41,32 @@ this.RulesMatcher = this.RulesMatcher || (() => {
|
|
|
this.doc = doc;
|
|
|
this.mediaAllInfo = createMediaInfo(MEDIA_ALL);
|
|
|
const matchedElementsCache = new Map();
|
|
|
- let startTime;
|
|
|
doc.querySelectorAll("style").forEach((styleElement, styleIndex) => {
|
|
|
if (styleElement.sheet) {
|
|
|
- if (DEBUG) {
|
|
|
- startTime = Date.now();
|
|
|
- log(" // STARTED getMatchedElementsRules style", styleIndex);
|
|
|
- }
|
|
|
+ let cssRules = styleElement.sheet.cssRules;
|
|
|
if (styleElement.media && styleElement.media != MEDIA_ALL) {
|
|
|
const mediaInfo = createMediaInfo(styleElement.media);
|
|
|
this.mediaAllInfo.medias.set(styleIndex + "-" + styleElement.media, mediaInfo);
|
|
|
- getMatchedElementsRules(doc, styleElement.sheet.cssRules, mediaInfo, styleIndex, matchedElementsCache);
|
|
|
+ getMatchedElementsRules(doc, cssRules, mediaInfo, styleIndex, matchedElementsCache);
|
|
|
} else {
|
|
|
- getMatchedElementsRules(doc, styleElement.sheet.cssRules, this.mediaAllInfo, styleIndex, matchedElementsCache);
|
|
|
- }
|
|
|
- if (DEBUG) {
|
|
|
- log(" // ENDED getMatchedElementsRules style", Date.now() - startTime);
|
|
|
+ getMatchedElementsRules(doc, cssRules, this.mediaAllInfo, styleIndex, matchedElementsCache);
|
|
|
}
|
|
|
}
|
|
|
});
|
|
|
+ let startTime;
|
|
|
if (DEBUG) {
|
|
|
startTime = Date.now();
|
|
|
- log(" // STARTED sortRules");
|
|
|
+ log(" -- STARTED sortRules");
|
|
|
}
|
|
|
sortRules(this.mediaAllInfo);
|
|
|
if (DEBUG) {
|
|
|
- log(" // ENDED sortRules", Date.now() - startTime);
|
|
|
+ log(" -- ENDED sortRules", Date.now() - startTime);
|
|
|
startTime = Date.now();
|
|
|
- log(" // STARTED computeCascade");
|
|
|
+ log(" -- STARTED computeCascade");
|
|
|
}
|
|
|
computeCascade(this.mediaAllInfo, [], this.mediaAllInfo);
|
|
|
if (DEBUG) {
|
|
|
- log(" // ENDED computeCascade", Date.now() - startTime);
|
|
|
+ log(" -- ENDED computeCascade", Date.now() - startTime);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@@ -92,6 +86,11 @@ this.RulesMatcher = this.RulesMatcher || (() => {
|
|
|
};
|
|
|
|
|
|
function getMatchedElementsRules(doc, cssRules, mediaInfo, sheetIndex, matchedElementsCache) {
|
|
|
+ let startTime;
|
|
|
+ if (DEBUG && cssRules.length > 1) {
|
|
|
+ startTime = Date.now();
|
|
|
+ log(" -- STARTED getMatchedElementsRules", " index =", sheetIndex, "rules.length =", cssRules.length);
|
|
|
+ }
|
|
|
Array.from(cssRules).forEach((cssRule, ruleIndex) => {
|
|
|
const cssRuleType = cssRule.type;
|
|
|
if (cssRuleType == CSSRule.MEDIA_RULE) {
|
|
|
@@ -115,6 +114,9 @@ this.RulesMatcher = this.RulesMatcher || (() => {
|
|
|
}
|
|
|
}
|
|
|
});
|
|
|
+ if (DEBUG && cssRules.length > 1) {
|
|
|
+ log(" -- ENDED getMatchedElementsRules", "delay =", Date.now() - startTime);
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
function getMatchedElementsSelector(doc, cssRule, selector, selectorText, selectorsText, mediaInfo, ruleIndex, sheetIndex, matchedElementsCache) {
|
|
|
@@ -294,7 +296,7 @@ this.RulesMatcher = this.RulesMatcher || (() => {
|
|
|
}
|
|
|
|
|
|
function log(...args) {
|
|
|
- console.log("S-File <css-ma>", ...args); // eslint-disable-line no-console
|
|
|
+ console.log("S-File <css-mat>", ...args); // eslint-disable-line no-console
|
|
|
}
|
|
|
|
|
|
})();
|