Bug 1213517 - Make applyConstraints() and getSettings() do nothing after stop and shutdown.
MozReview-Commit-ID: Ez2Wmsoy617
--- a/dom/media/MediaManager.cpp
+++ b/dom/media/MediaManager.cpp
@@ -1127,30 +1127,32 @@ public:
{
return mPeerIdentity;
}
already_AddRefed<PledgeVoid>
ApplyConstraints(nsPIDOMWindowInner* aWindow,
const MediaTrackConstraints& aConstraints) override
{
- if (sInShutdown) {
+ if (sInShutdown || !mListener) {
+ // Track has been stopped, or we are in shutdown. In either case
+ // there's no observable outcome, so pretend we succeeded.
RefPtr<PledgeVoid> p = new PledgeVoid();
- p->Reject(new MediaStreamError(aWindow,
- NS_LITERAL_STRING("AbortError"),
- NS_LITERAL_STRING("In shutdown")));
+ p->Resolve(false);
return p.forget();
}
return mListener->ApplyConstraintsToTrack(aWindow, mTrackID, aConstraints);
}
void
GetSettings(dom::MediaTrackSettings& aOutSettings) override
{
- mListener->GetSettings(aOutSettings);
+ if (mListener) {
+ mListener->GetSettings(aOutSettings);
+ }
}
void Stop() override
{
if (mListener) {
mListener->StopTrack(mTrackID);
mListener = nullptr;
}