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 0777b00274a9d9189e86bdec4b1e94808a7666ee..b2f97de287fcb9e02036f11b130073584768f844 100644 |
| --- a/third_party/WebKit/Source/modules/mediastream/MediaStreamTrack.cpp |
| +++ b/third_party/WebKit/Source/modules/mediastream/MediaStreamTrack.cpp |
| @@ -25,21 +25,23 @@ |
| #include "modules/mediastream/MediaStreamTrack.h" |
| +#include <memory> |
| #include "bindings/core/v8/ExceptionMessages.h" |
| #include "core/dom/Document.h" |
| #include "core/dom/ExceptionCode.h" |
| #include "core/dom/ExecutionContext.h" |
| #include "core/events/Event.h" |
| #include "core/frame/Deprecation.h" |
| +#include "modules/imagecapture/ImageCapture.h" |
| #include "modules/mediastream/MediaConstraintsImpl.h" |
| #include "modules/mediastream/MediaStream.h" |
| +#include "modules/mediastream/MediaTrackCapabilities.h" |
| #include "modules/mediastream/MediaTrackSettings.h" |
| #include "modules/mediastream/UserMediaController.h" |
| #include "platform/mediastream/MediaStreamCenter.h" |
| #include "platform/mediastream/MediaStreamComponent.h" |
| #include "public/platform/WebMediaStreamTrack.h" |
| #include "wtf/Assertions.h" |
| -#include <memory> |
| namespace blink { |
| @@ -66,6 +68,13 @@ MediaStreamTrack::MediaStreamTrack(ExecutionContext* context, |
| // The source's constraints aren't yet initialized at creation time. |
| m_constraints() { |
| m_component->source()->addObserver(this); |
| + |
| + DCHECK(!m_imageCapture); |
|
Reilly Grant (use Gerrit)
2017/03/14 21:38:57
It seems odd to do this check in a constructor.
mcasas
2017/03/14 22:28:02
Done.
|
| + if (m_component->source() && |
| + m_component->source()->type() == MediaStreamSource::TypeVideo) { |
| + NonThrowableExceptionState exceptionState; |
|
haraken
2017/03/14 19:56:37
How is it guaranteed that the following create doe
mcasas
2017/03/14 22:28:02
The only reason ImageCapture::create() throws is i
|
| + m_imageCapture = ImageCapture::create(context, this, exceptionState); |
| + } |
| } |
| MediaStreamTrack::~MediaStreamTrack() {} |
| @@ -212,6 +221,11 @@ void MediaStreamTrack::setConstraints(const WebMediaConstraints& constraints) { |
| m_constraints = constraints; |
| } |
| +void MediaStreamTrack::getCapabilities(MediaTrackCapabilities& capabilities) { |
| + if (m_imageCapture) |
| + capabilities = m_imageCapture->getMediaTrackCapabilities(); |
| +} |
| + |
| void MediaStreamTrack::getSettings(MediaTrackSettings& settings) { |
| WebMediaStreamTrack::Settings platformSettings; |
| m_component->getSettings(platformSettings); |
| @@ -344,6 +358,7 @@ ExecutionContext* MediaStreamTrack::getExecutionContext() const { |
| DEFINE_TRACE(MediaStreamTrack) { |
| visitor->trace(m_registeredMediaStreams); |
| visitor->trace(m_component); |
| + visitor->trace(m_imageCapture); |
| EventTargetWithInlineData::trace(visitor); |
| ContextLifecycleObserver::trace(visitor); |
| } |