Commit d2f2ce69 authored by Hajime Hoshi's avatar Hajime Hoshi Committed by Commit Bot

media: Use per-frame task runners at WebRTCMediaStreamAdapterMap and...

media: Use per-frame task runners at WebRTCMediaStreamAdapterMap and WebRtcMediaStreamTrackAdapterMap

This is part of efforts to replace base::ThreadTaskRunnerHandle::Get()
and SequencedTaskRunnerHandle::Get() with other appropriate task runners
in the renderer.

Bug: 786332
Change-Id: I300a38816bef6bb8f371203aaad52cb31154309a
Reviewed-on: https://chromium-review.googlesource.com/882713Reviewed-by: default avatarDale Curtis <dalecurtis@chromium.org>
Reviewed-by: default avatarAlexander Timin <altimin@chromium.org>
Commit-Queue: Hajime Hoshi <hajimehoshi@chromium.org>
Cr-Commit-Position: refs/heads/master@{#531820}
parent b1808e52
...@@ -1302,10 +1302,12 @@ RTCPeerConnectionHandler::RTCPeerConnectionHandler( ...@@ -1302,10 +1302,12 @@ RTCPeerConnectionHandler::RTCPeerConnectionHandler(
is_closed_(false), is_closed_(false),
dependency_factory_(dependency_factory), dependency_factory_(dependency_factory),
track_adapter_map_( track_adapter_map_(
new WebRtcMediaStreamTrackAdapterMap(dependency_factory_)), new WebRtcMediaStreamTrackAdapterMap(dependency_factory_,
task_runner)),
stream_adapter_map_(new WebRtcMediaStreamAdapterMap(dependency_factory_, stream_adapter_map_(new WebRtcMediaStreamAdapterMap(dependency_factory_,
task_runner,
track_adapter_map_)), track_adapter_map_)),
task_runner_(task_runner), task_runner_(std::move(task_runner)),
weak_factory_(this) { weak_factory_(this) {
CHECK(client_); CHECK(client_);
GetPeerConnectionHandlers()->insert(this); GetPeerConnectionHandlers()->insert(this);
......
...@@ -21,6 +21,7 @@ ...@@ -21,6 +21,7 @@
#include "third_party/WebKit/public/platform/WebMediaStreamTrack.h" #include "third_party/WebKit/public/platform/WebMediaStreamTrack.h"
#include "third_party/WebKit/public/platform/WebRTCVoidRequest.h" #include "third_party/WebKit/public/platform/WebRTCVoidRequest.h"
#include "third_party/WebKit/public/platform/WebString.h" #include "third_party/WebKit/public/platform/WebString.h"
#include "third_party/WebKit/public/platform/scheduler/test/renderer_scheduler_test_support.h"
#include "third_party/WebKit/public/web/WebHeap.h" #include "third_party/WebKit/public/web/WebHeap.h"
#include "third_party/webrtc/api/test/mock_rtpsender.h" #include "third_party/webrtc/api/test/mock_rtpsender.h"
...@@ -33,10 +34,11 @@ class RTCRtpSenderTest : public ::testing::Test { ...@@ -33,10 +34,11 @@ class RTCRtpSenderTest : public ::testing::Test {
public: public:
void SetUp() override { void SetUp() override {
dependency_factory_.reset(new MockPeerConnectionDependencyFactory()); dependency_factory_.reset(new MockPeerConnectionDependencyFactory());
main_thread_ = base::ThreadTaskRunnerHandle::Get(); main_thread_ = blink::scheduler::GetSingleThreadTaskRunnerForTesting();
stream_map_ = new WebRtcMediaStreamAdapterMap( stream_map_ = new WebRtcMediaStreamAdapterMap(
dependency_factory_.get(), dependency_factory_.get(), main_thread_,
new WebRtcMediaStreamTrackAdapterMap(dependency_factory_.get())); new WebRtcMediaStreamTrackAdapterMap(dependency_factory_.get(),
main_thread_));
mock_webrtc_sender_ = new rtc::RefCountedObject<webrtc::MockRtpSender>(); mock_webrtc_sender_ = new rtc::RefCountedObject<webrtc::MockRtpSender>();
} }
......
...@@ -66,9 +66,10 @@ WebRtcMediaStreamAdapterMap::AdapterRef::Copy() const { ...@@ -66,9 +66,10 @@ WebRtcMediaStreamAdapterMap::AdapterRef::Copy() const {
WebRtcMediaStreamAdapterMap::WebRtcMediaStreamAdapterMap( WebRtcMediaStreamAdapterMap::WebRtcMediaStreamAdapterMap(
PeerConnectionDependencyFactory* const factory, PeerConnectionDependencyFactory* const factory,
scoped_refptr<base::SingleThreadTaskRunner> main_thread,
scoped_refptr<WebRtcMediaStreamTrackAdapterMap> track_adapter_map) scoped_refptr<WebRtcMediaStreamTrackAdapterMap> track_adapter_map)
: factory_(factory), : factory_(factory),
main_thread_(base::ThreadTaskRunnerHandle::Get()), main_thread_(std::move(main_thread)),
track_adapter_map_(std::move(track_adapter_map)) { track_adapter_map_(std::move(track_adapter_map)) {
DCHECK(factory_); DCHECK(factory_);
DCHECK(main_thread_); DCHECK(main_thread_);
......
...@@ -78,6 +78,7 @@ class CONTENT_EXPORT WebRtcMediaStreamAdapterMap ...@@ -78,6 +78,7 @@ class CONTENT_EXPORT WebRtcMediaStreamAdapterMap
// Must be invoked on the main thread. // Must be invoked on the main thread.
WebRtcMediaStreamAdapterMap( WebRtcMediaStreamAdapterMap(
PeerConnectionDependencyFactory* const factory, PeerConnectionDependencyFactory* const factory,
scoped_refptr<base::SingleThreadTaskRunner> main_thread,
scoped_refptr<WebRtcMediaStreamTrackAdapterMap> track_adapter_map); scoped_refptr<WebRtcMediaStreamTrackAdapterMap> track_adapter_map);
// Gets a new reference to the local stream adapter, or null if no such // Gets a new reference to the local stream adapter, or null if no such
......
...@@ -39,8 +39,9 @@ class WebRtcMediaStreamAdapterMapTest : public ::testing::Test { ...@@ -39,8 +39,9 @@ class WebRtcMediaStreamAdapterMapTest : public ::testing::Test {
dependency_factory_.reset(new MockPeerConnectionDependencyFactory()); dependency_factory_.reset(new MockPeerConnectionDependencyFactory());
main_thread_ = blink::scheduler::GetSingleThreadTaskRunnerForTesting(); main_thread_ = blink::scheduler::GetSingleThreadTaskRunnerForTesting();
map_ = new WebRtcMediaStreamAdapterMap( map_ = new WebRtcMediaStreamAdapterMap(
dependency_factory_.get(), dependency_factory_.get(), main_thread_,
new WebRtcMediaStreamTrackAdapterMap(dependency_factory_.get())); new WebRtcMediaStreamTrackAdapterMap(dependency_factory_.get(),
main_thread_));
} }
void TearDown() override { blink::WebHeap::CollectAllGarbageForTesting(); } void TearDown() override { blink::WebHeap::CollectAllGarbageForTesting(); }
......
...@@ -41,8 +41,9 @@ class WebRtcMediaStreamAdapterTest : public ::testing::Test { ...@@ -41,8 +41,9 @@ class WebRtcMediaStreamAdapterTest : public ::testing::Test {
public: public:
void SetUp() override { void SetUp() override {
dependency_factory_.reset(new MockPeerConnectionDependencyFactory()); dependency_factory_.reset(new MockPeerConnectionDependencyFactory());
track_adapter_map_ = track_adapter_map_ = new WebRtcMediaStreamTrackAdapterMap(
new WebRtcMediaStreamTrackAdapterMap(dependency_factory_.get()); dependency_factory_.get(),
blink::scheduler::GetSingleThreadTaskRunnerForTesting());
} }
void TearDown() override { void TearDown() override {
......
...@@ -60,8 +60,9 @@ WebRtcMediaStreamTrackAdapterMap::AdapterRef::Copy() const { ...@@ -60,8 +60,9 @@ WebRtcMediaStreamTrackAdapterMap::AdapterRef::Copy() const {
} }
WebRtcMediaStreamTrackAdapterMap::WebRtcMediaStreamTrackAdapterMap( WebRtcMediaStreamTrackAdapterMap::WebRtcMediaStreamTrackAdapterMap(
PeerConnectionDependencyFactory* const factory) PeerConnectionDependencyFactory* const factory,
: factory_(factory), main_thread_(base::ThreadTaskRunnerHandle::Get()) { scoped_refptr<base::SingleThreadTaskRunner> main_thread)
: factory_(factory), main_thread_(std::move(main_thread)) {
DCHECK(factory_); DCHECK(factory_);
DCHECK(main_thread_); DCHECK(main_thread_);
} }
......
...@@ -71,7 +71,8 @@ class CONTENT_EXPORT WebRtcMediaStreamTrackAdapterMap ...@@ -71,7 +71,8 @@ class CONTENT_EXPORT WebRtcMediaStreamTrackAdapterMap
// Must be invoked on the main thread. // Must be invoked on the main thread.
WebRtcMediaStreamTrackAdapterMap( WebRtcMediaStreamTrackAdapterMap(
PeerConnectionDependencyFactory* const factory); PeerConnectionDependencyFactory* const factory,
scoped_refptr<base::SingleThreadTaskRunner> main_thread);
// Gets a new reference to the local track adapter, or null if no such adapter // Gets a new reference to the local track adapter, or null if no such adapter
// was found. When all references are destroyed the adapter is disposed and // was found. When all references are destroyed the adapter is disposed and
......
...@@ -27,7 +27,8 @@ class WebRtcMediaStreamTrackAdapterMapTest : public ::testing::Test { ...@@ -27,7 +27,8 @@ class WebRtcMediaStreamTrackAdapterMapTest : public ::testing::Test {
void SetUp() override { void SetUp() override {
dependency_factory_.reset(new MockPeerConnectionDependencyFactory()); dependency_factory_.reset(new MockPeerConnectionDependencyFactory());
main_thread_ = blink::scheduler::GetSingleThreadTaskRunnerForTesting(); main_thread_ = blink::scheduler::GetSingleThreadTaskRunnerForTesting();
map_ = new WebRtcMediaStreamTrackAdapterMap(dependency_factory_.get()); map_ = new WebRtcMediaStreamTrackAdapterMap(dependency_factory_.get(),
main_thread_);
} }
void TearDown() override { blink::WebHeap::CollectAllGarbageForTesting(); } void TearDown() override { blink::WebHeap::CollectAllGarbageForTesting(); }
......
...@@ -68,8 +68,9 @@ class WebRtcSetRemoteDescriptionObserverHandlerTest : public ::testing::Test { ...@@ -68,8 +68,9 @@ class WebRtcSetRemoteDescriptionObserverHandlerTest : public ::testing::Test {
main_thread_ = blink::scheduler::GetSingleThreadTaskRunnerForTesting(); main_thread_ = blink::scheduler::GetSingleThreadTaskRunnerForTesting();
scoped_refptr<WebRtcMediaStreamAdapterMap> map = scoped_refptr<WebRtcMediaStreamAdapterMap> map =
new WebRtcMediaStreamAdapterMap( new WebRtcMediaStreamAdapterMap(
dependency_factory_.get(), dependency_factory_.get(), main_thread_,
new WebRtcMediaStreamTrackAdapterMap(dependency_factory_.get())); new WebRtcMediaStreamTrackAdapterMap(dependency_factory_.get(),
main_thread_));
observer_ = new WebRtcSetRemoteDescriptionObserverForTest(); observer_ = new WebRtcSetRemoteDescriptionObserverForTest();
observer_handler_ = WebRtcSetRemoteDescriptionObserverHandler::Create( observer_handler_ = WebRtcSetRemoteDescriptionObserverHandler::Create(
main_thread_, pc_, map, observer_); main_thread_, pc_, map, observer_);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment