OLD | NEW |
1 #include "PluginStdAfx.h" | 1 #include "PluginStdAfx.h" |
2 #include "PluginSettings.h" | 2 #include "PluginSettings.h" |
3 #include "PluginSystem.h" | 3 #include "PluginSystem.h" |
4 #include "PluginFilter.h" | 4 #include "PluginFilter.h" |
5 #include "PluginClientFactory.h" | 5 #include "PluginClientFactory.h" |
6 #include "PluginMutex.h" | 6 #include "PluginMutex.h" |
7 #include "PluginClass.h" | 7 #include "PluginClass.h" |
8 | 8 |
9 #include "AdblockPlusClient.h" | 9 #include "AdblockPlusClient.h" |
10 | 10 |
(...skipping 190 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
201 s_instance = client; | 201 s_instance = client; |
202 } | 202 } |
203 | 203 |
204 instance = s_instance; | 204 instance = s_instance; |
205 } | 205 } |
206 s_criticalSectionLocal.Unlock(); | 206 s_criticalSectionLocal.Unlock(); |
207 | 207 |
208 return instance; | 208 return instance; |
209 } | 209 } |
210 | 210 |
211 | 211 bool CAdblockPlusClient::ShouldBlock(const std::wstring& src, int contentType, c
onst std::wstring& domain, bool addDebug) |
212 bool CAdblockPlusClient::ShouldBlock(CString src, int contentType, const CString
& domain, bool addDebug) | |
213 { | 212 { |
214 bool isBlocked = false; | 213 bool isBlocked = false; |
215 | |
216 bool isCached = false; | 214 bool isCached = false; |
217 | |
218 CPluginSettings* settings = CPluginSettings::GetInstance(); | |
219 | |
220 m_criticalSectionCache.Lock(); | 215 m_criticalSectionCache.Lock(); |
221 { | 216 { |
222 std::map<CString,bool>::iterator it = m_cacheBlockedSources.find(src); | 217 auto it = m_cacheBlockedSources.find(src); |
223 | 218 |
224 isCached = it != m_cacheBlockedSources.end(); | 219 isCached = it != m_cacheBlockedSources.end(); |
225 if (isCached) | 220 if (isCached) |
226 { | 221 { |
227 isBlocked = it->second; | 222 isBlocked = it->second; |
228 } | 223 } |
229 } | 224 } |
230 m_criticalSectionCache.Unlock(); | 225 m_criticalSectionCache.Unlock(); |
231 | 226 |
232 if (!isCached) | 227 if (!isCached) |
233 { | 228 { |
234 m_criticalSectionFilter.Lock(); | 229 m_criticalSectionFilter.Lock(); |
235 { | 230 { |
236 isBlocked = m_filter->ShouldBlock(src, contentType, domain, addDebug); | 231 isBlocked = m_filter->ShouldBlock(src, contentType, domain, addDebug); |
237 } | 232 } |
238 m_criticalSectionFilter.Unlock(); | 233 m_criticalSectionFilter.Unlock(); |
239 | 234 |
240 | |
241 // Cache result, if content type is defined | 235 // Cache result, if content type is defined |
242 if (contentType != CFilter::contentTypeAny) | 236 if (contentType != CFilter::contentTypeAny) |
243 { | 237 { |
244 m_criticalSectionCache.Lock(); | 238 m_criticalSectionCache.Lock(); |
245 { | 239 { |
246 m_cacheBlockedSources[src] = isBlocked; | 240 m_cacheBlockedSources[src] = isBlocked; |
247 } | 241 } |
248 m_criticalSectionCache.Unlock(); | 242 m_criticalSectionCache.Unlock(); |
249 } | 243 } |
250 } | 244 } |
251 | |
252 | |
253 return isBlocked; | 245 return isBlocked; |
254 } | 246 } |
255 | 247 |
256 bool CAdblockPlusClient::IsElementHidden(const CString& tag, IHTMLElement* pEl,
const CString& domain, const CString& indent, CPluginFilter* filter) | 248 bool CAdblockPlusClient::IsElementHidden(const std::wstring& tag, IHTMLElement*
pEl, const std::wstring& domain, const std::wstring& indent, CPluginFilter* filt
er) |
257 { | 249 { |
258 bool isHidden; | 250 bool isHidden; |
259 m_criticalSectionFilter.Lock(); | 251 m_criticalSectionFilter.Lock(); |
260 { | 252 { |
261 isHidden = filter && filter->IsElementHidden(tag, pEl, domain, indent); | 253 isHidden = filter && filter->IsElementHidden(tag, pEl, domain, indent); |
262 } | 254 } |
263 m_criticalSectionFilter.Unlock(); | 255 m_criticalSectionFilter.Unlock(); |
264 return isHidden; | 256 return isHidden; |
265 } | 257 } |
266 | 258 |
(...skipping 283 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
550 Communication::OutputBuffer request; | 542 Communication::OutputBuffer request; |
551 request << Communication::PROC_GET_HOST << ToUtf8String(url); | 543 request << Communication::PROC_GET_HOST << ToUtf8String(url); |
552 | 544 |
553 Communication::InputBuffer response; | 545 Communication::InputBuffer response; |
554 if (!CallEngine(request, response)) | 546 if (!CallEngine(request, response)) |
555 return L""; | 547 return L""; |
556 std::string host; | 548 std::string host; |
557 response >> host; | 549 response >> host; |
558 return ToUtf16String(host); | 550 return ToUtf16String(host); |
559 } | 551 } |
OLD | NEW |