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..a93e097575f7b153eadf2a430bede2cdb5fa05ec 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(); |
|
haraken
2017/03/17 09:43:51
Would it be better to reject with NotSupportedErro
mcasas
2017/03/17 15:12:47
|constraints| is a dictionary having just one memb
|
| + return promise; |
| + } |
| + |
| + if (!m_imageCapture) { |
| + resolver->reject(DOMException::create( |
| + NotSupportedError, "Track type not currently supported")); |
| + return promise; |
| + } |
| + |
| + m_imageCapture->setMediaTrackConstraints(resolver, constraints.advanced()[0]); |
| + return promise; |
| +} |
| + |
| bool MediaStreamTrack::ended() const { |
| return m_stopped || (m_readyState == MediaStreamSource::ReadyStateEnded); |
| } |