Bug 1384495 - p2: resolve drain promise with empty decoded data only when draining complete. r?jya
MozReview-Commit-ID: 7livLq1K6Ro
--- a/dom/media/platforms/android/RemoteDataDecoder.cpp
+++ b/dom/media/platforms/android/RemoteDataDecoder.cpp
@@ -603,17 +603,18 @@ RemoteDataDecoder::ReturnDecodedData()
{
AssertOnTaskQueue();
MOZ_ASSERT(!mShutdown);
// We only want to clear mDecodedData when we have resolved the promises.
if (!mDecodePromise.IsEmpty()) {
mDecodePromise.Resolve(mDecodedData, __func__);
mDecodedData.Clear();
- } else if (!mDrainPromise.IsEmpty()) {
+ } else if (!mDrainPromise.IsEmpty() &&
+ (!mDecodedData.IsEmpty() || mDrainStatus == DrainStatus::DRAINED)) {
mDrainPromise.Resolve(mDecodedData, __func__);
mDecodedData.Clear();
}
}
void
RemoteDataDecoder::DrainComplete()
{