[EME] Bug 25506 - ReSpec conversion: Initial ReSpec integration and metadata.
authorDavid Dorwin <ddorwin@google.com>
Fri, 10 Oct 2014 14:38:18 -0700
changeset 444 8c7b71e91550
parent 443 2a99aaa94c08
child 445 ba600d11fcdd
[EME] Bug 25506 - ReSpec conversion: Initial ReSpec integration and metadata.
encrypted-media/encrypted-media-respec.html
--- a/encrypted-media/encrypted-media-respec.html	Tue Oct 07 15:12:28 2014 -0700
+++ b/encrypted-media/encrypted-media-respec.html	Fri Oct 10 14:38:18 2014 -0700
@@ -1,13 +1,88 @@
-<!DOCTYPE HTML>
-<html lang='en'>
+<!DOCTYPE html>
+<html>
   <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
     <title>Encrypted Media Extensions</title>
+    <script src="https://www.w3.org/Tools/respec/respec-w3c-common" class="remove"></script>
+    <script src="encrypted-media.js" class="remove"></script>
+    <script class="remove">
+      var respecConfig = {
+      // specification status (e.g. WD, LCWD, NOTE, etc.). If in doubt use ED.
+      specStatus: "ED",
+
+      //publishDate: "2014-XX-YY",
+      previousMaturity: "WD",
+      previousPublishDate: "2014-08-28",
+      // if this is a LCWD, uncomment and set the end of its review period
+      // lcEnd: "2009-08-05",
+
+      // the specification's short name, as in http://www.w3.org/TR/short-name/
+      shortName: "encrypted-media",
+
+      // 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/encrypted-media.html",
+
+      // 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: "Jerry Smith", url: "",
+      company: "Microsoft Corporation", companyURL: "http://www.microsoft.com/" },
+      { name: "Mark Watson", url: "",
+      company: "Netflix Inc.", companyURL: "http://www.netflix.com/" },
+      { name: "Adrian Bateman (until May 2014)", url: "",
+      company: "Microsoft Corporation", companyURL: "http://www.microsoft.com/" },
+      ],
+
+      emeDefGroupName: "encrypted-media",
+
+      // 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",
+
+      preProcess: [ encryptedMediaPreProcessor ],
+
+      // Empty definitions for objects declared in the document are here to
+      // prevent error messages from being displayed for references to these objects.
+      definitionMap: {},
+
+      postProcess: [ encryptedMediaPostProcessor ],
+
+      localBiblio: {
+          "EME-REGISTRY": {
+              title: "Encrypted Media Extensions Stream Format and Initialization Data Format Registry",
+              href: "initdata-format-registry.html",
+              authors: ["David Dorwin", "Adrian Bateman", "Mark Watson"],
+              publisher: "W3C",
+          }
+       }
+      };
+    </script>
     <!-- script to register bugs -->
     <script src="https://dvcs.w3.org/hg/webcomponents/raw-file/tip/assets/scripts/bug-assist.js"></script>
     <meta name="bug.product" content="HTML WG"/>
     <meta name="bug.component" content="Encrypted Media Extensions"/>
 
     <link rel="stylesheet" href="eme.css"/>
+    
+    <!-- TODO: This stuff needs to be moved! -->
     <style><!-- Legacy formatting from video-working-draft.css. -->
     <!-- Makes the term being defined bold. -->
     dt, dfn { font-weight: bold; font-style: normal; }
@@ -43,51 +118,6 @@
     <!-- Adds the white box containing the non-normative note for the green box around attribute descriptions. -->
     .domintro:before { display: table; margin: -1em -0.5em -0.5em auto; width: auto; content: 'This box is non-normative. Implementation requirements are given below this box.'; color: black; font-style: italic; border: solid 2px; background: white; padding: 0 0.25em; }
     </style>
-    <style><!-- ISSUES/NOTES -->
-    div.issue-title, div.note-title {
-        padding-right:  1em;
-        min-width: 7.5em;
-        color: #b9ab2d;
-    }
-    div.issue-title { color: #e05252; }
-    div.note-title { color: #52e052; }
-    div.issue-title span, div.note-title span {
-        text-transform: uppercase;
-    }
-    div.note, div.issue {
-        margin-top: 1em;
-        margin-bottom: 1em;
-    }
-    .note > p:first-child, .issue > p:first-child { margin-top: 0 }
-    .issue, .note {
-        padding: .5em;
-        border-left-width: .5em;
-        border-left-style: solid;
-    }
-    div.issue, div.note {
-        padding: 0.5em;
-        margin: 1em 0;
-        position: relative;
-        clear: both;
-    }
-    span.note, span.issue { padding: .1em .5em .15em; }
-    
-    .issue {
-        border-color: #e05252;
-        background: #fbe9e9;
-    }
-    .note {
-        border-color: #52e052;
-        background: #e9fbe9;
-    }
-    .noteHeader {
-      font-weight: bold;
-      display: block;
-      color: #005a9c;
-      color: black;
-      padding-top: 0.5em;
-    }
-    </style>
     <style type="text/css">
       div.nonnormative { color: green; margin: 2em 0 2em 0em; padding: 0.5em 1em; border: none; background: #DDFFDD; }
       .nonnormative:before { display: table; margin: -1em -0.5em -0.5em auto; width: auto; content: 'This section is non-normative.'; color: black; font-style: italic; border: solid 2px; background: white; padding: 0 0.25em; }
@@ -97,44 +127,10 @@
       .non-normative em { font-style: normal;}
       .non-normative var { font-style: normal;}
     </style>
-    <link rel="stylesheet" type="text/css" href="https://www.w3.org/StyleSheets/TR/w3c-ed.css"/>
   </head>
   <body>
-    <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 7 October 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>
-        <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/encrypted-media.html">http://dvcs.w3.org/hg/html-media/raw-file/default/encrypted-media/encrypted-media.html</a></dd>
-        <dt>Previous Versions:</dt>
-        <dd><a href="http://www.w3.org/TR/2014/WD-encrypted-media-20140828/">http://www.w3.org/TR/2014/WD-encrypted-media-20140828/</a></dd>
-        <dd><a href="http://www.w3.org/TR/2014/WD-encrypted-media-20140218/">http://www.w3.org/TR/2014/WD-encrypted-media-20140218/</a></dd>
-        <dd><a href="http://www.w3.org/TR/2013/WD-encrypted-media-20130510/">http://www.w3.org/TR/2013/WD-encrypted-media-20130510/</a></dd>
-        <dd><a href="http://www.w3.org/TR/2013/WD-encrypted-media-20131022/">http://www.w3.org/TR/2013/WD-encrypted-media-20131022/</a></dd>
-        <dt>Editors:</dt>
-        <dd>David Dorwin, Google, Inc.</dd>
-        <dd>Jerry Smith, Microsoft Corporation</dd>
-        <dd>Mark Watson, Netflix, Inc.</dd>
-        <dd>Adrian Bateman, Microsoft Corporation (until May 2014)</dd>
-  <dt>Bug/Issue lists:</dt>
-  <dd><a href='http://w3.org/brief/MjY5'>Bugzilla</a>, <a href='http://www.w3.org/html/wg/tracker/products/19'>Tracker</a></dd>
-  <dt>Discussion list:</dt>
-  <dd><a href='http://lists.w3.org/Archives/Public/public-html-media/'>public-html-media@w3.org</a></dd>
-  <dt>Test Suite:</dt>
-  <dd>None yet</dd>
-      </dl>
 
-    <p class="copyright"><a href="http://www.w3.org/Consortium/Legal/ipr-notice#Copyright">Copyright</a> &#169; 2014 <a href="http://www.w3.org/"><abbr title="World Wide Web Consortium">W3C</abbr></a><sup>&#174;</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. W3C <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>
-
-    <h2>Abstract</h2>
-
+    <section id="abstract">
     <p>This proposal extends HTMLMediaElement providing APIs to control playback of protected content.</p>
     <p>The API supports use cases ranging from simple clear key decryption to high value video (given an appropriate user agent implementation).
     License/key exchange is controlled by the application, facilitating the development of robust playback applications supporting a range of content decryption and protection technologies.</p>
@@ -144,59 +140,23 @@
     <p>The common API supports a simple set of content encryption capabilities, leaving application functions such as authentication and authorization to page authors. This is achieved by
     requiring content protection system-specific messaging to be mediated by the page rather than assuming out-of-band communication between the encryption system and a license
     or other server.</p>
+    </section>
  
-    <h2>Status of This Document</h2>
+    <section id="sotd">
+      <p>The working groups maintains <a href="http://w3.org/brief/MjY5">a list of all bug reports that the editors have not yet tried to address</a>. This draft highlights some of the pending issues that are still to be discussed in the working group. No decision has been taken on the outcome of these issues including whether they are valid.</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><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 W3C publications and the latest revision of this technical report can be found in the
-      <a href="http://www.w3.org/TR/">W3C technical reports index</a> at http://www.w3.org/TR/.
-    </em></p>
-    <p>Implementers should be aware that this specification is not stable. <strong>Implementers 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.
-      Please submit comments regarding this document by using the W3C's (<a href="https://www.w3.org/Bugs/Public/enter_bug.cgi?product=HTML%20WG&amp;component=Encrypted%20Media%20Extensions">public bug database</a>) with the product set to <kbd>HTML WG</kbd> and the component set to
-      <kbd>Encrypted Media Extensions</kbd>.
-      If you cannot access the bug database, submit comments 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>) and arrangements will be made to transpose the comments to the bug database.
-      All feedback is welcome.
-    </p>
-    <p>
-      Publication as an Editor's Draft does not imply endorsement by the W3C 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 class="non-normative">Note: It is an open issue whether and how the specification should do more to encourage/ensure CDM-level interoperability. See <a href="https://www.w3.org/Bugs/Public/show_bug.cgi?id=20944">Bug 20944</a>.</p>
-    <p class="non-normative">Note: This specification contains sections for describing <a href="#security">security</a> and <a href="#privacy">privacy</a> considerations. These sections are not final and review is welcome.</p>
-    <p>
-      This document was produced by a group operating under the <a href="http://www.w3.org/Consortium/Patent-Policy-20040205/">5 February 2004 W3C Patent Policy</a>.
-      W3C 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 W3C Patent Policy</a>.
+      <p>Note: It is an open issue whether and how the specification should do more to encourage/ensure CDM-level interoperability. See <a href="https://www.w3.org/Bugs/Public/show_bug.cgi?id=20944">Bug 20944</a>.</p>
+      <p>Note: This specification contains sections for describing <a href="#security">security</a> and <a href="#privacy">privacy</a> considerations. These sections are not final and review is welcome.</p>
+
+<!-- This will be populated when addressing https://www.w3.org/Bugs/Public/show_bug.cgi?id=23827.
+      <p>The following features are <strong>at risk</strong> and may be removed due to lack of implementation.
       </p>
-
-
-    <h2 id="toc">Table of Contents</h2>
-
-    <ul style="list-style-type:none">
-      <li><a href="#introduction">1. Introduction</a></li>
-        <li><ul style="list-style-type:none">
-          <li><a href="#definitions">1.1. Definitions</a></li>
-        </ul></li>
-      <li><a href="#mediakeys">2. MediaKeys Object</a></li>
-      <li><a href="#mediakeysession">3. MediaKeySession Object</a></li>
-      <li><a href="#htmlmediaelement-extensions">4. HTMLMediaElement Extensions</a></li>
-      <li><a href="#common-key-systems">5. Common Key Systems</a></li>
-        <li><ul style="list-style-type:none">
-          <li><a href="#clear-key">5.1. Clear Key</a></li>
-        </ul></li>
-      <li><a href="#security">6. Security Considerations</a></li>
-      <li><a href="#privacy">7. Privacy Considerations</a></li>
-      <li><a href="#examples">8. Examples</a></li>
-      <li><a href="#revision-history">9. Revision History</a></li>
-    </ul>
-
+      <ul>
+        <li><a def-id=""></a></li>
+      </ul>
+ -->
+    </section>
 
     <h2 id="introduction">1. Introduction</h2>
     <non-normative-section/>
@@ -296,7 +256,7 @@
     </p>
 
     <p>
-    The <a href="initdata-format-registry.html">Encrypted Media Extensions Stream Format and Initialization Data Format Registry</a>
+    The Encrypted Media Extensions Stream Format and Initialization Data Format Registry [[EME-REGISTRY]]
     provides the mapping from initialization data type string to the specification for each format.
     </p>
 
@@ -317,7 +277,7 @@
     <p>The MediaKeys object represents a set of keys that an associated HTMLMediaElement can use for decryption of <videoanchor name="media-data">media data</videoanchor> during playback.
       It also represents a CDM instance.
     </p>
-    <div class="issue"><div class="issue-title"><span>Issue 1</span></div><p class=""><a href="https://www.w3.org/Bugs/Public/show_bug.cgi?id=25923">Bug 25923</a> - Feature detection, including isTypeSupported(), and MediaKeys creation may change significantly.</p></div>
+    <p class="issue"><a href="https://www.w3.org/Bugs/Public/show_bug.cgi?id=25923">Bug 25923</a> - Feature detection, including isTypeSupported(), and MediaKeys creation may change significantly.</p>
     <pre class="idl">
 enum <precodedfn>IsTypeSupportedResult</precodedfn> { "<precodedfn prefix="istypesupportedresultempty"></precodedfn>" /* empty string */, "<precodedfn prefix="istypesupportedresult">maybe</precodedfn>", "<precodedfn prefix="istypesupportedresult">probably</precodedfn>" };
 enum <precodedfn>SessionType</precodedfn> { "<precodedfn prefix="sessiontype">temporary</precodedfn>", "<precodedfn prefix="sessiontype">persistent</precodedfn>" };
@@ -539,12 +499,12 @@
         <ol>
           <li><p>If the <var>init data</var> is not valid for <var title="true">initDataType</var>, reject <var>promise</var> with a new <code><dom4ref name="exception-domexception">DOMException</dom4ref></code> whose name is <code><a href="#dfn-InvalidAccessError">"InvalidAccessError"</a></code>.</p></li>
           <li><p>Let <var>sanitized init data</var> be a validated and/or sanitized version of <var>init data</var>.</p>
-            <div class="note">The user agent should thoroughly validate the Initialization Data before passing it to the CDM.
+            <p class="note">The user agent should thoroughly validate the Initialization Data before passing it to the CDM.
               This may include verifying values are within reasonable limits, stripping irrelevant data or fields, pre-parsing it, sanitizing it, and/or generating a fully sanitized version.
               The user agent should check that the length and values of fields are reasonable.
               Unknown fields should be rejected or removed.
               For Initialization Data formats that support multiple entries, the user agent should remove entries that are not needed by the CDM.
-            </div>
+            </p>
           </li>
           <li><p>If the previous step failed, reject <var>promise</var> with a new <code><dom4ref name="exception-domexception">DOMException</dom4ref></code> whose name is <code><a href="#dfn-InvalidAccessError">"InvalidAccessError"</a></code>.</p></li>
           <li><p>Let <var title="true">session id</var> be the empty string.</p></li>
@@ -595,9 +555,9 @@
       <li><p>Run the following steps asynchronously:</p>
         <ol>
           <li><p>Let <var>sanitized session ID</var> be a validated and/or sanitized version of <var title="true">sessionId</var>.</p>
-            <div class="note">The user agent should thoroughly validate the sessionId value before passing it to the CDM.
+            <p class="note">The user agent should thoroughly validate the sessionId value before passing it to the CDM.
               At a minimum, this should include checking that the length and value (e.g. alphanumeric) are reasonable.
-            </div>
+            </p>
           </li>
           <li><p>If the previous step failed, reject <var>promise</var> with a new <code><dom4ref name="exception-domexception">DOMException</dom4ref></code> whose name is <code><a href="#dfn-InvalidAccessError">"InvalidAccessError"</a></code>.</p></li>
           <li><p>Let <var title="true">expiration time</var> be <code>NaN</code>.</p></li>
@@ -648,11 +608,11 @@
       <li><p>Run the following steps asynchronously:</p>
         <ol>
           <li><p>Let <var>sanitized response</var> be a validated and/or sanitized version of <var>response copy</var>.</p>
-            <div class="note">The user agent should thoroughly validate the response before passing it to the CDM.
+            <p class="note">The user agent should thoroughly validate the response before passing it to the CDM.
               This may include verifying values are within reasonable limits, stripping irrelevant data or fields, pre-parsing it, sanitizing it, and/or generating a fully sanitized version.
               The user agent should check that the length and values of fields are reasonable.
               Unknown fields should be rejected or removed.
-            </div>
+            </p>
           </li>
           <li><p>If the previous step failed, reject <var>promise</var> with a new <code><dom4ref name="exception-domexception">DOMException</dom4ref></code> whose name is <code><a href="#dfn-InvalidAccessError">"InvalidAccessError"</a></code>.</p></li>
           <li><p>Let <var title="true">cdm</var> be the CDM loaded during the <a href="#dom-create">initialization</a> of the <coderef>MediaKeys</coderef> object that created this object.</p></li>
@@ -760,7 +720,7 @@
       <li><p>Return <var>promise</var>.</p></li>
     </ol>
 
-    <div class="issue"><div class="issue-title"><span>Issue 2</span></div><p class=""><a href="https://www.w3.org/Bugs/Public/show_bug.cgi?id=26372">Bug 26372</a> - getUsableKeyIds() may be replaced.</p></div>
+    <p class="issue"><a href="https://www.w3.org/Bugs/Public/show_bug.cgi?id=26372">Bug 26372</a> - getUsableKeyIds() may be replaced.</p>
     <p>The <methoddfn name="getUsableKeyIds">getUsableKeyIds()</methoddfn> method allows an application to get the key IDs for keys in the session that the CDM <em>knows</em> are currently usable to decrypt <videoanchor name="media-data">media data</videoanchor>. It must run the following steps:</p>
     
     <ol>
@@ -1116,7 +1076,7 @@
           <li><p>Let <var title="">initDataType</var> be the string representing the <a href="#initialization-data-type">initialization data type</a> of the Initialization Data.</p></li>
           <li><p>Let <var title="">initData</var> be the Initialization Data.</p></li>
         </ol>
-        <div class="note">While the media element may allow loading of "Optionally-blockable Content" [MIXED-CONTENT], the user agent must not expose Initialization Data from such media data to the application.</div>
+        <p class="note">While the media element may allow loading of "Optionally-blockable Content" [MIXED-CONTENT], the user agent must not expose Initialization Data from such media data to the application.</p>
       </li>
       <li>
         <p><Queue-a-task/> to <fire-a-simple-event/> named <coderef>encrypted</coderef> at the <a href="#media-element">media element</a>.</p>
@@ -1176,7 +1136,7 @@
                     </dd>
                     <dt>If any of the <var title="true">available keys</var> corresponds to the <var title="">block key ID</var> and is unusable</dt>
                     <dd>
-                      <div class="issue"><div class="issue-title"><span>Issue 3</span></div><p class=""><a href="https://www.w3.org/Bugs/Public/show_bug.cgi?id=26372">Bug 26372</a> - It is TBD whether anything should happen in this case.</p></div>
+                      <p class="issue"><a href="https://www.w3.org/Bugs/Public/show_bug.cgi?id=26372">Bug 26372</a> - It is TBD whether anything should happen in this case.</p>
                     </dd>
                     <dt class="non-normative">Otherwise (there is no key for the <var title="true">block key ID</var> in any session)</dt>
                     <dd class="non-normative">Continue.</dd>
@@ -1308,7 +1268,7 @@
         </ul>
       </li>
       <li><p>The <methodref>getUsableKeyIds</methodref> method always returns all key IDs that have been provided via <methodref>update</methodref>.</p></li>
-      <li><p><a href="#initialization-data">Initialization Data</a>: Implementations may support any combination of <a href="initdata-format-registry.html">registered Initialization Data types</a>.
+      <li><p><a href="#initialization-data">Initialization Data</a>: Implementations may support any combination of registered Initialization Data types [[EME-REGISTRY]].
         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>