| OLD | NEW |
| 1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2013 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 "base/command_line.h" | 5 #include "base/command_line.h" |
| 6 #include "base/json/json_reader.h" | 6 #include "base/json/json_reader.h" |
| 7 #include "base/strings/utf_string_conversions.h" | 7 #include "base/strings/utf_string_conversions.h" |
| 8 #include "base/time/time.h" | 8 #include "base/time/time.h" |
| 9 #include "base/values.h" | 9 #include "base/values.h" |
| 10 #include "content/public/common/content_switches.h" | 10 #include "content/public/common/content_switches.h" |
| (...skipping 122 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 133 int rid; | 133 int rid; |
| 134 std::string origin; | 134 std::string origin; |
| 135 std::string audio_constraints; | 135 std::string audio_constraints; |
| 136 std::string video_constraints; | 136 std::string video_constraints; |
| 137 }; | 137 }; |
| 138 | 138 |
| 139 static const int64 FAKE_TIME_STAMP = 3600000; | 139 static const int64 FAKE_TIME_STAMP = 3600000; |
| 140 | 140 |
| 141 #if defined(OS_WIN) | 141 #if defined(OS_WIN) |
| 142 // All tests are flaky on Windows: crbug.com/277322. | 142 // All tests are flaky on Windows: crbug.com/277322. |
| 143 #define MAYBE_WebRTCInternalsBrowserTest DISABLED_WebRTCInternalsBrowserTest | 143 #define MAYBE_WebRtcInternalsBrowserTest DISABLED_WebRtcInternalsBrowserTest |
| 144 #else | 144 #else |
| 145 #define MAYBE_WebRTCInternalsBrowserTest WebRTCInternalsBrowserTest | 145 #define MAYBE_WebRtcInternalsBrowserTest WebRtcInternalsBrowserTest |
| 146 #endif | 146 #endif |
| 147 | 147 |
| 148 class MAYBE_WebRTCInternalsBrowserTest: public ContentBrowserTest { | 148 class MAYBE_WebRtcInternalsBrowserTest: public ContentBrowserTest { |
| 149 public: | 149 public: |
| 150 MAYBE_WebRTCInternalsBrowserTest() {} | 150 MAYBE_WebRtcInternalsBrowserTest() {} |
| 151 virtual ~MAYBE_WebRTCInternalsBrowserTest() {} | 151 virtual ~MAYBE_WebRtcInternalsBrowserTest() {} |
| 152 | 152 |
| 153 virtual void SetUpOnMainThread() OVERRIDE { | 153 virtual void SetUpOnMainThread() OVERRIDE { |
| 154 // We need fake devices in this test since we want to run on naked VMs. We | 154 // We need fake devices in this test since we want to run on naked VMs. We |
| 155 // assume these switches are set by default in content_browsertests. | 155 // assume these switches are set by default in content_browsertests. |
| 156 ASSERT_TRUE(CommandLine::ForCurrentProcess()->HasSwitch( | 156 ASSERT_TRUE(CommandLine::ForCurrentProcess()->HasSwitch( |
| 157 switches::kUseFakeDeviceForMediaStream)); | 157 switches::kUseFakeDeviceForMediaStream)); |
| 158 ASSERT_TRUE(CommandLine::ForCurrentProcess()->HasSwitch( | 158 ASSERT_TRUE(CommandLine::ForCurrentProcess()->HasSwitch( |
| 159 switches::kUseFakeUIForMediaStream)); | 159 switches::kUseFakeUIForMediaStream)); |
| 160 } | 160 } |
| 161 | 161 |
| (...skipping 307 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 469 value = NULL; | 469 value = NULL; |
| 470 pc_dump->Get("stats", &value); | 470 pc_dump->Get("stats", &value); |
| 471 EXPECT_EQ(base::Value::TYPE_DICTIONARY, value->GetType()); | 471 EXPECT_EQ(base::Value::TYPE_DICTIONARY, value->GetType()); |
| 472 | 472 |
| 473 base::DictionaryValue* dataSeries = | 473 base::DictionaryValue* dataSeries = |
| 474 static_cast<base::DictionaryValue*>(value); | 474 static_cast<base::DictionaryValue*>(value); |
| 475 EXPECT_EQ(stats.values.size(), dataSeries->size()); | 475 EXPECT_EQ(stats.values.size(), dataSeries->size()); |
| 476 } | 476 } |
| 477 }; | 477 }; |
| 478 | 478 |
| 479 IN_PROC_BROWSER_TEST_F(MAYBE_WebRTCInternalsBrowserTest, | 479 IN_PROC_BROWSER_TEST_F(MAYBE_WebRtcInternalsBrowserTest, |
| 480 AddAndRemovePeerConnection) { | 480 AddAndRemovePeerConnection) { |
| 481 GURL url("chrome://webrtc-internals"); | 481 GURL url("chrome://webrtc-internals"); |
| 482 NavigateToURL(shell(), url); | 482 NavigateToURL(shell(), url); |
| 483 | 483 |
| 484 // Add two PeerConnections and then remove them. | 484 // Add two PeerConnections and then remove them. |
| 485 PeerConnectionEntry pc_1(1, 0); | 485 PeerConnectionEntry pc_1(1, 0); |
| 486 ExecuteAddPeerConnectionJs(pc_1); | 486 ExecuteAddPeerConnectionJs(pc_1); |
| 487 VerifyPeerConnectionEntry(pc_1); | 487 VerifyPeerConnectionEntry(pc_1); |
| 488 | 488 |
| 489 PeerConnectionEntry pc_2(2, 1); | 489 PeerConnectionEntry pc_2(2, 1); |
| 490 ExecuteAddPeerConnectionJs(pc_2); | 490 ExecuteAddPeerConnectionJs(pc_2); |
| 491 VerifyPeerConnectionEntry(pc_2); | 491 VerifyPeerConnectionEntry(pc_2); |
| 492 | 492 |
| 493 ExecuteRemovePeerConnectionJs(pc_1); | 493 ExecuteRemovePeerConnectionJs(pc_1); |
| 494 VerifyNoElementWithId(pc_1.getIdString()); | 494 VerifyNoElementWithId(pc_1.getIdString()); |
| 495 VerifyPeerConnectionEntry(pc_2); | 495 VerifyPeerConnectionEntry(pc_2); |
| 496 | 496 |
| 497 ExecuteRemovePeerConnectionJs(pc_2); | 497 ExecuteRemovePeerConnectionJs(pc_2); |
| 498 VerifyNoElementWithId(pc_2.getIdString()); | 498 VerifyNoElementWithId(pc_2.getIdString()); |
| 499 } | 499 } |
| 500 | 500 |
| 501 IN_PROC_BROWSER_TEST_F(MAYBE_WebRTCInternalsBrowserTest, | 501 IN_PROC_BROWSER_TEST_F(MAYBE_WebRtcInternalsBrowserTest, |
| 502 UpdateAllPeerConnections) { | 502 UpdateAllPeerConnections) { |
| 503 GURL url("chrome://webrtc-internals"); | 503 GURL url("chrome://webrtc-internals"); |
| 504 NavigateToURL(shell(), url); | 504 NavigateToURL(shell(), url); |
| 505 | 505 |
| 506 PeerConnectionEntry pc_0(1, 0); | 506 PeerConnectionEntry pc_0(1, 0); |
| 507 pc_0.AddEvent("e1", "v1"); | 507 pc_0.AddEvent("e1", "v1"); |
| 508 pc_0.AddEvent("e2", "v2"); | 508 pc_0.AddEvent("e2", "v2"); |
| 509 PeerConnectionEntry pc_1(1, 1); | 509 PeerConnectionEntry pc_1(1, 1); |
| 510 pc_1.AddEvent("e3", "v3"); | 510 pc_1.AddEvent("e3", "v3"); |
| 511 pc_1.AddEvent("e4", "v4"); | 511 pc_1.AddEvent("e4", "v4"); |
| 512 string pc_array = "[" + pc_0.getAllUpdateString() + ", " + | 512 string pc_array = "[" + pc_0.getAllUpdateString() + ", " + |
| 513 pc_1.getAllUpdateString() + "]"; | 513 pc_1.getAllUpdateString() + "]"; |
| 514 EXPECT_TRUE(ExecuteJavascript("updateAllPeerConnections(" + pc_array + ");")); | 514 EXPECT_TRUE(ExecuteJavascript("updateAllPeerConnections(" + pc_array + ");")); |
| 515 VerifyPeerConnectionEntry(pc_0); | 515 VerifyPeerConnectionEntry(pc_0); |
| 516 VerifyPeerConnectionEntry(pc_1); | 516 VerifyPeerConnectionEntry(pc_1); |
| 517 } | 517 } |
| 518 | 518 |
| 519 IN_PROC_BROWSER_TEST_F(MAYBE_WebRTCInternalsBrowserTest, UpdatePeerConnection) { | 519 IN_PROC_BROWSER_TEST_F(MAYBE_WebRtcInternalsBrowserTest, UpdatePeerConnection) { |
| 520 GURL url("chrome://webrtc-internals"); | 520 GURL url("chrome://webrtc-internals"); |
| 521 NavigateToURL(shell(), url); | 521 NavigateToURL(shell(), url); |
| 522 | 522 |
| 523 // Add one PeerConnection and send one update. | 523 // Add one PeerConnection and send one update. |
| 524 PeerConnectionEntry pc_1(1, 0); | 524 PeerConnectionEntry pc_1(1, 0); |
| 525 ExecuteAddPeerConnectionJs(pc_1); | 525 ExecuteAddPeerConnectionJs(pc_1); |
| 526 | 526 |
| 527 ExecuteAndVerifyUpdatePeerConnection(pc_1, "e1", "v1"); | 527 ExecuteAndVerifyUpdatePeerConnection(pc_1, "e1", "v1"); |
| 528 | 528 |
| 529 // Add another PeerConnection and send two updates. | 529 // Add another PeerConnection and send two updates. |
| (...skipping 16 matching lines...) Expand all Loading... |
| 546 EXPECT_EQ(ssrc1.GetAsJSON(), GetSsrcInfo(ssrc1.id)); | 546 EXPECT_EQ(ssrc1.GetAsJSON(), GetSsrcInfo(ssrc1.id)); |
| 547 EXPECT_EQ(ssrc2.GetAsJSON(), GetSsrcInfo(ssrc2.id)); | 547 EXPECT_EQ(ssrc2.GetAsJSON(), GetSsrcInfo(ssrc2.id)); |
| 548 | 548 |
| 549 StatsUnit stats = {FAKE_TIME_STAMP}; | 549 StatsUnit stats = {FAKE_TIME_STAMP}; |
| 550 stats.values["ssrc"] = ssrc1.id; | 550 stats.values["ssrc"] = ssrc1.id; |
| 551 ExecuteAndVerifyAddStats(pc_2, "ssrc", "dummyId", stats); | 551 ExecuteAndVerifyAddStats(pc_2, "ssrc", "dummyId", stats); |
| 552 EXPECT_GT(GetSsrcInfoBlockCount(shell()), 0); | 552 EXPECT_GT(GetSsrcInfoBlockCount(shell()), 0); |
| 553 } | 553 } |
| 554 | 554 |
| 555 // Tests that adding random named stats updates the dataSeries and graphs. | 555 // Tests that adding random named stats updates the dataSeries and graphs. |
| 556 IN_PROC_BROWSER_TEST_F(MAYBE_WebRTCInternalsBrowserTest, AddStats) { | 556 IN_PROC_BROWSER_TEST_F(MAYBE_WebRtcInternalsBrowserTest, AddStats) { |
| 557 GURL url("chrome://webrtc-internals"); | 557 GURL url("chrome://webrtc-internals"); |
| 558 NavigateToURL(shell(), url); | 558 NavigateToURL(shell(), url); |
| 559 | 559 |
| 560 PeerConnectionEntry pc(1, 0); | 560 PeerConnectionEntry pc(1, 0); |
| 561 ExecuteAddPeerConnectionJs(pc); | 561 ExecuteAddPeerConnectionJs(pc); |
| 562 | 562 |
| 563 const string type = "ssrc"; | 563 const string type = "ssrc"; |
| 564 const string id = "ssrc-1234"; | 564 const string id = "ssrc-1234"; |
| 565 StatsUnit stats = {FAKE_TIME_STAMP}; | 565 StatsUnit stats = {FAKE_TIME_STAMP}; |
| 566 stats.values["trackId"] = "abcd"; | 566 stats.values["trackId"] = "abcd"; |
| 567 stats.values["bitrate"] = "2000"; | 567 stats.values["bitrate"] = "2000"; |
| 568 stats.values["framerate"] = "30"; | 568 stats.values["framerate"] = "30"; |
| 569 | 569 |
| 570 // Add new stats and verify the stats table and graphs. | 570 // Add new stats and verify the stats table and graphs. |
| 571 ExecuteAndVerifyAddStats(pc, type, id, stats); | 571 ExecuteAndVerifyAddStats(pc, type, id, stats); |
| 572 VerifyStatsGraph(pc); | 572 VerifyStatsGraph(pc); |
| 573 | 573 |
| 574 // Update existing stats and verify the stats table and graphs. | 574 // Update existing stats and verify the stats table and graphs. |
| 575 stats.values["bitrate"] = "2001"; | 575 stats.values["bitrate"] = "2001"; |
| 576 stats.values["framerate"] = "31"; | 576 stats.values["framerate"] = "31"; |
| 577 ExecuteAndVerifyAddStats(pc, type, id, stats); | 577 ExecuteAndVerifyAddStats(pc, type, id, stats); |
| 578 VerifyStatsGraph(pc); | 578 VerifyStatsGraph(pc); |
| 579 } | 579 } |
| 580 | 580 |
| 581 // Tests that the bandwidth estimation values are drawn on a single graph. | 581 // Tests that the bandwidth estimation values are drawn on a single graph. |
| 582 IN_PROC_BROWSER_TEST_F(MAYBE_WebRTCInternalsBrowserTest, BweCompoundGraph) { | 582 IN_PROC_BROWSER_TEST_F(MAYBE_WebRtcInternalsBrowserTest, BweCompoundGraph) { |
| 583 GURL url("chrome://webrtc-internals"); | 583 GURL url("chrome://webrtc-internals"); |
| 584 NavigateToURL(shell(), url); | 584 NavigateToURL(shell(), url); |
| 585 | 585 |
| 586 PeerConnectionEntry pc(1, 0); | 586 PeerConnectionEntry pc(1, 0); |
| 587 ExecuteAddPeerConnectionJs(pc); | 587 ExecuteAddPeerConnectionJs(pc); |
| 588 | 588 |
| 589 StatsUnit stats = {FAKE_TIME_STAMP}; | 589 StatsUnit stats = {FAKE_TIME_STAMP}; |
| 590 stats.values["googAvailableSendBandwidth"] = "1000000"; | 590 stats.values["googAvailableSendBandwidth"] = "1000000"; |
| 591 stats.values["googTargetEncBitrate"] = "1000"; | 591 stats.values["googTargetEncBitrate"] = "1000"; |
| 592 stats.values["googActualEncBitrate"] = "1000000"; | 592 stats.values["googActualEncBitrate"] = "1000000"; |
| (...skipping 19 matching lines...) Expand all Loading... |
| 612 ASSERT_TRUE(ExecuteScriptAndExtractInt( | 612 ASSERT_TRUE(ExecuteScriptAndExtractInt( |
| 613 shell()->web_contents(), | 613 shell()->web_contents(), |
| 614 "window.domAutomationController.send(" | 614 "window.domAutomationController.send(" |
| 615 " graphViews['" + graph_id + "'].getDataSeriesCount())", | 615 " graphViews['" + graph_id + "'].getDataSeriesCount())", |
| 616 &count)); | 616 &count)); |
| 617 EXPECT_EQ((int)stats.values.size(), count); | 617 EXPECT_EQ((int)stats.values.size(), count); |
| 618 } | 618 } |
| 619 | 619 |
| 620 // Tests that the total packet/byte count is converted to count per second, | 620 // Tests that the total packet/byte count is converted to count per second, |
| 621 // and the converted data is drawn. | 621 // and the converted data is drawn. |
| 622 IN_PROC_BROWSER_TEST_F(MAYBE_WebRTCInternalsBrowserTest, ConvertedGraphs) { | 622 IN_PROC_BROWSER_TEST_F(MAYBE_WebRtcInternalsBrowserTest, ConvertedGraphs) { |
| 623 GURL url("chrome://webrtc-internals"); | 623 GURL url("chrome://webrtc-internals"); |
| 624 NavigateToURL(shell(), url); | 624 NavigateToURL(shell(), url); |
| 625 | 625 |
| 626 PeerConnectionEntry pc(1, 0); | 626 PeerConnectionEntry pc(1, 0); |
| 627 ExecuteAddPeerConnectionJs(pc); | 627 ExecuteAddPeerConnectionJs(pc); |
| 628 | 628 |
| 629 const string stats_type = "s"; | 629 const string stats_type = "s"; |
| 630 const string stats_id = "1"; | 630 const string stats_id = "1"; |
| 631 const int num_converted_stats = 4; | 631 const int num_converted_stats = 4; |
| 632 const string stats_names[] = | 632 const string stats_names[] = |
| (...skipping 21 matching lines...) Expand all Loading... |
| 654 // Verifies the graph data matches converted_values. | 654 // Verifies the graph data matches converted_values. |
| 655 for (int i = 0; i < num_converted_stats; ++i) { | 655 for (int i = 0; i < num_converted_stats; ++i) { |
| 656 VerifyGraphDataPoint(pc.getIdString(), stats_id + "-" + converted_names[i], | 656 VerifyGraphDataPoint(pc.getIdString(), stats_id + "-" + converted_names[i], |
| 657 1, converted_values[i]); | 657 1, converted_values[i]); |
| 658 } | 658 } |
| 659 } | 659 } |
| 660 | 660 |
| 661 // Timing out on ARM linux bot: http://crbug.com/238490 | 661 // Timing out on ARM linux bot: http://crbug.com/238490 |
| 662 // Disabling due to failure on Linux, Mac, Win: http://crbug.com/272413 | 662 // Disabling due to failure on Linux, Mac, Win: http://crbug.com/272413 |
| 663 // Sanity check of the page content under a real PeerConnection call. | 663 // Sanity check of the page content under a real PeerConnection call. |
| 664 IN_PROC_BROWSER_TEST_F(MAYBE_WebRTCInternalsBrowserTest, | 664 IN_PROC_BROWSER_TEST_F(MAYBE_WebRtcInternalsBrowserTest, |
| 665 DISABLED_WithRealPeerConnectionCall) { | 665 DISABLED_WithRealPeerConnectionCall) { |
| 666 // Start a peerconnection call in the first window. | 666 // Start a peerconnection call in the first window. |
| 667 ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady()); | 667 ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady()); |
| 668 GURL url(embedded_test_server()->GetURL("/media/peerconnection-call.html")); | 668 GURL url(embedded_test_server()->GetURL("/media/peerconnection-call.html")); |
| 669 NavigateToURL(shell(), url); | 669 NavigateToURL(shell(), url); |
| 670 ASSERT_TRUE(ExecuteJavascript("call({video:true});")); | 670 ASSERT_TRUE(ExecuteJavascript("call({video:true});")); |
| 671 ExpectTitle("OK"); | 671 ExpectTitle("OK"); |
| 672 | 672 |
| 673 // Open webrtc-internals in the second window. | 673 // Open webrtc-internals in the second window. |
| 674 GURL url2("chrome://webrtc-internals"); | 674 GURL url2("chrome://webrtc-internals"); |
| (...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 737 "}" | 737 "}" |
| 738 "window.domAutomationController.send(result);", | 738 "window.domAutomationController.send(result);", |
| 739 &result)); | 739 &result)); |
| 740 | 740 |
| 741 EXPECT_TRUE(result); | 741 EXPECT_TRUE(result); |
| 742 | 742 |
| 743 count = GetSsrcInfoBlockCount(shell2); | 743 count = GetSsrcInfoBlockCount(shell2); |
| 744 EXPECT_GT(count, 0); | 744 EXPECT_GT(count, 0); |
| 745 } | 745 } |
| 746 | 746 |
| 747 IN_PROC_BROWSER_TEST_F(MAYBE_WebRTCInternalsBrowserTest, CreatePageDump) { | 747 IN_PROC_BROWSER_TEST_F(MAYBE_WebRtcInternalsBrowserTest, CreatePageDump) { |
| 748 GURL url("chrome://webrtc-internals"); | 748 GURL url("chrome://webrtc-internals"); |
| 749 NavigateToURL(shell(), url); | 749 NavigateToURL(shell(), url); |
| 750 | 750 |
| 751 PeerConnectionEntry pc_0(1, 0); | 751 PeerConnectionEntry pc_0(1, 0); |
| 752 pc_0.AddEvent("e1", "v1"); | 752 pc_0.AddEvent("e1", "v1"); |
| 753 pc_0.AddEvent("e2", "v2"); | 753 pc_0.AddEvent("e2", "v2"); |
| 754 PeerConnectionEntry pc_1(1, 1); | 754 PeerConnectionEntry pc_1(1, 1); |
| 755 pc_1.AddEvent("e3", "v3"); | 755 pc_1.AddEvent("e3", "v3"); |
| 756 pc_1.AddEvent("e4", "v4"); | 756 pc_1.AddEvent("e4", "v4"); |
| 757 string pc_array = | 757 string pc_array = |
| (...skipping 24 matching lines...) Expand all Loading... |
| 782 | 782 |
| 783 ASSERT_TRUE(ExecuteScriptAndExtractString( | 783 ASSERT_TRUE(ExecuteScriptAndExtractString( |
| 784 shell()->web_contents(), | 784 shell()->web_contents(), |
| 785 "window.domAutomationController.send(" | 785 "window.domAutomationController.send(" |
| 786 "JSON.stringify(peerConnectionDataStore));", | 786 "JSON.stringify(peerConnectionDataStore));", |
| 787 &dump_json)); | 787 &dump_json)); |
| 788 dump.reset(base::JSONReader::Read(dump_json)); | 788 dump.reset(base::JSONReader::Read(dump_json)); |
| 789 VerifyStatsDump(dump.get(), pc_0, type, id, stats); | 789 VerifyStatsDump(dump.get(), pc_0, type, id, stats); |
| 790 } | 790 } |
| 791 | 791 |
| 792 IN_PROC_BROWSER_TEST_F(MAYBE_WebRTCInternalsBrowserTest, UpdateGetUserMedia) { | 792 IN_PROC_BROWSER_TEST_F(MAYBE_WebRtcInternalsBrowserTest, UpdateGetUserMedia) { |
| 793 GURL url("chrome://webrtc-internals"); | 793 GURL url("chrome://webrtc-internals"); |
| 794 NavigateToURL(shell(), url); | 794 NavigateToURL(shell(), url); |
| 795 | 795 |
| 796 UserMediaRequestEntry request1(1, 1, "origin", "ac", "vc"); | 796 UserMediaRequestEntry request1(1, 1, "origin", "ac", "vc"); |
| 797 UserMediaRequestEntry request2(2, 2, "origin2", "ac2", "vc2"); | 797 UserMediaRequestEntry request2(2, 2, "origin2", "ac2", "vc2"); |
| 798 ExecuteAddGetUserMediaJs(request1); | 798 ExecuteAddGetUserMediaJs(request1); |
| 799 ExecuteAddGetUserMediaJs(request2); | 799 ExecuteAddGetUserMediaJs(request2); |
| 800 | 800 |
| 801 std::vector<UserMediaRequestEntry> list; | 801 std::vector<UserMediaRequestEntry> list; |
| 802 list.push_back(request1); | 802 list.push_back(request1); |
| 803 list.push_back(request2); | 803 list.push_back(request2); |
| 804 VerifyUserMediaRequest(list); | 804 VerifyUserMediaRequest(list); |
| 805 | 805 |
| 806 ExecuteRemoveGetUserMediaForRendererJs(1); | 806 ExecuteRemoveGetUserMediaForRendererJs(1); |
| 807 list.erase(list.begin()); | 807 list.erase(list.begin()); |
| 808 VerifyUserMediaRequest(list); | 808 VerifyUserMediaRequest(list); |
| 809 | 809 |
| 810 ExecuteRemoveGetUserMediaForRendererJs(2); | 810 ExecuteRemoveGetUserMediaForRendererJs(2); |
| 811 list.erase(list.begin()); | 811 list.erase(list.begin()); |
| 812 VerifyUserMediaRequest(list); | 812 VerifyUserMediaRequest(list); |
| 813 } | 813 } |
| 814 } // namespace content | 814 } // namespace content |
| OLD | NEW |