[EME] Bug 25269 - Add a container-independent initialization data type for providing a list of key IDs to createSession()
--- 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