void Filter::RemoveFromList() { JsValuePtr func = jsEngine->Evaluate("API.removeFilterFromList"); JsValueList params; params.push_back(shared_from_this()); func->Call(params); }
std::string FilterEngine::GetHostFromURL(const std::string& url) { JsValuePtr func = jsEngine->Evaluate("API.getHostFromUrl"); JsValueList params; params.push_back(jsEngine->NewValue(url)); return func->Call(params)->AsString(); }
JsValuePtr FilterEngine::GetPref(const std::string& pref) const { JsValuePtr func = jsEngine->Evaluate("API.getPref"); JsValueList params; params.push_back(jsEngine->NewValue(pref)); return func->Call(params); }
SubscriptionPtr FilterEngine::GetSubscription(const std::string& url) { JsValuePtr func = jsEngine->Evaluate("API.getSubscriptionFromUrl"); JsValueList params; params.push_back(jsEngine->NewValue(url)); return SubscriptionPtr(new Subscription(std::move(*func->Call(params)))); }
FilterPtr FilterEngine::GetFilter(const std::string& text) { JsValuePtr func = jsEngine->Evaluate("API.getFilterFromText"); JsValueList params; params.push_back(jsEngine->NewValue(text)); return FilterPtr(new Filter(std::move(*func->Call(params)))); }
void Subscription::UpdateFilters() { JsValuePtr func = jsEngine->Evaluate("API.updateSubscription"); JsValueList params; params.push_back(shared_from_this()); func->Call(params); }
bool Subscription::IsListed() { JsValuePtr func = jsEngine->Evaluate("API.isListedSubscription"); JsValueList params; params.push_back(shared_from_this()); return func->Call(params)->AsBool(); }
void Subscription::AddToList() { JsValuePtr func = jsEngine->Evaluate("API.addSubscriptionToList"); JsValueList params; params.push_back(shared_from_this()); func->Call(params); }
int FilterEngine::CompareVersions(const std::string& v1, const std::string& v2) { JsValueList params; params.push_back(jsEngine->NewValue(v1)); params.push_back(jsEngine->NewValue(v2)); JsValuePtr func = jsEngine->Evaluate("API.compareVersions"); return func->Call(params)->AsInt(); }
void FilterEngine::SetPref(const std::string& pref, JsValuePtr value) { JsValuePtr func = jsEngine->Evaluate("API.setPref"); JsValueList params; params.push_back(jsEngine->NewValue(pref)); params.push_back(value); func->Call(params); }
bool Subscription::IsUpdating() { JsValuePtr func = jsEngine->Evaluate("API.isSubscriptionUpdating"); JsValueList params; params.push_back(shared_from_this()); JsValuePtr result = func->Call(params); return result->AsBool(); }
std::vector<SubscriptionPtr> FilterEngine::FetchAvailableSubscriptions() const { JsValuePtr func = jsEngine->Evaluate("API.getRecommendedSubscriptions"); JsValueList values = func->Call()->AsList(); std::vector<SubscriptionPtr> result; for (JsValueList::iterator it = values.begin(); it != values.end(); it++) result.push_back(SubscriptionPtr(new Subscription(std::move(**it)))); return result; }
std::vector<FilterPtr> FilterEngine::GetListedFilters() const { JsValuePtr func = jsEngine->Evaluate("API.getListedFilters"); JsValueList values = func->Call()->AsList(); std::vector<FilterPtr> result; for (JsValueList::iterator it = values.begin(); it != values.end(); it++) result.push_back(FilterPtr(new Filter(std::move(**it)))); return result; }
NotificationPtr FilterEngine::GetNextNotificationToShow(const std::string& url) { JsValuePtr func = jsEngine->Evaluate("API.getNextNotificationToShow"); JsValueList params; if (!url.empty()) { params.push_back(jsEngine->NewValue(url)); } return Notification::JsValueToNotification(func->Call(params)); }
void FilterEngine::ShowNextNotification(const std::string& url) { JsValuePtr func = jsEngine->Evaluate("API.showNextNotification"); JsValueList params; if (!url.empty()) { params.push_back(jsEngine->NewValue(url)); } func->Call(params); }
std::vector<std::string> FilterEngine::GetElementHidingSelectors(const std::string& domain) const { JsValuePtr func = jsEngine->Evaluate("API.getElementHidingSelectors"); JsValueList params; params.push_back(jsEngine->NewValue(domain)); JsValueList result = func->Call(params)->AsList(); std::vector<std::string> selectors; for (JsValueList::iterator it = result.begin(); it != result.end(); ++it) selectors.push_back((*it)->AsString()); return selectors; }
void FilterEngine::ForceUpdateCheck(FilterEngine::UpdaterCallback callback) { std::string eventName = "updateCheckDone"; eventName += ++updateCheckId; jsEngine->SetEventCallback(eventName, std::tr1::bind(&FilterEngine::UpdateCheckDone, this, eventName, callback, std::tr1::placeholders::_1)); JsValuePtr func = jsEngine->Evaluate("API.forceUpdateCheck"); JsValueList params; params.push_back(jsEngine->NewValue(eventName)); func->Call(params); }
AdblockPlus::FilterPtr FilterEngine::CheckFilterMatch(const std::string& url, ContentType contentType, const std::string& documentUrl) const { JsValuePtr func = jsEngine->Evaluate("API.checkFilterMatch"); JsValueList params; params.push_back(jsEngine->NewValue(url)); params.push_back(jsEngine->NewValue(ContentTypeToString(contentType))); params.push_back(jsEngine->NewValue(documentUrl)); JsValuePtr result = func->Call(params); if (!result->IsNull()) return FilterPtr(new Filter(std::move(*result))); else return FilterPtr(); }