Commit 35338967 authored by Antonio Gomes's avatar Antonio Gomes Committed by Commit Bot

Change WebRtcMediaStreamTrackAdapterMap to operate over MediaStreamComponent

... instead of WebMediaStreamTrack.

This is part of the effort to reduce the needless use of
public Blink APIs (wrappers) within renderer/modules.

BUG=704136
R=guidou@chromium.org

Change-Id: I272f435b314a5697abc74a279110477b99d69b6b
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2245046
Commit-Queue: Antonio Gomes <tonikitoo@igalia.com>
Reviewed-by: default avatarGuido Urdaneta <guidou@chromium.org>
Cr-Commit-Position: refs/heads/master@{#779601}
parent 6968b63a
...@@ -2314,11 +2314,11 @@ void RTCPeerConnectionHandler::OnAddReceiverPlanB( ...@@ -2314,11 +2314,11 @@ void RTCPeerConnectionHandler::OnAddReceiverPlanB(
DCHECK(task_runner_->RunsTasksInCurrentSequence()); DCHECK(task_runner_->RunsTasksInCurrentSequence());
DCHECK(receiver_state.is_initialized()); DCHECK(receiver_state.is_initialized());
TRACE_EVENT0("webrtc", "RTCPeerConnectionHandler::OnAddReceiverPlanB"); TRACE_EVENT0("webrtc", "RTCPeerConnectionHandler::OnAddReceiverPlanB");
WebMediaStreamTrack web_track = receiver_state.track_ref()->web_track(); auto* track = receiver_state.track_ref()->track();
// Update metrics. // Update metrics.
track_metrics_.AddTrack(MediaStreamTrackMetrics::Direction::kReceive, track_metrics_.AddTrack(MediaStreamTrackMetrics::Direction::kReceive,
MediaStreamTrackMetricsKind(web_track), MediaStreamTrackMetricsKind(track),
web_track.Id().Utf8()); track->Id().Utf8());
for (const auto& stream_id : receiver_state.stream_ids()) { for (const auto& stream_id : receiver_state.stream_ids()) {
// New remote stream? // New remote stream?
if (!IsRemoteStream(rtp_receivers_, stream_id)) { if (!IsRemoteStream(rtp_receivers_, stream_id)) {
......
...@@ -318,7 +318,7 @@ RTCRtpReceiverImpl::DtlsTransportInformation() { ...@@ -318,7 +318,7 @@ RTCRtpReceiverImpl::DtlsTransportInformation() {
} }
MediaStreamComponent* RTCRtpReceiverImpl::Track() const { MediaStreamComponent* RTCRtpReceiverImpl::Track() const {
return internal_->state().track_ref()->web_track(); return internal_->state().track_ref()->track();
} }
Vector<String> RTCRtpReceiverImpl::StreamIds() const { Vector<String> RTCRtpReceiverImpl::StreamIds() const {
......
...@@ -500,7 +500,7 @@ webrtc::DtlsTransportInformation RTCRtpSenderImpl::DtlsTransportInformation() { ...@@ -500,7 +500,7 @@ webrtc::DtlsTransportInformation RTCRtpSenderImpl::DtlsTransportInformation() {
MediaStreamComponent* RTCRtpSenderImpl::Track() const { MediaStreamComponent* RTCRtpSenderImpl::Track() const {
const auto& track_ref = internal_->state().track_ref(); const auto& track_ref = internal_->state().track_ref();
return track_ref ? track_ref->web_track() : nullptr; return track_ref ? track_ref->track() : nullptr;
} }
Vector<String> RTCRtpSenderImpl::StreamIds() const { Vector<String> RTCRtpSenderImpl::StreamIds() const {
......
...@@ -66,10 +66,9 @@ void WebRtcMediaStreamTrackAdapterMap::AdapterRef::InitializeOnMainThread() { ...@@ -66,10 +66,9 @@ void WebRtcMediaStreamTrackAdapterMap::AdapterRef::InitializeOnMainThread() {
adapter_->InitializeOnMainThread(); adapter_->InitializeOnMainThread();
if (type_ == WebRtcMediaStreamTrackAdapterMap::AdapterRef::Type::kRemote) { if (type_ == WebRtcMediaStreamTrackAdapterMap::AdapterRef::Type::kRemote) {
base::AutoLock scoped_lock(map_->lock_); base::AutoLock scoped_lock(map_->lock_);
if (!map_->remote_track_adapters_.FindBySecondary( if (!map_->remote_track_adapters_.FindBySecondary(track()->UniqueId())) {
web_track()->UniqueId())) {
map_->remote_track_adapters_.SetSecondaryKey(webrtc_track(), map_->remote_track_adapters_.SetSecondaryKey(webrtc_track(),
web_track()->UniqueId()); track()->UniqueId());
} }
} }
} }
...@@ -89,10 +88,10 @@ WebRtcMediaStreamTrackAdapterMap::~WebRtcMediaStreamTrackAdapterMap() { ...@@ -89,10 +88,10 @@ WebRtcMediaStreamTrackAdapterMap::~WebRtcMediaStreamTrackAdapterMap() {
std::unique_ptr<WebRtcMediaStreamTrackAdapterMap::AdapterRef> std::unique_ptr<WebRtcMediaStreamTrackAdapterMap::AdapterRef>
WebRtcMediaStreamTrackAdapterMap::GetLocalTrackAdapter( WebRtcMediaStreamTrackAdapterMap::GetLocalTrackAdapter(
const blink::WebMediaStreamTrack& web_track) { MediaStreamComponent* component) {
base::AutoLock scoped_lock(lock_); base::AutoLock scoped_lock(lock_);
scoped_refptr<blink::WebRtcMediaStreamTrackAdapter>* adapter_ptr = scoped_refptr<blink::WebRtcMediaStreamTrackAdapter>* adapter_ptr =
local_track_adapters_.FindByPrimary(web_track.UniqueId()); local_track_adapters_.FindByPrimary(component->UniqueId());
if (!adapter_ptr) if (!adapter_ptr)
return nullptr; return nullptr;
return base::WrapUnique( return base::WrapUnique(
...@@ -113,12 +112,12 @@ WebRtcMediaStreamTrackAdapterMap::GetLocalTrackAdapter( ...@@ -113,12 +112,12 @@ WebRtcMediaStreamTrackAdapterMap::GetLocalTrackAdapter(
std::unique_ptr<WebRtcMediaStreamTrackAdapterMap::AdapterRef> std::unique_ptr<WebRtcMediaStreamTrackAdapterMap::AdapterRef>
WebRtcMediaStreamTrackAdapterMap::GetOrCreateLocalTrackAdapter( WebRtcMediaStreamTrackAdapterMap::GetOrCreateLocalTrackAdapter(
const blink::WebMediaStreamTrack& web_track) { MediaStreamComponent* component) {
DCHECK(!web_track.IsNull()); DCHECK(component);
DCHECK(main_thread_->BelongsToCurrentThread()); DCHECK(main_thread_->BelongsToCurrentThread());
base::AutoLock scoped_lock(lock_); base::AutoLock scoped_lock(lock_);
scoped_refptr<blink::WebRtcMediaStreamTrackAdapter>* adapter_ptr = scoped_refptr<blink::WebRtcMediaStreamTrackAdapter>* adapter_ptr =
local_track_adapters_.FindByPrimary(web_track.UniqueId()); local_track_adapters_.FindByPrimary(component->UniqueId());
if (adapter_ptr) { if (adapter_ptr) {
return base::WrapUnique( return base::WrapUnique(
new AdapterRef(this, AdapterRef::Type::kLocal, *adapter_ptr)); new AdapterRef(this, AdapterRef::Type::kLocal, *adapter_ptr));
...@@ -130,11 +129,11 @@ WebRtcMediaStreamTrackAdapterMap::GetOrCreateLocalTrackAdapter( ...@@ -130,11 +129,11 @@ WebRtcMediaStreamTrackAdapterMap::GetOrCreateLocalTrackAdapter(
// is blocked waiting for |lock_| we end up in a deadlock. // is blocked waiting for |lock_| we end up in a deadlock.
base::AutoUnlock scoped_unlock(lock_); base::AutoUnlock scoped_unlock(lock_);
new_adapter = blink::WebRtcMediaStreamTrackAdapter::CreateLocalTrackAdapter( new_adapter = blink::WebRtcMediaStreamTrackAdapter::CreateLocalTrackAdapter(
factory_, main_thread_, web_track); factory_, main_thread_, component);
} }
DCHECK(new_adapter->is_initialized()); DCHECK(new_adapter->is_initialized());
local_track_adapters_.Insert(web_track.UniqueId(), new_adapter); local_track_adapters_.Insert(component->UniqueId(), new_adapter);
local_track_adapters_.SetSecondaryKey(web_track.UniqueId(), local_track_adapters_.SetSecondaryKey(component->UniqueId(),
new_adapter->webrtc_track()); new_adapter->webrtc_track());
return base::WrapUnique( return base::WrapUnique(
new AdapterRef(this, AdapterRef::Type::kLocal, new_adapter)); new AdapterRef(this, AdapterRef::Type::kLocal, new_adapter));
...@@ -147,10 +146,10 @@ size_t WebRtcMediaStreamTrackAdapterMap::GetLocalTrackCount() const { ...@@ -147,10 +146,10 @@ size_t WebRtcMediaStreamTrackAdapterMap::GetLocalTrackCount() const {
std::unique_ptr<WebRtcMediaStreamTrackAdapterMap::AdapterRef> std::unique_ptr<WebRtcMediaStreamTrackAdapterMap::AdapterRef>
WebRtcMediaStreamTrackAdapterMap::GetRemoteTrackAdapter( WebRtcMediaStreamTrackAdapterMap::GetRemoteTrackAdapter(
const blink::WebMediaStreamTrack& web_track) { MediaStreamComponent* component) {
base::AutoLock scoped_lock(lock_); base::AutoLock scoped_lock(lock_);
scoped_refptr<blink::WebRtcMediaStreamTrackAdapter>* adapter_ptr = scoped_refptr<blink::WebRtcMediaStreamTrackAdapter>* adapter_ptr =
remote_track_adapters_.FindBySecondary(web_track.UniqueId()); remote_track_adapters_.FindBySecondary(component->UniqueId());
if (!adapter_ptr) if (!adapter_ptr)
return nullptr; return nullptr;
DCHECK((*adapter_ptr)->is_initialized()); DCHECK((*adapter_ptr)->is_initialized());
......
...@@ -5,9 +5,9 @@ ...@@ -5,9 +5,9 @@
#ifndef THIRD_PARTY_BLINK_RENDERER_MODULES_PEERCONNECTION_WEBRTC_MEDIA_STREAM_TRACK_ADAPTER_MAP_H_ #ifndef THIRD_PARTY_BLINK_RENDERER_MODULES_PEERCONNECTION_WEBRTC_MEDIA_STREAM_TRACK_ADAPTER_MAP_H_
#define THIRD_PARTY_BLINK_RENDERER_MODULES_PEERCONNECTION_WEBRTC_MEDIA_STREAM_TRACK_ADAPTER_MAP_H_ #define THIRD_PARTY_BLINK_RENDERER_MODULES_PEERCONNECTION_WEBRTC_MEDIA_STREAM_TRACK_ADAPTER_MAP_H_
#include "third_party/blink/public/platform/web_media_stream_track.h"
#include "third_party/blink/renderer/modules/modules_export.h" #include "third_party/blink/renderer/modules/modules_export.h"
#include "third_party/blink/renderer/modules/peerconnection/webrtc_media_stream_track_adapter.h" #include "third_party/blink/renderer/modules/peerconnection/webrtc_media_stream_track_adapter.h"
#include "third_party/blink/renderer/platform/mediastream/media_stream_component.h"
#include "third_party/blink/renderer/platform/peerconnection/two_keys_adapter_map.h" #include "third_party/blink/renderer/platform/peerconnection/two_keys_adapter_map.h"
#include "third_party/blink/renderer/platform/wtf/thread_safe_ref_counted.h" #include "third_party/blink/renderer/platform/wtf/thread_safe_ref_counted.h"
#include "third_party/webrtc/api/media_stream_interface.h" #include "third_party/webrtc/api/media_stream_interface.h"
...@@ -38,7 +38,7 @@ class MODULES_EXPORT WebRtcMediaStreamTrackAdapterMap ...@@ -38,7 +38,7 @@ class MODULES_EXPORT WebRtcMediaStreamTrackAdapterMap
std::unique_ptr<AdapterRef> Copy() const; std::unique_ptr<AdapterRef> Copy() const;
bool is_initialized() const { return adapter_->is_initialized(); } bool is_initialized() const { return adapter_->is_initialized(); }
void InitializeOnMainThread(); void InitializeOnMainThread();
MediaStreamComponent* web_track() const { return adapter_->track(); } MediaStreamComponent* track() const { return adapter_->track(); }
webrtc::MediaStreamTrackInterface* webrtc_track() const { webrtc::MediaStreamTrackInterface* webrtc_track() const {
return adapter_->webrtc_track(); return adapter_->webrtc_track();
} }
...@@ -79,7 +79,7 @@ class MODULES_EXPORT WebRtcMediaStreamTrackAdapterMap ...@@ -79,7 +79,7 @@ class MODULES_EXPORT WebRtcMediaStreamTrackAdapterMap
// The adapter is a associated with a blink and webrtc track, lookup works by // The adapter is a associated with a blink and webrtc track, lookup works by
// either track. // either track.
std::unique_ptr<AdapterRef> GetLocalTrackAdapter( std::unique_ptr<AdapterRef> GetLocalTrackAdapter(
const blink::WebMediaStreamTrack& web_track); MediaStreamComponent* component);
std::unique_ptr<AdapterRef> GetLocalTrackAdapter( std::unique_ptr<AdapterRef> GetLocalTrackAdapter(
webrtc::MediaStreamTrackInterface* webrtc_track); webrtc::MediaStreamTrackInterface* webrtc_track);
// Invoke on the main thread. Gets a new reference to the local track adapter // Invoke on the main thread. Gets a new reference to the local track adapter
...@@ -87,7 +87,7 @@ class MODULES_EXPORT WebRtcMediaStreamTrackAdapterMap ...@@ -87,7 +87,7 @@ class MODULES_EXPORT WebRtcMediaStreamTrackAdapterMap
// initialized. When all references are destroyed the adapter is disposed and // initialized. When all references are destroyed the adapter is disposed and
// removed from the map. References must be destroyed on the main thread. // removed from the map. References must be destroyed on the main thread.
std::unique_ptr<AdapterRef> GetOrCreateLocalTrackAdapter( std::unique_ptr<AdapterRef> GetOrCreateLocalTrackAdapter(
const blink::WebMediaStreamTrack& web_track); MediaStreamComponent* component);
size_t GetLocalTrackCount() const; size_t GetLocalTrackCount() const;
// Gets a new reference to the remote track adapter. When all references are // Gets a new reference to the remote track adapter. When all references are
...@@ -98,7 +98,7 @@ class MODULES_EXPORT WebRtcMediaStreamTrackAdapterMap ...@@ -98,7 +98,7 @@ class MODULES_EXPORT WebRtcMediaStreamTrackAdapterMap
// First variety: If an adapter exists it will already be initialized, if one // First variety: If an adapter exists it will already be initialized, if one
// does not exist null is returned. // does not exist null is returned.
std::unique_ptr<AdapterRef> GetRemoteTrackAdapter( std::unique_ptr<AdapterRef> GetRemoteTrackAdapter(
const blink::WebMediaStreamTrack& web_track); MediaStreamComponent* component);
// Second variety: If an adapter exists it may or may not be initialized, see // Second variety: If an adapter exists it may or may not be initialized, see
// |AdapterRef::is_initialized|. If an adapter does not exist null is // |AdapterRef::is_initialized|. If an adapter does not exist null is
// returned. // returned.
...@@ -116,20 +116,20 @@ class MODULES_EXPORT WebRtcMediaStreamTrackAdapterMap ...@@ -116,20 +116,20 @@ class MODULES_EXPORT WebRtcMediaStreamTrackAdapterMap
private: private:
friend class WTF::ThreadSafeRefCounted<WebRtcMediaStreamTrackAdapterMap>; friend class WTF::ThreadSafeRefCounted<WebRtcMediaStreamTrackAdapterMap>;
// "(blink::WebMediaStreamTrack, webrtc::MediaStreamTrackInterface) -> // "(MediaStreamComponent, webrtc::MediaStreamTrackInterface) ->
// WebRtcMediaStreamTrackAdapter" maps. The primary key is based on the object // WebRtcMediaStreamTrackAdapter" maps. The primary key is based on the object
// used to create the adapter. Local tracks are created from // used to create the adapter. Local tracks are created from
// |blink::WebMediaStreamTrack|s, remote tracks are created from // |MediaStreamComponent|s, remote tracks are created from
// |webrtc::MediaStreamTrackInterface|s. // |webrtc::MediaStreamTrackInterface|s.
// The adapter keeps the |webrtc::MediaStreamTrackInterface| alive with ref // The adapter keeps the |webrtc::MediaStreamTrackInterface| alive with ref
// counting making it safe to use a raw pointer for key. // counting making it safe to use a raw pointer for key.
using LocalTrackAdapterMap = blink::TwoKeysAdapterMap< using LocalTrackAdapterMap = blink::TwoKeysAdapterMap<
int, // blink::WebMediaStreamTrack::UniqueId() int, // MediaStreamComponent::UniqueId()
webrtc::MediaStreamTrackInterface*, webrtc::MediaStreamTrackInterface*,
scoped_refptr<blink::WebRtcMediaStreamTrackAdapter>>; scoped_refptr<blink::WebRtcMediaStreamTrackAdapter>>;
using RemoteTrackAdapterMap = blink::TwoKeysAdapterMap< using RemoteTrackAdapterMap = blink::TwoKeysAdapterMap<
webrtc::MediaStreamTrackInterface*, webrtc::MediaStreamTrackInterface*,
int, // blink::WebMediaStreamTrack::UniqueId() int, // MediaStreamComponent::UniqueId()
scoped_refptr<blink::WebRtcMediaStreamTrackAdapter>>; scoped_refptr<blink::WebRtcMediaStreamTrackAdapter>>;
// Invoke on the main thread. // Invoke on the main thread.
......
...@@ -15,12 +15,10 @@ ...@@ -15,12 +15,10 @@
#include "base/test/test_timeouts.h" #include "base/test/test_timeouts.h"
#include "testing/gtest/include/gtest/gtest.h" #include "testing/gtest/include/gtest/gtest.h"
#include "third_party/blink/public/platform/scheduler/test/renderer_scheduler_test_support.h" #include "third_party/blink/public/platform/scheduler/test/renderer_scheduler_test_support.h"
#include "third_party/blink/public/platform/web_media_stream_source.h"
#include "third_party/blink/public/platform/web_media_stream_track.h"
#include "third_party/blink/public/platform/web_string.h"
#include "third_party/blink/public/web/web_heap.h" #include "third_party/blink/public/web/web_heap.h"
#include "third_party/blink/renderer/modules/peerconnection/mock_peer_connection_dependency_factory.h" #include "third_party/blink/renderer/modules/peerconnection/mock_peer_connection_dependency_factory.h"
#include "third_party/blink/renderer/platform/mediastream/media_stream_audio_source.h" #include "third_party/blink/renderer/platform/mediastream/media_stream_audio_source.h"
#include "third_party/blink/renderer/platform/mediastream/media_stream_component.h"
#include "third_party/blink/renderer/platform/testing/io_task_runner_testing_platform_support.h" #include "third_party/blink/renderer/platform/testing/io_task_runner_testing_platform_support.h"
namespace blink { namespace blink {
...@@ -40,21 +38,20 @@ class WebRtcMediaStreamTrackAdapterMapTest : public ::testing::Test { ...@@ -40,21 +38,20 @@ class WebRtcMediaStreamTrackAdapterMapTest : public ::testing::Test {
return dependency_factory_->GetWebRtcSignalingTaskRunner(); return dependency_factory_->GetWebRtcSignalingTaskRunner();
} }
blink::WebMediaStreamTrack CreateLocalTrack(const std::string& id) { MediaStreamComponent* CreateLocalTrack(const std::string& id) {
blink::WebMediaStreamSource web_source; auto* source = MakeGarbageCollected<MediaStreamSource>(
web_source.Initialize( String::FromUTF8(id), MediaStreamSource::kTypeAudio,
blink::WebString::FromUTF8(id), blink::WebMediaStreamSource::kTypeAudio, String::FromUTF8("local_audio_track"), false);
blink::WebString::FromUTF8("local_audio_track"), false); MediaStreamAudioSource* audio_source = new MediaStreamAudioSource(
blink::MediaStreamAudioSource* audio_source = scheduler::GetSingleThreadTaskRunnerForTesting(), true);
new blink::MediaStreamAudioSource(
blink::scheduler::GetSingleThreadTaskRunnerForTesting(), true);
// Takes ownership of |audio_source|. // Takes ownership of |audio_source|.
web_source.SetPlatformSource(base::WrapUnique(audio_source)); audio_source->SetOwner(source);
source->SetPlatformSource(base::WrapUnique(audio_source));
blink::WebMediaStreamTrack web_track; auto* component =
web_track.Initialize(web_source.Id(), web_source); MakeGarbageCollected<MediaStreamComponent>(source->Id(), source);
audio_source->ConnectToTrack(web_track); audio_source->ConnectToTrack(component);
return web_track; return component;
} }
std::unique_ptr<blink::WebRtcMediaStreamTrackAdapterMap::AdapterRef> std::unique_ptr<blink::WebRtcMediaStreamTrackAdapterMap::AdapterRef>
...@@ -120,17 +117,17 @@ class WebRtcMediaStreamTrackAdapterMapTest : public ::testing::Test { ...@@ -120,17 +117,17 @@ class WebRtcMediaStreamTrackAdapterMapTest : public ::testing::Test {
}; };
TEST_F(WebRtcMediaStreamTrackAdapterMapTest, AddAndRemoveLocalTrackAdapter) { TEST_F(WebRtcMediaStreamTrackAdapterMapTest, AddAndRemoveLocalTrackAdapter) {
blink::WebMediaStreamTrack web_track = CreateLocalTrack("local_track"); MediaStreamComponent* track = CreateLocalTrack("local_track");
std::unique_ptr<blink::WebRtcMediaStreamTrackAdapterMap::AdapterRef> std::unique_ptr<blink::WebRtcMediaStreamTrackAdapterMap::AdapterRef>
adapter_ref = map_->GetOrCreateLocalTrackAdapter(web_track); adapter_ref = map_->GetOrCreateLocalTrackAdapter(track);
EXPECT_TRUE(adapter_ref->is_initialized()); EXPECT_TRUE(adapter_ref->is_initialized());
EXPECT_EQ(adapter_ref->GetAdapterForTesting(), EXPECT_EQ(adapter_ref->GetAdapterForTesting(),
map_->GetLocalTrackAdapter(web_track)->GetAdapterForTesting()); map_->GetLocalTrackAdapter(track)->GetAdapterForTesting());
EXPECT_EQ(1u, map_->GetLocalTrackCount()); EXPECT_EQ(1u, map_->GetLocalTrackCount());
// "GetOrCreate" for already existing track. // "GetOrCreate" for already existing track.
std::unique_ptr<blink::WebRtcMediaStreamTrackAdapterMap::AdapterRef> std::unique_ptr<blink::WebRtcMediaStreamTrackAdapterMap::AdapterRef>
adapter_ref2 = map_->GetOrCreateLocalTrackAdapter(web_track); adapter_ref2 = map_->GetOrCreateLocalTrackAdapter(track);
EXPECT_EQ(adapter_ref->GetAdapterForTesting(), EXPECT_EQ(adapter_ref->GetAdapterForTesting(),
adapter_ref2->GetAdapterForTesting()); adapter_ref2->GetAdapterForTesting());
EXPECT_EQ(1u, map_->GetLocalTrackCount()); EXPECT_EQ(1u, map_->GetLocalTrackCount());
...@@ -143,7 +140,7 @@ TEST_F(WebRtcMediaStreamTrackAdapterMapTest, AddAndRemoveLocalTrackAdapter) { ...@@ -143,7 +140,7 @@ TEST_F(WebRtcMediaStreamTrackAdapterMapTest, AddAndRemoveLocalTrackAdapter) {
// dispose it. // dispose it.
adapter_ref.reset(); adapter_ref.reset();
EXPECT_EQ(0u, map_->GetLocalTrackCount()); EXPECT_EQ(0u, map_->GetLocalTrackCount());
EXPECT_EQ(nullptr, map_->GetLocalTrackAdapter(web_track)); EXPECT_EQ(nullptr, map_->GetLocalTrackAdapter(track));
// Allow the disposing of track to occur. // Allow the disposing of track to occur.
RunMessageLoopsUntilIdle(); RunMessageLoopsUntilIdle();
} }
...@@ -207,13 +204,12 @@ TEST_F(WebRtcMediaStreamTrackAdapterMapTest, ...@@ -207,13 +204,12 @@ TEST_F(WebRtcMediaStreamTrackAdapterMapTest,
// Local and remote tracks should be able to use the same id without conflict. // Local and remote tracks should be able to use the same id without conflict.
const char* id = "id"; const char* id = "id";
blink::WebMediaStreamTrack local_web_track = CreateLocalTrack(id); MediaStreamComponent* local_track = CreateLocalTrack(id);
std::unique_ptr<blink::WebRtcMediaStreamTrackAdapterMap::AdapterRef> std::unique_ptr<blink::WebRtcMediaStreamTrackAdapterMap::AdapterRef>
local_adapter = map_->GetOrCreateLocalTrackAdapter(local_web_track); local_adapter = map_->GetOrCreateLocalTrackAdapter(local_track);
EXPECT_TRUE(local_adapter->is_initialized()); EXPECT_TRUE(local_adapter->is_initialized());
EXPECT_EQ( EXPECT_EQ(local_adapter->GetAdapterForTesting(),
local_adapter->GetAdapterForTesting(), map_->GetLocalTrackAdapter(local_track)->GetAdapterForTesting());
map_->GetLocalTrackAdapter(local_web_track)->GetAdapterForTesting());
EXPECT_EQ(1u, map_->GetLocalTrackCount()); EXPECT_EQ(1u, map_->GetLocalTrackCount());
scoped_refptr<blink::MockWebRtcAudioTrack> remote_webrtc_track = scoped_refptr<blink::MockWebRtcAudioTrack> remote_webrtc_track =
...@@ -233,15 +229,15 @@ TEST_F(WebRtcMediaStreamTrackAdapterMapTest, ...@@ -233,15 +229,15 @@ TEST_F(WebRtcMediaStreamTrackAdapterMapTest,
remote_adapter.reset(); remote_adapter.reset();
EXPECT_EQ(0u, map_->GetLocalTrackCount()); EXPECT_EQ(0u, map_->GetLocalTrackCount());
EXPECT_EQ(0u, map_->GetRemoteTrackCount()); EXPECT_EQ(0u, map_->GetRemoteTrackCount());
EXPECT_EQ(nullptr, map_->GetLocalTrackAdapter(local_web_track)); EXPECT_EQ(nullptr, map_->GetLocalTrackAdapter(local_track));
EXPECT_EQ(nullptr, map_->GetRemoteTrackAdapter(remote_webrtc_track.get())); EXPECT_EQ(nullptr, map_->GetRemoteTrackAdapter(remote_webrtc_track.get()));
// Allow the disposing of tracks to occur. // Allow the disposing of tracks to occur.
RunMessageLoopsUntilIdle(); RunMessageLoopsUntilIdle();
} }
TEST_F(WebRtcMediaStreamTrackAdapterMapTest, GetMissingLocalTrackAdapter) { TEST_F(WebRtcMediaStreamTrackAdapterMapTest, GetMissingLocalTrackAdapter) {
blink::WebMediaStreamTrack local_web_track = CreateLocalTrack("missing"); MediaStreamComponent* local_track = CreateLocalTrack("missing");
EXPECT_EQ(nullptr, map_->GetLocalTrackAdapter(local_web_track)); EXPECT_EQ(nullptr, map_->GetLocalTrackAdapter(local_track));
} }
TEST_F(WebRtcMediaStreamTrackAdapterMapTest, GetMissingRemoteTrackAdapter) { TEST_F(WebRtcMediaStreamTrackAdapterMapTest, GetMissingRemoteTrackAdapter) {
......
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