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

Side by Side Diff: LayoutTests/media/encrypted-media/encrypted-media-lifetime-mediakeysession-release-noreference.html

Issue 783423003: Make ScriptPromiseResolver RefCountedWillBeRefCountedGarbageCollected. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Created 6 years 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 <title>Test MediaKeySession lifetime after release() without references< /title> 4 <title>Test MediaKeySession lifetime after release() without references< /title>
5 <script src="encrypted-media-utils.js"></script> 5 <script src="encrypted-media-utils.js"></script>
6 <script src="../../resources/testharness.js"></script> 6 <script src="../../resources/testharness.js"></script>
7 <script src="../../resources/testharnessreport.js"></script> 7 <script src="../../resources/testharnessreport.js"></script>
8 </head> 8 </head>
9 <body> 9 <body>
10 <div id="log"></div> 10 <div id="log"></div>
(...skipping 18 matching lines...) Expand all
29 // Create 2 sessions. 29 // Create 2 sessions.
30 var mediaKeys; 30 var mediaKeys;
31 var mediaKeySession1; 31 var mediaKeySession1;
32 var mediaKeySession2; 32 var mediaKeySession2;
33 navigator.requestMediaKeySystemAccess('org.w3.clearkey').then(fu nction(access) { 33 navigator.requestMediaKeySystemAccess('org.w3.clearkey').then(fu nction(access) {
34 return access.createMediaKeys(); 34 return access.createMediaKeys();
35 }).then(function(result) { 35 }).then(function(result) {
36 mediaKeys = result; 36 mediaKeys = result;
37 37
38 // Verify MediaKeys are not an ActiveDOMObject. 38 // Verify MediaKeys are not an ActiveDOMObject.
39 assert_equals(numActiveDOMObjectsCreated(), 0, 'MediaKeys.cr eate()'); 39 // In non-Oilpan, numActiveDOMObjectsCreate() == 0.
40 // In Oilpan, numActiveDOMObjectsCreate() <= 2.
41 // (1 MediaKeysInitializer and
42 // 1 MediaKeySystemAccessInitializer).
43 assert_less_than_equal(numActiveDOMObjectsCreated(), 2, 'Med iaKeys.create()');
40 44
41 mediaKeySession1 = mediaKeys.createSession(); 45 mediaKeySession1 = mediaKeys.createSession();
42 return mediaKeySession1.generateRequest(initDataType, initDa ta); 46 return mediaKeySession1.generateRequest(initDataType, initDa ta);
43 }).then(function() { 47 }).then(function() {
44 assert_true(mediaKeySession1.sessionId && mediaKeySession1.s essionId.length > 0); 48 assert_true(mediaKeySession1.sessionId && mediaKeySession1.s essionId.length > 0);
45 // Should be 1 MediaKeySession. 49 // Should be 1 MediaKeySession.
46 assert_equals(numActiveDOMObjectsCreated(), 1, 'mediaKeys.cr eateSession(1)'); 50 // In non-Oilpan, numActiveDOMObjectsCreate() == 1.
51 // In Oilpan, numActiveDOMObjectsCreate() <= 4.
52 // (1 MediaKeysInitializer,
53 // 1 MediaKeySystemAccessInitializer,
54 // 1 ContentDecryptionModuleResultPromise and
55 // 1 MediaKeySession).
56 assert_less_than_equal(numActiveDOMObjectsCreated(), 4, 'Med iaKeys.createSession(1)');
47 mediaKeySession2 = mediaKeys.createSession(); 57 mediaKeySession2 = mediaKeys.createSession();
48 return mediaKeySession2.generateRequest(initDataType, initDa ta); 58 return mediaKeySession2.generateRequest(initDataType, initDa ta);
49 }).then(function() { 59 }).then(function() {
50 assert_true(mediaKeySession2.sessionId && mediaKeySession2.s essionId.length > 0); 60 assert_true(mediaKeySession2.sessionId && mediaKeySession2.s essionId.length > 0);
51 // Should be 2 MediaKeySessions. 61 // Should be 2 MediaKeySessions.
52 assert_equals(numActiveDOMObjectsCreated(), 2, 'mediaKeys.cr eateSession(2)'); 62 // In non-Oilpan, numActiveDOMObjectsCreate() == 2.
63 // In Oilpan, numActiveDOMObjectsCreate() <= 6.
64 // (1 MediaKeysInitializer,
65 // 1 MediaKeySystemAccessInitializer,
66 // 2 ContentDecryptionModuleResultPromise and
67 // 2 MediaKeySession).
68 assert_less_than_equal(numActiveDOMObjectsCreated(), 6, 'med iaKeys.createSession(2)');
53 }).then(function(result) { 69 }).then(function(result) {
54 // Run gc(). All sessions should remain as we have a 70 // Run gc(). All sessions should remain as we have a
55 // reference to each one. 71 // reference to each one.
56 return createGCPromise(); 72 return createGCPromise();
57 }).then(function(result) { 73 }).then(function(result) {
58 // Should be just the 2 MediaKeySessions. 74 // Should be just the 2 MediaKeySessions.
59 assert_equals(numActiveDOMObjectsCreated(), 2, 'After gc()') ; 75 assert_equals(numActiveDOMObjectsCreated(), 2, 'After gc()') ;
60 76
61 // Close the sessions. Once the close() event is received, 77 // Close the sessions. Once the close() event is received,
62 // they should get garbage collected as there are no JS 78 // they should get garbage collected as there are no JS
(...skipping 23 matching lines...) Expand all
86 assert_equals(numActiveDOMObjectsCreated(), 0); 102 assert_equals(numActiveDOMObjectsCreated(), 0);
87 assert_not_equals(mediaKeys, null); 103 assert_not_equals(mediaKeys, null);
88 test.done(); 104 test.done();
89 }).catch(function(error) { 105 }).catch(function(error) {
90 forceTestFailureFromPromise(test, error); 106 forceTestFailureFromPromise(test, error);
91 }); 107 });
92 }, 'MediaKeySession lifetime after release() without references'); 108 }, 'MediaKeySession lifetime after release() without references');
93 </script> 109 </script>
94 </body> 110 </body>
95 </html> 111 </html>
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698