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

Side by Side Diff: include/AdblockPlus/FilterEngine.h

Issue 4578638519336960: Issue 1296 - Add SetUpdateAvailableCallback (Closed)
Patch Set: Fix typo, only invoke callback when the updater passes a URL Created Sept. 19, 2014, 2:51 a.m.
Left:
Right:
Use n/p to move between diff chunks; N/P to move between comments.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | src/FilterEngine.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * This file is part of Adblock Plus <http://adblockplus.org/>, 2 * This file is part of Adblock Plus <http://adblockplus.org/>,
3 * Copyright (C) 2006-2014 Eyeo GmbH 3 * Copyright (C) 2006-2014 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 138 matching lines...) Expand 10 before | Expand all | Expand 10 after
149 * Possible resource content types. 149 * Possible resource content types.
150 */ 150 */
151 enum ContentType {CONTENT_TYPE_OTHER, CONTENT_TYPE_SCRIPT, 151 enum ContentType {CONTENT_TYPE_OTHER, CONTENT_TYPE_SCRIPT,
152 CONTENT_TYPE_IMAGE, CONTENT_TYPE_STYLESHEET, 152 CONTENT_TYPE_IMAGE, CONTENT_TYPE_STYLESHEET,
153 CONTENT_TYPE_OBJECT, CONTENT_TYPE_SUBDOCUMENT, 153 CONTENT_TYPE_OBJECT, CONTENT_TYPE_SUBDOCUMENT,
154 CONTENT_TYPE_DOCUMENT, CONTENT_TYPE_XMLHTTPREQUEST, 154 CONTENT_TYPE_DOCUMENT, CONTENT_TYPE_XMLHTTPREQUEST,
155 CONTENT_TYPE_OBJECT_SUBREQUEST, CONTENT_TYPE_FONT, 155 CONTENT_TYPE_OBJECT_SUBREQUEST, CONTENT_TYPE_FONT,
156 CONTENT_TYPE_MEDIA}; 156 CONTENT_TYPE_MEDIA};
157 157
158 /** 158 /**
159 * Callback type invoked when an update is available. 159 * Callback type invoked when an update becomes available.
160 * The parameter is optional error message. 160 * The parameter is the download URL of the update.
161 */ 161 */
162 typedef std::tr1::function<void(const std::string&)> UpdaterCallback; 162 typedef std::tr1::function<void(const std::string&)>
163 UpdateAvailableCallback;
164
165 /**
166 * Callback type invoked when a manually triggered update check finishes.
167 * The parameter is an optional error message.
168 */
169 typedef std::tr1::function<void(const std::string&)>
170 UpdateCheckDoneCallback;
163 171
164 /** 172 /**
165 * Callback type invoked when the filters change. 173 * Callback type invoked when the filters change.
166 * The first parameter is the action event code (see 174 * The first parameter is the action event code (see
167 * [FilterNotifier.triggerListeners](https://adblockplus.org/jsdoc/adblockpl us/symbols/FilterNotifier.html#.triggerListeners) 175 * [FilterNotifier.triggerListeners](https://adblockplus.org/jsdoc/adblockpl us/symbols/FilterNotifier.html#.triggerListeners)
168 * for the full list). 176 * for the full list).
169 * The second parameter is the filter/subscription object affected, if any. 177 * The second parameter is the filter/subscription object affected, if any.
170 */ 178 */
171 typedef std::tr1::function<void(const std::string&, const JsValuePtr)> Filte rChangeCallback; 179 typedef std::tr1::function<void(const std::string&, const JsValuePtr)> Filte rChangeCallback;
172 180
(...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after
277 void SetPref(const std::string& pref, JsValuePtr value); 285 void SetPref(const std::string& pref, JsValuePtr value);
278 286
279 /** 287 /**
280 * Extracts the host from a URL. 288 * Extracts the host from a URL.
281 * @param url URL to extract the host from. 289 * @param url URL to extract the host from.
282 * @return Extracted host. 290 * @return Extracted host.
283 */ 291 */
284 std::string GetHostFromURL(const std::string& url); 292 std::string GetHostFromURL(const std::string& url);
285 293
286 /** 294 /**
295 * Sets the callback invoked when an application update becomes available.
296 * @param callback Callback to invoke.
297 */
298 void SetUpdateAvailableCallback(UpdateAvailableCallback callback);
299
300 /**
301 * Removes the callback invoked when an application update becomes
302 * available.
303 */
304 void RemoveUpdateAvailableCallback();
305
306 /**
287 * Forces an immediate update check. 307 * Forces an immediate update check.
288 * `FilterEngine` will automatically check for updates in regular intervals, 308 * `FilterEngine` will automatically check for updates in regular intervals,
289 * so applications should only call this when the user triggers an update 309 * so applications should only call this when the user triggers an update
290 * check manually. 310 * check manually.
291 * @param callback Optional callback to invoke when the update check is 311 * @param callback Optional callback to invoke when the update check is
292 * finished. The string parameter will be empty when the update check 312 * finished. The string parameter will be empty when the update check
293 * succeeded, or contain an error message if it failed. 313 * succeeded, or contain an error message if it failed.
294 * Note that the callback will be invoked after every update check - 314 * Note that the callback will be invoked whether updates are
295 * to react to updates being available, register a callback for the 315 * available or not - to react to updates being available, use
296 * "updateAvailable" event (see JsEngine::SetEventCallback()). 316 * `FilterEngine::SetUpdateAvailableCallback()`.
297 */ 317 */
298 void ForceUpdateCheck(UpdaterCallback callback = 0); 318 void ForceUpdateCheck(UpdateCheckDoneCallback callback = 0);
299 319
300 /** 320 /**
301 * Sets the callback invoked when the filters change. 321 * Sets the callback invoked when the filters change.
302 * @param callback Callback to invoke. 322 * @param callback Callback to invoke.
303 */ 323 */
304 void SetFilterChangeCallback(FilterChangeCallback callback); 324 void SetFilterChangeCallback(FilterChangeCallback callback);
305 325
306 /** 326 /**
307 * Removes the callback invoked when the filters change. 327 * Removes the callback invoked when the filters change.
308 */ 328 */
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
340 JsEnginePtr jsEngine; 360 JsEnginePtr jsEngine;
341 bool initialized; 361 bool initialized;
342 bool firstRun; 362 bool firstRun;
343 int updateCheckId; 363 int updateCheckId;
344 static const std::map<ContentType, std::string> contentTypes; 364 static const std::map<ContentType, std::string> contentTypes;
345 365
346 void InitDone(JsValueList& params); 366 void InitDone(JsValueList& params);
347 FilterPtr CheckFilterMatch(const std::string& url, 367 FilterPtr CheckFilterMatch(const std::string& url,
348 ContentType contentType, 368 ContentType contentType,
349 const std::string& documentUrl) const; 369 const std::string& documentUrl) const;
350 void UpdateCheckDone(const std::string& eventName, UpdaterCallback callback, JsValueList& params); 370 void UpdateAvailable(UpdateAvailableCallback callback, JsValueList& params);
371 void UpdateCheckDone(const std::string& eventName,
372 UpdateCheckDoneCallback callback, JsValueList& params);
351 void FilterChanged(FilterChangeCallback callback, JsValueList& params); 373 void FilterChanged(FilterChangeCallback callback, JsValueList& params);
352 }; 374 };
353 } 375 }
354 376
355 #endif 377 #endif
OLDNEW
« no previous file with comments | « no previous file | src/FilterEngine.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld