OLD | NEW |
---|---|
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> |
OLD | NEW |