Make sure webrtc::VideoSourceInterface is released on the main render thread.
[chromium-blink-merge.git] / content / public / test / test_browser_thread.cc
blobb4fc13278c71bea553787841db7801be55ec8c5d
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #include "content/public/test/test_browser_thread.h"
7 #include "base/message_loop/message_loop.h"
8 #include "base/threading/thread.h"
9 #include "content/browser/browser_thread_impl.h"
10 #include "content/browser/notification_service_impl.h"
12 namespace content {
14 class TestBrowserThreadImpl : public BrowserThreadImpl {
15 public:
16 explicit TestBrowserThreadImpl(BrowserThread::ID identifier)
17 : BrowserThreadImpl(identifier),
18 notification_service_(NULL) {
21 TestBrowserThreadImpl(BrowserThread::ID identifier,
22 base::MessageLoop* message_loop)
23 : BrowserThreadImpl(identifier, message_loop),
24 notification_service_(NULL) {}
26 virtual ~TestBrowserThreadImpl() {
27 Stop();
30 virtual void Init() OVERRIDE {
31 notification_service_ = new NotificationServiceImpl;
32 BrowserThreadImpl::Init();
35 virtual void CleanUp() OVERRIDE {
36 delete notification_service_;
37 notification_service_ = NULL;
38 BrowserThreadImpl::CleanUp();
41 private:
42 NotificationService* notification_service_;
44 DISALLOW_COPY_AND_ASSIGN(TestBrowserThreadImpl);
47 TestBrowserThread::TestBrowserThread(BrowserThread::ID identifier)
48 : impl_(new TestBrowserThreadImpl(identifier)) {
51 TestBrowserThread::TestBrowserThread(BrowserThread::ID identifier,
52 base::MessageLoop* message_loop)
53 : impl_(new TestBrowserThreadImpl(identifier, message_loop)) {}
55 TestBrowserThread::~TestBrowserThread() {
56 Stop();
59 bool TestBrowserThread::Start() {
60 return impl_->Start();
63 bool TestBrowserThread::StartIOThread() {
64 base::Thread::Options options;
65 options.message_loop_type = base::MessageLoop::TYPE_IO;
66 return impl_->StartWithOptions(options);
69 void TestBrowserThread::Stop() {
70 impl_->Stop();
73 bool TestBrowserThread::IsRunning() {
74 return impl_->IsRunning();
77 base::Thread* TestBrowserThread::DeprecatedGetThreadObject() {
78 return impl_.get();
81 } // namespace content