| <!doctype html> | |
| <html> | |
| <head> | |
| <meta charset=utf-8> | |
| <meta name="timeout" content="long"> | |
| <title>Encrypted Media Extensions: Expiration with DRM</title> | |
| <link rel="help" href="https://w3c.github.io/encrypted-media/"> | |
| <!-- Web Platform Test Harness scripts --> | |
| <script src=/resources/testharness.js></script> | |
| <script src=/resources/testharnessreport.js></script> | |
| <!-- Helper scripts for Encrypted Media Extensions tests --> | |
| <script src=/encrypted-media/util/utils.js></script> | |
| <script src=/encrypted-media/util/utf8.js></script> | |
| <script src=/encrypted-media/util/fetch.js></script> | |
| <script src=/encrypted-media/util/testmediasource.js></script> | |
| <!-- Content metadata --> | |
| <script src=/encrypted-media/content/content-metadata.js></script> | |
| <!-- Message handler for DRM servers --> | |
| <script src=/encrypted-media/util/drm-messagehandler.js></script> | |
| <!-- The script for this specific test --> | |
| <script src=/encrypted-media/scripts/expiration.js></script> | |
| </head> | |
| <body> | |
| <div id='log'></div> | |
| <script> | |
| var keysystem = getSupportedKeySystem(); | |
| getSupportedContentAndInitDataTypes( keysystem ).then( function( supported ) { | |
| // This test requires initData for supported content. | |
| // We prefer explicit initData configured for the content, but | |
| // otherwise we will generate initData for a supported initDataType | |
| // FIXME: Move me to a utility function | |
| var content, | |
| initDataType, | |
| initData; | |
| var contentWithExplicitInitData = supported.filter( function( s ) { return s.content.initDataType && s.content.keys; } ); | |
| if ( contentWithExplicitInitData.length > 0 ) { | |
| content = contentWithExplicitInitData[ 0 ].content; | |
| initDataType = content.keys[ 0 ].initDataType; | |
| initData = base64DecodeToUnit8Array( content.keys[ 0 ].initData ); | |
| } else { | |
| content = supported[ 0 ].content; | |
| initDataType = supported[ 0 ].initDataTypes[ 0 ]; | |
| initData = getInitData( content, initDataType ); | |
| } | |
| var handler = new MessageHandler( keysystem, content ); | |
| runTest( { keysystem: keysystem, | |
| content: content, | |
| messagehandler: handler.messagehandler, | |
| initDataType: initDataType, | |
| initData: initData, | |
| expiration: Date.now().valueOf() + 120000 // Two minutes from now | |
| } ); | |
| } ); | |
| </script> | |
| </body> | |
| </html> |