| 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 75 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 86    */ | 86    */ | 
| 87   class JsEngine : public std::enable_shared_from_this<JsEngine> | 87   class JsEngine : public std::enable_shared_from_this<JsEngine> | 
| 88   { | 88   { | 
| 89     friend class JsValue; | 89     friend class JsValue; | 
| 90     friend class JsContext; | 90     friend class JsContext; | 
| 91 | 91 | 
| 92   public: | 92   public: | 
| 93     /** | 93     /** | 
| 94      * Event callback function. | 94      * Event callback function. | 
| 95      */ | 95      */ | 
| 96     typedef std::function<void(const JsValueList& params)> EventCallback; | 96     typedef std::function<void(const JsConstValueList& params)> EventCallback; | 
| 97 | 97 | 
| 98     /** | 98     /** | 
| 99     * Callback function returning false when current connection is not allowed | 99     * Callback function returning false when current connection is not allowed | 
| 100     * e.g. because it is a metered connection. | 100     * e.g. because it is a metered connection. | 
| 101     */ | 101     */ | 
| 102     typedef std::function<bool()> IsConnectionAllowedCallback; | 102     typedef std::function<bool()> IsConnectionAllowedCallback; | 
| 103 | 103 | 
| 104     /** | 104     /** | 
| 105      * Maps events to callback functions. | 105      * Maps events to callback functions. | 
| 106      */ | 106      */ | 
| (...skipping 23 matching lines...) Expand all  Loading... | 
| 130      * Removes the callback function for an event. | 130      * Removes the callback function for an event. | 
| 131      * @param eventName Event name. | 131      * @param eventName Event name. | 
| 132      */ | 132      */ | 
| 133     void RemoveEventCallback(const std::string& eventName); | 133     void RemoveEventCallback(const std::string& eventName); | 
| 134 | 134 | 
| 135     /** | 135     /** | 
| 136      * Triggers an event. | 136      * Triggers an event. | 
| 137      * @param eventName Event name. | 137      * @param eventName Event name. | 
| 138      * @param params Event parameters. | 138      * @param params Event parameters. | 
| 139      */ | 139      */ | 
| 140     void TriggerEvent(const std::string& eventName, const JsValueList& params); | 140     void TriggerEvent(const std::string& eventName, const JsConstValueList& para
     ms); | 
| 141 | 141 | 
| 142     /** | 142     /** | 
| 143      * Evaluates a JavaScript expression. | 143      * Evaluates a JavaScript expression. | 
| 144      * @param source JavaScript expression to evaluate. | 144      * @param source JavaScript expression to evaluate. | 
| 145      * @param filename Optional file name for the expression, used in error | 145      * @param filename Optional file name for the expression, used in error | 
| 146      *        messages. | 146      *        messages. | 
| 147      * @return Result of the evaluated expression. | 147      * @return Result of the evaluated expression. | 
| 148      */ | 148      */ | 
| 149     JsValuePtr Evaluate(const std::string& source, | 149     JsValuePtr Evaluate(const std::string& source, | 
| 150         const std::string& filename = ""); | 150         const std::string& filename = ""); | 
| (...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 208      * Private functionality required to implement timers. | 208      * Private functionality required to implement timers. | 
| 209      * @param arguments `v8::Arguments` is the arguments received in C++ | 209      * @param arguments `v8::Arguments` is the arguments received in C++ | 
| 210      * callback associated for global setTimeout method. | 210      * callback associated for global setTimeout method. | 
| 211      */ | 211      */ | 
| 212     static void ScheduleTimer(const v8::Arguments& arguments); | 212     static void ScheduleTimer(const v8::Arguments& arguments); | 
| 213 | 213 | 
| 214     /** | 214     /** | 
| 215      * Converts v8 arguments to `JsValue` objects. | 215      * Converts v8 arguments to `JsValue` objects. | 
| 216      * @param arguments `v8::Arguments` object containing the arguments to | 216      * @param arguments `v8::Arguments` object containing the arguments to | 
| 217      *        convert. | 217      *        convert. | 
| 218      * @return List of arguments converted to `JsValue` objects. | 218      * @return List of arguments converted to `const JsValue` objects. | 
| 219      */ | 219      */ | 
| 220     JsValueList ConvertArguments(const v8::Arguments& arguments); | 220     JsConstValueList ConvertArguments(const v8::Arguments& arguments); | 
| 221 | 221 | 
| 222     /** | 222     /** | 
| 223      * @see `SetFileSystem()`. | 223      * @see `SetFileSystem()`. | 
| 224      */ | 224      */ | 
| 225     FileSystemPtr GetFileSystem() const; | 225     FileSystemPtr GetFileSystem() const; | 
| 226 | 226 | 
| 227     /** | 227     /** | 
| 228      * Sets the `FileSystem` implementation used for all file I/O. | 228      * Sets the `FileSystem` implementation used for all file I/O. | 
| 229      * Setting this is optional, the engine will use a `DefaultFileSystem` | 229      * Setting this is optional, the engine will use a `DefaultFileSystem` | 
| 230      * instance by default, which might be sufficient. | 230      * instance by default, which might be sufficient. | 
| (...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 311     EventMap eventCallbacks; | 311     EventMap eventCallbacks; | 
| 312     std::mutex eventCallbacksMutex; | 312     std::mutex eventCallbacksMutex; | 
| 313     mutable std::mutex isConnectionAllowedMutex; | 313     mutable std::mutex isConnectionAllowedMutex; | 
| 314     IsConnectionAllowedCallback isConnectionAllowed; | 314     IsConnectionAllowedCallback isConnectionAllowed; | 
| 315     TimerTasks timerTasks; | 315     TimerTasks timerTasks; | 
| 316     TimerPtr timer; | 316     TimerPtr timer; | 
| 317   }; | 317   }; | 
| 318 } | 318 } | 
| 319 | 319 | 
| 320 #endif | 320 #endif | 
| OLD | NEW | 
|---|