| Index: third_party/WebKit/Source/platform/testing/TestingPlatformSupport.cpp
|
| diff --git a/third_party/WebKit/Source/platform/testing/TestingPlatformSupport.cpp b/third_party/WebKit/Source/platform/testing/TestingPlatformSupport.cpp
|
| index 528f9e3e4f33eaace6bf030d62239db4ede5bb3d..2c647ff0718b85524df830a0b0595333d5e988da 100644
|
| --- a/third_party/WebKit/Source/platform/testing/TestingPlatformSupport.cpp
|
| +++ b/third_party/WebKit/Source/platform/testing/TestingPlatformSupport.cpp
|
| @@ -30,11 +30,48 @@
|
|
|
| #include "platform/testing/TestingPlatformSupport.h"
|
|
|
| +#include "platform/EventTracer.h"
|
| +#include "platform/HTTPNames.h"
|
| +#include "platform/heap/Heap.h"
|
| +#include "wtf/CryptographicallyRandomNumber.h"
|
| +#include "wtf/CurrentTime.h"
|
| #include "wtf/PtrUtil.h"
|
| +#include "wtf/WTF.h"
|
| +#include "wtf/allocator/Partitions.h"
|
| +#include <base/memory/discardable_memory_allocator.h>
|
| +#include <base/metrics/statistics_recorder.h>
|
| +#include <base/test/test_discardable_memory_allocator.h>
|
| +#include <cc/blink/web_compositor_support_impl.h>
|
| #include <memory>
|
|
|
| namespace blink {
|
|
|
| +namespace {
|
| +
|
| +double dummyCurrentTime()
|
| +{
|
| + return 0.0;
|
| +}
|
| +
|
| +class DummyThread final : public blink::WebThread {
|
| +public:
|
| + bool isCurrentThread() const override { return true; }
|
| + blink::WebScheduler* scheduler() const override { return nullptr; }
|
| +};
|
| +
|
| +class DummyPlatform final : public blink::Platform {
|
| +public:
|
| + DummyPlatform() { }
|
| +
|
| + blink::WebThread* currentThread() override
|
| + {
|
| + static DummyThread dummyThread;
|
| + return &dummyThread;
|
| + };
|
| +};
|
| +
|
| +} // namespace
|
| +
|
| TestingPlatformSupport::TestingPlatformSupport()
|
| : TestingPlatformSupport(TestingPlatformSupport::Config())
|
| {
|
| @@ -193,4 +230,59 @@ TestingPlatformMockScheduler* TestingPlatformSupportWithMockScheduler::mockWebSc
|
| return m_mockWebThread->mockWebScheduler();
|
| }
|
|
|
| +class ScopedUnittestsEnvironmentSetup::Impl {
|
| +public:
|
| + Impl();
|
| + ~Impl();
|
| +private:
|
| + base::TestDiscardableMemoryAllocator m_discardableMemoryAllocator;
|
| + std::unique_ptr<DummyPlatform> m_platform;
|
| +
|
| + cc_blink::WebCompositorSupportImpl m_compositorSupport;
|
| + TestingPlatformSupport::Config m_testingPlatformConfig;
|
| + std::unique_ptr<TestingPlatformSupport> m_testingPlatformSupport;
|
| +};
|
| +
|
| +ScopedUnittestsEnvironmentSetup::Impl::Impl()
|
| +{
|
| + base::DiscardableMemoryAllocator::SetInstance(&m_discardableMemoryAllocator);
|
| + base::StatisticsRecorder::Initialize();
|
| +
|
| + m_platform = wrapUnique(new DummyPlatform);
|
| + Platform::setCurrentPlatformForTesting(m_platform.get());
|
| +
|
| + WTF::Partitions::initialize(nullptr);
|
| + WTF::setTimeFunctionsForTesting(dummyCurrentTime);
|
| + WTF::initialize(nullptr);
|
| +
|
| + m_testingPlatformConfig.compositorSupport = &m_compositorSupport;
|
| + m_testingPlatformSupport = wrapUnique(new TestingPlatformSupport(m_testingPlatformConfig));
|
| +
|
| + ProcessHeap::init();
|
| + ThreadState::attachMainThread();
|
| + ThreadState::current()->registerTraceDOMWrappers(nullptr, nullptr, nullptr);
|
| + EventTracer::initialize();
|
| + HTTPNames::init();
|
| +}
|
| +
|
| +ScopedUnittestsEnvironmentSetup::Impl::~Impl()
|
| +{
|
| + blink::ThreadState::detachMainThread();
|
| + blink::ProcessHeap::shutdown();
|
| + m_testingPlatformSupport.reset();
|
| +
|
| + WTF::shutdown();
|
| + WTF::Partitions::shutdown();
|
| +}
|
| +
|
| +ScopedUnittestsEnvironmentSetup::ScopedUnittestsEnvironmentSetup()
|
| +{
|
| + m_impl = wrapUnique(new Impl());
|
| +}
|
| +
|
| +ScopedUnittestsEnvironmentSetup::~ScopedUnittestsEnvironmentSetup()
|
| +{
|
| + m_impl.reset();
|
| +}
|
| +
|
| } // namespace blink
|
|
|