[EME] Bug 26372 - Update/add Issue blocks to reflect this bug and comment out definitions that are likely to change.
authorDavid Dorwin <ddorwin@google.com>
Fri, 18 Jul 2014 18:20:59 -0700
changeset 375 3368787fe08e
parent 374 7595e9457f23
child 376 13056a200b38
[EME] Bug 26372 - Update/add Issue blocks to reflect this bug and comment out definitions that are likely to change.

This also eliminates the subclassing of DOMException (bug 25896) and updates the bug numbers for the isTypeSupported() issue.
encrypted-media/encrypted-media.html
encrypted-media/encrypted-media.xml
--- a/encrypted-media/encrypted-media.html	Fri Jul 18 18:19:39 2014 -0700
+++ b/encrypted-media/encrypted-media.html	Fri Jul 18 18:20:59 2014 -0700
@@ -358,6 +358,10 @@
 };
 
 interface <dfn id="dom-mediakeysession">MediaKeySession</dfn> : <a href="http://www.w3.org/TR/dom/#eventtarget">EventTarget</a> {
+<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=26372">Bug 26372</a> - The future of the <code><a href="#dom-eventerror">error</a></code> event, <code><a href="#dom-error">error</a></code> attribute, and <a href="#mediakeyerror">MediaKeyError</a> is uncertain.</p>
+</div>
   // error state
   readonly attribute <a href="#dom-mediakeyerror">MediaKeyError</a>? <a href="#dom-error">error</a>;
 
@@ -375,7 +379,7 @@
 };
 
 <div class="issue">
-<div class="issue-title"><span>Issue 1</span></div>
+<div class="issue-title"><span>Issue 2</span></div>
 <p class="">Extensions to <a href="#dom-htmlsourceelement">HTMLSourceElement</a> may be at risk as discussed in <a href="https://www.w3.org/Bugs/Public/show_bug.cgi?id=23827">Bug 23827</a>.</p>
 </div>
 partial interface <dfn id="dom-htmlsourceelement">HTMLSourceElement</dfn> {
@@ -605,8 +609,8 @@
 
     <p>The <dfn id="dom-istypesupported"><code>isTypeSupported(keySystem, initDataType, contentType, capability)</code></dfn> method returns whether <var title="true">keySystem</var> is supported with the <var title="true"><a href="#initialization-data-type">initDataType</a></var>, container and codec(s) specified by <var title="true">contentType</var>, and <var title="true">capability</var>.</p>
     <div class="issue">
-<div class="issue-title"><span>Issue 2</span></div>
-<p class="">isTypeSupported() is still under discussion. See <a href="https://www.w3.org/Bugs/Public/show_bug.cgi?id=24873">Bug 24873</a>.</p>
+<div class="issue-title"><span>Issue 3</span></div>
+<p class="">isTypeSupported() is still under discussion. See <a href="https://www.w3.org/Bugs/Public/show_bug.cgi?id=25923">Bug 25923</a> and <a href="https://www.w3.org/Bugs/Public/show_bug.cgi?id=26207">Bug 26207</a>.</p>
 </div>
     <div class="example">
       <p>The following list shows some examples.</p>
@@ -918,54 +922,10 @@
 
     <h3 id="mediakeyerror">2.2. MediaKeyError</h3>
     <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=21798">Bug 21798</a> - The future of error events and MediaKeyError is uncertain.</p>
-</div>
-    <h4 id="mediakeyerror">2.2.1. Interface</h4>
-    <pre class="idl">
-[<a href="#dom-mediakeyerror-constructor">Constructor</a>(DOMString <a href="#mediakeyerror-names">name</a>, unsigned long <a href="#dom-systemcode">systemCode</a>, optional DOMString message = "")]
-interface <dfn id="dom-mediakeyerror">MediaKeyError</dfn> : <a href="http://www.w3.org/TR/dom/#domexception">DOMException</a> {
-  readonly attribute unsigned long <a href="#dom-systemcode">systemCode</a>;
-};
-</pre>
-
-    <div class="impl">
-    <p>The <dfn id="dom-mediakeyerror-constructor"><code>MediaKeyError</code></dfn> constructor must return a new <code><a href="#dom-mediakeyerror">MediaKeyError</a></code> object whose <code><a href="#dom-systemcode">systemCode</a></code> property is initialized to <var title="true">systemCode</var> and inherited properties are initialized by passing <var title="true">name</var> and <var title="true">message</var> to the <code><a href="http://www.w3.org/TR/dom/#domexception">DOMException</a></code> algorithm.</p>
-
-    <p>The <dfn id="dom-systemcode"><code>systemCode</code></dfn> attribute of a <code><a href="#dom-mediakeysession">MediaKeySession</a></code> object is a <a href="#key-system">Key System</a>-specific value for the error that occurred.
-    <span class="non-normative">This allows a more granular status to be returned than the more general <a href="#mediakeyerror-names">name</a>.</span>
-    It should be 0 if there is no associated status code or such status codes are not supported by the Key System.
-    </p>
-    </div>
-
-    <h4 id="mediakeyerror-names">2.2.2. Error Names</h4>
-
-    <p>The tables below list all the allowed error names for the <code>name</code> property along with a description.</p>
-
-    <div class="issue">
-<div class="issue-title"><span>Issue 4</span></div>
-<p class=""><a href="https://www.w3.org/Bugs/Public/show_bug.cgi?id=21798">Bug 21798</a> - The additional error names are yet to be defined.</p>
+<div class="issue-title"><span>Issue 1</span></div>
+<p class=""><a href="https://www.w3.org/Bugs/Public/show_bug.cgi?id=26372">Bug 26372</a> - The future of the <code><a href="#dom-eventerror">error</a></code> event, <code><a href="#dom-error">error</a></code> attribute, and <a href="#mediakeyerror">MediaKeyError</a> is uncertain.</p>
 </div>
 
-    <p>The following <a href="http://www.w3.org/TR/dom/#error-names">DOMException names from DOM4</a> may be used as shown in the following table:</p>
-    <table>
-      <tbody>
-        <tr>
-          <th>Name</th>
-          <th>Use</th>
-        </tr>
-      </tbody>
-    </table>
-
-    <p>The following new DOMException names are defined by this specification:</p>
-    <table>
-      <tbody>
-        <tr>
-          <th>Name</th>
-          <th>Use</th>
-        </tr>
-      </tbody>
-    </table>
 
     <h3 id="media-element-restictions">2.3 Media Element Restrictions</h3>
     <p><i>This section is non-normative.</i></p>
@@ -1084,7 +1044,12 @@
         <tr>
           <td><dfn id="dom-eventerror"><code>error</code></dfn></td>
           <td><code><a href="http://www.w3.org/TR/dom/#event">Event</a></code></td>
-          <td>An error occurs in the session.</td>
+          <td>An error occurs in the session.
+            <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=26372">Bug 26372</a> - The future of the <code><a href="#dom-eventerror">error</a></code> event, <code><a href="#dom-error">error</a></code> attribute, and <a href="#mediakeyerror">MediaKeyError</a> is uncertain.</p>
+</div>
+          </td>
           <td></td>
         </tr>
         <tr>
@@ -1254,22 +1219,11 @@
     </ol>
 
     <h3 id="algorithms-queue-error">4.4. Queue an "error" Event</h3>
-    <p>The Queue an "error" Event algorithm is run when the CDM needs to queue an error event to a <code><a href="#dom-mediakeysession">MediaKeySession</a></code> object.
-    Requests to run this algorithm include a target <code><a href="#dom-mediakeysession">MediaKeySession</a></code> object, an <var title="true">error name</var>, and a <var title="true">system code</var>.
-    </p>
-    <p>The following steps are run:</p>
-    <ol>
-      <li><p>Let the <var title="true">session</var> be the specified <code><a href="#dom-mediakeysession">MediaKeySession</a></code> object.</p></li>
-      <li>
-<p>Create a new <code><a href="#dom-mediakeyerror">MediaKeyError</a></code> object with the following attributes:</p>
-        <ul style="list-style-type:none"><li>
-          <code><a href="http://www.w3.org/TR/dom/#error-name">name</a></code> = <var title="true">error name</var><br>
-          <code><a href="#dom-systemcode">systemCode</a></code> = <var title="true">system code</var>
-        </li></ul>
-      </li>
-      <li><p>Set the <var title="true">session</var>'s <code><a href="#dom-error">error</a></code> attribute to the error object created in the previous step.</p></li>
-      <li><p><a href="http://www.w3.org/TR/html5/webappapis.html#queue-a-task">Queue a task</a> to <a href="http://www.w3.org/TR/html5/webappapis.html#fire-a-simple-event">fire a simple event</a> named <code><a href="#dom-eventerror">error</a></code> at the <var title="true">session</var>.</p></li>
-    </ol>
+    <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=26372">Bug 26372</a> - The future of the <code><a href="#dom-eventerror">error</a></code> event, <code><a href="#dom-error">error</a></code> attribute, and <a href="#mediakeyerror">MediaKeyError</a> is uncertain.</p>
+</div>
+
 
     <h3 id="algorithms-keys-changed">4.5. Usable Keys Changed</h3>
     <p>The Usable Keys Changed algorithm is run when the CDM changes the set of keys in the session that may be used for decryption.
@@ -1481,7 +1435,7 @@
     <div class="nonnormative">
 
     <div class="issue">
-<div class="issue-title"><span>Issue 5</span></div>Note: This section is not final and review is welcome.</div>
+<div class="issue-title"><span>Issue 4</span></div>Note: This section is not final and review is welcome.</div>
 
     <p>User Agent and Key System implementations must consider <a href="http://www.w3.org/TR/html5/embedded-content-0.html#media-data">media data</a>, <a href="#initialization-data">Initialization Data</a>, responses (i.e. data passed to <code><a href="#dom-update">update()</a></code>), licenses, key data, and all other data provided by the application as untrusted content and potential attack vectors.
     They must use appropriate safeguards to mitigate any associated threats and take care to safely parse, decrypt, etc. such data.
@@ -1518,7 +1472,7 @@
     <div class="nonnormative">
 
     <div class="issue">
-<div class="issue-title"><span>Issue 6</span></div>Note: This section is not final and review is welcome.</div>
+<div class="issue-title"><span>Issue 5</span></div>Note: This section is not final and review is welcome.</div>
  
     <p>The presence or use of Key Systems on a user's device raises a number of privacy issues, falling into two categories: (a) user-specific information that may be disclosed by the EME interface itself, or within messages from Key Systems and (b) user-specific information that may be persistently stored on the users device.</p>
     <p>User Agents should take responsibility for providing users with adequate control over their own privacy. Since User Agents may integrate with third party CDM implementations, CDM implementers must provide sufficient information and controls to user agent implementers to enable them to implement appropriate techniques to ensure users have control over their privacy, including but not limited to the techniques described below.</p>
@@ -1882,8 +1836,7 @@
   }
 
   function handleError(event) {
-    // Report event.target.error.name and event.target.error.<a href="#dom-systemcode">systemCode</a>,
-    // and do some bookkeeping with event.target.<a href="#dom-sessionid">sessionId</a> if necessary.
+    // Report and do some bookkeeping with event.target.<a href="#dom-sessionid">sessionId</a> if necessary.
   }
 
   selectKeySystem();
--- a/encrypted-media/encrypted-media.xml	Fri Jul 18 18:19:39 2014 -0700
+++ b/encrypted-media/encrypted-media.xml	Fri Jul 18 18:20:59 2014 -0700
@@ -355,6 +355,7 @@
 };
 
 interface <precodedfn>MediaKeySession</precodedfn> : <dom4ref name="eventtarget">EventTarget</dom4ref> {
+<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=26372">Bug 26372</a> - The future of the <coderef prefix="event">error</coderef> event, <coderef>error</coderef> attribute, and <a href="#mediakeyerror">MediaKeyError</a> is uncertain.</p></div>
   // error state
   readonly attribute <precoderef>MediaKeyError</precoderef>? <precoderef>error</precoderef>;
 
@@ -371,7 +372,7 @@
   Promise&lt;sequence&lt;ArrayBuffer&gt;&gt; <premethodref>getUsableKeyIds</premethodref>();
 };
 
-<div class="issue"><div class="issue-title"><span>Issue 1</span></div><p class="">Extensions to <precoderef>HTMLSourceElement</precoderef> may be at risk as discussed in <a href="https://www.w3.org/Bugs/Public/show_bug.cgi?id=23827">Bug 23827</a>.</p></div>
+<div class="issue"><div class="issue-title"><span>Issue 2</span></div><p class="">Extensions to <precoderef>HTMLSourceElement</precoderef> may be at risk as discussed in <a href="https://www.w3.org/Bugs/Public/show_bug.cgi?id=23827">Bug 23827</a>.</p></div>
 partial interface <precodedfn>HTMLSourceElement</precodedfn> {
   attribute DOMString <precoderef prefix="source">keySystem</precoderef>;
 };
@@ -580,7 +581,7 @@
     </ol>
 
     <p>The <methoddfn name="isTypeSupported">isTypeSupported(<var title="true">keySystem</var>, <var title="true">initDataType</var>, <var title="true">contentType</var>, <var title="true">capability</var>)</methoddfn> method returns whether <var title="true">keySystem</var> is supported with the <var title="true"><a href="#initialization-data-type">initDataType</a></var>, container and codec(s) specified by <var title="true">contentType</var>, and <var title="true">capability</var>.</p>
-    <div class="issue"><div class="issue-title"><span>Issue 2</span></div><p class="">isTypeSupported() is still under discussion. See <a href="https://www.w3.org/Bugs/Public/show_bug.cgi?id=24873">Bug 24873</a>.</p></div>
+    <div class="issue"><div class="issue-title"><span>Issue 3</span></div><p class="">isTypeSupported() is still under discussion. See <a href="https://www.w3.org/Bugs/Public/show_bug.cgi?id=25923">Bug 25923</a> and <a href="https://www.w3.org/Bugs/Public/show_bug.cgi?id=26207">Bug 26207</a>.</p></div>
     <div class="example">
       <p>The following list shows some examples.</p>
       <dl>
@@ -867,7 +868,8 @@
     </table>
 
     <h3 id="mediakeyerror">2.2. MediaKeyError</h3>
-    <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=21798">Bug 21798</a> - The future of error events and MediaKeyError is uncertain.</p></div>
+    <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=26372">Bug 26372</a> - The future of the <coderef prefix="event">error</coderef> event, <coderef>error</coderef> attribute, and <a href="#mediakeyerror">MediaKeyError</a> is uncertain.</p></div>
+<!-- TODO: Remove or fix when the bug is addressed.
     <h4 id="mediakeyerror">2.2.1. Interface</h4>
     <pre class="idl">
 [<a href="#dom-mediakeyerror-constructor">Constructor</a>(DOMString <a href="#mediakeyerror-names">name</a>, unsigned long <precoderef>systemCode</precoderef>, optional DOMString message = "")]
@@ -889,7 +891,7 @@
 
     <p>The tables below list all the allowed error names for the <code>name</code> property along with a description.</p>
 
-    <div class="issue"><div class="issue-title"><span>Issue 4</span></div><p class=""><a href="https://www.w3.org/Bugs/Public/show_bug.cgi?id=21798">Bug 21798</a> - The additional error names are yet to be defined.</p></div>
+    <div class="issue"><div class="issue-title"><span>Issue X</span></div><p class=""><a href="https://www.w3.org/Bugs/Public/show_bug.cgi?id=26372">Bug 26372</a> - The additional error names are yet to be defined.</p></div>
 
     <p>The following <dom4ref name="error-names">DOMException names from DOM4</dom4ref> may be used as shown in the following table:</p>
     <table>
@@ -910,6 +912,7 @@
         </tr>
       </tbody>
     </table>
+-->
 
     <h3 id="media-element-restictions">2.3 Media Element Restrictions</h3>
     <non-normative-section/>
@@ -1019,7 +1022,9 @@
         <tr>
           <td><codedfn prefix="event">error</codedfn></td>
           <td><code><dom4ref name="event">Event</dom4ref></code></td>
-          <td>An error occurs in the session.</td>
+          <td>An error occurs in the session.
+            <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=26372">Bug 26372</a> - The future of the <coderef prefix="event">error</coderef> event, <coderef>error</coderef> attribute, and <a href="#mediakeyerror">MediaKeyError</a> is uncertain.</p></div>
+          </td>
           <td><!-- No Preconditions. --></td>
         </tr>
         <tr>
@@ -1182,6 +1187,8 @@
     </ol>
 
     <h3 id="algorithms-queue-error">4.4. Queue an "error" Event</h3>
+    <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=26372">Bug 26372</a> - The future of the <coderef prefix="event">error</coderef> event, <coderef>error</coderef> attribute, and <a href="#mediakeyerror">MediaKeyError</a> is uncertain.</p></div>
+<!-- TODO: Remove or fix when bug 26372 is addressed.
     <p>The Queue an "error" Event algorithm is run when the CDM needs to queue an error event to a <coderef>MediaKeySession</coderef> object.
     Requests to run this algorithm include a target <coderef>MediaKeySession</coderef> object, an <var title="true">error name</var>, and a <var title="true">system code</var>.
     </p>
@@ -1197,6 +1204,7 @@
       <li><p>Set the <var title="true">session</var>'s <coderef>error</coderef> attribute to the error object created in the previous step.</p></li>
       <li><p><Queue-a-task/> to <fire-a-simple-event/> named <coderef prefix="event">error</coderef> at the <var title="true">session</var>.</p></li>
     </ol>
+-->
 
     <h3 id="algorithms-keys-changed">4.5. Usable Keys Changed</h3>
     <p>The Usable Keys Changed algorithm is run when the CDM changes the set of keys in the session that may be used for decryption.
@@ -1401,7 +1409,7 @@
     <h2 id="security">6. Security Considerations</h2>
     <div class="nonnormative">
 
-    <div class="issue"><div class="issue-title"><span>Issue 5</span></div>Note: This section is not final and review is welcome.</div>
+    <div class="issue"><div class="issue-title"><span>Issue 4</span></div>Note: This section is not final and review is welcome.</div>
 
     <p>User Agent and Key System implementations must consider <videoanchor name="media-data">media data</videoanchor>, <a href="#initialization-data">Initialization Data</a>, responses (i.e. data passed to <methodref>update</methodref>), licenses, key data, and all other data provided by the application as untrusted content and potential attack vectors.
     They must use appropriate safeguards to mitigate any associated threats and take care to safely parse, decrypt, etc. such data.
@@ -1437,7 +1445,7 @@
     <h2 id="privacy">7. Privacy Considerations</h2>
     <div class="nonnormative">
 
-    <div class="issue"><div class="issue-title"><span>Issue 6</span></div>Note: This section is not final and review is welcome.</div>
+    <div class="issue"><div class="issue-title"><span>Issue 5</span></div>Note: This section is not final and review is welcome.</div>
  
     <p>The presence or use of Key Systems on a user's device raises a number of privacy issues, falling into two categories: (a) user-specific information that may be disclosed by the EME interface itself, or within messages from Key Systems and (b) user-specific information that may be persistently stored on the users device.</p>
     <p>User Agents should take responsibility for providing users with adequate control over their own privacy. Since User Agents may integrate with third party CDM implementations, CDM implementers must provide sufficient information and controls to user agent implementers to enable them to implement appropriate techniques to ensure users have control over their privacy, including but not limited to the techniques described below.</p>
@@ -1801,8 +1809,9 @@
   }
 
   function handleError(event) {
-    // Report event.target.error.name and event.target.error.<precoderef>systemCode</precoderef>,
-    // and do some bookkeeping with event.target.<precoderef>sessionId</precoderef> if necessary.
+    // Report <!-- TODO: Remove or fix when bug 26372 is addressed.
+    event.target.error.name and event.target.error.<precoderef>systemCode</precoderef>,
+    //  -->and do some bookkeeping with event.target.<precoderef>sessionId</precoderef> if necessary.
   }
 
   selectKeySystem();