| 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-2016 Eyeo GmbH | 3 * Copyright (C) 2006-2016 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 240 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 251 | 251 |
| 252 v8::Isolate* isolate = arguments.GetIsolate(); | 252 v8::Isolate* isolate = arguments.GetIsolate(); |
| 253 if (converted.size() != 2) | 253 if (converted.size() != 2) |
| 254 return v8::ThrowException(Utils::ToV8String(isolate, | 254 return v8::ThrowException(Utils::ToV8String(isolate, |
| 255 "_fileSystem.read requires 2 parameters")); | 255 "_fileSystem.read requires 2 parameters")); |
| 256 if (!converted[1]->IsFunction()) | 256 if (!converted[1]->IsFunction()) |
| 257 return v8::ThrowException(Utils::ToV8String(isolate, | 257 return v8::ThrowException(Utils::ToV8String(isolate, |
| 258 "Second argument to _fileSystem.read must be a function")); | 258 "Second argument to _fileSystem.read must be a function")); |
| 259 const auto readTask = std::make_shared<ReadTask>(jsEngine, converted[1], | 259 const auto readTask = std::make_shared<ReadTask>(jsEngine, converted[1], |
| 260 converted[0]->AsString()); | 260 converted[0]->AsString()); |
| 261 AdblockPlus::Scheduler::StartImmediatelyInSingleUseThread(AdblockPlus::MakeH
eapFunction(readTask)); | 261 jsEngine->Schedule(AdblockPlus::MakeHeapFunction(readTask), AdblockPlus::Imm
ediateSingleUseThread); |
| 262 return v8::Undefined(); | 262 return v8::Undefined(); |
| 263 } | 263 } |
| 264 | 264 |
| 265 v8::Handle<v8::Value> WriteCallback(const v8::Arguments& arguments) | 265 v8::Handle<v8::Value> WriteCallback(const v8::Arguments& arguments) |
| 266 { | 266 { |
| 267 AdblockPlus::JsEnginePtr jsEngine = AdblockPlus::JsEngine::FromArguments(arg
uments); | 267 AdblockPlus::JsEnginePtr jsEngine = AdblockPlus::JsEngine::FromArguments(arg
uments); |
| 268 AdblockPlus::JsValueList converted = jsEngine->ConvertArguments(arguments); | 268 AdblockPlus::JsValueList converted = jsEngine->ConvertArguments(arguments); |
| 269 | 269 |
| 270 v8::Isolate* isolate = arguments.GetIsolate(); | 270 v8::Isolate* isolate = arguments.GetIsolate(); |
| 271 if (converted.size() != 3) | 271 if (converted.size() != 3) |
| 272 return v8::ThrowException(Utils::ToV8String(isolate, | 272 return v8::ThrowException(Utils::ToV8String(isolate, |
| 273 "_fileSystem.write requires 3 parameters")); | 273 "_fileSystem.write requires 3 parameters")); |
| 274 if (!converted[2]->IsFunction()) | 274 if (!converted[2]->IsFunction()) |
| 275 return v8::ThrowException(Utils::ToV8String(isolate, | 275 return v8::ThrowException(Utils::ToV8String(isolate, |
| 276 "Third argument to _fileSystem.write must be a function")); | 276 "Third argument to _fileSystem.write must be a function")); |
| 277 const auto writeTask = std::make_shared<WriteTask>(jsEngine, converted[2], | 277 const auto writeTask = std::make_shared<WriteTask>(jsEngine, converted[2], |
| 278 converted[0]->AsString(), converted[1]->AsString()); | 278 converted[0]->AsString(), converted[1]->AsString()); |
| 279 AdblockPlus::Scheduler::StartImmediatelyInSingleUseThread(AdblockPlus::MakeH
eapFunction(writeTask)); | 279 jsEngine->Schedule(AdblockPlus::MakeHeapFunction(writeTask), AdblockPlus::Im
mediateSingleUseThread); |
| 280 return v8::Undefined(); | 280 return v8::Undefined(); |
| 281 } | 281 } |
| 282 | 282 |
| 283 v8::Handle<v8::Value> MoveCallback(const v8::Arguments& arguments) | 283 v8::Handle<v8::Value> MoveCallback(const v8::Arguments& arguments) |
| 284 { | 284 { |
| 285 AdblockPlus::JsEnginePtr jsEngine = AdblockPlus::JsEngine::FromArguments(arg
uments); | 285 AdblockPlus::JsEnginePtr jsEngine = AdblockPlus::JsEngine::FromArguments(arg
uments); |
| 286 AdblockPlus::JsValueList converted = jsEngine->ConvertArguments(arguments); | 286 AdblockPlus::JsValueList converted = jsEngine->ConvertArguments(arguments); |
| 287 | 287 |
| 288 v8::Isolate* isolate = arguments.GetIsolate(); | 288 v8::Isolate* isolate = arguments.GetIsolate(); |
| 289 if (converted.size() != 3) | 289 if (converted.size() != 3) |
| 290 return v8::ThrowException(Utils::ToV8String(isolate, | 290 return v8::ThrowException(Utils::ToV8String(isolate, |
| 291 "_fileSystem.move requires 3 parameters")); | 291 "_fileSystem.move requires 3 parameters")); |
| 292 if (!converted[2]->IsFunction()) | 292 if (!converted[2]->IsFunction()) |
| 293 return v8::ThrowException(Utils::ToV8String(isolate, | 293 return v8::ThrowException(Utils::ToV8String(isolate, |
| 294 "Third argument to _fileSystem.move must be a function")); | 294 "Third argument to _fileSystem.move must be a function")); |
| 295 const auto moveTask = std::make_shared<MoveTask>(jsEngine, converted[2], | 295 const auto moveTask = std::make_shared<MoveTask>(jsEngine, converted[2], |
| 296 converted[0]->AsString(), converted[1]->AsString()); | 296 converted[0]->AsString(), converted[1]->AsString()); |
| 297 AdblockPlus::Scheduler::StartImmediatelyInSingleUseThread(AdblockPlus::MakeH
eapFunction(moveTask)); | 297 jsEngine->Schedule(AdblockPlus::MakeHeapFunction(moveTask), AdblockPlus::Imm
ediateSingleUseThread); |
| 298 return v8::Undefined(); | 298 return v8::Undefined(); |
| 299 } | 299 } |
| 300 | 300 |
| 301 v8::Handle<v8::Value> RemoveCallback(const v8::Arguments& arguments) | 301 v8::Handle<v8::Value> RemoveCallback(const v8::Arguments& arguments) |
| 302 { | 302 { |
| 303 AdblockPlus::JsEnginePtr jsEngine = AdblockPlus::JsEngine::FromArguments(arg
uments); | 303 AdblockPlus::JsEnginePtr jsEngine = AdblockPlus::JsEngine::FromArguments(arg
uments); |
| 304 AdblockPlus::JsValueList converted = jsEngine->ConvertArguments(arguments); | 304 AdblockPlus::JsValueList converted = jsEngine->ConvertArguments(arguments); |
| 305 | 305 |
| 306 v8::Isolate* isolate = arguments.GetIsolate(); | 306 v8::Isolate* isolate = arguments.GetIsolate(); |
| 307 if (converted.size() != 2) | 307 if (converted.size() != 2) |
| 308 return v8::ThrowException(Utils::ToV8String(isolate, | 308 return v8::ThrowException(Utils::ToV8String(isolate, |
| 309 "_fileSystem.remove requires 2 parameters")); | 309 "_fileSystem.remove requires 2 parameters")); |
| 310 if (!converted[1]->IsFunction()) | 310 if (!converted[1]->IsFunction()) |
| 311 return v8::ThrowException(Utils::ToV8String(isolate, | 311 return v8::ThrowException(Utils::ToV8String(isolate, |
| 312 "Second argument to _fileSystem.remove must be a function")); | 312 "Second argument to _fileSystem.remove must be a function")); |
| 313 const auto removeTask = std::make_shared<RemoveTask>(jsEngine, converted[1], | 313 const auto removeTask = std::make_shared<RemoveTask>(jsEngine, converted[1], |
| 314 converted[0]->AsString()); | 314 converted[0]->AsString()); |
| 315 AdblockPlus::Scheduler::StartImmediatelyInSingleUseThread(AdblockPlus::MakeH
eapFunction(removeTask)); | 315 jsEngine->Schedule(AdblockPlus::MakeHeapFunction(removeTask), AdblockPlus::I
mmediateSingleUseThread); |
| 316 return v8::Undefined(); | 316 return v8::Undefined(); |
| 317 } | 317 } |
| 318 | 318 |
| 319 v8::Handle<v8::Value> StatCallback(const v8::Arguments& arguments) | 319 v8::Handle<v8::Value> StatCallback(const v8::Arguments& arguments) |
| 320 { | 320 { |
| 321 AdblockPlus::JsEnginePtr jsEngine = AdblockPlus::JsEngine::FromArguments(arg
uments); | 321 AdblockPlus::JsEnginePtr jsEngine = AdblockPlus::JsEngine::FromArguments(arg
uments); |
| 322 AdblockPlus::JsValueList converted = jsEngine->ConvertArguments(arguments); | 322 AdblockPlus::JsValueList converted = jsEngine->ConvertArguments(arguments); |
| 323 | 323 |
| 324 v8::Isolate* isolate = arguments.GetIsolate(); | 324 v8::Isolate* isolate = arguments.GetIsolate(); |
| 325 if (converted.size() != 2) | 325 if (converted.size() != 2) |
| 326 return v8::ThrowException(Utils::ToV8String(isolate, | 326 return v8::ThrowException(Utils::ToV8String(isolate, |
| 327 "_fileSystem.stat requires 2 parameters")); | 327 "_fileSystem.stat requires 2 parameters")); |
| 328 if (!converted[1]->IsFunction()) | 328 if (!converted[1]->IsFunction()) |
| 329 return v8::ThrowException(Utils::ToV8String(isolate, | 329 return v8::ThrowException(Utils::ToV8String(isolate, |
| 330 "Second argument to _fileSystem.stat must be a function")); | 330 "Second argument to _fileSystem.stat must be a function")); |
| 331 const auto statTask = std::make_shared<StatTask>(jsEngine, converted[1], | 331 const auto statTask = std::make_shared<StatTask>(jsEngine, converted[1], |
| 332 converted[0]->AsString()); | 332 converted[0]->AsString()); |
| 333 AdblockPlus::Scheduler::StartImmediatelyInSingleUseThread(AdblockPlus::MakeH
eapFunction(statTask)); | 333 jsEngine->Schedule(AdblockPlus::MakeHeapFunction(statTask), AdblockPlus::Imm
ediateSingleUseThread); |
| 334 return v8::Undefined(); | 334 return v8::Undefined(); |
| 335 } | 335 } |
| 336 | 336 |
| 337 v8::Handle<v8::Value> ResolveCallback(const v8::Arguments& arguments) | 337 v8::Handle<v8::Value> ResolveCallback(const v8::Arguments& arguments) |
| 338 { | 338 { |
| 339 AdblockPlus::JsEnginePtr jsEngine = AdblockPlus::JsEngine::FromArguments(arg
uments); | 339 AdblockPlus::JsEnginePtr jsEngine = AdblockPlus::JsEngine::FromArguments(arg
uments); |
| 340 AdblockPlus::JsValueList converted = jsEngine->ConvertArguments(arguments); | 340 AdblockPlus::JsValueList converted = jsEngine->ConvertArguments(arguments); |
| 341 | 341 |
| 342 v8::Isolate* isolate = arguments.GetIsolate(); | 342 v8::Isolate* isolate = arguments.GetIsolate(); |
| 343 if (converted.size() != 1) | 343 if (converted.size() != 1) |
| (...skipping 11 matching lines...) Expand all Loading... |
| 355 JsValuePtr FileSystemJsObject::Setup(JsEnginePtr jsEngine, JsValuePtr obj) | 355 JsValuePtr FileSystemJsObject::Setup(JsEnginePtr jsEngine, JsValuePtr obj) |
| 356 { | 356 { |
| 357 obj->SetProperty("read", jsEngine->NewCallback(::ReadCallback)); | 357 obj->SetProperty("read", jsEngine->NewCallback(::ReadCallback)); |
| 358 obj->SetProperty("write", jsEngine->NewCallback(::WriteCallback)); | 358 obj->SetProperty("write", jsEngine->NewCallback(::WriteCallback)); |
| 359 obj->SetProperty("move", jsEngine->NewCallback(::MoveCallback)); | 359 obj->SetProperty("move", jsEngine->NewCallback(::MoveCallback)); |
| 360 obj->SetProperty("remove", jsEngine->NewCallback(::RemoveCallback)); | 360 obj->SetProperty("remove", jsEngine->NewCallback(::RemoveCallback)); |
| 361 obj->SetProperty("stat", jsEngine->NewCallback(::StatCallback)); | 361 obj->SetProperty("stat", jsEngine->NewCallback(::StatCallback)); |
| 362 obj->SetProperty("resolve", jsEngine->NewCallback(::ResolveCallback)); | 362 obj->SetProperty("resolve", jsEngine->NewCallback(::ResolveCallback)); |
| 363 return obj; | 363 return obj; |
| 364 } | 364 } |
| OLD | NEW |