OLD | NEW |
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-2017 eyeo GmbH | 3 * Copyright (C) 2006-2017 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 84 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
95 std::vector<std::unique_ptr<v8::Persistent<v8::Value>>> values; | 95 std::vector<std::unique_ptr<v8::Persistent<v8::Value>>> values; |
96 }; | 96 }; |
97 typedef std::list<JsWeakValuesList> JsWeakValuesLists; | 97 typedef std::list<JsWeakValuesList> JsWeakValuesLists; |
98 public: | 98 public: |
99 /** | 99 /** |
100 * Event callback function. | 100 * Event callback function. |
101 */ | 101 */ |
102 typedef std::function<void(JsValueList&& params)> EventCallback; | 102 typedef std::function<void(JsValueList&& params)> EventCallback; |
103 | 103 |
104 /** | 104 /** |
105 * Callback function returning false when current connection is not allowed | |
106 * e.g. because it is a metered connection. | |
107 */ | |
108 typedef std::function<bool()> IsConnectionAllowedCallback; | |
109 | |
110 /** | |
111 * Maps events to callback functions. | 105 * Maps events to callback functions. |
112 */ | 106 */ |
113 typedef std::map<std::string, EventCallback> EventMap; | 107 typedef std::map<std::string, EventCallback> EventMap; |
114 | 108 |
115 /** | 109 /** |
116 * An opaque structure representing ID of stored JsValueList. | 110 * An opaque structure representing ID of stored JsValueList. |
117 * | 111 * |
118 */ | 112 */ |
119 class JsWeakValuesID | 113 class JsWeakValuesID |
120 { | 114 { |
(...skipping 154 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
275 | 269 |
276 /** | 270 /** |
277 * Sets the `WebRequest` implementation used for XMLHttpRequests. | 271 * Sets the `WebRequest` implementation used for XMLHttpRequests. |
278 * Setting this is optional, the engine will use a `DefaultWebRequest` | 272 * Setting this is optional, the engine will use a `DefaultWebRequest` |
279 * instance by default, which might be sufficient. | 273 * instance by default, which might be sufficient. |
280 * @param The `WebRequest` instance to use. | 274 * @param The `WebRequest` instance to use. |
281 */ | 275 */ |
282 void SetWebRequest(const WebRequestPtr& val); | 276 void SetWebRequest(const WebRequestPtr& val); |
283 | 277 |
284 /** | 278 /** |
285 * Registers the callback function to check whether current connection is | |
286 * allowed for network requests. | |
287 * @param callback callback function. | |
288 */ | |
289 void SetIsConnectionAllowedCallback(const IsConnectionAllowedCallback& callb
ack); | |
290 | |
291 /** | |
292 * Checks whether current connection is allowed. If | |
293 * IsConnectionAllowedCallback is not set then then it returns true. | |
294 */ | |
295 bool IsConnectionAllowed() const; | |
296 | |
297 /** | |
298 * @see `SetLogSystem()`. | 279 * @see `SetLogSystem()`. |
299 */ | 280 */ |
300 LogSystemPtr GetLogSystem() const; | 281 LogSystemPtr GetLogSystem() const; |
301 | 282 |
302 /** | 283 /** |
303 * Sets the `LogSystem` implementation used for logging (e.g. to handle | 284 * Sets the `LogSystem` implementation used for logging (e.g. to handle |
304 * `console.log()` calls from JavaScript). | 285 * `console.log()` calls from JavaScript). |
305 * Setting this is optional, the engine will use a `DefaultLogSystem` | 286 * Setting this is optional, the engine will use a `DefaultLogSystem` |
306 * instance by default, which might be sufficient. | 287 * instance by default, which might be sufficient. |
307 * @param The `LogSystem` instance to use. | 288 * @param The `LogSystem` instance to use. |
(...skipping 25 matching lines...) Expand all Loading... |
333 /// Isolate must be disposed only after disposing of all objects which are | 314 /// Isolate must be disposed only after disposing of all objects which are |
334 /// using it. | 315 /// using it. |
335 ScopedV8IsolatePtr isolate; | 316 ScopedV8IsolatePtr isolate; |
336 | 317 |
337 FileSystemPtr fileSystem; | 318 FileSystemPtr fileSystem; |
338 WebRequestPtr webRequest; | 319 WebRequestPtr webRequest; |
339 LogSystemPtr logSystem; | 320 LogSystemPtr logSystem; |
340 std::unique_ptr<v8::Persistent<v8::Context>> context; | 321 std::unique_ptr<v8::Persistent<v8::Context>> context; |
341 EventMap eventCallbacks; | 322 EventMap eventCallbacks; |
342 std::mutex eventCallbacksMutex; | 323 std::mutex eventCallbacksMutex; |
343 mutable std::mutex isConnectionAllowedMutex; | |
344 IsConnectionAllowedCallback isConnectionAllowed; | |
345 JsWeakValuesLists jsWeakValuesLists; | 324 JsWeakValuesLists jsWeakValuesLists; |
346 std::mutex jsWeakValuesListsMutex; | 325 std::mutex jsWeakValuesListsMutex; |
347 TimerPtr timer; | 326 TimerPtr timer; |
348 }; | 327 }; |
349 } | 328 } |
350 | 329 |
351 #endif | 330 #endif |
OLD | NEW |