Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "content/renderer/media/android/webmediaplayer_android.h" | 5 #include "content/renderer/media/android/webmediaplayer_android.h" |
| 6 | 6 |
| 7 #include "base/bind.h" | 7 #include "base/bind.h" |
| 8 #include "base/command_line.h" | 8 #include "base/command_line.h" |
| 9 #include "base/files/file_path.h" | 9 #include "base/files/file_path.h" |
| 10 #include "base/logging.h" | 10 #include "base/logging.h" |
| (...skipping 261 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 272 url_ = url; | 272 url_ = url; |
| 273 GURL first_party_url = frame_->document().firstPartyForCookies(); | 273 GURL first_party_url = frame_->document().firstPartyForCookies(); |
| 274 proxy_->Initialize(player_id_, url, source_type_, first_party_url); | 274 proxy_->Initialize(player_id_, url, source_type_, first_party_url); |
| 275 if (manager_->IsInFullscreen(frame_)) | 275 if (manager_->IsInFullscreen(frame_)) |
| 276 proxy_->EnterFullscreen(player_id_); | 276 proxy_->EnterFullscreen(player_id_); |
| 277 | 277 |
| 278 UpdateNetworkState(WebMediaPlayer::NetworkStateLoading); | 278 UpdateNetworkState(WebMediaPlayer::NetworkStateLoading); |
| 279 UpdateReadyState(WebMediaPlayer::ReadyStateHaveNothing); | 279 UpdateReadyState(WebMediaPlayer::ReadyStateHaveNothing); |
| 280 } | 280 } |
| 281 | 281 |
| 282 void WebMediaPlayerAndroid::DidLoadMediaInfo( | 282 void WebMediaPlayerAndroid::DidLoadMediaInfo( |
|
scherkus (not reviewing)
2013/09/13 16:04:47
considering this is a callback, are we sure HTMLMe
Jinsuk Kim
2013/09/16 02:20:18
Thanks for catching it. Changed to make sure it ha
| |
| 283 MediaInfoLoader::Status status) { | 283 MediaInfoLoader::Status status) { |
| 284 DCHECK(!media_source_delegate_); | 284 DCHECK(!media_source_delegate_); |
| 285 if (status == MediaInfoLoader::kFailed) { | 285 if (status == MediaInfoLoader::kFailed) { |
| 286 info_loader_.reset(); | 286 info_loader_.reset(); |
| 287 UpdateNetworkState(WebMediaPlayer::NetworkStateNetworkError); | 287 UpdateNetworkState(WebMediaPlayer::NetworkStateNetworkError); |
| 288 return; | 288 return; |
| 289 } | 289 } |
| 290 | 290 |
| 291 has_media_info_ = true; | 291 has_media_info_ = true; |
| 292 if (has_media_metadata_ && | 292 if (has_media_metadata_ && |
| 293 ready_state_ != WebMediaPlayer::ReadyStateHaveEnoughData) { | 293 ready_state_ != WebMediaPlayer::ReadyStateHaveEnoughData) { |
| 294 UpdateReadyState(WebMediaPlayer::ReadyStateHaveMetadata); | 294 UpdateReadyState(WebMediaPlayer::ReadyStateHaveMetadata); |
| 295 UpdateReadyState(WebMediaPlayer::ReadyStateHaveEnoughData); | 295 UpdateReadyState(WebMediaPlayer::ReadyStateHaveEnoughData); |
| 296 } | 296 } |
| 297 // Android doesn't start fetching resources until an implementation-defined | |
| 298 // event (e.g. playback request) occurs. Sets to the network state to IDLE. | |
| 299 UpdateNetworkState(WebMediaPlayer::NetworkStateIdle); | |
|
qinmin
2013/09/03 14:22:46
this is an optional step in HTML5 spec, do we real
Jinsuk Kim
2013/09/04 01:32:03
Though optional, I see benefit in having this - it
qinmin
2013/09/04 14:10:12
can you run all the layout test with content shell
Jinsuk Kim
2013/09/13 05:50:06
Ran the tests and confirmed there's no regression.
| |
| 297 } | 300 } |
| 298 | 301 |
| 299 void WebMediaPlayerAndroid::play() { | 302 void WebMediaPlayerAndroid::play() { |
| 300 #if defined(GOOGLE_TV) | 303 #if defined(GOOGLE_TV) |
| 301 if (hasVideo() && needs_external_surface_ && | 304 if (hasVideo() && needs_external_surface_ && |
| 302 !manager_->IsInFullscreen(frame_)) { | 305 !manager_->IsInFullscreen(frame_)) { |
| 303 DCHECK(!needs_establish_peer_); | 306 DCHECK(!needs_establish_peer_); |
| 304 proxy_->RequestExternalSurface(player_id_, last_computed_rect_); | 307 proxy_->RequestExternalSurface(player_id_, last_computed_rect_); |
| 305 } | 308 } |
| 306 if (audio_renderer_ && paused()) | 309 if (audio_renderer_ && paused()) |
| 307 audio_renderer_->Play(); | 310 audio_renderer_->Play(); |
| 308 #endif | 311 #endif |
| 309 if (hasVideo() && needs_establish_peer_) | 312 if (hasVideo() && needs_establish_peer_) |
| 310 EstablishSurfaceTexturePeer(); | 313 EstablishSurfaceTexturePeer(); |
| 311 | 314 |
| 312 if (paused()) | 315 if (paused()) |
| 313 proxy_->Start(player_id_); | 316 proxy_->Start(player_id_); |
| 314 UpdatePlayingState(true); | 317 UpdatePlayingState(true); |
| 318 UpdateNetworkState(WebMediaPlayer::NetworkStateLoading); | |
| 315 } | 319 } |
| 316 | 320 |
| 317 void WebMediaPlayerAndroid::pause() { | 321 void WebMediaPlayerAndroid::pause() { |
| 318 #if defined(GOOGLE_TV) | 322 #if defined(GOOGLE_TV) |
| 319 if (audio_renderer_ && !paused()) | 323 if (audio_renderer_ && !paused()) |
| 320 audio_renderer_->Pause(); | 324 audio_renderer_->Pause(); |
| 321 #endif | 325 #endif |
| 322 proxy_->Pause(player_id_); | 326 proxy_->Pause(player_id_); |
| 323 UpdatePlayingState(false); | 327 UpdatePlayingState(false); |
| 324 } | 328 } |
| (...skipping 853 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1178 | 1182 |
| 1179 void WebMediaPlayerAndroid::exitFullscreen() { | 1183 void WebMediaPlayerAndroid::exitFullscreen() { |
| 1180 proxy_->ExitFullscreen(player_id_); | 1184 proxy_->ExitFullscreen(player_id_); |
| 1181 } | 1185 } |
| 1182 | 1186 |
| 1183 bool WebMediaPlayerAndroid::canEnterFullscreen() const { | 1187 bool WebMediaPlayerAndroid::canEnterFullscreen() const { |
| 1184 return manager_->CanEnterFullscreen(frame_); | 1188 return manager_->CanEnterFullscreen(frame_); |
| 1185 } | 1189 } |
| 1186 | 1190 |
| 1187 } // namespace content | 1191 } // namespace content |
| OLD | NEW |