Commit 2a67d64c authored by Antonio Gomes's avatar Antonio Gomes Committed by Commit Bot

Use ApplyConstraintsRequest instead of WebApplyConstraintsRequest

... in renderer/modules/mediastream.

WebApplyConstraintsRequest will be removed altogether in a follow up
CL.

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

Change-Id: I06fc9a2ca93f2bcb924b2491676d3457e2dd1067
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1768778
Commit-Queue: Antonio Gomes <tonikitoo@igalia.com>
Reviewed-by: default avatarGuido Urdaneta <guidou@chromium.org>
Cr-Commit-Position: refs/heads/master@{#690336}
parent 5f961a70
...@@ -23,14 +23,16 @@ ...@@ -23,14 +23,16 @@
namespace blink { namespace blink {
namespace { namespace {
void RequestFailed(blink::WebApplyConstraintsRequest request, void RequestFailed(blink::ApplyConstraintsRequest* request,
const String& constraint, const String& constraint,
const String& message) { const String& message) {
request.RequestFailed(constraint, message); DCHECK(request);
request->RequestFailed(constraint, message);
} }
void RequestSucceeded(blink::WebApplyConstraintsRequest request) { void RequestSucceeded(blink::ApplyConstraintsRequest* request) {
request.RequestSucceeded(); DCHECK(request);
request->RequestSucceeded();
} }
} // namespace } // namespace
...@@ -46,24 +48,24 @@ ApplyConstraintsProcessor::~ApplyConstraintsProcessor() { ...@@ -46,24 +48,24 @@ ApplyConstraintsProcessor::~ApplyConstraintsProcessor() {
} }
void ApplyConstraintsProcessor::ProcessRequest( void ApplyConstraintsProcessor::ProcessRequest(
const blink::WebApplyConstraintsRequest& request, blink::ApplyConstraintsRequest* request,
base::OnceClosure callback) { base::OnceClosure callback) {
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_.IsNull()); DCHECK(!current_request_);
DCHECK(!request.Track().IsNull()); DCHECK(!request->Track().IsNull());
if (request.Track().Source().IsNull()) { if (request->Track().Source().IsNull()) {
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) { blink::WebMediaStreamSource::kTypeVideo) {
ProcessVideoRequest(); ProcessVideoRequest();
} else { } else {
DCHECK_EQ(current_request_.Track().Source().GetType(), DCHECK_EQ(current_request_->Track().Source().GetType(),
blink::WebMediaStreamSource::kTypeAudio); blink::WebMediaStreamSource::kTypeAudio);
ProcessAudioRequest(); ProcessAudioRequest();
} }
...@@ -71,8 +73,8 @@ void ApplyConstraintsProcessor::ProcessRequest( ...@@ -71,8 +73,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_.IsNull()); DCHECK(current_request_);
DCHECK_EQ(current_request_.Track().Source().GetType(), DCHECK_EQ(current_request_->Track().Source().GetType(),
blink::WebMediaStreamSource::kTypeAudio); blink::WebMediaStreamSource::kTypeAudio);
DCHECK(request_completed_cb_); DCHECK(request_completed_cb_);
blink::MediaStreamAudioSource* audio_source = GetCurrentAudioSource(); blink::MediaStreamAudioSource* audio_source = GetCurrentAudioSource();
...@@ -82,7 +84,7 @@ void ApplyConstraintsProcessor::ProcessAudioRequest() { ...@@ -82,7 +84,7 @@ void ApplyConstraintsProcessor::ProcessAudioRequest() {
} }
blink::AudioCaptureSettings settings = blink::AudioCaptureSettings settings =
SelectSettingsAudioCapture(audio_source, current_request_.Constraints()); SelectSettingsAudioCapture(audio_source, current_request_->Constraints());
if (settings.HasValue()) { if (settings.HasValue()) {
ApplyConstraintsSucceeded(); ApplyConstraintsSucceeded();
} else { } else {
...@@ -92,8 +94,8 @@ void ApplyConstraintsProcessor::ProcessAudioRequest() { ...@@ -92,8 +94,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_.IsNull()); DCHECK(current_request_);
DCHECK_EQ(current_request_.Track().Source().GetType(), DCHECK_EQ(current_request_->Track().Source().GetType(),
blink::WebMediaStreamSource::kTypeVideo); blink::WebMediaStreamSource::kTypeVideo);
DCHECK(request_completed_cb_); DCHECK(request_completed_cb_);
video_source_ = GetCurrentVideoSource(); video_source_ = GetCurrentVideoSource();
...@@ -232,15 +234,15 @@ void ApplyConstraintsProcessor::FinalizeVideoRequest() { ...@@ -232,15 +234,15 @@ void ApplyConstraintsProcessor::FinalizeVideoRequest() {
blink::VideoCaptureSettings ApplyConstraintsProcessor::SelectVideoSettings( 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_.IsNull()); DCHECK(current_request_);
DCHECK_EQ(current_request_.Track().Source().GetType(), DCHECK_EQ(current_request_->Track().Source().GetType(),
blink::WebMediaStreamSource::kTypeVideo); blink::WebMediaStreamSource::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;
...@@ -263,22 +265,24 @@ blink::VideoCaptureSettings ApplyConstraintsProcessor::SelectVideoSettings( ...@@ -263,22 +265,24 @@ blink::VideoCaptureSettings ApplyConstraintsProcessor::SelectVideoSettings(
GetCurrentVideoTrack()->GetSettings(settings); GetCurrentVideoTrack()->GetSettings(settings);
return SelectSettingsVideoDeviceCapture( return SelectSettingsVideoDeviceCapture(
video_capabilities, current_request_.Constraints(), settings.width, video_capabilities, current_request_->Constraints(), settings.width,
settings.height, settings.frame_rate); settings.height, settings.frame_rate);
} }
blink::MediaStreamAudioSource* blink::MediaStreamAudioSource*
ApplyConstraintsProcessor::GetCurrentAudioSource() { ApplyConstraintsProcessor::GetCurrentAudioSource() {
DCHECK_CALLED_ON_VALID_THREAD(thread_checker_); DCHECK_CALLED_ON_VALID_THREAD(thread_checker_);
DCHECK(!current_request_.Track().IsNull()); DCHECK(current_request_);
return blink::MediaStreamAudioSource::From(current_request_.Track().Source()); DCHECK(!current_request_->Track().IsNull());
return blink::MediaStreamAudioSource::From(
current_request_->Track().Source());
} }
blink::MediaStreamVideoTrack* blink::MediaStreamVideoTrack*
ApplyConstraintsProcessor::GetCurrentVideoTrack() { ApplyConstraintsProcessor::GetCurrentVideoTrack() {
DCHECK_CALLED_ON_VALID_THREAD(thread_checker_); DCHECK_CALLED_ON_VALID_THREAD(thread_checker_);
blink::MediaStreamVideoTrack* track = blink::MediaStreamVideoTrack* track =
blink::MediaStreamVideoTrack::GetVideoTrack(current_request_.Track()); blink::MediaStreamVideoTrack::GetVideoTrack(current_request_->Track());
DCHECK(track); DCHECK(track);
return track; return track;
} }
...@@ -291,8 +295,8 @@ ApplyConstraintsProcessor::GetCurrentVideoSource() { ...@@ -291,8 +295,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_.IsNull()); DCHECK(current_request_);
DCHECK_EQ(current_request_.Track().Source().GetType(), DCHECK_EQ(current_request_->Track().Source().GetType(),
blink::WebMediaStreamSource::kTypeVideo); blink::WebMediaStreamSource::kTypeVideo);
DCHECK(request_completed_cb_); DCHECK(request_completed_cb_);
if (GetCurrentVideoSource() != video_source_) { if (GetCurrentVideoSource() != video_source_) {
...@@ -306,18 +310,21 @@ bool ApplyConstraintsProcessor::AbortIfVideoRequestStateInvalid() { ...@@ -306,18 +310,21 @@ bool ApplyConstraintsProcessor::AbortIfVideoRequestStateInvalid() {
void ApplyConstraintsProcessor::ApplyConstraintsSucceeded() { void ApplyConstraintsProcessor::ApplyConstraintsSucceeded() {
DCHECK_CALLED_ON_VALID_THREAD(thread_checker_); DCHECK_CALLED_ON_VALID_THREAD(thread_checker_);
task_runner_->PostTask( task_runner_->PostTask(
FROM_HERE, WTF::Bind(&ApplyConstraintsProcessor::CleanupRequest, FROM_HERE,
WTF::Bind(&ApplyConstraintsProcessor::CleanupRequest,
WrapWeakPersistent(this), WrapWeakPersistent(this),
WTF::Bind(&RequestSucceeded, current_request_))); WTF::Bind(&RequestSucceeded,
WrapWeakPersistent(current_request_.Get()))));
} }
void ApplyConstraintsProcessor::ApplyConstraintsFailed( void ApplyConstraintsProcessor::ApplyConstraintsFailed(
const char* failed_constraint_name) { const char* failed_constraint_name) {
DCHECK_CALLED_ON_VALID_THREAD(thread_checker_); DCHECK_CALLED_ON_VALID_THREAD(thread_checker_);
task_runner_->PostTask( task_runner_->PostTask(
FROM_HERE, WTF::Bind(&ApplyConstraintsProcessor::CleanupRequest, FROM_HERE,
WrapWeakPersistent(this), WTF::Bind(
WTF::Bind(&RequestFailed, current_request_, &ApplyConstraintsProcessor::CleanupRequest, WrapWeakPersistent(this),
WTF::Bind(&RequestFailed, WrapWeakPersistent(current_request_.Get()),
String(failed_constraint_name), String(failed_constraint_name),
String("Cannot satisfy constraints")))); String("Cannot satisfy constraints"))));
} }
...@@ -328,17 +335,18 @@ void ApplyConstraintsProcessor::CannotApplyConstraints(const String& message) { ...@@ -328,17 +335,18 @@ void ApplyConstraintsProcessor::CannotApplyConstraints(const String& message) {
FROM_HERE, FROM_HERE,
WTF::Bind( WTF::Bind(
&ApplyConstraintsProcessor::CleanupRequest, WrapWeakPersistent(this), &ApplyConstraintsProcessor::CleanupRequest, WrapWeakPersistent(this),
WTF::Bind(&RequestFailed, current_request_, String(), message))); WTF::Bind(&RequestFailed, WrapWeakPersistent(current_request_.Get()),
String(), message)));
} }
void ApplyConstraintsProcessor::CleanupRequest( void ApplyConstraintsProcessor::CleanupRequest(
base::OnceClosure web_request_callback) { base::OnceClosure web_request_callback) {
DCHECK_CALLED_ON_VALID_THREAD(thread_checker_); DCHECK_CALLED_ON_VALID_THREAD(thread_checker_);
DCHECK(!current_request_.IsNull()); DCHECK(current_request_);
DCHECK(request_completed_cb_); DCHECK(request_completed_cb_);
std::move(request_completed_cb_).Run(); std::move(request_completed_cb_).Run();
std::move(web_request_callback).Run(); std::move(web_request_callback).Run();
current_request_.Reset(); current_request_ = nullptr;
video_source_ = nullptr; video_source_ = nullptr;
} }
......
...@@ -13,7 +13,7 @@ ...@@ -13,7 +13,7 @@
#include "third_party/blink/public/mojom/mediastream/media_devices.mojom-blink.h" #include "third_party/blink/public/mojom/mediastream/media_devices.mojom-blink.h"
#include "third_party/blink/public/web/modules/mediastream/media_stream_constraints_util.h" #include "third_party/blink/public/web/modules/mediastream/media_stream_constraints_util.h"
#include "third_party/blink/public/web/modules/mediastream/media_stream_video_source.h" #include "third_party/blink/public/web/modules/mediastream/media_stream_video_source.h"
#include "third_party/blink/public/web/web_apply_constraints_request.h" #include "third_party/blink/renderer/modules/mediastream/apply_constraints_request.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/wtf/cross_thread_functional.h" #include "third_party/blink/renderer/platform/wtf/cross_thread_functional.h"
#include "third_party/blink/renderer/platform/wtf/vector.h" #include "third_party/blink/renderer/platform/wtf/vector.h"
...@@ -40,10 +40,10 @@ class MODULES_EXPORT ApplyConstraintsProcessor ...@@ -40,10 +40,10 @@ class MODULES_EXPORT ApplyConstraintsProcessor
// it notifies by invoking |callback|. // it notifies by invoking |callback|.
// This method must be called only if there is no request currently being // This method must be called only if there is no request currently being
// processed. // processed.
void ProcessRequest(const blink::WebApplyConstraintsRequest& request, void ProcessRequest(blink::ApplyConstraintsRequest* request,
base::OnceClosure callback); base::OnceClosure callback);
void Trace(Visitor*) {} void Trace(Visitor* visitor) { visitor->Trace(current_request_); }
private: private:
// Helpers for video device-capture requests. // Helpers for video device-capture requests.
...@@ -82,7 +82,7 @@ class MODULES_EXPORT ApplyConstraintsProcessor ...@@ -82,7 +82,7 @@ class MODULES_EXPORT ApplyConstraintsProcessor
// contains the request currently being processed, if any. // contains the request currently being processed, if any.
// |video_source_| and |request_completed_cb_| are the video source and // |video_source_| and |request_completed_cb_| are the video source and
// reply callback for the current request. // reply callback for the current request.
blink::WebApplyConstraintsRequest current_request_; WeakMember<blink::ApplyConstraintsRequest> current_request_;
// TODO(crbug.com/704136): Change to use Member. // TODO(crbug.com/704136): Change to use Member.
blink::MediaStreamVideoSource* video_source_ = nullptr; blink::MediaStreamVideoSource* video_source_ = nullptr;
......
...@@ -52,14 +52,13 @@ void UpdateAPICount(blink::WebUserMediaRequest::MediaType media_type) { ...@@ -52,14 +52,13 @@ void UpdateAPICount(blink::WebUserMediaRequest::MediaType media_type) {
UserMediaClient::Request::Request(std::unique_ptr<UserMediaRequestInfo> request) UserMediaClient::Request::Request(std::unique_ptr<UserMediaRequestInfo> request)
: user_media_request_(std::move(request)) { : user_media_request_(std::move(request)) {
DCHECK(user_media_request_); DCHECK(user_media_request_);
DCHECK(apply_constraints_request_.IsNull()); DCHECK(!apply_constraints_request_);
DCHECK(web_track_to_stop_.IsNull()); DCHECK(web_track_to_stop_.IsNull());
} }
UserMediaClient::Request::Request( UserMediaClient::Request::Request(blink::ApplyConstraintsRequest* request)
const blink::WebApplyConstraintsRequest& request)
: apply_constraints_request_(request) { : apply_constraints_request_(request) {
DCHECK(!apply_constraints_request_.IsNull()); DCHECK(apply_constraints_request_);
DCHECK(!user_media_request_); DCHECK(!user_media_request_);
DCHECK(web_track_to_stop_.IsNull()); DCHECK(web_track_to_stop_.IsNull());
} }
...@@ -69,28 +68,9 @@ UserMediaClient::Request::Request( ...@@ -69,28 +68,9 @@ UserMediaClient::Request::Request(
: web_track_to_stop_(web_track_to_stop) { : web_track_to_stop_(web_track_to_stop) {
DCHECK(!web_track_to_stop_.IsNull()); DCHECK(!web_track_to_stop_.IsNull());
DCHECK(!user_media_request_); DCHECK(!user_media_request_);
DCHECK(apply_constraints_request_.IsNull()); DCHECK(!apply_constraints_request_);
}
UserMediaClient::Request::Request(Request&& other)
: user_media_request_(std::move(other.user_media_request_)),
apply_constraints_request_(other.apply_constraints_request_),
web_track_to_stop_(other.web_track_to_stop_) {
#if DCHECK_IS_ON()
int num_types = 0;
if (IsUserMedia())
num_types++;
if (IsApplyConstraints())
num_types++;
if (IsStopTrack())
num_types++;
DCHECK_EQ(num_types, 1);
#endif
} }
UserMediaClient::Request& UserMediaClient::Request::operator=(Request&& other) =
default;
UserMediaClient::Request::~Request() = default; UserMediaClient::Request::~Request() = default;
std::unique_ptr<UserMediaRequestInfo> std::unique_ptr<UserMediaRequestInfo>
...@@ -188,22 +168,22 @@ void UserMediaClient::RequestUserMedia( ...@@ -188,22 +168,22 @@ void UserMediaClient::RequestUserMedia(
std::make_unique<UserMediaRequestInfo>(request_id, web_request, std::make_unique<UserMediaRequestInfo>(request_id, web_request,
user_gesture); user_gesture);
pending_request_infos_.push_back( pending_request_infos_.push_back(
std::make_unique<Request>(std::move(request_info))); MakeGarbageCollected<Request>(std::move(request_info)));
if (!is_processing_request_) if (!is_processing_request_)
MaybeProcessNextRequestInfo(); MaybeProcessNextRequestInfo();
} }
void UserMediaClient::ApplyConstraints( void UserMediaClient::ApplyConstraints(
const blink::WebApplyConstraintsRequest& web_request) { blink::ApplyConstraintsRequest* web_request) {
DCHECK_CALLED_ON_VALID_THREAD(thread_checker_); DCHECK_CALLED_ON_VALID_THREAD(thread_checker_);
pending_request_infos_.push_back(std::make_unique<Request>(web_request)); pending_request_infos_.push_back(MakeGarbageCollected<Request>(web_request));
if (!is_processing_request_) if (!is_processing_request_)
MaybeProcessNextRequestInfo(); MaybeProcessNextRequestInfo();
} }
void UserMediaClient::StopTrack(const blink::WebMediaStreamTrack& web_track) { void UserMediaClient::StopTrack(const blink::WebMediaStreamTrack& web_track) {
pending_request_infos_.push_back(std::make_unique<Request>(web_track)); pending_request_infos_.push_back(MakeGarbageCollected<Request>(web_track));
if (!is_processing_request_) if (!is_processing_request_)
MaybeProcessNextRequestInfo(); MaybeProcessNextRequestInfo();
} }
...@@ -311,6 +291,7 @@ void UserMediaClient::Trace(Visitor* visitor) { ...@@ -311,6 +291,7 @@ void UserMediaClient::Trace(Visitor* visitor) {
visitor->Trace(frame_); visitor->Trace(frame_);
visitor->Trace(user_media_processor_); visitor->Trace(user_media_processor_);
visitor->Trace(apply_constraints_processor_); visitor->Trace(apply_constraints_processor_);
visitor->Trace(pending_request_infos_);
} }
void UserMediaClient::SetMediaDevicesDispatcherForTesting( void UserMediaClient::SetMediaDevicesDispatcherForTesting(
......
...@@ -12,9 +12,9 @@ ...@@ -12,9 +12,9 @@
#include "base/threading/thread_checker.h" #include "base/threading/thread_checker.h"
#include "third_party/blink/public/common/mediastream/media_devices.h" #include "third_party/blink/public/common/mediastream/media_devices.h"
#include "third_party/blink/public/mojom/mediastream/media_devices.mojom-blink.h" #include "third_party/blink/public/mojom/mediastream/media_devices.mojom-blink.h"
#include "third_party/blink/public/web/web_apply_constraints_request.h"
#include "third_party/blink/public/web/web_user_media_request.h" #include "third_party/blink/public/web/web_user_media_request.h"
#include "third_party/blink/renderer/core/execution_context/context_lifecycle_observer.h" #include "third_party/blink/renderer/core/execution_context/context_lifecycle_observer.h"
#include "third_party/blink/renderer/modules/mediastream/apply_constraints_request.h"
#include "third_party/blink/renderer/modules/mediastream/user_media_processor.h" #include "third_party/blink/renderer/modules/mediastream/user_media_processor.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/wtf/deque.h" #include "third_party/blink/renderer/platform/wtf/deque.h"
...@@ -47,7 +47,7 @@ class MODULES_EXPORT UserMediaClient ...@@ -47,7 +47,7 @@ class MODULES_EXPORT UserMediaClient
void RequestUserMedia(const blink::WebUserMediaRequest& web_request); void RequestUserMedia(const blink::WebUserMediaRequest& web_request);
void CancelUserMediaRequest(const blink::WebUserMediaRequest& web_request); void CancelUserMediaRequest(const blink::WebUserMediaRequest& web_request);
void ApplyConstraints(const blink::WebApplyConstraintsRequest& web_request); void ApplyConstraints(blink::ApplyConstraintsRequest* web_request);
void StopTrack(const blink::WebMediaStreamTrack& web_track); void StopTrack(const blink::WebMediaStreamTrack& web_track);
void ContextDestroyed(); void ContextDestroyed();
...@@ -60,13 +60,11 @@ class MODULES_EXPORT UserMediaClient ...@@ -60,13 +60,11 @@ class MODULES_EXPORT UserMediaClient
media_devices_dispatcher); media_devices_dispatcher);
private: private:
class Request { class Request : public GarbageCollectedFinalized<Request> {
public: public:
explicit Request(std::unique_ptr<UserMediaRequestInfo> request); explicit Request(std::unique_ptr<UserMediaRequestInfo> request);
explicit Request(const blink::WebApplyConstraintsRequest& request); explicit Request(blink::ApplyConstraintsRequest* request);
explicit Request(const blink::WebMediaStreamTrack& request); explicit Request(const blink::WebMediaStreamTrack& request);
Request(Request&& other);
Request& operator=(Request&& other);
~Request(); ~Request();
std::unique_ptr<UserMediaRequestInfo> MoveUserMediaRequest(); std::unique_ptr<UserMediaRequestInfo> MoveUserMediaRequest();
...@@ -74,7 +72,7 @@ class MODULES_EXPORT UserMediaClient ...@@ -74,7 +72,7 @@ class MODULES_EXPORT UserMediaClient
UserMediaRequestInfo* user_media_request() const { UserMediaRequestInfo* user_media_request() const {
return user_media_request_.get(); return user_media_request_.get();
} }
const blink::WebApplyConstraintsRequest& apply_constraints_request() const { blink::ApplyConstraintsRequest* apply_constraints_request() const {
return apply_constraints_request_; return apply_constraints_request_;
} }
const blink::WebMediaStreamTrack& web_track_to_stop() const { const blink::WebMediaStreamTrack& web_track_to_stop() const {
...@@ -82,14 +80,14 @@ class MODULES_EXPORT UserMediaClient ...@@ -82,14 +80,14 @@ class MODULES_EXPORT UserMediaClient
} }
bool IsUserMedia() const { return !!user_media_request_; } bool IsUserMedia() const { return !!user_media_request_; }
bool IsApplyConstraints() const { bool IsApplyConstraints() const { return apply_constraints_request_; }
return !apply_constraints_request_.IsNull();
}
bool IsStopTrack() const { return !web_track_to_stop_.IsNull(); } bool IsStopTrack() const { return !web_track_to_stop_.IsNull(); }
void Trace(Visitor* visitor) { visitor->Trace(apply_constraints_request_); }
private: private:
std::unique_ptr<UserMediaRequestInfo> user_media_request_; std::unique_ptr<UserMediaRequestInfo> user_media_request_;
blink::WebApplyConstraintsRequest apply_constraints_request_; Member<blink::ApplyConstraintsRequest> apply_constraints_request_;
blink::WebMediaStreamTrack web_track_to_stop_; blink::WebMediaStreamTrack web_track_to_stop_;
DISALLOW_COPY_AND_ASSIGN(Request); DISALLOW_COPY_AND_ASSIGN(Request);
...@@ -121,7 +119,7 @@ class MODULES_EXPORT UserMediaClient ...@@ -121,7 +119,7 @@ class MODULES_EXPORT UserMediaClient
// and |pending_request_infos_| is a list of queued requests. // and |pending_request_infos_| is a list of queued requests.
bool is_processing_request_ = false; bool is_processing_request_ = false;
Deque<std::unique_ptr<Request>> pending_request_infos_; HeapDeque<Member<Request>> pending_request_infos_;
THREAD_CHECKER(thread_checker_); THREAD_CHECKER(thread_checker_);
......
...@@ -634,8 +634,8 @@ class UserMediaClientTest : public ::testing::Test { ...@@ -634,8 +634,8 @@ class UserMediaClientTest : public ::testing::Test {
if (frame_rate) if (frame_rate)
factory.basic().frame_rate.SetExact(*frame_rate); factory.basic().frame_rate.SetExact(*frame_rate);
blink::WebApplyConstraintsRequest apply_constraints_request = auto* apply_constraints_request =
blink::WebApplyConstraintsRequest::CreateForTesting( blink::ApplyConstraintsRequest::CreateForTesting(
web_track, factory.CreateWebMediaConstraints()); web_track, factory.CreateWebMediaConstraints());
user_media_client_impl_->ApplyConstraints(apply_constraints_request); user_media_client_impl_->ApplyConstraints(apply_constraints_request);
base::RunLoop().RunUntilIdle(); base::RunLoop().RunUntilIdle();
......
...@@ -81,7 +81,7 @@ inline void UserMediaController::CancelUserMediaRequest( ...@@ -81,7 +81,7 @@ inline void UserMediaController::CancelUserMediaRequest(
inline void UserMediaController::ApplyConstraints( inline void UserMediaController::ApplyConstraints(
ApplyConstraintsRequest* request) { ApplyConstraintsRequest* request) {
Client()->ApplyConstraints(WebApplyConstraintsRequest(request)); Client()->ApplyConstraints(request);
} }
inline void UserMediaController::StopTrack(MediaStreamComponent* track) { inline void UserMediaController::StopTrack(MediaStreamComponent* track) {
......
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