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

Unified Diff: Shared/AdblockPlusClient.cpp

Issue 9998007: Initial libadblockplus integration (Closed)
Patch Set: Created April 1, 2013, 9:55 p.m.
Use n/p to move between diff chunks; N/P to move between comments.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: Shared/AdblockPlusClient.cpp
===================================================================
--- a/Shared/AdblockPlusClient.cpp
+++ b/Shared/AdblockPlusClient.cpp
@@ -18,6 +18,10 @@
CAdblockPlusClient::CAdblockPlusClient() : CPluginClientBase()
{
m_filter = std::auto_ptr<CPluginFilter>(new CPluginFilter());
+ fileReader = std::auto_ptr<LibFileReader>(new LibFileReader());
+ errorCallback = std::auto_ptr<CerrErrorCallback>(new CerrErrorCallback());
+ jsEngine = std::auto_ptr<AdblockPlus::JsEngine>(new AdblockPlus::JsEngine(fileReader.get(), errorCallback.get()));
+ filterEngine = std::auto_ptr<AdblockPlus::FilterEngine>(new AdblockPlus::FilterEngine(*jsEngine));
}
CAdblockPlusClient::~CAdblockPlusClient()
{
@@ -45,6 +49,15 @@
return instance;
}
+bool CAdblockPlusClient::LoadFilters()
+{
+ return m_filter->LoadHideFilters(filterEngine->GetElementHidingRules());
+}
+
+AdblockPlus::FilterEngine* CAdblockPlusClient::GetFilterEngine()
+{
+ return filterEngine.get();
+}
bool CAdblockPlusClient::ShouldBlock(CString src, int contentType, const CString& domain, bool addDebug)
{
@@ -90,99 +103,6 @@
return isBlocked;
}
-void CAdblockPlusClient::RequestFilterDownload(const CString& filter, const CString& filterPath)
-{
- DEBUG_GENERAL(L"*** Requesting filter download:" + filter)
-
- m_criticalSectionFilter.Lock();
- {
- m_filterDownloads.insert(std::make_pair(filter, filterPath));
- }
- m_criticalSectionFilter.Unlock();
-}
-
-
-bool CAdblockPlusClient::DownloadFirstMissingFilter()
-{
- bool isDownloaded = false;
-
- CString filterFilename;
- CString filterDownloadPath;
-
- m_criticalSectionFilter.Lock();
- {
- TFilterFileList::iterator it = m_filterDownloads.begin();
- if (it != m_filterDownloads.end())
- {
- filterFilename = it->first;
- filterDownloadPath = it->second;
-
- m_filterDownloads.erase(it);
- }
- }
- m_criticalSectionFilter.Unlock();
-
- if (!filterFilename.IsEmpty() && m_filter->DownloadFilterFile(filterDownloadPath, filterFilename))
- {
- isDownloaded = true;
-
- CPluginSettings* settings = CPluginSettings::GetInstance();
-
- settings->IncrementTabVersion(SETTING_TAB_FILTER_VERSION);
- }
-
- return isDownloaded;
-}
-
-
-//in this method we read the filter that are in the persistent storage
-//then we read them and use these to create a new filterclass
-
-void CAdblockPlusClient::ReadFilters()
-{
- CPluginSettings* settings = CPluginSettings::GetInstance();
-
- // Check existence of filter file
- // if (settings->IsMainProcess())
- // {
- // CPluginFilter::CreateFilters();
- // }
-
- TFilterFileList filterFileNames;
-
- TFilterUrlList filters = settings->GetFilterUrlList();
- std::map<CString, CString> filterFileNameList = settings->GetFilterFileNamesList();
-
- // Remember first entry in the map, is the filename, second is the version of the filter
- for (TFilterUrlList::iterator it = filters.begin(); it != filters.end(); ++it)
- {
- DEBUG_FILTER(L"Filter::ReadFilters - adding url:" + it->first)
-
- CString filename = "";
- if (filterFileNameList.find(it->first) != filterFileNameList.end() )
- {
- filename = filterFileNameList.find(it->first)->second;
- }
- else
- {
- filename = it->first.Right(it->first.GetLength() - it->first.ReverseFind('/') - 1);
- }
- filterFileNames.insert(std::make_pair(filename, it->first));
- }
-
- // Create our filter class which can be used from now on
- std::auto_ptr<CPluginFilter> filter = std::auto_ptr<CPluginFilter>(new CPluginFilter(filterFileNames, CPluginSettings::GetDataPath()));
-
- m_criticalSectionFilter.Lock();
- {
- m_filter = filter;
- }
- m_criticalSectionFilter.Unlock();
-
- ClearWhiteListCache();
-}
-
-
bool CAdblockPlusClient::IsElementHidden(const CString& tag, IHTMLElement* pEl, const CString& domain, const CString& indent)
{
bool isHidden;

Powered by Google App Engine
This is Rietveld