|
|
@@ -26,14 +26,20 @@ this.cssMinifier = this.cssMinifier || (() => {
|
|
|
const FILTERED_PSEUDO_ELEMENTS = ["::after", "::before", "::first-line", "::first-letter", "::placeholder", "::-webkit-input-placeholder", "::selection", "::marker", "::cue", "::-webkit-progress-bar", "::-webkit-progress-value", "::-webkit-inner-spin-button", "::-webkit-outer-spin-button", "::-webkit-search-cancel-button", "::-webkit-search-cancel-button"];
|
|
|
const FILTERED_SELECTORS = ["::-webkit-scrollbar", "::-webkit-scrollbar-button", "::-webkit-scrollbar-thumb", "::-webkit-scrollbar-track", "::-webkit-scrollbar-track-piece", "::-webkit-scrollbar-corner", "::-webkit-resizer"];
|
|
|
const IGNORED_SELECTORS = FILTERED_SELECTORS.concat(FILTERED_PSEUDO_CLASSES).concat(FILTERED_PSEUDO_ELEMENTS);
|
|
|
+ const DEBUG = false;
|
|
|
|
|
|
return {
|
|
|
process: doc => {
|
|
|
const rulesMatcher = RulesMatcher.create(doc);
|
|
|
const mediaAllInfo = rulesMatcher.getAllMatchedRules();
|
|
|
const stats = { processed: 0, discarded: 0 };
|
|
|
+ let startTime;
|
|
|
doc.querySelectorAll("style").forEach((styleElement, styleIndex) => {
|
|
|
if (styleElement.sheet) {
|
|
|
+ if (DEBUG) {
|
|
|
+ startTime = Date.now();
|
|
|
+ log(" // STARTED processRules style", styleIndex);
|
|
|
+ }
|
|
|
let mediaInfo;
|
|
|
if (styleElement.media && styleElement.media != "all") {
|
|
|
mediaInfo = mediaAllInfo.medias.get(styleIndex + "-" + styleElement.media);
|
|
|
@@ -45,8 +51,15 @@ this.cssMinifier = this.cssMinifier || (() => {
|
|
|
stats.discarded += cssRules.length;
|
|
|
styleElement.textContent = processRules(doc, cssRules, mediaInfo);
|
|
|
stats.discarded -= cssRules.length;
|
|
|
+ if (DEBUG) {
|
|
|
+ log(" // ENDED processRules style", Date.now() - startTime);
|
|
|
+ }
|
|
|
}
|
|
|
});
|
|
|
+ if (DEBUG) {
|
|
|
+ startTime = Date.now();
|
|
|
+ log(" // STARTED processStyleAttribute");
|
|
|
+ }
|
|
|
doc.querySelectorAll("[style]").forEach(element => {
|
|
|
let textContent = processStyleAttribute(element.style, mediaAllInfo);
|
|
|
if (textContent) {
|
|
|
@@ -55,6 +68,9 @@ this.cssMinifier = this.cssMinifier || (() => {
|
|
|
element.removeAttribute("style");
|
|
|
}
|
|
|
});
|
|
|
+ if (DEBUG) {
|
|
|
+ log(" // ENDED processStyleAttribute", Date.now() - startTime);
|
|
|
+ }
|
|
|
return stats;
|
|
|
}
|
|
|
};
|
|
|
@@ -138,4 +154,8 @@ this.cssMinifier = this.cssMinifier || (() => {
|
|
|
return found;
|
|
|
}
|
|
|
|
|
|
+ function log(...args) {
|
|
|
+ console.log("S-File <css-mi>", ...args); // eslint-disable-line no-console
|
|
|
+ }
|
|
|
+
|
|
|
})();
|