Rietveld Code Review Tool
Help | Bug tracker | Discussion group | Source code

Side by Side Diff: src/plugin/PluginFilter.cpp

Issue 4912420225024000: Issue #1234 - Convert strings associated with URL's (Closed)
Patch Set: Created Oct. 14, 2014, 10:17 p.m.
Left:
Right:
Use n/p to move between diff chunks; N/P to move between comments.
Jump to:
View unified diff | Download patch
OLDNEW
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 513 matching lines...) Expand 10 before | Expand all | Expand 10 after
524 if (!id.IsEmpty()) 524 if (!id.IsEmpty())
525 { 525 {
526 std::pair<TFilterElementHideTagsNamed::const_iterator, TFilterElementHideT agsNamed::const_iterator> idItEnum = 526 std::pair<TFilterElementHideTagsNamed::const_iterator, TFilterElementHideT agsNamed::const_iterator> idItEnum =
527 m_elementHideTagsId.equal_range(std::make_pair(tagCString, id)); 527 m_elementHideTagsId.equal_range(std::make_pair(tagCString, id));
528 for (TFilterElementHideTagsNamed::const_iterator idIt = idItEnum.first; id It != idItEnum.second; idIt ++) 528 for (TFilterElementHideTagsNamed::const_iterator idIt = idItEnum.first; id It != idItEnum.second; idIt ++)
529 { 529 {
530 if (idIt->second.IsMatchFilterElementHide(pEl)) 530 if (idIt->second.IsMatchFilterElementHide(pEl))
531 { 531 {
532 #ifdef ENABLE_DEBUG_RESULT 532 #ifdef ENABLE_DEBUG_RESULT
533 DEBUG_HIDE_EL(indent + "HideEl::Found (tag/id) filter:" + idIt->second .m_filterText) 533 DEBUG_HIDE_EL(indent + "HideEl::Found (tag/id) filter:" + idIt->second .m_filterText)
534 CPluginDebug::DebugResultHiding(tagCString, "id:" + id, idIt->second .m_filterText); 534 CPluginDebug::DebugResultHiding(tagCString, L"id:" + id, idIt->secon d.m_filterText);
535 #endif 535 #endif
536 return true; 536 return true;
537 } 537 }
538 } 538 }
539 539
540 // Search general id 540 // Search general id
541 idItEnum = m_elementHideTagsId.equal_range(std::make_pair("", id)); 541 idItEnum = m_elementHideTagsId.equal_range(std::make_pair("", id));
542 for (TFilterElementHideTagsNamed::const_iterator idIt = idItEnum.first; id It != idItEnum.second; idIt ++) 542 for (TFilterElementHideTagsNamed::const_iterator idIt = idItEnum.first; id It != idItEnum.second; idIt ++)
543 { 543 {
544 if (idIt->second.IsMatchFilterElementHide(pEl)) 544 if (idIt->second.IsMatchFilterElementHide(pEl))
545 { 545 {
546 #ifdef ENABLE_DEBUG_RESULT 546 #ifdef ENABLE_DEBUG_RESULT
547 DEBUG_HIDE_EL(indent + "HideEl::Found (?/id) filter:" + idIt->second.m _filterText) 547 DEBUG_HIDE_EL(indent + "HideEl::Found (?/id) filter:" + idIt->second.m _filterText)
548 CPluginDebug::DebugResultHiding(tagCString, "id:" + id, idIt->second .m_filterText); 548 CPluginDebug::DebugResultHiding(tagCString, L"id:" + id, idIt->secon d.m_filterText);
549 #endif 549 #endif
550 return true; 550 return true;
551 } 551 }
552 } 552 }
553 } 553 }
554 554
555 // Search tag/className filters 555 // Search tag/className filters
556 if (!classNames.IsEmpty()) 556 if (!classNames.IsEmpty())
557 { 557 {
558 int pos = 0; 558 int pos = 0;
559 CString className = classNames.Tokenize(L" \t\n\r", pos); 559 CString className = classNames.Tokenize(L" \t\n\r", pos);
560 while (pos >= 0) 560 while (pos >= 0)
561 { 561 {
562 std::pair<TFilterElementHideTagsNamed::const_iterator, TFilterElementHid eTagsNamed::const_iterator> classItEnum = 562 std::pair<TFilterElementHideTagsNamed::const_iterator, TFilterElementHid eTagsNamed::const_iterator> classItEnum =
563 m_elementHideTagsClass.equal_range(std::make_pair(tagCString, classNam e)); 563 m_elementHideTagsClass.equal_range(std::make_pair(tagCString, classNam e));
564 564
565 for (TFilterElementHideTagsNamed::const_iterator classIt = classItEnum.f irst; classIt != classItEnum.second; ++classIt) 565 for (TFilterElementHideTagsNamed::const_iterator classIt = classItEnum.f irst; classIt != classItEnum.second; ++classIt)
566 { 566 {
567 if (classIt->second.IsMatchFilterElementHide(pEl)) 567 if (classIt->second.IsMatchFilterElementHide(pEl))
568 { 568 {
569 #ifdef ENABLE_DEBUG_RESULT 569 #ifdef ENABLE_DEBUG_RESULT
570 DEBUG_HIDE_EL(indent + "HideEl::Found (tag/class) filter:" + classIt ->second.m_filterText) 570 DEBUG_HIDE_EL(indent + "HideEl::Found (tag/class) filter:" + classIt ->second.m_filterText)
571 CPluginDebug::DebugResultHiding(tagCString, "class:" + className, classIt->second.m_filterText); 571 CPluginDebug::DebugResultHiding(tagCString, L"class:" + className, classIt->second.m_filterText);
572 #endif 572 #endif
573 return true; 573 return true;
574 } 574 }
575 } 575 }
576 576
577 // Search general class name 577 // Search general class name
578 classItEnum = m_elementHideTagsClass.equal_range(std::make_pair("", clas sName)); 578 classItEnum = m_elementHideTagsClass.equal_range(std::make_pair("", clas sName));
579 for (TFilterElementHideTagsNamed::const_iterator classIt = classItEnum.f irst; classIt != classItEnum.second; ++ classIt) 579 for (TFilterElementHideTagsNamed::const_iterator classIt = classItEnum.f irst; classIt != classItEnum.second; ++ classIt)
580 { 580 {
581 if (classIt->second.IsMatchFilterElementHide(pEl)) 581 if (classIt->second.IsMatchFilterElementHide(pEl))
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after
664 } 664 }
665 665
666 m_elementHideTags.clear(); 666 m_elementHideTags.clear();
667 m_elementHideTagsId.clear(); 667 m_elementHideTagsId.clear();
668 m_elementHideTagsClass.clear(); 668 m_elementHideTagsClass.clear();
669 } 669 }
670 } 670 }
671 671
672 bool CPluginFilter::ShouldBlock(const std::wstring& src, int contentType, const std::wstring& domain, bool addDebug) const 672 bool CPluginFilter::ShouldBlock(const std::wstring& src, int contentType, const std::wstring& domain, bool addDebug) const
673 { 673 {
674 CString srcCString = to_CString(src); 674 CString srcCString = ToCString(src);
675 srcCString.Trim();
676 std::wstring srcTrimmed = ToWstring(srcCString);
675 677
676 // We should not block the empty string, so all filtering does not make sense 678 // We should not block the empty string, so all filtering does not make sense
677 // Therefore we just return 679 // Therefore we just return
678 if (srcCString.Trim().IsEmpty()) 680 if (srcTrimmed.empty())
679 { 681 {
680 return false; 682 return false;
681 } 683 }
682
683 CPluginSettings* settings = CPluginSettings::GetInstance(); 684 CPluginSettings* settings = CPluginSettings::GetInstance();
684 685
685 CString type; 686 CString type;
686 if (addDebug) 687 if (addDebug)
687 { 688 {
688 type = "OTHER"; 689 type = "OTHER";
689 690
690 std::map<int,CString>::const_iterator it = m_contentMapText.find(contentType ); 691 std::map<int,CString>::const_iterator it = m_contentMapText.find(contentType );
691 if (it != m_contentMapText.end()) 692 if (it != m_contentMapText.end())
692 { 693 {
693 type = it->second; 694 type = it->second;
694 } 695 }
695 } 696 }
696 697
697 CPluginClient* client = CPluginClient::GetInstance(); 698 CPluginClient* client = CPluginClient::GetInstance();
698 if (client->Matches(to_wstring(srcCString), to_wstring(type), domain)) 699 if (client->Matches(srcTrimmed, to_wstring(type), domain))
699 { 700 {
700 if (addDebug) 701 if (addDebug)
701 { 702 {
702 DEBUG_FILTER("Filter::ShouldBlock " + type + " YES") 703 DEBUG_FILTER("Filter::ShouldBlock " + type + " YES")
703 704
704 #ifdef ENABLE_DEBUG_RESULT 705 #ifdef ENABLE_DEBUG_RESULT
705 CPluginDebug::DebugResultBlocking(type, srcCString, domain); 706 CPluginDebug::DebugResultBlocking(type, srcTrimmed, domain);
706 #endif 707 #endif
707 } 708 }
708 return true; 709 return true;
709 } 710 }
710 return false; 711 return false;
711 } 712 }
OLDNEW

Powered by Google App Engine
This is Rietveld