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

Side by Side Diff: content/browser/media/media_web_contents_observer.cc

Issue 2003803002: Remove dependency of power_save_blocker_android on various content bits (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@power-save-task-runners
Patch Set: only .reset() Created 4 years, 6 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 unified diff | Download patch
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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/browser/media/media_web_contents_observer.h" 5 #include "content/browser/media/media_web_contents_observer.h"
6 6
7 #include <memory> 7 #include <memory>
8 8
9 #include "base/lazy_instance.h" 9 #include "base/lazy_instance.h"
10 #include "build/build_config.h" 10 #include "build/build_config.h"
(...skipping 17 matching lines...) Expand all
28 } // anonymous namespace 28 } // anonymous namespace
29 29
30 MediaWebContentsObserver::MediaWebContentsObserver(WebContents* web_contents) 30 MediaWebContentsObserver::MediaWebContentsObserver(WebContents* web_contents)
31 : WebContentsObserver(web_contents), 31 : WebContentsObserver(web_contents),
32 session_controllers_manager_(this) {} 32 session_controllers_manager_(this) {}
33 33
34 MediaWebContentsObserver::~MediaWebContentsObserver() {} 34 MediaWebContentsObserver::~MediaWebContentsObserver() {}
35 35
36 void MediaWebContentsObserver::WebContentsDestroyed() { 36 void MediaWebContentsObserver::WebContentsDestroyed() {
37 g_audible_metrics.Get().UpdateAudibleWebContentsState(web_contents(), false); 37 g_audible_metrics.Get().UpdateAudibleWebContentsState(web_contents(), false);
38 #if defined(OS_ANDROID)
39 view_weak_factory_.reset();
40 #endif
38 } 41 }
39 42
40 void MediaWebContentsObserver::RenderFrameDeleted( 43 void MediaWebContentsObserver::RenderFrameDeleted(
41 RenderFrameHost* render_frame_host) { 44 RenderFrameHost* render_frame_host) {
42 ClearPowerSaveBlockers(render_frame_host); 45 ClearPowerSaveBlockers(render_frame_host);
43 session_controllers_manager_.RenderFrameDeleted(render_frame_host); 46 session_controllers_manager_.RenderFrameDeleted(render_frame_host);
44 } 47 }
45 48
46 void MediaWebContentsObserver::MaybeUpdateAudibleState() { 49 void MediaWebContentsObserver::MaybeUpdateAudibleState() {
47 if (!AudioStreamMonitor::monitoring_available()) 50 if (!AudioStreamMonitor::monitoring_available())
(...skipping 138 matching lines...) Expand 10 before | Expand all | Expand 10 after
186 PowerSaveBlocker::kReasonAudioPlayback, "Playing audio"); 189 PowerSaveBlocker::kReasonAudioPlayback, "Playing audio");
187 } 190 }
188 191
189 void MediaWebContentsObserver::CreateVideoPowerSaveBlocker() { 192 void MediaWebContentsObserver::CreateVideoPowerSaveBlocker() {
190 DCHECK(!video_power_save_blocker_); 193 DCHECK(!video_power_save_blocker_);
191 DCHECK(!active_video_players_.empty()); 194 DCHECK(!active_video_players_.empty());
192 video_power_save_blocker_ = CreatePowerSaveBlocker( 195 video_power_save_blocker_ = CreatePowerSaveBlocker(
193 PowerSaveBlocker::kPowerSaveBlockPreventDisplaySleep, 196 PowerSaveBlocker::kPowerSaveBlockPreventDisplaySleep,
194 PowerSaveBlocker::kReasonVideoPlayback, "Playing video"); 197 PowerSaveBlocker::kReasonVideoPlayback, "Playing video");
195 #if defined(OS_ANDROID) 198 #if defined(OS_ANDROID)
196 static_cast<PowerSaveBlockerImpl*>(video_power_save_blocker_.get()) 199 if (web_contents()->GetNativeView()) {
197 ->InitDisplaySleepBlocker(web_contents()); 200 view_weak_factory_.reset(new base::WeakPtrFactory<ui::ViewAndroid>(
201 web_contents()->GetNativeView()));
202 static_cast<PowerSaveBlockerImpl*>(video_power_save_blocker_.get())
203 ->InitDisplaySleepBlocker(view_weak_factory_->GetWeakPtr());
204 }
198 #endif 205 #endif
199 } 206 }
200 207
201 void MediaWebContentsObserver::MaybeReleasePowerSaveBlockers() { 208 void MediaWebContentsObserver::MaybeReleasePowerSaveBlockers() {
202 // If there are no more audio players and we don't have audio stream 209 // If there are no more audio players and we don't have audio stream
203 // monitoring, release the audio power save blocker here instead of during 210 // monitoring, release the audio power save blocker here instead of during
204 // NotifyNavigationStateChanged(). 211 // NotifyNavigationStateChanged().
205 if (active_audio_players_.empty() && 212 if (active_audio_players_.empty() &&
206 !AudioStreamMonitor::monitoring_available()) { 213 !AudioStreamMonitor::monitoring_available()) {
207 audio_power_save_blocker_.reset(); 214 audio_power_save_blocker_.reset();
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
245 if (it == player_map->end()) 252 if (it == player_map->end())
246 return; 253 return;
247 254
248 for (int delegate_id : it->second) 255 for (int delegate_id : it->second)
249 removed_players->insert(MediaPlayerId(render_frame_host, delegate_id)); 256 removed_players->insert(MediaPlayerId(render_frame_host, delegate_id));
250 257
251 player_map->erase(it); 258 player_map->erase(it);
252 } 259 }
253 260
254 } // namespace content 261 } // namespace content
OLDNEW
« no previous file with comments | « content/browser/media/media_web_contents_observer.h ('k') | content/browser/power_save_blocker_android.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698