| Index: content/browser/media/audio_stream_monitor_unittest.cc
|
| diff --git a/content/browser/media/audio_stream_monitor_unittest.cc b/content/browser/media/audio_stream_monitor_unittest.cc
|
| index 95f28b9d14d9cc6be16dd257433a53d1b4d3c884..0bc66263a78cc11b68c9aeee116dd09a8b087eaa 100644
|
| --- a/content/browser/media/audio_stream_monitor_unittest.cc
|
| +++ b/content/browser/media/audio_stream_monitor_unittest.cc
|
| @@ -30,6 +30,8 @@ const int kRenderProcessId = 1;
|
| const int kAnotherRenderProcessId = 2;
|
| const int kStreamId = 3;
|
| const int kAnotherStreamId = 6;
|
| +const int kRenderFrameId = 4;
|
| +const int kAnotherRenderFrameId = 8;
|
|
|
| // Used to confirm audio indicator state changes occur at the correct times.
|
| class MockWebContentsDelegate : public WebContentsDelegate {
|
| @@ -76,8 +78,12 @@ class AudioStreamMonitorTest : public RenderViewHostTestHarness {
|
|
|
| void SimulateOffTimerFired() { monitor_->MaybeToggle(); }
|
|
|
| - void ExpectIsPolling(int render_process_id, int stream_id, bool is_polling) {
|
| - const AudioStreamMonitor::StreamID key(render_process_id, stream_id);
|
| + void ExpectIsPolling(int render_process_id,
|
| + int render_frame_id,
|
| + int stream_id,
|
| + bool is_polling) {
|
| + const AudioStreamMonitor::StreamID key(render_process_id, render_frame_id,
|
| + stream_id);
|
| EXPECT_EQ(is_polling, monitor_->poll_callbacks_.find(key) !=
|
| monitor_->poll_callbacks_.end());
|
| EXPECT_EQ(!monitor_->poll_callbacks_.empty(),
|
| @@ -140,22 +146,26 @@ class AudioStreamMonitorTest : public RenderViewHostTestHarness {
|
|
|
| void StartMonitoring(
|
| int render_process_id,
|
| + int render_frame_id,
|
| int stream_id,
|
| const AudioStreamMonitor::ReadPowerAndClipCallback& callback) {
|
| if (!power_level_monitoring_available() &&
|
| monitor_->poll_callbacks_.empty()) {
|
| ExpectCurrentlyAudibleChangeNotification(true);
|
| }
|
| - monitor_->StartMonitoringStreamOnUIThread(render_process_id, stream_id,
|
| - callback);
|
| + monitor_->StartMonitoringStreamOnUIThread(
|
| + render_process_id, render_frame_id, stream_id, callback);
|
| }
|
|
|
| - void StopMonitoring(int render_process_id, int stream_id) {
|
| + void StopMonitoring(int render_process_id,
|
| + int render_frame_id,
|
| + int stream_id) {
|
| if (!power_level_monitoring_available() &&
|
| monitor_->poll_callbacks_.size() == 1u) {
|
| ExpectCurrentlyAudibleChangeNotification(false);
|
| }
|
| - monitor_->StopMonitoringStreamOnUIThread(render_process_id, stream_id);
|
| + monitor_->StopMonitoringStreamOnUIThread(render_process_id, render_frame_id,
|
| + stream_id);
|
| }
|
|
|
| bool power_level_monitoring_available() {
|
| @@ -193,17 +203,18 @@ TEST_F(AudioStreamMonitorTest, PollsWhenProvidedACallback) {
|
|
|
| EXPECT_FALSE(monitor_->WasRecentlyAudible());
|
| ExpectNotCurrentlyAudible();
|
| - ExpectIsPolling(kRenderProcessId, kStreamId, false);
|
| + ExpectIsPolling(kRenderProcessId, kRenderFrameId, kStreamId, false);
|
|
|
| - StartMonitoring(kRenderProcessId, kStreamId, CreatePollCallback(kStreamId));
|
| + StartMonitoring(kRenderProcessId, kRenderFrameId, kStreamId,
|
| + CreatePollCallback(kStreamId));
|
| EXPECT_FALSE(monitor_->WasRecentlyAudible());
|
| ExpectNotCurrentlyAudible();
|
| - ExpectIsPolling(kRenderProcessId, kStreamId, true);
|
| + ExpectIsPolling(kRenderProcessId, kRenderFrameId, kStreamId, true);
|
|
|
| - StopMonitoring(kRenderProcessId, kStreamId);
|
| + StopMonitoring(kRenderProcessId, kRenderFrameId, kStreamId);
|
| EXPECT_FALSE(monitor_->WasRecentlyAudible());
|
| ExpectNotCurrentlyAudible();
|
| - ExpectIsPolling(kRenderProcessId, kStreamId, false);
|
| + ExpectIsPolling(kRenderProcessId, kRenderFrameId, kStreamId, false);
|
| }
|
|
|
| // Tests that AudioStreamMonitor debounces the power level readings it's taking,
|
| @@ -214,7 +225,8 @@ TEST_F(AudioStreamMonitorTest,
|
| if (!power_level_monitoring_available())
|
| return;
|
|
|
| - StartMonitoring(kRenderProcessId, kStreamId, CreatePollCallback(kStreamId));
|
| + StartMonitoring(kRenderProcessId, kRenderFrameId, kStreamId,
|
| + CreatePollCallback(kStreamId));
|
|
|
| // Expect WebContents will get one call form AudioStreamMonitor to toggle the
|
| // indicator on upon the very first poll.
|
| @@ -269,9 +281,10 @@ TEST_F(AudioStreamMonitorTest, HandlesMultipleStreamsBlurting) {
|
| if (!power_level_monitoring_available())
|
| return;
|
|
|
| - StartMonitoring(kRenderProcessId, kStreamId, CreatePollCallback(kStreamId));
|
| - StartMonitoring(
|
| - kRenderProcessId, kAnotherStreamId, CreatePollCallback(kAnotherStreamId));
|
| + StartMonitoring(kRenderProcessId, kRenderFrameId, kStreamId,
|
| + CreatePollCallback(kStreamId));
|
| + StartMonitoring(kRenderProcessId, kAnotherRenderFrameId, kAnotherStreamId,
|
| + CreatePollCallback(kAnotherStreamId));
|
|
|
| base::TimeTicks last_blurt_time;
|
| ExpectTabWasRecentlyAudible(false, last_blurt_time);
|
| @@ -355,28 +368,30 @@ TEST_F(AudioStreamMonitorTest, HandlesMultipleStreamsBlurting) {
|
| }
|
|
|
| TEST_F(AudioStreamMonitorTest, MultipleRendererProcesses) {
|
| - StartMonitoring(kRenderProcessId, kStreamId, CreatePollCallback(kStreamId));
|
| - StartMonitoring(
|
| - kAnotherRenderProcessId, kStreamId, CreatePollCallback(kStreamId));
|
| - ExpectIsPolling(kRenderProcessId, kStreamId, true);
|
| - ExpectIsPolling(kAnotherRenderProcessId, kStreamId, true);
|
| - StopMonitoring(kAnotherRenderProcessId, kStreamId);
|
| - ExpectIsPolling(kRenderProcessId, kStreamId, true);
|
| - ExpectIsPolling(kAnotherRenderProcessId, kStreamId, false);
|
| + StartMonitoring(kRenderProcessId, kRenderFrameId, kStreamId,
|
| + CreatePollCallback(kStreamId));
|
| + StartMonitoring(kAnotherRenderProcessId, kRenderFrameId, kStreamId,
|
| + CreatePollCallback(kStreamId));
|
| + ExpectIsPolling(kRenderProcessId, kRenderFrameId, kStreamId, true);
|
| + ExpectIsPolling(kAnotherRenderProcessId, kRenderFrameId, kStreamId, true);
|
| + StopMonitoring(kAnotherRenderProcessId, kRenderFrameId, kStreamId);
|
| + ExpectIsPolling(kRenderProcessId, kRenderFrameId, kStreamId, true);
|
| + ExpectIsPolling(kAnotherRenderProcessId, kRenderFrameId, kStreamId, false);
|
| }
|
|
|
| TEST_F(AudioStreamMonitorTest, RenderProcessGone) {
|
| - StartMonitoring(kRenderProcessId, kStreamId, CreatePollCallback(kStreamId));
|
| - StartMonitoring(kAnotherRenderProcessId, kStreamId,
|
| + StartMonitoring(kRenderProcessId, kRenderFrameId, kStreamId,
|
| + CreatePollCallback(kStreamId));
|
| + StartMonitoring(kAnotherRenderProcessId, kRenderFrameId, kStreamId,
|
| CreatePollCallback(kStreamId));
|
| - ExpectIsPolling(kRenderProcessId, kStreamId, true);
|
| - ExpectIsPolling(kAnotherRenderProcessId, kStreamId, true);
|
| + ExpectIsPolling(kRenderProcessId, kRenderFrameId, kStreamId, true);
|
| + ExpectIsPolling(kAnotherRenderProcessId, kRenderFrameId, kStreamId, true);
|
| monitor_->RenderProcessGone(kRenderProcessId);
|
| - ExpectIsPolling(kRenderProcessId, kStreamId, false);
|
| + ExpectIsPolling(kRenderProcessId, kRenderFrameId, kStreamId, false);
|
| if (!power_level_monitoring_available())
|
| ExpectCurrentlyAudibleChangeNotification(false);
|
| monitor_->RenderProcessGone(kAnotherRenderProcessId);
|
| - ExpectIsPolling(kAnotherRenderProcessId, kStreamId, false);
|
| + ExpectIsPolling(kAnotherRenderProcessId, kRenderFrameId, kStreamId, false);
|
| }
|
|
|
| TEST_F(AudioStreamMonitorTest, NoPowerLevelMonitoring) {
|
| @@ -384,18 +399,19 @@ TEST_F(AudioStreamMonitorTest, NoPowerLevelMonitoring) {
|
| return;
|
|
|
| ExpectNotCurrentlyAudible();
|
| - StartMonitoring(kRenderProcessId, kStreamId, CreatePollCallback(kStreamId));
|
| + StartMonitoring(kRenderProcessId, kRenderFrameId, kStreamId,
|
| + CreatePollCallback(kStreamId));
|
| ExpectIsCurrentlyAudible();
|
| - ExpectIsPolling(kRenderProcessId, kStreamId, true);
|
| + ExpectIsPolling(kRenderProcessId, kRenderFrameId, kStreamId, true);
|
|
|
| - StartMonitoring(kAnotherRenderProcessId, kStreamId,
|
| + StartMonitoring(kAnotherRenderProcessId, kRenderFrameId, kStreamId,
|
| CreatePollCallback(kStreamId));
|
| ExpectIsCurrentlyAudible();
|
| - ExpectIsPolling(kAnotherRenderProcessId, kStreamId, true);
|
| + ExpectIsPolling(kAnotherRenderProcessId, kRenderFrameId, kStreamId, true);
|
|
|
| - StopMonitoring(kRenderProcessId, kStreamId);
|
| + StopMonitoring(kRenderProcessId, kRenderFrameId, kStreamId);
|
| ExpectIsCurrentlyAudible();
|
| - StopMonitoring(kAnotherRenderProcessId, kStreamId);
|
| + StopMonitoring(kAnotherRenderProcessId, kRenderFrameId, kStreamId);
|
| ExpectNotCurrentlyAudible();
|
| }
|
|
|
|
|