Commit 7417621e authored by Antonio Gomes's avatar Antonio Gomes Committed by Commit Bot

Onion soup content/renderer/media/webrtc/two_keys_adapter_map.h

This is phase 1.8 on the design document [1].

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

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

Change-Id: If4aca474d0ed17a742d9eae301ae38a6f7c88b3b
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1776658
Commit-Queue: Antonio Gomes <tonikitoo@igalia.com>
Reviewed-by: default avatarKentaro Hara <haraken@chromium.org>
Reviewed-by: default avatarGuido Urdaneta <guidou@chromium.org>
Cr-Commit-Position: refs/heads/master@{#692007}
parent 4587b87f
......@@ -228,7 +228,6 @@ target(link_target_type, "renderer") {
"media/webrtc/transceiver_state_surfacer.h",
"media/webrtc/transmission_encoding_info_handler.cc",
"media/webrtc/transmission_encoding_info_handler.h",
"media/webrtc/two_keys_adapter_map.h",
"media/webrtc/video_codec_factory.cc",
"media/webrtc/video_codec_factory.h",
"media/webrtc/webrtc_audio_sink.cc",
......
......@@ -11,8 +11,8 @@
#include "base/memory/ref_counted.h"
#include "base/single_thread_task_runner.h"
#include "content/common/content_export.h"
#include "content/renderer/media/webrtc/two_keys_adapter_map.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/web_media_stream_track.h"
#include "third_party/webrtc/api/media_stream_interface.h"
......@@ -127,11 +127,11 @@ class CONTENT_EXPORT WebRtcMediaStreamTrackAdapterMap
// The adapter keeps the |webrtc::MediaStreamTrackInterface| alive with ref
// counting making it safe to use a raw pointer for key.
using LocalTrackAdapterMap =
TwoKeysAdapterMap<int, // blink::WebMediaStreamTrack::UniqueId()
blink::TwoKeysAdapterMap<int, // blink::WebMediaStreamTrack::UniqueId()
webrtc::MediaStreamTrackInterface*,
scoped_refptr<WebRtcMediaStreamTrackAdapter>>;
using RemoteTrackAdapterMap =
TwoKeysAdapterMap<webrtc::MediaStreamTrackInterface*,
blink::TwoKeysAdapterMap<webrtc::MediaStreamTrackInterface*,
int, // blink::WebMediaStreamTrack::UniqueId()
scoped_refptr<WebRtcMediaStreamTrackAdapter>>;
......
......@@ -1945,7 +1945,6 @@ test("content_unittests") {
"../renderer/media/webrtc/task_queue_factory_unittest.cc",
"../renderer/media/webrtc/transceiver_state_surfacer_unittest.cc",
"../renderer/media/webrtc/transmission_encoding_info_handler_unittest.cc",
"../renderer/media/webrtc/two_keys_adapter_map_unittest.cc",
"../renderer/media/webrtc/webrtc_audio_renderer_unittest.cc",
"../renderer/media/webrtc/webrtc_media_stream_track_adapter_map_unittest.cc",
"../renderer/media/webrtc/webrtc_media_stream_track_adapter_unittest.cc",
......
......@@ -158,6 +158,7 @@ source_set("blink_headers") {
"platform/modules/mediastream/webrtc_uma_histograms.h",
"platform/modules/peerconnection/audio_codec_factory.h",
"platform/modules/peerconnection/rtc_event_log_output_sink.h",
"platform/modules/peerconnection/two_keys_adapter_map.h",
"platform/modules/peerconnection/web_rtc_video_encoder_factory.h",
"platform/modules/peerconnection/web_rtc_video_frame_adapter_factory.h",
"platform/modules/remoteplayback/web_remote_playback_client.h",
......
......@@ -2,8 +2,8 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef CONTENT_RENDERER_MEDIA_WEBRTC_TWO_KEYS_MAP_H_
#define CONTENT_RENDERER_MEDIA_WEBRTC_TWO_KEYS_MAP_H_
#ifndef THIRD_PARTY_BLINK_PUBLIC_PLATFORM_MODULES_PEERCONNECTION_TWO_KEYS_ADAPTER_MAP_H_
#define THIRD_PARTY_BLINK_PUBLIC_PLATFORM_MODULES_PEERCONNECTION_TWO_KEYS_ADAPTER_MAP_H_
#include <map>
#include <memory>
......@@ -11,7 +11,7 @@
#include "base/logging.h"
namespace content {
namespace blink {
// A map with up to two keys per entry. An element is inserted with a key, this
// is the primary key. A secondary key can optionally be set to the same entry
......@@ -27,6 +27,10 @@ namespace content {
// webrtc/blink object that was used to create the adapter and the secondary key
// is based on the resulting blink/webrtc object after the adapter has been
// initialized.
//
// TODO(crbug.com/787254): Move this class out of the Blink exposed API when
// its clients get Onion souped, and change the use of std::map below to
// WTF::HashMap.
template <typename PrimaryKey, typename SecondaryKey, typename Value>
class TwoKeysAdapterMap {
public:
......@@ -116,6 +120,8 @@ class TwoKeysAdapterMap {
bool empty() const { return entries_by_primary_.empty(); }
private:
// TODO(crbug.com/787254): Move this class out of the Blink exposed API when
// its clients get Onion souped.
struct Entry {
Entry(Value value) : value(std::move(value)) {}
......@@ -128,6 +134,6 @@ class TwoKeysAdapterMap {
typename std::map<SecondaryKey, Entry*> entries_by_secondary_;
};
} // namespace content
} // namespace blink
#endif // CONTENT_RENDERER_MEDIA_WEBRTC_TWO_KEYS_MAP_H_
#endif // THIRD_PARTY_BLINK_PUBLIC_PLATFORM_MODULES_PEERCONNECTION_TWO_KEYS_ADAPTER_MAP_H_
......@@ -1800,6 +1800,7 @@ jumbo_source_set("blink_platform_unittests_sources") {
"peerconnection/rtc_stats_test.cc",
"peerconnection/rtc_video_decoder_adapter_test.cc",
"peerconnection/rtc_video_encoder_test.cc",
"peerconnection/two_keys_adapter_map_unittest.cc",
"text/bidi_resolver_test.cc",
"text/bidi_test_harness.h",
"text/capitalize_test.cc",
......
......@@ -2,12 +2,12 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "content/renderer/media/webrtc/two_keys_adapter_map.h"
#include "third_party/blink/public/platform/modules/peerconnection/two_keys_adapter_map.h"
#include "base/macros.h"
#include "testing/gtest/include/gtest/gtest.h"
namespace content {
namespace blink {
class TwoKeysAdapterMapTest : public ::testing::Test {
public:
......@@ -75,4 +75,4 @@ TEST_F(TwoKeysAdapterMapTest, EraseInvalidElementShouldReturnFalse) {
EXPECT_FALSE(map_.EraseBySecondary("invalid"));
}
} // namespace content
} // namespace blink
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