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

Change ApplyConstraintsRequest 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.

This CL also updates the call sites in ApplyConstraintsProcessor class,
and also removes some uses of WebMediaStreamSource::Type, in favor of
MediaStreamSource::Type.

BUG=704136
R=guidou@chromium.org

Change-Id: I8507cea20ef0a1171809444ec74f1163f30d5d6d
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2236233
Auto-Submit: Antonio Gomes <tonikitoo@igalia.com>
Commit-Queue: Guido Urdaneta <guidou@chromium.org>
Reviewed-by: default avatarGuido Urdaneta <guidou@chromium.org>
Cr-Commit-Position: refs/heads/master@{#776522}
parent d6f70abb
...@@ -18,6 +18,7 @@ ...@@ -18,6 +18,7 @@
#include "third_party/blink/renderer/modules/mediastream/media_stream_constraints_util_video_content.h" #include "third_party/blink/renderer/modules/mediastream/media_stream_constraints_util_video_content.h"
#include "third_party/blink/renderer/modules/mediastream/media_stream_constraints_util_video_device.h" #include "third_party/blink/renderer/modules/mediastream/media_stream_constraints_util_video_device.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_source.h"
#include "third_party/blink/renderer/platform/wtf/functional.h" #include "third_party/blink/renderer/platform/wtf/functional.h"
#include "third_party/blink/renderer/platform/wtf/text/wtf_string.h" #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
...@@ -54,20 +55,20 @@ void ApplyConstraintsProcessor::ProcessRequest( ...@@ -54,20 +55,20 @@ void ApplyConstraintsProcessor::ProcessRequest(
DCHECK_CALLED_ON_VALID_THREAD(thread_checker_); DCHECK_CALLED_ON_VALID_THREAD(thread_checker_);
DCHECK(!request_completed_cb_); DCHECK(!request_completed_cb_);
DCHECK(!current_request_); DCHECK(!current_request_);
DCHECK(!request->Track().IsNull()); DCHECK(request->Track());
if (request->Track().Source().IsNull()) { if (!request->Track()->Source()) {
CannotApplyConstraints( CannotApplyConstraints(
"Track has no source. ApplyConstraints not possible."); "Track has no source. ApplyConstraints not possible.");
return; return;
} }
request_completed_cb_ = std::move(callback); request_completed_cb_ = std::move(callback);
current_request_ = request; current_request_ = request;
if (current_request_->Track().Source().GetType() == if (current_request_->Track()->Source()->GetType() ==
blink::WebMediaStreamSource::kTypeVideo) { MediaStreamSource::kTypeVideo) {
ProcessVideoRequest(); ProcessVideoRequest();
} else { } else {
DCHECK_EQ(current_request_->Track().Source().GetType(), DCHECK_EQ(current_request_->Track()->Source()->GetType(),
blink::WebMediaStreamSource::kTypeAudio); MediaStreamSource::kTypeAudio);
ProcessAudioRequest(); ProcessAudioRequest();
} }
} }
...@@ -75,8 +76,8 @@ void ApplyConstraintsProcessor::ProcessRequest( ...@@ -75,8 +76,8 @@ void ApplyConstraintsProcessor::ProcessRequest(
void ApplyConstraintsProcessor::ProcessAudioRequest() { void ApplyConstraintsProcessor::ProcessAudioRequest() {
DCHECK_CALLED_ON_VALID_THREAD(thread_checker_); DCHECK_CALLED_ON_VALID_THREAD(thread_checker_);
DCHECK(current_request_); DCHECK(current_request_);
DCHECK_EQ(current_request_->Track().Source().GetType(), DCHECK_EQ(current_request_->Track()->Source()->GetType(),
blink::WebMediaStreamSource::kTypeAudio); MediaStreamSource::kTypeAudio);
DCHECK(request_completed_cb_); DCHECK(request_completed_cb_);
blink::MediaStreamAudioSource* audio_source = GetCurrentAudioSource(); blink::MediaStreamAudioSource* audio_source = GetCurrentAudioSource();
if (!audio_source) { if (!audio_source) {
...@@ -96,8 +97,8 @@ void ApplyConstraintsProcessor::ProcessAudioRequest() { ...@@ -96,8 +97,8 @@ void ApplyConstraintsProcessor::ProcessAudioRequest() {
void ApplyConstraintsProcessor::ProcessVideoRequest() { void ApplyConstraintsProcessor::ProcessVideoRequest() {
DCHECK_CALLED_ON_VALID_THREAD(thread_checker_); DCHECK_CALLED_ON_VALID_THREAD(thread_checker_);
DCHECK(current_request_); DCHECK(current_request_);
DCHECK_EQ(current_request_->Track().Source().GetType(), DCHECK_EQ(current_request_->Track()->Source()->GetType(),
blink::WebMediaStreamSource::kTypeVideo); MediaStreamSource::kTypeVideo);
DCHECK(request_completed_cb_); DCHECK(request_completed_cb_);
video_source_ = GetCurrentVideoSource(); video_source_ = GetCurrentVideoSource();
if (!video_source_) { if (!video_source_) {
...@@ -236,14 +237,14 @@ blink::VideoCaptureSettings ApplyConstraintsProcessor::SelectVideoSettings( ...@@ -236,14 +237,14 @@ blink::VideoCaptureSettings ApplyConstraintsProcessor::SelectVideoSettings(
Vector<media::VideoCaptureFormat> formats) { Vector<media::VideoCaptureFormat> formats) {
DCHECK_CALLED_ON_VALID_THREAD(thread_checker_); DCHECK_CALLED_ON_VALID_THREAD(thread_checker_);
DCHECK(current_request_); DCHECK(current_request_);
DCHECK_EQ(current_request_->Track().Source().GetType(), DCHECK_EQ(current_request_->Track()->Source()->GetType(),
blink::WebMediaStreamSource::kTypeVideo); MediaStreamSource::kTypeVideo);
DCHECK(request_completed_cb_); DCHECK(request_completed_cb_);
DCHECK_GT(formats.size(), 0U); DCHECK_GT(formats.size(), 0U);
blink::VideoInputDeviceCapabilities device_capabilities; blink::VideoInputDeviceCapabilities device_capabilities;
device_capabilities.device_id = current_request_->Track().Source().Id(); device_capabilities.device_id = current_request_->Track()->Source()->Id();
device_capabilities.group_id = current_request_->Track().Source().GroupId(); device_capabilities.group_id = current_request_->Track()->Source()->GroupId();
device_capabilities.facing_mode = device_capabilities.facing_mode =
GetCurrentVideoSource() ? GetCurrentVideoSource()->device().video_facing GetCurrentVideoSource() ? GetCurrentVideoSource()->device().video_facing
: media::MEDIA_VIDEO_FACING_NONE; : media::MEDIA_VIDEO_FACING_NONE;
...@@ -274,9 +275,9 @@ blink::MediaStreamAudioSource* ...@@ -274,9 +275,9 @@ blink::MediaStreamAudioSource*
ApplyConstraintsProcessor::GetCurrentAudioSource() { ApplyConstraintsProcessor::GetCurrentAudioSource() {
DCHECK_CALLED_ON_VALID_THREAD(thread_checker_); DCHECK_CALLED_ON_VALID_THREAD(thread_checker_);
DCHECK(current_request_); DCHECK(current_request_);
DCHECK(!current_request_->Track().IsNull()); DCHECK(current_request_->Track());
return blink::MediaStreamAudioSource::From( return blink::MediaStreamAudioSource::From(
current_request_->Track().Source()); current_request_->Track()->Source());
} }
blink::MediaStreamVideoTrack* blink::MediaStreamVideoTrack*
...@@ -297,8 +298,8 @@ ApplyConstraintsProcessor::GetCurrentVideoSource() { ...@@ -297,8 +298,8 @@ ApplyConstraintsProcessor::GetCurrentVideoSource() {
bool ApplyConstraintsProcessor::AbortIfVideoRequestStateInvalid() { bool ApplyConstraintsProcessor::AbortIfVideoRequestStateInvalid() {
DCHECK_CALLED_ON_VALID_THREAD(thread_checker_); DCHECK_CALLED_ON_VALID_THREAD(thread_checker_);
DCHECK(current_request_); DCHECK(current_request_);
DCHECK_EQ(current_request_->Track().Source().GetType(), DCHECK_EQ(current_request_->Track()->Source()->GetType(),
blink::WebMediaStreamSource::kTypeVideo); MediaStreamSource::kTypeVideo);
DCHECK(request_completed_cb_); DCHECK(request_completed_cb_);
if (GetCurrentVideoSource() != video_source_) { if (GetCurrentVideoSource() != video_source_) {
CannotApplyConstraints( CannotApplyConstraints(
......
...@@ -12,13 +12,13 @@ ...@@ -12,13 +12,13 @@
namespace blink { namespace blink {
ApplyConstraintsRequest::ApplyConstraintsRequest( ApplyConstraintsRequest::ApplyConstraintsRequest(
const WebMediaStreamTrack& track, MediaStreamComponent* component,
const MediaConstraints& constraints, const MediaConstraints& constraints,
ScriptPromiseResolver* resolver) ScriptPromiseResolver* resolver)
: track_(track), constraints_(constraints), resolver_(resolver) {} : component_(component), constraints_(constraints), resolver_(resolver) {}
WebMediaStreamTrack ApplyConstraintsRequest::Track() const { MediaStreamComponent* ApplyConstraintsRequest::Track() const {
return track_; return component_;
} }
MediaConstraints ApplyConstraintsRequest::Constraints() const { MediaConstraints ApplyConstraintsRequest::Constraints() const {
...@@ -26,10 +26,10 @@ MediaConstraints ApplyConstraintsRequest::Constraints() const { ...@@ -26,10 +26,10 @@ MediaConstraints ApplyConstraintsRequest::Constraints() const {
} }
void ApplyConstraintsRequest::RequestSucceeded() { void ApplyConstraintsRequest::RequestSucceeded() {
track_.SetConstraints(constraints_); component_->SetConstraints(constraints_);
if (resolver_) if (resolver_)
resolver_->Resolve(); resolver_->Resolve();
track_.Reset(); component_ = nullptr;
} }
void ApplyConstraintsRequest::RequestFailed(const String& constraint, void ApplyConstraintsRequest::RequestFailed(const String& constraint,
...@@ -38,10 +38,11 @@ void ApplyConstraintsRequest::RequestFailed(const String& constraint, ...@@ -38,10 +38,11 @@ void ApplyConstraintsRequest::RequestFailed(const String& constraint,
resolver_->Reject( resolver_->Reject(
MakeGarbageCollected<OverconstrainedError>(constraint, message)); MakeGarbageCollected<OverconstrainedError>(constraint, message));
} }
track_.Reset(); component_ = nullptr;
} }
void ApplyConstraintsRequest::Trace(Visitor* visitor) const { void ApplyConstraintsRequest::Trace(Visitor* visitor) const {
visitor->Trace(component_);
visitor->Trace(resolver_); visitor->Trace(resolver_);
} }
......
...@@ -5,11 +5,11 @@ ...@@ -5,11 +5,11 @@
#ifndef THIRD_PARTY_BLINK_RENDERER_MODULES_MEDIASTREAM_APPLY_CONSTRAINTS_REQUEST_H_ #ifndef THIRD_PARTY_BLINK_RENDERER_MODULES_MEDIASTREAM_APPLY_CONSTRAINTS_REQUEST_H_
#define THIRD_PARTY_BLINK_RENDERER_MODULES_MEDIASTREAM_APPLY_CONSTRAINTS_REQUEST_H_ #define THIRD_PARTY_BLINK_RENDERER_MODULES_MEDIASTREAM_APPLY_CONSTRAINTS_REQUEST_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/platform/heap/garbage_collected.h" #include "third_party/blink/renderer/platform/heap/garbage_collected.h"
#include "third_party/blink/renderer/platform/heap/visitor.h" #include "third_party/blink/renderer/platform/heap/visitor.h"
#include "third_party/blink/renderer/platform/mediastream/media_constraints.h" #include "third_party/blink/renderer/platform/mediastream/media_constraints.h"
#include "third_party/blink/renderer/platform/mediastream/media_stream_component.h"
namespace blink { namespace blink {
...@@ -18,11 +18,11 @@ class ScriptPromiseResolver; ...@@ -18,11 +18,11 @@ class ScriptPromiseResolver;
class MODULES_EXPORT ApplyConstraintsRequest final class MODULES_EXPORT ApplyConstraintsRequest final
: public GarbageCollected<ApplyConstraintsRequest> { : public GarbageCollected<ApplyConstraintsRequest> {
public: public:
ApplyConstraintsRequest(const WebMediaStreamTrack&, ApplyConstraintsRequest(MediaStreamComponent*,
const MediaConstraints&, const MediaConstraints&,
ScriptPromiseResolver*); ScriptPromiseResolver*);
WebMediaStreamTrack Track() const; MediaStreamComponent* Track() const;
MediaConstraints Constraints() const; MediaConstraints Constraints() const;
void RequestSucceeded(); void RequestSucceeded();
...@@ -31,7 +31,7 @@ class MODULES_EXPORT ApplyConstraintsRequest final ...@@ -31,7 +31,7 @@ class MODULES_EXPORT ApplyConstraintsRequest final
virtual void Trace(Visitor*) const; virtual void Trace(Visitor*) const;
private: private:
WebMediaStreamTrack track_; Member<MediaStreamComponent> component_;
MediaConstraints constraints_; MediaConstraints constraints_;
Member<ScriptPromiseResolver> resolver_; Member<ScriptPromiseResolver> resolver_;
}; };
......
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