diff options
author | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2019-02-13 16:23:34 +0100 |
---|---|---|
committer | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2019-02-14 10:37:21 +0000 |
commit | 38a9a29f4f9436cace7f0e7abf9c586057df8a4e (patch) | |
tree | c4e8c458dc595bc0ddb435708fa2229edfd00bd4 /chromium/third_party/blink/renderer/modules/mediastream | |
parent | e684a3455bcc29a6e3e66a004e352dea4e1141e7 (diff) | |
download | qtwebengine-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')
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" |