summaryrefslogtreecommitdiff
path: root/chromium/third_party/blink/renderer/modules/mediastream
diff options
context:
space:
mode:
authorAllan Sandfeld Jensen <allan.jensen@qt.io>2019-02-13 16:23:34 +0100
committerAllan Sandfeld Jensen <allan.jensen@qt.io>2019-02-14 10:37:21 +0000
commit38a9a29f4f9436cace7f0e7abf9c586057df8a4e (patch)
treec4e8c458dc595bc0ddb435708fa2229edfd00bd4 /chromium/third_party/blink/renderer/modules/mediastream
parente684a3455bcc29a6e3e66a004e352dea4e1141e7 (diff)
downloadqtwebengine-chromium-38a9a29f4f9436cace7f0e7abf9c586057df8a4e.tar.gz
BASELINE: Update Chromium to 73.0.3683.37
Change-Id: I08c9af2948b645f671e5d933aca1f7a90ea372f2 Reviewed-by: Michael BrĂ¼ning <michael.bruning@qt.io>
Diffstat (limited to 'chromium/third_party/blink/renderer/modules/mediastream')
-rw-r--r--chromium/third_party/blink/renderer/modules/mediastream/BUILD.gn4
-rw-r--r--chromium/third_party/blink/renderer/modules/mediastream/DEPS1
-rw-r--r--chromium/third_party/blink/renderer/modules/mediastream/apply_constraints_request.cc3
-rw-r--r--chromium/third_party/blink/renderer/modules/mediastream/apply_constraints_request.h8
-rw-r--r--chromium/third_party/blink/renderer/modules/mediastream/input_device_info.cc8
-rw-r--r--chromium/third_party/blink/renderer/modules/mediastream/media_device_info.h2
-rw-r--r--chromium/third_party/blink/renderer/modules/mediastream/media_device_info.idl2
-rw-r--r--chromium/third_party/blink/renderer/modules/mediastream/media_devices.cc50
-rw-r--r--chromium/third_party/blink/renderer/modules/mediastream/media_devices.h16
-rw-r--r--chromium/third_party/blink/renderer/modules/mediastream/media_devices.idl2
-rw-r--r--chromium/third_party/blink/renderer/modules/mediastream/media_stream_track.cc9
-rw-r--r--chromium/third_party/blink/renderer/modules/mediastream/media_track_capabilities.idl1
-rw-r--r--chromium/third_party/blink/renderer/modules/mediastream/user_media_request.cc1
-rw-r--r--chromium/third_party/blink/renderer/modules/mediastream/user_media_request.h2
14 files changed, 55 insertions, 54 deletions
diff --git a/chromium/third_party/blink/renderer/modules/mediastream/BUILD.gn b/chromium/third_party/blink/renderer/modules/mediastream/BUILD.gn
index 00f60af5280..418f1981224 100644
--- a/chromium/third_party/blink/renderer/modules/mediastream/BUILD.gn
+++ b/chromium/third_party/blink/renderer/modules/mediastream/BUILD.gn
@@ -41,8 +41,4 @@ blink_modules_sources("mediastream") {
"user_media_request.cc",
"user_media_request.h",
]
-
- deps = [
- "//third_party/blink/public:media_devices_mojo_bindings_blink",
- ]
}
diff --git a/chromium/third_party/blink/renderer/modules/mediastream/DEPS b/chromium/third_party/blink/renderer/modules/mediastream/DEPS
index 7ea86f33883..d7193fff93c 100644
--- a/chromium/third_party/blink/renderer/modules/mediastream/DEPS
+++ b/chromium/third_party/blink/renderer/modules/mediastream/DEPS
@@ -1,4 +1,5 @@
include_rules = [
+ "+media/base",
"+mojo/public/cpp/bindings/binding.h",
"-third_party/blink/renderer/modules",
"+third_party/blink/renderer/modules/event_modules.h",
diff --git a/chromium/third_party/blink/renderer/modules/mediastream/apply_constraints_request.cc b/chromium/third_party/blink/renderer/modules/mediastream/apply_constraints_request.cc
index e141f8a2a2c..65752f51e68 100644
--- a/chromium/third_party/blink/renderer/modules/mediastream/apply_constraints_request.cc
+++ b/chromium/third_party/blink/renderer/modules/mediastream/apply_constraints_request.cc
@@ -14,7 +14,8 @@ ApplyConstraintsRequest* ApplyConstraintsRequest::Create(
const WebMediaStreamTrack& track,
const WebMediaConstraints& constraints,
ScriptPromiseResolver* resolver) {
- return new ApplyConstraintsRequest(track, constraints, resolver);
+ return MakeGarbageCollected<ApplyConstraintsRequest>(track, constraints,
+ resolver);
}
ApplyConstraintsRequest* ApplyConstraintsRequest::CreateForTesting(
diff --git a/chromium/third_party/blink/renderer/modules/mediastream/apply_constraints_request.h b/chromium/third_party/blink/renderer/modules/mediastream/apply_constraints_request.h
index 382ea67c8f8..61b4d961d0c 100644
--- a/chromium/third_party/blink/renderer/modules/mediastream/apply_constraints_request.h
+++ b/chromium/third_party/blink/renderer/modules/mediastream/apply_constraints_request.h
@@ -24,6 +24,10 @@ class MODULES_EXPORT ApplyConstraintsRequest final
static ApplyConstraintsRequest* CreateForTesting(const WebMediaStreamTrack&,
const WebMediaConstraints&);
+ ApplyConstraintsRequest(const WebMediaStreamTrack&,
+ const WebMediaConstraints&,
+ ScriptPromiseResolver*);
+
WebMediaStreamTrack Track() const;
WebMediaConstraints Constraints() const;
@@ -33,10 +37,6 @@ class MODULES_EXPORT ApplyConstraintsRequest final
virtual void Trace(blink::Visitor*);
private:
- ApplyConstraintsRequest(const WebMediaStreamTrack&,
- const WebMediaConstraints&,
- ScriptPromiseResolver*);
-
WebMediaStreamTrack track_;
WebMediaConstraints constraints_;
Member<ScriptPromiseResolver> resolver_;
diff --git a/chromium/third_party/blink/renderer/modules/mediastream/input_device_info.cc b/chromium/third_party/blink/renderer/modules/mediastream/input_device_info.cc
index 7a3fa46572d..a746278a953 100644
--- a/chromium/third_party/blink/renderer/modules/mediastream/input_device_info.cc
+++ b/chromium/third_party/blink/renderer/modules/mediastream/input_device_info.cc
@@ -6,6 +6,7 @@
#include <algorithm>
+#include "media/base/sample_format.h"
#include "third_party/blink/public/platform/web_media_stream_track.h"
#include "third_party/blink/renderer/modules/mediastream/media_track_capabilities.h"
@@ -89,6 +90,13 @@ MediaTrackCapabilities* InputDeviceInfo::getCapabilities() const {
capabilities->setEchoCancellation({true, false});
capabilities->setAutoGainControl({true, false});
capabilities->setNoiseSuppression({true, false});
+ // Sample size.
+ LongRange* sample_size = LongRange::Create();
+ sample_size->setMin(
+ media::SampleFormatToBitsPerChannel(media::kSampleFormatS16));
+ sample_size->setMax(
+ media::SampleFormatToBitsPerChannel(media::kSampleFormatS16));
+ capabilities->setSampleSize(sample_size);
}
if (DeviceType() == MediaDeviceType::MEDIA_VIDEO_INPUT) {
diff --git a/chromium/third_party/blink/renderer/modules/mediastream/media_device_info.h b/chromium/third_party/blink/renderer/modules/mediastream/media_device_info.h
index 737a37b4846..d91fa4524f6 100644
--- a/chromium/third_party/blink/renderer/modules/mediastream/media_device_info.h
+++ b/chromium/third_party/blink/renderer/modules/mediastream/media_device_info.h
@@ -26,7 +26,7 @@
#ifndef THIRD_PARTY_BLINK_RENDERER_MODULES_MEDIASTREAM_MEDIA_DEVICE_INFO_H_
#define THIRD_PARTY_BLINK_RENDERER_MODULES_MEDIASTREAM_MEDIA_DEVICE_INFO_H_
-#include "third_party/blink/public/platform/modules/mediastream/media_devices.mojom-blink.h"
+#include "third_party/blink/public/mojom/mediastream/media_devices.mojom-blink.h"
#include "third_party/blink/renderer/modules/modules_export.h"
#include "third_party/blink/renderer/platform/bindings/script_wrappable.h"
#include "third_party/blink/renderer/platform/heap/heap_allocator.h"
diff --git a/chromium/third_party/blink/renderer/modules/mediastream/media_device_info.idl b/chromium/third_party/blink/renderer/modules/mediastream/media_device_info.idl
index 3ff1e1d84bb..ffd2619f6ab 100644
--- a/chromium/third_party/blink/renderer/modules/mediastream/media_device_info.idl
+++ b/chromium/third_party/blink/renderer/modules/mediastream/media_device_info.idl
@@ -36,5 +36,5 @@ interface MediaDeviceInfo {
readonly attribute MediaDeviceKind kind;
readonly attribute DOMString label;
readonly attribute DOMString groupId;
- serializer = {attribute};
+ [CallWith=ScriptState, ImplementedAs=toJSONForBinding] object toJSON();
};
diff --git a/chromium/third_party/blink/renderer/modules/mediastream/media_devices.cc b/chromium/third_party/blink/renderer/modules/mediastream/media_devices.cc
index 7d099e57634..223370b5618 100644
--- a/chromium/third_party/blink/renderer/modules/mediastream/media_devices.cc
+++ b/chromium/third_party/blink/renderer/modules/mediastream/media_devices.cc
@@ -33,9 +33,11 @@ namespace {
class PromiseResolverCallbacks final : public UserMediaRequest::Callbacks {
public:
static PromiseResolverCallbacks* Create(ScriptPromiseResolver* resolver) {
- return new PromiseResolverCallbacks(resolver);
+ return MakeGarbageCollected<PromiseResolverCallbacks>(resolver);
}
+ explicit PromiseResolverCallbacks(ScriptPromiseResolver* resolver)
+ : resolver_(resolver) {}
~PromiseResolverCallbacks() override = default;
void OnSuccess(ScriptWrappable* callback_this_value,
@@ -53,30 +55,17 @@ class PromiseResolverCallbacks final : public UserMediaRequest::Callbacks {
}
private:
- explicit PromiseResolverCallbacks(ScriptPromiseResolver* resolver)
- : resolver_(resolver) {}
-
Member<ScriptPromiseResolver> resolver_;
};
} // namespace
MediaDevices* MediaDevices::Create(ExecutionContext* context) {
- MediaDevices* media_devices = MakeGarbageCollected<MediaDevices>(context);
- media_devices->PauseIfNeeded();
- return media_devices;
+ return MakeGarbageCollected<MediaDevices>(context);
}
MediaDevices::MediaDevices(ExecutionContext* context)
- : PausableObject(context),
- stopped_(false),
- dispatch_scheduled_event_runner_(
- context ? AsyncMethodRunner<MediaDevices>::Create(
- this,
- &MediaDevices::DispatchScheduledEvent,
- context->GetTaskRunner(TaskType::kMediaElementEvent))
- : nullptr),
- binding_(this) {}
+ : ContextLifecycleObserver(context), stopped_(false), binding_(this) {}
MediaDevices::~MediaDevices() = default;
@@ -172,7 +161,7 @@ const AtomicString& MediaDevices::InterfaceName() const {
}
ExecutionContext* MediaDevices::GetExecutionContext() const {
- return PausableObject::GetExecutionContext();
+ return ContextLifecycleObserver::GetExecutionContext();
}
void MediaDevices::RemoveAllEventListeners() {
@@ -213,16 +202,6 @@ void MediaDevices::ContextDestroyed(ExecutionContext*) {
dispatcher_host_.reset();
}
-void MediaDevices::Pause() {
- DCHECK(dispatch_scheduled_event_runner_);
- dispatch_scheduled_event_runner_->Pause();
-}
-
-void MediaDevices::Unpause() {
- DCHECK(dispatch_scheduled_event_runner_);
- dispatch_scheduled_event_runner_->Unpause();
-}
-
void MediaDevices::OnDevicesChanged(
MediaDeviceType type,
Vector<mojom::blink::MediaDeviceInfoPtr> device_infos) {
@@ -238,11 +217,19 @@ void MediaDevices::OnDevicesChanged(
void MediaDevices::ScheduleDispatchEvent(Event* event) {
scheduled_events_.push_back(event);
- DCHECK(dispatch_scheduled_event_runner_);
- dispatch_scheduled_event_runner_->RunAsync();
+ if (dispatch_scheduled_events_task_handle_.IsActive())
+ return;
+
+ auto* context = GetExecutionContext();
+ DCHECK(context);
+ dispatch_scheduled_events_task_handle_ = PostCancellableTask(
+ *context->GetTaskRunner(TaskType::kMediaElementEvent), FROM_HERE,
+ WTF::Bind(&MediaDevices::DispatchScheduledEvents, WrapPersistent(this)));
}
-void MediaDevices::DispatchScheduledEvent() {
+void MediaDevices::DispatchScheduledEvents() {
+ if (stopped_)
+ return;
HeapVector<Member<Event>> events;
events.swap(scheduled_events_);
@@ -368,11 +355,10 @@ void MediaDevices::SetDispatcherHostForTesting(
}
void MediaDevices::Trace(blink::Visitor* visitor) {
- visitor->Trace(dispatch_scheduled_event_runner_);
visitor->Trace(scheduled_events_);
visitor->Trace(requests_);
EventTargetWithInlineData::Trace(visitor);
- PausableObject::Trace(visitor);
+ ContextLifecycleObserver::Trace(visitor);
}
} // namespace blink
diff --git a/chromium/third_party/blink/renderer/modules/mediastream/media_devices.h b/chromium/third_party/blink/renderer/modules/mediastream/media_devices.h
index 563cf4a174e..59dfeaea594 100644
--- a/chromium/third_party/blink/renderer/modules/mediastream/media_devices.h
+++ b/chromium/third_party/blink/renderer/modules/mediastream/media_devices.h
@@ -7,16 +7,16 @@
#include "base/callback.h"
#include "mojo/public/cpp/bindings/binding.h"
-#include "third_party/blink/public/platform/modules/mediastream/media_devices.mojom-blink.h"
+#include "third_party/blink/public/mojom/mediastream/media_devices.mojom-blink.h"
#include "third_party/blink/renderer/bindings/core/v8/active_script_wrappable.h"
+#include "third_party/blink/renderer/core/dom/context_lifecycle_observer.h"
#include "third_party/blink/renderer/core/dom/events/event_target.h"
-#include "third_party/blink/renderer/core/dom/pausable_object.h"
#include "third_party/blink/renderer/modules/event_target_modules.h"
#include "third_party/blink/renderer/modules/mediastream/media_device_info.h"
#include "third_party/blink/renderer/modules/mediastream/user_media_request.h"
#include "third_party/blink/renderer/modules/modules_export.h"
-#include "third_party/blink/renderer/platform/async_method_runner.h"
#include "third_party/blink/renderer/platform/heap/heap_allocator.h"
+#include "third_party/blink/renderer/platform/scheduler/public/post_cancellable_task.h"
namespace blink {
@@ -30,7 +30,7 @@ class ScriptState;
class MODULES_EXPORT MediaDevices final
: public EventTargetWithInlineData,
public ActiveScriptWrappable<MediaDevices>,
- public PausableObject,
+ public ContextLifecycleObserver,
public mojom::blink::MediaDevicesListener {
USING_GARBAGE_COLLECTED_MIXIN(MediaDevices);
DEFINE_WRAPPERTYPEINFO();
@@ -64,10 +64,8 @@ class MODULES_EXPORT MediaDevices final
// ScriptWrappable
bool HasPendingActivity() const override;
- // PausableObject overrides.
+ // ContextLifecycleObserver overrides.
void ContextDestroyed(ExecutionContext*) override;
- void Pause() override;
- void Unpause() override;
// mojom::blink::MediaDevicesListener implementation.
void OnDevicesChanged(MediaDeviceType,
@@ -106,7 +104,7 @@ class MODULES_EXPORT MediaDevices final
private:
FRIEND_TEST_ALL_PREFIXES(MediaDevicesTest, ObserveDeviceChangeEvent);
void ScheduleDispatchEvent(Event*);
- void DispatchScheduledEvent();
+ void DispatchScheduledEvents();
void StartObserving();
void StopObserving();
void Dispose();
@@ -120,7 +118,7 @@ class MODULES_EXPORT MediaDevices final
bool stopped_;
// Async runner may be null when there is no valid execution context.
// No async work may be posted in this scenario.
- Member<AsyncMethodRunner<MediaDevices>> dispatch_scheduled_event_runner_;
+ TaskHandle dispatch_scheduled_events_task_handle_;
HeapVector<Member<Event>> scheduled_events_;
mojom::blink::MediaDevicesDispatcherHostPtr dispatcher_host_;
mojo::Binding<mojom::blink::MediaDevicesListener> binding_;
diff --git a/chromium/third_party/blink/renderer/modules/mediastream/media_devices.idl b/chromium/third_party/blink/renderer/modules/mediastream/media_devices.idl
index 8e803c593b4..71fbfd5112f 100644
--- a/chromium/third_party/blink/renderer/modules/mediastream/media_devices.idl
+++ b/chromium/third_party/blink/renderer/modules/mediastream/media_devices.idl
@@ -11,7 +11,7 @@
] interface MediaDevices : EventTarget {
[RuntimeEnabled=OnDeviceChange] attribute EventHandler ondevicechange;
[
- CallWith = ScriptState, MeasureAs = MediaDevicesEnumerateDevices
+ CallWith = ScriptState, HighEntropy, MeasureAs = MediaDevicesEnumerateDevices
] Promise<sequence<MediaDeviceInfo>>
enumerateDevices();
MediaTrackSupportedConstraints getSupportedConstraints();
diff --git a/chromium/third_party/blink/renderer/modules/mediastream/media_stream_track.cc b/chromium/third_party/blink/renderer/modules/mediastream/media_stream_track.cc
index 7406b72ea54..9cc99c54838 100644
--- a/chromium/third_party/blink/renderer/modules/mediastream/media_stream_track.cc
+++ b/chromium/third_party/blink/renderer/modules/mediastream/media_stream_track.cc
@@ -87,6 +87,8 @@ bool ConstraintSetHasNonImageCapture(
constraint_set->hasChannelCount() || constraint_set->hasDepthFar() ||
constraint_set->hasDepthNear() || constraint_set->hasDeviceId() ||
constraint_set->hasEchoCancellation() ||
+ constraint_set->hasNoiseSuppression() ||
+ constraint_set->hasAutoGainControl() ||
constraint_set->hasFacingMode() || constraint_set->hasResizeMode() ||
constraint_set->hasFocalLengthX() ||
constraint_set->hasFocalLengthY() || constraint_set->hasFrameRate() ||
@@ -348,6 +350,13 @@ MediaTrackCapabilities* MediaStreamTrack::getCapabilities() const {
for (String value : platform_capabilities.echo_cancellation_type)
echo_cancellation_type.push_back(value);
capabilities->setEchoCancellationType(echo_cancellation_type);
+ // Sample size.
+ if (platform_capabilities.sample_size.size() == 2) {
+ LongRange* sample_size = LongRange::Create();
+ sample_size->setMin(platform_capabilities.sample_size[0]);
+ sample_size->setMax(platform_capabilities.sample_size[1]);
+ capabilities->setSampleSize(sample_size);
+ }
}
if (component_->Source()->GetType() == MediaStreamSource::kTypeVideo) {
diff --git a/chromium/third_party/blink/renderer/modules/mediastream/media_track_capabilities.idl b/chromium/third_party/blink/renderer/modules/mediastream/media_track_capabilities.idl
index 8fa90be86d3..deb815f57ab 100644
--- a/chromium/third_party/blink/renderer/modules/mediastream/media_track_capabilities.idl
+++ b/chromium/third_party/blink/renderer/modules/mediastream/media_track_capabilities.idl
@@ -14,6 +14,7 @@ dictionary MediaTrackCapabilities {
[OriginTrialEnabled=ExperimentalHardwareEchoCancellation] sequence<DOMString> echoCancellationType;
sequence<boolean> autoGainControl;
sequence<boolean> noiseSuppression;
+ LongRange sampleSize;
DOMString deviceId;
DOMString groupId;
// W3C Image Capture API
diff --git a/chromium/third_party/blink/renderer/modules/mediastream/user_media_request.cc b/chromium/third_party/blink/renderer/modules/mediastream/user_media_request.cc
index 8a2ca93c251..367f3589c6d 100644
--- a/chromium/third_party/blink/renderer/modules/mediastream/user_media_request.cc
+++ b/chromium/third_party/blink/renderer/modules/mediastream/user_media_request.cc
@@ -596,6 +596,7 @@ void UserMediaRequest::Fail(WebUserMediaRequest::Error name,
case WebUserMediaRequest::Error::kInvalidState:
case WebUserMediaRequest::Error::kFailedDueToShutdown:
case WebUserMediaRequest::Error::kKillSwitchOn:
+ case WebUserMediaRequest::Error::kSystemPermissionDenied:
exception_code = DOMExceptionCode::kNotAllowedError;
break;
case WebUserMediaRequest::Error::kDevicesNotFound:
diff --git a/chromium/third_party/blink/renderer/modules/mediastream/user_media_request.h b/chromium/third_party/blink/renderer/modules/mediastream/user_media_request.h
index 5afb383f6dc..6424f4b5d78 100644
--- a/chromium/third_party/blink/renderer/modules/mediastream/user_media_request.h
+++ b/chromium/third_party/blink/renderer/modules/mediastream/user_media_request.h
@@ -35,7 +35,7 @@
#include "third_party/blink/public/web/web_user_media_request.h"
#include "third_party/blink/renderer/bindings/modules/v8/v8_navigator_user_media_error_callback.h"
#include "third_party/blink/renderer/bindings/modules/v8/v8_navigator_user_media_success_callback.h"
-#include "third_party/blink/renderer/core/dom/pausable_object.h"
+#include "third_party/blink/renderer/core/dom/context_lifecycle_observer.h"
#include "third_party/blink/renderer/modules/modules_export.h"
#include "third_party/blink/renderer/platform/mediastream/media_stream_source.h"
#include "third_party/blink/renderer/platform/wtf/forward.h"