Commit 86722b36 authored by Antonio Gomes's avatar Antonio Gomes Committed by Commit Bot

Onion soup WebRtcMediaStreamTrackAdapter

This CL corresponds to phase 6.3 on the design document [1].

[1] https://docs.google.com/document/d/1AJKVA5U4nDkyDB9p4ROrggWXadCxyy-grKaE9KS5vOU/

It moves the respective header webrtc_media_stream_track_adapter.h
to Blink's public API layer (TODO added).

Last, base::Bind instances will be replaced by their corresponding
WTF implementations in a follow up.

BUG=787254
R=guidou@chromium.org, haraken@chromium.org

Change-Id: Ifb34c9e62556d46dd917b78c433e7a1f706bad1e
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1816778
Commit-Queue: Antonio Gomes <tonikitoo@igalia.com>
Reviewed-by: default avatarGuido Urdaneta <guidou@chromium.org>
Reviewed-by: default avatarKentaro Hara <haraken@chromium.org>
Cr-Commit-Position: refs/heads/master@{#704623}
parent fe93195d
...@@ -212,8 +212,6 @@ target(link_target_type, "renderer") { ...@@ -212,8 +212,6 @@ target(link_target_type, "renderer") {
"media/webrtc/rtc_rtp_transceiver.h", "media/webrtc/rtc_rtp_transceiver.h",
"media/webrtc/transceiver_state_surfacer.cc", "media/webrtc/transceiver_state_surfacer.cc",
"media/webrtc/transceiver_state_surfacer.h", "media/webrtc/transceiver_state_surfacer.h",
"media/webrtc/webrtc_media_stream_track_adapter.cc",
"media/webrtc/webrtc_media_stream_track_adapter.h",
"media/webrtc/webrtc_media_stream_track_adapter_map.cc", "media/webrtc/webrtc_media_stream_track_adapter_map.cc",
"media/webrtc/webrtc_media_stream_track_adapter_map.h", "media/webrtc/webrtc_media_stream_track_adapter_map.h",
"media/webrtc/webrtc_set_description_observer.cc", "media/webrtc/webrtc_set_description_observer.cc",
......
...@@ -14,7 +14,7 @@ namespace content { ...@@ -14,7 +14,7 @@ namespace content {
WebRtcMediaStreamTrackAdapterMap::AdapterRef::AdapterRef( WebRtcMediaStreamTrackAdapterMap::AdapterRef::AdapterRef(
scoped_refptr<WebRtcMediaStreamTrackAdapterMap> map, scoped_refptr<WebRtcMediaStreamTrackAdapterMap> map,
Type type, Type type,
scoped_refptr<WebRtcMediaStreamTrackAdapter> adapter) scoped_refptr<blink::WebRtcMediaStreamTrackAdapter> adapter)
: map_(std::move(map)), type_(type), adapter_(std::move(adapter)) { : map_(std::move(map)), type_(type), adapter_(std::move(adapter)) {
DCHECK(map_); DCHECK(map_);
DCHECK(adapter_); DCHECK(adapter_);
...@@ -22,7 +22,7 @@ WebRtcMediaStreamTrackAdapterMap::AdapterRef::AdapterRef( ...@@ -22,7 +22,7 @@ WebRtcMediaStreamTrackAdapterMap::AdapterRef::AdapterRef(
WebRtcMediaStreamTrackAdapterMap::AdapterRef::~AdapterRef() { WebRtcMediaStreamTrackAdapterMap::AdapterRef::~AdapterRef() {
DCHECK(map_->main_thread_->BelongsToCurrentThread()); DCHECK(map_->main_thread_->BelongsToCurrentThread());
scoped_refptr<WebRtcMediaStreamTrackAdapter> removed_adapter; scoped_refptr<blink::WebRtcMediaStreamTrackAdapter> removed_adapter;
{ {
base::AutoLock scoped_lock(map_->lock_); base::AutoLock scoped_lock(map_->lock_);
// The adapter is stored in the track adapter map and we have |adapter_|, // The adapter is stored in the track adapter map and we have |adapter_|,
...@@ -30,7 +30,7 @@ WebRtcMediaStreamTrackAdapterMap::AdapterRef::~AdapterRef() { ...@@ -30,7 +30,7 @@ WebRtcMediaStreamTrackAdapterMap::AdapterRef::~AdapterRef() {
DCHECK(!adapter_->HasOneRef()); DCHECK(!adapter_->HasOneRef());
// Using a raw pointer instead of |adapter_| allows the reference count to // Using a raw pointer instead of |adapter_| allows the reference count to
// go down to one if this is the last |AdapterRef|. // go down to one if this is the last |AdapterRef|.
WebRtcMediaStreamTrackAdapter* adapter = adapter_.get(); blink::WebRtcMediaStreamTrackAdapter* adapter = adapter_.get();
adapter_ = nullptr; adapter_ = nullptr;
if (adapter->HasOneRef()) { if (adapter->HasOneRef()) {
removed_adapter = adapter; removed_adapter = adapter;
...@@ -88,7 +88,7 @@ std::unique_ptr<WebRtcMediaStreamTrackAdapterMap::AdapterRef> ...@@ -88,7 +88,7 @@ std::unique_ptr<WebRtcMediaStreamTrackAdapterMap::AdapterRef>
WebRtcMediaStreamTrackAdapterMap::GetLocalTrackAdapter( WebRtcMediaStreamTrackAdapterMap::GetLocalTrackAdapter(
const blink::WebMediaStreamTrack& web_track) { const blink::WebMediaStreamTrack& web_track) {
base::AutoLock scoped_lock(lock_); base::AutoLock scoped_lock(lock_);
scoped_refptr<WebRtcMediaStreamTrackAdapter>* adapter_ptr = scoped_refptr<blink::WebRtcMediaStreamTrackAdapter>* adapter_ptr =
local_track_adapters_.FindByPrimary(web_track.UniqueId()); local_track_adapters_.FindByPrimary(web_track.UniqueId());
if (!adapter_ptr) if (!adapter_ptr)
return nullptr; return nullptr;
...@@ -100,7 +100,7 @@ std::unique_ptr<WebRtcMediaStreamTrackAdapterMap::AdapterRef> ...@@ -100,7 +100,7 @@ std::unique_ptr<WebRtcMediaStreamTrackAdapterMap::AdapterRef>
WebRtcMediaStreamTrackAdapterMap::GetLocalTrackAdapter( WebRtcMediaStreamTrackAdapterMap::GetLocalTrackAdapter(
webrtc::MediaStreamTrackInterface* webrtc_track) { webrtc::MediaStreamTrackInterface* webrtc_track) {
base::AutoLock scoped_lock(lock_); base::AutoLock scoped_lock(lock_);
scoped_refptr<WebRtcMediaStreamTrackAdapter>* adapter_ptr = scoped_refptr<blink::WebRtcMediaStreamTrackAdapter>* adapter_ptr =
local_track_adapters_.FindBySecondary(webrtc_track); local_track_adapters_.FindBySecondary(webrtc_track);
if (!adapter_ptr) if (!adapter_ptr)
return nullptr; return nullptr;
...@@ -114,19 +114,19 @@ WebRtcMediaStreamTrackAdapterMap::GetOrCreateLocalTrackAdapter( ...@@ -114,19 +114,19 @@ WebRtcMediaStreamTrackAdapterMap::GetOrCreateLocalTrackAdapter(
DCHECK(!web_track.IsNull()); DCHECK(!web_track.IsNull());
DCHECK(main_thread_->BelongsToCurrentThread()); DCHECK(main_thread_->BelongsToCurrentThread());
base::AutoLock scoped_lock(lock_); base::AutoLock scoped_lock(lock_);
scoped_refptr<WebRtcMediaStreamTrackAdapter>* adapter_ptr = scoped_refptr<blink::WebRtcMediaStreamTrackAdapter>* adapter_ptr =
local_track_adapters_.FindByPrimary(web_track.UniqueId()); local_track_adapters_.FindByPrimary(web_track.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));
} }
scoped_refptr<WebRtcMediaStreamTrackAdapter> new_adapter; scoped_refptr<blink::WebRtcMediaStreamTrackAdapter> new_adapter;
{ {
// Do not hold |lock_| while creating the adapter in case that operation // Do not hold |lock_| while creating the adapter in case that operation
// synchronizes with the signaling thread. If we do and the signaling thread // synchronizes with the signaling thread. If we do and the signaling thread
// 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 = WebRtcMediaStreamTrackAdapter::CreateLocalTrackAdapter( new_adapter = blink::WebRtcMediaStreamTrackAdapter::CreateLocalTrackAdapter(
factory_, main_thread_, web_track); factory_, main_thread_, web_track);
} }
DCHECK(new_adapter->is_initialized()); DCHECK(new_adapter->is_initialized());
...@@ -146,7 +146,7 @@ std::unique_ptr<WebRtcMediaStreamTrackAdapterMap::AdapterRef> ...@@ -146,7 +146,7 @@ std::unique_ptr<WebRtcMediaStreamTrackAdapterMap::AdapterRef>
WebRtcMediaStreamTrackAdapterMap::GetRemoteTrackAdapter( WebRtcMediaStreamTrackAdapterMap::GetRemoteTrackAdapter(
const blink::WebMediaStreamTrack& web_track) { const blink::WebMediaStreamTrack& web_track) {
base::AutoLock scoped_lock(lock_); base::AutoLock scoped_lock(lock_);
scoped_refptr<WebRtcMediaStreamTrackAdapter>* adapter_ptr = scoped_refptr<blink::WebRtcMediaStreamTrackAdapter>* adapter_ptr =
remote_track_adapters_.FindBySecondary(web_track.UniqueId()); remote_track_adapters_.FindBySecondary(web_track.UniqueId());
if (!adapter_ptr) if (!adapter_ptr)
return nullptr; return nullptr;
...@@ -159,7 +159,7 @@ std::unique_ptr<WebRtcMediaStreamTrackAdapterMap::AdapterRef> ...@@ -159,7 +159,7 @@ std::unique_ptr<WebRtcMediaStreamTrackAdapterMap::AdapterRef>
WebRtcMediaStreamTrackAdapterMap::GetRemoteTrackAdapter( WebRtcMediaStreamTrackAdapterMap::GetRemoteTrackAdapter(
webrtc::MediaStreamTrackInterface* webrtc_track) { webrtc::MediaStreamTrackInterface* webrtc_track) {
base::AutoLock scoped_lock(lock_); base::AutoLock scoped_lock(lock_);
scoped_refptr<WebRtcMediaStreamTrackAdapter>* adapter_ptr = scoped_refptr<blink::WebRtcMediaStreamTrackAdapter>* adapter_ptr =
remote_track_adapters_.FindByPrimary(webrtc_track); remote_track_adapters_.FindByPrimary(webrtc_track);
if (!adapter_ptr) if (!adapter_ptr)
return nullptr; return nullptr;
...@@ -173,20 +173,21 @@ WebRtcMediaStreamTrackAdapterMap::GetOrCreateRemoteTrackAdapter( ...@@ -173,20 +173,21 @@ WebRtcMediaStreamTrackAdapterMap::GetOrCreateRemoteTrackAdapter(
DCHECK(webrtc_track); DCHECK(webrtc_track);
DCHECK(!main_thread_->BelongsToCurrentThread()); DCHECK(!main_thread_->BelongsToCurrentThread());
base::AutoLock scoped_lock(lock_); base::AutoLock scoped_lock(lock_);
scoped_refptr<WebRtcMediaStreamTrackAdapter>* adapter_ptr = scoped_refptr<blink::WebRtcMediaStreamTrackAdapter>* adapter_ptr =
remote_track_adapters_.FindByPrimary(webrtc_track.get()); remote_track_adapters_.FindByPrimary(webrtc_track.get());
if (adapter_ptr) { if (adapter_ptr) {
return base::WrapUnique( return base::WrapUnique(
new AdapterRef(this, AdapterRef::Type::kRemote, *adapter_ptr)); new AdapterRef(this, AdapterRef::Type::kRemote, *adapter_ptr));
} }
scoped_refptr<WebRtcMediaStreamTrackAdapter> new_adapter; scoped_refptr<blink::WebRtcMediaStreamTrackAdapter> new_adapter;
{ {
// Do not hold |lock_| while creating the adapter in case that operation // Do not hold |lock_| while creating the adapter in case that operation
// synchronizes with the main thread. If we do and the main thread is // synchronizes with the main thread. If we do and the main thread is
// blocked waiting for |lock_| we end up in a deadlock. // blocked waiting for |lock_| we end up in a deadlock.
base::AutoUnlock scoped_unlock(lock_); base::AutoUnlock scoped_unlock(lock_);
new_adapter = WebRtcMediaStreamTrackAdapter::CreateRemoteTrackAdapter( new_adapter =
factory_, main_thread_, webrtc_track); blink::WebRtcMediaStreamTrackAdapter::CreateRemoteTrackAdapter(
factory_, main_thread_, webrtc_track);
} }
remote_track_adapters_.Insert(webrtc_track.get(), new_adapter); remote_track_adapters_.Insert(webrtc_track.get(), new_adapter);
// The new adapter is initialized in a post to the main thread. As soon as it // The new adapter is initialized in a post to the main thread. As soon as it
......
...@@ -11,9 +11,9 @@ ...@@ -11,9 +11,9 @@
#include "base/memory/ref_counted.h" #include "base/memory/ref_counted.h"
#include "base/single_thread_task_runner.h" #include "base/single_thread_task_runner.h"
#include "content/common/content_export.h" #include "content/common/content_export.h"
#include "content/renderer/media/webrtc/webrtc_media_stream_track_adapter.h"
#include "third_party/blink/public/platform/modules/peerconnection/two_keys_adapter_map.h" #include "third_party/blink/public/platform/modules/peerconnection/two_keys_adapter_map.h"
#include "third_party/blink/public/platform/web_media_stream_track.h" #include "third_party/blink/public/platform/web_media_stream_track.h"
#include "third_party/blink/public/web/modules/peerconnection/webrtc_media_stream_track_adapter.h"
#include "third_party/webrtc/api/media_stream_interface.h" #include "third_party/webrtc/api/media_stream_interface.h"
namespace blink { namespace blink {
...@@ -50,7 +50,7 @@ class CONTENT_EXPORT WebRtcMediaStreamTrackAdapterMap ...@@ -50,7 +50,7 @@ class CONTENT_EXPORT WebRtcMediaStreamTrackAdapterMap
// Warning: Holding an external reference to the adapter will prevent // Warning: Holding an external reference to the adapter will prevent
// |~AdapterRef| from disposing the adapter. // |~AdapterRef| from disposing the adapter.
WebRtcMediaStreamTrackAdapter* GetAdapterForTesting() const { blink::WebRtcMediaStreamTrackAdapter* GetAdapterForTesting() const {
return adapter_.get(); return adapter_.get();
} }
...@@ -62,14 +62,14 @@ class CONTENT_EXPORT WebRtcMediaStreamTrackAdapterMap ...@@ -62,14 +62,14 @@ class CONTENT_EXPORT WebRtcMediaStreamTrackAdapterMap
// Assumes map's |lock_| is held. // Assumes map's |lock_| is held.
AdapterRef(scoped_refptr<WebRtcMediaStreamTrackAdapterMap> map, AdapterRef(scoped_refptr<WebRtcMediaStreamTrackAdapterMap> map,
Type type, Type type,
scoped_refptr<WebRtcMediaStreamTrackAdapter> adapter); scoped_refptr<blink::WebRtcMediaStreamTrackAdapter> adapter);
scoped_refptr<WebRtcMediaStreamTrackAdapterMap> map_; scoped_refptr<WebRtcMediaStreamTrackAdapterMap> map_;
Type type_; Type type_;
// A reference to the entry's adapter, ensures that |HasOneRef()| is false // A reference to the entry's adapter, ensures that |HasOneRef()| is false
// as long as the |AdapterRef| is kept alive (the map entry has one // as long as the |AdapterRef| is kept alive (the map entry has one
// reference to it too). // reference to it too).
scoped_refptr<WebRtcMediaStreamTrackAdapter> adapter_; scoped_refptr<blink::WebRtcMediaStreamTrackAdapter> adapter_;
}; };
// Must be invoked on the main thread. // Must be invoked on the main thread.
...@@ -128,14 +128,14 @@ class CONTENT_EXPORT WebRtcMediaStreamTrackAdapterMap ...@@ -128,14 +128,14 @@ class CONTENT_EXPORT WebRtcMediaStreamTrackAdapterMap
// |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 = using LocalTrackAdapterMap = blink::TwoKeysAdapterMap<
blink::TwoKeysAdapterMap<int, // blink::WebMediaStreamTrack::UniqueId() int, // blink::WebMediaStreamTrack::UniqueId()
webrtc::MediaStreamTrackInterface*, webrtc::MediaStreamTrackInterface*,
scoped_refptr<WebRtcMediaStreamTrackAdapter>>; scoped_refptr<blink::WebRtcMediaStreamTrackAdapter>>;
using RemoteTrackAdapterMap = using RemoteTrackAdapterMap = blink::TwoKeysAdapterMap<
blink::TwoKeysAdapterMap<webrtc::MediaStreamTrackInterface*, webrtc::MediaStreamTrackInterface*,
int, // blink::WebMediaStreamTrack::UniqueId() int, // blink::WebMediaStreamTrack::UniqueId()
scoped_refptr<WebRtcMediaStreamTrackAdapter>>; scoped_refptr<blink::WebRtcMediaStreamTrackAdapter>>;
// Invoke on the main thread. // Invoke on the main thread.
virtual ~WebRtcMediaStreamTrackAdapterMap(); virtual ~WebRtcMediaStreamTrackAdapterMap();
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be // Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file. // found in the LICENSE file.
#include "content/renderer/media/webrtc/webrtc_media_stream_track_adapter.h" #include "third_party/blink/public/web/modules/peerconnection/webrtc_media_stream_track_adapter.h"
#include <memory> #include <memory>
...@@ -79,13 +79,14 @@ class WebRtcMediaStreamTrackAdapterTest : public ::testing::Test { ...@@ -79,13 +79,14 @@ class WebRtcMediaStreamTrackAdapterTest : public ::testing::Test {
void CreateRemoteTrackAdapter( void CreateRemoteTrackAdapter(
webrtc::MediaStreamTrackInterface* webrtc_track) { webrtc::MediaStreamTrackInterface* webrtc_track) {
track_adapter_ = WebRtcMediaStreamTrackAdapter::CreateRemoteTrackAdapter( track_adapter_ =
dependency_factory_.get(), main_thread_, webrtc_track); blink::WebRtcMediaStreamTrackAdapter::CreateRemoteTrackAdapter(
dependency_factory_.get(), main_thread_, webrtc_track);
} }
void HoldOntoAdapterReference( void HoldOntoAdapterReference(
base::WaitableEvent* waitable_event, base::WaitableEvent* waitable_event,
scoped_refptr<WebRtcMediaStreamTrackAdapter> adapter) { scoped_refptr<blink::WebRtcMediaStreamTrackAdapter> adapter) {
waitable_event->Wait(); waitable_event->Wait();
} }
...@@ -120,12 +121,13 @@ class WebRtcMediaStreamTrackAdapterTest : public ::testing::Test { ...@@ -120,12 +121,13 @@ class WebRtcMediaStreamTrackAdapterTest : public ::testing::Test {
std::unique_ptr<MockPeerConnectionDependencyFactory> dependency_factory_; std::unique_ptr<MockPeerConnectionDependencyFactory> dependency_factory_;
scoped_refptr<base::SingleThreadTaskRunner> main_thread_; scoped_refptr<base::SingleThreadTaskRunner> main_thread_;
scoped_refptr<WebRtcMediaStreamTrackAdapter> track_adapter_; scoped_refptr<blink::WebRtcMediaStreamTrackAdapter> track_adapter_;
}; };
TEST_F(WebRtcMediaStreamTrackAdapterTest, LocalAudioTrack) { TEST_F(WebRtcMediaStreamTrackAdapterTest, LocalAudioTrack) {
track_adapter_ = WebRtcMediaStreamTrackAdapter::CreateLocalTrackAdapter( track_adapter_ =
dependency_factory_.get(), main_thread_, CreateLocalAudioTrack()); blink::WebRtcMediaStreamTrackAdapter::CreateLocalTrackAdapter(
dependency_factory_.get(), main_thread_, CreateLocalAudioTrack());
EXPECT_TRUE(track_adapter_->is_initialized()); EXPECT_TRUE(track_adapter_->is_initialized());
EXPECT_TRUE(!track_adapter_->web_track().IsNull()); EXPECT_TRUE(!track_adapter_->web_track().IsNull());
EXPECT_EQ(track_adapter_->web_track().Source().GetType(), EXPECT_EQ(track_adapter_->web_track().Source().GetType(),
...@@ -143,8 +145,9 @@ TEST_F(WebRtcMediaStreamTrackAdapterTest, LocalAudioTrack) { ...@@ -143,8 +145,9 @@ TEST_F(WebRtcMediaStreamTrackAdapterTest, LocalAudioTrack) {
// Flaky, see https://crbug.com/982200. // Flaky, see https://crbug.com/982200.
TEST_F(WebRtcMediaStreamTrackAdapterTest, DISABLED_LocalVideoTrack) { TEST_F(WebRtcMediaStreamTrackAdapterTest, DISABLED_LocalVideoTrack) {
track_adapter_ = WebRtcMediaStreamTrackAdapter::CreateLocalTrackAdapter( track_adapter_ =
dependency_factory_.get(), main_thread_, CreateLocalVideoTrack()); blink::WebRtcMediaStreamTrackAdapter::CreateLocalTrackAdapter(
dependency_factory_.get(), main_thread_, CreateLocalVideoTrack());
EXPECT_TRUE(track_adapter_->is_initialized()); EXPECT_TRUE(track_adapter_->is_initialized());
EXPECT_TRUE(!track_adapter_->web_track().IsNull()); EXPECT_TRUE(!track_adapter_->web_track().IsNull());
EXPECT_EQ(track_adapter_->web_track().Source().GetType(), EXPECT_EQ(track_adapter_->web_track().Source().GetType(),
......
...@@ -374,6 +374,7 @@ source_set("blink_headers") { ...@@ -374,6 +374,7 @@ source_set("blink_headers") {
"web/modules/peerconnection/media_stream_remote_video_source.h", "web/modules/peerconnection/media_stream_remote_video_source.h",
"web/modules/peerconnection/media_stream_video_webrtc_sink.h", "web/modules/peerconnection/media_stream_video_webrtc_sink.h",
"web/modules/peerconnection/peer_connection_dependency_factory.h", "web/modules/peerconnection/peer_connection_dependency_factory.h",
"web/modules/peerconnection/webrtc_media_stream_track_adapter.h",
"web/modules/service_worker/web_service_worker_context_client.h", "web/modules/service_worker/web_service_worker_context_client.h",
"web/modules/service_worker/web_service_worker_context_proxy.h", "web/modules/service_worker/web_service_worker_context_proxy.h",
"web/modules/webrtc/webrtc_audio_device_impl.h", "web/modules/webrtc/webrtc_audio_device_impl.h",
......
...@@ -6,5 +6,6 @@ include_rules = [ ...@@ -6,5 +6,6 @@ include_rules = [
# TODO(crbug.com/787254): Replace base::SequenceChecker by base::ThreadChecker. # TODO(crbug.com/787254): Replace base::SequenceChecker by base::ThreadChecker.
"+base/sequence_checker.h", "+base/sequence_checker.h",
"+base/single_thread_task_runner.h", "+base/single_thread_task_runner.h",
"+base/synchronization/waitable_event.h",
"+base/threading/thread.h", "+base/threading/thread.h",
] ]
...@@ -23,7 +23,7 @@ class TrackObserver; ...@@ -23,7 +23,7 @@ class TrackObserver;
// source is a local source and a video track where the source is a remote video // source is a local source and a video track where the source is a remote video
// track. // track.
// //
// TODO(crbug.com/704136): Move the classes below out of the Blink exposed // TODO(crbug.com/787254): Move the classes below out of the Blink exposed
// API when all users of it have been Onion souped. // API when all users of it have been Onion souped.
class BLINK_MODULES_EXPORT MediaStreamRemoteVideoSource class BLINK_MODULES_EXPORT MediaStreamRemoteVideoSource
: public MediaStreamVideoSource { : public MediaStreamVideoSource {
......
...@@ -2,16 +2,15 @@ ...@@ -2,16 +2,15 @@
// Use of this source code is governed by a BSD-style license that can be // Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file. // found in the LICENSE file.
#ifndef CONTENT_RENDERER_MEDIA_WEBRTC_WEBRTC_MEDIA_STREAM_TRACK_ADAPTER_H_ #ifndef THIRD_PARTY_BLINK_PUBLIC_WEB_MODULES_PEERCONNECTION_WEBRTC_MEDIA_STREAM_TRACK_ADAPTER_H_
#define CONTENT_RENDERER_MEDIA_WEBRTC_WEBRTC_MEDIA_STREAM_TRACK_ADAPTER_H_ #define THIRD_PARTY_BLINK_PUBLIC_WEB_MODULES_PEERCONNECTION_WEBRTC_MEDIA_STREAM_TRACK_ADAPTER_H_
#include <memory> #include <memory>
#include "base/memory/ref_counted.h" #include "base/memory/ref_counted.h"
#include "base/synchronization/waitable_event.h" #include "base/synchronization/waitable_event.h"
#include "content/common/content_export.h"
#include "content/renderer/media/webrtc/webrtc_media_stream_track_adapter.h"
#include "third_party/blink/public/platform/modules/peerconnection/webrtc_audio_sink.h" #include "third_party/blink/public/platform/modules/peerconnection/webrtc_audio_sink.h"
#include "third_party/blink/public/platform/web_common.h"
#include "third_party/blink/public/platform/web_media_stream.h" #include "third_party/blink/public/platform/web_media_stream.h"
#include "third_party/blink/public/platform/web_media_stream_track.h" #include "third_party/blink/public/platform/web_media_stream_track.h"
#include "third_party/blink/public/web/modules/mediastream/remote_media_stream_track_adapter.h" #include "third_party/blink/public/web/modules/mediastream/remote_media_stream_track_adapter.h"
...@@ -19,11 +18,8 @@ ...@@ -19,11 +18,8 @@
#include "third_party/webrtc/api/media_stream_interface.h" #include "third_party/webrtc/api/media_stream_interface.h"
namespace blink { namespace blink {
class PeerConnectionDependencyFactory;
}
namespace content {
class PeerConnectionDependencyFactory;
struct WebRtcMediaStreamTrackAdapterTraits; struct WebRtcMediaStreamTrackAdapterTraits;
// This is a mapping between a webrtc and blink media stream track. It takes // This is a mapping between a webrtc and blink media stream track. It takes
...@@ -32,7 +28,10 @@ struct WebRtcMediaStreamTrackAdapterTraits; ...@@ -32,7 +28,10 @@ struct WebRtcMediaStreamTrackAdapterTraits;
// There are different sinks/adapters used whether the track is local or remote // There are different sinks/adapters used whether the track is local or remote
// and whether it is an audio or video track; this adapter hides that fact and // and whether it is an audio or video track; this adapter hides that fact and
// lets you use a single class for any type of track. // lets you use a single class for any type of track.
class CONTENT_EXPORT WebRtcMediaStreamTrackAdapter //
// TODO(crbug.com/787254): Move the classes below out of the Blink exposed
// API when all users of it have been Onion souped.
class BLINK_MODULES_EXPORT WebRtcMediaStreamTrackAdapter
: public base::RefCountedThreadSafe<WebRtcMediaStreamTrackAdapter, : public base::RefCountedThreadSafe<WebRtcMediaStreamTrackAdapter,
WebRtcMediaStreamTrackAdapterTraits> { WebRtcMediaStreamTrackAdapterTraits> {
public: public:
...@@ -139,7 +138,7 @@ class CONTENT_EXPORT WebRtcMediaStreamTrackAdapter ...@@ -139,7 +138,7 @@ class CONTENT_EXPORT WebRtcMediaStreamTrackAdapter
DISALLOW_COPY_AND_ASSIGN(WebRtcMediaStreamTrackAdapter); DISALLOW_COPY_AND_ASSIGN(WebRtcMediaStreamTrackAdapter);
}; };
struct CONTENT_EXPORT WebRtcMediaStreamTrackAdapterTraits { struct BLINK_MODULES_EXPORT WebRtcMediaStreamTrackAdapterTraits {
private: private:
friend class base::RefCountedThreadSafe<WebRtcMediaStreamTrackAdapter, friend class base::RefCountedThreadSafe<WebRtcMediaStreamTrackAdapter,
WebRtcMediaStreamTrackAdapterTraits>; WebRtcMediaStreamTrackAdapterTraits>;
...@@ -149,6 +148,6 @@ struct CONTENT_EXPORT WebRtcMediaStreamTrackAdapterTraits { ...@@ -149,6 +148,6 @@ struct CONTENT_EXPORT WebRtcMediaStreamTrackAdapterTraits {
static void Destruct(const WebRtcMediaStreamTrackAdapter* adapter); static void Destruct(const WebRtcMediaStreamTrackAdapter* adapter);
}; };
} // namespace content } // namespace blink
#endif // CONTENT_RENDERER_MEDIA_WEBRTC_WEBRTC_MEDIA_STREAM_TRACK_ADAPTER_H_ #endif // THIRD_PARTY_BLINK_PUBLIC_WEB_MODULES_PEERCONNECTION_WEBRTC_MEDIA_STREAM_TRACK_ADAPTER_H_
...@@ -126,6 +126,7 @@ blink_modules_sources("peerconnection") { ...@@ -126,6 +126,7 @@ blink_modules_sources("peerconnection") {
"rtc_void_request_script_promise_resolver_impl.h", "rtc_void_request_script_promise_resolver_impl.h",
"web_rtc_stats_report_callback_resolver.cc", "web_rtc_stats_report_callback_resolver.cc",
"web_rtc_stats_report_callback_resolver.h", "web_rtc_stats_report_callback_resolver.h",
"webrtc_media_stream_track_adapter.cc",
] ]
public_deps = [ public_deps = [
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be // Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file. // found in the LICENSE file.
#include "content/renderer/media/webrtc/webrtc_media_stream_track_adapter.h" #include "third_party/blink/public/web/modules/peerconnection/webrtc_media_stream_track_adapter.h"
#include "base/bind.h" #include "base/bind.h"
#include "third_party/blink/public/platform/modules/mediastream/media_stream_audio_track.h" #include "third_party/blink/public/platform/modules/mediastream/media_stream_audio_track.h"
...@@ -10,7 +10,7 @@ ...@@ -10,7 +10,7 @@
#include "third_party/blink/public/web/modules/peerconnection/media_stream_video_webrtc_sink.h" #include "third_party/blink/public/web/modules/peerconnection/media_stream_video_webrtc_sink.h"
#include "third_party/blink/public/web/modules/peerconnection/peer_connection_dependency_factory.h" #include "third_party/blink/public/web/modules/peerconnection/peer_connection_dependency_factory.h"
namespace content { namespace blink {
// static // static
scoped_refptr<WebRtcMediaStreamTrackAdapter> scoped_refptr<WebRtcMediaStreamTrackAdapter>
...@@ -335,4 +335,4 @@ void WebRtcMediaStreamTrackAdapter::FinalizeRemoteTrackDisposingOnMainThread() { ...@@ -335,4 +335,4 @@ void WebRtcMediaStreamTrackAdapter::FinalizeRemoteTrackDisposingOnMainThread() {
web_track_.Reset(); web_track_.Reset();
} }
} // namespace content } // namespace blink
...@@ -843,6 +843,7 @@ _CONFIG = [ ...@@ -843,6 +843,7 @@ _CONFIG = [
], ],
'allowed': ['crypto::.+'], 'allowed': ['crypto::.+'],
}, },
{ {
'paths': [ 'paths': [
'third_party/blink/renderer/modules/p2p', 'third_party/blink/renderer/modules/p2p',
...@@ -870,6 +871,7 @@ _CONFIG = [ ...@@ -870,6 +871,7 @@ _CONFIG = [
'base::Bind.*', 'base::Bind.*',
"base::MessageLoopCurrent", "base::MessageLoopCurrent",
'base::Unretained', 'base::Unretained',
'base::WrapRefCounted',
'cricket::.*', 'cricket::.*',
'jingle_glue::JingleThreadWrapper', 'jingle_glue::JingleThreadWrapper',
# TODO(crbug.com/787254): Remove GURL usage. # TODO(crbug.com/787254): Remove GURL usage.
......
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