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

Side by Side Diff: test/BaseJsTest.cpp

Issue 29500602: Issue 5450 - introduce the Platform class (Closed) Base URL: https://github.com/adblockplus/libadblockplus.git
Patch Set: rebase Created July 31, 2017, 12:53 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 <https://adblockplus.org/>, 2 * This file is part of Adblock Plus <https://adblockplus.org/>,
3 * Copyright (C) 2006-2017 eyeo GmbH 3 * Copyright (C) 2006-2017 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 17 matching lines...) Expand all
28 if (ii->timeout.count() == 0) 28 if (ii->timeout.count() == 0)
29 { 29 {
30 ii->callback(); 30 ii->callback();
31 ii = timerTasks->erase(ii); 31 ii = timerTasks->erase(ii);
32 } 32 }
33 else 33 else
34 ++ii; 34 ++ii;
35 } 35 }
36 } 36 }
37 37
38 JsEngineCreationParameters::JsEngineCreationParameters()
39 : logSystem(new ThrowingLogSystem())
40 , timer(new ThrowingTimer())
41 , webRequest(new ThrowingWebRequest())
42 , fileSystem(std::make_shared<ThrowingFileSystem>())
43 {
44 }
45
46 AdblockPlus::JsEnginePtr CreateJsEngine(JsEngineCreationParameters&& jsEngineCre ationParameters)
47 {
48 auto jsEngine = AdblockPlus::JsEngine::New(jsEngineCreationParameters.appInfo,
49 std::move(jsEngineCreationParameters.timer),
50 std::move(jsEngineCreationParameters.fileSystem),
51 std::move(jsEngineCreationParameters.webRequest),
52 std::move(jsEngineCreationParameters.logSystem));
53 return jsEngine;
54 }
55
56 FilterEnginePtr CreateFilterEngine(LazyFileSystem& fileSystem, 38 FilterEnginePtr CreateFilterEngine(LazyFileSystem& fileSystem,
57 const JsEnginePtr& jsEngine, 39 const JsEnginePtr& jsEngine,
58 const FilterEngine::CreationParameters& creationParams) 40 const FilterEngine::CreationParameters& creationParams)
59 { 41 {
60 std::list<LazyFileSystem::Task> fileSystemTasks; 42 std::list<LazyFileSystem::Task> fileSystemTasks;
61 fileSystem.scheduler = [&fileSystemTasks](const LazyFileSystem::Task& task) 43 fileSystem.scheduler = [&fileSystemTasks](const LazyFileSystem::Task& task)
62 { 44 {
63 fileSystemTasks.emplace_back(task); 45 fileSystemTasks.emplace_back(task);
64 }; 46 };
65 FilterEnginePtr retValue; 47 FilterEnginePtr retValue;
66 FilterEngine::CreateAsync(jsEngine, [&retValue, &fileSystem](const FilterEngin ePtr& filterEngine) 48 FilterEngine::CreateAsync(jsEngine, [&retValue, &fileSystem](const FilterEngin ePtr& filterEngine)
67 { 49 {
68 retValue = filterEngine; 50 retValue = filterEngine;
69 fileSystem.scheduler = LazyFileSystem::ExecuteImmediately; 51 fileSystem.scheduler = LazyFileSystem::ExecuteImmediately;
70 }, creationParams); 52 }, creationParams);
71 while (!retValue && !fileSystemTasks.empty()) 53 while (!retValue && !fileSystemTasks.empty())
72 { 54 {
73 (*fileSystemTasks.begin())(); 55 (*fileSystemTasks.begin())();
74 fileSystemTasks.pop_front(); 56 fileSystemTasks.pop_front();
75 } 57 }
76 return retValue; 58 return retValue;
77 } 59 }
60
61 ThrowingPlatformCreationParameters::ThrowingPlatformCreationParameters()
62 {
63 logSystem.reset(new ThrowingLogSystem());
64 timer.reset(new ThrowingTimer());
65 fileSystem = std::make_shared<ThrowingFileSystem>();
66 webRequest.reset(new ThrowingWebRequest());
67 }
OLDNEW

Powered by Google App Engine
This is Rietveld