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(); |
} |