Rietveld Code Review Tool
Help | Bug tracker | Discussion group | Source code

Side by Side Diff: src/FilterEngine.cpp

Issue 4578638519336960: Issue 1296 - Add SetUpdateAvailableCallback (Closed)
Patch Set: Created Sept. 18, 2014, 3:12 p.m.
Left:
Right:
Use n/p to move between diff chunks; N/P to move between comments.
Jump to:
View unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * This file is part of Adblock Plus <http://adblockplus.org/>, 2 * This file is part of Adblock Plus <http://adblockplus.org/>,
3 * Copyright (C) 2006-2014 Eyeo GmbH 3 * Copyright (C) 2006-2014 Eyeo GmbH
4 * 4 *
5 * Adblock Plus is free software: you can redistribute it and/or modify 5 * Adblock Plus is free software: you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License version 3 as 6 * it under the terms of the GNU General Public License version 3 as
7 * published by the Free Software Foundation. 7 * published by the Free Software Foundation.
8 * 8 *
9 * Adblock Plus is distributed in the hope that it will be useful, 9 * Adblock Plus is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of 10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
(...skipping 322 matching lines...) Expand 10 before | Expand all | Expand 10 after
333 } 333 }
334 334
335 std::string FilterEngine::GetHostFromURL(const std::string& url) 335 std::string FilterEngine::GetHostFromURL(const std::string& url)
336 { 336 {
337 JsValuePtr func = jsEngine->Evaluate("API.getHostFromUrl"); 337 JsValuePtr func = jsEngine->Evaluate("API.getHostFromUrl");
338 JsValueList params; 338 JsValueList params;
339 params.push_back(jsEngine->NewValue(url)); 339 params.push_back(jsEngine->NewValue(url));
340 return func->Call(params)->AsString(); 340 return func->Call(params)->AsString();
341 } 341 }
342 342
343 void FilterEngine::ForceUpdateCheck(FilterEngine::UpdaterCallback callback) 343 void FilterEngine::SetUpdateAvailableCallback(
344 FilterEngine::UpdateAvailableCallback callback)
345 {
346 jsEngine->SetEventCallback("updateAvailable",
347 std::tr1::bind(&FilterEngine::UpdateAvailable, this, callback,
348 std::tr1::placeholders::_1));
349 }
350
351 void FilterEngine::RemoveUpdateAvailableCallback()
352 {
353 jsEngine->RemoveEventCallback("updateAvailable");
354 }
355
356 void FilterEngine::UpdateAvailable(
357 FilterEngine::UpdateAvailableCallback callback, JsValueList& params)
358 {
359 callback(params[0]->AsString());
Wladimir Palant 2014/09/18 19:44:17 I'd rather not crash if the JS code unexpectedly d
Felix Dahlke 2014/09/19 02:51:41 Knowing that the updater actually ensures a valid
360 }
361
362 void FilterEngine::ForceUpdateCheck(
363 FilterEngine::UpdateCheckDoneCallback callback)
344 { 364 {
345 std::string eventName = "updateCheckDone"; 365 std::string eventName = "updateCheckDone";
346 eventName += ++updateCheckId; 366 eventName += ++updateCheckId;
347 367
348 jsEngine->SetEventCallback(eventName, std::tr1::bind(&FilterEngine::UpdateChec kDone, 368 jsEngine->SetEventCallback(eventName, std::tr1::bind(&FilterEngine::UpdateChec kDone,
349 this, eventName, callback, std::tr1::placeholders::_1)); 369 this, eventName, callback, std::tr1::placeholders::_1));
350 370
351 JsValuePtr func = jsEngine->Evaluate("API.forceUpdateCheck"); 371 JsValuePtr func = jsEngine->Evaluate("API.forceUpdateCheck");
352 JsValueList params; 372 JsValueList params;
353 params.push_back(jsEngine->NewValue(eventName)); 373 params.push_back(jsEngine->NewValue(eventName));
354 func->Call(params); 374 func->Call(params);
355 } 375 }
356 376
357 void FilterEngine::UpdateCheckDone(const std::string& eventName, FilterEngine::U pdaterCallback callback, JsValueList& params) 377 void FilterEngine::UpdateCheckDone(const std::string& eventName,
378 FilterEngine::UpdateCheckDoneCallback callback, JsValueList& params)
358 { 379 {
359 jsEngine->RemoveEventCallback(eventName); 380 jsEngine->RemoveEventCallback(eventName);
360 381
361 std::string error(params.size() >= 1 && !params[0]->IsNull() ? params[0]->AsSt ring() : ""); 382 std::string error(params.size() >= 1 && !params[0]->IsNull() ? params[0]->AsSt ring() : "");
362 callback(error); 383 callback(error);
363 } 384 }
364 385
365 void FilterEngine::SetFilterChangeCallback(FilterEngine::FilterChangeCallback ca llback) 386 void FilterEngine::SetFilterChangeCallback(FilterEngine::FilterChangeCallback ca llback)
366 { 387 {
367 jsEngine->SetEventCallback("filterChange", std::tr1::bind(&FilterEngine::Filte rChanged, 388 jsEngine->SetEventCallback("filterChange", std::tr1::bind(&FilterEngine::Filte rChanged,
(...skipping 13 matching lines...) Expand all
381 } 402 }
382 403
383 int FilterEngine::CompareVersions(const std::string& v1, const std::string& v2) 404 int FilterEngine::CompareVersions(const std::string& v1, const std::string& v2)
384 { 405 {
385 JsValueList params; 406 JsValueList params;
386 params.push_back(jsEngine->NewValue(v1)); 407 params.push_back(jsEngine->NewValue(v1));
387 params.push_back(jsEngine->NewValue(v2)); 408 params.push_back(jsEngine->NewValue(v2));
388 JsValuePtr func = jsEngine->Evaluate("API.compareVersions"); 409 JsValuePtr func = jsEngine->Evaluate("API.compareVersions");
389 return func->Call(params)->AsInt(); 410 return func->Call(params)->AsInt();
390 } 411 }
OLDNEW

Powered by Google App Engine
This is Rietveld