| Index: include.preload.js |
| =================================================================== |
| --- a/include.preload.js |
| +++ b/include.preload.js |
| @@ -381,47 +381,6 @@ |
| return observer; |
| } |
| -function convertSelectorsForShadowDOM(selectors) |
| -{ |
| - var result = []; |
| - var prefix = "::content "; |
| - |
| - for (var i = 0; i < selectors.length; i++) |
| - { |
| - var selector = selectors[i]; |
| - if (selector.indexOf(",") == -1) |
| - { |
| - result.push(prefix + selector); |
| - continue; |
| - } |
| - |
| - var start = 0; |
| - var sep = ""; |
| - for (var j = 0; j < selector.length; j++) |
| - { |
| - var chr = selector[j]; |
| - if (chr == "\\") |
| - j++; |
| - else if (chr == sep) |
| - sep = ""; |
| - else if (sep == "") |
| - { |
| - if (chr == '"' || chr == "'") |
| - sep = chr; |
| - else if (chr == ",") |
| - { |
| - result.push(prefix + selector.substring(start, j)); |
| - start = j + 1; |
| - } |
| - } |
| - } |
| - |
| - result.push(prefix + selector.substring(start)); |
| - } |
| - |
| - return result; |
| -} |
| - |
| function init(document) |
| { |
| var shadow = null; |
| @@ -472,7 +431,16 @@ |
| // before each selector, in order to match elements within the |
| // insertion point. |
| if (shadow) |
| - selectors = convertSelectorsForShadowDOM(selectors); |
| + { |
| + var preparedSelectors = []; |
| + for (var i = 0; i < selectors.length; i++) |
| + { |
| + var subSelectors = splitSelector(selectors[i]); |
| + for (var j = 0; j < subSelectors.length; j++) |
| + preparedSelectors.push("::content " + subSelectors[j]); |
| + } |
| + selectors = preparedSelectors; |
| + } |
| // WebKit (and Blink?) apparently chokes when the selector list in a |
| // CSS rule is huge. So we split the elemhide selectors into groups. |