Minor editorial updates
authorRich Tibbett <richt@opera.com>
Tue, 02 Oct 2012 16:57:24 +0200
changeset 2404bb39c70f008
parent 239 7e34654692fc
child 241 985e203d74f7
Minor editorial updates
discovery-api/Overview.html
discovery-api/Overview.src.html
     1.1 --- a/discovery-api/Overview.html	Tue Oct 02 16:32:06 2012 +0200
     1.2 +++ b/discovery-api/Overview.html	Tue Oct 02 16:57:24 2012 +0200
     1.3 @@ -612,28 +612,27 @@
     1.4          are to be interpreted as requirements on user agents.
     1.5        </p>
     1.6        <p>
     1.7 -        Conformance requirements phrased as algorithms or specific steps <em class="ct"><em class="rfc2119"
     1.8 -            title="may">may</em></em> be implemented in any manner, so long as the end result is equivalent. (In
     1.9 -            particular, the algorithms defined in this specification are intended to be easy to follow, and not
    1.10 -            intended to be performant.)
    1.11 +        Conformance requirements phrased as algorithms or specific steps <em class="rfc2119"
    1.12 +           title="may">may</em> be implemented in any manner, so long as the end result is equivalent. (In particular,
    1.13 +           the algorithms defined in this specification are intended to be easy to follow, and not intended to be
    1.14 +           performant.)
    1.15        </p>
    1.16        <p>
    1.17          The only conformance class defined by this specification is a <dfn id="dfn-user-agent">user agent</dfn>.
    1.18        </p>
    1.19        <p>
    1.20 -        User agents <em class="ct"><em class="rfc2119"
    1.21 -            title="may">may</em></em> impose implementation-specific limits on otherwise unconstrained inputs, e.g. to
    1.22 -            prevent denial of service attacks, to guard against running out of memory, or to work around
    1.23 -            platform-specific limitations.
    1.24 +        User agents <em class="rfc2119"
    1.25 +           title="may">may</em> impose implementation-specific limits on otherwise unconstrained inputs, e.g. to
    1.26 +           prevent denial of service attacks, to guard against running out of memory, or to work around
    1.27 +           platform-specific limitations.
    1.28        </p>
    1.29        <p>
    1.30          When support for a feature is disabled (e.g. as an emergency measure to mitigate a security problem, or to aid
    1.31 -        in development, or for performance reasons), user agents <em class="ct"><em class="rfc2119"
    1.32 -            title="must">must</em></em> act as if they had no support for the feature whatsoever, and as if the feature
    1.33 -            was not mentioned in this specification. For example, if a particular feature is accessed via an attribute
    1.34 -            in a Web IDL interface, the attribute itself would be omitted from the objects that implement that
    1.35 -            interface - leaving the attribute on the object but making it return null or throw an exception is
    1.36 -            insufficient.
    1.37 +        in development, or for performance reasons), user agents <em class="rfc2119"
    1.38 +           title="must">must</em> act as if they had no support for the feature whatsoever, and as if the feature was
    1.39 +           not mentioned in this specification. For example, if a particular feature is accessed via an attribute in a
    1.40 +           Web IDL interface, the attribute itself would be omitted from the objects that implement that interface -
    1.41 +           leaving the attribute on the object but making it return null or throw an exception is insufficient.
    1.42        </p>
    1.43        <section id="dependencies">
    1.44          <h3>
    1.45 @@ -756,8 +755,8 @@
    1.46                   class="internalDFN">valid service type</a> tokens that the web page would like to interact with.
    1.47              </p>
    1.48              <p>
    1.49 -              If the user accepts, the <var title="">successCallback</var> is invoked, with one or more <code><a href=
    1.50 -              "#networkservice"><code>NetworkService</code></a></code> objects as its argument.
    1.51 +              If the user accepts, the <var title="">successCallback</var> is invoked, with one or more <a href=
    1.52 +              "#networkservice"><code>NetworkService</code></a> objects as its argument.
    1.53              </p>
    1.54              <p>
    1.55                If the user declines, the <var title="">errorCallback</var> (if any) is invoked.
    1.56 @@ -769,8 +768,8 @@
    1.57              When the <dfn id="dom-navigator-getnetworkservices"
    1.58                 title="dom-navigator-getnetworkservices"><code>getNetworkServices(type, successCallback[,
    1.59                 errorCallback])</code></dfn> method is called, the <a href="#dfn-user-agent"
    1.60 -               class="internalDFN">user agent</a> <em class="ct"><em class="rfc2119"
    1.61 -                title="must">must</em></em> run the following steps:
    1.62 +               class="internalDFN">user agent</a> <em class="rfc2119"
    1.63 +               title="must">must</em> run the following steps:
    1.64            </p>
    1.65            <ol class="rule">
    1.66              <li>Let <var>requested control types</var> be initially set to an empty array.
    1.67 @@ -789,8 +788,8 @@
    1.68                    href="#dfn-valid-service-type"
    1.69                    class="internalDFN">valid service type</a> tokens then continue to the step labeled <em>process</em>
    1.70                    below. Otherwise, the <a href="#dfn-user-agent"
    1.71 -                  class="internalDFN">user agent</a> <em class="ct"><em class="rfc2119"
    1.72 -                  title="must">must</em></em> <a href=
    1.73 +                  class="internalDFN">user agent</a> <em class="rfc2119"
    1.74 +                  title="must">must</em> <a href=
    1.75                    "http://www.whatwg.org/specs/web-apps/current-work/complete/webappapis.html#queue-a-task"
    1.76                    class="externalDFN">queue a task</a> to invoke <var>errorCallback</var>, if it is provided and is an
    1.77                    object of type <code>Function</code>, with a new <a href=
    1.78 @@ -827,8 +826,8 @@
    1.79                </ol>
    1.80              </li>
    1.81              <li>If <var>services found</var> is an empty array, then the <a href="#dfn-user-agent"
    1.82 -                  class="internalDFN">user agent</a> <em class="ct"><em class="rfc2119"
    1.83 -                  title="must">must</em></em> <a href=
    1.84 +                  class="internalDFN">user agent</a> <em class="rfc2119"
    1.85 +                  title="must">must</em> <a href=
    1.86                    "http://www.whatwg.org/specs/web-apps/current-work/complete/webappapis.html#queue-a-task"
    1.87                    class="externalDFN">queue a task</a> to invoke <var>errorCallback</var>, if it is provided and is an
    1.88                    object of type <code>Function</code>, with a new <a href=
    1.89 @@ -842,8 +841,8 @@
    1.90              </li>
    1.91              <li>Optionally, e.g. based on a previously-established user preference, for security reasons, or due to
    1.92              platform limitations, the <a href="#dfn-user-agent"
    1.93 -                  class="internalDFN">user agent</a> <em class="ct"><em class="rfc2119"
    1.94 -                  title="may">may</em></em> <a href=
    1.95 +                  class="internalDFN">user agent</a> <em class="rfc2119"
    1.96 +                  title="may">may</em> <a href=
    1.97                    "http://www.whatwg.org/specs/web-apps/current-work/complete/webappapis.html#queue-a-task"
    1.98                    class="externalDFN">queue a task</a> to invoke <var>errorCallback</var>, if it is provided and is an
    1.99                    object of type <code>Function</code>, with a new <a href=
   1.100 @@ -854,9 +853,9 @@
   1.101                    argument, abort any remaining steps and return.
   1.102              </li>
   1.103              <li>The <a href="#dfn-user-agent"
   1.104 -                  class="internalDFN">user agent</a> <em class="ct"><em class="rfc2119"
   1.105 -                  title="must">must</em></em> prompt the user in a user-agent-specific manner for permission to provide
   1.106 -                  the <a href="http://www.whatwg.org/specs/web-apps/current-work/complete/browsers.html#entry-script"
   1.107 +                  class="internalDFN">user agent</a> <em class="rfc2119"
   1.108 +                  title="must">must</em> prompt the user in a user-agent-specific manner for permission to provide the
   1.109 +                  <a href="http://www.whatwg.org/specs/web-apps/current-work/complete/browsers.html#entry-script"
   1.110                    class="externalDFN">entry script</a>'s <a href=
   1.111                    "http://www.whatwg.org/specs/web-apps/current-work/complete/origin-0.html#origin"
   1.112                    class="externalDFN">origin</a> with an array of <a href=
   1.113 @@ -870,9 +869,9 @@
   1.114                </p>
   1.115                <p>
   1.116                  If the user denies permission, then the <a href="#dfn-user-agent"
   1.117 -                   class="internalDFN">user agent</a> <em class="ct"><em class="rfc2119"
   1.118 -                    title="must">must</em></em> <a href=
   1.119 -                    "http://www.whatwg.org/specs/web-apps/current-work/complete/webappapis.html#queue-a-task"
   1.120 +                   class="internalDFN">user agent</a> <em class="rfc2119"
   1.121 +                   title="must">must</em> <a href=
   1.122 +                   "http://www.whatwg.org/specs/web-apps/current-work/complete/webappapis.html#queue-a-task"
   1.123                     class="externalDFN">queue a task</a> to invoke <var>errorCallback</var>, if it is provided and is an
   1.124                     object of type <code>Function</code>, with a new <a href=
   1.125                     "#navigatornetworkserviceerror"><code>NavigatorNetworkServiceError</code></a> object whose <a href=
   1.126 @@ -888,7 +887,7 @@
   1.127              <li>Let <var>services</var> be the array of one or more <a href=
   1.128              "#networkservice"><code>NetworkService</code></a> objects for which the user granted permission.
   1.129              </li>
   1.130 -            <li>For each Object <var>service</var> in <var>services</var>, run the following substeps:
   1.131 +            <li>For each Object <var>service</var> in <var>services</var>, run the following sub-steps:
   1.132                <ol class="rule">
   1.133                  <li>Add the <var>service</var>'s <code>url</code> parameter to the <a href=
   1.134                  "#dfn-entry-script-origin-s-url-whitelist"
   1.135 @@ -916,8 +915,8 @@
   1.136                    <var>services manager</var> object.
   1.137              </li>
   1.138              <li>The <a href="#dfn-user-agent"
   1.139 -                  class="internalDFN">user agent</a> <em class="ct"><em class="rfc2119"
   1.140 -                  title="must">must</em></em> <a href=
   1.141 +                  class="internalDFN">user agent</a> <em class="rfc2119"
   1.142 +                  title="must">must</em> <a href=
   1.143                    "http://www.whatwg.org/specs/web-apps/current-work/complete/webappapis.html#queue-a-task"
   1.144                    class="externalDFN">queue a task</a> to invoke <var>successCallback</var> with <var>services
   1.145                    manager</var> as its argument.
   1.146 @@ -934,13 +933,13 @@
   1.147            <p>
   1.148              When a <a href="#networkservice"><code>NetworkService</code></a> object is provided to a Web page, the
   1.149              <a href="#dfn-user-agent"
   1.150 -               class="internalDFN">user agent</a> <em class="ct"><em class="rfc2119"
   1.151 -                title="must">must</em></em> add the <code>url</code> property to the <dfn id=
   1.152 -                "dfn-entry-script-origin-s-url-whitelist">entry script origin's <abbr title=
   1.153 -                "Uniform Resource Locator">URL</abbr> whitelist</dfn>. This list enables the Web page to override and
   1.154 -                initiate cross-site resource requests towards these URLs, and any sub-resources of these URLs, within
   1.155 -                the current <a href=
   1.156 -                "http://www.whatwg.org/specs/web-apps/current-work/complete/browsers.html#entry-script"
   1.157 +               class="internalDFN">user agent</a> <em class="rfc2119"
   1.158 +               title="must">must</em> add the <code>url</code> property to the <dfn id=
   1.159 +               "dfn-entry-script-origin-s-url-whitelist">entry script origin's <abbr title=
   1.160 +               "Uniform Resource Locator">URL</abbr> whitelist</dfn>. This list enables the Web page to override and
   1.161 +               initiate cross-site resource requests towards these URLs, and any sub-resources of these URLs, within
   1.162 +               the current <a href=
   1.163 +               "http://www.whatwg.org/specs/web-apps/current-work/complete/browsers.html#entry-script"
   1.164                 class="externalDFN">entry script</a>'s <a href=
   1.165                 "http://www.whatwg.org/specs/web-apps/current-work/complete/origin-0.html#origin"
   1.166                 class="externalDFN">origin</a> via various existing mechanisms (e.g. Web Sockets, Server-Sent Events,
   1.167 @@ -1081,17 +1080,16 @@
   1.168          </dl>
   1.169          <div>
   1.170            <p>
   1.171 -            The <dfn id="dom-networkservices-length"><code>length</code></dfn> attribute <em class="ct"><em class=
   1.172 -            "rfc2119"
   1.173 -                title="must">must</em></em> return the number of services represented in the object's corresponding
   1.174 -                <a href="#dfn-list-of-authorized-service-records"
   1.175 +            The <dfn id="dom-networkservices-length"><code>length</code></dfn> attribute <em class="rfc2119"
   1.176 +               title="must">must</em> return the number of services represented in the object's corresponding <a href=
   1.177 +               "#dfn-list-of-authorized-service-records"
   1.178                 class="internalDFN">list of authorized service records</a> at the time of getting.
   1.179            </p>
   1.180            <p>
   1.181              The <dfn id="dom-networkservices-servicesavailable"><code>servicesAvailable</code></dfn> attribute
   1.182 -            <em class="ct"><em class="rfc2119"
   1.183 -                title="must">must</em></em> return the number of services in the <a href=
   1.184 -                "#dfn-list-of-available-service-records"
   1.185 +            <em class="rfc2119"
   1.186 +               title="must">must</em> return the number of services in the <a href=
   1.187 +               "#dfn-list-of-available-service-records"
   1.188                 class="internalDFN">list of available service records</a> whose <code>type</code> attribute matches any
   1.189                 of the <a href="#dfn-valid-service-type"
   1.190                 class="internalDFN">valid service type</a> tokens that was initially used to create the current <a href=
   1.191 @@ -1162,10 +1160,9 @@
   1.192               class="externalDFN">determine the value of an indexed property</a> for a given index <var>index</var> in a
   1.193               <a href="#networkservices"><code>NetworkServices</code></a> object's <a href=
   1.194               "#dfn-list-of-authorized-service-records"
   1.195 -             class="internalDFN">list of authorized service records</a>, the user agent <em class="ct"><em class=
   1.196 -             "rfc2119"
   1.197 -              title="must">must</em></em> return the <a href="#networkservice"><code>NetworkService</code></a> object
   1.198 -              that represents the <var>index</var>th service in the <a href="#dfn-list-of-authorized-service-records"
   1.199 +             class="internalDFN">list of authorized service records</a>, the user agent <em class="rfc2119"
   1.200 +             title="must">must</em> return the <a href="#networkservice"><code>NetworkService</code></a> object that
   1.201 +             represents the <var>index</var>th service in the <a href="#dfn-list-of-authorized-service-records"
   1.202               class="internalDFN">list of authorized service records</a>.
   1.203          </p>
   1.204          <p>
   1.205 @@ -1177,8 +1174,8 @@
   1.206               <a href="#dom-networkservice-id"><code>id</code></a> attribute is equal to the value of the <var>id</var>
   1.207               argument. When no services in the <a href="#dfn-list-of-authorized-service-records"
   1.208               class="internalDFN">list of authorized service records</a> match the given argument, the method <em class=
   1.209 -             "ct"><em class="rfc2119"
   1.210 -              title="must">must</em></em> return null.
   1.211 +             "rfc2119"
   1.212 +             title="must">must</em> return null.
   1.213          </p>
   1.214          <p>
   1.215            Services available within the local network can connect and disconnect at different times during the
   1.216 @@ -1328,8 +1325,8 @@
   1.217          </dl>
   1.218          <p>
   1.219            The <dfn id="dom-networkservice-id"><code>id</code></dfn> attribute is a unique identifier for the service.
   1.220 -          The same service provided at different times or on different objects <em class="ct"><em class="rfc2119"
   1.221 -              title="must">must</em></em> have the same <a href="#dom-networkservice-id"><code>id</code></a> value.
   1.222 +          The same service provided at different times or on different objects <em class="rfc2119"
   1.223 +             title="must">must</em> have the same <a href="#dom-networkservice-id"><code>id</code></a> value.
   1.224          </p>
   1.225          <p>
   1.226            The <dfn id="dom-networkservice-name"><code>name</code></dfn> attribute represents a human-readable title for
   1.227 @@ -1377,8 +1374,8 @@
   1.228            reporting itself as being either <var>online</var>, and therefore accessible on the local network, in which
   1.229            case this attribute will return <code>true</code> or, <var>offline</var>, and therefore not accessible on the
   1.230            local network, either temporarily or permanently, in which case this attribute will return
   1.231 -          <code>false</code>. This attribute <em class="ct"><em class="rfc2119"
   1.232 -              title="must">must</em></em> default to <code>true</code>.
   1.233 +          <code>false</code>. This attribute <em class="rfc2119"
   1.234 +             title="must">must</em> default to <code>true</code>.
   1.235          </p>
   1.236        </section>
   1.237        <section id="events-1">
   1.238 @@ -1441,9 +1438,9 @@
   1.239        </h2>
   1.240        <p>
   1.241          A <a href="#dfn-user-agent"
   1.242 -           class="internalDFN">user agent</a> conforming to this specification <em class="ct"><em class="rfc2119"
   1.243 -            title="may">may</em></em> implement <acronym title="Simple Service Discovery Protocol"><abbr title=
   1.244 -            "Simple Service Discovery Protocol">SSDP</abbr></acronym> [<cite><a class="bibref"
   1.245 +           class="internalDFN">user agent</a> conforming to this specification <em class="rfc2119"
   1.246 +           title="may">may</em> implement <acronym title="Simple Service Discovery Protocol"><abbr title=
   1.247 +           "Simple Service Discovery Protocol">SSDP</abbr></acronym> [<cite><a class="bibref"
   1.248             href="#bib-UPNP-DEVICEARCH11">UPNP-DEVICEARCH11</a></cite>] and Zeroconf [<cite><a class="bibref"
   1.249             href="#bib-DNS-SD">DNS-SD</a></cite>] + [<cite><a class="bibref"
   1.250             href="#bib-MDNS">MDNS</a></cite>] service discovery mechanisms to enable Web pages to request and connect
   1.251 @@ -1451,9 +1448,9 @@
   1.252             via either mechanism, through this <abbr title="Application Programming Interface">API</abbr>. When a
   1.253             <a href="#dfn-user-agent"
   1.254             class="internalDFN">user agent</a> implements either of these service discovery mechanisms, then it
   1.255 -           <em class="ct"><em class="rfc2119"
   1.256 -            title="must">must</em></em> conform to the corresponding algorithms provided in this section of the
   1.257 -            specification.
   1.258 +           <em class="rfc2119"
   1.259 +           title="must">must</em> conform to the corresponding algorithms provided in this section of the
   1.260 +           specification.
   1.261        </p>
   1.262        <p>
   1.263          This section presents how the results of these two service discovery mechanisms will be matched to requested
   1.264 @@ -1461,10 +1458,10 @@
   1.265          resulting <a href="#networkservice"><code>NetworkService</code></a> objects.
   1.266        </p>
   1.267        <p>
   1.268 -        It is expected that user agents will perform these service discovery mechansisms asynchronously and
   1.269 -        periodically update the <a>list of networked devices</a> as required. The timing of any service discovery
   1.270 -        mechanisms is an implementation detail left to the discretion of the implementer (e.g. once on user agent
   1.271 -        start-up, every X seconds during user agent execution or on invocation of this <abbr title=
   1.272 +        It is expected that user agents will perform these service discovery mechanisms asynchronously and periodically
   1.273 +        update the <a>list of networked devices</a> as required. The timing of any service discovery mechanisms is an
   1.274 +        implementation detail left to the discretion of the implementer (e.g. once on user agent start-up, every X
   1.275 +        seconds during user agent execution or on invocation of this <abbr title=
   1.276          "Application Programming Interface">API</abbr> from a Web page).
   1.277        </p>
   1.278        <p>
   1.279 @@ -1606,9 +1603,8 @@
   1.280          </li>
   1.281        </ol>
   1.282        <p>
   1.283 -        User agents <em class="ct"><em class="rfc2119"
   1.284 -            title="should">should</em></em> expire a service record from the <a href=
   1.285 -            "#dfn-list-of-available-service-records"
   1.286 +        User agents <em class="rfc2119"
   1.287 +           title="should">should</em> expire a service record from the <a href="#dfn-list-of-available-service-records"
   1.288             class="internalDFN">list of available service records</a> when its <code>expiryTimestamp</code> attribute
   1.289             exceeds the current UTC timestamp. When this condition is met the <a href="#dfn-user-agent"
   1.290             class="internalDFN">user agent</a> <em class="rfc2119"
   1.291 @@ -1627,8 +1623,8 @@
   1.292            with the name <code>_services._dns-sd._udp</code> on the resolved recommended automatic browsing domain
   1.293            [<cite><a class="bibref"
   1.294               href="#bib-MDNS">MDNS</a></cite>], the <a href="#dfn-user-agent"
   1.295 -             class="internalDFN">user agent</a> <em class="ct"><em class="rfc2119"
   1.296 -              title="must">must</em></em> run the following steps:
   1.297 +             class="internalDFN">user agent</a> <em class="rfc2119"
   1.298 +             title="must">must</em> run the following steps:
   1.299          </p>
   1.300          <ol class="rule">
   1.301            <li>Let <var>service <abbr title="Multicast DNS">mDNS</abbr> responses</var> be an array of <abbr title=
   1.302 @@ -1687,15 +1683,15 @@
   1.303            "Simple Service Discovery Protocol">SSDP</abbr>)
   1.304          </h3>
   1.305          <p>
   1.306 -          A user agent that implements UPnP service discovery <em class="ct"><em class="rfc2119"
   1.307 -              title="must">must</em></em> issue an <dfn id="dfn-advertisement-for-upnp-root-devices">advertisement for
   1.308 -              UPnP root devices</dfn> against the user's current local network according to the full normative text and
   1.309 -              timing provided in 'Section 1.3.2: Search request with M-SEARCH' detailed in [<cite><a class="bibref"
   1.310 +          A user agent that implements UPnP service discovery <em class="rfc2119"
   1.311 +             title="must">must</em> issue an <dfn id="dfn-advertisement-for-upnp-root-devices">advertisement for UPnP
   1.312 +             root devices</dfn> against the user's current local network according to the full normative text and
   1.313 +             timing provided in 'Section 1.3.2: Search request with M-SEARCH' detailed in [<cite><a class="bibref"
   1.314               href="#bib-UPNP-DEVICEARCH11">UPNP-DEVICEARCH11</a></cite>].
   1.315          </p>
   1.316          <p>
   1.317 -          The user agent <em class="ct"><em class="rfc2119"
   1.318 -              title="must">must</em></em> issue all <a title="advertisement for UPnP root devices"
   1.319 +          The user agent <em class="rfc2119"
   1.320 +             title="must">must</em> issue all <a title="advertisement for UPnP root devices"
   1.321               href="#dfn-advertisement-for-upnp-root-devices"
   1.322               class="internalDFN">advertisements for UPnP root devices</a> with a <abbr title=
   1.323               "Hypertext Transfer Protocol">HTTP</abbr> request line equal to <code>M-SEARCH * <abbr title=
   1.324 @@ -1706,9 +1702,9 @@
   1.325               value between <code>1</code> and <code>5</code> seconds.
   1.326          </p>
   1.327          <p>
   1.328 -          The user agent <em class="ct"><em class="rfc2119"
   1.329 -              title="must">must</em></em> listen for incoming requests and process any incoming responses to any
   1.330 -              <a href="#dfn-advertisement-for-upnp-root-devices"
   1.331 +          The user agent <em class="rfc2119"
   1.332 +             title="must">must</em> listen for incoming requests and process any incoming responses to any <a href=
   1.333 +             "#dfn-advertisement-for-upnp-root-devices"
   1.334               class="internalDFN">advertisement for UPnP root devices</a> on the <dfn id=
   1.335               "dfn-standard-upnp-address-and-port">standard UPnP address and port</dfn>, on all current local network
   1.336               interface addresses with the port <code>1900</code>, according to the rules defined in this section.
   1.337 @@ -1718,17 +1714,17 @@
   1.338            following an initial <a href="#dfn-advertisement-for-upnp-root-devices"
   1.339               class="internalDFN">advertisement for UPnP root devices</a> sent on a <a href=
   1.340               "#dfn-standard-upnp-address-and-port"
   1.341 -             class="internalDFN">standard UPnP address and port</a> the user agent <em class="ct"><em class="rfc2119"
   1.342 -              title="must">must</em></em> run the following steps:
   1.343 +             class="internalDFN">standard UPnP address and port</a> the user agent <em class="rfc2119"
   1.344 +             title="must">must</em> run the following steps:
   1.345          </p>
   1.346          <ol class="rule">
   1.347            <li>If the <a href="#dfn-http-response"
   1.348                  class="internalDFN"><abbr title="Hypertext Transfer Protocol">HTTP</abbr> Response</a> is not a
   1.349                  <abbr title="Hypertext Transfer Protocol">HTTP</abbr> 200 OK response then this response is invalid and
   1.350 -                the user agent <em class="ct"><em class="rfc2119"
   1.351 -                title="must">must</em></em> discard this response, abort any remaining steps and return. The user agent
   1.352 -                <em class="ct"><em class="rfc2119"
   1.353 -                title="may">may</em></em> issue a new <a href="#dfn-advertisement-for-upnp-root-devices"
   1.354 +                the user agent <em class="rfc2119"
   1.355 +                title="must">must</em> discard this response, abort any remaining steps and return. The user agent
   1.356 +                <em class="rfc2119"
   1.357 +                title="may">may</em> issue a new <a href="#dfn-advertisement-for-upnp-root-devices"
   1.358                  class="internalDFN">advertisement for UPnP root devices</a> as a result of this error occurring.
   1.359            </li>
   1.360            <li>If the <a href="#dfn-maximum-upnp-advertisement-response-wait-time"
   1.361 @@ -1737,8 +1733,8 @@
   1.362                  class="internalDFN">advertisement for UPnP root devices</a> was sent then the <a href=
   1.363                  "#dfn-http-response"
   1.364                  class="internalDFN"><abbr title="Hypertext Transfer Protocol">HTTP</abbr> Response</a> is invalid and
   1.365 -                the user agent <em class="ct"><em class="rfc2119"
   1.366 -                title="must">must</em></em> discard this response, abort any remaining steps and return.
   1.367 +                the user agent <em class="rfc2119"
   1.368 +                title="must">must</em> discard this response, abort any remaining steps and return.
   1.369            </li>
   1.370            <li>Let <var>ssdp device</var> be an Object with a property for each <abbr title=
   1.371            "Hypertext Transfer Protocol">HTTP</abbr> header received in the <a href="#dfn-http-response"
   1.372 @@ -1751,11 +1747,11 @@
   1.373            value of its <var>ST</var> entry is not <code>upnp:rootdevice</code>, then the <a href="#dfn-http-response"
   1.374                  class="internalDFN"><abbr title="Hypertext Transfer Protocol">HTTP</abbr> Response</a> is invalid and
   1.375                  the <a href="#dfn-user-agent"
   1.376 -                class="internalDFN">user agent</a> <em class="ct"><em class="rfc2119"
   1.377 -                title="must">must</em></em> discard this response, abort any remaining steps and return.
   1.378 +                class="internalDFN">user agent</a> <em class="rfc2119"
   1.379 +                title="must">must</em> discard this response, abort any remaining steps and return.
   1.380            </li>
   1.381 -          <li>The user agent <em class="ct"><em class="rfc2119"
   1.382 -                title="must">must</em></em> run the rule for <a href="#dfn-obtaining-a-upnp-device-description-file"
   1.383 +          <li>The user agent <em class="rfc2119"
   1.384 +                title="must">must</em> run the rule for <a href="#dfn-obtaining-a-upnp-device-description-file"
   1.385                  class="internalDFN">obtaining a UPnP Device Description File</a> passing in the first occurrence of
   1.386                  <var>LOCATION</var> from <var>ssdp device</var> as the <var>device descriptor <abbr title=
   1.387                  "Uniform Resource Locator">URL</abbr></var> argument and the first occurrence of <var>USN</var> from
   1.388 @@ -1766,16 +1762,16 @@
   1.389          <p>
   1.390            For each <dfn id="dfn-http-request"><abbr title="Hypertext Transfer Protocol">HTTP</abbr> Request</dfn>
   1.391            received on a <a href="#dfn-standard-upnp-address-and-port"
   1.392 -             class="internalDFN">standard UPnP address and port</a> the user agent <em class="ct"><em class="rfc2119"
   1.393 -              title="must">must</em></em> run the following steps:
   1.394 +             class="internalDFN">standard UPnP address and port</a> the user agent <em class="rfc2119"
   1.395 +             title="must">must</em> run the following steps:
   1.396          </p>
   1.397          <ol class="rule">
   1.398            <li>If the <a href="#dfn-http-request"
   1.399                  class="internalDFN"><abbr title="Hypertext Transfer Protocol">HTTP</abbr> Request</a> is not a
   1.400                  <abbr title="Hypertext Transfer Protocol">HTTP</abbr> NOTIFY request then it is not a valid UPnP
   1.401 -                Request and the user agent <em class="ct"><em class="rfc2119"
   1.402 -                title="must">must</em></em> return a <abbr title="Hypertext Transfer Protocol">HTTP</abbr> 200 OK
   1.403 -                response, discard this request, abort any remaining steps and return.
   1.404 +                Request and the user agent <em class="rfc2119"
   1.405 +                title="must">must</em> return a <abbr title="Hypertext Transfer Protocol">HTTP</abbr> 200 OK response,
   1.406 +                discard this request, abort any remaining steps and return.
   1.407            </li>
   1.408            <li>Let <var>ssdp device</var> be an Object with a property for each <abbr title=
   1.409            "Hypertext Transfer Protocol">HTTP</abbr> header received in the <a href="#dfn-http-request"
   1.410 @@ -1789,13 +1785,13 @@
   1.411            the <a href="#dfn-http-request"
   1.412                  class="internalDFN"><abbr title="Hypertext Transfer Protocol">HTTP</abbr> Request</a> is a malformed
   1.413                  UPnP Request and the <a href="#dfn-user-agent"
   1.414 -                class="internalDFN">user agent</a> <em class="ct"><em class="rfc2119"
   1.415 -                title="must">must</em></em> return a 400 Bad Request response, discard this request, abort any
   1.416 -                remaining steps and return.
   1.417 +                class="internalDFN">user agent</a> <em class="rfc2119"
   1.418 +                title="must">must</em> return a 400 Bad Request response, discard this request, abort any remaining
   1.419 +                steps and return.
   1.420            </li>
   1.421            <li>If <var>ssdp device</var>'s <var>NTS</var> entry is equal to <code>ssdp:alive</code> or
   1.422 -          <code>ssdp:update</code> then the user agent <em class="ct"><em class="rfc2119"
   1.423 -                title="must">must</em></em> run the rule for <a href="#dfn-obtaining-a-upnp-device-description-file"
   1.424 +          <code>ssdp:update</code> then the user agent <em class="rfc2119"
   1.425 +                title="must">must</em> run the rule for <a href="#dfn-obtaining-a-upnp-device-description-file"
   1.426                  class="internalDFN">obtaining a UPnP Device Description File</a> passing in the first occurrence of
   1.427                  <var>LOCATION</var> from <var>ssdp device</var> as the <var>device descriptor <abbr title=
   1.428                  "Uniform Resource Locator">URL</abbr></var> argument and the first occurrence of <var>USN</var> from
   1.429 @@ -1803,8 +1799,8 @@
   1.430                  <var>CACHE-CONTROL</var> from <var>ssdp device</var> as the <var>device expiry</var>.<br>
   1.431              <br>
   1.432              Otherwise, if <var>ssdp device</var>'s <var>NTS</var> entry is equal to <code>ssdp:byebye</code> then the
   1.433 -            user agent <em class="ct"><em class="rfc2119"
   1.434 -                title="must">must</em></em> run the rule for <a href=
   1.435 +            user agent <em class="rfc2119"
   1.436 +                title="must">must</em> run the rule for <a href=
   1.437                  "#dfn-removing-all-services-from-a-registered-upnp-device"
   1.438                  class="internalDFN">removing all services from a registered UPnP Device</a> passing in the first
   1.439                  occurrence of <var>USN</var> from <var>ssdp device</var> as the <var>device identifier</var> argument.
   1.440 @@ -1817,8 +1813,8 @@
   1.441               href="#bib-UPNP-DEVICEARCH11">UPNP-DEVICEARCH11</a></cite>] from a <abbr title=
   1.442               "Uniform Resource Locator">URL</abbr>-based resource. This rule takes three arguments - <var>device
   1.443               descriptor <abbr title="Uniform Resource Locator">URL</abbr></var>, <var>device identifier</var> and
   1.444 -             <var>device expiry</var> - and when called the user agent <em class="ct"><em class="rfc2119"
   1.445 -              title="must">must</em></em> run the following steps:
   1.446 +             <var>device expiry</var> - and when called the user agent <em class="rfc2119"
   1.447 +             title="must">must</em> run the following steps:
   1.448          </p>
   1.449          <ol class="rule">
   1.450            <li>Let <var>device descriptor file</var> contain the contents of the file located at the <abbr title=
   1.451 @@ -1831,8 +1827,8 @@
   1.452            <li>If the value provided in <var>device descriptor <abbr title="Uniform Resource Locator">URL</abbr></var>
   1.453            cannot be resolved as a reachable <abbr title="Uniform Resource Locator">URL</abbr> on the current network or
   1.454            the <var>root device descriptor file</var> remains empty then it is invalid and the <a href="#dfn-user-agent"
   1.455 -                class="internalDFN">user agent</a> <em class="ct"><em class="rfc2119"
   1.456 -                title="must">must</em></em> abort any remaining steps and return.
   1.457 +                class="internalDFN">user agent</a> <em class="rfc2119"
   1.458 +                title="must">must</em> abort any remaining steps and return.
   1.459            </li>
   1.460            <li>Run the rule for <a href="#dfn-processing-a-upnp-device-description-file"
   1.461                  class="internalDFN">processing a UPnP Device Description File</a>, passing in the current <var>device
   1.462 @@ -1840,8 +1836,8 @@
   1.463            </li>
   1.464            <li>If the current <var>device descriptor file</var> contains a <code>&lt;deviceList&gt;</code> element then
   1.465            for each <code>&lt;device&gt;</code> element within <code>&lt;deviceList&gt;</code> - herein known as an
   1.466 -          <var>embedded device descriptor file</var> - the user agent <em class="ct"><em class="rfc2119"
   1.467 -                title="must">must</em></em> run the rule for <a href="#dfn-processing-a-upnp-device-description-file"
   1.468 +          <var>embedded device descriptor file</var> - the user agent <em class="rfc2119"
   1.469 +                title="must">must</em> run the rule for <a href="#dfn-processing-a-upnp-device-description-file"
   1.470                  class="internalDFN">processing a UPnP Device Description File</a>, passing in the current <var>embedded
   1.471                  device descriptor file</var> as the <var>device descriptor file</var> argument, along with the common
   1.472                  <var>device identifier</var> and <var>device expiry</var> arguments.
   1.473 @@ -1859,8 +1855,8 @@
   1.474            The rule for <a href="#dfn-processing-a-upnp-device-description-file"
   1.475               class="internalDFN">processing a UPnP Device Description File</a> takes three arguments - <var>device
   1.476               descriptor file</var>, <var>device identifier</var> and <var>device expiry</var> - and when called the
   1.477 -             user agent <em class="ct"><em class="rfc2119"
   1.478 -              title="must">must</em></em> run the following steps:
   1.479 +             user agent <em class="rfc2119"
   1.480 +             title="must">must</em> run the following steps:
   1.481          </p>
   1.482          <ol class="rule">
   1.483            <li>Let <var>advertised services</var> be a list of all advertised services obtained from the <var>device
   1.484 @@ -1946,8 +1942,8 @@
   1.485          <ol class="rule">
   1.486            <li>If <var>network service record</var>'s <code>eventsUrl</code> property is empty then the <a href=
   1.487            "#dfn-user-agent"
   1.488 -                class="internalDFN">user agent</a> <em class="ct"><em class="rfc2119"
   1.489 -                title="must">must</em></em> abort these steps.
   1.490 +                class="internalDFN">user agent</a> <em class="rfc2119"
   1.491 +                title="must">must</em> abort these steps.
   1.492            </li>
   1.493            <li>Let <var>callback <abbr title="Uniform Resource Locator">URL</abbr></var> be the value of creating a new
   1.494            <a href="#dfn-user-agent-generated-callback-url"
   1.495 @@ -1962,8 +1958,8 @@
   1.496            </li>
   1.497            <li>If a non-200 OK response is received from the <abbr title="Hypertext Transfer Protocol">HTTP</abbr>
   1.498            SUBSCRIBE request then the <a href="#dfn-user-agent"
   1.499 -                class="internalDFN">user agent</a> <em class="ct"><em class="rfc2119"
   1.500 -                title="must">must</em></em> abort these steps.
   1.501 +                class="internalDFN">user agent</a> <em class="rfc2119"
   1.502 +                title="must">must</em> abort these steps.
   1.503            </li>
   1.504            <li>On receiving a valid 200 OK response, run the following steps:
   1.505              <ol class="rule">
   1.506 @@ -1973,7 +1969,7 @@
   1.507                <li>Let <var>timeout date</var> equal the sum of the current UTC date value plus the integer value of the
   1.508                first included <em>TIMEOUT</em> header (minus the leading string of <code>Second-</code>), if it exists.
   1.509                </li>
   1.510 -              <li>Run the following steps aynchronously and continue to the step labeled <em>listen</em> below.
   1.511 +              <li>Run the following steps asynchronously and continue to the step labeled <em>listen</em> below.
   1.512                </li>
   1.513                <li>
   1.514                  <em>Refresh Subscription</em>: Run the following steps at a set interval (X) within the <a href=
   1.515 @@ -2008,8 +2004,8 @@
   1.516                    <li>Let <var>content clone</var> be the result of obtaining the message body of the <abbr title=
   1.517                    "Hypertext Transfer Protocol">HTTP</abbr> NOTIFY request. If <var>content clone</var> is empty, then
   1.518                    the <a href="#dfn-user-agent"
   1.519 -                        class="internalDFN">user agent</a> <em class="ct"><em class="rfc2119"
   1.520 -                        title="must">must</em></em> abort these steps.
   1.521 +                        class="internalDFN">user agent</a> <em class="rfc2119"
   1.522 +                        title="must">must</em> abort these steps.
   1.523                    </li>
   1.524                    <li>Let <var>notification event</var> be a new simple event that uses the <a href=
   1.525                    "http://dvcs.w3.org/hg/domcore/raw-file/tip/Overview.html#event"
   1.526 @@ -2037,7 +2033,7 @@
   1.527               "dfn-terminate-an-existing-upnp-events-subscription">terminate an existing UPnP Events Subscription</dfn>
   1.528               at any time for any <var>active service</var> in the <a href="#dfn-list-of-authorized-service-records"
   1.529               class="internalDFN">list of authorized service records</a> by sending an <abbr title=
   1.530 -             "Hypertext Transfer Protocol">HTTP</abbr> UNSUBSCRIBE request - as defined in 'Section 4.1.4: Canceling a
   1.531 +             "Hypertext Transfer Protocol">HTTP</abbr> UNSUBSCRIBE request - as defined in 'Section 4.1.4: Cancelling a
   1.532               subscription with UNSUBSCRIBE' in [<cite><a class="bibref"
   1.533               href="#bib-UPNP-DEVICEARCH11">UPNP-DEVICEARCH11</a></cite>] - with a HOST header set to that <var>active
   1.534               service</var>'s <code>eventsUrl</code> property and a SID header set to the <var>callback ID</var>
   1.535 @@ -2054,19 +2050,18 @@
   1.536              When the <a href="#dfn-user-agent"
   1.537                 class="internalDFN">user agent</a> detects that the user has dropped from their connected network then,
   1.538                 for each <var>existing service record</var> in the <a href="#dfn-list-of-available-service-records"
   1.539 -               class="internalDFN">list of available service records</a>, the user agent <em class="ct"><em class=
   1.540 -               "rfc2119"
   1.541 -                title="must">must</em></em> run the general rule for <a href="#dfn-removing-an-available-service"
   1.542 +               class="internalDFN">list of available service records</a>, the user agent <em class="rfc2119"
   1.543 +               title="must">must</em> run the general rule for <a href="#dfn-removing-an-available-service"
   1.544                 class="internalDFN">removing an available service</a> passing in each <var>existing service
   1.545                 record</var>'s <code>id</code> property as the only argument for each call.
   1.546            </p>
   1.547            <p>
   1.548              When the <a href="#dfn-user-agent"
   1.549                 class="internalDFN">user agent</a> detects that the user has connected to a new network or reconnected
   1.550 -               to an existing network, then it <em class="ct"><em class="rfc2119"
   1.551 -                title="should">should</em></em> restart its discovery mechanisms as defined in the <a href=
   1.552 -                "#service-discovery">Service Discovery</a> section of this specification, maintaining the existing
   1.553 -                <a href="#dfn-list-of-authorized-service-records"
   1.554 +               to an existing network, then it <em class="rfc2119"
   1.555 +               title="should">should</em> restart its discovery mechanisms as defined in the <a href=
   1.556 +               "#service-discovery">Service Discovery</a> section of this specification, maintaining the existing
   1.557 +               <a href="#dfn-list-of-authorized-service-records"
   1.558                 class="internalDFN">list of authorized service records</a> currently in use.
   1.559            </p>
   1.560          </div>
   1.561 @@ -2217,7 +2212,7 @@
   1.562              <li>Example: A Web page advertises that it is capable of interacting with and controlling multiple types of
   1.563              Home Media Server. The user can select their Home Media Server type from a drop-down list or known Media
   1.564              Servers, at which point the Web page sends a request to the user agent to connect with the associated
   1.565 -            service type (and, optionally, the associated event type) of the Home Media Server. The communiciation
   1.566 +            service type (and, optionally, the associated event type) of the Home Media Server. The communication
   1.567              protocols supported by Home Media Servers typically vary between UPnP, JSON-RPC, Protocol Buffers or other
   1.568              messaging formats depending on the Home Media Server requested. The Web page is able to communicate with
   1.569              the user-selected Home Media Server in the messaging format supported by that Device, which, in this
   1.570 @@ -2347,7 +2342,7 @@
   1.571  "str">"POST"</span><span class="pun">,</span><span class="pln"> services</span><span class="pun">[</span><span class=
   1.572  "lit">0</span><span class="pun">].</span><span class="pln">url </span><span class="pun">+</span><span class=
   1.573  "pln"> </span><span class="str">"/getAlbums"</span><span class="pun">);</span><span class="pln"> </span><span class=
   1.574 -"com">// services[0].url and its subresources have been</span><span class="pln">
   1.575 +"com">// services[0].url and its sub-resources have been</span><span class="pln">
   1.576                                                          </span><span class=
   1.577  "com">// whitelisted for cross-site XHR use in this</span><span class="pln">
   1.578                                                          </span><span class=
   1.579 @@ -2613,7 +2608,7 @@
   1.580  "lit">0</span><span class="pun">].</span><span class="pln">url</span><span class="pun">);</span><span class=
   1.581  "pln"> </span><span class="com">// services[0].url and its</span><span class="pln">
   1.582                                            </span><span class=
   1.583 -"com">// subresources have been whitelisted for</span><span class="pln">
   1.584 +"com">// sub-resources have been whitelisted for</span><span class="pln">
   1.585                                            </span><span class=
   1.586  "com">// cross-site XHR use in this current</span><span class="pln">
   1.587                                            </span><span class="com">// browsing context.</span><span class="pln">
   1.588 @@ -2703,14 +2698,14 @@
   1.589          date (in alphabetical order):<br>
   1.590          <br>
   1.591          Gar Bergstedt, Lars-Erik Bolstad, Cathy Chan, Hari G Kumar, Bob Lund, Giuseppe Pascale, Marcin Simonides,
   1.592 -        Clarke Stevens, Christian Söderström, Mark Vickers, ...
   1.593 +        Clarke Stevens, Christian Söderström, Mark Vickers.
   1.594        </p>
   1.595        <p>
   1.596          Thanks are also expressed by the editor to the following organizations and groups for their support in
   1.597          producing this specification to date (in alphabetical order):<br>
   1.598          <br>
   1.599          CableLabs, Opera Software ASA, <abbr title="World Wide Web Consortium">W3C</abbr> Device APIs Working Group,
   1.600 -        <abbr title="World Wide Web Consortium">W3C</abbr> Web and TV Interest Group, ...
   1.601 +        <abbr title="World Wide Web Consortium">W3C</abbr> Web and TV Interest Group.
   1.602        </p>
   1.603      </section>
   1.604      <section id="references"
     2.1 --- a/discovery-api/Overview.src.html	Tue Oct 02 16:32:06 2012 +0200
     2.2 +++ b/discovery-api/Overview.src.html	Tue Oct 02 16:57:24 2012 +0200
     2.3 @@ -213,7 +213,7 @@
     2.4          are to be interpreted as requirements on user agents.
     2.5        </p>
     2.6        <p>
     2.7 -        Conformance requirements phrased as algorithms or specific steps <em class="ct">MAY</em> be implemented in any
     2.8 +        Conformance requirements phrased as algorithms or specific steps MAY be implemented in any
     2.9          manner, so long as the end result is equivalent. (In particular, the algorithms defined in this specification
    2.10          are intended to be easy to follow, and not intended to be performant.)
    2.11        </p>
    2.12 @@ -221,13 +221,13 @@
    2.13          The only conformance class defined by this specification is a <dfn>user agent</dfn>.
    2.14        </p>
    2.15        <p>
    2.16 -        User agents <em class="ct">MAY</em> impose implementation-specific limits on otherwise unconstrained inputs,
    2.17 +        User agents MAY impose implementation-specific limits on otherwise unconstrained inputs,
    2.18          e.g. to prevent denial of service attacks, to guard against running out of memory, or to work around
    2.19          platform-specific limitations.
    2.20        </p>
    2.21        <p>
    2.22          When support for a feature is disabled (e.g. as an emergency measure to mitigate a security problem, or to aid
    2.23 -        in development, or for performance reasons), user agents <em class="ct">MUST</em> act as if they had no support
    2.24 +        in development, or for performance reasons), user agents MUST act as if they had no support
    2.25          for the feature whatsoever, and as if the feature was not mentioned in this specification. For example, if a
    2.26          particular feature is accessed via an attribute in a Web IDL interface, the attribute itself would be omitted
    2.27          from the objects that implement that interface - leaving the attribute on the object but making it return null
    2.28 @@ -345,8 +345,8 @@
    2.29                page would like to interact with.
    2.30              </p>
    2.31              <p>
    2.32 -              If the user accepts, the <var title="">successCallback</var> is invoked, with one or more <code><a href=
    2.33 -              "#networkservice"><code>NetworkService</code></a></code> objects as its argument.
    2.34 +              If the user accepts, the <var title="">successCallback</var> is invoked, with one or more <a href=
    2.35 +              "#networkservice"><code>NetworkService</code></a> objects as its argument.
    2.36              </p>
    2.37              <p>
    2.38                If the user declines, the <var title="">errorCallback</var> (if any) is invoked.
    2.39 @@ -357,7 +357,7 @@
    2.40            <p>
    2.41              When the <dfn id="dom-navigator-getnetworkservices"
    2.42                 title="dom-navigator-getnetworkservices"><code>getNetworkServices(type, successCallback[,
    2.43 -               errorCallback])</code></dfn> method is called, the <a>user agent</a> <em class="ct">MUST</em> run the
    2.44 +               errorCallback])</code></dfn> method is called, the <a>user agent</a> MUST run the
    2.45                 following steps:
    2.46            </p>
    2.47            <ol class="rule">
    2.48 @@ -372,7 +372,7 @@
    2.49              </li>
    2.50              <li>If <var>requested control types</var> is an array that contains at least one or more <a title=
    2.51              "valid service type">valid service type</a> tokens then continue to the step labeled <em>process</em>
    2.52 -            below. Otherwise, the <a>user agent</a> <em class="ct">MUST</em> <a href=
    2.53 +            below. Otherwise, the <a>user agent</a> MUST <a href=
    2.54              "http://www.whatwg.org/specs/web-apps/current-work/complete/webappapis.html#queue-a-task"
    2.55                    class="externalDFN">queue a task</a> to invoke <var>errorCallback</var>, if it is provided and is an
    2.56                    object of type <code>Function</code>, with a new <a href=
    2.57 @@ -408,7 +408,7 @@
    2.58                  </li>
    2.59                </ol>
    2.60              </li>
    2.61 -            <li>If <var>services found</var> is an empty array, then the <a>user agent</a> <em class="ct">MUST</em>
    2.62 +            <li>If <var>services found</var> is an empty array, then the <a>user agent</a> MUST
    2.63              <a href="http://www.whatwg.org/specs/web-apps/current-work/complete/webappapis.html#queue-a-task"
    2.64                    class="externalDFN">queue a task</a> to invoke <var>errorCallback</var>, if it is provided and is an
    2.65                    object of type <code>Function</code>, with a new <a href=
    2.66 @@ -421,7 +421,7 @@
    2.67              <li>Return, and run the remaining steps asynchronously.
    2.68              </li>
    2.69              <li>Optionally, e.g. based on a previously-established user preference, for security reasons, or due to
    2.70 -            platform limitations, the <a>user agent</a> <em class="ct">MAY</em> <a href=
    2.71 +            platform limitations, the <a>user agent</a> MAY <a href=
    2.72              "http://www.whatwg.org/specs/web-apps/current-work/complete/webappapis.html#queue-a-task"
    2.73                    class="externalDFN">queue a task</a> to invoke <var>errorCallback</var>, if it is provided and is an
    2.74                    object of type <code>Function</code>, with a new <a href=
    2.75 @@ -431,7 +431,7 @@
    2.76                    "#dom-navigatornetworkserviceerror-permission_denied"><code>PERMISSION_DENIED_ERR</code></a>) as its
    2.77                    argument, abort any remaining steps and return.
    2.78              </li>
    2.79 -            <li>The <a>user agent</a> <em class="ct">MUST</em> prompt the user in a user-agent-specific manner for
    2.80 +            <li>The <a>user agent</a> MUST prompt the user in a user-agent-specific manner for
    2.81              permission to provide the <a href=
    2.82              "http://www.whatwg.org/specs/web-apps/current-work/complete/browsers.html#entry-script"
    2.83                    class="externalDFN">entry script</a>'s <a href=
    2.84 @@ -444,7 +444,7 @@
    2.85                  SHOULD include an "ongoing local-network communication" indicator.
    2.86                </p>
    2.87                <p>
    2.88 -                If the user denies permission, then the <a>user agent</a> <em class="ct">MUST</em> <a href=
    2.89 +                If the user denies permission, then the <a>user agent</a> MUST <a href=
    2.90                  "http://www.whatwg.org/specs/web-apps/current-work/complete/webappapis.html#queue-a-task"
    2.91                     class="externalDFN">queue a task</a> to invoke <var>errorCallback</var>, if it is provided and is an
    2.92                     object of type <code>Function</code>, with a new <a href=
    2.93 @@ -461,7 +461,7 @@
    2.94              <li>Let <var>services</var> be the array of one or more <a href=
    2.95              "#networkservice"><code>NetworkService</code></a> objects for which the user granted permission.
    2.96              </li>
    2.97 -            <li>For each Object <var>service</var> in <var>services</var>, run the following substeps:
    2.98 +            <li>For each Object <var>service</var> in <var>services</var>, run the following sub-steps:
    2.99                <ol class="rule">
   2.100                  <li>Add the <var>service</var>'s <code>url</code> parameter to the <a>entry script origin's
   2.101                    <abbr title="Uniform Resource Locator">URL</abbr> whitelist</a>.
   2.102 @@ -483,7 +483,7 @@
   2.103              <li>Add the set of <var>services</var> to the <a>list of authorized service records</a> internally against
   2.104              the newly created <var>services manager</var> object.
   2.105              </li>
   2.106 -            <li>The <a>user agent</a> <em class="ct">MUST</em> <a href=
   2.107 +            <li>The <a>user agent</a> MUST <a href=
   2.108              "http://www.whatwg.org/specs/web-apps/current-work/complete/webappapis.html#queue-a-task"
   2.109                    class="externalDFN">queue a task</a> to invoke <var>successCallback</var> with <var>services
   2.110                    manager</var> as its argument.
   2.111 @@ -499,7 +499,7 @@
   2.112            </p>
   2.113            <p>
   2.114              When a <a href="#networkservice"><code>NetworkService</code></a> object is provided to a Web page, the
   2.115 -            <a>user agent</a> <em class="ct">MUST</em> add the <code>url</code> property to the <dfn>entry script
   2.116 +            <a>user agent</a> MUST add the <code>url</code> property to the <dfn>entry script
   2.117              origin's URL whitelist</dfn>. This list enables the Web page to override and initiate cross-site resource
   2.118              requests towards these URLs, and any sub-resources of these URLs, within the current <a href=
   2.119              "http://www.whatwg.org/specs/web-apps/current-work/complete/browsers.html#entry-script"
   2.120 @@ -634,13 +634,13 @@
   2.121          </dl>
   2.122          <div>
   2.123            <p>
   2.124 -            The <dfn id="dom-networkservices-length"><code>length</code></dfn> attribute <em class="ct">MUST</em>
   2.125 +            The <dfn id="dom-networkservices-length"><code>length</code></dfn> attribute MUST
   2.126              return the number of services represented in the object's corresponding <a>list of authorized service
   2.127              records</a> at the time of getting.
   2.128            </p>
   2.129            <p>
   2.130              The <dfn id="dom-networkservices-servicesavailable"><code>servicesAvailable</code></dfn> attribute
   2.131 -            <em class="ct">MUST</em> return the number of services in the <a>list of available service records</a>
   2.132 +            MUST return the number of services in the <a>list of available service records</a>
   2.133              whose <code>type</code> attribute matches any of the <a>valid service type</a> tokens that was initially
   2.134              used to create the current <a href="#networkservices"><code>NetworkServices</code></a> object.
   2.135            </p>
   2.136 @@ -696,7 +696,7 @@
   2.137            "http://www.whatwg.org/specs/web-apps/current-work/multipage/infrastructure.html#determine-the-value-of-an-indexed-property"
   2.138               class="externalDFN">determine the value of an indexed property</a> for a given index <var>index</var> in a
   2.139               <a href="#networkservices"><code>NetworkServices</code></a> object's <a>list of authorized service
   2.140 -             records</a>, the user agent <em class="ct">MUST</em> return the <a href=
   2.141 +             records</a>, the user agent MUST return the <a href=
   2.142               "#networkservice"><code>NetworkService</code></a> object that represents the <var>index</var>th service in
   2.143               the <a>list of authorized service records</a>.
   2.144          </p>
   2.145 @@ -706,7 +706,7 @@
   2.146            <a>list of authorized service records</a> represented by the respective object whose <a href=
   2.147            "#dom-networkservice-id"><code>id</code></a> attribute is equal to the value of the <var>id</var> argument.
   2.148            When no services in the <a>list of authorized service records</a> match the given argument, the method
   2.149 -          <em class="ct">MUST</em> return null.
   2.150 +          MUST return null.
   2.151          </p>
   2.152          <p>
   2.153            Services available within the local network can connect and disconnect at different times during the
   2.154 @@ -848,7 +848,7 @@
   2.155          </dl>
   2.156          <p>
   2.157            The <dfn id="dom-networkservice-id"><code>id</code></dfn> attribute is a unique identifier for the service.
   2.158 -          The same service provided at different times or on different objects <em class="ct">MUST</em> have the same
   2.159 +          The same service provided at different times or on different objects MUST have the same
   2.160            <a href="#dom-networkservice-id"><code>id</code></a> value.
   2.161          </p>
   2.162          <p>
   2.163 @@ -894,7 +894,7 @@
   2.164            reporting itself as being either <var>online</var>, and therefore accessible on the local network, in which
   2.165            case this attribute will return <code>true</code> or, <var>offline</var>, and therefore not accessible on the
   2.166            local network, either temporarily or permanently, in which case this attribute will return
   2.167 -          <code>false</code>. This attribute <em class="ct">MUST</em> default to <code>true</code>.
   2.168 +          <code>false</code>. This attribute MUST default to <code>true</code>.
   2.169          </p>
   2.170        </section>
   2.171        <section>
   2.172 @@ -955,11 +955,11 @@
   2.173          Service Discovery
   2.174        </h2>
   2.175        <p>
   2.176 -        A <a>user agent</a> conforming to this specification <em class="ct">MAY</em> implement <acronym title=
   2.177 +        A <a>user agent</a> conforming to this specification MAY implement <acronym title=
   2.178          "Simple Service Discovery Protocol">SSDP</acronym> [[!UPNP-DEVICEARCH11]] and Zeroconf [[!DNS-SD]] + [[!MDNS]]
   2.179          service discovery mechanisms to enable Web pages to request and connect with HTTP services running on networked
   2.180          devices, discovered via either mechanism, through this API. When a <a>user agent</a> implements either of these
   2.181 -        service discovery mechanisms, then it <em class="ct">MUST</em> conform to the corresponding algorithms provided
   2.182 +        service discovery mechanisms, then it MUST conform to the corresponding algorithms provided
   2.183          in this section of the specification.
   2.184        </p>
   2.185        <p>
   2.186 @@ -968,7 +968,7 @@
   2.187          resulting <a href="#networkservice"><code>NetworkService</code></a> objects.
   2.188        </p>
   2.189        <p>
   2.190 -        It is expected that user agents will perform these service discovery mechansisms asynchronously and
   2.191 +        It is expected that user agents will perform these service discovery mechanisms asynchronously and
   2.192          periodically update the <a>list of networked devices</a> as required. The timing of any service discovery
   2.193          mechanisms is an implementation detail left to the discretion of the implementer (e.g. once on user agent
   2.194          start-up, every X seconds during user agent execution or on invocation of this API from a Web page).
   2.195 @@ -1098,7 +1098,7 @@
   2.196          </li>
   2.197        </ol>
   2.198        <p>
   2.199 -        User agents <em class="ct">SHOULD</em> expire a service record from the <a>list of available service
   2.200 +        User agents SHOULD expire a service record from the <a>list of available service
   2.201          records</a> when its <code>expiryTimestamp</code> attribute exceeds the current UTC timestamp. When this
   2.202          condition is met the <a>user agent</a> SHOULD run the rule for <a>removing an available service</a>, passing in
   2.203          the expired service record's <code>id</code> attribute as the only argument.
   2.204 @@ -1111,7 +1111,7 @@
   2.205          <p>
   2.206            For each DNS response received from a user-agent-initiated Multicast DNS Browse for <abbr title=
   2.207            "DNS Pointer Record">PTR</abbr> records with the name <code>_services._dns-sd._udp</code> on the resolved
   2.208 -          recommended automatic browsing domain [[!MDNS]], the <a>user agent</a> <em class="ct">MUST</em> run the
   2.209 +          recommended automatic browsing domain [[!MDNS]], the <a>user agent</a> MUST run the
   2.210            following steps:
   2.211          </p>
   2.212          <ol class="rule">
   2.213 @@ -1158,12 +1158,12 @@
   2.214            Simple Service Discovery Protocol (<abbr title="Simple Service Discovery Protocol">SSDP</abbr>)
   2.215          </h5>
   2.216          <p>
   2.217 -          A user agent that implements UPnP service discovery <em class="ct">MUST</em> issue an <dfn>advertisement for
   2.218 +          A user agent that implements UPnP service discovery MUST issue an <dfn>advertisement for
   2.219            UPnP root devices</dfn> against the user's current local network according to the full normative text and
   2.220            timing provided in 'Section 1.3.2: Search request with M-SEARCH' detailed in [[!UPNP-DEVICEARCH11]].
   2.221          </p>
   2.222          <p>
   2.223 -          The user agent <em class="ct">MUST</em> issue all <a title=
   2.224 +          The user agent MUST issue all <a title=
   2.225            "advertisement for UPnP root devices">advertisements for UPnP root devices</a> with a HTTP request line equal
   2.226            to <code>M-SEARCH * HTTP/1.1</code>, with a HOST header equal to the reserved multicast address and port of
   2.227            <code>239.255.255.250:1900</code>, a MAN header equal to <code>ssdp:discover</code>, an ST header equal to
   2.228 @@ -1171,24 +1171,24 @@
   2.229            response wait time</dfn> value between <code>1</code> and <code>5</code> seconds.
   2.230          </p>
   2.231          <p>
   2.232 -          The user agent <em class="ct">MUST</em> listen for incoming requests and process any incoming responses to
   2.233 +          The user agent MUST listen for incoming requests and process any incoming responses to
   2.234            any <a>advertisement for UPnP root devices</a> on the <dfn>standard UPnP address and port</dfn>, on all
   2.235            current local network interface addresses with the port <code>1900</code>, according to the rules defined in
   2.236            this section.
   2.237          </p>
   2.238          <p>
   2.239            For each <dfn>HTTP Response</dfn> following an initial <a>advertisement for UPnP root devices</a> sent on a
   2.240 -          <a>standard UPnP address and port</a> the user agent <em class="ct">MUST</em> run the following steps:
   2.241 +          <a>standard UPnP address and port</a> the user agent MUST run the following steps:
   2.242          </p>
   2.243          <ol class="rule">
   2.244            <li>If the <a>HTTP Response</a> is not a HTTP 200 OK response then this response is invalid and the user
   2.245 -          agent <em class="ct">MUST</em> discard this response, abort any remaining steps and return. The user agent
   2.246 -          <em class="ct">MAY</em> issue a new <a>advertisement for UPnP root devices</a> as a result of this error
   2.247 +          agent MUST discard this response, abort any remaining steps and return. The user agent
   2.248 +          MAY issue a new <a>advertisement for UPnP root devices</a> as a result of this error
   2.249            occurring.
   2.250            </li>
   2.251            <li>If the <a>maximum UPnP advertisement response wait time</a> has been exceeded since the initial
   2.252            <a>advertisement for UPnP root devices</a> was sent then the <a>HTTP Response</a> is invalid and the user
   2.253 -          agent <em class="ct">MUST</em> discard this response, abort any remaining steps and return.
   2.254 +          agent MUST discard this response, abort any remaining steps and return.
   2.255            </li>
   2.256            <li>Let <var>ssdp device</var> be an Object with a property for each HTTP header received in the <a>HTTP
   2.257            Response</a>, with each key being the name of a HTTP response header and each value being that HTTP response
   2.258 @@ -1197,10 +1197,10 @@
   2.259            <li>If <var>ssdp device</var> does not contain at least one <var>CACHE-CONTROL</var> entry, at least one
   2.260            <var>USN</var> entry, at least one <var>ST</var> entry and at least one <var>LOCATION</var> entry or the
   2.261            value of its <var>ST</var> entry is not <code>upnp:rootdevice</code>, then the <a>HTTP Response</a> is
   2.262 -          invalid and the <a>user agent</a> <em class="ct">MUST</em> discard this response, abort any remaining steps
   2.263 +          invalid and the <a>user agent</a> MUST discard this response, abort any remaining steps
   2.264            and return.
   2.265            </li>
   2.266 -          <li>The user agent <em class="ct">MUST</em> run the rule for <a>obtaining a UPnP Device Description File</a>
   2.267 +          <li>The user agent MUST run the rule for <a>obtaining a UPnP Device Description File</a>
   2.268            passing in the first occurrence of <var>LOCATION</var> from <var>ssdp device</var> as the <var>device
   2.269            descriptor URL</var> argument and the first occurrence of <var>USN</var> from <var>ssdp device</var> as the
   2.270            <var>device identifier</var> argument and the first occurrence of <var>CACHE-CONTROL</var> from <var>ssdp
   2.271 @@ -1209,11 +1209,11 @@
   2.272          </ol>
   2.273          <p>
   2.274            For each <dfn>HTTP Request</dfn> received on a <a>standard UPnP address and port</a> the user agent
   2.275 -          <em class="ct">MUST</em> run the following steps:
   2.276 +          MUST run the following steps:
   2.277          </p>
   2.278          <ol class="rule">
   2.279            <li>If the <a>HTTP Request</a> is not a HTTP NOTIFY request then it is not a valid UPnP Request and the user
   2.280 -          agent <em class="ct">MUST</em> return a HTTP 200 OK response, discard this request, abort any remaining steps
   2.281 +          agent MUST return a HTTP 200 OK response, discard this request, abort any remaining steps
   2.282            and return.
   2.283            </li>
   2.284            <li>Let <var>ssdp device</var> be an Object with a property for each HTTP header received in the <a>HTTP
   2.285 @@ -1222,18 +1222,18 @@
   2.286            <li>If <var>ssdp device</var> does not contain at least one <var>CACHE-CONTROL</var> entry, at least one
   2.287            <var>USN</var> entry, at least one <var>NT</var> entry, at least one <var>NTS</var> entry and at least one
   2.288            <var>LOCATION</var> entry or the value of its <var>NT</var> entry is not <code>upnp:rootdevice</code>, then
   2.289 -          the <a>HTTP Request</a> is a malformed UPnP Request and the <a>user agent</a> <em class="ct">MUST</em> return
   2.290 +          the <a>HTTP Request</a> is a malformed UPnP Request and the <a>user agent</a> MUST return
   2.291            a 400 Bad Request response, discard this request, abort any remaining steps and return.
   2.292            </li>
   2.293            <li>If <var>ssdp device</var>'s <var>NTS</var> entry is equal to <code>ssdp:alive</code> or
   2.294 -          <code>ssdp:update</code> then the user agent <em class="ct">MUST</em> run the rule for <a>obtaining a UPnP
   2.295 +          <code>ssdp:update</code> then the user agent MUST run the rule for <a>obtaining a UPnP
   2.296            Device Description File</a> passing in the first occurrence of <var>LOCATION</var> from <var>ssdp
   2.297            device</var> as the <var>device descriptor URL</var> argument and the first occurrence of <var>USN</var> from
   2.298            <var>ssdp device</var> as the <var>device identifier</var> argument and the first occurrence of
   2.299            <var>CACHE-CONTROL</var> from <var>ssdp device</var> as the <var>device expiry</var>.<br>
   2.300              <br>
   2.301              Otherwise, if <var>ssdp device</var>'s <var>NTS</var> entry is equal to <code>ssdp:byebye</code> then the
   2.302 -            user agent <em class="ct">MUST</em> run the rule for <a>removing all services from a registered UPnP
   2.303 +            user agent MUST run the rule for <a>removing all services from a registered UPnP
   2.304              Device</a> passing in the first occurrence of <var>USN</var> from <var>ssdp device</var> as the <var>device
   2.305              identifier</var> argument.
   2.306            </li>
   2.307 @@ -1242,7 +1242,7 @@
   2.308            The rule for <dfn>obtaining a UPnP Device Description File</dfn> is the process of obtaining the contents of
   2.309            a standard UPnP Device Description [[!UPNP-DEVICEARCH11]] from a URL-based resource. This rule takes three
   2.310            arguments - <var>device descriptor URL</var>, <var>device identifier</var> and <var>device expiry</var> - and
   2.311 -          when called the user agent <em class="ct">MUST</em> run the following steps:
   2.312 +          when called the user agent MUST run the following steps:
   2.313          </p>
   2.314          <ol class="rule">
   2.315            <li>Let <var>device descriptor file</var> contain the contents of the file located at the URL provided in
   2.316 @@ -1251,14 +1251,14 @@
   2.317            </li>
   2.318            <li>If the value provided in <var>device descriptor URL</var> cannot be resolved as a reachable URL on the
   2.319            current network or the <var>root device descriptor file</var> remains empty then it is invalid and the
   2.320 -          <a>user agent</a> <em class="ct">MUST</em> abort any remaining steps and return.
   2.321 +          <a>user agent</a> MUST abort any remaining steps and return.
   2.322            </li>
   2.323            <li>Run the rule for <a>processing a UPnP Device Description File</a>, passing in the current <var>device
   2.324            descriptor file</var>, <var>device identifier</var> and <var>device expiry</var> arguments.
   2.325            </li>
   2.326            <li>If the current <var>device descriptor file</var> contains a <code>&lt;deviceList&gt;</code> element then
   2.327            for each <code>&lt;device&gt;</code> element within <code>&lt;deviceList&gt;</code> - herein known as an
   2.328 -          <var>embedded device descriptor file</var> - the user agent <em class="ct">MUST</em> run the rule for
   2.329 +          <var>embedded device descriptor file</var> - the user agent MUST run the rule for
   2.330            <a>processing a UPnP Device Description File</a>, passing in the current <var>embedded device descriptor
   2.331            file</var> as the <var>device descriptor file</var> argument, along with the common <var>device
   2.332            identifier</var> and <var>device expiry</var> arguments.
   2.333 @@ -1272,7 +1272,7 @@
   2.334          <p>
   2.335            The rule for <a>processing a UPnP Device Description File</a> takes three arguments - <var>device descriptor
   2.336            file</var>, <var>device identifier</var> and <var>device expiry</var> - and when called the user agent
   2.337 -          <em class="ct">MUST</em> run the following steps:
   2.338 +          MUST run the following steps:
   2.339          </p>
   2.340          <ol class="rule">
   2.341            <li>Let <var>advertised services</var> be a list of all advertised services obtained from the <var>device
   2.342 @@ -1348,7 +1348,7 @@
   2.343          </p>
   2.344          <ol class="rule">
   2.345            <li>If <var>network service record</var>'s <code>eventsUrl</code> property is empty then the <a>user
   2.346 -          agent</a> <em class="ct">MUST</em> abort these steps.
   2.347 +          agent</a> MUST abort these steps.
   2.348            </li>
   2.349            <li>Let <var>callback URL</var> be the value of creating a new <a>user-agent generated callback url</a>.
   2.350            </li>
   2.351 @@ -1359,7 +1359,7 @@
   2.352            <code>eventsUrl</code> property.
   2.353            </li>
   2.354            <li>If a non-200 OK response is received from the HTTP SUBSCRIBE request then the <a>user agent</a>
   2.355 -            <em class="ct">MUST</em> abort these steps.
   2.356 +            MUST abort these steps.
   2.357            </li>
   2.358            <li>On receiving a valid 200 OK response, run the following steps:
   2.359              <ol class="rule">
   2.360 @@ -1369,7 +1369,7 @@
   2.361                <li>Let <var>timeout date</var> equal the sum of the current UTC date value plus the integer value of the
   2.362                first included <em>TIMEOUT</em> header (minus the leading string of <code>Second-</code>), if it exists.
   2.363                </li>
   2.364 -              <li>Run the following steps aynchronously and continue to the step labeled <em>listen</em> below.
   2.365 +              <li>Run the following steps asynchronously and continue to the step labeled <em>listen</em> below.
   2.366                </li>
   2.367                <li>
   2.368                  <em>Refresh Subscription</em>: Run the following steps at a set interval (X) within the <a>user
   2.369 @@ -1396,7 +1396,7 @@
   2.370                  agent</a> is to run the following steps:
   2.371                  <ol class="rule">
   2.372                    <li>Let <var>content clone</var> be the result of obtaining the message body of the HTTP NOTIFY
   2.373 -                  request. If <var>content clone</var> is empty, then the <a>user agent</a> <em class="ct">MUST</em>
   2.374 +                  request. If <var>content clone</var> is empty, then the <a>user agent</a> MUST
   2.375                    abort these steps.
   2.376                    </li>
   2.377                    <li>Let <var>notification event</var> be a new simple event that uses the <a href=
   2.378 @@ -1421,7 +1421,7 @@
   2.379          <p>
   2.380            A <a>user agent</a> can <dfn>terminate an existing UPnP Events Subscription</dfn> at any time for any
   2.381            <var>active service</var> in the <a>list of authorized service records</a> by sending an HTTP UNSUBSCRIBE
   2.382 -          request - as defined in 'Section 4.1.4: Canceling a subscription with UNSUBSCRIBE' in [[!UPNP-DEVICEARCH11]]
   2.383 +          request - as defined in 'Section 4.1.4: Cancelling a subscription with UNSUBSCRIBE' in [[!UPNP-DEVICEARCH11]]
   2.384            - with a HOST header set to that <var>active service</var>'s <code>eventsUrl</code> property and a SID header
   2.385            set to the <var>callback ID</var> obtained when the initial <a>setup a UPnP Events Subscription</a> action
   2.386            occurred.
   2.387 @@ -1435,12 +1435,12 @@
   2.388            <p>
   2.389              When the <a>user agent</a> detects that the user has dropped from their connected network then, for each
   2.390              <var>existing service record</var> in the <a>list of available service records</a>, the user agent
   2.391 -            <em class="ct">MUST</em> run the general rule for <a>removing an available service</a> passing in each
   2.392 +            MUST run the general rule for <a>removing an available service</a> passing in each
   2.393              <var>existing service record</var>'s <code>id</code> property as the only argument for each call.
   2.394            </p>
   2.395            <p>
   2.396              When the <a>user agent</a> detects that the user has connected to a new network or reconnected to an
   2.397 -            existing network, then it <em class="ct">SHOULD</em> restart its discovery mechanisms as defined in the
   2.398 +            existing network, then it SHOULD restart its discovery mechanisms as defined in the
   2.399              <a href="#service-discovery">Service Discovery</a> section of this specification, maintaining the existing
   2.400              <a>list of authorized service records</a> currently in use.
   2.401            </p>
   2.402 @@ -1585,7 +1585,7 @@
   2.403              <li>Example: A Web page advertises that it is capable of interacting with and controlling multiple types of
   2.404              Home Media Server. The user can select their Home Media Server type from a drop-down list or known Media
   2.405              Servers, at which point the Web page sends a request to the user agent to connect with the associated
   2.406 -            service type (and, optionally, the associated event type) of the Home Media Server. The communiciation
   2.407 +            service type (and, optionally, the associated event type) of the Home Media Server. The communication
   2.408              protocols supported by Home Media Servers typically vary between UPnP, JSON-RPC, Protocol Buffers or other
   2.409              messaging formats depending on the Home Media Server requested. The Web page is able to communicate with
   2.410              the user-selected Home Media Server in the messaging format supported by that Device, which, in this
   2.411 @@ -1672,7 +1672,7 @@
   2.412  // Send a service message to get albums list (and process the service response)
   2.413  
   2.414     var svcXhr = new XMLHttpRequest();
   2.415 -   svcXhr.open("POST", services[0].url + "/getAlbums"); // services[0].url and its subresources have been
   2.416 +   svcXhr.open("POST", services[0].url + "/getAlbums"); // services[0].url and its sub-resources have been
   2.417                                                          // whitelisted for cross-site XHR use in this
   2.418                                                          // current browsing context.
   2.419  
   2.420 @@ -1783,7 +1783,7 @@
   2.421  
   2.422      var svcXhr = new XMLHttpRequest();
   2.423      svcXhr.open("POST", services[0].url); // services[0].url and its
   2.424 -                                          // subresources have been whitelisted for
   2.425 +                                          // sub-resources have been whitelisted for
   2.426                                            // cross-site XHR use in this current
   2.427                                            // browsing context.
   2.428