Commit 8f60f41b authored by Antonio Gomes's avatar Antonio Gomes Committed by Commit Bot

Change UserMediaProcessor to operate over MediaStreamDescriptor

... instead of WebMediaStream.

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: I185363683e117ddde65439934f41c03fcf590236
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2277971
Commit-Queue: Antonio Gomes <tonikitoo@igalia.com>
Reviewed-by: default avatarGuido Urdaneta <guidou@chromium.org>
Cr-Commit-Position: refs/heads/master@{#784535}
parent 19a119ad
......@@ -405,9 +405,9 @@ class UserMediaProcessorUnderTest : public UserMediaProcessor {
return source;
}
void GetUserMediaRequestSucceeded(const blink::WebMediaStream& stream,
void GetUserMediaRequestSucceeded(MediaStreamDescriptor* descriptor,
UserMediaRequest* request_info) override {
last_generated_stream_ = stream;
last_generated_stream_ = WebMediaStream(descriptor);
*state_ = REQUEST_SUCCEEDED;
}
......
......@@ -20,8 +20,8 @@
#include "third_party/blink/public/common/browser_interface_broker_proxy.h"
#include "third_party/blink/public/common/mediastream/media_stream_controls.h"
#include "third_party/blink/public/common/mediastream/media_stream_request.h"
#include "third_party/blink/public/platform/modules/mediastream/web_media_stream.h"
#include "third_party/blink/public/platform/modules/mediastream/web_media_stream_source.h"
#include "third_party/blink/public/platform/modules/mediastream/web_media_stream_track.h"
#include "third_party/blink/public/platform/modules/webrtc/webrtc_logging.h"
#include "third_party/blink/public/platform/web_screen_info.h"
#include "third_party/blink/public/platform/web_string.h"
......@@ -55,16 +55,6 @@
#include "third_party/blink/renderer/platform/wtf/wtf_size_t.h"
#include "ui/gfx/geometry/size.h"
namespace WTF {
template <>
struct CrossThreadCopier<blink::WebMediaStream>
: public CrossThreadCopierPassThrough<blink::WebMediaStream> {
STATIC_ONLY(CrossThreadCopier);
};
} // namespace WTF
namespace blink {
using blink::mojom::MediaStreamRequestResult;
......@@ -394,9 +384,8 @@ class UserMediaProcessor::RequestInfo final
void InitializeWebStream(const String& label,
const MediaStreamComponentVector& audios,
const MediaStreamComponentVector& videos) {
auto* media_stream_descriptor =
descriptor_ =
MakeGarbageCollected<MediaStreamDescriptor>(label, audios, videos);
web_stream_ = WebMediaStream(media_stream_descriptor);
}
const Vector<MediaStreamDevice>& audio_devices() const {
......@@ -410,9 +399,9 @@ class UserMediaProcessor::RequestInfo final
return video_formats_map_.size() == video_devices_.size();
}
blink::WebMediaStream* web_stream() {
DCHECK(!web_stream_.IsNull());
return &web_stream_;
MediaStreamDescriptor* descriptor() {
DCHECK(descriptor_);
return descriptor_;
}
StreamControls* stream_controls() { return &stream_controls_; }
......@@ -426,7 +415,10 @@ class UserMediaProcessor::RequestInfo final
pan_tilt_zoom_allowed_ = pan_tilt_zoom_allowed;
}
void Trace(Visitor* visitor) const { visitor->Trace(request_); }
void Trace(Visitor* visitor) const {
visitor->Trace(request_);
visitor->Trace(descriptor_);
}
private:
void OnTrackStarted(blink::WebPlatformMediaStreamSource* source,
......@@ -444,7 +436,7 @@ class UserMediaProcessor::RequestInfo final
bool is_audio_content_capture_ = false;
blink::VideoCaptureSettings video_capture_settings_;
bool is_video_content_capture_ = false;
blink::WebMediaStream web_stream_;
Member<MediaStreamDescriptor> descriptor_;
StreamControls stream_controls_;
ResourcesReady ready_callback_;
MediaStreamRequestResult request_result_ = MediaStreamRequestResult::OK;
......@@ -1480,22 +1472,22 @@ void UserMediaProcessor::OnCreateNativeTracksCompleted(
"UMP::OnCreateNativeTracksCompleted({request_id = %d}, {label=%s})",
request_info->request_id(), label.Utf8().c_str()));
if (result == MediaStreamRequestResult::OK) {
GetUserMediaRequestSucceeded(*request_info->web_stream(),
GetUserMediaRequestSucceeded(request_info->descriptor(),
request_info->request());
GetMediaStreamDispatcherHost()->OnStreamStarted(label);
} else {
GetUserMediaRequestFailed(result, constraint_name);
for (auto& web_track : request_info->web_stream()->AudioTracks()) {
blink::WebPlatformMediaStreamTrack* track =
blink::WebPlatformMediaStreamTrack::GetTrack(web_track);
for (auto web_track : request_info->descriptor()->AudioComponents()) {
WebPlatformMediaStreamTrack* track =
WebPlatformMediaStreamTrack::GetTrack(WebMediaStreamTrack(web_track));
if (track)
track->Stop();
}
for (auto& web_track : request_info->web_stream()->VideoTracks()) {
blink::WebPlatformMediaStreamTrack* track =
blink::WebPlatformMediaStreamTrack::GetTrack(web_track);
for (auto web_track : request_info->descriptor()->VideoComponents()) {
WebPlatformMediaStreamTrack* track =
WebPlatformMediaStreamTrack::GetTrack(WebMediaStreamTrack(web_track));
if (track)
track->Stop();
}
......@@ -1505,7 +1497,7 @@ void UserMediaProcessor::OnCreateNativeTracksCompleted(
}
void UserMediaProcessor::GetUserMediaRequestSucceeded(
const blink::WebMediaStream& stream,
MediaStreamDescriptor* descriptor,
UserMediaRequest* user_media_request) {
DCHECK_CALLED_ON_VALID_THREAD(thread_checker_);
DCHECK(IsCurrentRequestInfo(user_media_request));
......@@ -1521,12 +1513,13 @@ void UserMediaProcessor::GetUserMediaRequestSucceeded(
FROM_HERE,
WTF::Bind(&UserMediaProcessor::DelayedGetUserMediaRequestSucceeded,
WrapWeakPersistent(this), current_request_info_->request_id(),
stream, WrapPersistent(user_media_request)));
WrapPersistent(descriptor),
WrapPersistent(user_media_request)));
}
void UserMediaProcessor::DelayedGetUserMediaRequestSucceeded(
int request_id,
const blink::WebMediaStream& stream,
MediaStreamDescriptor* component,
UserMediaRequest* user_media_request) {
DCHECK_CALLED_ON_VALID_THREAD(thread_checker_);
SendLogMessage(base::StringPrintf(
......@@ -1535,7 +1528,7 @@ void UserMediaProcessor::DelayedGetUserMediaRequestSucceeded(
MediaStreamRequestResultToString(MediaStreamRequestResult::OK)));
blink::LogUserMediaRequestResult(MediaStreamRequestResult::OK);
DeleteUserMediaRequest(user_media_request);
user_media_request->Succeed(stream);
user_media_request->Succeed(component);
}
void UserMediaProcessor::GetUserMediaRequestFailed(
......
......@@ -34,7 +34,6 @@ class LocalFrame;
class MediaStreamAudioSource;
class MediaStreamVideoSource;
class VideoCaptureSettings;
class WebMediaStream;
class WebMediaStreamDeviceObserver;
class WebMediaStreamSource;
class WebString;
......@@ -101,7 +100,7 @@ class MODULES_EXPORT UserMediaProcessor
// test requesting local media streams. The function notifies WebKit that the
// |request| have completed.
virtual void GetUserMediaRequestSucceeded(
const blink::WebMediaStream& stream,
MediaStreamDescriptor* descriptor,
UserMediaRequest* user_media_request);
virtual void GetUserMediaRequestFailed(
blink::mojom::blink::MediaStreamRequestResult result,
......@@ -157,7 +156,7 @@ class MODULES_EXPORT UserMediaProcessor
bool IsCurrentRequestInfo(UserMediaRequest* user_media_request) const;
void DelayedGetUserMediaRequestSucceeded(
int request_id,
const blink::WebMediaStream& stream,
MediaStreamDescriptor* descriptor,
UserMediaRequest* user_media_request);
void DelayedGetUserMediaRequestFailed(
int request_id,
......
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