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

Side by Side Diff: third_party/WebKit/LayoutTests/media/encrypted-media/encrypted-media-lifetime-multiple-mediakeys.html

Issue 2587913002: Rename activeDOMObjectsAreSuspended to isContextSuspended (Closed)
Patch Set: temp Created 3 years, 12 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>Test multiple MediaKeys lifetimes</title> 4 <title>Test multiple MediaKeys lifetimes</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 <script> 10 <script>
11 // For this test, create several MediaKeys and verify lifetime. 11 // For this test, create several MediaKeys and verify lifetime.
12 async_test(function(test) 12 async_test(function(test)
13 { 13 {
14 var mediaKeys; 14 var mediaKeys;
15 var startingActiveDOMObjectCount = window.internals.activeDOMObj ectCount(document); 15 var startingSuspendableObjectCount = window.internals.suspendabl eObjectCount(document);
16 16
17 function numActiveDOMObjectsCreated() 17 function numSuspendableObjectsCreated()
18 { 18 {
19 return window.internals.activeDOMObjectCount(document) - sta rtingActiveDOMObjectCount; 19 return window.internals.suspendableObjectCount(document) - s tartingSuspendableObjectCount;
20 } 20 }
21 21
22 // Create a MediaKeys object. Returns a promise that resolves 22 // Create a MediaKeys object. Returns a promise that resolves
23 // with the new MediaKeys object. 23 // with the new MediaKeys object.
24 function createMediaKeys() 24 function createMediaKeys()
25 { 25 {
26 return navigator.requestMediaKeySystemAccess('org.w3.clearke y', getSimpleConfiguration()).then(function(access) { 26 return navigator.requestMediaKeySystemAccess('org.w3.clearke y', getSimpleConfiguration()).then(function(access) {
27 return access.createMediaKeys(); 27 return access.createMediaKeys();
28 }).then(function(mediaKeys) { 28 }).then(function(mediaKeys) {
29 return mediaKeys; 29 return mediaKeys;
30 }); 30 });
31 } 31 }
32 32
33 // Create a few MediaKeys objects. Only keep a reference to the 33 // Create a few MediaKeys objects. Only keep a reference to the
34 // last one created. 34 // last one created.
35 createMediaKeys().then(function(result) { 35 createMediaKeys().then(function(result) {
36 // Should be 1 MediaKeys. 36 // Should be 1 MediaKeys.
37 // In non-Oilpan, numActiveDOMObjectsCreate() == 1. 37 // In non-Oilpan, numSuspendableObjectsCreate() == 1.
38 // In Oilpan, numActiveDOMObjectsCreated() <= 4. 38 // In Oilpan, numSuspendableObjectsCreated() <= 4.
39 // (1 MediaKeysInitializer, 39 // (1 MediaKeysInitializer,
40 // 1 MediaKeySystemAccessInitializer (navigator.requestMedi aKeySystemAccess() use above), 40 // 1 MediaKeySystemAccessInitializer (navigator.requestMedi aKeySystemAccess() use above),
41 // 1 MediaKeySystemAccessInitializer (isInitDataSupported() (via getSupportedInitDataType())) and 41 // 1 MediaKeySystemAccessInitializer (isInitDataSupported() (via getSupportedInitDataType())) and
42 // 1 ContentDecryptionModuleResultPromise). 42 // 1 ContentDecryptionModuleResultPromise).
43 assert_between_inclusive(numActiveDOMObjectsCreated(), 1, 4) ; 43 assert_between_inclusive(numSuspendableObjectsCreated(), 1, 4);
44 44
45 return createMediaKeys(); 45 return createMediaKeys();
46 }).then(function(result) { 46 }).then(function(result) {
47 // Should be 2 MediaKeys. 47 // Should be 2 MediaKeys.
48 // In non-Oilpan, numActiveDOMObjectsCreate() == 2. 48 // In non-Oilpan, numSuspendableObjectsCreate() == 2.
49 // In Oilpan, numActiveDOMObjectsCreate() <= 8. 49 // In Oilpan, numSuspendableObjectsCreate() <= 8.
50 // (2 MediaKeysInitializer, 50 // (2 MediaKeysInitializer,
51 // 4 MediaKeySystemAccessInitializer and 51 // 4 MediaKeySystemAccessInitializer and
52 // 2 ContentDecryptionModuleResultPromise). 52 // 2 ContentDecryptionModuleResultPromise).
53 assert_between_inclusive(numActiveDOMObjectsCreated(), 2, 8) ; 53 assert_between_inclusive(numSuspendableObjectsCreated(), 2, 8);
54 54
55 return createMediaKeys(); 55 return createMediaKeys();
56 }).then(function(result) { 56 }).then(function(result) {
57 // Should be 3 MediaKeys. 57 // Should be 3 MediaKeys.
58 // In non-Oilpan, numActiveDOMObjectsCreate() == 3. 58 // In non-Oilpan, numSuspendableObjectsCreate() == 3.
59 // In Oilpan, numActiveDOMObjectsCreate() <= 12. 59 // In Oilpan, numSuspendableObjectsCreate() <= 12.
60 // (3 MediaKeysInitializer, 60 // (3 MediaKeysInitializer,
61 // 6 MediaKeySystemAccessInitializer and 61 // 6 MediaKeySystemAccessInitializer and
62 // 3 ContentDecryptionModuleResultPromise). 62 // 3 ContentDecryptionModuleResultPromise).
63 assert_between_inclusive(numActiveDOMObjectsCreated(), 3, 12 ); 63 assert_between_inclusive(numSuspendableObjectsCreated(), 3, 12);
64 64
65 return createMediaKeys(); 65 return createMediaKeys();
66 }).then(function(result) { 66 }).then(function(result) {
67 // Should be 4 MediaKeys. 67 // Should be 4 MediaKeys.
68 // In non-Oilpan, numActiveDOMObjectsCreate() == 4. 68 // In non-Oilpan, numSuspendableObjectsCreate() == 4.
69 // In Oilpan, numActiveDOMObjectsCreate() <= 16. 69 // In Oilpan, numSuspendableObjectsCreate() <= 16.
70 // (4 MediaKeysInitializer, 70 // (4 MediaKeysInitializer,
71 // 8 MediaKeySystemAccessInitializer and 71 // 8 MediaKeySystemAccessInitializer and
72 // 4 ContentDecryptionModuleResultPromise). 72 // 4 ContentDecryptionModuleResultPromise).
73 assert_between_inclusive(numActiveDOMObjectsCreated(), 4, 16 ); 73 assert_between_inclusive(numSuspendableObjectsCreated(), 4, 16);
74 74
75 return createMediaKeys(); 75 return createMediaKeys();
76 }).then(function(result) { 76 }).then(function(result) {
77 // Should be 5 MediaKeys. 77 // Should be 5 MediaKeys.
78 // In non-Oilpan, numActiveDOMObjectsCreate() == 5. 78 // In non-Oilpan, numSuspendableObjectsCreate() == 5.
79 // In Oilpan, numActiveDOMObjectsCreate() <= 20. 79 // In Oilpan, numSuspendableObjectsCreate() <= 20.
80 // (5 MediaKeysInitializer, 80 // (5 MediaKeysInitializer,
81 // 10 MediaKeySystemAccessInitializer and 81 // 10 MediaKeySystemAccessInitializer and
82 // 5 ContentDecryptionModuleResultPromise). 82 // 5 ContentDecryptionModuleResultPromise).
83 assert_between_inclusive(numActiveDOMObjectsCreated(), 5, 20 ); 83 assert_between_inclusive(numSuspendableObjectsCreated(), 5, 20);
84 84
85 // |mediaKeys| refers to the most recently created MediaKeys 85 // |mediaKeys| refers to the most recently created MediaKeys
86 // object. 86 // object.
87 mediaKeys = result; 87 mediaKeys = result;
88 88
89 // In order for the MediaKey objects to be garbage 89 // In order for the MediaKey objects to be garbage
90 // collected, it needs time to process any pending events. 90 // collected, it needs time to process any pending events.
91 return delayToAllowEventProcessingPromise(); 91 return delayToAllowEventProcessingPromise();
92 }).then(function(result) { 92 }).then(function(result) {
93 // In non-Oilpan, numActiveDOMObjectsCreated() == 5 93 // In non-Oilpan, numSuspendableObjectsCreated() == 5
94 // (5 MediaKeySession objects). 94 // (5 MediaKeySession objects).
95 // In Oilpan, numActiveDOMObjectsCreated() <= 23 95 // In Oilpan, numSuspendableObjectsCreated() <= 23
96 // (5 MediaKeysInitializer, 96 // (5 MediaKeysInitializer,
97 // 12 MediaKeySystemAccessInitializer, 97 // 12 MediaKeySystemAccessInitializer,
98 // 5 ContentDecryptionModuleResultPromise and 98 // 5 ContentDecryptionModuleResultPromise and
99 // 1 DOMTimer (in delayToAllowEventProcessingPromise)) 99 // 1 DOMTimer (in delayToAllowEventProcessingPromise))
100 assert_between_inclusive(numActiveDOMObjectsCreated(), 5, 23 ); 100 assert_between_inclusive(numSuspendableObjectsCreated(), 5, 23);
101 101
102 // As we only have a reference (|mediaKeys|) to the last 102 // As we only have a reference (|mediaKeys|) to the last
103 // created MediaKeys object, the other 4 MediaKeys objects 103 // created MediaKeys object, the other 4 MediaKeys objects
104 // are available to be garbage collected. 104 // are available to be garbage collected.
105 return createGCPromise(); 105 return createGCPromise();
106 }).then(function(result) { 106 }).then(function(result) {
107 // Should be 1 MediaKeys and DOMTimer. 107 // Should be 1 MediaKeys and DOMTimer.
108 assert_less_than_equal(numActiveDOMObjectsCreated(), 2); 108 assert_less_than_equal(numSuspendableObjectsCreated(), 2);
109 assert_equals(typeof mediaKeys.createSession, 'function'); 109 assert_equals(typeof mediaKeys.createSession, 'function');
110 110
111 // Release the last MediaKeys object created. 111 // Release the last MediaKeys object created.
112 mediaKeys = null; 112 mediaKeys = null;
113 113
114 // Run gc() again to reclaim the remaining MediaKeys object. 114 // Run gc() again to reclaim the remaining MediaKeys object.
115 return createGCPromise(); 115 return createGCPromise();
116 }).then(function(result) { 116 }).then(function(result) {
117 // Should be just a DOMTimer. 117 // Should be just a DOMTimer.
118 assert_less_than_equal(numActiveDOMObjectsCreated(), 1); 118 assert_less_than_equal(numSuspendableObjectsCreated(), 1);
119 test.done(); 119 test.done();
120 }).catch(function(error) { 120 }).catch(function(error) {
121 forceTestFailureFromPromise(test, error); 121 forceTestFailureFromPromise(test, error);
122 }); 122 });
123 }, 'Multiple MediaKeys lifetime'); 123 }, 'Multiple MediaKeys lifetime');
124 </script> 124 </script>
125 </body> 125 </body>
126 </html> 126 </html>
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698