| Index: src/JsEngine.cpp |
| =================================================================== |
| --- a/src/JsEngine.cpp |
| +++ b/src/JsEngine.cpp |
| @@ -2,17 +2,20 @@ |
| #include <sstream> |
| #include "GlobalJsObject.h" |
| +#include "Utils.h" |
| namespace |
| { |
| v8::Handle<v8::Context> CreateContext( |
| - AdblockPlus::ErrorCallback& errorCallback, |
| - AdblockPlus::WebRequest& webRequest) |
| + AdblockPlus::FileSystem& fileSystem, |
| + AdblockPlus::WebRequest& webRequest, |
| + AdblockPlus::ErrorCallback& errorCallback) |
| { |
| const v8::Locker locker(v8::Isolate::GetCurrent()); |
| const v8::HandleScope handleScope; |
| const v8::Handle<v8::ObjectTemplate> global = |
| - AdblockPlus::GlobalJsObject::Create(errorCallback, webRequest); |
| + AdblockPlus::GlobalJsObject::Create(fileSystem, webRequest, |
| + errorCallback); |
| return v8::Context::New(0, global); |
| } |
| @@ -34,13 +37,6 @@ |
| throw AdblockPlus::JsError(tryCatch.Exception(), tryCatch.Message()); |
| } |
| - std::string Slurp(std::istream& stream) |
| - { |
| - std::stringstream content; |
| - content << stream.rdbuf(); |
| - return content.str(); |
| - } |
| - |
| std::string ExceptionToString(const v8::Handle<v8::Value> exception, |
| const v8::Handle<v8::Message> message) |
| { |
| @@ -63,10 +59,11 @@ |
| { |
| } |
| -AdblockPlus::JsEngine::JsEngine(const FileReader* const fileReader, |
| +AdblockPlus::JsEngine::JsEngine(FileSystem* const fileSystem, |
| WebRequest* const webRequest, |
| ErrorCallback* const errorCallback) |
| - : fileReader(fileReader), context(CreateContext(*errorCallback, *webRequest)) |
| + : fileSystem(fileSystem), |
| + context(CreateContext(*fileSystem, *webRequest, *errorCallback)) |
| { |
| } |
| @@ -87,10 +84,10 @@ |
| void AdblockPlus::JsEngine::Load(const std::string& scriptPath) |
| { |
| - const std::auto_ptr<std::istream> file = fileReader->Read(scriptPath); |
| - if (!*file) |
| + const std::tr1::shared_ptr<std::istream> file = fileSystem->Read(scriptPath); |
| + if (!file || !*file) |
| throw std::runtime_error("Unable to load script " + scriptPath); |
| - Evaluate(Slurp(*file)); |
| + Evaluate(Utils::Slurp(*file)); |
| } |
| void AdblockPlus::JsEngine::Gc() |