Commit 65f0159b authored by Hajime Hoshi's avatar Hajime Hoshi Committed by Commit Bot

Refactoring: Replace ThreadTaskRunnerHandle::Get() usages

This CL is pure refactoring. We aim to reduce

ThreadTaskRunnerHandle: :Get() usages as much as possible.
Change-Id: I13cb655c77f5b6c78d977e680fa92aa4278f38f5
Reviewed-on: https://chromium-review.googlesource.com/1249477Reviewed-by: default avatarKentaro Hara <haraken@chromium.org>
Reviewed-by: default avatarMax Morin <maxmorin@chromium.org>
Reviewed-by: default avatarAlexander Timin <altimin@chromium.org>
Commit-Queue: Hajime Hoshi <hajimehoshi@chromium.org>
Cr-Commit-Position: refs/heads/master@{#595039}
parent 17cfcec5
...@@ -433,8 +433,9 @@ static std::unique_ptr<base::DictionaryValue> GetDictValue( ...@@ -433,8 +433,9 @@ static std::unique_ptr<base::DictionaryValue> GetDictValue(
class InternalStatsObserver : public webrtc::StatsObserver { class InternalStatsObserver : public webrtc::StatsObserver {
public: public:
explicit InternalStatsObserver(int lid) InternalStatsObserver(int lid,
: lid_(lid), main_thread_(base::ThreadTaskRunnerHandle::Get()) {} scoped_refptr<base::SingleThreadTaskRunner> main_thread)
: lid_(lid), main_thread_(std::move(main_thread)) {}
void OnComplete(const StatsReports& reports) override { void OnComplete(const StatsReports& reports) override {
std::unique_ptr<base::ListValue> list(new base::ListValue()); std::unique_ptr<base::ListValue> list(new base::ListValue());
...@@ -473,14 +474,19 @@ class InternalStatsObserver : public webrtc::StatsObserver { ...@@ -473,14 +474,19 @@ class InternalStatsObserver : public webrtc::StatsObserver {
const scoped_refptr<base::SingleThreadTaskRunner> main_thread_; const scoped_refptr<base::SingleThreadTaskRunner> main_thread_;
}; };
PeerConnectionTracker::PeerConnectionTracker() PeerConnectionTracker::PeerConnectionTracker(
: next_local_id_(1), send_target_for_test_(nullptr) {} scoped_refptr<base::SingleThreadTaskRunner> main_thread_task_runner)
: next_local_id_(1),
send_target_for_test_(nullptr),
main_thread_task_runner_(std::move(main_thread_task_runner)) {}
PeerConnectionTracker::PeerConnectionTracker( PeerConnectionTracker::PeerConnectionTracker(
mojom::PeerConnectionTrackerHostAssociatedPtr host) mojom::PeerConnectionTrackerHostAssociatedPtr host,
scoped_refptr<base::SingleThreadTaskRunner> main_thread_task_runner)
: next_local_id_(1), : next_local_id_(1),
send_target_for_test_(nullptr), send_target_for_test_(nullptr),
peer_connection_tracker_host_ptr_(std::move(host)) {} peer_connection_tracker_host_ptr_(std::move(host)),
main_thread_task_runner_(std::move(main_thread_task_runner)) {}
PeerConnectionTracker::~PeerConnectionTracker() { PeerConnectionTracker::~PeerConnectionTracker() {
} }
...@@ -508,7 +514,8 @@ void PeerConnectionTracker::OnGetAllStats() { ...@@ -508,7 +514,8 @@ void PeerConnectionTracker::OnGetAllStats() {
for (PeerConnectionIdMap::iterator it = peer_connection_id_map_.begin(); for (PeerConnectionIdMap::iterator it = peer_connection_id_map_.begin();
it != peer_connection_id_map_.end(); ++it) { it != peer_connection_id_map_.end(); ++it) {
rtc::scoped_refptr<InternalStatsObserver> observer( rtc::scoped_refptr<InternalStatsObserver> observer(
new rtc::RefCountedObject<InternalStatsObserver>(it->second)); new rtc::RefCountedObject<InternalStatsObserver>(
it->second, main_thread_task_runner_));
it->first->GetStats(observer, it->first->GetStats(observer,
webrtc::PeerConnectionInterface::kStatsOutputLevelDebug, webrtc::PeerConnectionInterface::kStatsOutputLevelDebug,
......
...@@ -45,8 +45,11 @@ class CONTENT_EXPORT PeerConnectionTracker ...@@ -45,8 +45,11 @@ class CONTENT_EXPORT PeerConnectionTracker
: public RenderThreadObserver, : public RenderThreadObserver,
public base::SupportsWeakPtr<PeerConnectionTracker> { public base::SupportsWeakPtr<PeerConnectionTracker> {
public: public:
PeerConnectionTracker(); explicit PeerConnectionTracker(
PeerConnectionTracker(mojom::PeerConnectionTrackerHostAssociatedPtr host); scoped_refptr<base::SingleThreadTaskRunner> main_thread_task_runner);
PeerConnectionTracker(
mojom::PeerConnectionTrackerHostAssociatedPtr host,
scoped_refptr<base::SingleThreadTaskRunner> main_thread_task_runner);
~PeerConnectionTracker() override; ~PeerConnectionTracker() override;
enum Source { enum Source {
...@@ -262,6 +265,8 @@ class CONTENT_EXPORT PeerConnectionTracker ...@@ -262,6 +265,8 @@ class CONTENT_EXPORT PeerConnectionTracker
mojom::PeerConnectionTrackerHostAssociatedPtr mojom::PeerConnectionTrackerHostAssociatedPtr
peer_connection_tracker_host_ptr_; peer_connection_tracker_host_ptr_;
scoped_refptr<base::SingleThreadTaskRunner> main_thread_task_runner_;
DISALLOW_COPY_AND_ASSIGN(PeerConnectionTracker); DISALLOW_COPY_AND_ASSIGN(PeerConnectionTracker);
}; };
......
...@@ -151,8 +151,9 @@ class PeerConnectionTrackerTest : public ::testing::Test { ...@@ -151,8 +151,9 @@ class PeerConnectionTrackerTest : public ::testing::Test {
public: public:
void CreateTrackerWithMocks() { void CreateTrackerWithMocks() {
mock_host_.reset(new MockPeerConnectionTrackerHost()); mock_host_.reset(new MockPeerConnectionTrackerHost());
tracker_.reset( tracker_.reset(new PeerConnectionTracker(
new PeerConnectionTracker(mock_host_->CreateInterfacePtrAndBind())); mock_host_->CreateInterfacePtrAndBind(),
blink::scheduler::GetSingleThreadTaskRunnerForTesting()));
target_thread_.reset(new MockSendTargetThread()); target_thread_.reset(new MockSendTargetThread());
tracker_->OverrideSendTargetForTesting(target_thread_.get()); tracker_->OverrideSendTargetForTesting(target_thread_.get());
} }
...@@ -177,7 +178,8 @@ class PeerConnectionTrackerTest : public ::testing::Test { ...@@ -177,7 +178,8 @@ class PeerConnectionTrackerTest : public ::testing::Test {
} // namespace } // namespace
TEST_F(PeerConnectionTrackerTest, CreatingObject) { TEST_F(PeerConnectionTrackerTest, CreatingObject) {
PeerConnectionTracker tracker; PeerConnectionTracker tracker(
blink::scheduler::GetSingleThreadTaskRunnerForTesting());
} }
TEST_F(PeerConnectionTrackerTest, TrackCreateOffer) { TEST_F(PeerConnectionTrackerTest, TrackCreateOffer) {
......
...@@ -22,8 +22,9 @@ class RtcDtmfSenderHandler::Observer : ...@@ -22,8 +22,9 @@ class RtcDtmfSenderHandler::Observer :
public base::RefCountedThreadSafe<Observer>, public base::RefCountedThreadSafe<Observer>,
public webrtc::DtmfSenderObserverInterface { public webrtc::DtmfSenderObserverInterface {
public: public:
explicit Observer(const base::WeakPtr<RtcDtmfSenderHandler>& handler) explicit Observer(scoped_refptr<base::SingleThreadTaskRunner> main_thread,
: main_thread_(base::ThreadTaskRunnerHandle::Get()), handler_(handler) {} const base::WeakPtr<RtcDtmfSenderHandler>& handler)
: main_thread_(std::move(main_thread)), handler_(handler) {}
private: private:
friend class base::RefCountedThreadSafe<Observer>; friend class base::RefCountedThreadSafe<Observer>;
...@@ -51,10 +52,12 @@ class RtcDtmfSenderHandler::Observer : ...@@ -51,10 +52,12 @@ class RtcDtmfSenderHandler::Observer :
base::WeakPtr<RtcDtmfSenderHandler> handler_; base::WeakPtr<RtcDtmfSenderHandler> handler_;
}; };
RtcDtmfSenderHandler::RtcDtmfSenderHandler(DtmfSenderInterface* dtmf_sender) RtcDtmfSenderHandler::RtcDtmfSenderHandler(
scoped_refptr<base::SingleThreadTaskRunner> main_thread,
DtmfSenderInterface* dtmf_sender)
: dtmf_sender_(dtmf_sender), webkit_client_(nullptr), weak_factory_(this) { : dtmf_sender_(dtmf_sender), webkit_client_(nullptr), weak_factory_(this) {
DVLOG(1) << "::ctor"; DVLOG(1) << "::ctor";
observer_ = new Observer(weak_factory_.GetWeakPtr()); observer_ = new Observer(std::move(main_thread), weak_factory_.GetWeakPtr());
dtmf_sender_->RegisterObserver(observer_.get()); dtmf_sender_->RegisterObserver(observer_.get());
} }
......
...@@ -16,6 +16,10 @@ ...@@ -16,6 +16,10 @@
#include "third_party/blink/public/platform/web_rtc_dtmf_sender_handler_client.h" #include "third_party/blink/public/platform/web_rtc_dtmf_sender_handler_client.h"
#include "third_party/webrtc/api/dtmfsenderinterface.h" #include "third_party/webrtc/api/dtmfsenderinterface.h"
namespace base {
class SingleThreadTaskRunner;
}
namespace content { namespace content {
// RtcDtmfSenderHandler is a delegate for the RTC DTMF Sender API messages // RtcDtmfSenderHandler is a delegate for the RTC DTMF Sender API messages
...@@ -27,7 +31,8 @@ namespace content { ...@@ -27,7 +31,8 @@ namespace content {
class CONTENT_EXPORT RtcDtmfSenderHandler class CONTENT_EXPORT RtcDtmfSenderHandler
: public blink::WebRTCDTMFSenderHandler { : public blink::WebRTCDTMFSenderHandler {
public: public:
explicit RtcDtmfSenderHandler(webrtc::DtmfSenderInterface* dtmf_sender); RtcDtmfSenderHandler(scoped_refptr<base::SingleThreadTaskRunner> main_thread,
webrtc::DtmfSenderInterface* dtmf_sender);
~RtcDtmfSenderHandler() override; ~RtcDtmfSenderHandler() override;
// blink::WebRTCDTMFSenderHandler implementation. // blink::WebRTCDTMFSenderHandler implementation.
......
...@@ -148,6 +148,10 @@ class MockRTCStatsRequest : public LocalRTCStatsRequest { ...@@ -148,6 +148,10 @@ class MockRTCStatsRequest : public LocalRTCStatsRequest {
class MockPeerConnectionTracker : public PeerConnectionTracker { class MockPeerConnectionTracker : public PeerConnectionTracker {
public: public:
MockPeerConnectionTracker()
: PeerConnectionTracker(
blink::scheduler::GetSingleThreadTaskRunnerForTesting()) {}
MOCK_METHOD1(UnregisterPeerConnection, MOCK_METHOD1(UnregisterPeerConnection,
void(RTCPeerConnectionHandler* pc_handler)); void(RTCPeerConnectionHandler* pc_handler));
// TODO(jiayl): add coverage for the following methods // TODO(jiayl): add coverage for the following methods
......
...@@ -185,7 +185,8 @@ class RTCRtpSender::RTCRtpSenderInternal ...@@ -185,7 +185,8 @@ class RTCRtpSender::RTCRtpSenderInternal
// webrtc signalling thread. // webrtc signalling thread.
DCHECK(main_task_runner_->BelongsToCurrentThread()); DCHECK(main_task_runner_->BelongsToCurrentThread());
auto dtmf_sender = webrtc_sender_->GetDtmfSender(); auto dtmf_sender = webrtc_sender_->GetDtmfSender();
return std::make_unique<RtcDtmfSenderHandler>(dtmf_sender); return std::make_unique<RtcDtmfSenderHandler>(main_task_runner_,
dtmf_sender);
} }
std::unique_ptr<webrtc::RtpParameters> GetParameters() { std::unique_ptr<webrtc::RtpParameters> GetParameters() {
......
...@@ -18,9 +18,13 @@ namespace content { ...@@ -18,9 +18,13 @@ namespace content {
WebRtcAudioSink::WebRtcAudioSink( WebRtcAudioSink::WebRtcAudioSink(
const std::string& label, const std::string& label,
scoped_refptr<webrtc::AudioSourceInterface> track_source, scoped_refptr<webrtc::AudioSourceInterface> track_source,
scoped_refptr<base::SingleThreadTaskRunner> signaling_task_runner) scoped_refptr<base::SingleThreadTaskRunner> signaling_task_runner,
: adapter_(new rtc::RefCountedObject<Adapter>( scoped_refptr<base::SingleThreadTaskRunner> main_task_runner)
label, std::move(track_source), std::move(signaling_task_runner))), : adapter_(
new rtc::RefCountedObject<Adapter>(label,
std::move(track_source),
std::move(signaling_task_runner),
std::move(main_task_runner))),
fifo_(base::Bind(&WebRtcAudioSink::DeliverRebufferedAudio, fifo_(base::Bind(&WebRtcAudioSink::DeliverRebufferedAudio,
base::Unretained(this))) { base::Unretained(this))) {
DVLOG(1) << "WebRtcAudioSink::WebRtcAudioSink()"; DVLOG(1) << "WebRtcAudioSink::WebRtcAudioSink()";
...@@ -100,12 +104,14 @@ void DereferenceOnMainThread( ...@@ -100,12 +104,14 @@ void DereferenceOnMainThread(
WebRtcAudioSink::Adapter::Adapter( WebRtcAudioSink::Adapter::Adapter(
const std::string& label, const std::string& label,
scoped_refptr<webrtc::AudioSourceInterface> source, scoped_refptr<webrtc::AudioSourceInterface> source,
scoped_refptr<base::SingleThreadTaskRunner> signaling_task_runner) scoped_refptr<base::SingleThreadTaskRunner> signaling_task_runner,
scoped_refptr<base::SingleThreadTaskRunner> main_task_runner)
: webrtc::MediaStreamTrack<webrtc::AudioTrackInterface>(label), : webrtc::MediaStreamTrack<webrtc::AudioTrackInterface>(label),
source_(std::move(source)), source_(std::move(source)),
signaling_task_runner_(std::move(signaling_task_runner)), signaling_task_runner_(std::move(signaling_task_runner)),
main_task_runner_(base::ThreadTaskRunnerHandle::Get()) { main_task_runner_(std::move(main_task_runner)) {
DCHECK(signaling_task_runner_); DCHECK(signaling_task_runner_);
DCHECK(main_task_runner_);
} }
WebRtcAudioSink::Adapter::~Adapter() { WebRtcAudioSink::Adapter::~Adapter() {
......
...@@ -40,7 +40,8 @@ class CONTENT_EXPORT WebRtcAudioSink : public MediaStreamAudioSink { ...@@ -40,7 +40,8 @@ class CONTENT_EXPORT WebRtcAudioSink : public MediaStreamAudioSink {
WebRtcAudioSink( WebRtcAudioSink(
const std::string& label, const std::string& label,
scoped_refptr<webrtc::AudioSourceInterface> track_source, scoped_refptr<webrtc::AudioSourceInterface> track_source,
scoped_refptr<base::SingleThreadTaskRunner> signaling_task_runner); scoped_refptr<base::SingleThreadTaskRunner> signaling_task_runner,
scoped_refptr<base::SingleThreadTaskRunner> main_task_runner);
~WebRtcAudioSink() override; ~WebRtcAudioSink() override;
...@@ -72,7 +73,8 @@ class CONTENT_EXPORT WebRtcAudioSink : public MediaStreamAudioSink { ...@@ -72,7 +73,8 @@ class CONTENT_EXPORT WebRtcAudioSink : public MediaStreamAudioSink {
public: public:
Adapter(const std::string& label, Adapter(const std::string& label,
scoped_refptr<webrtc::AudioSourceInterface> source, scoped_refptr<webrtc::AudioSourceInterface> source,
scoped_refptr<base::SingleThreadTaskRunner> signaling_task_runner); scoped_refptr<base::SingleThreadTaskRunner> signaling_task_runner,
scoped_refptr<base::SingleThreadTaskRunner> main_task_runner);
base::SingleThreadTaskRunner* signaling_task_runner() const { base::SingleThreadTaskRunner* signaling_task_runner() const {
return signaling_task_runner_.get(); return signaling_task_runner_.get();
......
...@@ -149,7 +149,7 @@ void WebRtcMediaStreamTrackAdapter::InitializeLocalAudioTrack( ...@@ -149,7 +149,7 @@ void WebRtcMediaStreamTrackAdapter::InitializeLocalAudioTrack(
webrtc::AudioSourceInterface* source_interface = nullptr; webrtc::AudioSourceInterface* source_interface = nullptr;
local_track_audio_sink_.reset( local_track_audio_sink_.reset(
new WebRtcAudioSink(web_track_.Id().Utf8(), source_interface, new WebRtcAudioSink(web_track_.Id().Utf8(), source_interface,
factory_->GetWebRtcSignalingThread())); factory_->GetWebRtcSignalingThread(), main_thread_));
if (auto* media_stream_source = ProcessedLocalAudioSource::From( if (auto* media_stream_source = ProcessedLocalAudioSource::From(
MediaStreamAudioSource::From(web_track_.Source()))) { MediaStreamAudioSource::From(web_track_.Source()))) {
......
...@@ -775,7 +775,8 @@ void RenderThreadImpl::Init() { ...@@ -775,7 +775,8 @@ void RenderThreadImpl::Init() {
browser_plugin_manager_.reset(new BrowserPluginManager()); browser_plugin_manager_.reset(new BrowserPluginManager());
AddObserver(browser_plugin_manager_.get()); AddObserver(browser_plugin_manager_.get());
peer_connection_tracker_.reset(new PeerConnectionTracker()); peer_connection_tracker_.reset(
new PeerConnectionTracker(main_thread_runner()));
AddObserver(peer_connection_tracker_.get()); AddObserver(peer_connection_tracker_.get());
p2p_socket_dispatcher_ = new P2PSocketDispatcher(); p2p_socket_dispatcher_ = new P2PSocketDispatcher();
......
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