LEFT | RIGHT |
1 #include <vector> | 1 #include <vector> |
2 #include <stdexcept> | 2 #include <stdexcept> |
3 | 3 |
4 #include <AdblockPlus/JsEngine.h> | 4 #include <AdblockPlus/JsEngine.h> |
5 #include <AdblockPlus/JsValue.h> | 5 #include <AdblockPlus/JsValue.h> |
| 6 #include "ConsoleJsObject.h" |
| 7 #include "FileSystemJsObject.h" |
6 #include "GlobalJsObject.h" | 8 #include "GlobalJsObject.h" |
7 #include "ConsoleJsObject.h" | 9 #include "ConsoleJsObject.h" |
8 #include "WebRequestJsObject.h" | 10 #include "WebRequestJsObject.h" |
9 #include "Thread.h" | 11 #include "Thread.h" |
10 | 12 |
11 using namespace AdblockPlus; | 13 using namespace AdblockPlus; |
12 | 14 |
13 namespace | 15 namespace |
14 { | 16 { |
15 class TimeoutThread : public Thread | 17 class TimeoutThread : public Thread |
(...skipping 12 matching lines...) Expand all Loading... |
28 delay = arguments[1]->AsInt(); | 30 delay = arguments[1]->AsInt(); |
29 for (size_t i = 2; i < arguments.size(); i++) | 31 for (size_t i = 2; i < arguments.size(); i++) |
30 functionArguments.push_back(arguments[i]); | 32 functionArguments.push_back(arguments[i]); |
31 } | 33 } |
32 | 34 |
33 void Run() | 35 void Run() |
34 { | 36 { |
35 Sleep(delay); | 37 Sleep(delay); |
36 | 38 |
37 function->Call(functionArguments); | 39 function->Call(functionArguments); |
38 delete this; | |
39 } | 40 } |
40 | 41 |
41 private: | 42 private: |
42 typedef v8::Persistent<v8::Value> Value; | |
43 typedef std::vector<Value> Values; | |
44 | |
45 JsValuePtr function; | 43 JsValuePtr function; |
46 int delay; | 44 int delay; |
47 JsValueList functionArguments; | 45 JsValueList functionArguments; |
48 }; | 46 }; |
49 | 47 |
50 v8::Handle<v8::Value> SetTimeoutCallback(const v8::Arguments& arguments) | 48 v8::Handle<v8::Value> SetTimeoutCallback(const v8::Arguments& arguments) |
51 { | 49 { |
52 TimeoutThread* timeoutThread; | 50 TimeoutThread* timeoutThread; |
53 try | 51 try |
54 { | 52 { |
(...skipping 14 matching lines...) Expand all Loading... |
69 return v8::Undefined(); | 67 return v8::Undefined(); |
70 } | 68 } |
71 } | 69 } |
72 | 70 |
73 v8::Handle<v8::ObjectTemplate> GlobalJsObject::Create( | 71 v8::Handle<v8::ObjectTemplate> GlobalJsObject::Create( |
74 JsEngine& jsEngine) | 72 JsEngine& jsEngine) |
75 { | 73 { |
76 const v8::Locker locker(v8::Isolate::GetCurrent()); | 74 const v8::Locker locker(v8::Isolate::GetCurrent()); |
77 v8::HandleScope handleScope; | 75 v8::HandleScope handleScope; |
78 const v8::Handle<v8::ObjectTemplate> global = v8::ObjectTemplate::New(); | 76 const v8::Handle<v8::ObjectTemplate> global = v8::ObjectTemplate::New(); |
79 const v8::Handle<v8::ObjectTemplate> console = | |
80 AdblockPlus::ConsoleJsObject::Create(jsEngine); | |
81 global->Set(v8::String::New("console"), console); | |
82 const v8::Handle<v8::FunctionTemplate> setTimeoutFunction = | 77 const v8::Handle<v8::FunctionTemplate> setTimeoutFunction = |
83 v8::FunctionTemplate::New(::SetTimeoutCallback, | 78 v8::FunctionTemplate::New(SetTimeoutCallback, |
84 v8::External::New(&jsEngine)); | 79 v8::External::New(&jsEngine)); |
85 global->Set(v8::String::New("setTimeout"), setTimeoutFunction); | 80 global->Set(v8::String::New("setTimeout"), setTimeoutFunction); |
86 const v8::Handle<v8::ObjectTemplate> request = | 81 const v8::Handle<v8::ObjectTemplate> fileSystemObject = |
87 AdblockPlus::WebRequestJsObject::Create(jsEngine); | 82 FileSystemJsObject::Create(jsEngine); |
88 global->Set(v8::String::New("_webRequest"), request); | 83 global->Set(v8::String::New("_fileSystem"), fileSystemObject); |
| 84 const v8::Handle<v8::ObjectTemplate> webRequestObject = |
| 85 WebRequestJsObject::Create(jsEngine); |
| 86 global->Set(v8::String::New("_webRequest"), webRequestObject); |
| 87 const v8::Handle<v8::ObjectTemplate> consoleObject = |
| 88 ConsoleJsObject::Create(jsEngine); |
| 89 global->Set(v8::String::New("console"), consoleObject); |
89 return handleScope.Close(global); | 90 return handleScope.Close(global); |
90 } | 91 } |
LEFT | RIGHT |