| OLD | NEW | 
|---|
| 1 /* | 1 /* | 
| 2  * This file is part of Adblock Plus <https://adblockplus.org/>, | 2  * This file is part of Adblock Plus <https://adblockplus.org/>, | 
| 3  * Copyright (C) 2006-2015 Eyeo GmbH | 3  * Copyright (C) 2006-2015 Eyeo GmbH | 
| 4  * | 4  * | 
| 5  * Adblock Plus is free software: you can redistribute it and/or modify | 5  * Adblock Plus is free software: you can redistribute it and/or modify | 
| 6  * it under the terms of the GNU General Public License version 3 as | 6  * it under the terms of the GNU General Public License version 3 as | 
| 7  * published by the Free Software Foundation. | 7  * published by the Free Software Foundation. | 
| 8  * | 8  * | 
| 9  * Adblock Plus is distributed in the hope that it will be useful, | 9  * Adblock Plus is distributed in the hope that it will be useful, | 
| 10  * but WITHOUT ANY WARRANTY; without even the implied warranty of | 10  * but WITHOUT ANY WARRANTY; without even the implied warranty of | 
| (...skipping 118 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 129   if (docDomain) | 129   if (docDomain) | 
| 130     docDomain = docDomain.replace(/^www\./i, "").replace(/\.+$/, ""); | 130     docDomain = docDomain.replace(/^www\./i, "").replace(/\.+$/, ""); | 
| 131   if (docDomain) | 131   if (docDomain) | 
| 132     E("domainRestriction").value = docDomain; | 132     E("domainRestriction").value = docDomain; | 
| 133 | 133 | 
| 134   E("thirdParty").hidden = !thirdParty; | 134   E("thirdParty").hidden = !thirdParty; | 
| 135   E("firstParty").hidden = thirdParty; | 135   E("firstParty").hidden = thirdParty; | 
| 136 | 136 | 
| 137   let typeGroup = E("typeGroup"); | 137   let typeGroup = E("typeGroup"); | 
| 138   let defaultTypes = RegExpFilter.prototype.contentType & ~RegExpFilter.typeMap.
     DOCUMENT; | 138   let defaultTypes = RegExpFilter.prototype.contentType & ~RegExpFilter.typeMap.
     DOCUMENT; | 
| 139   let isDefaultType = (RegExpFilter.typeMap[item.typeDescr] & defaultTypes) != 0
     ; | 139   let isDefaultType = (RegExpFilter.typeMap[item.type] & defaultTypes) != 0; | 
| 140   for (let [type, label] of types) | 140   for (let [type, label] of types) | 
| 141   { | 141   { | 
| 142     if (type == "ELEMHIDE") | 142     if (type == "ELEMHIDE") | 
| 143       continue; | 143       continue; | 
| 144 | 144 | 
| 145     let typeNode = document.createElement("checkbox"); | 145     let typeNode = document.createElement("checkbox"); | 
| 146     typeNode.setAttribute("value", type.toLowerCase().replace(/\_/g, "-")); | 146     typeNode.setAttribute("value", type.toLowerCase().replace(/\_/g, "-")); | 
| 147     typeNode.setAttribute("label", label); | 147     typeNode.setAttribute("label", label); | 
| 148 | 148 | 
| 149     let typeMask = RegExpFilter.typeMap[type]; | 149     let typeMask = RegExpFilter.typeMap[type]; | 
| (...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 246 | 246 | 
| 247     if (options.length) | 247     if (options.length) | 
| 248     { | 248     { | 
| 249       options.sort((a, b) => a[0] - b[0]); | 249       options.sort((a, b) => a[0] - b[0]); | 
| 250       filter += "$" + options.map(o => o[1]).join(","); | 250       filter += "$" + options.map(o => o[1]).join(","); | 
| 251     } | 251     } | 
| 252   } | 252   } | 
| 253   else | 253   else | 
| 254   { | 254   { | 
| 255     let defaultTypes = RegExpFilter.prototype.contentType & ~RegExpFilter.typeMa
     p.DOCUMENT; | 255     let defaultTypes = RegExpFilter.prototype.contentType & ~RegExpFilter.typeMa
     p.DOCUMENT; | 
| 256     let isDefaultType = (RegExpFilter.typeMap[item.typeDescr] & defaultTypes) !=
      0; | 256     let isDefaultType = (RegExpFilter.typeMap[item.type] & defaultTypes) != 0; | 
| 257     if (!isDefaultType) | 257     if (!isDefaultType) | 
| 258       filter += "$" + item.typeDescr.toLowerCase().replace(/\_/g, "-"); | 258       filter += "$" + item.type.toLowerCase().replace(/\_/g, "-"); | 
| 259   } | 259   } | 
| 260 | 260 | 
| 261   filter = Filter.normalize(filter); | 261   filter = Filter.normalize(filter); | 
| 262   E("regexpWarning").hidden = !Filter.regexpRegExp.test(filter); | 262   E("regexpWarning").hidden = !Filter.regexpRegExp.test(filter); | 
| 263 | 263 | 
| 264   let isSlow = false; | 264   let isSlow = false; | 
| 265   let compiledFilter = Filter.fromText(filter); | 265   let compiledFilter = Filter.fromText(filter); | 
| 266   if (E("regexpWarning").hidden) | 266   if (E("regexpWarning").hidden) | 
| 267   { | 267   { | 
| 268     if (compiledFilter instanceof RegExpFilter && defaultMatcher.isSlowFilter(co
     mpiledFilter)) | 268     if (compiledFilter instanceof RegExpFilter && defaultMatcher.isSlowFilter(co
     mpiledFilter)) | 
| 269       isSlow = true; | 269       isSlow = true; | 
| 270   } | 270   } | 
| 271   E("shortpatternWarning").hidden = !isSlow; | 271   E("shortpatternWarning").hidden = !isSlow; | 
| 272 | 272 | 
| 273   E("matchWarning").hidden = compiledFilter instanceof RegExpFilter && compiledF
     ilter.matches(item.location, RegExpFilter.typeMap[item.typeDescr], item.docDomai
     n, item.thirdParty); | 273   E("matchWarning").hidden = compiledFilter instanceof RegExpFilter && compiledF
     ilter.matches(item.location, RegExpFilter.typeMap[item.type], item.docDomain, it
     em.thirdParty); | 
| 274 | 274 | 
| 275   E("filter").value = filter; | 275   E("filter").value = filter; | 
| 276 } | 276 } | 
| 277 | 277 | 
| 278 function generateLinkText(element, replacement) | 278 function generateLinkText(element, replacement) | 
| 279 { | 279 { | 
| 280   let template = element.getAttribute("textTemplate"); | 280   let template = element.getAttribute("textTemplate"); | 
| 281   if (typeof replacement != "undefined") | 281   if (typeof replacement != "undefined") | 
| 282     template = template.replace(/\?1\?/g, replacement) | 282     template = template.replace(/\?1\?/g, replacement) | 
| 283 | 283 | 
| (...skipping 18 matching lines...) Expand all  Loading... | 
| 302     pattern = E("customPattern").value; | 302     pattern = E("customPattern").value; | 
| 303   } | 303   } | 
| 304   else | 304   else | 
| 305   { | 305   { | 
| 306     E("anchorStart").checked = true; | 306     E("anchorStart").checked = true; | 
| 307     E("anchorEnd").checked = false; | 307     E("anchorEnd").checked = false; | 
| 308   } | 308   } | 
| 309 | 309 | 
| 310   function testFilter(/**String*/ filter) /**Boolean*/ | 310   function testFilter(/**String*/ filter) /**Boolean*/ | 
| 311   { | 311   { | 
| 312     return RegExpFilter.fromText(filter + "$" + item.typeDescr).matches(item.loc
     ation, RegExpFilter.typeMap[item.typeDescr], item.docDomain, item.thirdParty); | 312     return RegExpFilter.fromText(filter + "$" + item.type).matches(item.location
     , RegExpFilter.typeMap[item.type], item.docDomain, item.thirdParty); | 
| 313   } | 313   } | 
| 314 | 314 | 
| 315   let anchorStartCheckbox = E("anchorStart"); | 315   let anchorStartCheckbox = E("anchorStart"); | 
| 316   if (!/^\*/.test(pattern) && testFilter("||" + pattern)) | 316   if (!/^\*/.test(pattern) && testFilter("||" + pattern)) | 
| 317   { | 317   { | 
| 318     disableElement(anchorStartCheckbox, false, "checked", false); | 318     disableElement(anchorStartCheckbox, false, "checked", false); | 
| 319     [anchorStartCheckbox.label, anchorStartCheckbox.accessKey] = Utils.splitLabe
     l(anchorStartCheckbox.getAttribute("labelFlexible")); | 319     [anchorStartCheckbox.label, anchorStartCheckbox.accessKey] = Utils.splitLabe
     l(anchorStartCheckbox.getAttribute("labelFlexible")); | 
| 320     anchorStartCheckbox.flexibleAnchor = true; | 320     anchorStartCheckbox.flexibleAnchor = true; | 
| 321   } | 321   } | 
| 322   else | 322   else | 
| (...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 394  * Selects or unselects all type checkboxes except those | 394  * Selects or unselects all type checkboxes except those | 
| 395  * that are disabled. | 395  * that are disabled. | 
| 396  */ | 396  */ | 
| 397 function selectAllTypes(/**Boolean*/ select) | 397 function selectAllTypes(/**Boolean*/ select) | 
| 398 { | 398 { | 
| 399   for (let typeNode = E("typeGroup").firstChild; typeNode; typeNode = typeNode.n
     extSibling) | 399   for (let typeNode = E("typeGroup").firstChild; typeNode; typeNode = typeNode.n
     extSibling) | 
| 400     if (typeNode.getAttribute("disabled") != "true") | 400     if (typeNode.getAttribute("disabled") != "true") | 
| 401       typeNode.checked = select; | 401       typeNode.checked = select; | 
| 402   updateFilter(); | 402   updateFilter(); | 
| 403 } | 403 } | 
| OLD | NEW | 
|---|