| Index: third_party/WebKit/Source/modules/mediarecorder/MediaRecorder.cpp
|
| diff --git a/third_party/WebKit/Source/modules/mediarecorder/MediaRecorder.cpp b/third_party/WebKit/Source/modules/mediarecorder/MediaRecorder.cpp
|
| index 9713746b3413c61ba99626773af403ac7249b3eb..98974732a7f778d09cc99b766fe2d16a27afbc4f 100644
|
| --- a/third_party/WebKit/Source/modules/mediarecorder/MediaRecorder.cpp
|
| +++ b/third_party/WebKit/Source/modules/mediarecorder/MediaRecorder.cpp
|
| @@ -36,6 +36,33 @@ String stateToString(MediaRecorder::State state)
|
|
|
| } // namespace
|
|
|
| +class MediaRecorder::TrackEventListener final : public EventListener {
|
| +public:
|
| + static PassRefPtrWillBeRawPtr<TrackEventListener> create(blink::WebMediaRecorderHandlerClient* client)
|
| + {
|
| + return adoptRefWillBeNoop(new TrackEventListener(client));
|
| + }
|
| +
|
| + bool operator==(const EventListener& other) const override
|
| + {
|
| + return this == &other;
|
| + }
|
| +
|
| +private:
|
| + TrackEventListener(blink::WebMediaRecorderHandlerClient* client)
|
| + : EventListener(JSEventListenerType)
|
| + , m_client(client)
|
| + {
|
| + }
|
| +
|
| + void handleEvent(ExecutionContext* executionContext, Event*) override
|
| + {
|
| + m_client->onError("MediaStream got a Track added/removed");
|
| + }
|
| +
|
| + blink::WebMediaRecorderHandlerClient* const m_client;
|
| +};
|
| +
|
| MediaRecorder* MediaRecorder::create(ExecutionContext* context, MediaStream* stream, ExceptionState& exceptionState)
|
| {
|
| MediaRecorder* recorder = new MediaRecorder(context, stream, MediaRecorderOptions(), exceptionState);
|
| @@ -76,6 +103,11 @@ MediaRecorder::MediaRecorder(ExecutionContext* context, MediaStream* stream, con
|
| exceptionState.throwDOMException(NotSupportedError, "Failed to initialize native MediaRecorder, the type provided " + m_mimeType + "is unsupported." );
|
| return;
|
| }
|
| +
|
| + m_addOrRemoveTrackListener = TrackEventListener::create(this);
|
| + stream->addEventListener(EventTypeNames::addtrack, m_addOrRemoveTrackListener, false);
|
| + stream->addEventListener(EventTypeNames::removetrack, m_addOrRemoveTrackListener, false);
|
| +
|
| m_stopped = false;
|
| }
|
|
|
|
|