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

Unified Diff: content/browser/web_contents/web_contents_impl.cc

Issue 975943003: Revert of Revert of Propagate audible state from player to the containing tab" (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 10 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
Index: content/browser/web_contents/web_contents_impl.cc
diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser/web_contents/web_contents_impl.cc
index 7d3766006456ddf20376ef8faee2abcfb4eae3a1..5d51ed15e1126ee4cc38385cde2171e82d2739d3 100644
--- a/content/browser/web_contents/web_contents_impl.cc
+++ b/content/browser/web_contents/web_contents_impl.cc
@@ -108,6 +108,7 @@
#if defined(OS_ANDROID)
#include "content/browser/android/content_video_view.h"
#include "content/browser/android/date_time_chooser_android.h"
+#include "content/browser/android/media_players_observer.h"
#include "content/browser/media/android/browser_media_player_manager.h"
#include "content/browser/web_contents/web_contents_android.h"
#endif
@@ -358,7 +359,6 @@ WebContentsImpl::WebContentsImpl(BrowserContext* browser_context,
geolocation_service_context_(new GeolocationServiceContext()),
accessibility_mode_(
BrowserAccessibilityStateImpl::GetInstance()->accessibility_mode()),
- audio_stream_monitor_(this),
virtual_keyboard_requested_(false),
loading_weak_factory_(this) {
frame_tree_.SetFrameRemoveListener(
@@ -367,6 +367,12 @@ WebContentsImpl::WebContentsImpl(BrowserContext* browser_context,
#if defined(ENABLE_BROWSER_CDMS)
media_web_contents_observer_.reset(new MediaWebContentsObserver(this));
#endif
+
+#if defined(OS_ANDROID)
+ audio_state_provider_.reset(new MediaPlayersObserver(this));
+#else
+ audio_state_provider_.reset(new AudioStreamMonitor(this));
+#endif
}
WebContentsImpl::~WebContentsImpl() {
@@ -1041,7 +1047,7 @@ void WebContentsImpl::NotifyNavigationStateChanged(
// Create and release the audio power save blocker depending on whether the
// tab is actively producing audio or not.
if ((changed_flags & INVALIDATE_TYPE_TAB) &&
- AudioStreamMonitor::monitoring_available()) {
+ audio_state_provider_->IsAudioStateAvailable()) {
if (WasRecentlyAudible()) {
if (!audio_power_save_blocker_)
CreateAudioPowerSaveBlocker();
@@ -2523,7 +2529,7 @@ void WebContentsImpl::InsertCSS(const std::string& css) {
}
bool WebContentsImpl::WasRecentlyAudible() {
- return audio_stream_monitor_.WasRecentlyAudible();
+ return audio_state_provider_->WasRecentlyAudible();
}
void WebContentsImpl::GetManifest(const GetManifestCallback& callback) {
@@ -3210,7 +3216,7 @@ void WebContentsImpl::MaybeReleasePowerSaveBlockers() {
// monitoring, release the audio power save blocker here instead of during
// NotifyNavigationStateChanged().
if (active_audio_players_.empty() &&
- !AudioStreamMonitor::monitoring_available()) {
+ !audio_state_provider_->IsAudioStateAvailable()) {
audio_power_save_blocker_.reset();
}
@@ -3233,7 +3239,7 @@ void WebContentsImpl::OnMediaPlayingNotification(int64 player_cookie,
// If we don't have audio stream monitoring, allocate the audio power save
// blocker here instead of during NotifyNavigationStateChanged().
if (!audio_power_save_blocker_ &&
- !AudioStreamMonitor::monitoring_available()) {
+ !audio_state_provider_->IsAudioStateAvailable()) {
CreateAudioPowerSaveBlocker();
}
}

Powered by Google App Engine
This is Rietveld 408576698