| 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 | 
|   11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the |   11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | 
|   12  * GNU General Public License for more details. |   12  * GNU General Public License for more details. | 
|   13  * |   13  * | 
|   14  * You should have received a copy of the GNU General Public License |   14  * You should have received a copy of the GNU General Public License | 
|   15  * along with Adblock Plus.  If not, see <http://www.gnu.org/licenses/>. |   15  * along with Adblock Plus.  If not, see <http://www.gnu.org/licenses/>. | 
|   16  */ |   16  */ | 
|   17  |   17  | 
|   18 #ifndef _PLUGIN_FILTER_H_ |   18 #ifndef _PLUGIN_FILTER_H_ | 
|   19 #define _PLUGIN_FILTER_H_ |   19 #define _PLUGIN_FILTER_H_ | 
|   20  |   20  | 
|   21  |   21  | 
|   22 #include "PluginTypedef.h" |   22 #include "PluginTypedef.h" | 
|   23 #include <memory> |   23 #include <memory> | 
 |   24 #include <AdblockPlus/FilterEngine.h> | 
|   24  |   25  | 
|   25 enum CFilterElementHideAttrPos |   26 enum CFilterElementHideAttrPos | 
|   26 { |   27 { | 
|   27   POS_NONE = 0, STARTING, ENDING, ANYWHERE, EXACT |   28   POS_NONE = 0, STARTING, ENDING, ANYWHERE, EXACT | 
|   28 }; |   29 }; | 
|   29  |   30  | 
|   30 enum CFilterElementHideAttrType |   31 enum CFilterElementHideAttrType | 
|   31 { |   32 { | 
|   32   TYPE_NONE = 0, STYLE, ID, CLASS |   33   TYPE_NONE = 0, STYLE, ID, CLASS | 
|   33 }; |   34 }; | 
| (...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|   90  |   91  | 
|   91 // ============================================================================ |   92 // ============================================================================ | 
|   92 // CFilter |   93 // CFilter | 
|   93 // ============================================================================ |   94 // ============================================================================ | 
|   94  |   95  | 
|   95 class CFilter |   96 class CFilter | 
|   96 { |   97 { | 
|   97  |   98  | 
|   98 public: |   99 public: | 
|   99  |  100  | 
|  100   enum EContentType |  | 
|  101   { |  | 
|  102     contentTypeUnknown = 0, |  | 
|  103     contentTypeOther = 1, |  | 
|  104     contentTypeScript = 2, |  | 
|  105     contentTypeImage = 4, |  | 
|  106     contentTypeStyleSheet = 8, |  | 
|  107     contentTypeObject = 16, |  | 
|  108     contentTypeSubdocument = 32, |  | 
|  109     contentTypeDocument = 64, |  | 
|  110     contentTypeBackground = 256, |  | 
|  111     contentTypeXbl = 512, |  | 
|  112     contentTypePing = 1024, |  | 
|  113     contentTypeXmlHttpRequest = 2048, |  | 
|  114     contentTypeObjectSubrequest = 4096, |  | 
|  115     contentTypeDtd = 8192, |  | 
|  116     contentTypeAny = 65535 |  | 
|  117   } contentType; |  | 
|  118  |  101  | 
|  119   enum EFilterType |  102   enum EFilterType | 
|  120   { |  103   { | 
|  121     filterTypeBlocking = 0, |  104     filterTypeBlocking = 0, | 
|  122     filterTypeWhiteList = 1, |  105     filterTypeWhiteList = 1, | 
|  123     filterTypeElementHide = 2, |  106     filterTypeElementHide = 2, | 
|  124     filterTypeUnknown = 3 |  107     filterTypeUnknown = 3 | 
|  125   } filterType; |  108   } filterType; | 
|  126  |  109  | 
|  127   int m_contentType; |  110   AdblockPlus::FilterEngine::ContentType m_contentType; | 
|  128   enum EFilterType m_filterType; |  111   enum EFilterType m_filterType; | 
|  129   bool m_isMatchCase; |  112   bool m_isMatchCase; | 
|  130   bool m_isFirstParty; |  113   bool m_isFirstParty; | 
|  131   bool m_isThirdParty; |  114   bool m_isThirdParty; | 
|  132   bool m_isFromStart; |  115   bool m_isFromStart; | 
|  133   bool m_isFromEnd; |  116   bool m_isFromEnd; | 
|  134   int m_hitCount; |  117   int m_hitCount; | 
|  135   CString m_filterText; |  118   CString m_filterText; | 
|  136  |  119  | 
|  137   CFilter(const CFilter&); |  120   CFilter(const CFilter&); | 
|  138   CFilter(); |  121   CFilter(); | 
|  139 }; |  122 }; | 
|  140  |  123  | 
|  141 // ============================================================================ |  124 // ============================================================================ | 
|  142 // CPluginFilter |  125 // CPluginFilter | 
|  143 // ============================================================================ |  126 // ============================================================================ | 
|  144  |  127  | 
|  145 class CPluginFilter |  128 class CPluginFilter | 
|  146 { |  129 { | 
|  147  |  130  | 
|  148 private: |  131 private: | 
|  149  |  132  | 
|  150   CString m_dataPath; |  133   CString m_dataPath; | 
|  151  |  134  | 
|  152   std::map<int, CString> m_contentMapText; |  | 
|  153    |  | 
|  154   typedef std::map<DWORD, CFilter> TFilterMap; |  135   typedef std::map<DWORD, CFilter> TFilterMap; | 
|  155   typedef std::vector<CFilter> TFilterMapDefault; |  136   typedef std::vector<CFilter> TFilterMapDefault; | 
|  156  |  137  | 
|  157   // (Tag,Name) -> Filter |  138   // (Tag,Name) -> Filter | 
|  158   typedef std::multimap<std::pair<CString,CString>, CFilterElementHide> TFilterE
     lementHideTagsNamed; |  139   typedef std::multimap<std::pair<CString,CString>, CFilterElementHide> TFilterE
     lementHideTagsNamed; | 
|  159  |  140  | 
|  160   // Tag -> Filter |  141   // Tag -> Filter | 
|  161   typedef std::multimap<CString, CFilterElementHide> TFilterElementHideTags; |  142   typedef std::multimap<CString, CFilterElementHide> TFilterElementHideTags; | 
|  162  |  143  | 
|  163  |  144  | 
| (...skipping 11 matching lines...) Expand all  Loading... | 
|  175   CPluginFilter(const CString& dataPath = ""); |  156   CPluginFilter(const CString& dataPath = ""); | 
|  176  |  157  | 
|  177   bool LoadHideFilters(std::vector<std::wstring> filters); |  158   bool LoadHideFilters(std::vector<std::wstring> filters); | 
|  178  |  159  | 
|  179   bool AddFilterElementHide(CString filter); |  160   bool AddFilterElementHide(CString filter); | 
|  180  |  161  | 
|  181  |  162  | 
|  182   bool IsElementHidden(const std::wstring& tag, IHTMLElement* pEl, const std::ws
     tring& domain, const std::wstring& indent) const; |  163   bool IsElementHidden(const std::wstring& tag, IHTMLElement* pEl, const std::ws
     tring& domain, const std::wstring& indent) const; | 
|  183  |  164  | 
|  184  |  165  | 
|  185   bool ShouldBlock(const std::wstring& src, int contentType, const std::wstring&
      domain, bool addDebug=false) const; |  166   bool ShouldBlock(const std::wstring& src, AdblockPlus::FilterEngine::ContentTy
     pe contentType, const std::wstring& domain, bool addDebug=false) const; | 
|  186  |  167  | 
|  187   HANDLE hideFiltersLoadedEvent; |  168   HANDLE hideFiltersLoadedEvent; | 
|  188 }; |  169 }; | 
|  189  |  170  | 
|  190  |  171  | 
|  191 #endif // _PLUGIN_FILTER_H_ |  172 #endif // _PLUGIN_FILTER_H_ | 
| OLD | NEW |