discovery-api/Overview.src.html
changeset 191 5e0da09685f7
parent 180 ee3a89da06e1
child 192 3ecf12df315d
     1.1 --- a/discovery-api/Overview.src.html	Fri Aug 03 12:59:17 2012 +0200
     1.2 +++ b/discovery-api/Overview.src.html	Wed Aug 22 15:45:40 2012 +0200
     1.3 @@ -6,27 +6,32 @@
     1.4      <!-- This spec has been compiled with ReSpec v2 -->
     1.5      <script type="text/javascript" class='remove'>
     1.6        var respecConfig = {
     1.7 -          specStatus: "unofficial",
     1.8 -          shortName:  "discovery",
     1.9 -          edDraftURI: "http://dev.w3.org/2009/dap/discovery/",
    1.10 +          specStatus:   "ED",
    1.11 +          //publishDate:  "2012-08-22",
    1.12 +          shortName:    "discovery-api",
    1.13 +          edDraftURI:   "http://w3c-test.org/dap/discovery-api/",
    1.14 +          previousMaturity: "WD",
    1.15 +          previousPublishDate: "2012-08-07",
    1.16            editors: [
    1.17 -                {   name:       "Rich Tibbett",
    1.18 -                    //url:        "http://richt.me/",
    1.19 -                    company:    "Opera Software ASA",
    1.20 -                    companyURL: "http://opera.com/" },
    1.21 -                {   name:       "Clarke Stevens",
    1.22 -                    //url:      "",
    1.23 -                    company:    "CableLabs",
    1.24 -                    companyURL: "http://cablelabs.com/"
    1.25 -                }
    1.26 +            {
    1.27 +              name:       "Rich Tibbett",
    1.28 +              //url:        "http://richt.me/",
    1.29 +              company:    "Opera Software ASA",
    1.30 +              companyURL: "http://opera.com/"
    1.31 +            },
    1.32 +            {
    1.33 +              name:       "Clarke Stevens",
    1.34 +              //url:      "",
    1.35 +              company:    "CableLabs",
    1.36 +              companyURL: "http://cablelabs.com/"
    1.37 +            }
    1.38            ],
    1.39            //extraCSS:             ["./css/respec2.css"],
    1.40 -          noIDLIn:  true,
    1.41 -
    1.42 +          noIDLIn:      true,
    1.43            wg:           "Device APIs and Policy Working Group",
    1.44            wgURI:        "http://www.w3.org/2009/dap/",
    1.45            wgPublicList: "public-device-apis",
    1.46 -          wgPatentURI:  "http://www.w3.org/2004/01/pp-impl/43696/status",
    1.47 +          wgPatentURI:  "http://www.w3.org/2004/01/pp-impl/43696/status"
    1.48        };
    1.49      </script>
    1.50  
    1.51 @@ -659,9 +664,6 @@
    1.52            </p>
    1.53  
    1.54            <ol class="rule">
    1.55 -            <li>
    1.56 -               If <var>successCallback</var> is empty or is not an object of type <code>Function</code> then the <a>user agent</a> MUST abort these steps.
    1.57 -            </li>
    1.58  
    1.59              <li>
    1.60                Let <var>requested control types</var> be initially set to an empty array.
    1.61 @@ -761,7 +763,7 @@
    1.62                       Add the <var>service</var>'s <code>url</code> parameter to the <a>entry script origin's <acronym title="Uniform Resource Locator">URL</acronym> whitelist</a>.
    1.63                    </li>
    1.64                    <li>
    1.65 -                    If <var>service</var> was originally created from a UPnP discovery process and the <var>service</var>'s <code>eventsUrl</code> parameter is not empty then <a>setup a UPnP Events Subscription</a> for <var>service</var>.
    1.66 +                    If <var>service</var>'s <code>type</code> parameter begins with the DOMString &quot;<code>upnp:</code>&quot; and the <var>service</var>'s <code>eventsUrl</code> parameter is not empty then <a>setup a UPnP Events Subscription</a> for <var>service</var>.
    1.67                    </li>
    1.68                 </ol>
    1.69              </li>
    1.70 @@ -771,7 +773,7 @@
    1.71              </li>
    1.72  
    1.73              <li>
    1.74 -               Set <var>services manager</var>'s <code>servicesAvailable</code> attribute to the length of <var>services</var>.
    1.75 +               Set <var>services manager</var>'s <a href="#dom-networkservices-servicesavailable"><code>servicesAvailable</code></a> attribute to the length of <var>services</var>.
    1.76              </li>
    1.77  
    1.78              <li>
    1.79 @@ -917,17 +919,22 @@
    1.80             <p>
    1.81                The <dfn id="dom-networkservices-servicesavailable"><code>servicesAvailable</code></dfn> attribute MUST return the number of services available in the
    1.82                user's network that match the <a>valid service type</a> that was initially used to create the current <a href="#networkservices"><code>NetworkServices</code></a> object.
    1.83 -              By default, <a href="#dom-networkservices-servicesavailable"><code>servicesAvailable</code></a> MUST be set to <code>1</code>.
    1.84             </p>
    1.85  
    1.86             <p>
    1.87 -             When a previously unknown instance of a networked service matching one or the requested <a href="#dfn-valid-service-type">valid service types</a> becomes available on the user's current network, the <a>user agent</a> MUST fire a new simple
    1.88 -             event at the <a href="#dom-networkservices-onserviceavailable"><code>onserviceavailable</code></a> event handler.
    1.89 +             When a previously unknown instance of a networked service matching one of the requested <a href="#dfn-valid-service-type">valid service types</a> becomes available on the user's current network, the <a>user agent</a> MUST increment the <a href="#dom-networkservices-servicesavailable"><code>servicesAvailable</code></a> attribute by <code>1</code> and then
    1.90 +             <a href="http://www.whatwg.org/specs/web-apps/current-work/complete/webappapis.html#queue-a-task" class="externalDFN">queue a task</a>
    1.91 +             to dispatch a newly created event with the name <code>serviceavailable</code> that uses the <code>Event</code> interface, which does
    1.92 +             not bubble, is not cancellable, and has no default action, at the current <a href="#networkservices"><code>NetworkServices</code></a>
    1.93 +             object.
    1.94             </p>
    1.95  
    1.96             <p>
    1.97 -             When a previously known instance of a networked service matching one or the requested <a href="#dfn-valid-service-type">valid service types</a> becomes unavailable on the user's current network, the <a>user agent</a> MUST fire a new simple
    1.98 -             event at the <a href="#dom-networkservices-onserviceunavailable"><code>onserviceunavailable</code></a> event handler.
    1.99 +             When a previously known instance of a networked service matching one of the requested <a href="#dfn-valid-service-type">valid service types</a> becomes unavailable on the user's current network, the <a>user agent</a> MUST decrement the <a href="#dom-networkservices-servicesavailable"><code>servicesAvailable</code></a> attribute by <code>1</code> and then
   1.100 +             <a href="http://www.whatwg.org/specs/web-apps/current-work/complete/webappapis.html#queue-a-task" class="externalDFN">queue a task</a>
   1.101 +              to dispatch a newly created event with the name <code>serviceunavailable</code> that uses the <code>Event</code> interface, which does
   1.102 +              not bubble, is not cancellable, and has no default action, at the current <a href="#networkservices"><code>NetworkServices</code></a>
   1.103 +              object.
   1.104             </p>
   1.105          </div>
   1.106  
   1.107 @@ -970,7 +977,7 @@
   1.108        </dl>
   1.109  
   1.110        <p>
   1.111 -        A <a href="#networkservices"><code>NetworkServices</code></a> object represents the current list of zero or more <a>current authorized services</a>, of which zero or more can be available at a time. Each item in <a>current authorized services</a> is represented by a <a href="#networkservice"><code>NetworkService</code></a> object.
   1.112 +        A <a href="#networkservices"><code>NetworkServices</code></a> object represents the current list of zero or more <a>current authorized services</a>, of which zero or more can be available at a time. Each item in <a>current authorized services</a> is represented by a <a href="#networkservice"><code>NetworkService</code></a> object. The list of <a>current authorized services</a> is <span>immutable</span> meaning that it cannot be modified for the lifetime of a <a href="#networkservices"><code>NetworkServices</code></a> object.
   1.113        </p>
   1.114  
   1.115        <p class="note">
   1.116 @@ -1063,13 +1070,13 @@
   1.117    readonly attribute DOMString        <a href="#dom-networkservice-url">url</a>;
   1.118    readonly attribute DOMString        <a href="#dom-networkservice-config">config</a>;
   1.119  
   1.120 -  const unsigned short <a href="#dom-networkservice-AVAILABLE">AVAILABLE</a>      = 1;
   1.121 -  const unsigned short <a href="#dom-networkservice-UNAVAILABLE">UNAVAILABLE</a>    = 2;
   1.122 -  readonly attribute unsigned short   <a href="#dom-networkservice-readystate">readyState</a>;
   1.123 +  readonly attribute boolean          <a href="#dom-networkservice-online">online</a>;
   1.124  
   1.125    // event handler attributes
   1.126 -           attribute <a href="http://www.whatwg.org/specs/web-apps/current-work/multipage/webappapis.html#eventhandler" class="externalDFN">EventHandler</a>     <a href="#dom-networkservice-onreadystatechange">onreadystatechange</a>;
   1.127 -           attribute <a href="http://www.whatwg.org/specs/web-apps/current-work/multipage/webappapis.html#eventhandler" class="externalDFN">EventHandler</a>     <a href="#dom-networkservice-onmessage">onmessage</a>;
   1.128 +           attribute <a href="http://www.whatwg.org/specs/web-apps/current-work/multipage/webappapis.html#eventhandler" class="externalDFN">EventHandler</a>     <a href="#dom-networkservice-onserviceonline">onserviceonline</a>;
   1.129 +           attribute <a href="http://www.whatwg.org/specs/web-apps/current-work/multipage/webappapis.html#eventhandler" class="externalDFN">EventHandler</a>     <a href="#dom-networkservice-onserviceoffline">onserviceoffline</a>;
   1.130 +
   1.131 +           attribute <a href="http://www.whatwg.org/specs/web-apps/current-work/multipage/webappapis.html#eventhandler" class="externalDFN">EventHandler</a>     <a href="#dom-networkservice-onnotify">onnotify</a>;
   1.132  };
   1.133  
   1.134  <a href="#networkservice">NetworkService</a> implements <a href="http://dvcs.w3.org/hg/domcore/raw-file/tip/Overview.html#interface-eventtarget" class="externalDFN">EventTarget</a>;
   1.135 @@ -1171,47 +1178,21 @@
   1.136          <dt>
   1.137            <var title="">service</var>
   1.138             .
   1.139 -          <code title="dom-networkservice-readystate">
   1.140 -            <a href="#dom-networkservice-readystate">readyState</a>
   1.141 +          <code title="dom-networkservice-online">
   1.142 +            <a href="#dom-networkservice-online">online</a>
   1.143            </code>
   1.144          </dt>
   1.145          <dd>
   1.146            <p>
   1.147 -            Returns the current state.
   1.148 +            Returns <code>true</code> if the service is reporting that it is accessible on the local network or <code>false</code> if the service is reporting that it is no longer accessible (temporarily or permanently) on the local network.
   1.149            </p>
   1.150          </dd>
   1.151        </dl>
   1.152  
   1.153 -         A <a href="#networkservice"><code>NetworkService</code></a> object can be in several states. The <dfn id="dom-networkservice-readystate"><code>readyState</code></dfn> attribute MUST return the current state of the networked service,
   1.154 -         which MUST be one of the following values:
   1.155 -
   1.156 -         <dl>
   1.157 -           <dt>
   1.158 -             <dfn id="dom-networkservice-AVAILABLE" title="dom-networkservice-AVAILABLE">
   1.159 -               <code>AVAILABLE</code>
   1.160 -             </dfn>
   1.161 -              (numeric value
   1.162 -             1)
   1.163 -
   1.164 -
   1.165 -           </dt>
   1.166 -           <dd>
   1.167 -             <p>The object is connected to its service endpoint.
   1.168 -
   1.169 -            </p>
   1.170 -           </dd>
   1.171 -           <dt>
   1.172 -             <dfn id="dom-networkservice-UNAVAILABLE" title="dom-networkservice-UNAVAILABLE">
   1.173 -               <code>UNAVAILABLE</code>
   1.174 -             </dfn>
   1.175 -              (numeric value
   1.176 -             2)
   1.177 -           </dt>
   1.178 -           <dd>
   1.179 -             <p>The object is not connected to its service endpoint.
   1.180 -            </p>
   1.181 -           </dd>
   1.182 -         </dl>
   1.183 +      <p>
   1.184 +        The <dfn id="dom-networkservice-config"><code>online</code></dfn> attribute indicates whether the service is reporting itself as being
   1.185 +        either <var>online</var>, and therefore accessible on the local network, in which case this attribute will return <code>true</code> or, <var>offline</var>, and therefore not accessible on the local network, either temporarily or permanently, in which case this attribute will return <code>false</code>. This attribute MUST default to <code>true</code>.
   1.186 +      </p>
   1.187  
   1.188        </section>
   1.189  
   1.190 @@ -1237,33 +1218,39 @@
   1.191          <tbody>
   1.192            <tr>
   1.193              <td>
   1.194 -              <dfn id="dom-networkservice-onmessage" title="dom-NetworkService-onmessage">
   1.195 -                <code>onmessage</code>
   1.196 +              <dfn id="dom-networkservice-onnotify" title="dom-NetworkService-onnotify">
   1.197 +                <code>onnotify</code>
   1.198                </dfn>
   1.199              </td>
   1.200              <td>
   1.201 -              <code title="event-message">message</code>
   1.202 +              <code title="event-notify">notify</code>
   1.203              </td>
   1.204            </tr>
   1.205            <tr>
   1.206              <td>
   1.207 -              <dfn id="dom-networkservice-onreadystatechange" title="dom-NetworkService-onreadystatechange">
   1.208 -                <code>onreadystatechange</code>
   1.209 +              <dfn id="dom-networkservice-onserviceonline" title="dom-NetworkService-onserviceonline">
   1.210 +                <code>onserviceonline</code>
   1.211                </dfn>
   1.212              </td>
   1.213              <td>
   1.214 -              <code title="event-onreadystatechange">readystatechange</code>
   1.215 +              <code title="event-onserviceonline">serviceonline</code>
   1.216 +            </td>
   1.217 +          </tr>
   1.218 +          <tr>
   1.219 +            <td>
   1.220 +              <dfn id="dom-networkservice-offserviceoffline" title="dom-NetworkService-onserviceoffline">
   1.221 +                <code>onserviceoffline</code>
   1.222 +              </dfn>
   1.223 +            </td>
   1.224 +            <td>
   1.225 +              <code title="event-onserviceoffline">serviceoffline</code>
   1.226              </td>
   1.227            </tr>
   1.228          </tbody>
   1.229        </table>
   1.230  
   1.231        <p>
   1.232 -         Events with an event type of <code>message</code> defined in this specification are <a href="http://dev.w3.org/html5/postmsg/#messageevent" class="externalDFN"><code>MessageEvent</code></a> objects as defined in [[!WEBMESSAGING]].
   1.233 -      </p>
   1.234 -
   1.235 -      <p>
   1.236 -         Events with an event type of <code>readystatechange</code> defined in this specification are simple <code>Event</code> objects.
   1.237 +         Events with an event type of <code>notify</code>, <code>serviceonline</code> or <code>serviceoffline</code> defined in this specification are simple <code>Event</code> objects.
   1.238        </p>
   1.239  
   1.240        </section>
   1.241 @@ -1273,7 +1260,7 @@
   1.242              <h2>Service Discovery</h2>
   1.243  
   1.244        <p>
   1.245 -         A <a>user agent</a> conforming to this specification MAY implement <acronym title="Simple Service Discovery Protocol">SSDP</acronym> [[!UPNP]] and Zeroconf [[!ZEROCONF]] service discovery mechanisms
   1.246 +         A <a>user agent</a> conforming to this specification MAY implement <acronym title="Simple Service Discovery Protocol">SSDP</acronym> [[!UPNP]] and Zeroconf [[!DNS-SD]] + [[!MDNS]] service discovery mechanisms
   1.247           to enable Web pages to request and connect with HTTP services running on networked devices, discovered via either mechanism, through this API. When a <a>user agent</a> implements either of these service discovery mechanisms, then it MUST conform to the corresponding algorithms provided in this section of the specification.
   1.248        </p>
   1.249        <p>
   1.250 @@ -1358,7 +1345,17 @@
   1.251                             <a href="#networkservice"><code>NetworkService</code></a> object.
   1.252                          </li>
   1.253                          <li>
   1.254 -                           Increment the <code>servicesAvailable</code> attribute of the <a href="#networkservices"><code>NetworkServices</code></a> object by <code>1</code>.
   1.255 +                           Increment the <a href="#dom-networkservices-servicesavailable"><code>servicesAvailable</code></a> attribute of the <a href="#networkservices"><code>NetworkServices</code></a> object by <code>1</code>.
   1.256 +                        </li>
   1.257 +                        <li>
   1.258 +                          <a href="http://www.whatwg.org/specs/web-apps/current-work/complete/webappapis.html#queue-a-task" class="externalDFN">Queue a task</a>
   1.259 +                           to dispatch a newly created event with the name <code>serviceavailable</code> that uses the <code>Event</code> interface, which does not bubble, is not cancellable, and has no default action, at the current
   1.260 +                            <a href="#networkservices"><code>NetworkServices</code></a> object.
   1.261 +                        </li>
   1.262 +                        <li>
   1.263 +                          <a href="http://www.whatwg.org/specs/web-apps/current-work/complete/webappapis.html#queue-a-task" class="externalDFN">Queue a task</a>
   1.264 +                           to dispatch a newly created event with the name <code>serviceonline</code> that uses the <code>Event</code> interface, which does not bubble, is not cancellable, and has no default action, at the current
   1.265 +                           <a href="#networkservice"><code>NetworkService</code></a> object.
   1.266                          </li>
   1.267                       </ol>
   1.268                    </li>
   1.269 @@ -1468,9 +1465,13 @@
   1.270                       <a href="#networkservice"><code>NetworkService</code></a> object.
   1.271                    </li>
   1.272                    <li>
   1.273 -                     If the <var>announcement type</var> equals <code>ssdp:alive</code> then Increment the <code>servicesAvailable</code> attribute of the <a href="#networkservices"><code>NetworkServices</code></a>
   1.274 -                     object by <code>1</code>. Otherwise, decrement the <code>servicesAvailable</code> attribute of the <a href="#networkservices"><code>NetworkServices</code></a>
   1.275 -                     object by <code>1</code>.
   1.276 +                     If the <var>announcement type</var> equals <code>ssdp:alive</code> then Increment the <a href="#dom-networkservices-servicesavailable"><code>servicesAvailable</code></a> attribute of the <a href="#networkservices"><code>NetworkServices</code></a>
   1.277 +                     object by <code>1</code> and then <a href="http://www.whatwg.org/specs/web-apps/current-work/complete/webappapis.html#queue-a-task" class="externalDFN">queue a task</a>
   1.278 +                      to dispatch a newly created event with the name <code>serviceonline</code> that uses the <code>Event</code> interface, which does not bubble, is not cancellable, and has no default action, at the current
   1.279 +                      <a href="#networkservice"><code>NetworkService</code></a> object. Otherwise, decrement the <a href="#dom-networkservices-servicesavailable"><code>servicesAvailable</code></a> attribute of the <a href="#networkservices"><code>NetworkServices</code></a>
   1.280 +                     object by <code>1</code> and then  <a href="http://www.whatwg.org/specs/web-apps/current-work/complete/webappapis.html#queue-a-task" class="externalDFN">queue a task</a>
   1.281 +                       to dispatch a newly created event with the name <code>serviceoffline</code> that uses the <code>Event</code> interface, which does not bubble, is not cancellable, and has no default action, at the current
   1.282 +                       <a href="#networkservice"><code>NetworkService</code></a> object..
   1.283                    </li>
   1.284                 </ol>
   1.285              </li>
   1.286 @@ -1492,7 +1493,7 @@
   1.287              </li>
   1.288  
   1.289              <li>
   1.290 -               Send a HTTP SUBSCRIBE request with a <em>NT</em> header with a string value of <code>upnp:event</code>, a <em>TIMEOUT</em> header with an integer value of
   1.291 +               Send a HTTP SUBSCRIBE request with a <em>NT</em> header with a string value of <code>upnp:event</code>, a <em>TIMEOUT</em> header with an integer value ofÆ’
   1.292                 <code>86400</code> and a <em>CALLBACK</em> header
   1.293                 with a string value of <var>callback URL</var> towards the <var>network service record</var>'s <code>eventsUrl</code> property.
   1.294              </li>
   1.295 @@ -1544,15 +1545,15 @@
   1.296                             Let <var>content clone</var> be the result of obtaining the message body of the HTTP NOTIFY request. If <var>content clone</var> is empty, then the <a>user agent</a> MUST abort these steps.
   1.297                          </li>
   1.298                          <li>
   1.299 -                          Create a new <code>message</code> event that uses the <a href="http://dev.w3.org/html5/postmsg/#messageevent" class="externalDFN"><code>MessageEvent</code></a> interface [[!WEBMESSAGING]], with the name <code>message</code>,
   1.300 -                           which does not bubble, is not cancelable, and has no default action.
   1.301 +                          Let <var>notification event</var> be a new simple event that uses the <code>Event</code> interface with the name <code>notify</code>,
   1.302 +                           which does not bubble, is not cancellable, and has no default action.
   1.303                          </li>
   1.304                          <li>
   1.305 -                           Let the <code>data</code> attribute of the event have the DOMString value of <var>content clone</var>.
   1.306 +                           Let the <code>data</code> attribute of <var>notification event</var> have the DOMString value of <var>content clone</var>.
   1.307                          </li>
   1.308                          <li>
   1.309                             <a href="http://www.whatwg.org/specs/web-apps/current-work/complete/webappapis.html#queue-a-task" class="externalDFN">Queue a task</a> to
   1.310 -                            dispatch the newly created event at the current <a><code>NetworkService</code></a> object.
   1.311 +                            dispatch <var>notification event</var> at the current <a><code>NetworkService</code></a> object.
   1.312                          </li>
   1.313                       </ol>
   1.314                    </li>
   1.315 @@ -1581,17 +1582,30 @@
   1.316  
   1.317                             <ol class="rule">
   1.318                                <li>
   1.319 -                                 Set the <a href="#dom-networkservice-readystate"><code>readyState</code></a> attribute to <code>2</code> (<a href="#dom-networkservice-UNAVAILABLE"><code>UNAVAILABLE</code></a>).
   1.320 +                                 Set the <a href="#dom-networkservice-online"><code>online</code></a> attribute to <code>false</code>.
   1.321                                </li>
   1.322                                <li>
   1.323 -                                 Create a new <code>readystatechange</code> event that uses the <code>Event</code> interface which does not bubble, is not cancelable, and has no default action.
   1.324 -                              </li>
   1.325 -                              <li>
   1.326 -                                 <a href="http://www.whatwg.org/specs/web-apps/current-work/complete/webappapis.html#queue-a-task" class="externalDFN">Queue a task</a> to
   1.327 -                                        dispatch the newly created event at the <a href="#networkservice"><code>NetworkService</code></a> object.
   1.328 -                              </li>
   1.329 +                                 <a href="http://www.whatwg.org/specs/web-apps/current-work/complete/webappapis.html#queue-a-task" class="externalDFN">Queue a task</a>
   1.330 +                                                      to dispatch a newly created event with the name <code>serviceoffline</code> that uses the <code>Event</code> interface, which does not bubble, is not cancellable, and has no default action, at the current
   1.331 +                                                      <a href="#networkservice"><code>NetworkService</code></a> object.
   1.332                             </ol>
   1.333                          </li>
   1.334 +                        <li>
   1.335 +                          For each <a href="#networkservices"><code>NetworkServices</code></a> object currently active in the <a>user agent</a> perform the following steps:
   1.336 +
   1.337 +                          <ol class="rule">
   1.338 +                            <li>
   1.339 +                              Let <var>number of available services</var> equal the value of <a href="#networkservices"><code>NetworkServices</code></a>'s <a href="#dom-networkservices-servicesavailable"><code>servicesAvailable</code></a> attribute.
   1.340 +                            </li>
   1.341 +                            <li>
   1.342 +                              Set the <a href="#networkservices"><code>NetworkServices</code></a>'s <a href="#dom-networkservices-servicesavailable"><code>servicesAvailable</code></a> attribute to zero (<code>0</code>).
   1.343 +                            </li>
   1.344 +                            <li>
   1.345 +                              For each <var>available service</var> in <var>number of available services</var> the <a>user agent</a> MUST fire a new simple event with the name <code>serviceunavailable</code> that has no default action, does not bubble and is not cancellable, at the current <a href="#networkservices"><code>NetworkServices</code></a> object.
   1.346 +                            </li>
   1.347 +                          </ol>
   1.348 +                        </li>
   1.349 +
   1.350                       </ol>
   1.351  
   1.352                       <p>
   1.353 @@ -1600,7 +1614,7 @@
   1.354  
   1.355                       <ol class="rule">
   1.356                          <li>
   1.357 -                           Re-issue an mDNS search and SSDP discovery search and handle the responses according to the processing defined in <a href="#service-discovery">Section 6: Service Discovery</a>.
   1.358 +                           Re-issue an mDNS search and SSDP discovery search using all of the <a>valid service type</a> tokens initially provided to all active <a href="#networkservices"><code>NetworkServices</code></a> objects and handle all discovery responses according to the processing defined in <a href="#service-discovery">Section 7: Service Discovery</a>.
   1.359                          </li>
   1.360                       </ol>
   1.361                    </div>
   1.362 @@ -1712,7 +1726,7 @@
   1.363        navigator.getNetworkServices('zeroconf:_xbmc-jsonrpc._tcp', gotXBMCService, error);
   1.364        startBtn.disabled = true;
   1.365     } else {
   1.366 -      debug.innerHTML += "&lt;br&gt;Service Discovery API not supported!";
   1.367 +      debug.innerHTML += "&lt;br&gt;Service Discovery not supported!";
   1.368     }
   1.369   }
   1.370  
   1.371 @@ -1720,11 +1734,9 @@
   1.372  
   1.373  // Listen for service disconnect messages
   1.374  
   1.375 -   services[0].addEventListener('readystatechange', function ( e ) {
   1.376 -     if(services[0].readyState === services[0].UNAVAILABLE) {
   1.377 +   services[0].addEventListener('serviceoffline', function ( e ) {
   1.378         debug.innerHTML += "&lt;br>" + services[0].name + " disconnected.";
   1.379         startBtn.disabled = false;
   1.380 -     }
   1.381     }, false);
   1.382  
   1.383  // Send a service message to get albums list (and process the service response)
   1.384 @@ -1825,9 +1837,9 @@
   1.385  &lt;script&gt;
   1.386    function successCallback( services ) {
   1.387  
   1.388 -  // Listen for service push messages
   1.389 +  // Listen for service push notification messages
   1.390  
   1.391 -    services[0].addEventListener('message', function ( msg ) {
   1.392 +    services[0].addEventListener('notify', function ( msg ) {
   1.393           debug.innerHTML += "&lt;br>" + services[0].name + " event received: ";
   1.394           debug.textContent += msg.data;
   1.395      }, false);
   1.396 @@ -1881,7 +1893,7 @@
   1.397  
   1.398        <p>Thanks are expressed by the editor to the following individuals for their feedback on this specification to date (in alphabetical order):
   1.399        <br /><br />
   1.400 -      Gar Bergstedt, Lars-Erik Bolstad, Hari G Kumar, Bob Lund, Giuseppe Pascale, Marcin Simonides, Clarke Stevens, Christian S&ouml;derstr&ouml;m, Mark Vickers, ...</p>
   1.401 +      Gar Bergstedt, Lars-Erik Bolstad, Cathy Chan, Hari G Kumar, Bob Lund, Giuseppe Pascale, Marcin Simonides, Clarke Stevens, Christian S&ouml;derstr&ouml;m, Mark Vickers, ...</p>
   1.402  
   1.403        <p>Thanks are also expressed by the editor to the following organizations and groups for their support in producing this specification to date (in alphabetical order):
   1.404        <br /></br />