OLD | NEW |
1 #include <AdblockPlus.h> | 1 #include <AdblockPlus.h> |
2 #include <sstream> | 2 #include <sstream> |
3 | 3 |
4 #include "ConsoleJsObject.h" | 4 #include "ConsoleJsObject.h" |
5 | 5 |
6 extern const char* jsSources[]; | |
7 | |
8 namespace | 6 namespace |
9 { | 7 { |
10 v8::Handle<v8::Context> CreateContext( | 8 v8::Handle<v8::Context> CreateContext( |
11 AdblockPlus::ErrorCallback& errorCallback) | 9 AdblockPlus::ErrorCallback& errorCallback) |
12 { | 10 { |
13 const v8::HandleScope handleScope; | 11 const v8::HandleScope handleScope; |
14 const v8::Handle<v8::ObjectTemplate> global = v8::ObjectTemplate::New(); | 12 const v8::Handle<v8::ObjectTemplate> global = v8::ObjectTemplate::New(); |
15 global->Set(v8::String::New("console"), | 13 global->Set(v8::String::New("console"), |
16 AdblockPlus::ConsoleJsObject::Create(errorCallback)); | 14 AdblockPlus::ConsoleJsObject::Create(errorCallback)); |
17 return v8::Context::New(0, global); | 15 return v8::Context::New(0, global); |
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
62 AdblockPlus::JsError::JsError(const v8::Handle<v8::Value> exception, | 60 AdblockPlus::JsError::JsError(const v8::Handle<v8::Value> exception, |
63 const v8::Handle<v8::Message> message) | 61 const v8::Handle<v8::Message> message) |
64 : std::runtime_error(ExceptionToString(exception, message)) | 62 : std::runtime_error(ExceptionToString(exception, message)) |
65 { | 63 { |
66 } | 64 } |
67 | 65 |
68 AdblockPlus::JsEngine::JsEngine(const FileReader* const fileReader, | 66 AdblockPlus::JsEngine::JsEngine(const FileReader* const fileReader, |
69 ErrorCallback* const errorCallback) | 67 ErrorCallback* const errorCallback) |
70 : fileReader(fileReader), context(CreateContext(*errorCallback)) | 68 : fileReader(fileReader), context(CreateContext(*errorCallback)) |
71 { | 69 { |
72 for (int i = 0; jsSources[i] && jsSources[i + 1]; i += 2) | |
73 Evaluate(jsSources[i + 1], jsSources[i]); | |
74 } | 70 } |
75 | 71 |
76 void AdblockPlus::JsEngine::Evaluate(const char* source, const char* filename) | 72 void AdblockPlus::JsEngine::Evaluate(const char* source, const char* filename) |
77 { | 73 { |
78 const v8::HandleScope handleScope; | 74 const v8::HandleScope handleScope; |
79 const v8::Context::Scope contextScope(context); | 75 const v8::Context::Scope contextScope(context); |
80 const v8::TryCatch tryCatch; | 76 const v8::TryCatch tryCatch; |
81 const v8::Handle<v8::Script> script = CompileScript(source, filename); | 77 const v8::Handle<v8::Script> script = CompileScript(source, filename); |
82 CheckTryCatch(tryCatch); | 78 CheckTryCatch(tryCatch); |
83 script->Run(); | 79 script->Run(); |
(...skipping 26 matching lines...) Expand all Loading... |
110 const v8::Local<v8::Value> result = function->Call(function, 0, 0); | 106 const v8::Local<v8::Value> result = function->Call(function, 0, 0); |
111 CheckTryCatch(tryCatch); | 107 CheckTryCatch(tryCatch); |
112 const v8::String::AsciiValue ascii(result); | 108 const v8::String::AsciiValue ascii(result); |
113 return *ascii; | 109 return *ascii; |
114 } | 110 } |
115 | 111 |
116 void AdblockPlus::JsEngine::Gc() | 112 void AdblockPlus::JsEngine::Gc() |
117 { | 113 { |
118 while (!v8::V8::IdleNotification()); | 114 while (!v8::V8::IdleNotification()); |
119 } | 115 } |
OLD | NEW |