Browse Source

handles custom scrollbar and more pseudo elements

Gildas 7 years ago
parent
commit
abd3e13f26
1 changed files with 3 additions and 2 deletions
  1. 3 2
      lib/single-file/css-minifier.js

+ 3 - 2
lib/single-file/css-minifier.js

@@ -24,7 +24,8 @@ this.cssMinifier = this.stylesMinifier || (() => {
 
 	const SEPARATOR_TYPES = ["descendant", "child", "sibling", "adjacent"];
 	const REMOVED_PSEUDO_CLASSES = ["focus", "focus-within", "hover", "link", "visited", "active"];
-	const REMOVED_PSEUDO_ELEMENTS = ["after", "before", "first-line", "first-letter"];
+	const REMOVED_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 IGNORED_SELECTORS = ["::-webkit-scrollbar", "::-webkit-scrollbar-button", "::-webkit-scrollbar-thumb", "::-webkit-scrollbar-track", "::-webkit-scrollbar-track-piece", "::-webkit-scrollbar-corner", "::-webkit-resizer"];
 
 	return {
 		process: doc => {
@@ -67,7 +68,7 @@ this.cssMinifier = this.stylesMinifier || (() => {
 						cssRule.selectorText = ruleInfo.selectorsText.filter(selector => ruleInfo.matchedSelectors.has(selector) || (testFilterSelector(selector) && doc.querySelector(getFilteredSelector(selector)))).join(",");
 					}
 				} else {
-					if (!testFilterSelector(cssRule.selectorText) || !doc.querySelector(getFilteredSelector(cssRule.selectorText))) {
+					if (!IGNORED_SELECTORS.includes(cssRule.selectorText.toLowerCase().trim()) && (!testFilterSelector(cssRule.selectorText) || !doc.querySelector(getFilteredSelector(cssRule.selectorText)))) {
 						const parent = cssRule.parentRule || cssRule.parentStyleSheet;
 						let indexRule = 0;
 						while (cssRule != parent.cssRules[indexRule] && indexRule < parent.cssRules.length) {