| OLD | NEW | 
|---|
| 1 #ifndef _PLUGIN_FILTER_H_ | 1 #ifndef _PLUGIN_FILTER_H_ | 
| 2 #define _PLUGIN_FILTER_H_ | 2 #define _PLUGIN_FILTER_H_ | 
| 3 | 3 | 
| 4 | 4 | 
| 5 #include "PluginTypedef.h" | 5 #include "PluginTypedef.h" | 
| 6 #include <memory> | 6 #include <memory> | 
|  | 7 #include <AdblockPlus/FilterEngine.h> | 
| 7 | 8 | 
| 8 enum CFilterElementHideAttrPos | 9 enum CFilterElementHideAttrPos | 
| 9 { | 10 { | 
| 10   POS_NONE = 0, STARTING, ENDING, ANYWHERE, EXACT | 11   POS_NONE = 0, STARTING, ENDING, ANYWHERE, EXACT | 
| 11 }; | 12 }; | 
| 12 | 13 | 
| 13 enum CFilterElementHideAttrType | 14 enum CFilterElementHideAttrType | 
| 14 { | 15 { | 
| 15   TYPE_NONE = 0, STYLE, ID, CLASS | 16   TYPE_NONE = 0, STYLE, ID, CLASS | 
| 16 }; | 17 }; | 
| (...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 73 | 74 | 
| 74 // ============================================================================ | 75 // ============================================================================ | 
| 75 // CFilter | 76 // CFilter | 
| 76 // ============================================================================ | 77 // ============================================================================ | 
| 77 | 78 | 
| 78 class CFilter | 79 class CFilter | 
| 79 { | 80 { | 
| 80 | 81 | 
| 81 public: | 82 public: | 
| 82 | 83 | 
| 83   enum EContentType |  | 
| 84   { |  | 
| 85     contentTypeUnknown = 0, |  | 
| 86     contentTypeOther = 1, |  | 
| 87     contentTypeScript = 2, |  | 
| 88     contentTypeImage = 4, |  | 
| 89     contentTypeStyleSheet = 8, |  | 
| 90     contentTypeObject = 16, |  | 
| 91     contentTypeSubdocument = 32, |  | 
| 92     contentTypeDocument = 64, |  | 
| 93     contentTypeBackground = 256, |  | 
| 94     contentTypeXbl = 512, |  | 
| 95     contentTypePing = 1024, |  | 
| 96     contentTypeXmlHttpRequest = 2048, |  | 
| 97     contentTypeObjectSubrequest = 4096, |  | 
| 98     contentTypeDtd = 8192, |  | 
| 99     contentTypeAny = 65535 |  | 
| 100   } contentType; |  | 
| 101 | 84 | 
| 102   enum EFilterType | 85   enum EFilterType | 
| 103   { | 86   { | 
| 104     filterTypeBlocking = 0, | 87     filterTypeBlocking = 0, | 
| 105     filterTypeWhiteList = 1, | 88     filterTypeWhiteList = 1, | 
| 106     filterTypeElementHide = 2, | 89     filterTypeElementHide = 2, | 
| 107     filterTypeUnknown = 3 | 90     filterTypeUnknown = 3 | 
| 108   } filterType; | 91   } filterType; | 
| 109 | 92 | 
| 110   int m_contentType; | 93   AdblockPlus::FilterEngine::ContentType m_contentType; | 
| 111   enum EFilterType m_filterType; | 94   enum EFilterType m_filterType; | 
| 112   bool m_isMatchCase; | 95   bool m_isMatchCase; | 
| 113   bool m_isFirstParty; | 96   bool m_isFirstParty; | 
| 114   bool m_isThirdParty; | 97   bool m_isThirdParty; | 
| 115   bool m_isFromStart; | 98   bool m_isFromStart; | 
| 116   bool m_isFromEnd; | 99   bool m_isFromEnd; | 
| 117   int m_hitCount; | 100   int m_hitCount; | 
| 118   CString m_filterText; | 101   CString m_filterText; | 
| 119 | 102 | 
| 120   CFilter(const CFilter&); | 103   CFilter(const CFilter&); | 
| 121   CFilter(); | 104   CFilter(); | 
| 122 }; | 105 }; | 
| 123 | 106 | 
| 124 // ============================================================================ | 107 // ============================================================================ | 
| 125 // CPluginFilter | 108 // CPluginFilter | 
| 126 // ============================================================================ | 109 // ============================================================================ | 
| 127 | 110 | 
| 128 class CPluginFilter | 111 class CPluginFilter | 
| 129 { | 112 { | 
| 130 | 113 | 
| 131 private: | 114 private: | 
| 132 | 115 | 
| 133   CString m_dataPath; | 116   CString m_dataPath; | 
| 134 | 117 | 
| 135   std::map<int, CString> m_contentMapText; |  | 
| 136 |  | 
| 137   typedef std::map<DWORD, CFilter> TFilterMap; | 118   typedef std::map<DWORD, CFilter> TFilterMap; | 
| 138   typedef std::vector<CFilter> TFilterMapDefault; | 119   typedef std::vector<CFilter> TFilterMapDefault; | 
| 139 | 120 | 
| 140   // (Tag,Name) -> Filter | 121   // (Tag,Name) -> Filter | 
| 141   typedef std::multimap<std::pair<CString,CString>, CFilterElementHide> TFilterE
     lementHideTagsNamed; | 122   typedef std::multimap<std::pair<CString,CString>, CFilterElementHide> TFilterE
     lementHideTagsNamed; | 
| 142 | 123 | 
| 143   // Tag -> Filter | 124   // Tag -> Filter | 
| 144   typedef std::multimap<CString, CFilterElementHide> TFilterElementHideTags; | 125   typedef std::multimap<CString, CFilterElementHide> TFilterElementHideTags; | 
| 145 | 126 | 
| 146 | 127 | 
| (...skipping 11 matching lines...) Expand all  Loading... | 
| 158   CPluginFilter(const CString& dataPath = ""); | 139   CPluginFilter(const CString& dataPath = ""); | 
| 159 | 140 | 
| 160   bool LoadHideFilters(std::vector<std::wstring> filters); | 141   bool LoadHideFilters(std::vector<std::wstring> filters); | 
| 161 | 142 | 
| 162   bool AddFilterElementHide(CString filter); | 143   bool AddFilterElementHide(CString filter); | 
| 163 | 144 | 
| 164 | 145 | 
| 165   bool IsElementHidden(const std::wstring& tag, IHTMLElement* pEl, const std::ws
     tring& domain, const std::wstring& indent) const; | 146   bool IsElementHidden(const std::wstring& tag, IHTMLElement* pEl, const std::ws
     tring& domain, const std::wstring& indent) const; | 
| 166 | 147 | 
| 167 | 148 | 
| 168   bool ShouldBlock(const std::wstring& src, int contentType, const std::wstring&
      domain, bool addDebug=false) const; | 149   bool ShouldBlock(const std::wstring& src, AdblockPlus::FilterEngine::ContentTy
     pe contentType, const std::wstring& domain, bool addDebug=false) const; | 
| 169 | 150 | 
| 170   HANDLE hideFiltersLoadedEvent; | 151   HANDLE hideFiltersLoadedEvent; | 
| 171 }; | 152 }; | 
| 172 | 153 | 
| 173 | 154 | 
| 174 #endif // _PLUGIN_FILTER_H_ | 155 #endif // _PLUGIN_FILTER_H_ | 
| OLD | NEW | 
|---|