LEFT | RIGHT |
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-2015 Eyeo GmbH | 3 * Copyright (C) 2006-2015 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 168 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
179 /** | 179 /** |
180 * Callback type invoked when the filters change. | 180 * Callback type invoked when the filters change. |
181 * The first parameter is the action event code (see | 181 * The first parameter is the action event code (see |
182 * [FilterNotifier.triggerListeners](https://adblockplus.org/jsdoc/adblockpl
us/symbols/FilterNotifier.html#.triggerListeners) | 182 * [FilterNotifier.triggerListeners](https://adblockplus.org/jsdoc/adblockpl
us/symbols/FilterNotifier.html#.triggerListeners) |
183 * for the full list). | 183 * for the full list). |
184 * The second parameter is the filter/subscription object affected, if any. | 184 * The second parameter is the filter/subscription object affected, if any. |
185 */ | 185 */ |
186 typedef std::tr1::function<void(const std::string&, const JsValuePtr)> Filte
rChangeCallback; | 186 typedef std::tr1::function<void(const std::string&, const JsValuePtr)> Filte
rChangeCallback; |
187 | 187 |
188 /** | 188 /** |
| 189 * Container of name-value pairs representing a set of preferences. |
| 190 */ |
| 191 typedef std::map<std::string, AdblockPlus::JsValuePtr> Prefs; |
| 192 |
| 193 /** |
189 * Callback type invoked when a new notification should be shown. | 194 * Callback type invoked when a new notification should be shown. |
190 * The parameter is the Notification object to be shown. | 195 * The parameter is the Notification object to be shown. |
191 */ | 196 */ |
192 typedef std::tr1::function<void(const NotificationPtr&)> NotificationAvailab
leCallback; | 197 typedef std::tr1::function<void(const NotificationPtr&)> ShowNotificationCal
lback; |
193 | 198 |
194 /** | 199 /** |
195 * Constructor. | 200 * Constructor. |
196 * @param jsEngine `JsEngine` instance used to run JavaScript code | 201 * @param jsEngine `JsEngine` instance used to run JavaScript code |
197 * internally. | 202 * internally. |
198 */ | 203 * @param preconfiguredPrefs `AdblockPlus::FilterEngine::Prefs` |
199 explicit FilterEngine(JsEnginePtr jsEngine); | 204 * name-value list of preconfigured prefs. |
| 205 */ |
| 206 explicit FilterEngine(JsEnginePtr jsEngine, |
| 207 const Prefs& preconfiguredPrefs = Prefs() |
| 208 ); |
200 | 209 |
201 /** | 210 /** |
202 * Retrieves the `JsEngine` instance associated with this `FilterEngine` | 211 * Retrieves the `JsEngine` instance associated with this `FilterEngine` |
203 * instance. | 212 * instance. |
204 */ | 213 */ |
205 JsEnginePtr GetJsEngine() const { return jsEngine; } | 214 JsEnginePtr GetJsEngine() const { return jsEngine; } |
206 | 215 |
207 /** | 216 /** |
208 * Checks if this is the first run of the application. | 217 * Checks if this is the first run of the application. |
209 * @return `true` if the application is running for the first time. | 218 * @return `true` if the application is running for the first time. |
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
247 * Invokes the listener set via SetNotificationAvailableCallback() with the | 256 * Invokes the listener set via SetNotificationAvailableCallback() with the |
248 * next notification to be shown. | 257 * next notification to be shown. |
249 * @param url URL to match notifications to (optional). | 258 * @param url URL to match notifications to (optional). |
250 */ | 259 */ |
251 void ShowNextNotification(const std::string& url = std::string()); | 260 void ShowNextNotification(const std::string& url = std::string()); |
252 | 261 |
253 /** | 262 /** |
254 * Sets the callback invoked when a notification should be shown. | 263 * Sets the callback invoked when a notification should be shown. |
255 * @param callback Callback to invoke. | 264 * @param callback Callback to invoke. |
256 */ | 265 */ |
257 void SetNotificationAvailableCallback(const NotificationAvailableCallback& v
alue); | 266 void SetShowNotificationCallback(const ShowNotificationCallback& value); |
258 | 267 |
259 /** | 268 /** |
260 * Removes the callback invoked when a notification should be shown. | 269 * Removes the callback invoked when a notification should be shown. |
261 * available. | 270 */ |
262 */ | 271 void RemoveShowNotificationCallback(); |
263 void RemoveNotificationAvailableCallback(); | |
264 | 272 |
265 /** | 273 /** |
266 * Checks if any active filter matches the supplied URL. | 274 * Checks if any active filter matches the supplied URL. |
267 * @param url URL to match. | 275 * @param url URL to match. |
268 * @param contentType Content type of the requested resource. | 276 * @param contentType Content type of the requested resource. |
269 * @param documentUrl URL of the document requesting the resource. | 277 * @param documentUrl URL of the document requesting the resource. |
270 * Note that there will be more than one document if frames are | 278 * Note that there will be more than one document if frames are |
271 * involved, see | 279 * involved, see |
272 * Matches(const std::string&, const std::string&, const std::vector<
std::string>&) const. | 280 * Matches(const std::string&, const std::string&, const std::vector<
std::string>&) const. |
273 * @return Matching filter, or `null` if there was no match. | 281 * @return Matching filter, or `null` if there was no match. |
(...skipping 122 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
396 static const std::map<ContentType, std::string> contentTypes; | 404 static const std::map<ContentType, std::string> contentTypes; |
397 | 405 |
398 void InitDone(JsValueList& params); | 406 void InitDone(JsValueList& params); |
399 FilterPtr CheckFilterMatch(const std::string& url, | 407 FilterPtr CheckFilterMatch(const std::string& url, |
400 ContentType contentType, | 408 ContentType contentType, |
401 const std::string& documentUrl) const; | 409 const std::string& documentUrl) const; |
402 void UpdateAvailable(UpdateAvailableCallback callback, JsValueList& params); | 410 void UpdateAvailable(UpdateAvailableCallback callback, JsValueList& params); |
403 void UpdateCheckDone(const std::string& eventName, | 411 void UpdateCheckDone(const std::string& eventName, |
404 UpdateCheckDoneCallback callback, JsValueList& params); | 412 UpdateCheckDoneCallback callback, JsValueList& params); |
405 void FilterChanged(FilterChangeCallback callback, JsValueList& params); | 413 void FilterChanged(FilterChangeCallback callback, JsValueList& params); |
406 void NotificationAvailable(const NotificationAvailableCallback& callback, | 414 void ShowNotification(const ShowNotificationCallback& callback, |
407 const JsValueList& params); | 415 const JsValueList& params); |
408 }; | 416 }; |
409 } | 417 } |
410 | 418 |
411 #endif | 419 #endif |
LEFT | RIGHT |