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

Unified Diff: content/browser/media/session/media_session.cc

Issue 2382723006: Revert of Letting Flash join MediaSession (stack implementaion) (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@media_session_type
Patch Set: Created 4 years, 3 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/media/session/media_session.cc
diff --git a/content/browser/media/session/media_session.cc b/content/browser/media/session/media_session.cc
index afad9abf97e01fee103ecdc7ee07599a79ba48c1..f76c5662bfe8b284464983690958753fba80458b 100644
--- a/content/browser/media/session/media_session.cc
+++ b/content/browser/media/session/media_session.cc
@@ -60,19 +60,6 @@
DCHECK(audio_focus_state_ == State::INACTIVE);
}
-void MediaSession::WebContentsDestroyed() {
- // This should only work for tests. In production, all the players should have
- // already been removed before WebContents is destroyed.
-
- // TODO(zqzhang): refactor MediaSession, maybe move the interface used to talk
- // with AudioFocusManager out to a seperate class. The AudioFocusManager unit
- // tests then could mock the interface and abandon audio focus when
- // WebContents is destroyed. See https://crbug.com/651069
- players_.clear();
- pepper_players_.clear();
- AbandonSystemAudioFocusIfNeeded();
-}
-
void MediaSession::SetMetadata(const base::Optional<MediaMetadata>& metadata) {
metadata_ = metadata;
// TODO(zqzhang): On Android, the metadata is sent though JNI everytime the
@@ -84,9 +71,6 @@
bool MediaSession::AddPlayer(MediaSessionObserver* observer,
int player_id,
media::MediaContentType media_content_type) {
- if (media_content_type == media::MediaContentType::Pepper)
- return AddPepperPlayer(observer, player_id);
-
observer->OnSetVolumeMultiplier(player_id, GetVolumeMultiplier());
// Determine the audio focus type required for playing the new player.
@@ -112,7 +96,11 @@
}
State old_audio_focus_state = audio_focus_state_;
- RequestSystemAudioFocus(required_audio_focus_type);
+ State audio_focus_state = RequestSystemAudioFocus(required_audio_focus_type)
+ ? State::ACTIVE
+ : State::INACTIVE;
+ SetAudioFocusState(audio_focus_state);
+ audio_focus_type_ = required_audio_focus_type;
if (audio_focus_state_ != State::ACTIVE)
return false;
@@ -134,24 +122,13 @@
if (it != players_.end())
players_.erase(it);
- it = pepper_players_.find(PlayerIdentifier(observer, player_id));
- if (it != pepper_players_.end())
- pepper_players_.erase(it);
-
AbandonSystemAudioFocusIfNeeded();
}
void MediaSession::RemovePlayers(MediaSessionObserver* observer) {
- for (auto it = players_.begin(); it != players_.end(); ) {
+ for (auto it = players_.begin(); it != players_.end();) {
if (it->observer == observer)
players_.erase(it++);
- else
- ++it;
- }
-
- for (auto it = pepper_players_.begin(); it != pepper_players_.end(); ) {
- if (it->observer == observer)
- pepper_players_.erase(it++);
else
++it;
}
@@ -213,8 +190,8 @@
void MediaSession::Stop(SuspendType suspend_type) {
DCHECK(audio_focus_state_ != State::INACTIVE);
+
DCHECK(suspend_type != SuspendType::CONTENT);
- DCHECK(!HasPepper());
// TODO(mlamouri): merge the logic between UI and SYSTEM.
if (suspend_type == SuspendType::SYSTEM) {
@@ -227,7 +204,6 @@
DCHECK(audio_focus_state_ == State::SUSPENDED);
players_.clear();
-
AbandonSystemAudioFocusIfNeeded();
}
@@ -247,8 +223,6 @@
void MediaSession::UpdateVolumeMultiplier() {
for (const auto& it : players_)
- it.observer->OnSetVolumeMultiplier(it.player_id, GetVolumeMultiplier());
- for (const auto& it : pepper_players_)
it.observer->OnSetVolumeMultiplier(it.player_id, GetVolumeMultiplier());
}
@@ -276,10 +250,6 @@
audio_focus_type_ == AudioFocusManager::AudioFocusType::Gain;
}
-bool MediaSession::HasPepper() const {
- return !pepper_players_.empty();
-}
-
std::unique_ptr<base::CallbackList<void(MediaSession::State)>::Subscription>
MediaSession::RegisterMediaSessionStateChangedCallbackForTest(
const StateChangedCallback& cb) {
@@ -295,6 +265,11 @@
return audio_focus_state_ == State::ACTIVE;
}
+AudioFocusManager::AudioFocusType MediaSession::audio_focus_type_for_test()
+ const {
+ return audio_focus_type_;
+}
+
MediaSessionUmaHelper* MediaSession::uma_helper_for_test() {
return &uma_helper_;
}
@@ -306,8 +281,6 @@
void MediaSession::OnSuspendInternal(SuspendType suspend_type,
State new_state) {
- DCHECK(!HasPepper());
-
DCHECK(new_state == State::SUSPENDED || new_state == State::INACTIVE);
// UI suspend cannot use State::INACTIVE.
DCHECK(suspend_type == SuspendType::SYSTEM || new_state == State::SUSPENDED);
@@ -350,9 +323,6 @@
it.observer->OnSuspend(it.player_id);
}
- for (const auto& it : pepper_players_)
- it.observer->OnSetVolumeMultiplier(it.player_id, kDuckingVolumeMultiplier);
-
UpdateWebContents();
}
@@ -364,9 +334,6 @@
for (const auto& it : players_)
it.observer->OnResume(it.player_id);
-
- for (const auto& it : pepper_players_)
- it.observer->OnSetVolumeMultiplier(it.player_id, GetVolumeMultiplier());
UpdateWebContents();
}
@@ -386,19 +353,13 @@
AudioFocusManager::AudioFocusType audio_focus_type) {
bool result = delegate_->RequestAudioFocus(audio_focus_type);
uma_helper_.RecordRequestAudioFocusResult(result);
-
- // MediaSession must change its state & audio focus type AFTER requesting
- // audio focus.
- SetAudioFocusState(result ? State::ACTIVE : State::INACTIVE);
- audio_focus_type_ = audio_focus_type;
return result;
}
void MediaSession::AbandonSystemAudioFocusIfNeeded() {
- if (audio_focus_state_ == State::INACTIVE || !players_.empty() ||
- !pepper_players_.empty()) {
- return;
- }
+ if (audio_focus_state_ == State::INACTIVE || !players_.empty())
+ return;
+
delegate_->AbandonAudioFocus();
SetAudioFocusState(State::INACTIVE);
@@ -428,15 +389,4 @@
}
}
-bool MediaSession::AddPepperPlayer(MediaSessionObserver* observer,
- int player_id) {
- DCHECK(RequestSystemAudioFocus(AudioFocusManager::AudioFocusType::Gain));
-
- pepper_players_.insert(PlayerIdentifier(observer, player_id));
-
- observer->OnSetVolumeMultiplier(player_id, GetVolumeMultiplier());
-
- return true;
-}
-
} // namespace content
« no previous file with comments | « content/browser/media/session/media_session.h ('k') | content/browser/media/session/media_session_browsertest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698