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

Side by Side Diff: LayoutTests/fast/mediastream/RTCPeerConnection-lifetime.html

Issue 329093002: Allow PeerConnection to be garbage collected after close(). (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Code review. Created 6 years, 6 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 | Annotate | Revision Log
OLDNEW
1 <!DOCTYPE html> 1 <!DOCTYPE html>
2 <html> 2 <html>
3 <head> 3 <head>
4 <script src="../../resources/js-test.js"></script> 4 <script src="../../resources/js-test.js"></script>
5 </head> 5 </head>
6 <body> 6 <body>
7 <script> 7 <script>
8 description("Tests the RTCPeerConnection lifetime."); 8 description("Tests the RTCPeerConnection lifetime.");
9 9
10 // This test times out if the Peer connection object is garbage collected.
11
12 var dc = null; 10 var dc = null;
13 11
14 function dataChannelMessage(m) 12 function dataChannelMessage(m)
15 { 13 {
16 testPassed("dataChannelMessage"); 14 testPassed("dataChannelMessage");
17 finishJSTest(); 15 finishJSTest();
18 } 16 }
19 17
20 function dataChannelOpen() 18 function dataChannelOpen()
21 { 19 {
22 testPassed("dataChannelOpen"); 20 testPassed("dataChannelOpen");
23 dc.onmessage = dataChannelMessage; 21 dc.onmessage = dataChannelMessage;
24 shouldNotThrow("dc.send('xyzzy');"); 22 shouldNotThrow("dc.send('xyzzy');");
25 } 23 }
26 24
27 function createPeerConnection() 25 function createPeerConnectionAndDataChannel()
28 { 26 {
29 // The Peer Connection object is leaked 27 // The Peer Connection object is leaked
30 var pc = new webkitRTCPeerConnection({iceServers:[]}, null); 28 var pc = new webkitRTCPeerConnection({iceServers:[]}, null);
31 dc = pc.createDataChannel("label"); 29 dc = pc.createDataChannel("label");
32 dc.onopen = dataChannelOpen; 30 dc.onopen = dataChannelOpen;
33 } 31 }
34 32
35 createPeerConnection(); 33 var pcB = null;
36 gc(); 34 var observationB = null;
35
36 // Test that the PeerConnection object is gc'd if close is called.
37 var pcA = new webkitRTCPeerConnection(null, null);
38 var observationA = internals.observeGC(pcA);
39 pcA.close();
40 pcA = null;
41 asyncGC(function() {
42 shouldBeTrue('observationA.wasCollected');
43 observationA = null;
44
45 // Test that the PeerConnection object is not gc'd if close is not called.
46 pcB = new webkitRTCPeerConnection(null, null);
47 observationB = internals.observeGC(pcB);
48 pcB = null;
49 asyncGC(function() {
50 shouldBeFalse('observationB.wasCollected');
51 observationB = null;
52
53 // This test times out if the Peer connection object is garbage collecte d.
54 createPeerConnectionAndDataChannel();
55 asyncGC(function() {});
keishi 2014/06/17 11:12:04 nit: if we aren't using the callback, asyncGC() an
haraken 2014/06/17 11:43:45 I think you can just remove this asyncGC().
Henrik Grunell 2014/06/17 12:12:21 Changed to gc(). I think the point is (this test w
56 });
57 });
37 58
38 window.jsTestIsAsync = true; 59 window.jsTestIsAsync = true;
39 window.successfullyParsed = true; 60 window.successfullyParsed = true;
keishi 2014/06/17 11:12:04 nit: successfullyParsed is handled in js-test.js n
Henrik Grunell 2014/06/17 12:12:20 Done.
40 </script> 61 </script>
41 </body> 62 </body>
42 </html> 63 </html>
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698