Index: LayoutTests/media/encrypted-media/encrypted-media-waiting-for-a-key.html |
diff --git a/LayoutTests/media/encrypted-media/encrypted-media-waiting-for-a-key.html b/LayoutTests/media/encrypted-media/encrypted-media-waiting-for-a-key.html |
index a94f4a4e350aa8c3f05540e9da00b01cb165b239..e09acd65d5f12ab0b80050fec13eb18ec50dea61 100644 |
--- a/LayoutTests/media/encrypted-media/encrypted-media-waiting-for-a-key.html |
+++ b/LayoutTests/media/encrypted-media/encrypted-media-waiting-for-a-key.html |
@@ -14,8 +14,8 @@ |
{ |
var video = document.getElementById('testVideo'); |
var mediaKeySession = null; |
- var sessionCreated = false; |
var sessionReadyReceived = false; |
+ var encryptedEventCount = 0; |
var keyId = null; |
var rawKey = new Uint8Array([0xeb, 0xdd, 0x62, 0xf1, 0x68, 0x14, 0xd2, 0x7b, |
@@ -28,10 +28,12 @@ |
assert_equals(event.type, 'encrypted'); |
// The same decryption key is shared by all streams so only |
- // create a shared session once. |
- if (sessionCreated) |
+ // create a shared session once. To avoid timing issues with |
+ // the "message" event being received before the second |
+ // "encrypted" event, only create the session on the second |
+ // event. |
+ if (++encryptedEventCount != 2) |
return; |
- sessionCreated = true; |
mediaKeySession = video.mediaKeys.createSession(); |
waitForEventAndRunStep('message', mediaKeySession, onMessage, test); |