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

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

Issue 2453623003: Decouple MediaSession messages from WebContents (full patch) (Closed)
Patch Set: nit Created 4 years, 1 month 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_impl_visibility_browsertest.cc
diff --git a/content/browser/media/session/media_session_visibility_browsertest.cc b/content/browser/media/session/media_session_impl_visibility_browsertest.cc
similarity index 72%
rename from content/browser/media/session/media_session_visibility_browsertest.cc
rename to content/browser/media/session/media_session_impl_visibility_browsertest.cc
index 01e42325551b75255788c6dfd83986b751ff2148..0b922d177787598248cad4657e9804a16fe76d96 100644
--- a/content/browser/media/session/media_session_visibility_browsertest.cc
+++ b/content/browser/media/session/media_session_impl_visibility_browsertest.cc
@@ -9,7 +9,7 @@
#include "base/logging.h"
#include "base/single_thread_task_runner.h"
#include "base/threading/thread_task_runner_handle.h"
-#include "content/browser/media/session/media_session.h"
+#include "content/browser/media/session/media_session_impl.h"
#include "content/public/browser/web_contents.h"
#include "content/public/common/content_switches.h"
#include "content/public/test/browser_test_utils.h"
@@ -54,39 +54,37 @@ struct VisibilityTestData {
SessionState session_state_before_hide;
SessionState session_state_after_hide;
};
-
}
-
// Base class of MediaSession visibility tests. The class is intended
// to be used to run tests under different configurations. Tests
// should inheret from this class, set up their own command line per
// their configuration, and use macro INCLUDE_TEST_FROM_BASE_CLASS to
// include required tests. See
// media_session_visibility_browsertest_instances.cc for examples.
-class MediaSessionVisibilityBrowserTest
+class MediaSessionImplVisibilityBrowserTest
: public ContentBrowserTest,
public ::testing::WithParamInterface<
std::tr1::tuple<VisibilityTestData, Pipeline>> {
public:
- MediaSessionVisibilityBrowserTest() = default;
- ~MediaSessionVisibilityBrowserTest() override = default;
+ MediaSessionImplVisibilityBrowserTest() = default;
+ ~MediaSessionImplVisibilityBrowserTest() override = default;
void SetUpOnMainThread() override {
ContentBrowserTest::SetUpOnMainThread();
web_contents_ = shell()->web_contents();
- media_session_ = MediaSession::Get(web_contents_);
+ media_session_ = MediaSessionImpl::Get(web_contents_);
- media_session_state_loop_runners_[MediaSession::State::ACTIVE] =
+ media_session_state_loop_runners_[MediaSessionImpl::State::ACTIVE] =
new MessageLoopRunner();
- media_session_state_loop_runners_[MediaSession::State::SUSPENDED] =
+ media_session_state_loop_runners_[MediaSessionImpl::State::SUSPENDED] =
new MessageLoopRunner();
- media_session_state_loop_runners_[MediaSession::State::INACTIVE] =
+ media_session_state_loop_runners_[MediaSessionImpl::State::INACTIVE] =
new MessageLoopRunner();
media_session_state_callback_subscription_ =
media_session_->RegisterMediaSessionStateChangedCallbackForTest(
- base::Bind(&MediaSessionVisibilityBrowserTest::
- OnMediaSessionStateChanged,
+ base::Bind(&MediaSessionImplVisibilityBrowserTest::
+ OnMediaSessionStateChanged,
base::Unretained(this)));
}
@@ -105,8 +103,8 @@ class MediaSessionVisibilityBrowserTest
disabled_features = media::kResumeBackgroundVideo.name;
std::unique_ptr<base::FeatureList> feature_list(new base::FeatureList);
- feature_list->InitializeFromCommandLine(
- enabled_features, disabled_features);
+ feature_list->InitializeFromCommandLine(enabled_features,
+ disabled_features);
base::FeatureList::ClearInstanceForTesting();
base::FeatureList::SetInstance(std::move(feature_list));
}
@@ -115,8 +113,7 @@ class MediaSessionVisibilityBrowserTest
command_line->AppendSwitch(
switches::kDisableGestureRequirementForMediaPlayback);
#if !defined(OS_ANDROID)
- command_line->AppendSwitch(
- switches::kEnableDefaultMediaSession);
+ command_line->AppendSwitch(switches::kEnableDefaultMediaSession);
#endif // !defined(OS_ANDROID)
VisibilityTestData params = GetVisibilityTestData();
@@ -152,23 +149,23 @@ class MediaSessionVisibilityBrowserTest
ClearMediaSessionStateLoopRunners();
RunScript(kStartPlayerScript);
LOG(INFO) << "Waiting for session to be active";
- WaitForMediaSessionState(MediaSession::State::ACTIVE);
+ WaitForMediaSessionState(MediaSessionImpl::State::ACTIVE);
}
// Maybe pause the player depending on whether the session state before hide
// is SUSPENDED.
void MaybePausePlayer() {
- ASSERT_TRUE(GetVisibilityTestData().session_state_before_hide
- != SessionState::INACTIVE);
- if (GetVisibilityTestData().session_state_before_hide
- == SessionState::ACTIVE)
+ ASSERT_TRUE(GetVisibilityTestData().session_state_before_hide !=
+ SessionState::INACTIVE);
+ if (GetVisibilityTestData().session_state_before_hide ==
+ SessionState::ACTIVE)
return;
LOG(INFO) << "Pausing player";
ClearMediaSessionStateLoopRunners();
RunScript(kPausePlayerScript);
LOG(INFO) << "Waiting for session to be suspended";
- WaitForMediaSessionState(MediaSession::State::SUSPENDED);
+ WaitForMediaSessionState(MediaSessionImpl::State::SUSPENDED);
}
void HideTab() {
@@ -178,9 +175,9 @@ class MediaSessionVisibilityBrowserTest
}
void CheckSessionStateAfterHide() {
- MediaSession::State state_before_hide =
+ MediaSessionImpl::State state_before_hide =
ToMediaSessionState(GetVisibilityTestData().session_state_before_hide);
- MediaSession::State state_after_hide =
+ MediaSessionImpl::State state_after_hide =
ToMediaSessionState(GetVisibilityTestData().session_state_after_hide);
if (state_before_hide == state_after_hide) {
@@ -211,7 +208,7 @@ class MediaSessionVisibilityBrowserTest
state_loop_runner.second = new MessageLoopRunner();
}
- void OnMediaSessionStateChanged(MediaSession::State state) {
+ void OnMediaSessionStateChanged(MediaSessionImpl::State state) {
ASSERT_TRUE(media_session_state_loop_runners_.count(state));
media_session_state_loop_runners_[state]->Quit();
}
@@ -225,85 +222,85 @@ class MediaSessionVisibilityBrowserTest
run_loop.Run();
}
- void WaitForMediaSessionState(MediaSession::State state) {
+ void WaitForMediaSessionState(MediaSessionImpl::State state) {
ASSERT_TRUE(media_session_state_loop_runners_.count(state));
media_session_state_loop_runners_[state]->Run();
}
- MediaSession::State ToMediaSessionState(SessionState state) {
+ MediaSessionImpl::State ToMediaSessionState(SessionState state) {
switch (state) {
case SessionState::ACTIVE:
- return MediaSession::State::ACTIVE;
+ return MediaSessionImpl::State::ACTIVE;
break;
case SessionState::SUSPENDED:
- return MediaSession::State::SUSPENDED;
+ return MediaSessionImpl::State::SUSPENDED;
break;
case SessionState::INACTIVE:
- return MediaSession::State::INACTIVE;
+ return MediaSessionImpl::State::INACTIVE;
break;
default:
ADD_FAILURE() << "invalid SessionState to convert";
- return MediaSession::State::INACTIVE;
+ return MediaSessionImpl::State::INACTIVE;
}
}
WebContents* web_contents_;
- MediaSession* media_session_;
+ MediaSessionImpl* media_session_;
// MessageLoopRunners for waiting MediaSession state to change. Note that the
// MessageLoopRunners can accept Quit() before calling Run(), thus the state
// change can still be captured before waiting. For example, the MediaSession
// might go active immediately after calling HTMLMediaElement.play(). A test
// can listen to the state change before calling play(), and then wait for the
// state change after play().
- std::map<MediaSession::State, scoped_refptr<MessageLoopRunner> >
- media_session_state_loop_runners_;
- std::unique_ptr<base::CallbackList<void(MediaSession::State)>::Subscription>
+ std::map<MediaSessionImpl::State, scoped_refptr<MessageLoopRunner>>
+ media_session_state_loop_runners_;
+ std::unique_ptr<
+ base::CallbackList<void(MediaSessionImpl::State)>::Subscription>
media_session_state_callback_subscription_;
- DISALLOW_COPY_AND_ASSIGN(MediaSessionVisibilityBrowserTest);
+ DISALLOW_COPY_AND_ASSIGN(MediaSessionImplVisibilityBrowserTest);
};
namespace {
VisibilityTestData kTestParams[] = {
- { MediaSuspend::ENABLED, BackgroundResuming::DISABLED,
- SessionState::SUSPENDED, SessionState::INACTIVE },
- { MediaSuspend::ENABLED, BackgroundResuming::DISABLED,
- SessionState::ACTIVE, SessionState::INACTIVE },
- { MediaSuspend::ENABLED, BackgroundResuming::ENABLED,
- SessionState::ACTIVE, SessionState::SUSPENDED },
- { MediaSuspend::ENABLED, BackgroundResuming::ENABLED,
- SessionState::SUSPENDED, SessionState::SUSPENDED },
- { MediaSuspend::DISABLED, BackgroundResuming::DISABLED,
- SessionState::SUSPENDED, SessionState::SUSPENDED },
- { MediaSuspend::DISABLED, BackgroundResuming::DISABLED,
- SessionState::ACTIVE, SessionState::ACTIVE },
- { MediaSuspend::DISABLED, BackgroundResuming::ENABLED,
- SessionState::ACTIVE, SessionState::ACTIVE },
- { MediaSuspend::DISABLED, BackgroundResuming::ENABLED,
- SessionState::SUSPENDED, SessionState::SUSPENDED },
+ {MediaSuspend::ENABLED, BackgroundResuming::DISABLED,
+ SessionState::SUSPENDED, SessionState::INACTIVE},
+ {MediaSuspend::ENABLED, BackgroundResuming::DISABLED, SessionState::ACTIVE,
+ SessionState::INACTIVE},
+ {MediaSuspend::ENABLED, BackgroundResuming::ENABLED, SessionState::ACTIVE,
+ SessionState::SUSPENDED},
+ {MediaSuspend::ENABLED, BackgroundResuming::ENABLED,
+ SessionState::SUSPENDED, SessionState::SUSPENDED},
+ {MediaSuspend::DISABLED, BackgroundResuming::DISABLED,
+ SessionState::SUSPENDED, SessionState::SUSPENDED},
+ {MediaSuspend::DISABLED, BackgroundResuming::DISABLED, SessionState::ACTIVE,
+ SessionState::ACTIVE},
+ {MediaSuspend::DISABLED, BackgroundResuming::ENABLED, SessionState::ACTIVE,
+ SessionState::ACTIVE},
+ {MediaSuspend::DISABLED, BackgroundResuming::ENABLED,
+ SessionState::SUSPENDED, SessionState::SUSPENDED},
};
Pipeline kPipelines[] = {
Pipeline::WMPI,
#if defined(OS_ANDROID)
- // Disabling WMPA tests because of https://crbug.com/646312
- // Pipeline::WMPA,
+// Disabling WMPA tests because of https://crbug.com/646312
+// Pipeline::WMPA,
#endif // defined(OS_ANDROID)
};
} // anonymous namespace
-IN_PROC_BROWSER_TEST_P(MediaSessionVisibilityBrowserTest,
- TestEntryPoint) {
+IN_PROC_BROWSER_TEST_P(MediaSessionImplVisibilityBrowserTest, TestEntryPoint) {
StartPlayer();
MaybePausePlayer();
HideTab();
CheckSessionStateAfterHide();
}
-INSTANTIATE_TEST_CASE_P(MediaSessionVisibilityBrowserTestInstances,
- MediaSessionVisibilityBrowserTest,
+INSTANTIATE_TEST_CASE_P(MediaSessionImplVisibilityBrowserTestInstances,
+ MediaSessionImplVisibilityBrowserTest,
::testing::Combine(::testing::ValuesIn(kTestParams),
::testing::ValuesIn(kPipelines)));

Powered by Google App Engine
This is Rietveld 408576698