[EME] Bug 25269 - Add a container-independent initialization data type for providing a list of key IDs to createSession()
authorDavid Dorwin <ddorwin@google.com>
Fri, 30 May 2014 15:07:09 -0700
changeset 328 4c2719078d2f
parent 327 2e92aa177019
child 329 848a43b5c26d
[EME] Bug 25269 - Add a container-independent initialization data type for providing a list of key IDs to createSession()
encrypted-media/encrypted-media.html
encrypted-media/encrypted-media.xml
encrypted-media/initdata-format-registry-respec.html
encrypted-media/initdata-format-registry.html
encrypted-media/keyids-format-respec.html
encrypted-media/keyids-format.html
--- a/encrypted-media/encrypted-media.html	Thu May 29 16:25:22 2014 -0700
+++ b/encrypted-media/encrypted-media.html	Fri May 30 15:07:09 2014 -0700
@@ -98,7 +98,7 @@
     <div class="head">
       <p><a href="http://www.w3.org/"><img src="https://www.w3.org/Icons/w3c_home" alt="W3C" width="72" height="48"></a></p>
       <h1>Encrypted Media Extensions</h1>
-      <h2 id="draft-date">W3C Editor's Draft 29 May 2014</h2>
+      <h2 id="draft-date">W3C Editor's Draft 30 May 2014</h2>
       <dl>
         <dt>This Version:</dt>
         <dd><a href="http://dvcs.w3.org/hg/html-media/raw-file/default/encrypted-media/encrypted-media.html">http://dvcs.w3.org/hg/html-media/raw-file/default/encrypted-media/encrypted-media.html</a></dd>
@@ -614,9 +614,8 @@
       <dl>
         <dt>Returns whether the Some System <a href="#key-system">Key System</a> may be supported. Specific containers and codecs may or may not be supported with Some System.</dt>
         <dd><pre class="code">MediaKeys.isTypeSupported("com.example.somesystem")</pre></dd>
-        
-        <dt>Returns whether the Some System <a href="#key-system">Key System</a> may be supported and is capable of parsing the <a href="#initialization-data-type">initialization data type</a> format <var title="true">initDataType</var>. Specific containers and codecs may or may not be supported with Some System.</dt>
-        <dd><pre class="code">MediaKeys.isTypeSupported("com.example.somesystem", <var title="true">initDataType</var>)</pre></dd>
+        <dt>Returns whether the Some System <a href="#key-system">Key System</a> may be supported and is capable of parsing the <a href="#initialization-data-type">initialization data type</a> format "keyids". Specific containers and codecs may or may not be supported with Some System.</dt>
+        <dd><pre class="code">MediaKeys.isTypeSupported("com.example.somesystem", "keyids")</pre></dd>
         <dt>Returns whether the Some System <a href="#key-system">Key System</a> may be supported and is capable of parsing the <a href="#initialization-data-type">initialization data type</a> format <var title="true">initDataType</var>, the user agent is capable of demuxing the container specified by <var title="true">mimeType</var>, and the codec(s) specified by <var title="true">mimeType</var> are supported, all as specified by capability "foo".</dt>
         <dd><pre class="code">MediaKeys.isTypeSupported("com.example.somesystem", <var title="true">initDataType</var>, <var title="true">mimeType</var>, "foo")</pre></dd>
         <dt>Returns whether the user agent <em>probably</em> supports <a href="#clear-key">Clear Key</a> using the <a href="#initialization-data-type">initialization data type</a> format <var title="true">initDataType</var> and the container and codec(s) specified by <var title="true">mimeType</var>.</dt>
@@ -1368,7 +1367,9 @@
           <li><p><var>message</var> is considered invalid if it is not a valid JWK Set with at least one valid JWK key of a valid length for the media type.</p></li>
         </ul>
       </li>
-      <li><p><a href="#initialization-data">Initialization Data</a>: Implementations may support any combination of <a href="initdata-format-registry.html">registered and Initialization Data types</a>.</p></li>
+      <li><p><a href="#initialization-data">Initialization Data</a>: Implementations may support any combination of <a href="initdata-format-registry.html">registered and Initialization Data types</a>.
+        Implementations should support the "<a href="keyids-format.html%20">keyids</a>" type and other types appropriate for content supported by the user agent.
+      </p></li>
     </ul>
 
     <h4 id="clear-key-request-format">Licese Request Format</h4>
@@ -1377,14 +1378,14 @@
     <p>The format is a JSON object containing the following members:</p>
     <dl>
       <dt>"kids"</dt>
-      <dd>An array of <a href="#decryption-key-id">key IDs</a>. Each element of the array is the base64url encoding of the octet sequence containing the <a href="#decryption-key-id">key ID</a> value.</dd>
+      <dd>An array of <a href="#decryption-key-id">key IDs</a>. Each element of the array is the base64url encoding of the octet sequence containing the key ID value.</dd>
       <dt>"type"</dt>
       <dd>The requested <code><a href="#dom-sessiontype">SessionType</a></code>
 </dd>
     </dl>
 
     <div class="nonnormative">
-      <p>The following example is a license request for a temporary license for two key IDs (line breaks are for readability only).</p>
+      <p>The following example is a license request for a temporary license for two key IDs. (Line breaks are for readability only.)</p>
       <div class="example nonnormative">
         <pre class="code">
 {
@@ -1430,7 +1431,7 @@
     </p>
 
     <div class="nonnormative">
-      <p>The following example is a JWK Set containing a single symmetric key (line breaks are for readability only).</p>
+      <p>The following example is a JWK Set containing a single symmetric key. (Line breaks are for readability only.)</p>
       <div class="example nonnormative">
         <pre class="code">
 {
--- a/encrypted-media/encrypted-media.xml	Thu May 29 16:25:22 2014 -0700
+++ b/encrypted-media/encrypted-media.xml	Fri May 30 15:07:09 2014 -0700
@@ -97,7 +97,7 @@
     <div class="head">
       <p><a href="http://www.w3.org/"><img src="https://www.w3.org/Icons/w3c_home" alt="W3C" width="72" height="48" /></a></p>
       <h1>Encrypted Media Extensions</h1>
-      <h2 id="draft-date">W3C Editor's Draft 29 May 2014</h2>
+      <h2 id="draft-date">W3C Editor's Draft 30 May 2014</h2>
       <dl>
         <dt>This Version:</dt>
         <dd><a href="http://dvcs.w3.org/hg/html-media/raw-file/default/encrypted-media/encrypted-media.html">http://dvcs.w3.org/hg/html-media/raw-file/default/encrypted-media/encrypted-media.html</a></dd>
@@ -584,9 +584,8 @@
       <dl>
         <dt>Returns whether the Some System <a href="#key-system">Key System</a> may be supported. Specific containers and codecs may or may not be supported with Some System.</dt>
         <dd><pre class="code">MediaKeys.isTypeSupported("com.example.somesystem")</pre></dd>
-        <!-- TODO: Replace <var title="true">initDataType</var> with "keyids" when bug 25269 is resolved. -->
-        <dt>Returns whether the Some System <a href="#key-system">Key System</a> may be supported and is capable of parsing the <a href="#initialization-data-type">initialization data type</a> format <var title="true">initDataType</var>. Specific containers and codecs may or may not be supported with Some System.</dt>
-        <dd><pre class="code">MediaKeys.isTypeSupported("com.example.somesystem", <var title="true">initDataType</var>)</pre></dd>
+        <dt>Returns whether the Some System <a href="#key-system">Key System</a> may be supported and is capable of parsing the <a href="#initialization-data-type">initialization data type</a> format "keyids". Specific containers and codecs may or may not be supported with Some System.</dt>
+        <dd><pre class="code">MediaKeys.isTypeSupported("com.example.somesystem", "keyids")</pre></dd>
         <dt>Returns whether the Some System <a href="#key-system">Key System</a> may be supported and is capable of parsing the <a href="#initialization-data-type">initialization data type</a> format <var title="true">initDataType</var>, the user agent is capable of demuxing the container specified by <var title="true">mimeType</var>, and the codec(s) specified by <var title="true">mimeType</var> are supported, all as specified by capability "foo".</dt>
         <dd><pre class="code">MediaKeys.isTypeSupported("com.example.somesystem", <var title="true">initDataType</var>, <var title="true">mimeType</var>, "foo")</pre></dd>
         <dt>Returns whether the user agent <em>probably</em> supports <a href="#clear-key">Clear Key</a> using the <a href="#initialization-data-type">initialization data type</a> format <var title="true">initDataType</var> and the container and codec(s) specified by <var title="true">mimeType</var>.</dt>
@@ -1290,7 +1289,9 @@
           <li><p><var>message</var> is considered invalid if it is not a valid JWK Set with at least one valid JWK key of a valid length for the media type.</p></li>
         </ul>
       </li>
-      <li><p><a href="#initialization-data">Initialization Data</a>: Implementations may support any combination of <a href="initdata-format-registry.html">registered and Initialization Data types</a>.</p></li>
+      <li><p><a href="#initialization-data">Initialization Data</a>: Implementations may support any combination of <a href="initdata-format-registry.html">registered and Initialization Data types</a>.
+        Implementations should support the "<a href="keyids-format.html ">keyids</a>" type and other types appropriate for content types supported by the user agent.
+      </p></li>
     </ul>
 
     <h4 id="clear-key-request-format">Licese Request Format</h4>
@@ -1299,13 +1300,13 @@
     <p>The format is a JSON object containing the following members:</p>
     <dl>
       <dt>"kids"</dt>
-      <dd>An array of <a href="#decryption-key-id">key IDs</a>. Each element of the array is the base64url encoding of the octet sequence containing the <a href="#decryption-key-id">key ID</a> value.</dd>
+      <dd>An array of <a href="#decryption-key-id">key IDs</a>. Each element of the array is the base64url encoding of the octet sequence containing the key ID value.</dd>
       <dt>"type"</dt>
       <dd>The requested <coderef>SessionType</coderef></dd>
     </dl>
 
     <div class="nonnormative">
-      <p>The following example is a license request for a temporary license for two key IDs (line breaks are for readability only).</p>
+      <p>The following example is a license request for a temporary license for two key IDs. (Line breaks are for readability only.)</p>
       <div class="example nonnormative">
         <pre class="code">
 {
@@ -1351,7 +1352,7 @@
     </p>
 
     <div class="nonnormative">
-      <p>The following example is a JWK Set containing a single symmetric key (line breaks are for readability only).</p>
+      <p>The following example is a JWK Set containing a single symmetric key. (Line breaks are for readability only.)</p>
       <div class="example nonnormative">
         <pre class="code">
 {
--- a/encrypted-media/initdata-format-registry-respec.html	Thu May 29 16:25:22 2014 -0700
+++ b/encrypted-media/initdata-format-registry-respec.html	Fri May 30 15:07:09 2014 -0700
@@ -115,16 +115,22 @@
         <tbody>
           <tr>
             <td>
+              cenc
+            </td>
+            <td><a href="cenc-format.html">ISO Common Encryption EME Stream Format and Initialization Data</a></td>
+          </tr>
+          <tr>
+            <td>
+              keyids
+            </td>
+            <td><a href="keyids-format.html">Key IDs Initialization Data Format</a></td>
+          </tr>
+          <tr>
+            <td>
               webm
             </td>
             <td><a href="webm-format.html">WebM EME Stream Format and Initialization Data</a></td>
           </tr>
-          <tr>
-            <td>
-              cenc
-            </td>
-            <td><a href="cenc-format.html">ISO Common Encryption EME Stream Format and Initialization Data</a></td>
-          </tr>
         </tbody>
       </table>
     </section>
--- a/encrypted-media/initdata-format-registry.html	Thu May 29 16:25:22 2014 -0700
+++ b/encrypted-media/initdata-format-registry.html	Fri May 30 15:07:09 2014 -0700
@@ -137,7 +137,7 @@
   </p>
   <h1 class="title p-name" id="title" property="dcterms:title">Encrypted Media Extensions Stream Format and Initialization Data Format Registry</h1>
   
-  <h2 property="dcterms:issued" datatype="xsd:dateTime" content="2014-05-30T05:58:55.000Z" id="w3c-editor-s-draft-29-may-2014"><abbr title="World Wide Web Consortium">W3C</abbr> Editor's Draft <time class="dt-published" datetime="2014-05-29">29 May 2014</time></h2>
+  <h2 property="dcterms:issued" datatype="xsd:dateTime" content="2014-05-31T04:29:43.000Z" id="w3c-editor-s-draft-30-may-2014"><abbr title="World Wide Web Consortium">W3C</abbr> Editor's Draft <time class="dt-published" datetime="2014-05-30">30 May 2014</time></h2>
   <dl>
     
       <dt>This version:</dt>
@@ -309,16 +309,22 @@
         <tbody>
           <tr>
             <td>
+              cenc
+            </td>
+            <td><a href="cenc-format.html">ISO Common Encryption EME Stream Format and Initialization Data</a></td>
+          </tr>
+          <tr>
+            <td>
+              keyids
+            </td>
+            <td><a href="keyids-format.html">Key IDs Initialization Data Format</a></td>
+          </tr>
+          <tr>
+            <td>
               webm
             </td>
             <td><a href="webm-format.html">WebM EME Stream Format and Initialization Data</a></td>
           </tr>
-          <tr>
-            <td>
-              cenc
-            </td>
-            <td><a href="cenc-format.html">ISO Common Encryption EME Stream Format and Initialization Data</a></td>
-          </tr>
         </tbody>
       </table>
     </section>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/encrypted-media/keyids-format-respec.html	Fri May 30 15:07:09 2014 -0700
@@ -0,0 +1,98 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <title>Key IDs Initialization Data</title>
+    <script src="https://www.w3.org/Tools/respec/respec-w3c-common" class="remove"></script>
+    <script class="remove">
+      var respecConfig = {
+      // specification status (e.g. WD, LCWD, NOTE, etc.). If in doubt use ED.
+      specStatus: "ED",
+
+      // the specification's short name, as in http://www.w3.org/TR/short-name/
+      shortName: "encrypted-media", <!-- The registry does not have its own short name. -->
+
+      // if there a publicly available Editor's Draft, this is the link
+      edDraftURI:           "http://dvcs.w3.org/hg/html-media/raw-file/default/encrypted-media/cenc-format.html",
+
+      // if this is a LCWD, uncomment and set the end of its review period
+      // lcEnd: "2009-08-05",
+
+      // editors, add as many as you like
+      // only "name" is required
+      editors:  [
+      { name: "David Dorwin",  url: "",
+      company: "Google Inc.", companyURL: "http://www.google.com/" },
+      { name: "Adrian Bateman", url: "",
+      company: "Microsoft Corporation", companyURL: "http://www.microsoft.com/" },
+      { name: "Mark Watson", url: "",
+      company: "Netflix Inc.", companyURL: "http://www.netflix.com/" },
+      ],
+
+      // name of the WG
+      wg:           "HTML Working Group",
+
+      // URI of the public WG page
+      wgURI:        "http://www.w3.org/html/wg/",
+
+      // name (without the @w3c.org) of the public mailing to which comments are due
+      wgPublicList: "public-html-media",
+
+      // URI of the patent status for this WG, for Rec-track documents
+      // !!!! IMPORTANT !!!!
+      // This is important for Rec-track documents, do not copy a patent URI from a random
+      // document unless you know what you're doing. If in doubt ask your friendly neighbourhood
+      // Team Contact.
+      wgPatentURI: "http://www.w3.org/2004/01/pp-impl/40318/status",
+
+      noIDLIn: true,
+
+      scheme: "https",
+
+      // Empty definitions for objects declared in the document are here to
+      // prevent error messages from being displayed for references to these objects.
+      definitionMap: {},
+      };
+    </script>
+  </head>
+  <body>
+    <section id="abstract">
+      <p>This specification defines a container-independent initialization data format for specifying a list of key IDs to the <code><a href="encrypted-media.html#dom-createsession">createSession()</a></code> method defined by the <a href="http://www.w3.org/TR/encrypted-media/">Encrypted Media Extensions</a>.
+      This type can be used by applications to directly provide information necessary to generate a license request without using media data or constructing container-specific formats. 
+      </p>
+      <p>Unlike other similar specifications, this one does not document a stream format or behavior related to processing media data. This type and format are not used in the <a href="encrypted-media.html#algorithms-initdata-encountered">Initialization Data Encountered</a> algorithm.</p>
+    </section>
+  
+    <section id="sotd">
+      <p>The Working Group maintains <a href="http://w3.org/brief/MjY5">a list of all bug reports that the editors have not yet tried to address</a>.</p>
+      <p>Implementors should be aware that this specification is not stable. <strong>Implementors who are not taking part in the discussions are likely to find the specification changing out from under them in incompatible ways.</strong> Vendors interested in implementing this specification before it eventually reaches the Candidate Recommendation stage should join the mailing list mentioned below and take part in the discussions.</p>
+    </section>
+  
+    <section id="init-data">
+      <h2>Initialization Data Format</h2>
+      <p>The format is a JSON object containing the following member:</p>
+      <dl>
+        <dt>"kids"</dt>
+        <dd>An array of <a href="encrypted-media.html#decryption-key-id">key IDs</a>. Each element of the array is the base64url encoding of the octet sequence containing the key ID value.</dd>
+      </dl>
+
+      <p>When passed to the <code><a href="encrypted-media.html#dom-update">update()</a></code> method as the Uint8Array <var>response</var> parameter, the JSON string must be encoded in utf-8 as specified in the <a href="http://www.w3.org/TR/encoding/">Encoding</a> specification.
+        Applications may encode the JSON string using the <a href="http://www.w3.org/TR/encoding/#interface-textencoder">TextEncoder interface</a>.
+      </p>
+  
+      <section class="informative">
+        <h2>Example</h2>
+        <p>The following example will generate a license request for two key IDs. (Line breaks are for readability only.)</p>
+          <pre class="example">
+{
+  "kids": 
+    [
+     "67ef0gd8pvfd0",
+     "77ef0gd8pvfd0"
+    ],
+}</pre>
+      </section>
+
+    </section>
+  </body>
+</html>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/encrypted-media/keyids-format.html	Fri May 30 15:07:09 2014 -0700
@@ -0,0 +1,324 @@
+<!DOCTYPE html>
+<html lang="en" dir="ltr" typeof="bibo:Document " about="" property="dcterms:language" content="en">
+<head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <title>Key IDs Initialization Data</title>
+    
+    
+  <style>/*****************************************************************
+ * ReSpec 3 CSS
+ * Robin Berjon - http://berjon.com/
+ *****************************************************************/
+
+/* --- INLINES --- */
+em.rfc2119 { 
+    text-transform:     lowercase;
+    font-variant:       small-caps;
+    font-style:         normal;
+    color:              #900;
+}
+
+h1 acronym, h2 acronym, h3 acronym, h4 acronym, h5 acronym, h6 acronym, a acronym,
+h1 abbr, h2 abbr, h3 abbr, h4 abbr, h5 abbr, h6 abbr, a abbr {
+    border: none;
+}
+
+dfn {
+    font-weight:    bold;
+}
+
+a.internalDFN {
+    color:  inherit;
+    border-bottom:  1px solid #99c;
+    text-decoration:    none;
+}
+
+a.externalDFN {
+    color:  inherit;
+    border-bottom:  1px dotted #ccc;
+    text-decoration:    none;
+}
+
+a.bibref {
+    text-decoration:    none;
+}
+
+cite .bibref {
+    font-style: normal;
+}
+
+code {
+    color:  #ff4500;
+}
+
+/* --- TOC --- */
+.toc a, .tof a {
+    text-decoration:    none;
+}
+
+a .secno, a .figno {
+    color:  #000;
+}
+
+ul.tof, ol.tof {
+    list-style: none outside none;
+}
+
+.caption {
+    margin-top: 0.5em;
+    font-style:   italic;
+}
+
+/* --- TABLE --- */
+table.simple {
+    border-spacing: 0;
+    border-collapse:    collapse;
+    border-bottom:  3px solid #005a9c;
+}
+
+.simple th {
+    background: #005a9c;
+    color:  #fff;
+    padding:    3px 5px;
+    text-align: left;
+}
+
+.simple th[scope="row"] {
+    background: inherit;
+    color:  inherit;
+    border-top: 1px solid #ddd;
+}
+
+.simple td {
+    padding:    3px 10px;
+    border-top: 1px solid #ddd;
+}
+
+.simple tr:nth-child(even) {
+    background: #f0f6ff;
+}
+
+/* --- DL --- */
+.section dd > p:first-child {
+    margin-top: 0;
+}
+
+.section dd > p:last-child {
+    margin-bottom: 0;
+}
+
+.section dd {
+    margin-bottom:  1em;
+}
+
+.section dl.attrs dd, .section dl.eldef dd {
+    margin-bottom:  0;
+}
+
+@media print {
+    .removeOnSave {
+        display: none;
+    }
+}
+</style><style>/* --- EXAMPLES --- */
+div.example-title {
+    min-width: 7.5em;
+    color: #b9ab2d;
+}
+div.example-title span {
+    text-transform: uppercase;   
+}
+aside.example, div.example, div.illegal-example {
+    padding: 0.5em;
+    margin: 1em 0;
+    position: relative;
+    clear: both;
+}
+div.illegal-example { color: red }
+div.illegal-example p { color: black }
+aside.example, div.example {
+    padding: .5em;
+    border-left-width: .5em;
+    border-left-style: solid;
+    border-color: #e0cb52;
+    background: #fcfaee;    
+}
+
+aside.example div.example {
+    border-left-width: .1em;
+    border-color: #999;
+    background: #fff;
+}
+aside.example div.example div.example-title {
+    color: #999;
+}
+</style><link rel="stylesheet" href="https://www.w3.org/StyleSheets/TR/W3C-ED"><!--[if lt IE 9]><script src='https://www.w3.org/2008/site/js/html5shiv.js'></script><![endif]--></head>
+  <body class="h-entry" role="document" id="respecDocument"><div class="head" role="contentinfo" id="respecHeader">
+  <p>
+    
+      <a href="http://www.w3.org/"><img width="72" height="48" src="https://www.w3.org/Icons/w3c_home" alt="W3C"></a>
+    
+  </p>
+  <h1 class="title p-name" id="title" property="dcterms:title">Key IDs Initialization Data</h1>
+  
+  <h2 property="dcterms:issued" datatype="xsd:dateTime" content="2014-05-31T04:29:17.000Z" id="w3c-editor-s-draft-30-may-2014"><abbr title="World Wide Web Consortium">W3C</abbr> Editor's Draft <time class="dt-published" datetime="2014-05-30">30 May 2014</time></h2>
+  <dl>
+    
+      <dt>This version:</dt>
+      <dd><a class="u-url" href="http://dvcs.w3.org/hg/html-media/raw-file/default/encrypted-media/cenc-format.html">http://dvcs.w3.org/hg/html-media/raw-file/default/encrypted-media/cenc-format.html</a></dd>
+      <dt>Latest published version:</dt>
+      <dd><a href="http://www.w3.org/TR/encrypted-media/">http://www.w3.org/TR/encrypted-media/</a></dd>
+    
+    
+      <dt>Latest editor's draft:</dt>
+      <dd><a href="http://dvcs.w3.org/hg/html-media/raw-file/default/encrypted-media/cenc-format.html">http://dvcs.w3.org/hg/html-media/raw-file/default/encrypted-media/cenc-format.html</a></dd>
+    
+    
+    
+    
+    
+      
+    
+    
+    
+    <dt>Editors:</dt>
+    <dd class="p-author h-card vcard" rel="bibo:editor" inlist=""><span typeof="foaf:Person"><span property="foaf:name" class="p-name fn">David Dorwin</span>, <a rel="foaf:workplaceHomepage" class="p-org org h-org h-card" href="http://www.google.com/">Google Inc.</a></span>
+</dd>
+<dd class="p-author h-card vcard" rel="bibo:editor" inlist=""><span typeof="foaf:Person"><span property="foaf:name" class="p-name fn">Adrian Bateman</span>, <a rel="foaf:workplaceHomepage" class="p-org org h-org h-card" href="http://www.microsoft.com/">Microsoft Corporation</a></span>
+</dd>
+<dd class="p-author h-card vcard" rel="bibo:editor" inlist=""><span typeof="foaf:Person"><span property="foaf:name" class="p-name fn">Mark Watson</span>, <a rel="foaf:workplaceHomepage" class="p-org org h-org h-card" href="http://www.netflix.com/">Netflix Inc.</a></span>
+</dd>
+
+    
+    
+  </dl>
+  
+  
+  
+  
+    
+      <p class="copyright">
+        <a href="http://www.w3.org/Consortium/Legal/ipr-notice#Copyright">Copyright</a> ©
+        2014
+        
+        <a href="http://www.w3.org/"><abbr title="World Wide Web Consortium">W3C</abbr></a><sup>®</sup>
+        (<a href="http://www.csail.mit.edu/"><abbr title="Massachusetts Institute of Technology">MIT</abbr></a>,
+        <a href="http://www.ercim.eu/"><abbr title="European Research Consortium for Informatics and Mathematics">ERCIM</abbr></a>,
+        <a href="http://www.keio.ac.jp/">Keio</a>, <a href="http://ev.buaa.edu.cn/">Beihang</a>), 
+        
+        All Rights Reserved.
+        
+        <abbr title="World Wide Web Consortium">W3C</abbr> <a href="http://www.w3.org/Consortium/Legal/ipr-notice#Legal_Disclaimer">liability</a>,
+        <a href="http://www.w3.org/Consortium/Legal/ipr-notice#W3C_Trademarks">trademark</a> and
+        
+          <a href="http://www.w3.org/Consortium/Legal/copyright-documents">document use</a>
+        
+        rules apply.
+      </p>
+    
+  
+  <hr>
+</div>
+    <section id="abstract" class="introductory" property="dcterms:abstract" datatype="" typeof="bibo:Chapter" resource="#abstract" rel="bibo:Chapter"><h2 aria-level="1" role="heading" id="h2_abstract">Abstract</h2>
+      <p>This specification defines a container-independent initialization data format for specifying a list of key IDs to the <code><a href="encrypted-media.html#dom-createsession">createSession()</a></code> method defined by the <a href="http://www.w3.org/TR/encrypted-media/">Encrypted Media Extensions</a>.
+      This type can be used by applications to directly provide information necessary to generate a license request without using media data or constructing container-specific formats. 
+      </p>
+      <p>Unlike other similar specifications, this one does not document a stream format or behavior related to processing media data. This type and format are not used in the <a href="encrypted-media.html#algorithms-initdata-encountered">Initialization Data Encountered</a> algorithm.</p>
+    </section><section id="sotd" class="introductory" typeof="bibo:Chapter" resource="#sotd" rel="bibo:Chapter"><h2 aria-level="1" role="heading" id="h2_sotd">Status of This Document</h2>
+  
+    
+      
+        <p>
+          <em>This section describes the status of this document at the time of its publication.
+          Other documents may supersede this document. A list of current <abbr title="World Wide Web Consortium">W3C</abbr> publications and the
+          latest revision of this technical report can be found in the <a href="http://www.w3.org/TR/"><abbr title="World Wide Web Consortium">W3C</abbr> technical reports index</a> at
+          http://www.w3.org/TR/.</em>
+        </p>
+        
+      <p>The Working Group maintains <a href="http://w3.org/brief/MjY5">a list of all bug reports that the editors have not yet tried to address</a>.</p>
+      <p>Implementors should be aware that this specification is not stable. <strong>Implementors who are not taking part in the discussions are likely to find the specification changing out from under them in incompatible ways.</strong> Vendors interested in implementing this specification before it eventually reaches the Candidate Recommendation stage should join the mailing list mentioned below and take part in the discussions.</p>
+    
+        <p>
+          This document was published by the <a href="http://www.w3.org/html/wg/">HTML Working Group</a> as an Editor's Draft.
+          
+          
+            If you wish to make comments regarding this document, please send them to 
+            <a href="mailto:public-html-media@w3.org">public-html-media@w3.org</a> 
+            (<a href="mailto:public-html-media-request@w3.org?subject=subscribe">subscribe</a>,
+            <a href="http://lists.w3.org/Archives/Public/public-html-media/">archives</a>).
+          
+          
+          
+          
+            All comments are welcome.
+          
+        </p>
+        
+        
+          <p>
+            Publication as an Editor's Draft does not imply endorsement by the <abbr title="World Wide Web Consortium">W3C</abbr>
+            Membership. This is a draft document and may be updated, replaced or obsoleted by other
+            documents at any time. It is inappropriate to cite this document as other than work in
+            progress.
+          </p>
+        
+        
+        
+        <p>
+          
+            This document was produced by a group operating under the 
+            <a id="sotd_patent" about="" rel="w3p:patentRules" href="http://www.w3.org/Consortium/Patent-Policy-20040205/">5 February 2004 <abbr title="World Wide Web Consortium">W3C</abbr> Patent
+            Policy</a>.
+          
+          
+          
+            
+              <abbr title="World Wide Web Consortium">W3C</abbr> maintains a <a href="http://www.w3.org/2004/01/pp-impl/40318/status" rel="disclosure">public list of any patent
+              disclosures</a> 
+            
+            made in connection with the deliverables of the group; that page also includes
+            instructions for disclosing a patent. An individual who has actual knowledge of a patent
+            which the individual believes contains
+            <a href="http://www.w3.org/Consortium/Patent-Policy-20040205/#def-essential">Essential
+            Claim(s)</a> must disclose the information in accordance with
+            <a href="http://www.w3.org/Consortium/Patent-Policy-20040205/#sec-Disclosure">section
+            6 of the <abbr title="World Wide Web Consortium">W3C</abbr> Patent Policy</a>.
+          
+          
+        </p>
+        
+      
+    
+  
+</section><section id="toc"><h2 class="introductory" aria-level="1" role="heading" id="h2_toc">Table of Contents</h2><ul class="toc" role="directory" id="respecContents"><li class="tocline"><a href="#init-data" class="tocxref"><span class="secno">1. </span>Initialization Data Format</a><ul class="toc"><li class="tocline"><a href="#example" class="tocxref"><span class="secno">1.1 </span>Example</a></li></ul></li></ul></section>
+  
+    
+  
+    <section id="init-data" typeof="bibo:Chapter" resource="#init-data" rel="bibo:Chapter">
+      <!--OddPage--><h2 aria-level="1" role="heading" id="h2_init-data"><span class="secno">1. </span>Initialization Data Format</h2>
+      <p>The format is a JSON object containing the following member:</p>
+      <dl>
+        <dt>"kids"</dt>
+        <dd>An array of <a href="encrypted-media.html#decryption-key-id">key IDs</a>. Each element of the array is the base64url encoding of the octet sequence containing the key ID value.</dd>
+      </dl>
+
+      <p>When passed to the <code><a href="encrypted-media.html#dom-update">update()</a></code> method as the Uint8Array <var>response</var> parameter, the JSON string must be encoded in utf-8 as specified in the <a href="http://www.w3.org/TR/encoding/">Encoding</a> specification.
+        Applications may encode the JSON string using the <a href="http://www.w3.org/TR/encoding/#interface-textencoder">TextEncoder interface</a>.
+      </p>
+  
+      <section class="informative" id="example">
+        <h3 aria-level="2" role="heading" id="h3_example"><span class="secno">1.1 </span>Example</h3><p><em>This section is non-normative.</em></p>
+        <p>The following example will generate a license request for two key IDs. (Line breaks are for readability only.)</p>
+          <div class="example"><div class="example-title"><span>Example 1</span></div><pre class="example">{
+  "kids": 
+    [
+     "67ef0gd8pvfd0",
+     "77ef0gd8pvfd0"
+    ],
+}</pre></div>
+      </section>
+
+    </section>
+  
+
+</body></html>
\ No newline at end of file