| LEFT | RIGHT |
| 1 #include <algorithm> | 1 #include <algorithm> |
| 2 #include <cctype> | 2 #include <cctype> |
| 3 #include <functional> | 3 #include <functional> |
| 4 | 4 |
| 5 #include <AdblockPlus.h> | 5 #include <AdblockPlus.h> |
| 6 | 6 |
| 7 using namespace AdblockPlus; | 7 using namespace AdblockPlus; |
| 8 | 8 |
| 9 #if !FILTER_ENGINE_STUBS | 9 #if !FILTER_ENGINE_STUBS |
| 10 extern const char* jsSources[]; | 10 extern const char* jsSources[]; |
| (...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 102 if (text.find("!") == 0) | 102 if (text.find("!") == 0) |
| 103 type = TYPE_COMMENT; | 103 type = TYPE_COMMENT; |
| 104 else if (text.find("@@") == 0) | 104 else if (text.find("@@") == 0) |
| 105 type = TYPE_EXCEPTION; | 105 type = TYPE_EXCEPTION; |
| 106 else if (text.find("#@") != std::string::npos) | 106 else if (text.find("#@") != std::string::npos) |
| 107 type = TYPE_ELEMHIDE_EXCEPTION; | 107 type = TYPE_ELEMHIDE_EXCEPTION; |
| 108 else if (text.find("#") != std::string::npos) | 108 else if (text.find("#") != std::string::npos) |
| 109 type = TYPE_ELEMHIDE; | 109 type = TYPE_ELEMHIDE; |
| 110 else | 110 else |
| 111 type = TYPE_BLOCKING; | 111 type = TYPE_BLOCKING; |
| 112 SetProperty("type", (int64_t)type); | 112 SetProperty("type", type); |
| 113 } | 113 } |
| 114 #else | 114 #else |
| 115 Filter::Filter(JsValuePtr value) | 115 Filter::Filter(JsValuePtr value) |
| 116 : JsObject(value) | 116 : JsObject(value) |
| 117 { | 117 { |
| 118 // Hack: set `type` property according to class name | 118 // Hack: set `type` property according to class name |
| 119 std::string className = GetClassName(); | 119 std::string className = GetClassName(); |
| 120 Type type; | 120 Type type; |
| 121 if (className == "BlockingFilter") | 121 if (className == "BlockingFilter") |
| 122 type = TYPE_BLOCKING; | 122 type = TYPE_BLOCKING; |
| 123 else if (className == "WhitelistFilter") | 123 else if (className == "WhitelistFilter") |
| 124 type = TYPE_EXCEPTION; | 124 type = TYPE_EXCEPTION; |
| 125 else if (className == "ElemHideFilter") | 125 else if (className == "ElemHideFilter") |
| 126 type = TYPE_ELEMHIDE; | 126 type = TYPE_ELEMHIDE; |
| 127 else if (className == "ElemHideException") | 127 else if (className == "ElemHideException") |
| 128 type = TYPE_ELEMHIDE_EXCEPTION; | 128 type = TYPE_ELEMHIDE_EXCEPTION; |
| 129 else if (className == "CommentFilter") | 129 else if (className == "CommentFilter") |
| 130 type = TYPE_COMMENT; | 130 type = TYPE_COMMENT; |
| 131 else | 131 else |
| 132 type = TYPE_INVALID; | 132 type = TYPE_INVALID; |
| 133 SetProperty("type", (int64_t)type); | 133 SetProperty("type", type); |
| 134 } | 134 } |
| 135 #endif | 135 #endif |
| 136 | 136 |
| 137 bool Filter::IsListed() | 137 bool Filter::IsListed() |
| 138 { | 138 { |
| 139 #if FILTER_ENGINE_STUBS | 139 #if FILTER_ENGINE_STUBS |
| 140 for (std::vector<FilterPtr>::iterator it = filterEngine.listedFilters.begin(); | 140 for (std::vector<FilterPtr>::iterator it = filterEngine.listedFilters.begin(); |
| 141 it != filterEngine.listedFilters.end(); ++it) | 141 it != filterEngine.listedFilters.end(); ++it) |
| 142 { | 142 { |
| 143 if (it->get() == this) | 143 if (it->get() == this) |
| (...skipping 103 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 247 #else | 247 #else |
| 248 JsValuePtr func = jsEngine.Evaluate("API.removeSubscriptionFromList"); | 248 JsValuePtr func = jsEngine.Evaluate("API.removeSubscriptionFromList"); |
| 249 JsValueList params; | 249 JsValueList params; |
| 250 params.push_back(shared_from_this()); | 250 params.push_back(shared_from_this()); |
| 251 func->Call(params); | 251 func->Call(params); |
| 252 #endif | 252 #endif |
| 253 } | 253 } |
| 254 | 254 |
| 255 void Subscription::UpdateFilters() | 255 void Subscription::UpdateFilters() |
| 256 { | 256 { |
| 257 #if !FILTER_ENGINE_STUBS |
| 258 JsValuePtr func = jsEngine.Evaluate("API.updateSubscription"); |
| 259 JsValueList params; |
| 260 params.push_back(shared_from_this()); |
| 261 func->Call(params); |
| 262 #endif |
| 263 } |
| 264 |
| 265 bool Subscription::IsUpdating() |
| 266 { |
| 267 #if FILTER_ENGINE_STUBS |
| 268 return false; |
| 269 #else |
| 270 JsValuePtr func = jsEngine.Evaluate("API.isSubscriptionUpdating"); |
| 271 JsValueList params; |
| 272 params.push_back(shared_from_this()); |
| 273 JsValuePtr result = func->Call(params); |
| 274 return result->AsBool(); |
| 275 #endif |
| 257 } | 276 } |
| 258 | 277 |
| 259 bool Subscription::operator==(const Subscription& subscription) const | 278 bool Subscription::operator==(const Subscription& subscription) const |
| 260 { | 279 { |
| 261 return GetProperty("url", "") == subscription.GetProperty("url", ""); | 280 return GetProperty("url", "") == subscription.GetProperty("url", ""); |
| 262 } | 281 } |
| 263 | 282 |
| 264 FilterEngine::FilterEngine(JsEngine& jsEngine) : jsEngine(jsEngine) | 283 FilterEngine::FilterEngine(JsEngine& jsEngine) : jsEngine(jsEngine) |
| 265 { | 284 { |
| 266 #if !FILTER_ENGINE_STUBS | 285 #if !FILTER_ENGINE_STUBS |
| (...skipping 130 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 397 JsValuePtr func = jsEngine.Evaluate("API.getElementHidingSelectors"); | 416 JsValuePtr func = jsEngine.Evaluate("API.getElementHidingSelectors"); |
| 398 JsValueList params; | 417 JsValueList params; |
| 399 params.push_back(jsEngine.NewValue(domain)); | 418 params.push_back(jsEngine.NewValue(domain)); |
| 400 JsValueList result = func->Call(params)->AsList(); | 419 JsValueList result = func->Call(params)->AsList(); |
| 401 std::vector<std::string> selectors; | 420 std::vector<std::string> selectors; |
| 402 for (JsValueList::iterator it = result.begin(); it != result.end(); ++it) | 421 for (JsValueList::iterator it = result.begin(); it != result.end(); ++it) |
| 403 selectors.push_back((*it)->AsString()); | 422 selectors.push_back((*it)->AsString()); |
| 404 return selectors; | 423 return selectors; |
| 405 #endif | 424 #endif |
| 406 } | 425 } |
| LEFT | RIGHT |