| Index: compiled/filter/ElemHideBase.cpp |
| =================================================================== |
| --- a/compiled/filter/ElemHideBase.cpp |
| +++ b/compiled/filter/ElemHideBase.cpp |
| @@ -82,19 +82,22 @@ |
| return Type::UNKNOWN; |
| case u' ': |
| seenSpaces = true; |
| break; |
| } |
| } |
| seenSpaces |= scanner.skip(u' '); |
| + bool emulation = false; |
| bool exception = scanner.skipOne(u'@'); |
| if (exception) |
| seenSpaces |= scanner.skip(u' '); |
| + else |
| + emulation = scanner.skipOne(u'?'); |
| String::value_type next = scanner.next(); |
| if (next != u'#') |
| return Type::UNKNOWN; |
| // Selector part |
| // Selector shouldn't be empty |
| @@ -116,17 +119,17 @@ |
| // We are done validating, now we can normalize whitespace and the domain part |
| if (seenSpaces) |
| NormalizeWhitespace(text, data.mDomainsEnd, data.mSelectorStart); |
| DependentString(text, 0, data.mDomainsEnd).toLower(); |
| if (exception) |
| return Type::ELEMHIDEEXCEPTION; |
| - if (text.find(u"[-abp-properties="_str, data.mSelectorStart) != text.npos) |
| + if (emulation) |
| return Type::ELEMHIDEEMULATION; |
| return Type::ELEMHIDE; |
| } |
| OwnedString ElemHideBase::GetSelectorDomain() const |
| { |
| /* TODO this is inefficient */ |