| Index: src/FilterEngine.cpp |
| diff --git a/src/FilterEngine.cpp b/src/FilterEngine.cpp |
| index 96c4571fbf593f47041bd3415fc44d73f55da7f1..2561cc28f8fad5e4f4bbf371205a8132b0787181 100644 |
| --- a/src/FilterEngine.cpp |
| +++ b/src/FilterEngine.cpp |
| @@ -257,15 +257,30 @@ std::vector<SubscriptionPtr> FilterEngine::FetchAvailableSubscriptions() const |
| return result; |
| } |
| -NotificationPtr FilterEngine::GetNextNotificationToShow(const std::string& url) |
| +void FilterEngine::ShowNextNotification(const std::string& url) |
| { |
| - JsValuePtr func = jsEngine->Evaluate("API.getNextNotificationToShow"); |
| + JsValuePtr func = jsEngine->Evaluate("API.showNextNotification"); |
| JsValueList params; |
| if (!url.empty()) |
| { |
| params.push_back(jsEngine->NewValue(url)); |
| } |
| - return Notification::JsValueToNotification(func->Call(params)); |
| + func->Call(params); |
| +} |
| + |
| +void FilterEngine::SetNotificationAvailableCallback(const NotificationAvailableCallback& value) |
| +{ |
| + if (!value) |
| + return; |
| + |
| + jsEngine->SetEventCallback("_notificationAvailable", |
| + std::tr1::bind(&FilterEngine::NotificationAvailable, this, value, |
| + std::tr1::placeholders::_1)); |
| +} |
| + |
| +void FilterEngine::RemoveNotificationAvailableCallback() |
| +{ |
| + jsEngine->RemoveEventCallback("_notificationAvailable"); |
| } |
| AdblockPlus::FilterPtr FilterEngine::Matches(const std::string& url, |
| @@ -414,6 +429,16 @@ void FilterEngine::FilterChanged(FilterEngine::FilterChangeCallback callback, Js |
| callback(action, item); |
| } |
| +void FilterEngine::NotificationAvailable(const NotificationAvailableCallback& callback, |
| + const JsValueList& params) |
| +{ |
| + if (params.size() < 1) |
| + return; |
| + |
| + callback(Notification::JsValueToNotification(params[0])); |
| +} |
| + |
| + |
| int FilterEngine::CompareVersions(const std::string& v1, const std::string& v2) |
| { |
| JsValueList params; |