blob: 5ba5480fe76411c12383b468eeb242cfc66d4530 [file] [log] [blame]
<!DOCTYPE html>
<html>
<head>
<title>Initialization Data not returned when using different origin</title>
<script src="/js-test-resources/testharness.js"></script>
<script src="/js-test-resources/testharnessreport.js"></script>
</head>
<body>
<video id="testVideo"></video>
<div id="log"></div>
<script>
async_test(function(test)
{
var video = document.getElementById('testVideo');
var encryptedEventCount = 0;
function logMessage(msg) {
var date = new Date();
var hours = ('0' + date.getHours()).slice(-2);
var minutes = ('0' + date.getMinutes()).slice(-2);
var secs = ('0' + date.getSeconds()).slice(-2);
var milliSecs = ('00' + date.getMilliseconds()).slice(-3);
console.log(hours + ':' + minutes + ':' + secs + '.' + milliSecs + ': ' + msg);
};
function onEncrypted(event)
{
logMessage('onEncrypted');
assert_equals(event.target, video);
assert_true(event instanceof window.MediaEncryptedEvent);
assert_equals(event.type, 'encrypted');
// Since the .src is in a different origin as this test,
// both initDataType and initData should be empty.
assert_equals(event.initDataType, '');
assert_equals(event.initData.byteLength, 0);
// Both the audio and the video tracks have initData,
// so finish once both events are received.
if (++encryptedEventCount == 2) {
logMessage('done');
test.done();
}
}
logMessage('starting');
navigator.requestMediaKeySystemAccess(
'org.w3.clearkey',
[{audioCapabilities: [{contentType: 'audio/webm; codecs=vorbis'}]}])
.then(function(access) {
return access.createMediaKeys();
}).then(function(mediaKeys) {
video.addEventListener('encrypted', test.step_func(onEncrypted), true);
return video.setMediaKeys(mediaKeys);
}).then(function(result) {
// Verify that the current origin is different than what
// we use for the content.
logMessage('setting src');
assert_equals(self.origin, 'http://127.0.0.1:8000');
video.src = 'http://127.0.0.1:8080/media/encrypted-media/test-encrypted.webm';
video.play();
});
}, 'Initialization Data not returned when using different origin.');
</script>
</body>
</html>