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) {
} // namespace
UserMediaClient::Request::Request(UserMediaRequestInfo* request)
: user_media_request_(request) {
UserMediaClient::Request::Request(UserMediaRequest* user_media_request)
: user_media_request_(user_media_request) {
DCHECK(user_media_request_);
DCHECK(!apply_constraints_request_);
DCHECK(web_track_to_stop_.IsNull());
......@@ -71,7 +71,7 @@ UserMediaClient::Request::Request(
UserMediaClient::Request::~Request() = default;
UserMediaRequestInfo* UserMediaClient::Request::MoveUserMediaRequest() {
UserMediaRequest* UserMediaClient::Request::MoveUserMediaRequest() {
auto user_media_request = user_media_request_;
user_media_request_ = nullptr;
return user_media_request;
......@@ -166,9 +166,9 @@ void UserMediaClient::RequestUserMedia(UserMediaRequest* web_request) {
->GetFrame()
->Frame::HasTransientUserActivation();
}
auto* request_info = MakeGarbageCollected<UserMediaRequestInfo>(
request_id, web_request, has_transient_user_activation);
pending_request_infos_.push_back(MakeGarbageCollected<Request>(request_info));
web_request->set_request_id(request_id);
web_request->set_has_transient_user_activation(has_transient_user_activation);
pending_request_infos_.push_back(MakeGarbageCollected<Request>(web_request));
if (!is_processing_request_)
MaybeProcessNextRequestInfo();
}
......@@ -240,10 +240,11 @@ void UserMediaClient::CancelUserMediaRequest(UserMediaRequest* web_request) {
DCHECK_CALLED_ON_VALID_THREAD(thread_checker_);
{
// TODO(guidou): Remove this conditional logging. https://crbug.com/764293
UserMediaRequestInfo* request = user_media_processor_->CurrentRequest();
if (request && request->web_request == web_request) {
blink::WebRtcLogMessage(base::StringPrintf(
"UMCI::CancelUserMediaRequest. request_id=%d", request->request_id));
UserMediaRequest* request = user_media_processor_->CurrentRequest();
if (request == web_request) {
blink::WebRtcLogMessage(
base::StringPrintf("UMCI::CancelUserMediaRequest. request_id=%d",
request->request_id()));
}
}
......@@ -253,8 +254,7 @@ void UserMediaClient::CancelUserMediaRequest(UserMediaRequest* web_request) {
} else {
for (auto it = pending_request_infos_.begin();
it != pending_request_infos_.end(); ++it) {
if ((*it)->IsUserMedia() &&
(*it)->user_media_request()->web_request == web_request) {
if ((*it)->IsUserMedia() && (*it)->user_media_request() == web_request) {
pending_request_infos_.erase(it);
did_remove_request = true;
break;
......
......@@ -64,16 +64,14 @@ class MODULES_EXPORT UserMediaClient
private:
class Request final : public GarbageCollected<Request> {
public:
explicit Request(UserMediaRequestInfo* request);
explicit Request(UserMediaRequest* request);
explicit Request(blink::ApplyConstraintsRequest* request);
explicit Request(const blink::WebMediaStreamTrack& request);
~Request();
UserMediaRequestInfo* MoveUserMediaRequest();
UserMediaRequest* MoveUserMediaRequest();
UserMediaRequestInfo* user_media_request() const {
return user_media_request_;
}
UserMediaRequest* user_media_request() const { return user_media_request_; }
blink::ApplyConstraintsRequest* apply_constraints_request() const {
return apply_constraints_request_;
}
......@@ -91,7 +89,7 @@ class MODULES_EXPORT UserMediaClient
}
private:
Member<UserMediaRequestInfo> user_media_request_;
Member<UserMediaRequest> user_media_request_;
Member<blink::ApplyConstraintsRequest> apply_constraints_request_;
blink::WebMediaStreamTrack web_track_to_stop_;
......
......@@ -38,19 +38,6 @@ class WebMediaStreamDeviceObserver;
class WebMediaStreamSource;
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.
// It also keeps tracks of all sources used by streams created with
// getUserMedia().
......@@ -73,14 +60,13 @@ class MODULES_EXPORT UserMediaProcessor
// during the execution of a task on the main thread unless ProcessRequest or
// DeleteWebRequest are invoked.
// TODO(guidou): Remove this method. https://crbug.com/764293
UserMediaRequestInfo* CurrentRequest();
UserMediaRequest* CurrentRequest();
// Starts processing |request| in order to create a new MediaStream. When
// processing of |request| is complete, it notifies by invoking |callback|.
// This method must be called only if there is no request currently being
// processed.
void ProcessRequest(UserMediaRequestInfo* request,
base::OnceClosure callback);
void ProcessRequest(UserMediaRequest* request, base::OnceClosure callback);
// If |web_request| is the request currently being processed, stops processing
// the request and returns true. Otherwise, performs no action and returns
......
......@@ -139,6 +139,16 @@ class MODULES_EXPORT UserMediaRequest final
// ExecutionContextLifecycleObserver
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;
private:
......@@ -146,6 +156,8 @@ class MODULES_EXPORT UserMediaRequest final
MediaConstraints audio_;
MediaConstraints video_;
bool should_disable_hardware_noise_suppression_;
bool has_transient_user_activation_ = false;
int request_id_ = -1;
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