| <!DOCTYPE html> |
| <html> |
| <head> |
| <title>Test close the key session associated with the object when the page is inaccessible</title> |
| <script src="../../resources/testharness.js"></script> |
| <script src="../../resources/testharnessreport.js"></script> |
| </head> |
| <body> |
| <script> |
| var iframe; |
| |
| function load_iframe(src) { |
| return new Promise(function(resolve) { |
| iframe = document.createElement('iframe'); |
| iframe.onload = function() { resolve(iframe); }; |
| iframe.src = src; |
| document.documentElement.appendChild(iframe); |
| }); |
| } |
| |
| function wait_for_message() { |
| return new Promise(function(resolve) { |
| self.addEventListener('message', function listener(e) { |
| if (e.data.comm == 'init-completed') { |
| iframe.contentWindow.postMessage({comm: 'close'}, '*'); |
| } else if (e.data.comm == 'close-received') { |
| iframe.remove(); |
| window.postMessage({result: 'finished'}, '*'); |
| } else { |
| resolve(e.data); |
| self.removeEventListener('message', listener); |
| } |
| }); |
| }); |
| } |
| |
| async_test(function(test) { |
| load_iframe("../resources/encrypted-media-session-close-and-context-destroyed-iframe.html").then(function(iframe) { |
| iframe.contentWindow.postMessage({comm: 'init'}, '*'); |
| return wait_for_message(); |
| }).then(function(message) { |
| assert_equals(message.result, 'finished'); |
| test.done(); |
| }); |
| }, 'Test close the key session associated with the object when the page is inaccessible'); |
| </script> |
| </body> |
| </html> |