Bug 1363915 - Add a runnable to fire arbitrary named events for the MediaRecorder.
MozReview-Commit-ID: BAzxqQQMCZz
--- a/dom/media/MediaRecorder.cpp
+++ b/dom/media/MediaRecorder.cpp
@@ -225,16 +225,42 @@ class MediaRecorder::Session: public nsI
}
return NS_OK;
}
private:
RefPtr<Session> mSession;
};
+ // Fire a named event, run in main thread task.
+ class DispatchEventRunnable : public Runnable
+ {
+ public:
+ DispatchEventRunnable(Session* aSession, const nsAString & aEventName)
+ : mSession(aSession)
+ , mEventName(aEventName)
+ { }
+
+ NS_IMETHOD Run() override
+ {
+ LOG(LogLevel::Debug, ("Session.DispatchEventRunnable s=(%p) e=(%s)",
+ mSession.get(), mEventName));
+ MOZ_ASSERT(NS_IsMainThread());
+
+ NS_ENSURE_TRUE(mSession->mRecorder, NS_OK);
+ mSession->mRecorder->DispatchSimpleEvent(mEventName);
+
+ return NS_OK;
+ }
+
+ private:
+ RefPtr<Session> mSession;
+ nsString mEventName;
+ };
+
// Fire start event and set mimeType, run in main thread task.
class DispatchStartEventRunnable : public Runnable
{
public:
DispatchStartEventRunnable(Session* aSession, const nsAString & aEventName)
: mSession(aSession)
, mEventName(aEventName)
{ }