| 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-present eyeo GmbH | 3  * Copyright (C) 2006-present 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 124 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 135                   (length - end) * sizeof(String::value_type)); | 135                   (length - end) * sizeof(String::value_type)); | 
| 136       offset += (length - end) * sizeof(String::value_type); | 136       offset += (length - end) * sizeof(String::value_type); | 
| 137 | 137 | 
| 138       return converted; | 138       return converted; | 
| 139     } | 139     } | 
| 140 | 140 | 
| 141     return OwnedString(text); | 141     return OwnedString(text); | 
| 142   } | 142   } | 
| 143 } | 143 } | 
| 144 | 144 | 
| 145 ElemHideBase::ElemHideBase(Type type, const String& text, const ElemHideData& da
     ta) | 145 ElemHideBase::ElemHideBase(Type type, const String& text, | 
|  | 146     const ElemHideData& data, const ParsedDomains& parsedDomains) | 
| 146     : ActiveFilter(type, ConvertFilter(text, data.mSelectorStart), false), | 147     : ActiveFilter(type, ConvertFilter(text, data.mSelectorStart), false), | 
| 147       mData(data) | 148       mData(data) | 
| 148 { | 149 { | 
| 149   if (mData.HasDomains()) | 150   if (mData.HasDomains()) | 
| 150     ParseDomains(mData.GetDomainsSource(mText), u','); | 151     FillDomains(mData.GetDomainsSource(mText), parsedDomains); | 
| 151 } | 152 } | 
| 152 | 153 | 
| 153 Filter::Type ElemHideBase::Parse(DependentString& text, ElemHideData& data) | 154 Filter::Type ElemHideBase::Parse(DependentString& text, DependentString& error, | 
|  | 155     ElemHideData& data, ParsedDomains& parsedDomains) | 
| 154 { | 156 { | 
| 155   StringScanner scanner(text); | 157   StringScanner scanner(text); | 
| 156 | 158 | 
| 157   // Domains part | 159   // Domains part | 
| 158   bool seenSpaces = false; | 160   bool seenSpaces = false; | 
| 159   while (!scanner.done()) | 161   while (!scanner.done()) | 
| 160   { | 162   { | 
| 161     String::value_type next = scanner.next(); | 163     String::value_type next = scanner.next(); | 
| 162     if (next == u'#') | 164     if (next == u'#') | 
| 163     { | 165     { | 
| (...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 199   if (scanner.done()) | 201   if (scanner.done()) | 
| 200     return Type::UNKNOWN; | 202     return Type::UNKNOWN; | 
| 201 | 203 | 
| 202   data.mSelectorStart = scanner.position() + 1; | 204   data.mSelectorStart = scanner.position() + 1; | 
| 203 | 205 | 
| 204   // We are done validating, now we can normalize whitespace and the domain part | 206   // We are done validating, now we can normalize whitespace and the domain part | 
| 205   if (seenSpaces) | 207   if (seenSpaces) | 
| 206     NormalizeWhitespace(text, data.mDomainsEnd, data.mSelectorStart); | 208     NormalizeWhitespace(text, data.mDomainsEnd, data.mSelectorStart); | 
| 207   DependentString(text, 0, data.mDomainsEnd).toLower(); | 209   DependentString(text, 0, data.mDomainsEnd).toLower(); | 
| 208 | 210 | 
|  | 211   parsedDomains = | 
|  | 212     ParseDomainsInternal(data.GetDomainsSource(text), u',', false); | 
|  | 213   if (parsedDomains.hasEmpty) | 
|  | 214   { | 
|  | 215     error = u"filter_invalid_domain"_str; | 
|  | 216     return Type::INVALID; | 
|  | 217   } | 
|  | 218 | 
| 209   if (exception) | 219   if (exception) | 
| 210     return Type::ELEMHIDEEXCEPTION; | 220     return Type::ELEMHIDEEXCEPTION; | 
| 211 | 221 | 
| 212   if (emulation) | 222   if (emulation) | 
| 213     return Type::ELEMHIDEEMULATION; | 223     return Type::ELEMHIDEEMULATION; | 
| 214 | 224 | 
| 215   return Type::ELEMHIDE; | 225   return Type::ELEMHIDE; | 
| 216 } | 226 } | 
| 217 | 227 | 
| 218 namespace | 228 namespace | 
| (...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 276       if (item.second && !item.first.empty()) | 286       if (item.second && !item.first.empty()) | 
| 277       { | 287       { | 
| 278         if (!result.empty()) | 288         if (!result.empty()) | 
| 279           result.append(u','); | 289           result.append(u','); | 
| 280         result.append(item.first); | 290         result.append(item.first); | 
| 281       } | 291       } | 
| 282     } | 292     } | 
| 283   } | 293   } | 
| 284   return result; | 294   return result; | 
| 285 } | 295 } | 
| OLD | NEW | 
|---|