Chromium Code Reviews| Index: third_party/WebKit/Source/modules/mediastream/MediaStreamTrack.cpp |
| diff --git a/third_party/WebKit/Source/modules/mediastream/MediaStreamTrack.cpp b/third_party/WebKit/Source/modules/mediastream/MediaStreamTrack.cpp |
| index 9c077a357f0561216582bd91aee69e73f1510c8f..d5295a09cae40e22d8ca04c45568015a53536683 100644 |
| --- a/third_party/WebKit/Source/modules/mediastream/MediaStreamTrack.cpp |
| +++ b/third_party/WebKit/Source/modules/mediastream/MediaStreamTrack.cpp |
| @@ -27,6 +27,8 @@ |
| #include <memory> |
| #include "bindings/core/v8/ExceptionMessages.h" |
| +#include "bindings/core/v8/ScriptPromiseResolver.h" |
| +#include "core/dom/DOMException.h" |
| #include "core/dom/Document.h" |
| #include "core/dom/ExceptionCode.h" |
| #include "core/dom/ExecutionContext.h" |
| @@ -36,6 +38,7 @@ |
| #include "modules/mediastream/MediaConstraintsImpl.h" |
| #include "modules/mediastream/MediaStream.h" |
| #include "modules/mediastream/MediaTrackCapabilities.h" |
| +#include "modules/mediastream/MediaTrackConstraints.h" |
| #include "modules/mediastream/MediaTrackSettings.h" |
| #include "modules/mediastream/UserMediaController.h" |
| #include "platform/mediastream/MediaStreamCenter.h" |
| @@ -273,6 +276,30 @@ void MediaStreamTrack::getSettings(MediaTrackSettings& settings) { |
| } |
| } |
| +ScriptPromise MediaStreamTrack::applyConstraints( |
| + ScriptState* scriptState, |
| + const MediaTrackConstraints& constraints) { |
| + ScriptPromiseResolver* resolver = ScriptPromiseResolver::create(scriptState); |
| + ScriptPromise promise = resolver->promise(); |
| + |
| + // |constraints| is an optional argument, which is strange. |
| + // TODO(mcasas): remove this provision if |constraints| is not optional: |
| + // https://github.com/w3c/mediacapture-main/issues/438 |
| + if (!constraints.hasAdvanced()) { |
| + resolver->resolve(); |
| + return promise; |
| + } |
| + |
| + if (!m_imageCapture) { |
| + resolver->reject( |
| + DOMException::create(NotFoundError, "Image Capture not found")); |
|
Guido Urdaneta
2017/03/17 00:30:27
Change the error message to something like "Track
mcasas
2017/03/17 00:49:22
Done.
|
| + return promise; |
| + } |
| + |
| + m_imageCapture->setMediaTrackConstraints(resolver, constraints.advanced()[0]); |
| + return promise; |
| +} |
| + |
| bool MediaStreamTrack::ended() const { |
| return m_stopped || (m_readyState == MediaStreamSource::ReadyStateEnded); |
| } |