Index: content/renderer/media/android/webmediaplayer_android.cc |
diff --git a/content/renderer/media/android/webmediaplayer_android.cc b/content/renderer/media/android/webmediaplayer_android.cc |
index 35e898e9bac8dba0ea903ec4571ad4eec8ade2cc..4bb016233a36016c2ab746b12df489db162da957 100644 |
--- a/content/renderer/media/android/webmediaplayer_android.cc |
+++ b/content/renderer/media/android/webmediaplayer_android.cc |
@@ -735,6 +735,10 @@ void WebMediaPlayerAndroid::OnMediaMetadataChanged( |
} |
} |
+ // UpdateReadyState(WebMediaPlayer::ReadyStateHaveMetadata) will trigger a |
+ // call to duration(), which checks |has_valid_metadata_|. so |
+ // |has_valid_metadata_| has to be updated before calling UpdateReadyState(). |
+ has_valid_metadata_ = success; |
if (ready_state_ != WebMediaPlayer::ReadyStateHaveEnoughData) { |
UpdateReadyState(WebMediaPlayer::ReadyStateHaveMetadata); |
UpdateReadyState(WebMediaPlayer::ReadyStateHaveEnoughData); |
@@ -745,8 +749,6 @@ void WebMediaPlayerAndroid::OnMediaMetadataChanged( |
if (success) |
OnVideoSizeChanged(width, height); |
- has_valid_metadata_ = success; |
- |
if (need_to_signal_duration_changed) |
client_->durationChanged(); |
} |