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

Unified Diff: content/renderer/media/android/webmediaplayer_android.cc

Issue 2640573002: Remove WebMediaPlayerDelegate null checks (Closed)
Patch Set: Undo accidental delete of WMPI::delegate_ Created 3 years, 11 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 | « content/renderer/media/android/webmediaplayer_android.h ('k') | content/renderer/media/webmediaplayer_ms.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 8bbb6b301450f0ffe4c0940d75c5f0d82a79182b..6aa406bb913558cd261491bb5cd9e14295917ff9 100644
--- a/content/renderer/media/android/webmediaplayer_android.cc
+++ b/content/renderer/media/android/webmediaplayer_android.cc
@@ -133,7 +133,7 @@ WebMediaPlayerAndroid::WebMediaPlayerAndroid(
blink::WebFrame* frame,
blink::WebMediaPlayerClient* client,
blink::WebMediaPlayerEncryptedMediaClient* encrypted_client,
- base::WeakPtr<media::WebMediaPlayerDelegate> delegate,
+ media::WebMediaPlayerDelegate* delegate,
RendererMediaPlayerManager* player_manager,
scoped_refptr<StreamTextureFactory> factory,
int frame_id,
@@ -179,13 +179,12 @@ WebMediaPlayerAndroid::WebMediaPlayerAndroid(
volume_multiplier_(1.0),
weak_factory_(this) {
DCHECK(player_manager_);
+ DCHECK(delegate_);
DCHECK(main_thread_checker_.CalledOnValidThread());
- if (delegate_) {
- delegate_id_ = delegate_->AddObserver(this);
- delegate_->SetIdle(delegate_id_, true);
- }
+ delegate_id_ = delegate_->AddObserver(this);
+ delegate_->SetIdle(delegate_id_, true);
player_id_ = player_manager_->RegisterMediaPlayer(this);
@@ -217,10 +216,8 @@ WebMediaPlayerAndroid::~WebMediaPlayerAndroid() {
current_frame_ = NULL;
}
- if (delegate_) {
- delegate_->PlayerGone(delegate_id_);
- delegate_->RemoveObserver(delegate_id_);
- }
+ delegate_->PlayerGone(delegate_id_);
+ delegate_->RemoveObserver(delegate_id_);
}
void WebMediaPlayerAndroid::load(LoadType load_type,
@@ -297,7 +294,7 @@ void WebMediaPlayerAndroid::play() {
bool can_video_play_in_background =
base::CommandLine::ForCurrentProcess()->HasSwitch(
switches::kDisableMediaSuspend) ||
- (IsBackgroundVideoCandidate() && delegate_ &&
+ (IsBackgroundVideoCandidate() &&
delegate_->IsBackgroundVideoPlaybackUnlocked());
if (!can_video_play_in_background) {
is_play_pending_ = true;
@@ -830,7 +827,7 @@ void WebMediaPlayerAndroid::OnVideoSizeChanged(int width, int height) {
// If we're paused after we receive metadata for the first time, tell the
// delegate we can now be safely suspended due to inactivity if a subsequent
// play event does not occur.
- if (paused() && delegate_) {
+ if (paused()) {
delegate_->DidPause(delegate_id_);
delegate_->SetIdle(delegate_id_, true);
}
@@ -958,8 +955,7 @@ void WebMediaPlayerAndroid::OnPlayerReleased() {
if (is_playing_)
OnMediaPlayerPause();
- if (delegate_)
- delegate_->PlayerGone(delegate_id_);
+ delegate_->PlayerGone(delegate_id_);
}
void WebMediaPlayerAndroid::SuspendAndReleaseResources() {
@@ -971,8 +967,7 @@ void WebMediaPlayerAndroid::SuspendAndReleaseResources() {
case WebMediaPlayer::NetworkStateLoaded:
Pause(false);
client_->playbackStateChanged();
- if (delegate_)
- delegate_->PlayerGone(delegate_id_);
+ delegate_->PlayerGone(delegate_id_);
break;
// If a WebMediaPlayer instance has entered into one of these states,
// the internal network state in HTMLMediaElement could be set to empty.
@@ -1202,30 +1197,28 @@ void WebMediaPlayerAndroid::UpdatePlayingState(bool is_playing) {
else
interpolator_.StopInterpolating();
- if (delegate_) {
- if (is_playing) {
- // We must specify either video or audio to the delegate, but neither may
- // be known at this point -- there are no video only containers, so only
- // send audio if we know for sure its audio. The browser side player will
- // fill in the correct value later for media sessions.
- if (isRemote()) {
- delegate_->PlayerGone(delegate_id_);
- } else {
- delegate_->DidPlay(delegate_id_, hasVideo(), !hasVideo(),
- media::DurationToMediaContentType(duration_));
- }
- delegate_->SetIdle(delegate_id_, false);
+ if (is_playing) {
+ // We must specify either video or audio to the delegate, but neither may
+ // be known at this point -- there are no video only containers, so only
+ // send audio if we know for sure its audio. The browser side player will
+ // fill in the correct value later for media sessions.
+ if (isRemote()) {
+ delegate_->PlayerGone(delegate_id_);
} else {
- // Even if OnPlaybackComplete() has not been called yet, Blink may have
- // already fired the ended event based on current time relative to
- // duration -- so we need to check both possibilities here.
- if (playback_completed_ || currentTime() >= duration()) {
- delegate_->PlayerGone(delegate_id_);
- } else {
- delegate_->DidPause(delegate_id_);
- }
- delegate_->SetIdle(delegate_id_, true);
+ delegate_->DidPlay(delegate_id_, hasVideo(), !hasVideo(),
+ media::DurationToMediaContentType(duration_));
}
+ delegate_->SetIdle(delegate_id_, false);
+ } else {
+ // Even if OnPlaybackComplete() has not been called yet, Blink may have
+ // already fired the ended event based on current time relative to
+ // duration -- so we need to check both possibilities here.
+ if (playback_completed_ || currentTime() >= duration()) {
+ delegate_->PlayerGone(delegate_id_);
+ } else {
+ delegate_->DidPause(delegate_id_);
+ }
+ delegate_->SetIdle(delegate_id_, true);
}
}
« no previous file with comments | « content/renderer/media/android/webmediaplayer_android.h ('k') | content/renderer/media/webmediaplayer_ms.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698