Commit 9c52bda7 authored by jrummell@chromium.org's avatar jrummell@chromium.org

Fix EME layout test as PromiseResolver objects no longer linger.

A recent CL (Blink revision 179922) changed the way JavaScript is run
after resolving a promise (used to run immediately, now run by a
microtask later). encrypted-media-lifetime-mediakeysession-reference.html
started failing as it expected the PromiseResolver object to be around
and counted. Fixing the test as the PromiseResolver object is gone by the
time the JavaScript executes after resolving a promise.

BUG=374772,378245
TEST=failing test passes

Review URL: https://codereview.chromium.org/465833003

git-svn-id: svn://svn.chromium.org/blink/trunk@180121 bbb929c8-8fbe-4397-9dbb-9b2b20218538
parent c92bf8d0
...@@ -35,34 +35,28 @@ ...@@ -35,34 +35,28 @@
mediaKeys = result; mediaKeys = result;
assert_equals(mediaKeys.keySystem, 'org.w3.clearkey'); assert_equals(mediaKeys.keySystem, 'org.w3.clearkey');
// Verify MediaKeys are not an ActiveDOMObject. However, the // Verify MediaKeys are not an ActiveDOMObject.
// PromiseResolver objects used by MediaKeys/MediaKeySession assert_equals(numActiveDOMObjectsCreated(), 0, 'MediaKeys.create()');
// are ActiveDOMObjects, and they stay active until the end
// of the associated then/catch function.
assert_equals(numActiveDOMObjectsCreated(), 1, 'MediaKeys.create()');
// Create 3 sessions. // Create 3 sessions.
return mediaKeys.createSession(initDataType, initData); return mediaKeys.createSession(initDataType, initData);
}).then(function(result) { }).then(function(result) {
mediaKeySession1 = result; mediaKeySession1 = result;
assert_true(mediaKeySession1.sessionId && mediaKeySession1.sessionId.length > 0); assert_true(mediaKeySession1.sessionId && mediaKeySession1.sessionId.length > 0);
// Should be 1 MediaKeySession + 1 PromiseResolver from // Should be 1 MediaKeySession.
// createSession(). assert_equals(numActiveDOMObjectsCreated(), 1, 'mediaKeys.createSession(1)');
assert_equals(numActiveDOMObjectsCreated(), 2, 'mediaKeys.createSession(1)');
return mediaKeys.createSession(initDataType, initData); return mediaKeys.createSession(initDataType, initData);
}).then(function(result) { }).then(function(result) {
mediaKeySession2 = result; mediaKeySession2 = result;
assert_true(mediaKeySession2.sessionId && mediaKeySession2.sessionId.length > 0); assert_true(mediaKeySession2.sessionId && mediaKeySession2.sessionId.length > 0);
// Should be 2 MediaKeySessions + 1 PromiseResolver from the // Should be 2 MediaKeySessions.
// last createSession(). assert_equals(numActiveDOMObjectsCreated(), 2, 'mediaKeys.createSession(2)');
assert_equals(numActiveDOMObjectsCreated(), 3, 'mediaKeys.createSession(2)');
return mediaKeys.createSession(initDataType, initData); return mediaKeys.createSession(initDataType, initData);
}).then(function(result) { }).then(function(result) {
mediaKeySession3 = result; mediaKeySession3 = result;
assert_true(mediaKeySession3.sessionId && mediaKeySession3.sessionId.length > 0); assert_true(mediaKeySession3.sessionId && mediaKeySession3.sessionId.length > 0);
// Should be 3 MediaKeySessions + 1 PromiseResolver from the // Should be 3 MediaKeySessions.
// last createSession(). assert_equals(numActiveDOMObjectsCreated(), 3, 'mediaKeys.createSession(3)');
assert_equals(numActiveDOMObjectsCreated(), 4, 'mediaKeys.createSession(3)');
// Run gc(). All sessions should remain as we have a // Run gc(). All sessions should remain as we have a
// reference to each one. However, running gc() // reference to each one. However, running gc()
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment