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

Side by Side Diff: third_party/WebKit/LayoutTests/fast/peerconnection/RTCPeerConnection-lifetime.html

Issue 2446173002: Use RTCPeerConnection instead of webkitRTCPeerConnection (Closed)
Patch Set: rebase Created 4 years, 1 month 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
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 var dc = null; 10 var dc = null;
11 11
12 function dataChannelMessage(m) 12 function dataChannelMessage(m)
13 { 13 {
14 testPassed("dataChannelMessage"); 14 testPassed("dataChannelMessage");
15 finishJSTest(); 15 finishJSTest();
16 } 16 }
17 17
18 function dataChannelOpen() 18 function dataChannelOpen()
19 { 19 {
20 testPassed("dataChannelOpen"); 20 testPassed("dataChannelOpen");
21 dc.onmessage = dataChannelMessage; 21 dc.onmessage = dataChannelMessage;
22 shouldNotThrow("dc.send('xyzzy');"); 22 shouldNotThrow("dc.send('xyzzy');");
23 } 23 }
24 24
25 function createPeerConnectionAndDataChannel() 25 function createPeerConnectionAndDataChannel()
26 { 26 {
27 // The Peer Connection object is leaked 27 // The Peer Connection object is leaked
28 var pc = new webkitRTCPeerConnection({iceServers:[]}, null); 28 var pc = new RTCPeerConnection();
29 dc = pc.createDataChannel("label"); 29 dc = pc.createDataChannel("label");
30 dc.onopen = dataChannelOpen; 30 dc.onopen = dataChannelOpen;
31 } 31 }
32 32
33 var pcB = null; 33 var pcB = null;
34 var observationB = null; 34 var observationB = null;
35 35
36 // Test that the PeerConnection object is gc'd if close is called. 36 // Test that the PeerConnection object is gc'd if close is called.
37 var pcA = new webkitRTCPeerConnection(null, null); 37 var pcA = new RTCPeerConnection();
38 // Do not pass the object directly to observeGC function. This may 38 // Do not pass the object directly to observeGC function. This may
39 // remain live on this function's stack preventing GC from collecting 39 // remain live on this function's stack preventing GC from collecting
40 // it. Accessing the object inside an inner function will prevent any 40 // it. Accessing the object inside an inner function will prevent any
41 // unneeded references on this function's stack. 41 // unneeded references on this function's stack.
42 var observationA = internals.observeGC((() => {return pcA;})()); 42 var observationA = internals.observeGC((() => {return pcA;})());
43 pcA.close(); 43 pcA.close();
44 pcA = null; 44 pcA = null;
45 asyncGC(function() { 45 asyncGC(function() {
46 shouldBeTrue('observationA.wasCollected'); 46 shouldBeTrue('observationA.wasCollected');
47 observationA = null; 47 observationA = null;
48 48
49 // Test that the PeerConnection object is not gc'd if close is not called. 49 // Test that the PeerConnection object is not gc'd if close is not called.
50 pcB = new webkitRTCPeerConnection(null, null); 50 pcB = new RTCPeerConnection();
51 // Do not pass the object directly to observeGC function. This may 51 // Do not pass the object directly to observeGC function. This may
52 // remain live on this function's stack preventing GC from collecting 52 // remain live on this function's stack preventing GC from collecting
53 // it. Accessing the object inside an inner function will prevent any 53 // it. Accessing the object inside an inner function will prevent any
54 // unneeded references on this function's stack. 54 // unneeded references on this function's stack.
55 observationB = internals.observeGC((() => {return pcB;})()); 55 observationB = internals.observeGC((() => {return pcB;})());
56 pcB = null; 56 pcB = null;
57 asyncGC(function() { 57 asyncGC(function() {
58 shouldBeFalse('observationB.wasCollected'); 58 shouldBeFalse('observationB.wasCollected');
59 observationB = null; 59 observationB = null;
60 60
61 // This test times out if the Peer connection object is garbage collecte d. 61 // This test times out if the Peer connection object is garbage collecte d.
62 createPeerConnectionAndDataChannel(); 62 createPeerConnectionAndDataChannel();
63 gc(); 63 gc();
64 }); 64 });
65 }); 65 });
66 66
67 window.jsTestIsAsync = true; 67 window.jsTestIsAsync = true;
68 </script> 68 </script>
69 </body> 69 </body>
70 </html> 70 </html>
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698