| OLD | NEW |
| 1 #include "PluginStdAfx.h" | 1 #include "PluginStdAfx.h" |
| 2 | 2 |
| 3 #include "PluginFilter.h" | 3 #include "PluginFilter.h" |
| 4 #include "PluginSettings.h" | 4 #include "PluginSettings.h" |
| 5 #include "PluginClient.h" | 5 #include "PluginClient.h" |
| 6 #include "PluginClientFactory.h" | 6 #include "PluginClientFactory.h" |
| 7 #include "PluginMutex.h" | 7 #include "PluginMutex.h" |
| 8 #include "PluginSettings.h" | 8 #include "PluginSettings.h" |
| 9 #include "PluginSystem.h" | 9 #include "PluginSystem.h" |
| 10 #include "PluginClass.h" | 10 #include "PluginClass.h" |
| (...skipping 547 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 558 if (!id.IsEmpty()) | 558 if (!id.IsEmpty()) |
| 559 { | 559 { |
| 560 std::pair<TFilterElementHideTagsNamed::const_iterator, TFilterElementHideT
agsNamed::const_iterator> idItEnum = | 560 std::pair<TFilterElementHideTagsNamed::const_iterator, TFilterElementHideT
agsNamed::const_iterator> idItEnum = |
| 561 m_elementHideTagsId.equal_range(std::make_pair(tagCString, id)); | 561 m_elementHideTagsId.equal_range(std::make_pair(tagCString, id)); |
| 562 for (TFilterElementHideTagsNamed::const_iterator idIt = idItEnum.first; id
It != idItEnum.second; idIt ++) | 562 for (TFilterElementHideTagsNamed::const_iterator idIt = idItEnum.first; id
It != idItEnum.second; idIt ++) |
| 563 { | 563 { |
| 564 if (idIt->second.IsMatchFilterElementHide(pEl)) | 564 if (idIt->second.IsMatchFilterElementHide(pEl)) |
| 565 { | 565 { |
| 566 #ifdef ENABLE_DEBUG_RESULT | 566 #ifdef ENABLE_DEBUG_RESULT |
| 567 DEBUG_HIDE_EL(indent + "HideEl::Found (tag/id) filter:" + idIt->second
.m_filterText) | 567 DEBUG_HIDE_EL(indent + "HideEl::Found (tag/id) filter:" + idIt->second
.m_filterText) |
| 568 CPluginDebug::DebugResultHiding(tagCString, "id:" + id, idIt->second
.m_filterText); | 568 CPluginDebug::DebugResultHiding(tagCString, L"id:" + id, idIt->secon
d.m_filterText); |
| 569 #endif | 569 #endif |
| 570 return true; | 570 return true; |
| 571 } | 571 } |
| 572 } | 572 } |
| 573 | 573 |
| 574 // Search general id | 574 // Search general id |
| 575 idItEnum = m_elementHideTagsId.equal_range(std::make_pair("", id)); | 575 idItEnum = m_elementHideTagsId.equal_range(std::make_pair("", id)); |
| 576 for (TFilterElementHideTagsNamed::const_iterator idIt = idItEnum.first; id
It != idItEnum.second; idIt ++) | 576 for (TFilterElementHideTagsNamed::const_iterator idIt = idItEnum.first; id
It != idItEnum.second; idIt ++) |
| 577 { | 577 { |
| 578 if (idIt->second.IsMatchFilterElementHide(pEl)) | 578 if (idIt->second.IsMatchFilterElementHide(pEl)) |
| 579 { | 579 { |
| 580 #ifdef ENABLE_DEBUG_RESULT | 580 #ifdef ENABLE_DEBUG_RESULT |
| 581 DEBUG_HIDE_EL(indent + "HideEl::Found (?/id) filter:" + idIt->second.m
_filterText) | 581 DEBUG_HIDE_EL(indent + "HideEl::Found (?/id) filter:" + idIt->second.m
_filterText) |
| 582 CPluginDebug::DebugResultHiding(tagCString, "id:" + id, idIt->second
.m_filterText); | 582 CPluginDebug::DebugResultHiding(tagCString, L"id:" + id, idIt->secon
d.m_filterText); |
| 583 #endif | 583 #endif |
| 584 return true; | 584 return true; |
| 585 } | 585 } |
| 586 } | 586 } |
| 587 } | 587 } |
| 588 | 588 |
| 589 // Search tag/className filters | 589 // Search tag/className filters |
| 590 if (!classNames.IsEmpty()) | 590 if (!classNames.IsEmpty()) |
| 591 { | 591 { |
| 592 int pos = 0; | 592 int pos = 0; |
| 593 CString className = classNames.Tokenize(L" \t\n\r", pos); | 593 CString className = classNames.Tokenize(L" \t\n\r", pos); |
| 594 while (pos >= 0) | 594 while (pos >= 0) |
| 595 { | 595 { |
| 596 std::pair<TFilterElementHideTagsNamed::const_iterator, TFilterElementHid
eTagsNamed::const_iterator> classItEnum = | 596 std::pair<TFilterElementHideTagsNamed::const_iterator, TFilterElementHid
eTagsNamed::const_iterator> classItEnum = |
| 597 m_elementHideTagsClass.equal_range(std::make_pair(tagCString, classNam
e)); | 597 m_elementHideTagsClass.equal_range(std::make_pair(tagCString, classNam
e)); |
| 598 | 598 |
| 599 for (TFilterElementHideTagsNamed::const_iterator classIt = classItEnum.f
irst; classIt != classItEnum.second; ++classIt) | 599 for (TFilterElementHideTagsNamed::const_iterator classIt = classItEnum.f
irst; classIt != classItEnum.second; ++classIt) |
| 600 { | 600 { |
| 601 if (classIt->second.IsMatchFilterElementHide(pEl)) | 601 if (classIt->second.IsMatchFilterElementHide(pEl)) |
| 602 { | 602 { |
| 603 #ifdef ENABLE_DEBUG_RESULT | 603 #ifdef ENABLE_DEBUG_RESULT |
| 604 DEBUG_HIDE_EL(indent + "HideEl::Found (tag/class) filter:" + classIt
->second.m_filterText) | 604 DEBUG_HIDE_EL(indent + "HideEl::Found (tag/class) filter:" + classIt
->second.m_filterText) |
| 605 CPluginDebug::DebugResultHiding(tagCString, "class:" + className,
classIt->second.m_filterText); | 605 CPluginDebug::DebugResultHiding(tagCString, L"class:" + className,
classIt->second.m_filterText); |
| 606 #endif | 606 #endif |
| 607 return true; | 607 return true; |
| 608 } | 608 } |
| 609 } | 609 } |
| 610 | 610 |
| 611 // Search general class name | 611 // Search general class name |
| 612 classItEnum = m_elementHideTagsClass.equal_range(std::make_pair("", clas
sName)); | 612 classItEnum = m_elementHideTagsClass.equal_range(std::make_pair("", clas
sName)); |
| 613 for (TFilterElementHideTagsNamed::const_iterator classIt = classItEnum.f
irst; classIt != classItEnum.second; ++ classIt) | 613 for (TFilterElementHideTagsNamed::const_iterator classIt = classItEnum.f
irst; classIt != classItEnum.second; ++ classIt) |
| 614 { | 614 { |
| 615 if (classIt->second.IsMatchFilterElementHide(pEl)) | 615 if (classIt->second.IsMatchFilterElementHide(pEl)) |
| (...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 698 } | 698 } |
| 699 | 699 |
| 700 m_elementHideTags.clear(); | 700 m_elementHideTags.clear(); |
| 701 m_elementHideTagsId.clear(); | 701 m_elementHideTagsId.clear(); |
| 702 m_elementHideTagsClass.clear(); | 702 m_elementHideTagsClass.clear(); |
| 703 } | 703 } |
| 704 } | 704 } |
| 705 | 705 |
| 706 bool CPluginFilter::ShouldBlock(const std::wstring& src, int contentType, const
std::wstring& domain, bool addDebug) const | 706 bool CPluginFilter::ShouldBlock(const std::wstring& src, int contentType, const
std::wstring& domain, bool addDebug) const |
| 707 { | 707 { |
| 708 CString srcCString = to_CString(src); | 708 std::wstring srcTrimmed = TrimString(src); |
| 709 | 709 |
| 710 // We should not block the empty string, so all filtering does not make sense | 710 // We should not block the empty string, so all filtering does not make sense |
| 711 // Therefore we just return | 711 // Therefore we just return |
| 712 if (srcCString.Trim().IsEmpty()) | 712 if (srcTrimmed.empty()) |
| 713 { | 713 { |
| 714 return false; | 714 return false; |
| 715 } | 715 } |
| 716 | |
| 717 CPluginSettings* settings = CPluginSettings::GetInstance(); | 716 CPluginSettings* settings = CPluginSettings::GetInstance(); |
| 718 | 717 |
| 719 CString type; | 718 CString type; |
| 720 if (addDebug) | 719 if (addDebug) |
| 721 { | 720 { |
| 722 type = "OTHER"; | 721 type = "OTHER"; |
| 723 | 722 |
| 724 std::map<int,CString>::const_iterator it = m_contentMapText.find(contentType
); | 723 std::map<int,CString>::const_iterator it = m_contentMapText.find(contentType
); |
| 725 if (it != m_contentMapText.end()) | 724 if (it != m_contentMapText.end()) |
| 726 { | 725 { |
| 727 type = it->second; | 726 type = it->second; |
| 728 } | 727 } |
| 729 } | 728 } |
| 730 | 729 |
| 731 CPluginClient* client = CPluginClient::GetInstance(); | 730 CPluginClient* client = CPluginClient::GetInstance(); |
| 732 if (client->Matches(to_wstring(srcCString), to_wstring(type), domain)) | 731 if (client->Matches(srcTrimmed, to_wstring(type), domain)) |
| 733 { | 732 { |
| 734 if (addDebug) | 733 if (addDebug) |
| 735 { | 734 { |
| 736 DEBUG_FILTER("Filter::ShouldBlock " + type + " YES") | 735 DEBUG_FILTER("Filter::ShouldBlock " + type + " YES") |
| 737 | 736 |
| 738 #ifdef ENABLE_DEBUG_RESULT | 737 #ifdef ENABLE_DEBUG_RESULT |
| 739 CPluginDebug::DebugResultBlocking(type, srcCString, domain); | 738 CPluginDebug::DebugResultBlocking(type, srcTrimmed, domain); |
| 740 #endif | 739 #endif |
| 741 } | 740 } |
| 742 return true; | 741 return true; |
| 743 } | 742 } |
| 744 #ifdef ENABLE_DEBUG_RESULT | 743 #ifdef ENABLE_DEBUG_RESULT |
| 745 CPluginDebug::DebugResultIgnoring(type, srcCString, domain); | 744 CPluginDebug::DebugResultIgnoring(type, srcTrimmed, domain); |
| 746 #endif | 745 #endif |
| 747 return false; | 746 return false; |
| 748 } | 747 } |
| OLD | NEW |