| Index: content/browser/media/media_web_contents_observer.cc | 
| diff --git a/content/browser/media/media_web_contents_observer.cc b/content/browser/media/media_web_contents_observer.cc | 
| index 14251a7c6f5daf223744b61bbe41cf6c2c27e9ae..fd3a9c06e63730e877ad81cc5d6d301507364142 100644 | 
| --- a/content/browser/media/media_web_contents_observer.cc | 
| +++ b/content/browser/media/media_web_contents_observer.cc | 
| @@ -35,6 +35,9 @@ MediaWebContentsObserver::~MediaWebContentsObserver() {} | 
|  | 
| void MediaWebContentsObserver::WebContentsDestroyed() { | 
| g_audible_metrics.Get().UpdateAudibleWebContentsState(web_contents(), false); | 
| +#if defined(OS_ANDROID) | 
| +  view_weak_factory_.reset(); | 
| +#endif | 
| } | 
|  | 
| void MediaWebContentsObserver::RenderFrameDeleted( | 
| @@ -193,8 +196,12 @@ void MediaWebContentsObserver::CreateVideoPowerSaveBlocker() { | 
| PowerSaveBlocker::kPowerSaveBlockPreventDisplaySleep, | 
| PowerSaveBlocker::kReasonVideoPlayback, "Playing video"); | 
| #if defined(OS_ANDROID) | 
| -  static_cast<PowerSaveBlockerImpl*>(video_power_save_blocker_.get()) | 
| -      ->InitDisplaySleepBlocker(web_contents()); | 
| +  if (web_contents()->GetNativeView()) { | 
| +    view_weak_factory_.reset(new base::WeakPtrFactory<ui::ViewAndroid>( | 
| +        web_contents()->GetNativeView())); | 
| +    static_cast<PowerSaveBlockerImpl*>(video_power_save_blocker_.get()) | 
| +        ->InitDisplaySleepBlocker(view_weak_factory_->GetWeakPtr()); | 
| +  } | 
| #endif | 
| } | 
|  | 
|  |