Closed Bug 1088481 Opened 10 years ago Closed 10 years ago

ASSERTION: Progress timer should've been stopped (mse/webaudio)

Categories

(Core :: Audio/Video, defect)

defect
Not set
normal

Tracking

()

RESOLVED FIXED
mozilla36

People

(Reporter: ajones, Assigned: jwwang)

References

(Blocks 1 open bug)

Details

Attachments

(1 file, 1 obsolete file)

Steps to reproduce:

* Run Firefox (with MSE enabled)
* Watch a video (check stats for nerds Dash: Yes)
* Exit

Expected results:

Nothing special

Actual results:

[Child 23404] ###!!! ASSERTION: Progress timer should've been stopped.: '!mProgressTimer', file /home/ajones/src/mozilla-central/content/media/MediaDecoder.cpp, line 503
Assignee: nobody → jwwang
Since MediaShutdownManager will call MediaDecoder::Shutdown() without checking network status as the media element does, I will remove the assertion and stop the progress timer if necessary.
Attachment #8510832 - Flags: review?(cpearce)
Attachment #8510832 - Flags: review?(cpearce)
Since MediaShutdownManager will call MediaDecoder::Shutdown() without checking network status as the media element does, I will remove the assertion and stop the progress timer if necessary. Since HTMLMediaElement::~HTMLMediaElement() could come after MediaShutdownManager::Shutdown, HTMLMediaElement::ShutdownDecoder() should not call mDecoder->StopProgress either.
Attachment #8510832 - Attachment is obsolete: true
Comment on attachment 8511881 [details] [diff] [review]
1088481_fix_MediaDecoder_Progress_time-v2.patch

Review of attachment 8511881 [details] [diff] [review]:
-----------------------------------------------------------------

::: dom/html/HTMLMediaElement.cpp
@@ -609,5 @@
> -  // TODO: This should be handled by ChangeNetworkState() so we have only one
> -  // place to call StopProgress().
> -  if (mNetworkState == nsIDOMHTMLMediaElement::NETWORK_LOADING) {
> -    mDecoder->StopProgress();
> -  }

HTMLMediaElement::ShutdownDecoder could happen after MediaDecoder::Shutdown which has stopped the progress timer. So we remove the code and let MediaDecoder::Shutdown handle it.

::: dom/media/MediaDecoder.cpp
@@ +498,5 @@
>    }
>  
>    ChangeState(PLAY_STATE_SHUTDOWN);
>  
> +  if (mProgressTimer) {

The progress timer should be associated with the network state. However, MediaDecoder::Shutdown could be called by MediaShutdownManager without checking network status as the media element. So we stop it anyway if necessary.
Attachment #8511881 - Flags: review?(cpearce)
Attachment #8511881 - Flags: review?(cpearce) → review+
https://hg.mozilla.org/mozilla-central/rev/b51eff4a2ec0
Status: NEW → RESOLVED
Closed: 10 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla36
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: