Wording improvements thanks to Jean-Claude Dufourd.
--- a/spec/Overview-respec.html Wed Apr 11 12:10:54 2012 -0700
+++ b/spec/Overview-respec.html Thu Apr 19 12:07:35 2012 -0700
@@ -244,18 +244,17 @@
<section>
<h3>Actors</h3>
<p>
- A <dfn>Client</dfn> is a web page which creates an Intent and invokes
- it. The User Agent may also allow non-web-page sources invoke Intents
- to be delivered. For instance, the User Agent may have UI which
- effectively triggers Intents delivery, or may register for external OS
- hooks to trigger Intents.
+ A web page which creates an Intent and invokes the User Agent with it
+ is a <dfn>Client</dfn>. The User Agent may also allow non-web-page sources
+ invoke Intents. For instance, the User Agent may have UI which
+ invokes Intents delivery, or may register for external OS hooks which trigger Intents.
</p>
<p>
- A <dfn>Service</dfn> is a web page which can handle an Intent,
- possibly returning a piece of data to the calling Client page. Again,
- the User Agent may have ways to deliver Intents to Services which are
- not web pages. These may be extension APIs, plug-in helpers, external OS
- handlers, etc.
+ A web page which can handle an Intent is a <dfn>Service</dfn>,
+ possibly returning a piece of data to the calling Client page. (Note
+ that the User Agent may have ways to deliver Intents to Services which are
+ not web pages as well. These may be extension APIs, plug-in helpers,
+ external OS handlers, etc.)
</p>
</section>
<section>
@@ -316,8 +315,8 @@
<section>
<h3>Intent object</h3>
<p>
- The Intent object models a particular task which can be requested by
- handled by client pages. It is left up to the client page whether to
+ The Intent object models a particular task which can be requested to be
+ handled by Services. It is left up to the client page whether to
launch multiple Intents simultaneously. Specific Intent objects are
immutable once created.
</p>
@@ -375,16 +374,16 @@
<section>
<h3>Invocation API</h3>
<p>
- The client invokes an intent by constructing an Intent object as above and invoking
+ The client invokes an intent by constructing an Intent object as above and calling
the <code>navigator.startActivity</code> function on it. The callbacks
passed to this method are invoked when the intent has been handled by the service.
- The User Agent will mediate the service selection by enumerating the list of
- registered services that match the requested
- intent action and type. The user is then able to select which service should handle the intent.
+ The User Agent will mediate the Service selection by enumerating the list of
+ registered Services that match the requested Intent action and type.
+ The user is then able to select which Service should handle the Intent.
</p>
<dl title='[NoInterfaceObject] interface Intents' class='idl'>
<dt>void startActivity (Intent intent, optional callback onSuccess, optional callback onFailure)</dt>
- <dd>Called to invoke an intent service. The Intent object is described
+ <dd>Called to invoke an intent Service. The Intent object is described
above. The onSuccess handler, if any, will be called by the user agent if
the service is dispatched, processes the intent, and calls postResult on
the Intent object it receives. The handler will be invoked with one
@@ -396,11 +395,8 @@
parameter: the data received from the service.
User Agents SHOULD restrict this method to only be successfully callable within the
context of an explicit user gesture.
- <div class="exception" title="DOMException">
- An exception MAY be thrown if the intent is unfit for the stated intent.
- For example, the Intent is malformed (i.e. null) or the method is invoked without
- being the result of an explicit user gesture.
- </div>
+ An exception SHOULD be thrown if the Intent is invalid (i.e. null), or if
+ the method is invoked without being the result of an explicit user gesture.
</dd>
</dl>
<p>
@@ -553,10 +549,10 @@
The User Agent MUST NOT obey any registration markup which is not
same-origin. That is, a page may only register <code>href</code> attributes
for other service handlers on its same origin. A page may register itself
- as a Service handler, by leaving the |href| attribute empty.
+ as a Service handler, by leaving the <code>href</code> attribute empty.
</p>
<p>
- For cross-page registration, when the |href| attribute points to a different
+ For cross-page registration, when the <code>href</code> attribute points to a different
resource, the User Agent SHOULD interpret intent registrations additively.
That is, an intent descriptor from the tag would be added to the registry
if it is not present (if the user approves the addition).
@@ -566,9 +562,10 @@
The User Agent SHOULD treat any registration markup which has both
<code>action</code> and <code>type</code> attributes missing as if the
markup specified no intent capability on the |href| page. That is, a page may
- unregister itself quietly by removing all intent tags, or explicitly
- by keeping the tag present, but empty. This explicit unregistration SHOULD
- be supported for same-origin pages as well.
+ unregister itself implicitly by removing all intent tags, or explicitly
+ by keeping the tag present, but without <code>action</code> or
+ <code>type</code> attributes. Such explicit unregistration SHOULD
+ be honored for any tag with a ame-origin <code>href</code> attribute.
</p>
<p>
The intent tags on the service handler page itself SHOULD be interpreted by
@@ -625,7 +622,7 @@
</p>
<p>
For intents invoked by client web applications, the User Agent MUST
- require that such invocations be directly caused by a user gesture. User
+ require that such invocations be in the context of a user gesture. User
Agents MAY also dispatch intents invoked through other mechanisms. For
example, hardware events (i.e. plugging in a USB storage device) or
software events (i.e. downloading a file).
@@ -684,7 +681,7 @@
other mis-use.
</p>
<p>
- In the same way User Agents MAY dispatch intents caused by non-web
+ In the same way User Agents MAY dispatch Intents triggered by non-web
mechanisms to web applications, User Agents MAY dispatch intents invoked by
web applications to handlers which are not web applications. In those
cases, the User Agent SHOULD provide a public API mechanism for external
--- a/spec/Overview.html Wed Apr 11 12:10:54 2012 -0700
+++ b/spec/Overview.html Thu Apr 19 12:07:35 2012 -0700
@@ -477,7 +477,7 @@
pre.sh_sourceCode .sh_attribute { color: #006400; }
</style><link href="http://www.w3.org/StyleSheets/TR/W3C-ED" rel="stylesheet" type="text/css" charset="utf-8"></head>
- <body style="display: inherit; "><div class="head"><p><a href="http://www.w3.org/"><img width="72" height="48" src="http://www.w3.org/Icons/w3c_home" alt="W3C"></a></p><h1 class="title" id="title">Web Intents</h1><h2 id="w3c-editor-s-draft-11-april-2012"><acronym title="World Wide Web Consortium">W3C</acronym> Editor's Draft 11 April 2012</h2><dl><dt>This version:</dt><dd><a href="http://dev.w3.org/2011/webapps/TODO.html">http://dev.w3.org/2011/webapps/TODO.html</a></dd><dt>Latest published version:</dt><dd><a href="http://www.w3.org/TR/web-intents/">http://www.w3.org/TR/web-intents/</a></dd><dt>Latest editor's draft:</dt><dd><a href="http://dev.w3.org/2011/webapps/TODO.html">http://dev.w3.org/2011/webapps/TODO.html</a></dd><dt>Previous version:</dt><dd>none</dd><dt>Editors:</dt><dd><span>Greg Billock</span>, <a href="http://google.com/">Google</a></dd>
+ <body style="display: inherit; "><div class="head"><p><a href="http://www.w3.org/"><img width="72" height="48" src="http://www.w3.org/Icons/w3c_home" alt="W3C"></a></p><h1 class="title" id="title">Web Intents</h1><h2 id="w3c-editor-s-draft-19-april-2012"><acronym title="World Wide Web Consortium">W3C</acronym> Editor's Draft 19 April 2012</h2><dl><dt>This version:</dt><dd><a href="http://dev.w3.org/2011/webapps/TODO.html">http://dev.w3.org/2011/webapps/TODO.html</a></dd><dt>Latest published version:</dt><dd><a href="http://www.w3.org/TR/web-intents/">http://www.w3.org/TR/web-intents/</a></dd><dt>Latest editor's draft:</dt><dd><a href="http://dev.w3.org/2011/webapps/TODO.html">http://dev.w3.org/2011/webapps/TODO.html</a></dd><dt>Previous version:</dt><dd>none</dd><dt>Editors:</dt><dd><span>Greg Billock</span>, <a href="http://google.com/">Google</a></dd>
<dd><span>James Hawkins</span>, <a href="http://google.com/">Google</a></dd>
<dd><span>Paul Kinlan</span>, <a href="http://google.com/">Google</a></dd>
</dl><p class="copyright"><a href="http://www.w3.org/Consortium/Legal/ipr-notice#Copyright">Copyright</a> © 2012 <a href="http://www.w3.org/"><acronym title="World Wide Web Consortium">W3C</acronym></a><sup>®</sup> (<a href="http://www.csail.mit.edu/"><acronym title="Massachusetts Institute of Technology">MIT</acronym></a>, <a href="http://www.ercim.eu/"><acronym title="European Research Consortium for Informatics and Mathematics">ERCIM</acronym></a>, <a href="http://www.keio.ac.jp/">Keio</a>), All Rights Reserved. <acronym title="World Wide Web Consortium">W3C</acronym> <a href="http://www.w3.org/Consortium/Legal/ipr-notice#Legal_Disclaimer">liability</a>, <a href="http://www.w3.org/Consortium/Legal/ipr-notice#W3C_Trademarks">trademark</a> and <a href="http://www.w3.org/Consortium/Legal/copyright-documents">document use</a> rules apply.</p><hr></div>
@@ -636,18 +636,17 @@
<div id="actors" class="section">
<h3><span class="secno">2.1 </span>Actors</h3>
<p>
- A <dfn id="dfn-client">Client</dfn> is a web page which creates an Intent and invokes
- it. The User Agent may also allow non-web-page sources invoke Intents
- to be delivered. For instance, the User Agent may have UI which
- effectively triggers Intents delivery, or may register for external OS
- hooks to trigger Intents.
+ A web page which creates an Intent and invokes the User Agent with it
+ is a <dfn id="dfn-client">Client</dfn>. The User Agent may also allow non-web-page sources
+ invoke Intents. For instance, the User Agent may have UI which
+ invokes Intents delivery, or may register for external OS hooks which trigger Intents.
</p>
<p>
- A <dfn id="dfn-service">Service</dfn> is a web page which can handle an Intent,
- possibly returning a piece of data to the calling Client page. Again,
- the User Agent may have ways to deliver Intents to Services which are
- not web pages. These may be extension APIs, plug-in helpers, external OS
- handlers, etc.
+ A web page which can handle an Intent is a <dfn id="dfn-service">Service</dfn>,
+ possibly returning a piece of data to the calling Client page. (Note
+ that the User Agent may have ways to deliver Intents to Services which are
+ not web pages as well. These may be extension APIs, plug-in helpers,
+ external OS handlers, etc.)
</p>
</div>
<div id="life-cycle-of-intents" class="section">
@@ -703,8 +702,8 @@
<div id="intent-object" class="section">
<h3><span class="secno">3.2 </span>Intent object</h3>
<p>
- The Intent object models a particular task which can be requested by
- handled by client pages. It is left up to the client page whether to
+ The Intent object models a particular task which can be requested to be
+ handled by Services. It is left up to the client page whether to
launch multiple Intents simultaneously. Specific Intent objects are
immutable once created.
</p>
@@ -756,18 +755,18 @@
<div id="invocation-api" class="section">
<h3><span class="secno">3.3 </span>Invocation API</h3>
<p>
- The client invokes an intent by constructing an Intent object as above and invoking
+ The client invokes an intent by constructing an Intent object as above and calling
the <code>navigator.startActivity</code> function on it. The callbacks
passed to this method are invoked when the intent has been handled by the service.
- The User Agent will mediate the service selection by enumerating the list of
- registered services that match the requested
- intent action and type. The user is then able to select which service should handle the intent.
+ The User Agent will mediate the Service selection by enumerating the list of
+ registered Services that match the requested Intent action and type.
+ The user is then able to select which Service should handle the Intent.
</p>
<pre class="idl"><span class="idlInterface" id="idl-def-Intents">[<span class="extAttr">NoInterfaceObject</span>]
interface <span class="idlInterfaceID">Intents</span> {
<span class="idlMethod"> <span class="idlMethType"><a>void</a></span> <span class="idlMethName"><a href="#widl-Intents-startActivity-void-Intent-intent-callback-onSuccess-callback-onFailure">startActivity</a></span> (<span class="idlParam"><span class="idlParamType"><a href="#idl-def-Intent" class="idlType"><code>Intent</code></a></span> <span class="idlParamName">intent</span></span>, <span class="idlParam">optional <span class="idlParamType"><a>callback</a></span> <span class="idlParamName">onSuccess</span></span>, <span class="idlParam">optional <span class="idlParamType"><a>callback</a></span> <span class="idlParamName">onFailure</span></span>);</span>
};</span>
-</pre><div id="methods-1" class="section"><h4><span class="secno">3.3.1 </span>Methods</h4><dl class="methods"><dt id="widl-Intents-startActivity-void-Intent-intent-callback-onSuccess-callback-onFailure"><code>startActivity</code></dt><dd>Called to invoke an intent service. The Intent object is described
+</pre><div id="methods-1" class="section"><h4><span class="secno">3.3.1 </span>Methods</h4><dl class="methods"><dt id="widl-Intents-startActivity-void-Intent-intent-callback-onSuccess-callback-onFailure"><code>startActivity</code></dt><dd>Called to invoke an intent Service. The Intent object is described
above. The onSuccess handler, if any, will be called by the user agent if
the service is dispatched, processes the intent, and calls postResult on
the Intent object it receives. The handler will be invoked with one
@@ -779,7 +778,8 @@
parameter: the data received from the service.
User Agents <em class="rfc2119" title="should">should</em> restrict this method to only be successfully callable within the
context of an explicit user gesture.
-
+ An exception <em class="rfc2119" title="should">should</em> be thrown if the Intent is invalid (i.e. null), or if
+ the method is invoked without being the result of an explicit user gesture.
<table class="parameters"><tr><th>Parameter</th><th>Type</th><th>Nullable</th><th>Optional</th><th>Description</th></tr><tr><td class="prmName">intent</td><td class="prmType"><code><a href="#idl-def-Intent" class="idlType"><code>Intent</code></a></code></td><td class="prmNullFalse">✘</td><td class="prmOptFalse">✘</td><td class="prmDesc"></td></tr><tr><td class="prmName">onSuccess</td><td class="prmType"><code><a>callback</a></code></td><td class="prmNullFalse">✘</td><td class="prmOptTrue">✔</td><td class="prmDesc"></td></tr><tr><td class="prmName">onFailure</td><td class="prmType"><code><a>callback</a></code></td><td class="prmNullFalse">✘</td><td class="prmOptTrue">✔</td><td class="prmDesc"></td></tr></table><div><em>Return type: </em><code><a>void</a></code></div></dd></dl></div>
<p>
The invocation API is implemented by the <code>window.navigator</code> object.