Commit 26673ad1 authored by Antonio Gomes's avatar Antonio Gomes Committed by Commit Bot

Merge UserMediaRequestInfo into UserMediaRequest

The former wraps the later with two additional bits:

- request_id
- is_processing_user_gesture

This CL adds accessor methods to both bits in UserMediaRequest,
and uses it directly instead of the UserMediaRequestInfo.

BUG=704136
R=guidou@chromium.org

Change-Id: Iee9cef6b20293a71fb8b35ba655642355b1841fb
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2075639Reviewed-by: default avatarGuido Urdaneta <guidou@chromium.org>
Commit-Queue: Antonio Gomes <tonikitoo@igalia.com>
Cr-Commit-Position: refs/heads/master@{#745046}
parent 5c1714c1
...@@ -47,8 +47,8 @@ void UpdateAPICount(UserMediaRequest::MediaType media_type) { ...@@ -47,8 +47,8 @@ void UpdateAPICount(UserMediaRequest::MediaType media_type) {
} // namespace } // namespace
UserMediaClient::Request::Request(UserMediaRequestInfo* request) UserMediaClient::Request::Request(UserMediaRequest* user_media_request)
: user_media_request_(request) { : user_media_request_(user_media_request) {
DCHECK(user_media_request_); DCHECK(user_media_request_);
DCHECK(!apply_constraints_request_); DCHECK(!apply_constraints_request_);
DCHECK(web_track_to_stop_.IsNull()); DCHECK(web_track_to_stop_.IsNull());
...@@ -71,7 +71,7 @@ UserMediaClient::Request::Request( ...@@ -71,7 +71,7 @@ UserMediaClient::Request::Request(
UserMediaClient::Request::~Request() = default; UserMediaClient::Request::~Request() = default;
UserMediaRequestInfo* UserMediaClient::Request::MoveUserMediaRequest() { UserMediaRequest* UserMediaClient::Request::MoveUserMediaRequest() {
auto user_media_request = user_media_request_; auto user_media_request = user_media_request_;
user_media_request_ = nullptr; user_media_request_ = nullptr;
return user_media_request; return user_media_request;
...@@ -166,9 +166,9 @@ void UserMediaClient::RequestUserMedia(UserMediaRequest* web_request) { ...@@ -166,9 +166,9 @@ void UserMediaClient::RequestUserMedia(UserMediaRequest* web_request) {
->GetFrame() ->GetFrame()
->Frame::HasTransientUserActivation(); ->Frame::HasTransientUserActivation();
} }
auto* request_info = MakeGarbageCollected<UserMediaRequestInfo>( web_request->set_request_id(request_id);
request_id, web_request, has_transient_user_activation); web_request->set_has_transient_user_activation(has_transient_user_activation);
pending_request_infos_.push_back(MakeGarbageCollected<Request>(request_info)); pending_request_infos_.push_back(MakeGarbageCollected<Request>(web_request));
if (!is_processing_request_) if (!is_processing_request_)
MaybeProcessNextRequestInfo(); MaybeProcessNextRequestInfo();
} }
...@@ -240,10 +240,11 @@ void UserMediaClient::CancelUserMediaRequest(UserMediaRequest* web_request) { ...@@ -240,10 +240,11 @@ void UserMediaClient::CancelUserMediaRequest(UserMediaRequest* web_request) {
DCHECK_CALLED_ON_VALID_THREAD(thread_checker_); DCHECK_CALLED_ON_VALID_THREAD(thread_checker_);
{ {
// TODO(guidou): Remove this conditional logging. https://crbug.com/764293 // TODO(guidou): Remove this conditional logging. https://crbug.com/764293
UserMediaRequestInfo* request = user_media_processor_->CurrentRequest(); UserMediaRequest* request = user_media_processor_->CurrentRequest();
if (request && request->web_request == web_request) { if (request == web_request) {
blink::WebRtcLogMessage(base::StringPrintf( blink::WebRtcLogMessage(
"UMCI::CancelUserMediaRequest. request_id=%d", request->request_id)); base::StringPrintf("UMCI::CancelUserMediaRequest. request_id=%d",
request->request_id()));
} }
} }
...@@ -253,8 +254,7 @@ void UserMediaClient::CancelUserMediaRequest(UserMediaRequest* web_request) { ...@@ -253,8 +254,7 @@ void UserMediaClient::CancelUserMediaRequest(UserMediaRequest* web_request) {
} else { } else {
for (auto it = pending_request_infos_.begin(); for (auto it = pending_request_infos_.begin();
it != pending_request_infos_.end(); ++it) { it != pending_request_infos_.end(); ++it) {
if ((*it)->IsUserMedia() && if ((*it)->IsUserMedia() && (*it)->user_media_request() == web_request) {
(*it)->user_media_request()->web_request == web_request) {
pending_request_infos_.erase(it); pending_request_infos_.erase(it);
did_remove_request = true; did_remove_request = true;
break; break;
......
...@@ -64,16 +64,14 @@ class MODULES_EXPORT UserMediaClient ...@@ -64,16 +64,14 @@ class MODULES_EXPORT UserMediaClient
private: private:
class Request final : public GarbageCollected<Request> { class Request final : public GarbageCollected<Request> {
public: public:
explicit Request(UserMediaRequestInfo* request); explicit Request(UserMediaRequest* request);
explicit Request(blink::ApplyConstraintsRequest* request); explicit Request(blink::ApplyConstraintsRequest* request);
explicit Request(const blink::WebMediaStreamTrack& request); explicit Request(const blink::WebMediaStreamTrack& request);
~Request(); ~Request();
UserMediaRequestInfo* MoveUserMediaRequest(); UserMediaRequest* MoveUserMediaRequest();
UserMediaRequestInfo* user_media_request() const { UserMediaRequest* user_media_request() const { return user_media_request_; }
return user_media_request_;
}
blink::ApplyConstraintsRequest* apply_constraints_request() const { blink::ApplyConstraintsRequest* apply_constraints_request() const {
return apply_constraints_request_; return apply_constraints_request_;
} }
...@@ -91,7 +89,7 @@ class MODULES_EXPORT UserMediaClient ...@@ -91,7 +89,7 @@ class MODULES_EXPORT UserMediaClient
} }
private: private:
Member<UserMediaRequestInfo> user_media_request_; Member<UserMediaRequest> user_media_request_;
Member<blink::ApplyConstraintsRequest> apply_constraints_request_; Member<blink::ApplyConstraintsRequest> apply_constraints_request_;
blink::WebMediaStreamTrack web_track_to_stop_; blink::WebMediaStreamTrack web_track_to_stop_;
......
...@@ -38,19 +38,6 @@ class WebMediaStreamDeviceObserver; ...@@ -38,19 +38,6 @@ class WebMediaStreamDeviceObserver;
class WebMediaStreamSource; class WebMediaStreamSource;
class WebString; class WebString;
// TODO(guidou): Add |request_id| and |is_processing_user_gesture| to
// blink::WebUserMediaRequest and remove this struct.
struct UserMediaRequestInfo : public GarbageCollected<UserMediaRequestInfo> {
UserMediaRequestInfo(int request_id,
UserMediaRequest* web_request,
bool is_processing_user_gesture);
void Trace(Visitor* visitor) { visitor->Trace(web_request); }
const int request_id;
Member<UserMediaRequest> web_request;
const bool is_processing_user_gesture;
};
// UserMediaProcessor is responsible for processing getUserMedia() requests. // UserMediaProcessor is responsible for processing getUserMedia() requests.
// It also keeps tracks of all sources used by streams created with // It also keeps tracks of all sources used by streams created with
// getUserMedia(). // getUserMedia().
...@@ -73,14 +60,13 @@ class MODULES_EXPORT UserMediaProcessor ...@@ -73,14 +60,13 @@ class MODULES_EXPORT UserMediaProcessor
// during the execution of a task on the main thread unless ProcessRequest or // during the execution of a task on the main thread unless ProcessRequest or
// DeleteWebRequest are invoked. // DeleteWebRequest are invoked.
// TODO(guidou): Remove this method. https://crbug.com/764293 // TODO(guidou): Remove this method. https://crbug.com/764293
UserMediaRequestInfo* CurrentRequest(); UserMediaRequest* CurrentRequest();
// Starts processing |request| in order to create a new MediaStream. When // Starts processing |request| in order to create a new MediaStream. When
// processing of |request| is complete, it notifies by invoking |callback|. // processing of |request| is complete, 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(UserMediaRequestInfo* request, void ProcessRequest(UserMediaRequest* request, base::OnceClosure callback);
base::OnceClosure callback);
// If |web_request| is the request currently being processed, stops processing // If |web_request| is the request currently being processed, stops processing
// the request and returns true. Otherwise, performs no action and returns // the request and returns true. Otherwise, performs no action and returns
......
...@@ -139,6 +139,16 @@ class MODULES_EXPORT UserMediaRequest final ...@@ -139,6 +139,16 @@ class MODULES_EXPORT UserMediaRequest final
// ExecutionContextLifecycleObserver // ExecutionContextLifecycleObserver
void ContextDestroyed() override; void ContextDestroyed() override;
void set_request_id(int id) { request_id_ = id; }
int request_id() { return request_id_; }
void set_has_transient_user_activation(bool value) {
has_transient_user_activation_ = value;
}
bool has_transient_user_activation() const {
return has_transient_user_activation_;
}
void Trace(Visitor*) override; void Trace(Visitor*) override;
private: private:
...@@ -146,6 +156,8 @@ class MODULES_EXPORT UserMediaRequest final ...@@ -146,6 +156,8 @@ class MODULES_EXPORT UserMediaRequest final
MediaConstraints audio_; MediaConstraints audio_;
MediaConstraints video_; MediaConstraints video_;
bool should_disable_hardware_noise_suppression_; bool should_disable_hardware_noise_suppression_;
bool has_transient_user_activation_ = false;
int request_id_ = -1;
Member<UserMediaController> controller_; Member<UserMediaController> controller_;
......
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