Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(382)

Unified Diff: webkit/media/webmediaplayer_impl.cc

Issue 15927003: Fix MediaPlayerDelegate error handling so it passes the webkitmediasource-errors.html LayoutTest. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase Created 7 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « webkit/media/android/webmediaplayer_android.cc ('k') | webkit/media/webmediaplayer_util.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: webkit/media/webmediaplayer_impl.cc
diff --git a/webkit/media/webmediaplayer_impl.cc b/webkit/media/webmediaplayer_impl.cc
index 481c0da03d7a72870943fe580492eda647a363b4..d72c766687e3ad518b5e2a664023cbf95e3bce9c 100644
--- a/webkit/media/webmediaplayer_impl.cc
+++ b/webkit/media/webmediaplayer_impl.cc
@@ -873,6 +873,7 @@ void WebMediaPlayerImpl::OnPipelineEnded() {
void WebMediaPlayerImpl::OnPipelineError(PipelineStatus error) {
DCHECK(main_loop_->BelongsToCurrentThread());
+ DCHECK_NE(error, media::PIPELINE_OK);
if (ready_state_ == WebMediaPlayer::ReadyStateHaveNothing) {
// Any error that occurs before reaching ReadyStateHaveMetadata should
@@ -882,49 +883,10 @@ void WebMediaPlayerImpl::OnPipelineError(PipelineStatus error) {
return;
}
- switch (error) {
- case media::PIPELINE_OK:
- NOTREACHED() << "PIPELINE_OK isn't an error!";
- break;
-
- case media::PIPELINE_ERROR_NETWORK:
- case media::PIPELINE_ERROR_READ:
- SetNetworkState(WebMediaPlayer::NetworkStateNetworkError);
- break;
-
- // TODO(vrk): Because OnPipelineInitialize() directly reports the
- // NetworkStateFormatError instead of calling OnPipelineError(), I believe
- // this block can be deleted. Should look into it! (crbug.com/126070)
- case media::PIPELINE_ERROR_INITIALIZATION_FAILED:
- case media::PIPELINE_ERROR_COULD_NOT_RENDER:
- case media::PIPELINE_ERROR_URL_NOT_FOUND:
- case media::DEMUXER_ERROR_COULD_NOT_OPEN:
- case media::DEMUXER_ERROR_COULD_NOT_PARSE:
- case media::DEMUXER_ERROR_NO_SUPPORTED_STREAMS:
- case media::DECODER_ERROR_NOT_SUPPORTED:
- SetNetworkState(WebMediaPlayer::NetworkStateFormatError);
- break;
-
- case media::PIPELINE_ERROR_DECODE:
- case media::PIPELINE_ERROR_ABORT:
- case media::PIPELINE_ERROR_OPERATION_PENDING:
- case media::PIPELINE_ERROR_INVALID_STATE:
- SetNetworkState(WebMediaPlayer::NetworkStateDecodeError);
- break;
-
- case media::PIPELINE_ERROR_DECRYPT:
- // Decrypt error.
- EmeUMAHistogramCounts(current_key_system_.utf8(), "DecryptError", 1);
-
- // TODO(xhwang): Change to use NetworkStateDecryptError once it's added in
- // Webkit (see http://crbug.com/124486).
- SetNetworkState(WebMediaPlayer::NetworkStateDecodeError);
- break;
+ SetNetworkState(PipelineErrorToNetworkState(error));
- case media::PIPELINE_STATUS_MAX:
- NOTREACHED() << "PIPELINE_STATUS_MAX isn't a real error!";
- break;
- }
+ if (error == media::PIPELINE_ERROR_DECRYPT)
+ EmeUMAHistogramCounts(current_key_system_.utf8(), "DecryptError", 1);
// Repaint to trigger UI update.
Repaint();
« no previous file with comments | « webkit/media/android/webmediaplayer_android.cc ('k') | webkit/media/webmediaplayer_util.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698