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

User same-thread mechanisms in apply_constraints_processor.cc

... since both callee and caller sites run on the same
thread (assured by THREAD_CHECKER).

This was spotted by jbroman@ in [1]

[1] https://crrev.com/c/1768778/5/third_party/blink/renderer/modules/mediastream/apply_constraints_processor.cc#b23

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

Change-Id: Ifd9f06a490a469926acb778917ba23aaf11f9927
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1768787
Commit-Queue: Antonio Gomes <tonikitoo@igalia.com>
Reviewed-by: default avatarJeremy Roman <jbroman@chromium.org>
Auto-Submit: Antonio Gomes <tonikitoo@igalia.com>
Cr-Commit-Position: refs/heads/master@{#690056}
parent 4e8f02d0
...@@ -17,19 +17,9 @@ ...@@ -17,19 +17,9 @@
#include "third_party/blink/renderer/modules/mediastream/media_stream_constraints_util_audio.h" #include "third_party/blink/renderer/modules/mediastream/media_stream_constraints_util_audio.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_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/scheduler/public/post_cross_thread_task.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"
namespace WTF {
template <>
struct CrossThreadCopier<blink::WebApplyConstraintsRequest>
: public CrossThreadCopierPassThrough<blink::WebApplyConstraintsRequest> {
STATIC_ONLY(CrossThreadCopier);
};
} // namespace WTF
namespace blink { namespace blink {
namespace { namespace {
...@@ -314,39 +304,35 @@ bool ApplyConstraintsProcessor::AbortIfVideoRequestStateInvalid() { ...@@ -314,39 +304,35 @@ bool ApplyConstraintsProcessor::AbortIfVideoRequestStateInvalid() {
} }
void ApplyConstraintsProcessor::ApplyConstraintsSucceeded() { void ApplyConstraintsProcessor::ApplyConstraintsSucceeded() {
PostCrossThreadTask( DCHECK_CALLED_ON_VALID_THREAD(thread_checker_);
*task_runner_.get(), FROM_HERE, task_runner_->PostTask(
CrossThreadBindOnce( FROM_HERE, WTF::Bind(&ApplyConstraintsProcessor::CleanupRequest,
&ApplyConstraintsProcessor::CleanupRequest, weak_factory_.GetWeakPtr(),
weak_factory_.GetWeakPtr(), WTF::Bind(&RequestSucceeded, current_request_)));
CrossThreadBindOnce(&RequestSucceeded, current_request_)));
} }
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_);
PostCrossThreadTask( task_runner_->PostTask(
*task_runner_.get(), FROM_HERE, FROM_HERE, WTF::Bind(&ApplyConstraintsProcessor::CleanupRequest,
CrossThreadBindOnce( weak_factory_.GetWeakPtr(),
&ApplyConstraintsProcessor::CleanupRequest, WTF::Bind(&RequestFailed, current_request_,
weak_factory_.GetWeakPtr(), String(failed_constraint_name),
CrossThreadBindOnce(&RequestFailed, current_request_, String("Cannot satisfy constraints"))));
String(failed_constraint_name),
String("Cannot satisfy constraints"))));
} }
void ApplyConstraintsProcessor::CannotApplyConstraints(const String& message) { void ApplyConstraintsProcessor::CannotApplyConstraints(const String& message) {
DCHECK_CALLED_ON_VALID_THREAD(thread_checker_); DCHECK_CALLED_ON_VALID_THREAD(thread_checker_);
PostCrossThreadTask( task_runner_->PostTask(
*task_runner_.get(), FROM_HERE, FROM_HERE, WTF::Bind(&ApplyConstraintsProcessor::CleanupRequest,
CrossThreadBindOnce(&ApplyConstraintsProcessor::CleanupRequest, weak_factory_.GetWeakPtr(),
weak_factory_.GetWeakPtr(), WTF::Bind(&RequestFailed, current_request_, String(),
CrossThreadBindOnce(&RequestFailed, current_request_, message)));
String(), String(message))));
} }
void ApplyConstraintsProcessor::CleanupRequest( void ApplyConstraintsProcessor::CleanupRequest(
CrossThreadOnceClosure 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_.IsNull());
DCHECK(request_completed_cb_); DCHECK(request_completed_cb_);
......
...@@ -75,7 +75,7 @@ class MODULES_EXPORT ApplyConstraintsProcessor ...@@ -75,7 +75,7 @@ class MODULES_EXPORT ApplyConstraintsProcessor
void ApplyConstraintsSucceeded(); void ApplyConstraintsSucceeded();
void ApplyConstraintsFailed(const char* failed_constraint_name); void ApplyConstraintsFailed(const char* failed_constraint_name);
void CannotApplyConstraints(const String& message); void CannotApplyConstraints(const String& message);
void CleanupRequest(CrossThreadOnceClosure web_request_callback); void CleanupRequest(base::OnceClosure web_request_callback);
const blink::mojom::blink::MediaDevicesDispatcherHostPtr& const blink::mojom::blink::MediaDevicesDispatcherHostPtr&
GetMediaDevicesDispatcher(); GetMediaDevicesDispatcher();
......
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