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

Unified Diff: include/AdblockPlus/FilterEngine.h

Issue 29364548: Issue 4188 - Update libadblockplus-android to use the latest libadblockplus (Closed)
Patch Set: recompiled for libadblockplus git:70ac2462a5e6437b5b1f58455b2e0172c33cc432. Duplicated on gihtub: https://github.com/4ntoine/libadblockplus-binaries/commit/5b9c89920c72f0b980a268bc80b73705c29a034a Created Dec. 5, 2016, 11:20 a.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: include/AdblockPlus/FilterEngine.h
diff --git a/include/AdblockPlus/FilterEngine.h b/include/AdblockPlus/FilterEngine.h
index 0af543ac6b709c227d033e8ef63e9ca71d17abf6..94b376eb8caadee35db2d4b96893ee5b0702b16d 100644
--- a/include/AdblockPlus/FilterEngine.h
+++ b/include/AdblockPlus/FilterEngine.h
@@ -1,6 +1,6 @@
/*
* This file is part of Adblock Plus <https://adblockplus.org/>,
- * Copyright (C) 2006-2015 Eyeo GmbH
+ * Copyright (C) 2006-2016 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
@@ -33,7 +33,7 @@ namespace AdblockPlus
/**
* Wrapper for an Adblock Plus filter object.
* There are no accessors for most
- * [filter properties](https://adblockplus.org/jsdoc/adblockplus/symbols/Filter.html),
+ * [filter properties](https://adblockplus.org/jsdoc/adblockpluscore/Filter.html),
* use `GetProperty()` to retrieve them by name.
*/
class Filter : public JsValue,
@@ -77,13 +77,13 @@ namespace AdblockPlus
* FilterEngine::GetFilter() instead.
* @param value JavaScript filter object.
*/
- Filter(JsValuePtr value);
+ Filter(JsValue&& value);
};
/**
* Wrapper for a subscription object.
* There are no accessors for most
- * [subscription properties](https://adblockplus.org/jsdoc/adblockplus/symbols/Subscription.html),
+ * [subscription properties](https://adblockplus.org/jsdoc/adblockpluscore/Subscription.html),
* use `GetProperty()` to retrieve them by name.
*/
class Subscription : public JsValue,
@@ -126,7 +126,7 @@ namespace AdblockPlus
* FilterEngine::GetSubscription() instead.
* @param value JavaScript subscription object.
*/
- Subscription(JsValuePtr value);
+ Subscription(JsValue&& value);
};
/**
@@ -150,15 +150,35 @@ namespace AdblockPlus
{
public:
// Make sure to keep ContentType in sync with FilterEngine::contentTypes
+ // and with RegExpFilter.typeMap from filterClasses.js.
/**
* Possible resource content types.
*/
- enum ContentType {CONTENT_TYPE_OTHER, CONTENT_TYPE_SCRIPT,
- CONTENT_TYPE_IMAGE, CONTENT_TYPE_STYLESHEET,
- CONTENT_TYPE_OBJECT, CONTENT_TYPE_SUBDOCUMENT,
- CONTENT_TYPE_DOCUMENT, CONTENT_TYPE_XMLHTTPREQUEST,
- CONTENT_TYPE_OBJECT_SUBREQUEST, CONTENT_TYPE_FONT,
- CONTENT_TYPE_MEDIA, CONTENT_TYPE_ELEMHIDE};
+ enum ContentType
+ {
+ CONTENT_TYPE_OTHER = 1,
+ CONTENT_TYPE_SCRIPT = 2,
+ CONTENT_TYPE_IMAGE = 4,
+ CONTENT_TYPE_STYLESHEET = 8,
+ CONTENT_TYPE_OBJECT = 16,
+ CONTENT_TYPE_SUBDOCUMENT = 32,
+ CONTENT_TYPE_DOCUMENT = 64,
+ CONTENT_TYPE_PING = 1024,
+ CONTENT_TYPE_XMLHTTPREQUEST = 2048,
+ CONTENT_TYPE_OBJECT_SUBREQUEST = 4096,
+ CONTENT_TYPE_MEDIA = 16384,
+ CONTENT_TYPE_FONT = 32768,
+ CONTENT_TYPE_GENERICBLOCK = 0x20000000,
+ CONTENT_TYPE_ELEMHIDE = 0x40000000,
+ CONTENT_TYPE_GENERICHIDE = 0x80000000
+ };
+
+ /**
+ * Bitmask of `ContentType` values.
+ * The underlying type is signed 32 bit integer because it is actually used
+ * in JavaScript where it is converted into 32 bit signed integer.
+ */
+ typedef int32_t ContentTypeMask;
/**
* Callback type invoked when an update becomes available.
@@ -175,7 +195,7 @@ namespace AdblockPlus
/**
* Callback type invoked when the filters change.
* The first parameter is the action event code (see
- * [FilterNotifier.triggerListeners](https://adblockplus.org/jsdoc/adblockplus/symbols/FilterNotifier.html#.triggerListeners)
+ * [FilterNotifier.triggerListeners](https://adblockplus.org/jsdoc/adblockpluscore/FilterNotifier.html#.triggerListeners)
* for the full list).
* The second parameter is the filter/subscription object affected, if any.
*/
@@ -269,7 +289,7 @@ namespace AdblockPlus
/**
* Checks if any active filter matches the supplied URL.
* @param url URL to match.
- * @param contentType Content type of the requested resource.
+ * @param contentTypeMask Content type mask of the requested resource.
* @param documentUrl URL of the document requesting the resource.
* Note that there will be more than one document if frames are
* involved, see
@@ -278,13 +298,13 @@ namespace AdblockPlus
* @throw `std::invalid_argument`, if an invalid `contentType` was supplied.
*/
FilterPtr Matches(const std::string& url,
- ContentType contentType,
+ ContentTypeMask contentTypeMask,
const std::string& documentUrl) const;
/**
* Checks if any active filter matches the supplied URL.
* @param url URL to match.
- * @param contentType Content type of the requested resource.
+ * @param contentTypeMask Content type mask of the requested resource.
* @param documentUrls Chain of documents requesting the resource, starting
* with the current resource's parent frame, ending with the
* top-level frame.
@@ -295,7 +315,7 @@ namespace AdblockPlus
* @throw `std::invalid_argument`, if an invalid `contentType` was supplied.
*/
FilterPtr Matches(const std::string& url,
- ContentType contentType,
+ ContentTypeMask contentTypeMask,
const std::vector<std::string>& documentUrls) const;
/**
@@ -429,7 +449,7 @@ namespace AdblockPlus
void InitDone(JsValueList& params);
FilterPtr CheckFilterMatch(const std::string& url,
- ContentType contentType,
+ ContentTypeMask contentTypeMask,
const std::string& documentUrl) const;
void UpdateAvailable(UpdateAvailableCallback callback, JsValueList& params);
void UpdateCheckDone(const std::string& eventName,
@@ -438,9 +458,9 @@ namespace AdblockPlus
void ShowNotification(const ShowNotificationCallback& callback,
const JsValueList& params);
FilterPtr GetWhitelistingFilter(const std::string& url,
- ContentType contentType, const std::string& documentUrl) const;
+ ContentTypeMask contentTypeMask, const std::string& documentUrl) const;
FilterPtr GetWhitelistingFilter(const std::string& url,
- ContentType contentType,
+ ContentTypeMask contentTypeMask,
const std::vector<std::string>& documentUrls) const;
};
}

Powered by Google App Engine
This is Rietveld