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