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

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

Issue 6567422169448448: Issue 119 - Switch to injecting CSS for element hiding (Closed)
Patch Set: rebase, improve memory handling (OnQuit) and improve code organizing Created April 27, 2016, 1:10 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 /* 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-2016 Eyeo GmbH 3 * Copyright (C) 2006-2016 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
(...skipping 405 matching lines...) Expand 10 before | Expand all | Expand 10 after
416 416
417 return true; 417 return true;
418 } 418 }
419 419
420 420
421 421
422 // ============================================================================ 422 // ============================================================================
423 // CPluginFilter 423 // CPluginFilter
424 // ============================================================================ 424 // ============================================================================
425 425
426 CPluginFilter::CPluginFilter(const CString& dataPath) : m_dataPath(dataPath)
427 {
428 ClearFilters();
429 }
430
431
432 bool CPluginFilter::AddFilterElementHide(CString filterText) 426 bool CPluginFilter::AddFilterElementHide(CString filterText)
433 { 427 {
434 DEBUG_FILTER("Input: " + filterText + " filterFile" + filterFile); 428 DEBUG_FILTER("Input: " + filterText + " filterFile" + filterFile);
435 CriticalSection::Lock filterEngineLock(s_criticalSectionFilterMap); 429 CriticalSection::Lock filterEngineLock(s_criticalSectionFilterMap);
436 { 430 {
437 CString filterString = filterText; 431 CString filterString = filterText;
438 // Create filter descriptor 432 // Create filter descriptor
439 std::auto_ptr<CFilterElementHide> filter; 433 std::auto_ptr<CFilterElementHide> filter;
440 434
441 CString wholeFilterString = filterString; 435 CString wholeFilterString = filterString;
(...skipping 156 matching lines...) Expand 10 before | Expand all | Expand 10 after
598 CPluginDebug::DebugResultHiding(tag, L"-", ToWstring(tagIt->second.m_f ilterText)); 592 CPluginDebug::DebugResultHiding(tag, L"-", ToWstring(tagIt->second.m_f ilterText));
599 #endif 593 #endif
600 return true; 594 return true;
601 } 595 }
602 } 596 }
603 } 597 }
604 598
605 return false; 599 return false;
606 } 600 }
607 601
608 bool CPluginFilter::LoadHideFilters(std::vector<std::wstring> filters) 602 CPluginFilter::CPluginFilter(const std::vector<std::wstring>& filters)
609 { 603 {
610 ClearFilters(); 604 m_hideFilters = filters;
611 bool isRead = false;
612 CPluginClient* client = CPluginClient::GetInstance(); 605 CPluginClient* client = CPluginClient::GetInstance();
613 606
614 // Parse hide string 607 // Parse hide string
615 int pos = 0; 608 int pos = 0;
616 CriticalSection::Lock filterEngineLock(s_criticalSectionFilterMap); 609 CriticalSection::Lock filterEngineLock(s_criticalSectionFilterMap);
617 { 610 {
618 for (std::vector<std::wstring>::iterator it = filters.begin(); it < filters. end(); ++it) 611 for (auto it = filters.begin(); it < filters.end(); ++it)
619 { 612 {
620 CString filter((*it).c_str()); 613 CString filter((*it).c_str());
621 // If the line is not commented out 614 // If the line is not commented out
622 if (!filter.Trim().IsEmpty() && filter.GetAt(0) != '!' && filter.GetAt(0) != '[') 615 if (!filter.Trim().IsEmpty() && filter.GetAt(0) != '!' && filter.GetAt(0) != '[')
623 { 616 {
624 int filterType = 0; 617 int filterType = 0;
625 618
626 // See http://adblockplus.org/en/filters for further documentation 619 // See http://adblockplus.org/en/filters for further documentation
627 620
628 try 621 try
629 { 622 {
630 AddFilterElementHide(filter); 623 AddFilterElementHide(filter);
631 } 624 }
632 catch(...) 625 catch(...)
633 { 626 {
634 #ifdef ENABLE_DEBUG_RESULT 627 #ifdef ENABLE_DEBUG_RESULT
635 CPluginDebug::DebugResult(L"Error loading hide filter: " + ToWstring(f ilter)); 628 CPluginDebug::DebugResult(L"Error loading hide filter: " + ToWstring(f ilter));
636 #endif 629 #endif
637 } 630 }
638 } 631 }
639 } 632 }
640 } 633 }
641 634 }
642 return isRead;
643 }
644
645 void CPluginFilter::ClearFilters()
646 {
647 // Clear filter maps
648 CriticalSection::Lock filterEngineLock(s_criticalSectionFilterMap);
649 m_elementHideTags.clear();
650 m_elementHideTagsId.clear();
651 m_elementHideTagsClass.clear();
652 }
653
OLDNEW

Powered by Google App Engine
This is Rietveld