 Issue 5316782940225536:
  Issue 1557 - Update to the recent libadblockplus to reduce additional updates in the logic later.  (Closed)
    
  
    Issue 5316782940225536:
  Issue 1557 - Update to the recent libadblockplus to reduce additional updates in the logic later.  (Closed) 
  | Index: src/plugin/PluginWbPassThrough.cpp | 
| =================================================================== | 
| --- a/src/plugin/PluginWbPassThrough.cpp | 
| +++ b/src/plugin/PluginWbPassThrough.cpp | 
| @@ -1,20 +1,20 @@ | 
| -/* | 
| - * This file is part of Adblock Plus <https://adblockplus.org/>, | 
| - * Copyright (C) 2006-2015 Eyeo GmbH | 
| - * | 
| - * Adblock Plus is free software: you can redistribute it and/or modify | 
| - * it under the terms of the GNU General Public License version 3 as | 
| - * published by the Free Software Foundation. | 
| - * | 
| - * Adblock Plus is distributed in the hope that it will be useful, | 
| - * but WITHOUT ANY WARRANTY; without even the implied warranty of | 
| - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | 
| - * GNU General Public License for more details. | 
| - * | 
| - * You should have received a copy of the GNU General Public License | 
| - * along with Adblock Plus. If not, see <http://www.gnu.org/licenses/>. | 
| - */ | 
| - | 
| +/* | 
| + * This file is part of Adblock Plus <https://adblockplus.org/>, | 
| + * Copyright (C) 2006-2015 Eyeo GmbH | 
| + * | 
| + * Adblock Plus is free software: you can redistribute it and/or modify | 
| + * it under the terms of the GNU General Public License version 3 as | 
| + * published by the Free Software Foundation. | 
| + * | 
| + * Adblock Plus is distributed in the hope that it will be useful, | 
| + * but WITHOUT ANY WARRANTY; without even the implied warranty of | 
| + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | 
| + * GNU General Public License for more details. | 
| + * | 
| + * You should have received a copy of the GNU General Public License | 
| + * along with Adblock Plus. If not, see <http://www.gnu.org/licenses/>. | 
| + */ | 
| + | 
| #include "PluginStdAfx.h" | 
| #include "PluginWbPassThrough.h" | 
| @@ -38,6 +38,8 @@ | 
| "</body>" | 
| "</html>"; | 
| + typedef AdblockPlus::FilterEngine::ContentType ContentType; | 
| + | 
| template <class T> | 
| T ExtractHttpHeader(const T& allHeaders, const T& targetHeaderNameWithColon, const T& delimiter) | 
| { | 
| @@ -91,43 +93,43 @@ | 
| WBPassthruSink::WBPassthruSink() | 
| : m_currentPositionOfSentPage(0) | 
| - , m_contentType(CFilter::EContentType::contentTypeAny) | 
| + , m_contentType(ContentType::CONTENT_TYPE_OTHER) | 
| 
Eric
2015/02/02 06:58:27
Removing member variables means removing initializ
 | 
| , m_isCustomResponse(false) | 
| { | 
| } | 
| -int WBPassthruSink::GetContentTypeFromMimeType(const CString& mimeType) | 
| +ContentType WBPassthruSink::GetContentTypeFromMimeType(const CString& mimeType) | 
| { | 
| if (mimeType.Find(L"image/") >= 0) | 
| { | 
| - return CFilter::contentTypeImage; | 
| + return ContentType::CONTENT_TYPE_IMAGE; | 
| } | 
| if (mimeType.Find(L"text/css") >= 0) | 
| { | 
| - return CFilter::contentTypeStyleSheet; | 
| + return ContentType::CONTENT_TYPE_STYLESHEET; | 
| } | 
| if ((mimeType.Find(L"application/javascript") >= 0) || (mimeType.Find(L"application/json") >= 0)) | 
| { | 
| - return CFilter::contentTypeScript; | 
| + return ContentType::CONTENT_TYPE_SCRIPT; | 
| } | 
| if (mimeType.Find(L"application/x-shockwave-flash") >= 0) | 
| { | 
| - return CFilter::contentTypeObject; | 
| + return ContentType::CONTENT_TYPE_OBJECT; | 
| } | 
| if (mimeType.Find(L"text/html") >= 0) | 
| { | 
| - return CFilter::contentTypeSubdocument; | 
| + return ContentType::CONTENT_TYPE_SUBDOCUMENT; | 
| } | 
| // It is important to have this check last, since it is rather generic, and might overlay text/html, for example | 
| if (mimeType.Find(L"xml") >= 0) | 
| { | 
| - return CFilter::contentTypeXmlHttpRequest; | 
| + return ContentType::CONTENT_TYPE_XMLHTTPREQUEST; | 
| } | 
| - return CFilter::contentTypeAny; | 
| + return ContentType::CONTENT_TYPE_OTHER; | 
| } | 
| -int WBPassthruSink::GetContentTypeFromURL(const std::wstring& src) | 
| +ContentType WBPassthruSink::GetContentTypeFromURL(const std::wstring& src) | 
| { | 
| CString srcLegacy = ToCString(src); | 
| CString srcExt = srcLegacy; | 
| @@ -140,45 +142,45 @@ | 
| int lastDotIndex = srcExt.ReverseFind('.'); | 
| if (lastDotIndex < 0) | 
| - return CFilter::contentTypeAny; | 
| + return ContentType::CONTENT_TYPE_OTHER; | 
| CString ext = srcExt.Mid(lastDotIndex); | 
| if (ext == L".jpg" || ext == L".gif" || ext == L".png" || ext == L".jpeg") | 
| { | 
| - return CFilter::contentTypeImage; | 
| + return ContentType::CONTENT_TYPE_IMAGE; | 
| } | 
| else if (ext == L".css") | 
| { | 
| - return CFilter::contentTypeStyleSheet; | 
| + return ContentType::CONTENT_TYPE_STYLESHEET; | 
| } | 
| else if (ext.Right(3) == L".js") | 
| { | 
| - return CFilter::contentTypeScript; | 
| + return ContentType::CONTENT_TYPE_SCRIPT; | 
| } | 
| else if (ext == L".xml") | 
| { | 
| - return CFilter::contentTypeXmlHttpRequest; | 
| + return ContentType::CONTENT_TYPE_XMLHTTPREQUEST; | 
| } | 
| else if (ext == L".swf") | 
| { | 
| - return CFilter::contentTypeObject; | 
| + return ContentType::CONTENT_TYPE_OBJECT; | 
| } | 
| else if (ext == L".jsp" || ext == L".php" || ext == L".html") | 
| { | 
| - return CFilter::contentTypeSubdocument; | 
| + return ContentType::CONTENT_TYPE_SUBDOCUMENT; | 
| } | 
| - return CFilter::contentTypeAny; | 
| + return ContentType::CONTENT_TYPE_OTHER; | 
| } | 
| -int WBPassthruSink::GetContentType(const CString& mimeType, const std::wstring& domain, const std::wstring& src) | 
| +ContentType WBPassthruSink::GetContentType(const CString& mimeType, const std::wstring& domain, const std::wstring& src) | 
| { | 
| // No referer or mime type | 
| // BINDSTRING_XDR_ORIGIN works only for IE v8+ | 
| if (mimeType.IsEmpty() && domain.empty() && AdblockPlus::IE::InstalledMajorVersion() >= 8) | 
| { | 
| - return CFilter::contentTypeXmlHttpRequest; | 
| + return ContentType::CONTENT_TYPE_XMLHTTPREQUEST; | 
| } | 
| - int contentType = GetContentTypeFromMimeType(mimeType); | 
| - if (contentType == CFilter::contentTypeAny) | 
| + ContentType contentType = GetContentTypeFromMimeType(mimeType); | 
| + if (contentType == ContentType::CONTENT_TYPE_OTHER) | 
| { | 
| contentType = GetContentTypeFromURL(src); | 
| } | 
| @@ -319,6 +321,7 @@ | 
| } | 
| m_boundDomain = TrimString(m_boundDomain); | 
| m_contentType = GetContentType(ATL::CString(acceptHeader.c_str()), m_boundDomain, src); | 
| 
Eric
2015/02/02 06:58:27
Declare this variable 'auto' on this line.
Well,
 | 
| + | 
| CPluginTab* tab = CPluginClass::GetTab(::GetCurrentThreadId()); | 
| CPluginClient* client = CPluginClient::GetInstance(); | 
| @@ -334,28 +337,28 @@ | 
| { | 
| if (tab->IsFrameCached(src)) | 
| { | 
| - m_contentType = CFilter::contentTypeSubdocument; | 
| + m_contentType = ContentType::CONTENT_TYPE_SUBDOCUMENT; | 
| } | 
| } | 
| } | 
| if (IsFlashRequest(pszAdditionalHeaders)) | 
| { | 
| - m_contentType = CFilter::EContentType::contentTypeObjectSubrequest; | 
| + m_contentType = ContentType::CONTENT_TYPE_OBJECT_SUBREQUEST; | 
| } | 
| if (pszAdditionalHeaders && *pszAdditionalHeaders && IsXmlHttpRequest(*pszAdditionalHeaders)) | 
| { | 
| - m_contentType = CFilter::EContentType::contentTypeXmlHttpRequest; | 
| + m_contentType = ContentType::CONTENT_TYPE_XMLHTTPREQUEST; | 
| } | 
| if (client->ShouldBlock(szURL, m_contentType, m_boundDomain, /*debug flag but must be set*/true)) | 
| { | 
| // NOTE: Feeding custom HTML to Flash, instead of original object subrequest | 
| - // doesn't have much sense. It also can manifest in unwanted result | 
| - // like video being blocked (See https://issues.adblockplus.org/ticket/1669) | 
| + // doesn't have much sense. It also can manifest in unwanted result | 
| + // like video being blocked (See https://issues.adblockplus.org/ticket/1669) | 
| // So we report blocked object subrequests as failed, not just empty HTML. | 
| - m_isCustomResponse = m_contentType != CFilter::contentTypeObjectSubrequest; | 
| + m_isCustomResponse = m_contentType != ContentType::CONTENT_TYPE_OBJECT_SUBREQUEST; | 
| return E_ABORT; | 
| } | 
| return nativeHr; |