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

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

Issue 1004843003: Use requestMediaKeySystemAccess() to check type support in EME layout tests (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Changes Created 5 years, 9 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
OLDNEW
1 <!DOCTYPE html> 1 <!DOCTYPE html>
2 <html> 2 <html>
3 <head> 3 <head>
4 <title>MediaKeySession lifetime after release()</title> 4 <title>MediaKeySession lifetime after release()</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>
11 <script> 11 <script>
12 // Since MediaKeySession (but not MediaKeys) are ActiveDOMObjects, 12 // Since MediaKeySession (but not MediaKeys) are ActiveDOMObjects,
13 // we can determine when they are garbage collected. 13 // we can determine when they are garbage collected.
14 // MediaKeySessions remain as long as: 14 // MediaKeySessions remain as long as:
15 // JavaScript has a reference to it 15 // JavaScript has a reference to it
16 // OR (MediaKeys is around 16 // OR (MediaKeys is around
17 // AND the session has not received a close() event) 17 // AND the session has not received a close() event)
18 async_test(function(test) 18 async_test(function(test)
19 { 19 {
20 var mediaKeys; 20 var mediaKeys;
21 var mediaKeySession1; 21 var mediaKeySession1;
22 var mediaKeySession2; 22 var mediaKeySession2;
23 var initDataType = getInitDataType(); 23 var initDataType;
24 var initData = getInitData(initDataType); 24 var initData;
25 var startingActiveDOMObjectCount = window.internals.activeDOMObj ectCount(document); 25 var startingActiveDOMObjectCount = window.internals.activeDOMObj ectCount(document);
26 26
27 function numActiveDOMObjectsCreated() 27 function numActiveDOMObjectsCreated()
28 { 28 {
29 return window.internals.activeDOMObjectCount(document) - sta rtingActiveDOMObjectCount; 29 return window.internals.activeDOMObjectCount(document) - sta rtingActiveDOMObjectCount;
30 } 30 }
31 31
32 // Create 2 sessions. 32 // Create 2 sessions.
33 navigator.requestMediaKeySystemAccess('org.w3.clearkey', [{}]).t hen(function(access) { 33 getSupportedInitDataType().then(function(type) {
34 initDataType = type;
35 initData = getInitData(initDataType);
36 return navigator.requestMediaKeySystemAccess('org.w3.clearke y', [{}]);
37 }).then(function(access) {
34 return access.createMediaKeys(); 38 return access.createMediaKeys();
35 }).then(function(result) { 39 }).then(function(result) {
36 mediaKeys = result; 40 mediaKeys = result;
37 41
38 // Verify MediaKeys are not an ActiveDOMObject. 42 // Verify MediaKeys are not an ActiveDOMObject.
39 // In non-Oilpan, numActiveDOMObjectsCreate() == 0. 43 // In non-Oilpan, numActiveDOMObjectsCreate() == 0.
40 // In Oilpan, numActiveDOMObjectsCreate() <= 2. 44 // In Oilpan, numActiveDOMObjectsCreate() <= 2.
41 // (1 MediaKeysInitializer and 45 // (1 MediaKeysInitializer and
42 // 1 MediaKeySystemAccessInitializer). 46 // 1 MediaKeySystemAccessInitializer).
43 assert_less_than_equal(numActiveDOMObjectsCreated(), 2, 'Med iaKeys.create()'); 47 assert_less_than_equal(numActiveDOMObjectsCreated(), 2, 'Med iaKeys.create()');
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
93 }).then(function(result) { 97 }).then(function(result) {
94 assert_less_than_equal(numActiveDOMObjectsCreated(), 1, 'med iaKeySession2 not collected'); 98 assert_less_than_equal(numActiveDOMObjectsCreated(), 1, 'med iaKeySession2 not collected');
95 test.done(); 99 test.done();
96 }).catch(function(error) { 100 }).catch(function(error) {
97 forceTestFailureFromPromise(test, error); 101 forceTestFailureFromPromise(test, error);
98 }); 102 });
99 }, 'MediaKeySession lifetime after release()'); 103 }, 'MediaKeySession lifetime after release()');
100 </script> 104 </script>
101 </body> 105 </body>
102 </html> 106 </html>
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698