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

Side by Side Diff: content/browser/webrtc/webrtc_getusermedia_browsertest.cc

Issue 2922733002: Propagate muted state from MediaStreamAudioSource into JS. (Closed)
Patch Set: Made SetMuted call unconditional. Rebased. Created 3 years, 5 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 unified diff | Download patch
« no previous file with comments | « no previous file | content/renderer/media/media_stream_audio_source.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include <stddef.h> 5 #include <stddef.h>
6 6
7 #include "base/command_line.h" 7 #include "base/command_line.h"
8 #include "base/feature_list.h" 8 #include "base/feature_list.h"
9 #include "base/json/json_reader.h" 9 #include "base/json/json_reader.h"
10 #include "base/memory/ref_counted_memory.h" 10 #include "base/memory/ref_counted_memory.h"
11 #include "base/strings/stringprintf.h" 11 #include "base/strings/stringprintf.h"
12 #include "base/test/scoped_feature_list.h" 12 #include "base/test/scoped_feature_list.h"
13 #include "base/test/trace_event_analyzer.h" 13 #include "base/test/trace_event_analyzer.h"
14 #include "base/threading/thread_restrictions.h" 14 #include "base/threading/thread_restrictions.h"
15 #include "base/trace_event/trace_event_impl.h" 15 #include "base/trace_event/trace_event_impl.h"
16 #include "base/values.h" 16 #include "base/values.h"
17 #include "build/build_config.h" 17 #include "build/build_config.h"
18 #include "content/browser/browser_main_loop.h" 18 #include "content/browser/browser_main_loop.h"
19 #include "content/browser/renderer_host/media/media_stream_manager.h" 19 #include "content/browser/renderer_host/media/media_stream_manager.h"
20 #include "content/browser/web_contents/web_contents_impl.h" 20 #include "content/browser/web_contents/web_contents_impl.h"
21 #include "content/browser/webrtc/webrtc_content_browsertest_base.h" 21 #include "content/browser/webrtc/webrtc_content_browsertest_base.h"
22 #include "content/browser/webrtc/webrtc_internals.h" 22 #include "content/browser/webrtc/webrtc_internals.h"
23 #include "content/public/common/content_features.h" 23 #include "content/public/common/content_features.h"
24 #include "content/public/common/content_switches.h" 24 #include "content/public/common/content_switches.h"
25 #include "content/public/test/browser_test_utils.h" 25 #include "content/public/test/browser_test_utils.h"
26 #include "content/public/test/content_browser_test_utils.h" 26 #include "content/public/test/content_browser_test_utils.h"
27 #include "content/public/test/test_utils.h" 27 #include "content/public/test/test_utils.h"
28 #include "content/shell/browser/shell.h" 28 #include "content/shell/browser/shell.h"
29 #include "media/audio/audio_manager.h" 29 #include "media/audio/audio_manager.h"
30 #include "media/audio/fake_audio_input_stream.h"
30 #include "net/test/embedded_test_server/embedded_test_server.h" 31 #include "net/test/embedded_test_server/embedded_test_server.h"
31 #include "testing/perf/perf_test.h" 32 #include "testing/perf/perf_test.h"
32 33
33 #if defined(OS_WIN) 34 #if defined(OS_WIN)
34 #include "base/win/windows_version.h" 35 #include "base/win/windows_version.h"
35 #endif 36 #endif
36 37
37 using trace_analyzer::TraceAnalyzer; 38 using trace_analyzer::TraceAnalyzer;
38 using trace_analyzer::Query; 39 using trace_analyzer::Query;
39 using trace_analyzer::TraceEventVector; 40 using trace_analyzer::TraceEventVector;
40 41
41 namespace { 42 namespace {
42 43
43 static const char kGetUserMediaAndStop[] = "getUserMediaAndStop"; 44 static const char kGetUserMediaAndStop[] = "getUserMediaAndStop";
44 static const char kGetUserMediaAndGetStreamUp[] = "getUserMediaAndGetStreamUp"; 45 static const char kGetUserMediaAndGetStreamUp[] = "getUserMediaAndGetStreamUp";
45 static const char kGetUserMediaAndAnalyseAndStop[] = 46 static const char kGetUserMediaAndAnalyseAndStop[] =
46 "getUserMediaAndAnalyseAndStop"; 47 "getUserMediaAndAnalyseAndStop";
47 static const char kGetUserMediaAndExpectFailure[] = 48 static const char kGetUserMediaAndExpectFailure[] =
48 "getUserMediaAndExpectFailure"; 49 "getUserMediaAndExpectFailure";
50 static const char kGetUserMediaForAudioMutingTest[] =
51 "getUserMediaForAudioMutingTest";
49 static const char kRenderSameTrackMediastreamAndStop[] = 52 static const char kRenderSameTrackMediastreamAndStop[] =
50 "renderSameTrackMediastreamAndStop"; 53 "renderSameTrackMediastreamAndStop";
51 static const char kRenderClonedMediastreamAndStop[] = 54 static const char kRenderClonedMediastreamAndStop[] =
52 "renderClonedMediastreamAndStop"; 55 "renderClonedMediastreamAndStop";
53 static const char kRenderClonedTrackMediastreamAndStop[] = 56 static const char kRenderClonedTrackMediastreamAndStop[] =
54 "renderClonedTrackMediastreamAndStop"; 57 "renderClonedTrackMediastreamAndStop";
55 static const char kRenderDuplicatedMediastreamAndStop[] = 58 static const char kRenderDuplicatedMediastreamAndStop[] =
56 "renderDuplicatedMediastreamAndStop"; 59 "renderDuplicatedMediastreamAndStop";
57 60
58 // Results returned by JS. 61 // Results returned by JS.
(...skipping 1403 matching lines...) Expand 10 before | Expand all | Expand 10 after
1462 manager->SetGenerateStreamCallbackForTesting( 1465 manager->SetGenerateStreamCallbackForTesting(
1463 base::Bind(&VerifyDisableLocalEcho, true)); 1466 base::Bind(&VerifyDisableLocalEcho, true));
1464 call = GenerateGetUserMediaWithDisableLocalEcho( 1467 call = GenerateGetUserMediaWithDisableLocalEcho(
1465 "getUserMediaAndExpectSuccess", "true"); 1468 "getUserMediaAndExpectSuccess", "true");
1466 ExecuteJavascriptAndWaitForOk(call); 1469 ExecuteJavascriptAndWaitForOk(call);
1467 1470
1468 manager->SetGenerateStreamCallbackForTesting( 1471 manager->SetGenerateStreamCallbackForTesting(
1469 MediaStreamManager::GenerateStreamTestCallback()); 1472 MediaStreamManager::GenerateStreamTestCallback());
1470 } 1473 }
1471 1474
1475 IN_PROC_BROWSER_TEST_F(WebRtcGetUserMediaBrowserTest,
1476 GetAudioStreamAndCheckMutingInitiallyUnmuted) {
1477 ASSERT_TRUE(embedded_test_server()->Start());
1478
1479 GURL url(embedded_test_server()->GetURL("/media/getusermedia.html"));
1480 NavigateToURL(shell(), url);
1481
1482 // Expect stream to initially not be muted
1483 media::FakeAudioInputStream::SetGlobalMutedState(false);
1484 ExecuteJavascriptAndWaitForOk(
1485 base::StringPrintf("%s(false);", kGetUserMediaForAudioMutingTest));
1486
1487 // Mute
1488 media::FakeAudioInputStream::SetGlobalMutedState(true);
1489 EXPECT_EQ("onmute: muted=true, readyState=live",
1490 ExecuteJavascriptAndReturnResult(
1491 "failTestAfterTimeout('Got no mute event', 1500);"));
1492 // Unmute
1493 media::FakeAudioInputStream::SetGlobalMutedState(false);
1494 EXPECT_EQ("onunmute: muted=false, readyState=live",
1495 ExecuteJavascriptAndReturnResult(
1496 "failTestAfterTimeout('Got no unmute event', 1500);"));
1497 }
1498
1499 IN_PROC_BROWSER_TEST_F(WebRtcGetUserMediaBrowserTest,
1500 GetAudioStreamAndCheckMutingInitiallyMuted) {
1501 ASSERT_TRUE(embedded_test_server()->Start());
1502
1503 GURL url(embedded_test_server()->GetURL("/media/getusermedia.html"));
1504 NavigateToURL(shell(), url);
1505
1506 // Expect stream to initially be muted
1507 media::FakeAudioInputStream::SetGlobalMutedState(true);
1508 ExecuteJavascriptAndWaitForOk(
1509 base::StringPrintf("%s(true);", kGetUserMediaForAudioMutingTest));
1510
1511 // Unmute
1512 media::FakeAudioInputStream::SetGlobalMutedState(false);
1513 EXPECT_EQ("onunmute: muted=false, readyState=live",
1514 ExecuteJavascriptAndReturnResult(
1515 "failTestAfterTimeout('Got no unmute event', 1500);"));
1516
1517 // Mute
1518 media::FakeAudioInputStream::SetGlobalMutedState(true);
1519 EXPECT_EQ("onmute: muted=true, readyState=live",
1520 ExecuteJavascriptAndReturnResult(
1521 "failTestAfterTimeout('Got no mute event', 1500);"));
1522 }
1523
1472 } // namespace content 1524 } // namespace content
OLDNEW
« no previous file with comments | « no previous file | content/renderer/media/media_stream_audio_source.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698