| Index: src/engine/Main.cpp |
| =================================================================== |
| --- a/src/engine/Main.cpp |
| +++ b/src/engine/Main.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 <AdblockPlus.h> |
| #include <functional> |
| #include <vector> |
| @@ -28,6 +28,7 @@ |
| #include "../shared/Version.h" |
| #include "../shared/CriticalSection.h" |
| #include "../shared/IE_version.h" |
| +#include "../shared/ContentType.h" |
| #include "AdblockPlus.h" |
| #include "Debug.h" |
| #include "Updater.h" |
| @@ -106,11 +107,16 @@ |
| case Communication::PROC_MATCHES: |
| { |
| std::string url; |
| - std::string type; |
| + using namespace AdblockPlus; |
| + FilterEngine::ContentType contentType; |
| std::string documentUrl; |
| - request >> url >> type >> documentUrl; |
| - referrerMapping.Add(url, documentUrl); |
| - AdblockPlus::FilterPtr filter = filterEngine->Matches(url, type, referrerMapping.BuildReferrerChain(documentUrl)); |
| + request >> url >> contentType >> documentUrl; |
| + auto isFrame = contentType == FilterEngine::ContentType::CONTENT_TYPE_SUBDOCUMENT ? |
| + ReferrerMapping::FrameIndicator::FRAME_INDICATOR_FRAME: |
| + ReferrerMapping::FrameIndicator::FRAME_INDICATOR_NOT_FRAME; |
| + |
| + referrerMapping.Add(url, documentUrl, isFrame); |
| + AdblockPlus::FilterPtr filter = filterEngine->Matches(url, contentType, referrerMapping.BuildFrameStructure(documentUrl)); |
| response << (filter && filter->GetType() != AdblockPlus::Filter::TYPE_EXCEPTION); |
| break; |
| } |
| @@ -210,7 +216,8 @@ |
| { |
| std::string url; |
| request >> url; |
| - AdblockPlus::FilterPtr match = filterEngine->Matches(url, "DOCUMENT", url); |
| + AdblockPlus::FilterPtr match = filterEngine->Matches(url, |
| + AdblockPlus::FilterEngine::ContentType::CONTENT_TYPE_DOCUMENT, url); |
| response << (match && match->GetType() == AdblockPlus::Filter::TYPE_EXCEPTION); |
| break; |
| } |
| @@ -218,7 +225,8 @@ |
| { |
| std::string url; |
| request >> url; |
| - AdblockPlus::FilterPtr match = filterEngine->Matches(url, "ELEMHIDE", url); |
| + AdblockPlus::FilterPtr match = filterEngine->Matches(url, |
| + AdblockPlus::FilterEngine::ContentType::CONTENT_TYPE_ELEMHIDE, url); |
| response << (match && match->GetType() == AdblockPlus::Filter::TYPE_EXCEPTION); |
| break; |
| } |