| OLD | NEW |
| 1 <!DOCTYPE html> | 1 <!DOCTYPE html> |
| 2 <html> | 2 <html> |
| 3 <head> | 3 <head> |
| 4 <title>Unique origin is unable to create MediaKeys</title> | 4 <title>Unique origin is unable to create MediaKeys</title> |
| 5 <script src="../../resources/testharness.js"></script> | 5 <script src="../../resources/testharness.js"></script> |
| 6 <script src="../../resources/testharnessreport.js"></script> | 6 <script src="../../resources/testharnessreport.js"></script> |
| 7 </head> | 7 </head> |
| 8 <body> | 8 <body> |
| 9 <div id="log"></div> | 9 <div id="log"></div> |
| 10 <script> | 10 <script> |
| 11 // When the sandbox attribute is present on an iframe, it will | 11 // When the sandbox attribute is present on an iframe, it will |
| 12 // treat the content as being from a unique origin. So try to | 12 // treat the content as being from a unique origin. So try to |
| 13 // call createMediaKeys() inside an iframe and it should fail. | 13 // call createMediaKeys() inside an iframe and it should fail. |
| 14 | 14 |
| 15 function load_iframe(src, sandbox) { | 15 function load_iframe(src, sandbox) { |
| 16 return new Promise(function(resolve) { | 16 return new Promise(function(resolve) { |
| 17 var iframe = document.createElement('iframe'); | 17 var iframe = document.createElement('iframe'); |
| 18 iframe.onload = function() { resolve(iframe); }; | 18 iframe.onload = function() { resolve(iframe); }; |
| 19 iframe.sandbox = sandbox; | 19 iframe.sandbox = sandbox; |
| 20 iframe.src = src; | 20 iframe.src = src; |
| 21 document.documentElement.appendChild(iframe); | 21 document.documentElement.appendChild(iframe); |
| 22 }); | 22 }); |
| 23 } | 23 } |
| 24 | 24 |
| 25 function wait_for_message() { | 25 function wait_for_message() { |
| 26 return new Promise(function(resolve) { | 26 return new Promise(function(resolve) { |
| 27 self.addEventListener('message', function listener(e) { | 27 self.addEventListener('message', function listener(e) { |
| 28 resolve(e.data); | 28 resolve(e.data); |
| 29 self.removeEventListener(listener); | 29 self.removeEventListener('message', listener); |
| 30 }); | 30 }); |
| 31 }); | 31 }); |
| 32 } | 32 } |
| 33 | 33 |
| 34 promise_test(function(test) { | 34 promise_test(function(test) { |
| 35 var script = 'data:text/html,' + | 35 var script = 'data:text/html,' + |
| 36 '<script>' + | 36 '<script>' + |
| 37 ' window.onmessage = function(e) {' + | 37 ' window.onmessage = function(e) {' + |
| 38 ' navigator.requestMediaKeySystemAccess(\'org.w3.clea
rkey\', [{}]).then(function(access) {' + | 38 ' navigator.requestMediaKeySystemAccess(\'org.w3.clea
rkey\', [{}]).then(function(access) {' + |
| 39 ' return access.createMediaKeys();' + | 39 ' return access.createMediaKeys();' + |
| (...skipping 14 matching lines...) Expand all Loading... |
| 54 }).then(function(iframe) { | 54 }).then(function(iframe) { |
| 55 iframe.contentWindow.postMessage({}, '*'); | 55 iframe.contentWindow.postMessage({}, '*'); |
| 56 return wait_for_message(); | 56 return wait_for_message(); |
| 57 }).then(function(message) { | 57 }).then(function(message) { |
| 58 assert_equals(message.result, 'failed'); | 58 assert_equals(message.result, 'failed'); |
| 59 }); | 59 }); |
| 60 }, 'Unique origin is unable to create MediaKeys'); | 60 }, 'Unique origin is unable to create MediaKeys'); |
| 61 </script> | 61 </script> |
| 62 </body> | 62 </body> |
| 63 </html> | 63 </html> |
| OLD | NEW |