OLD | NEW |
1 #include <algorithm> | 1 #include <algorithm> |
2 #include <cctype> | 2 #include <cctype> |
3 #include <functional> | 3 #include <functional> |
| 4 #include <string> |
4 | 5 |
5 #include <AdblockPlus.h> | 6 #include <AdblockPlus.h> |
6 | 7 |
7 using namespace AdblockPlus; | 8 using namespace AdblockPlus; |
8 | 9 |
9 extern const char* jsSources[]; | 10 extern std::string jsSources[]; |
10 | 11 |
11 Filter::Filter(JsValuePtr value) | 12 Filter::Filter(JsValuePtr value) |
12 : JsValue(value) | 13 : JsValue(value) |
13 { | 14 { |
14 if (!IsObject()) | 15 if (!IsObject()) |
15 throw std::runtime_error("JavaScript value is not an object"); | 16 throw std::runtime_error("JavaScript value is not an object"); |
16 } | 17 } |
17 | 18 |
18 Filter::Type Filter::GetType() | 19 Filter::Type Filter::GetType() |
19 { | 20 { |
(...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
109 return result->AsBool(); | 110 return result->AsBool(); |
110 } | 111 } |
111 | 112 |
112 bool Subscription::operator==(const Subscription& subscription) const | 113 bool Subscription::operator==(const Subscription& subscription) const |
113 { | 114 { |
114 return GetProperty("url")->AsString() == subscription.GetProperty("url")->AsSt
ring(); | 115 return GetProperty("url")->AsString() == subscription.GetProperty("url")->AsSt
ring(); |
115 } | 116 } |
116 | 117 |
117 FilterEngine::FilterEngine(JsEnginePtr jsEngine) : jsEngine(jsEngine) | 118 FilterEngine::FilterEngine(JsEnginePtr jsEngine) : jsEngine(jsEngine) |
118 { | 119 { |
119 for (int i = 0; jsSources[i] && jsSources[i + 1]; i += 2) | 120 for (int i = 0; !jsSources[i].empty(); i += 2) |
120 jsEngine->Evaluate(jsSources[i + 1], jsSources[i]); | 121 jsEngine->Evaluate(jsSources[i + 1], jsSources[i]); |
121 } | 122 } |
122 | 123 |
123 FilterPtr FilterEngine::GetFilter(const std::string& text) | 124 FilterPtr FilterEngine::GetFilter(const std::string& text) |
124 { | 125 { |
125 JsValuePtr func = jsEngine->Evaluate("API.getFilterFromText"); | 126 JsValuePtr func = jsEngine->Evaluate("API.getFilterFromText"); |
126 JsValueList params; | 127 JsValueList params; |
127 params.push_back(jsEngine->NewValue(text)); | 128 params.push_back(jsEngine->NewValue(text)); |
128 return FilterPtr(new Filter(func->Call(params))); | 129 return FilterPtr(new Filter(func->Call(params))); |
129 } | 130 } |
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
186 { | 187 { |
187 JsValuePtr func = jsEngine->Evaluate("API.getElementHidingSelectors"); | 188 JsValuePtr func = jsEngine->Evaluate("API.getElementHidingSelectors"); |
188 JsValueList params; | 189 JsValueList params; |
189 params.push_back(jsEngine->NewValue(domain)); | 190 params.push_back(jsEngine->NewValue(domain)); |
190 JsValueList result = func->Call(params)->AsList(); | 191 JsValueList result = func->Call(params)->AsList(); |
191 std::vector<std::string> selectors; | 192 std::vector<std::string> selectors; |
192 for (JsValueList::iterator it = result.begin(); it != result.end(); ++it) | 193 for (JsValueList::iterator it = result.begin(); it != result.end(); ++it) |
193 selectors.push_back((*it)->AsString()); | 194 selectors.push_back((*it)->AsString()); |
194 return selectors; | 195 return selectors; |
195 } | 196 } |
OLD | NEW |