OLD | NEW |
1 <!DOCTYPE html> | 1 <!DOCTYPE html> |
2 <html> | 2 <html> |
3 <head> | 3 <head> |
4 <title>Test MediaKeySession lifetime without release()</title> | 4 <title>Test MediaKeySession lifetime without 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 | 18 |
19 async_test(function(test) | 19 async_test(function(test) |
20 { | 20 { |
21 var mediaKeys; | 21 var mediaKeys; |
22 var mediaKeySession1; | 22 var mediaKeySession1; |
23 var mediaKeySession2; | 23 var mediaKeySession2; |
24 var mediaKeySession3; | 24 var mediaKeySession3; |
25 var initDataType = getInitDataType(); | 25 var initDataType; |
26 var initData = getInitData(initDataType); | 26 var initData; |
27 var startingActiveDOMObjectCount = window.internals.activeDOMObj
ectCount(document); | 27 var startingActiveDOMObjectCount = window.internals.activeDOMObj
ectCount(document); |
28 | 28 |
29 function numActiveDOMObjectsCreated() | 29 function numActiveDOMObjectsCreated() |
30 { | 30 { |
31 return window.internals.activeDOMObjectCount(document) - sta
rtingActiveDOMObjectCount; | 31 return window.internals.activeDOMObjectCount(document) - sta
rtingActiveDOMObjectCount; |
32 } | 32 } |
33 | 33 |
34 navigator.requestMediaKeySystemAccess('org.w3.clearkey', [{}]).t
hen(function(access) { | 34 getSupportedInitDataType().then(function(type) { |
| 35 initDataType = type; |
| 36 initData = getInitData(initDataType); |
| 37 return navigator.requestMediaKeySystemAccess('org.w3.clearke
y', [{}]); |
| 38 }).then(function(access) { |
35 assert_equals(access.keySystem, 'org.w3.clearkey'); | 39 assert_equals(access.keySystem, 'org.w3.clearkey'); |
36 return access.createMediaKeys(); | 40 return access.createMediaKeys(); |
37 }).then(function(result) { | 41 }).then(function(result) { |
38 mediaKeys = result; | 42 mediaKeys = result; |
39 assert_equals(typeof mediaKeys.createSession, 'function'); | 43 assert_equals(typeof mediaKeys.createSession, 'function'); |
40 | 44 |
41 // Verify MediaKeys are not an ActiveDOMObject. | 45 // Verify MediaKeys are not an ActiveDOMObject. |
42 // In non-Oilpan, numActiveDOMObjectsCreate() == 0. | 46 // In non-Oilpan, numActiveDOMObjectsCreate() == 0. |
43 // In Oilpan, numActiveDOMObjetsCreated() <= 2. | 47 // In Oilpan, numActiveDOMObjetsCreated() <= 2. |
44 // (1 MediaKeysInitializer and | 48 // (1 MediaKeysInitializer and |
(...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
125 }).then(function(result) { | 129 }).then(function(result) { |
126 assert_less_than_equal(numActiveDOMObjectsCreated(), 1); | 130 assert_less_than_equal(numActiveDOMObjectsCreated(), 1); |
127 test.done(); | 131 test.done(); |
128 }).catch(function(error) { | 132 }).catch(function(error) { |
129 forceTestFailureFromPromise(test, error); | 133 forceTestFailureFromPromise(test, error); |
130 }); | 134 }); |
131 }, 'MediaKeySession lifetime without release()'); | 135 }, 'MediaKeySession lifetime without release()'); |
132 </script> | 136 </script> |
133 </body> | 137 </body> |
134 </html> | 138 </html> |
OLD | NEW |