Remove extras.
authorGreg Billock <gbillock@google.com>
Tue, 04 Sep 2012 14:18:17 -0700
changeset 28 f2134ce630d8
parent 27 86cfa8e21bff
child 29 09467dd63d36
Remove extras.
spec/Overview-respec.html
spec/Overview.html
--- a/spec/Overview-respec.html	Mon Jul 30 08:17:29 2012 -0700
+++ b/spec/Overview-respec.html	Tue Sep 04 14:18:17 2012 -0700
@@ -266,9 +266,6 @@
         <dt>sequence&lt;Transferable&gt; transfer</dt>
         <dd>The list of Transferables, for use in the structured clone
         algorithm.</dd>
-        <dt>Object extras</dt>
-        <dd>A key-value map of extra metadata to be sent with the intent. Keys
-        and values are strings.</dd>
         <dt>URL service</dt>
         <dd>When present, this field marks the intent as an explicit intent. The
         value MUST be an absolute URL.</dd>
@@ -304,8 +301,6 @@
           page.</b> Any ports used in the <code>transferList</code> of the constructor during invocation will be
         delivered to the service page in the <code>ports</code> attribute. See
         [[!POSTMSG]]</dd>
-        <dt>readonly attribute any extras</dt>
-        <dd>Retrieves the extras metadata (if any) which this intent was constructed with.</dd>
 
         <dt>void postResult(any data, optional sequence&lt;Transferable&gt; transferable)</dt>
         <dd><b>Only present when the Intent object is delivered to the
--- a/spec/Overview.html	Mon Jul 30 08:17:29 2012 -0700
+++ b/spec/Overview.html	Tue Sep 04 14:18:17 2012 -0700
@@ -1,24 +1,15 @@
-<!DOCTYPE html PUBLIC '-//W3C//DTD HTML 4.01 Transitional//EN' 'http://www.w3.org/TR/html4/loose.dtd'>
+<!DOCTYPE html>
 <html lang="en" dir="ltr">
 <head>
     <title>Web Intents</title>
     <meta http-equiv="Content-Type" content="text/html;charset=utf-8">
-    <!-- 
-      === NOTA BENE ===
-      For the three scripts below, if your spec resides on dev.w3 you can check them
-      out in the same tree and use relative links so that they'll work offline,
-     -->
     
     
-    
-  <style type="text/css">
-/*****************************************************************
- * ReSpec CSS
- * Robin Berjon (robin at berjon dot com)
- * v0.05 - 2009-07-31
+  <style>/*****************************************************************
+ * ReSpec 3 CSS
+ * Robin Berjon - http://berjon.com/
  *****************************************************************/
 
-
 /* --- INLINES --- */
 em.rfc2119 { 
     text-transform:     lowercase;
@@ -52,12 +43,123 @@
     text-decoration:    none;
 }
 
+cite .bibref {
+    font-style: normal;
+}
+
 code {
     color:  #ff4500;
 }
 
 
-/* --- WEB IDL --- */
+/* --- --- */
+ol.algorithm { counter-reset:numsection; list-style-type: none; }
+ol.algorithm li { margin: 0.5em 0; }
+ol.algorithm li:before { font-weight: bold; counter-increment: numsection; content: counters(numsection, ".") ") "; }
+
+/* --- TOC --- */
+.toc a, .tof a {
+    text-decoration:    none;
+}
+
+a .secno, a .figno {
+    color:  #000;
+}
+
+ul.tof, ol.tof {
+    list-style: none outside none;
+}
+
+.caption {
+    margin-top: 0.5em;
+    font-style:   italic;
+}
+
+/* --- TABLE --- */
+table.simple {
+    border-spacing: 0;
+    border-collapse:    collapse;
+    border-bottom:  3px solid #005a9c;
+}
+
+.simple th {
+    background: #005a9c;
+    color:  #fff;
+    padding:    3px 5px;
+    text-align: left;
+}
+
+.simple th[scope="row"] {
+    background: inherit;
+    color:  inherit;
+    border-top: 1px solid #ddd;
+}
+
+.simple td {
+    padding:    3px 10px;
+    border-top: 1px solid #ddd;
+}
+
+.simple tr:nth-child(even) {
+    background: #f0f6ff;
+}
+
+/* --- DL --- */
+.section dd > p:first-child {
+    margin-top: 0;
+}
+
+.section dd > p:last-child {
+    margin-bottom: 0;
+}
+
+.section dd {
+    margin-bottom:  1em;
+}
+
+.section dl.attrs dd, .section dl.eldef dd {
+    margin-bottom:  0;
+}
+</style><style>/* --- EXAMPLES --- */
+div.example-title {
+    min-width: 7.5em;
+    color: #b9ab2d;
+}
+div.example-title span {
+    text-transform: uppercase;   
+}
+aside.example, div.example, div.illegal-example {
+    padding: 0.5em;
+    margin: 1em 0;
+    position: relative;
+    clear: both;
+}
+div.illegal-example { color: red }
+div.illegal-example p { color: black }
+aside.example, div.example {
+    padding: .5em;
+    border-left-width: .5em;
+    border-left-style: solid;
+    border-color: #e0cb52;
+    background: #fcfaee;    
+}
+
+aside.example div.example {
+    border-left-width: .1em;
+    border-color: #999;
+    background: #fff;
+}
+aside.example div.example div.example-title {
+    color: #999;
+}
+</style><style>/* HIGHLIGHTS */
+code.prettyprint {
+    color:  inherit;
+}
+
+/* this from google-code-prettify */
+.pln{color:#000}@media screen{.str{color:#080}.kwd{color:#008}.com{color:#800}.typ{color:#606}.lit{color:#066}.pun,.opn,.clo{color:#660}.tag{color:#008}.atn{color:#606}.atv{color:#080}.dec,.var{color:#606}.fun{color:red}}@media print,projection{.str{color:#060}.kwd{color:#006;font-weight:bold}.com{color:#600;font-style:italic}.typ{color:#404;font-weight:bold}.lit{color:#044}.pun,.opn,.clo{color:#440}.tag{color:#006;font-weight:bold}.atn{color:#404}.atv{color:#060}}ol.linenums{margin-top:0;margin-bottom:0}li.L0,li.L1,li.L2,li.L3,li.L5,li.L6,li.L7,li.L8{list-style-type:none}li.L1,li.L3,li.L5,li.L7,li.L9{background:#eee}
+</style><style>/* --- WEB IDL --- */
 pre.idl {
     border-top: 1px solid #90b8de;
     border-bottom: 1px solid #90b8de;
@@ -86,7 +188,7 @@
 /*.idlModule*/
 /*.idlModuleID*/
 /*.idlInterface*/
-.idlInterfaceID, .idlDictionaryID {
+.idlInterfaceID, .idlDictionaryID, .idlCallbackID, .idlEnumID {
     font-weight:    bold;
     color:  #005a9c;
 }
@@ -110,7 +212,7 @@
 }
 
 /*.idlMethod*/
-.idlMethType {
+.idlMethType, .idlCallbackType {
     color:  #005a9c;
 }
 .idlMethName {
@@ -262,226 +364,63 @@
     border-collapse:    collapse;
     width:  100%;
 }
-
-/* --- TOC --- */
-.toc a {
-    text-decoration:    none;
-}
-
-a .secno {
-    color:  #000;
-}
-
-/* --- TABLE --- */
-table.simple {
-    border-spacing: 0;
-    border-collapse:    collapse;
-    border-bottom:  3px solid #005a9c;
-}
-
-.simple th {
-    background: #005a9c;
-    color:  #fff;
-    padding:    3px 5px;
-    text-align: left;
-}
-
-.simple th[scope="row"] {
-    background: inherit;
-    color:  inherit;
-    border-top: 1px solid #ddd;
-}
-
-.simple td {
-    padding:    3px 10px;
-    border-top: 1px solid #ddd;
-}
-
-.simple tr:nth-child(even) {
-    background: #f0f6ff;
-}
-
-/* --- DL --- */
-.section dd > p:first-child {
-    margin-top: 0;
-}
-
-.section dd > p:last-child {
-    margin-bottom: 0;
-}
-
-.section dd {
-    margin-bottom:  1em;
-}
-
-.section dl.attrs dd, .section dl.eldef dd {
-    margin-bottom:  0;
-}
-
-/* --- EXAMPLES --- */
-pre.example {
-    border-top: 1px solid #ff4500;
-    border-bottom: 1px solid #ff4500;
-    padding:    1em;
-    margin-top: 1em;
-}
-
-pre.example::before {
-    content:    "Example";
-    display:    block;
-    width:      150px;
-    background: #ff4500;
-    color:  #fff;
-    font-family:    initial;
-    padding:    3px;
-    font-weight:    bold;
-    margin: -1em 0 1em -1em;
-}
-
-/* --- EDITORIAL NOTES --- */
-.issue {
-    padding:    1em;
-    margin: 1em 0em 0em;
-    border: 1px solid #f00;
-    background: #ffc;
-}
-
-.issue::before {
-    content:    "Issue";
-    display:    block;
-    width:  150px;
-    margin: -1.5em 0 0.5em 0;
-    font-weight:    bold;
-    border: 1px solid #f00;
-    background: #fff;
-    padding:    3px 1em;
-}
-
-.note {
-    margin: 1em 0em 0em;
-    padding:    1em;
-    border: 2px solid #cff6d9;
-    background: #e2fff0;
-}
-
-.note::before {
-    content:    "Note";
-    display:    block;
-    width:  150px;
-    margin: -1.5em 0 0.5em 0;
-    font-weight:    bold;
-    border: 1px solid #cff6d9;
-    background: #fff;
-    padding:    3px 1em;
-}
-
-/* --- Best Practices --- */
-div.practice {
-    border: solid #bebebe 1px;
-    margin: 2em 1em 1em 2em;
-}
-
-span.practicelab {
-    margin: 1.5em 0.5em 1em 1em;
-    font-weight: bold;
-    font-style: italic;
-}
-
-span.practicelab   { background: #dfffff; }
-
-span.practicelab {
-    position: relative;
-    padding: 0 0.5em;
-    top: -1.5em;
-}
-
-p.practicedesc {
-    margin: 1.5em 0.5em 1em 1em;
-}
-
-@media screen {
-    p.practicedesc {
-        position: relative;
-        top: -2em;
-        padding: 0;
-        margin: 1.5em 0.5em -1em 1em;
-    }
-}
-
-/* --- SYNTAX HIGHLIGHTING --- */
-pre.sh_sourceCode {
-  background-color: white;
-  color: black;
-  font-style: normal;
-  font-weight: normal;
-}
-
-pre.sh_sourceCode .sh_keyword { color: #005a9c; font-weight: bold; }           /* language keywords */
-pre.sh_sourceCode .sh_type { color: #666; }                            /* basic types */
-pre.sh_sourceCode .sh_usertype { color: teal; }                             /* user defined types */
-pre.sh_sourceCode .sh_string { color: red; font-family: monospace; }        /* strings and chars */
-pre.sh_sourceCode .sh_regexp { color: orange; font-family: monospace; }     /* regular expressions */
-pre.sh_sourceCode .sh_specialchar { color: 	#ffc0cb; font-family: monospace; }  /* e.g., \n, \t, \\ */
-pre.sh_sourceCode .sh_comment { color: #A52A2A; font-style: italic; }         /* comments */
-pre.sh_sourceCode .sh_number { color: purple; }                             /* literal numbers */
-pre.sh_sourceCode .sh_preproc { color: #00008B; font-weight: bold; }       /* e.g., #include, import */
-pre.sh_sourceCode .sh_symbol { color: blue; }                            /* e.g., *, + */
-pre.sh_sourceCode .sh_function { color: black; font-weight: bold; }         /* function calls and declarations */
-pre.sh_sourceCode .sh_cbracket { color: red; }                              /* block brackets (e.g., {, }) */
-pre.sh_sourceCode .sh_todo { font-weight: bold; background-color: #00FFFF; }   /* TODO and FIXME */
-
-/* Predefined variables and functions (for instance glsl) */
-pre.sh_sourceCode .sh_predef_var { color: #00008B; }
-pre.sh_sourceCode .sh_predef_func { color: #00008B; font-weight: bold; }
-
-/* for OOP */
-pre.sh_sourceCode .sh_classname { color: teal; }
-
-/* line numbers (not yet implemented) */
-pre.sh_sourceCode .sh_linenum { display: none; }
-
-/* Internet related */
-pre.sh_sourceCode .sh_url { color: blue; text-decoration: underline; font-family: monospace; }
-
-/* for ChangeLog and Log files */
-pre.sh_sourceCode .sh_date { color: blue; font-weight: bold; }
-pre.sh_sourceCode .sh_time, pre.sh_sourceCode .sh_file { color: #00008B; font-weight: bold; }
-pre.sh_sourceCode .sh_ip, pre.sh_sourceCode .sh_name { color: #006400; }
-
-/* for Prolog, Perl... */
-pre.sh_sourceCode .sh_variable { color: #006400; }
-
-/* for LaTeX */
-pre.sh_sourceCode .sh_italics { color: #006400; font-style: italic; }
-pre.sh_sourceCode .sh_bold { color: #006400; font-weight: bold; }
-pre.sh_sourceCode .sh_underline { color: #006400; text-decoration: underline; }
-pre.sh_sourceCode .sh_fixed { color: green; font-family: monospace; }
-pre.sh_sourceCode .sh_argument { color: #006400; }
-pre.sh_sourceCode .sh_optionalargument { color: purple; }
-pre.sh_sourceCode .sh_math { color: orange; }
-pre.sh_sourceCode .sh_bibtex { color: blue; }
-
-/* for diffs */
-pre.sh_sourceCode .sh_oldfile { color: orange; }
-pre.sh_sourceCode .sh_newfile { color: #006400; }
-pre.sh_sourceCode .sh_difflines { color: blue; }
-
-/* for css */
-pre.sh_sourceCode .sh_selector { color: purple; }
-pre.sh_sourceCode .sh_property { color: blue; }
-pre.sh_sourceCode .sh_value { color: #006400; font-style: italic; }
-
-/* other */
-pre.sh_sourceCode .sh_section { color: black; font-weight: bold; }
-pre.sh_sourceCode .sh_paren { color: red; }
-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-19-june-2012"><acronym title="World Wide Web Consortium">W3C</acronym> Editor's Draft 19 June 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>
+</style><link rel="stylesheet" href="http://www.w3.org/StyleSheets/TR/W3C-ED"><!--[if lt IE 9]><script src='undefined://www.w3.org/2008/site/js/html5shiv.js'></script><![endif]--></head>
+  <body><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-04-september-2012"><abbr title="World Wide Web Consortium">W3C</abbr> Editor's Draft 04 September 2012</h2>
+  <dl>
+    
+      <dt>This version:</dt>
+      <dd><a href="https://dvcs.w3.org/hg/web-intents/raw-file/tip/spec/Overview-respec.html">https://dvcs.w3.org/hg/web-intents/raw-file/tip/spec/Overview-respec.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="https://dvcs.w3.org/hg/web-intents/raw-file/tip/spec/Overview-respec.html">https://dvcs.w3.org/hg/web-intents/raw-file/tip/spec/Overview-respec.html</a></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>
-    <div id="abstract" class="introductory section"><h2>Abstract</h2>
+
+    
+  </dl>
+  
+  
+  
+  
+    
+      <p class="copyright">
+        <a href="http://www.w3.org/Consortium/Legal/ipr-notice#Copyright">Copyright</a> © 
+        2011-2012
+        
+        <a href="http://www.w3.org/"><abbr title="World Wide Web Consortium">W3C</abbr></a><sup>®</sup> 
+        (<a href="http://www.csail.mit.edu/"><abbr title="Massachusetts Institute of Technology">MIT</abbr></a>,
+        <a href="http://www.ercim.eu/"><abbr title="European Research Consortium for Informatics and Mathematics">ERCIM</abbr></a>,
+        <a href="http://www.keio.ac.jp/">Keio</a>), All Rights Reserved.
+        <abbr title="World Wide Web Consortium">W3C</abbr> <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>
+    <section id="abstract" class="introductory"><h2>Abstract</h2>
       <p>
       This specification defines a service discovery and light-weight RPC
       mechanism for web apps called Web Intents.
@@ -491,9 +430,67 @@
       pages to create, receive, and reply to Web Intents messages, and the
       procedures the User Agent carries out to facilitate that process.
       </p>
-    </div><div id="sotd" class="introductory section"><h2>Status of This Document</h2><p><em>This section describes the status of this document at the time of its publication. Other documents may supersede this document. A list of current <acronym title="World Wide Web Consortium">W3C</acronym> publications and the latest revision of this technical report can be found in the <a href="http://www.w3.org/TR/"><acronym title="World Wide Web Consortium">W3C</acronym> technical reports index</a> at http://www.w3.org/TR/.</em></p><p>This document was published by the <a href="http://www.w3.org/2008/webapps/">Web Applications (WebApps) Working Group</a> as an Editor's Draft. If you wish to make comments regarding this document, please send them to <a href="mailto:public-web-intents@w3.org">public-web-intents@w3.org</a> (<a href="mailto:public-web-intents-request@w3.org?subject=subscribe">subscribe</a>, <a href="http://lists.w3.org/Archives/Public/public-web-intents/">archives</a>). All feedback is welcome.</p><p>Publication as an Editor's Draft does not imply endorsement by the <acronym title="World Wide Web Consortium">W3C</acronym> Membership. This is a draft document and may be updated, replaced or obsoleted by other documents at any time. It is inappropriate to cite this document as other than work in progress.</p><p>This document was produced by a group operating under the <a href="http://www.w3.org/Consortium/Patent-Policy-20040205/">5 February 2004 <acronym title="World Wide Web Consortium">W3C</acronym> Patent Policy</a>. <acronym title="World Wide Web Consortium">W3C</acronym> maintains a <a href="TODO" rel="disclosure">public list of any patent disclosures</a> made in connection with the deliverables of the group; that page also includes instructions for disclosing a patent. An individual who has actual knowledge of a patent which the individual believes contains <a href="http://www.w3.org/Consortium/Patent-Policy-20040205/#def-essential">Essential Claim(s)</a> must disclose the information in accordance with <a href="http://www.w3.org/Consortium/Patent-Policy-20040205/#sec-Disclosure">section 6 of the <acronym title="World Wide Web Consortium">W3C</acronym> Patent Policy</a>.</p></div><div id="toc" class="section"><h2 class="introductory">Table of Contents</h2><ul class="toc"><li class="tocline"><a href="#introduction" class="tocxref"><span class="secno">1. </span>Introduction</a><ul class="toc"><li class="tocline"><a href="#example" class="tocxref"><span class="secno">1.1 </span>Example</a></li><li class="tocline"><a href="#normative-parts" class="tocxref"><span class="secno">1.2 </span>Normative parts</a></li></ul></li><li class="tocline"><a href="#terminology" class="tocxref"><span class="secno">2. </span>Terminology</a><ul class="toc"><li class="tocline"><a href="#actors" class="tocxref"><span class="secno">2.1 </span>Actors</a></li><li class="tocline"><a href="#life-cycle-of-intents-and-services" class="tocxref"><span class="secno">2.2 </span>Life cycle of Intents and Services</a></li></ul></li><li class="tocline"><a href="#api-description" class="tocxref"><span class="secno">3. </span>API Description</a><ul class="toc"><li class="tocline"><a href="#intent-parameters-dictionary" class="tocxref"><span class="secno">3.1 </span>Intent parameters dictionary</a><ul class="toc"><li class="tocline"><a href="#dictionary-intentparameters-members" class="tocxref"><span class="secno">3.1.1 </span>Dictionary <span class="idlType formerLink idlType"><code>IntentParameters</code></span> Members</a></li></ul></li><li class="tocline"><a href="#intent-object" class="tocxref"><span class="secno">3.2 </span>Intent object</a><ul class="toc"><li class="tocline"><a href="#attributes" class="tocxref"><span class="secno">3.2.1 </span>Attributes</a></li><li class="tocline"><a href="#methods" class="tocxref"><span class="secno">3.2.2 </span>Methods</a></li></ul></li><li class="tocline"><a href="#invocation-api" class="tocxref"><span class="secno">3.3 </span>Invocation API</a><ul class="toc"><li class="tocline"><a href="#methods-1" class="tocxref"><span class="secno">3.3.1 </span>Methods</a></li></ul></li><li class="tocline"><a href="#delivery-and-response-api" class="tocxref"><span class="secno">3.4 </span>Delivery and Response API</a><ul class="toc"><li class="tocline"><a href="#attributes-1" class="tocxref"><span class="secno">3.4.1 </span>Attributes</a></li></ul></li><li class="tocline"><a href="#registration-markup" class="tocxref"><span class="secno">3.5 </span>Registration Markup</a><ul class="toc"><li class="tocline"><a href="#attributes-2" class="tocxref"><span class="secno">3.5.1 </span>Attributes</a></li></ul></li></ul></li><li class="tocline"><a href="#user-agent-behavior" class="tocxref"><span class="secno">4. </span>User Agent Behavior</a><ul class="toc"><li class="tocline"><a href="#explicit-intents" class="tocxref"><span class="secno">4.1 </span>Explicit Intents</a></li><li class="tocline"><a href="#matching-action-and-type-for-delivery" class="tocxref"><span class="secno">4.2 </span>Matching action and type for delivery</a></li><li class="tocline"><a href="#handling-service-suggestions-from-intent-invocation" class="tocxref"><span class="secno">4.3 </span>Handling Service suggestions from Intent Invocation</a></li></ul></li><li class="tocline"><a href="#use-cases-and-requirements" class="tocxref"><span class="secno">5. </span>Use Cases and Requirements</a><ul class="toc"><li class="tocline"><a href="#sharing" class="tocxref"><span class="secno">5.1 </span>Sharing</a></li><li class="tocline"><a href="#integration-with-local-web-apps" class="tocxref"><span class="secno">5.2 </span>Integration with local web apps</a></li><li class="tocline"><a href="#persistent-connections" class="tocxref"><span class="secno">5.3 </span>Persistent connections</a></li><li class="tocline"><a href="#integration-with-external-applications" class="tocxref"><span class="secno">5.4 </span>Integration with external applications</a></li><li class="tocline"><a href="#translating-existing-web-platform-features-to-intents" class="tocxref"><span class="secno">5.5 </span>Translating existing web platform features to intents</a></li><li class="tocline"><a href="#authentication" class="tocxref"><span class="secno">5.6 </span>Authentication</a></li></ul></li><li class="tocline"><a href="#privacy-considerations" class="tocxref"><span class="secno">6. </span>Privacy Considerations</a></li><li class="tocline"><a href="#acknowledgements" class="tocxref"><span class="secno">A. </span>Acknowledgements</a></li><li class="tocline"><a href="#references" class="tocxref"><span class="secno">B. </span>References</a><ul class="toc"><li class="tocline"><a href="#normative-references" class="tocxref"><span class="secno">B.1 </span>Normative references</a></li><li class="tocline"><a href="#informative-references" class="tocxref"><span class="secno">B.2 </span>Informative references</a></li></ul></li></ul></div>
+    </section><section id="sotd" class="introductory"><h2>Status of This Document</h2>
+  
     
-    <div id="introduction" class="section">
+      
+        <p>
+          <em>This section describes the status of this document at the time of its publication. Other
+          documents may supersede this document. A list of current <abbr title="World Wide Web Consortium">W3C</abbr> publications and the latest revision
+          of this technical report can be found in the <a href="http://www.w3.org/TR/"><abbr title="World Wide Web Consortium">W3C</abbr> technical reports
+          index</a> at http://www.w3.org/TR/.</em>
+        </p>
+        
+      <p>
+        This document is produced by a the Web Intents Task Force, which is jointly operated
+        by the DAP and WebApps Working Groups. The email address provided for feedback is
+        that of the Task Force, where all feedback is welcome.
+      </p>
+    
+        <p>
+          This document was published by the <a href="http://www.w3.org/2009/dap/">Device Applications (DAP) Working Group</a> and <a href="http://www.w3.org/2008/webapps/">Web Applications (WebApps) Working Group</a> as an Editor's Draft.
+          
+          If you wish to make comments regarding this document, please send them to 
+          <a href="mailto:public-web-intents@w3.org">public-web-intents@w3.org</a> 
+          (<a href="mailto:public-web-intents-request@w3.org?subject=subscribe">subscribe</a>,
+          <a href="http://lists.w3.org/Archives/Public/public-web-intents/">archives</a>).
+          
+          
+          All feedback is welcome.
+        </p>
+        
+          <p>
+            Publication as an Editor's Draft does not imply endorsement by the <abbr title="World Wide Web Consortium">W3C</abbr> Membership.
+            This is a draft document and may be updated, replaced or obsoleted by other documents at 
+            any time. It is inappropriate to cite this document as other than work in progress.
+          </p>
+        
+        
+        <p>
+          
+            This document was produced by a group operating under the 
+            <a href="http://www.w3.org/Consortium/Patent-Policy-20040205/">5 February 2004 <abbr title="World Wide Web Consortium">W3C</abbr> Patent Policy</a>.
+          
+          
+          
+            
+              <abbr title="World Wide Web Consortium">W3C</abbr> maintains a public list of any patent disclosures (<a href="http://www.w3.org/2004/01/pp-impl/43696/status" rel="disclosure">Device Applications (DAP) Working Group</a>, <a href="http://www.w3.org/2004/01/pp-impl/42538/status" rel="disclosure">Web Applications (WebApps) Working Group</a>)
+            
+            made in connection with the deliverables of the group; that page also includes instructions for 
+            disclosing a patent. An individual who has actual knowledge of a patent which the individual believes contains
+            <a href="http://www.w3.org/Consortium/Patent-Policy-20040205/#def-essential">Essential Claim(s)</a> must disclose the
+            information in accordance with <a href="http://www.w3.org/Consortium/Patent-Policy-20040205/#sec-Disclosure">section
+            6 of the <abbr title="World Wide Web Consortium">W3C</abbr> Patent Policy</a>.
+          
+          
+        </p>
+        
+      
+    
+  
+</section><section id="toc"><h2 class="introductory">Table of Contents</h2><ul class="toc"><li class="tocline"><a href="#introduction" class="tocxref"><span class="secno">1. </span>Introduction</a><ul class="toc"><li class="tocline"><a href="#example" class="tocxref"><span class="secno">1.1 </span>Example</a></li><li class="tocline"><a href="#normative-parts" class="tocxref"><span class="secno">1.2 </span>Normative parts</a></li></ul></li><li class="tocline"><a href="#terminology" class="tocxref"><span class="secno">2. </span>Terminology</a><ul class="toc"><li class="tocline"><a href="#actors" class="tocxref"><span class="secno">2.1 </span>Actors</a></li><li class="tocline"><a href="#life-cycle-of-intents-and-services" class="tocxref"><span class="secno">2.2 </span>Life cycle of Intents and Services</a></li></ul></li><li class="tocline"><a href="#api-description" class="tocxref"><span class="secno">3. </span>API Description</a><ul class="toc"><li class="tocline"><a href="#intent-parameters-dictionary" class="tocxref"><span class="secno">3.1 </span>Intent parameters dictionary</a><ul class="toc"><li class="tocline"><a href="#dictionary-intentparameters-members" class="tocxref"><span class="secno">3.1.1 </span>Dictionary <span class="formerLink"><code>IntentParameters</code></span> Members</a></li></ul></li><li class="tocline"><a href="#intent-object" class="tocxref"><span class="secno">3.2 </span>Intent object</a><ul class="toc"><li class="tocline"><a href="#attributes" class="tocxref"><span class="secno">3.2.1 </span>Attributes</a></li></ul></li><li class="tocline"><a href="#invocation-api" class="tocxref"><span class="secno">3.3 </span>Invocation API</a><ul class="toc"><li class="tocline"><a href="#methods" class="tocxref"><span class="secno">3.3.1 </span>Methods</a></li></ul></li><li class="tocline"><a href="#delivery-and-response-api" class="tocxref"><span class="secno">3.4 </span>Delivery and Response API</a><ul class="toc"><li class="tocline"><a href="#attributes-1" class="tocxref"><span class="secno">3.4.1 </span>Attributes</a></li></ul></li><li class="tocline"><a href="#registration-markup" class="tocxref"><span class="secno">3.5 </span>Registration Markup</a><ul class="toc"><li class="tocline"><a href="#attributes-2" class="tocxref"><span class="secno">3.5.1 </span>Attributes</a></li></ul></li></ul></li><li class="tocline"><a href="#user-agent-behavior" class="tocxref"><span class="secno">4. </span>User Agent Behavior</a><ul class="toc"><li class="tocline"><a href="#explicit-intents" class="tocxref"><span class="secno">4.1 </span>Explicit Intents</a></li><li class="tocline"><a href="#matching-action-and-type-for-delivery" class="tocxref"><span class="secno">4.2 </span>Matching action and type for delivery</a></li><li class="tocline"><a href="#handling-service-suggestions-from-intent-invocation" class="tocxref"><span class="secno">4.3 </span>Handling Service suggestions from Intent Invocation</a></li></ul></li><li class="tocline"><a href="#use-cases-and-requirements" class="tocxref"><span class="secno">5. </span>Use Cases and Requirements</a><ul class="toc"><li class="tocline"><a href="#sharing" class="tocxref"><span class="secno">5.1 </span>Sharing</a></li><li class="tocline"><a href="#integration-with-local-web-apps" class="tocxref"><span class="secno">5.2 </span>Integration with local web apps</a></li><li class="tocline"><a href="#persistent-connections" class="tocxref"><span class="secno">5.3 </span>Persistent connections</a></li><li class="tocline"><a href="#integration-with-external-applications" class="tocxref"><span class="secno">5.4 </span>Integration with external applications</a></li><li class="tocline"><a href="#translating-existing-web-platform-features-to-intents" class="tocxref"><span class="secno">5.5 </span>Translating existing web platform features to intents</a></li><li class="tocline"><a href="#authentication" class="tocxref"><span class="secno">5.6 </span>Authentication</a></li></ul></li><li class="tocline"><a href="#privacy-considerations" class="tocxref"><span class="secno">6. </span>Privacy Considerations</a></li><li class="tocline"><a href="#acknowledgements" class="tocxref"><span class="secno">A. </span>Acknowledgements</a></li><li class="tocline"><a href="#references" class="tocxref"><span class="secno">B. </span>References</a><ul class="toc"><li class="tocline"><a href="#normative-references" class="tocxref"><span class="secno">B.1 </span>Normative references</a></li><li class="tocline"><a href="#informative-references" class="tocxref"><span class="secno">B.2 </span>Informative references</a></li></ul></li></ul></section>
+    
+    <section id="introduction">
       <!--OddPage--><h2><span class="secno">1. </span>Introduction</h2>
       <p>
         Web Intents enable rich integration between web
@@ -525,7 +522,7 @@
         services to list the Intents they handle. Using this method, services mark
         up what actions they can handle and which data types they expect.
       </p>
-      <div id="example" class="section">
+      <section id="example">
       <h3><span class="secno">1.1 </span>Example</h3>
       <p>
       Suppose there is a photo hosting application. This application allows a
@@ -535,16 +532,16 @@
       photo, it can place an <b>Edit</b> button, with this kind of accompanying
       code:
       </p>
-      <pre class="example">document.getElementById('edit-photo').addEventListener("click", function() {
-  var intent = new Intent({"action":"http://webintents.org/edit",
-                           "type":"image/jpeg",
-                           "data":getImageDataBlob(...)});
-  navigator.startActivity(intent, imageEdited);
-};
+      <div class="example"><div class="example-title"><span>Example 1</span></div><pre class="example highlight prettyprint"><span class="pln">document</span><span class="pun">.</span><span class="pln">getElementById</span><span class="pun">(</span><span class="str">'edit-photo'</span><span class="pun">).</span><span class="pln">addEventListener</span><span class="pun">(</span><span class="str">"click"</span><span class="pun">,</span><span class="pln"> </span><span class="kwd">function</span><span class="pun">()</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
+  </span><span class="kwd">var</span><span class="pln"> intent </span><span class="pun">=</span><span class="pln"> </span><span class="kwd">new</span><span class="pln"> </span><span class="typ">Intent</span><span class="pun">({</span><span class="str">"action"</span><span class="pun">:</span><span class="str">"http://webintents.org/edit"</span><span class="pun">,</span><span class="pln">
+                           </span><span class="str">"type"</span><span class="pun">:</span><span class="str">"image/jpeg"</span><span class="pun">,</span><span class="pln">
+                           </span><span class="str">"data"</span><span class="pun">:</span><span class="pln">getImageDataBlob</span><span class="pun">(...)});</span><span class="pln">
+  navigator</span><span class="pun">.</span><span class="pln">startActivity</span><span class="pun">(</span><span class="pln">intent</span><span class="pun">,</span><span class="pln"> imageEdited</span><span class="pun">);</span><span class="pln">
+</span><span class="pun">},</span><span class="pln"> </span><span class="kwd">false</span><span class="pun">);</span><span class="pln">
 
-function imageEdited(data) {
-  document.getElementById('image').src = data;
-}</pre>
+</span><span class="kwd">function</span><span class="pln"> imageEdited</span><span class="pun">(</span><span class="pln">data</span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
+  document</span><span class="pun">.</span><span class="pln">getElementById</span><span class="pun">(</span><span class="str">'image'</span><span class="pun">).</span><span class="pln">src </span><span class="pun">=</span><span class="pln"> data</span><span class="pun">;</span><span class="pln">
+</span><span class="pun">}</span></pre></div>
       <p>
       This code delegates image editing to third-party applications which can
       consume images prepared as blobs, and produce
@@ -559,12 +556,12 @@
       but by adding a <b>Share</b> button near images, and with this kind of
       accompanying code, it can accomplish this integration:
       </p>
-      <pre class="example">document.getElementById('share-photo').addEventListener("click", function() {
-  var intent = new Intent({"action":"http://webintents.org/share",
-                           "type":"text/uri-list",
-                           "data":getPublicURIForImage(...)});
-  navigator.startActivity(intent);
-};</pre>
+      <div class="example"><div class="example-title"><span>Example 2</span></div><pre class="example highlight prettyprint"><span class="pln">document</span><span class="pun">.</span><span class="pln">getElementById</span><span class="pun">(</span><span class="str">'share-photo'</span><span class="pun">).</span><span class="pln">addEventListener</span><span class="pun">(</span><span class="str">"click"</span><span class="pun">,</span><span class="pln"> </span><span class="kwd">function</span><span class="pun">()</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
+  </span><span class="kwd">var</span><span class="pln"> intent </span><span class="pun">=</span><span class="pln"> </span><span class="kwd">new</span><span class="pln"> </span><span class="typ">Intent</span><span class="pun">({</span><span class="str">"action"</span><span class="pun">:</span><span class="str">"http://webintents.org/share"</span><span class="pun">,</span><span class="pln">
+                           </span><span class="str">"type"</span><span class="pun">:</span><span class="str">"text/uri-list"</span><span class="pun">,</span><span class="pln">
+                           </span><span class="str">"data"</span><span class="pun">:</span><span class="pln">getPublicURIForImage</span><span class="pun">(...)});</span><span class="pln">
+  navigator</span><span class="pun">.</span><span class="pln">startActivity</span><span class="pun">(</span><span class="pln">intent</span><span class="pun">);</span><span class="pln">
+</span><span class="pun">},</span><span class="pln"> </span><span class="kwd">false</span><span class="pun">);</span></pre></div>
       <p>
       This code delegates sharing functionality to an existing services chosen
       by the user which are capable of sharing urls.
@@ -596,47 +593,47 @@
       handle the incoming intent data, possibly producing a response. That is
       done like this:
       </p>
-      <pre class="example">&lt;html&gt;
-&lt;head&gt;
-&lt;title&gt;Image Meme Editor&lt;/title&gt;
-&lt;/head&gt;
-&lt;body&gt;
-&lt;intent action="http://webintents.org/edit" type="text/uri-list;type=image/* image/*"&gt;&lt;/intent&gt;
-&lt;script&gt;
-  window.addEventListener("load", function() {
-    if (window.intent) {
-      setImageContentURI(window.intent.data);
-    }
-  };
+      <div class="example"><div class="example-title"><span>Example 3</span></div><pre class="example highlight prettyprint"><span class="tag">&lt;html&gt;</span><span class="pln">
+</span><span class="tag">&lt;head&gt;</span><span class="pln">
+</span><span class="tag">&lt;title&gt;</span><span class="pln">Image Meme Editor</span><span class="tag">&lt;/title&gt;</span><span class="pln">
+</span><span class="tag">&lt;/head&gt;</span><span class="pln">
+</span><span class="tag">&lt;body&gt;</span><span class="pln">
+</span><span class="tag">&lt;intent</span><span class="pln"> </span><span class="atn">action</span><span class="pun">=</span><span class="atv">"http://webintents.org/edit"</span><span class="pln"> </span><span class="atn">type</span><span class="pun">=</span><span class="atv">"text/uri-list image/*"</span><span class="tag">&gt;&lt;/intent&gt;</span><span class="pln">
+</span><span class="tag">&lt;script&gt;</span><span class="pln">
+  window</span><span class="pun">.</span><span class="pln">addEventListener</span><span class="pun">(</span><span class="str">"load"</span><span class="pun">,</span><span class="pln"> </span><span class="kwd">function</span><span class="pun">()</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
+    </span><span class="kwd">if</span><span class="pln"> </span><span class="pun">(</span><span class="pln">window</span><span class="pun">.</span><span class="pln">intent</span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
+      setImageContentURI</span><span class="pun">(</span><span class="pln">window</span><span class="pun">.</span><span class="pln">intent</span><span class="pun">.</span><span class="pln">data</span><span class="pun">);</span><span class="pln">
+    </span><span class="pun">}</span><span class="pln">
+  </span><span class="pun">},</span><span class="pln"> </span><span class="kwd">false</span><span class="pun">);</span><span class="pln">
 
-  document.getElementById('save-button').addEventListener("click", function() {
-    window.intent.postResult(getImageDataURI(...));
-  };
-&lt;/script&gt;</pre>
+  document</span><span class="pun">.</span><span class="pln">getElementById</span><span class="pun">(</span><span class="str">'save-button'</span><span class="pun">).</span><span class="pln">addEventListener</span><span class="pun">(</span><span class="str">"click"</span><span class="pun">,</span><span class="pln"> </span><span class="kwd">function</span><span class="pun">()</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
+    window</span><span class="pun">.</span><span class="pln">intent</span><span class="pun">.</span><span class="pln">postResult</span><span class="pun">(</span><span class="pln">getImageDataURI</span><span class="pun">(...));</span><span class="pln">
+  </span><span class="pun">},</span><span class="pln"> </span><span class="kwd">false</span><span class="pun">);</span><span class="pln">
+</span><span class="tag">&lt;/script&gt;</span></pre></div>
       <p>
       The assumed pieces here (on both client and service pages) are functions
       which deal with the application's image display, for instance putting the
       image into a canvas and taking it back out again as a data URI. Or
       producing the public URI of the image on the site.
       </p>
-      </div>
+      </section>
 
-      <div id="normative-parts" class="section">
+      <section id="normative-parts">
       <h3><span class="secno">1.2 </span>Normative parts</h3>
       <p>
       The normative parts of this specification are the API Description and the
       User Agent Behavior section. All other parts are informative.
       </p>
-      </div>
-    </div>
+      </section>
+    </section>
 
-    <div id="terminology" class="section">
+    <section id="terminology">
       <!--OddPage--><h2><span class="secno">2. </span>Terminology</h2>
       <p>
         An <dfn id="dfn-intent">Intent</dfn> is an action with accompanying data, which is to be
         performed by a Service of the user's choosing.
       </p>
-      <div id="actors" class="section">
+      <section id="actors">
       <h3><span class="secno">2.1 </span>Actors</h3>
       <p>
         A web page which creates an Intent and invokes the User Agent with it
@@ -651,12 +648,12 @@
         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-and-services" class="section">
+      </section>
+      <section id="life-cycle-of-intents-and-services">
       <h3><span class="secno">2.2 </span>Life cycle of Intents and Services</h3>
       <p>
-        <dfn id="dfn-registration">Registration</dfn> is how a Service page informs the User Agent
-        that it is capable of handling Intents.
+        <dfn id="dfn-registration">Registration</dfn> is how a web page page informs the User Agent
+        that it (or another same-origin Service page) is capable of handling Intents.
       </p>
       <p>
         <dfn id="dfn-invocation">Invocation</dfn> refers to the API by which a Client page
@@ -680,13 +677,13 @@
       execution context. That Response is then returned to the calling Client in
       an asynchronous callback.
       </p>
-      </div>
-    </div>
+      </section>
+    </section>
     
-    <div id="api-description" class="section">
+    <section id="api-description">
     <!--OddPage--><h2><span class="secno">3. </span>API Description</h2>
 
-    <div id="intent-parameters-dictionary" class="section">
+    <section id="intent-parameters-dictionary">
     <h3><span class="secno">3.1 </span>Intent parameters dictionary</h3>
       <p>
       This object can be used in the object-literal constructor of the Intent
@@ -698,73 +695,57 @@
 <span class="idlMember">    <span class="idlMemberType"><a>DOMString</a></span>              <span class="idlMemberName"><a href="#widl-IntentParameters-type">type</a></span>;</span>
 <span class="idlMember">    <span class="idlMemberType"><a>any</a></span>                    <span class="idlMemberName"><a href="#widl-IntentParameters-data">data</a></span>;</span>
 <span class="idlMember">    <span class="idlMemberType">sequence&lt;<a>Transferable</a>&gt;</span> <span class="idlMemberName"><a href="#widl-IntentParameters-transfer">transfer</a></span>;</span>
-<span class="idlMember">    <span class="idlMemberType"><a>dictionary</a></span>             <span class="idlMemberName"><a href="#widl-IntentParameters-extras">extras</a></span>;</span>
 <span class="idlMember">    <span class="idlMemberType"><a>URL</a></span>                    <span class="idlMemberName"><a href="#widl-IntentParameters-service">service</a></span>;</span>
 <span class="idlMember">    <span class="idlMemberType">sequence&lt;<a>URL</a>&gt;</span>          <span class="idlMemberName"><a href="#widl-IntentParameters-suggestions">suggestions</a></span>;</span>
-};</span>
-</pre><div id="dictionary-intentparameters-members" class="section"><h4><span class="secno">3.1.1 </span>Dictionary <a class="idlType" href="#idl-def-IntentParameters"><code>IntentParameters</code></a> Members</h4><dl class="dictionary-members"><dt id="widl-IntentParameters-action"><code>action</code> of type <span class="idlMemberType"><a>DOMString</a></span></dt><dd>An opaque string indicating the action type of the intent. The
+};</span></pre><section id="dictionary-intentparameters-members"><h4><span class="secno">3.1.1 </span>Dictionary <a class="idlType" href="#idl-def-IntentParameters"><code>IntentParameters</code></a> Members</h4><dl class="dictionary-members"><dt id="widl-IntentParameters-action"><code>action</code> of type <span class="idlMemberType"><a>DOMString</a></span></dt><dd>An opaque string indicating the action type of the intent. The
         string <em class="rfc2119" title="must not">must not</em> be empty.</dd><dt id="widl-IntentParameters-data"><code>data</code> of type <span class="idlMemberType"><a>any</a></span></dt><dd>The data payload used <em class="rfc2119" title="must">must</em> be an object upon which the structured
-        clone algorithm can be performed, including Transferables.</dd><dt id="widl-IntentParameters-extras"><code>extras</code> of type <span class="idlMemberType"><a>dictionary</a></span></dt><dd>A key-value map of extra metadata to be sent with the intent. Keys
-        and values are strings.</dd><dt id="widl-IntentParameters-service"><code>service</code> of type <span class="idlMemberType"><a>URL</a></span></dt><dd>When present, this field marks the intent as an explicit intent. The
-        value <em class="rfc2119" title="must">must</em> be an absolute URL.</dd><dt id="widl-IntentParameters-suggestions"><code>suggestions</code> of type <span class="idlMemberType">sequence&lt;<a>URL</a>&gt;</span></dt><dd>When present, this field provides a list of (absolute) suggested Service URLs
-        of which the Client is aware and which can handle the intent.</dd><dt id="widl-IntentParameters-transfer"><code>transfer</code> of type <span class="idlMemberType">sequence&lt;<a>Transferable</a>&gt;</span></dt><dd>The list of Transferables, for use in the structured clone
+        clone algorithm can be performed, including Transferables.</dd><dt id="widl-IntentParameters-service"><code>service</code> of type <span class="idlMemberType"><a>URL</a></span></dt><dd>When present, this field marks the intent as an explicit intent. The
+        value <em class="rfc2119" title="must">must</em> be an absolute URL.</dd><dt id="widl-IntentParameters-suggestions"><code>suggestions</code> of type <span class="idlMemberType">sequence&lt;<a>URL</a>&gt;</span></dt><dd>When present, this field provides a list of suggested Service URLs,
+        each of which is an absolute URL that the Client is aware of and which
+        can handle the intent.</dd><dt id="widl-IntentParameters-transfer"><code>transfer</code> of type <span class="idlMemberType">sequence&lt;<a>Transferable</a>&gt;</span></dt><dd>The list of Transferables, for use in the structured clone
         algorithm.</dd><dt id="widl-IntentParameters-type"><code>type</code> of type <span class="idlMemberType"><a>DOMString</a></span></dt><dd>A string indicating the type of the data payload. The data payload
-        <em class="rfc2119" title="must">must</em> be described by this parameter, which <em class="rfc2119" title="must not">must not</em> be empty.</dd></dl></div>
-    </div>
-    <div id="intent-object" class="section">
+        <em class="rfc2119" title="must">must</em> be described by this parameter, which <em class="rfc2119" title="must not">must not</em> be empty.</dd></dl></section>
+    </section>
+    <section id="intent-object">
     <h3><span class="secno">3.2 </span>Intent object</h3>
       <p>
       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.
+      handled by Services. A Client page may invoke multiple Intents simultaneously.
+      Specific Intent objects are immutable once created.
       </p>
 
-      <pre class="idl"><span class="idlInterface" id="idl-def-Intent">[<span class="extAttr">Constructor(IntentParameters params)<br> Constructor(string action, string type, optional any data, optional sequence&lt;Transferable&gt; transferList) raises DOMException</span>]
+      <pre class="idl"><span class="idlInterface" id="idl-def-Intent">[<span class="extAttr">Constructor(IntentParameters params),<br> Constructor(DOMString action, DOMString type, optional any data, optional sequence&lt;Transferable&gt; transferList)</span>]
 interface <span class="idlInterfaceID">Intent</span> {
 <span class="idlAttribute">    readonly attribute <span class="idlAttrType"><a>DOMString</a></span>     <span class="idlAttrName"><a href="#widl-Intent-action">action</a></span>;</span>
 <span class="idlAttribute">    readonly attribute <span class="idlAttrType"><a>DOMString</a></span>     <span class="idlAttrName"><a href="#widl-Intent-type">type</a></span>;</span>
 <span class="idlAttribute">    readonly attribute <span class="idlAttrType"><a>any</a></span>           <span class="idlAttrName"><a href="#widl-Intent-data">data</a></span>;</span>
 <span class="idlAttribute">    readonly attribute <span class="idlAttrType"><a>MessagePort</a>[]</span> <span class="idlAttrName"><a href="#widl-Intent-ports">ports</a></span>;</span>
-<span class="idlMethod">    <span class="idlMethType"><a>string</a></span> <span class="idlMethName"><a href="#widl-Intent-getExtra-string-DOMString-key">getExtra</a></span> (<span class="idlParam"><span class="idlParamType"><a>DOMString</a></span> <span class="idlParamName">key</span></span>);</span>
-<span class="idlMethod">    <span class="idlMethType"><a>void</a></span>   <span class="idlMethName"><a href="#widl-Intent-postResult-void-any-data--sequence-Transferable">postResult</a></span> (<span class="idlParam"><span class="idlParamType"><a>any</a></span> <span class="idlParamName">data</span></span>, <span class="idlParam">optional <span class="idlParamType"><a></a></span> <span class="idlParamName">sequence<transferable></transferable></span></span>);</span>
-<span class="idlMethod">    <span class="idlMethType"><a>void</a></span>   <span class="idlMethName"><a href="#widl-Intent-postFailure-void-any-data">postFailure</a></span> (<span class="idlParam"><span class="idlParamType"><a>any</a></span> <span class="idlParamName">data</span></span>);</span>
-};</span>
-</pre><div id="attributes" class="section"><h4><span class="secno">3.2.1 </span>Attributes</h4><dl class="attributes"><dt id="widl-Intent-action"><code>action</code> of type <span class="idlAttrType"><a>DOMString</a></span>, readonly</dt><dd>This is an opaque string. Chosen strings <em class="rfc2119" title="should">should</em> be namespaced by a
+<span class="idlMethod">    <span class="idlMethType"><a>void</a></span> <span class="idlMethName"><a href="#widl-Intent-postResult-void-any-data-sequence-Transferable--transferable">postResult</a></span> (<span class="idlParam"><span class="idlParamType"><a>any</a></span> <span class="idlParamName">data</span></span>, <span class="idlParam">optional <span class="idlParamType">sequence&lt;<a>Transferable</a>&gt;</span> <span class="idlParamName">transferable</span></span>);</span>
+<span class="idlMethod">    <span class="idlMethType"><a>void</a></span> <span class="idlMethName"><a href="#widl-Intent-postFailure-void-any-data">postFailure</a></span> (<span class="idlParam"><span class="idlParamType"><a>any</a></span> <span class="idlParamName">data</span></span>);</span>
+};</span></pre><section id="attributes"><h4><span class="secno">3.2.1 </span>Attributes</h4><dl class="attributes"><dt id="widl-Intent-action"><code>action</code> of type <span class="idlAttrType"><a>DOMString</a></span>, readonly</dt><dd>This is an opaque string. Chosen strings <em class="rfc2119" title="should">should</em> be namespaced by a
         URL namespace convention. The string <em class="rfc2119" title="must not">must not</em> be empty, or the
         constructor <em class="rfc2119" title="must">must</em> throw an exception.</dd><dt id="widl-Intent-data"><code>data</code> of type <span class="idlAttrType"><a>any</a></span>, readonly</dt><dd>The object used <em class="rfc2119" title="must">must</em> be an object upon which the structured clone
         algorithm can be performed, including Transferables, or the constructor <em class="rfc2119" title="must">must</em>
         throw an exception.</dd><dt id="widl-Intent-ports"><code>ports</code> of type array of <span class="idlAttrType"><a>MessagePort</a></span>, readonly</dt><dd><b>Only present when the Intent object is delivered to the Service
-          page.</b> Any ports used in the |transferList| of the constructor during invocation will be
-        delivered to the service page in the |ports| attribute. See
-        [<cite><a class="bibref" rel="biblioentry" href="#bib-POSTMSG">POSTMSG</a></cite>]</dd><dt id="widl-Intent-type"><code>type</code> of type <span class="idlAttrType"><a>DOMString</a></span>, readonly</dt><dd>The data payload <em class="rfc2119" title="must">must</em> be described by the type parameter.
+          page.</b> Any ports used in the <code>transferList</code> of the constructor during invocation will be
+        delivered to the service page in the <code>ports</code> attribute. See
+        [<cite><a class="bibref" href="#bib-POSTMSG">POSTMSG</a></cite>]</dd><dt id="widl-Intent-type"><code>type</code> of type <span class="idlAttrType"><a>DOMString</a></span>, readonly</dt><dd>The data payload <em class="rfc2119" title="must">must</em> be described by the type parameter.
         Recommended type strings are MIME strings or self-documenting urls. The
-        string <em class="rfc2119" title="must not">must not</em> be empty, or the constructor <em class="rfc2119" title="must">must</em> throw an exception.</dd></dl></div><div id="methods" class="section"><h4><span class="secno">3.2.2 </span>Methods</h4><dl class="methods"><dt id="widl-Intent-getExtra-string-DOMString-key"><code>getExtra</code></dt><dd>Retrieves the value (if any) from the extra data dictionary this
-        intent was constructed with.<table class="parameters"><tr><th>Parameter</th><th>Type</th><th>Nullable</th><th>Optional</th><th>Description</th></tr><tr><td class="prmName">key</td><td class="prmType"><code><a>DOMString</a></code></td><td class="prmNullFalse">✘</td><td class="prmOptFalse">✘</td><td class="prmDesc"></td></tr></table><div><em>Return type: </em><code><a>string</a></code></div></dd><dt id="widl-Intent-postFailure-void-any-data"><code>postFailure</code></dt><dd><b>Only present when the Intent object is delivered to the Service
-          page.</b> The payload passed to this method will be returned to the onFailure
-        callback registered by the client page in the startActivity call (if any).
-        The playload must be an object upon which the structured clone algorithm
-        can be performed, including Transferables. [<cite><a class="bibref" rel="biblioentry" href="#bib-HTML5">HTML5</a></cite>]<table class="parameters"><tr><th>Parameter</th><th>Type</th><th>Nullable</th><th>Optional</th><th>Description</th></tr><tr><td class="prmName">data</td><td class="prmType"><code><a>any</a></code></td><td class="prmNullFalse">✘</td><td class="prmOptFalse">✘</td><td class="prmDesc"></td></tr></table><div><em>Return type: </em><code><a>void</a></code></div></dd><dt id="widl-Intent-postResult-void-any-data--sequence-Transferable"><code>postResult</code></dt><dd><b>Only present when the Intent object is delivered to the
-          Service page.</b> The payload passed to this method will be returned to the onSuccess
-        callback registered by the client page in the startActivity call (if any).
-        The payload must be an object upon which the structured clone algorithm can be
-        performed. The Transferables array, if present, will specify
-        transferable elements in the |data| payload argument, as per
-        [<cite><a class="bibref" rel="biblioentry" href="#bib-HTML5">HTML5</a></cite>] [<cite><a class="bibref" rel="biblioentry" href="#bib-POSTMSG">POSTMSG</a></cite>]<table class="parameters"><tr><th>Parameter</th><th>Type</th><th>Nullable</th><th>Optional</th><th>Description</th></tr><tr><td class="prmName">data</td><td class="prmType"><code><a>any</a></code></td><td class="prmNullFalse">✘</td><td class="prmOptFalse">✘</td><td class="prmDesc"></td></tr><tr><td class="prmName">sequence&lt;Transferable&gt;</td><td class="prmType"><code><a></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>
+        string <em class="rfc2119" title="must not">must not</em> be empty, or the constructor <em class="rfc2119" title="must">must</em> throw an exception.</dd></dl></section>
       <p>
       Notes on the intent object: The transferList parameter is not available
       post-creation. It becomes an internal implementation detail directing the
-      User Agent to interpret some fields of the |data| argument as Transferable. The
-      |data| and |transferList| arguments <em class="rfc2119" title="must">must</em> be implemented following the <acronym title="World Wide Web Consortium">W3C</acronym>
-      Web Messaging spec [[!http://dev.w3.org/html5/postmsg/]].
+      User Agent to interpret some fields of the <code>data</code> argument as Transferable. The
+      <code>data</code> and <code>transferList</code> arguments <em class="rfc2119" title="must">must</em> be implemented following the <abbr title="World Wide Web Consortium">W3C</abbr>
+      Web Messaging spec [<cite><a class="bibref" href="#bib-POSTMSG">POSTMSG</a></cite>].
       </p>
       <p>
       The User Agent <em class="rfc2119" title="must">must</em> perform the structured clone algorithm on creation
       of the Intent object.
       </p>
-    </div>
+    </section>
 
-    <div id="invocation-api" class="section">
+    <section id="invocation-api">
     <h3><span class="secno">3.3 </span>Invocation API</h3>
     <p>
     The client invokes an intent by constructing an Intent object as above and calling
@@ -776,9 +757,8 @@
     </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
+<span class="idlMethod">    <span class="idlMethType"><a>void</a></span> <span class="idlMethName"><a href="#widl-Intents-startActivity-void-Intent-intent-IntentSuccessCallback-onSuccess-optional-IntentFailureCallback-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 href="#idl-def-IntentSuccessCallback" class="idlType"><code>IntentSuccessCallback</code></a></span> <span class="idlParamName">onSuccess</span></span>, <span class="idlParam">optional <span class="idlParamType"><a>optional IntentFailureCallback</a></span> <span class="idlParamName">onFailure</span></span>);</span>
+};</span></pre><section id="methods"><h4><span class="secno">3.3.1 </span>Methods</h4><dl class="methods"><dt id="widl-Intents-startActivity-void-Intent-intent-IntentSuccessCallback-onSuccess-optional-IntentFailureCallback-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
@@ -790,38 +770,33 @@
       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
+      An exception <em class="rfc2119" title="should">should</em> be thrown if the Intent is invalid (i.e. <code>null</code>), 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>
+      <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 href="#idl-def-IntentSuccessCallback" class="idlType"><code>IntentSuccessCallback</code></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>optional IntentFailureCallback</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></section>
     <p>
     The invocation API is implemented by the <code>window.navigator</code> object.
     </p>
     <pre class="idl"><span class="idlImplements"><a>Navigator</a> implements <a href="#idl-def-Intents" class="idlType"><code>Intents</code></a>;</span></pre><div class="idlImplementsDesc"><p>All instances of the <code><a>Navigator</a></code> type are defined to also implement the <a href="#idl-def-Intents" class="idlType"><code>Intents</code></a> interface.</p></div>
 
-    <div class="section">
+    <section>
     <p>The callbacks passed to startActivity <em class="rfc2119" title="must">must</em> provide these signatures:</p>
 
-    <pre class="idl"><span class="idlInterface" id="idl-def-IntentSuccessCallback">[<span class="extAttr">NoInterfaceObject</span>]
-interface <span class="idlInterfaceID">IntentSuccessCallback</span> {
-<span class="idlMethod">    <span class="idlMethType"><a>void</a></span> <span class="idlMethName"><a href="#widl-IntentSuccessCallback-onSuccess-void-any-data-MessagePortArray-ports">onSuccess</a></span> (<span class="idlParam">optional <span class="idlParamType"><a>any</a></span> <span class="idlParamName">data</span></span>, <span class="idlParam">optional <span class="idlParamType"><a>MessagePort</a>[]</span> <span class="idlParamName">ports</span></span>);</span>
-};</span>
-</pre><div class="section"><h5 id="methods-2">Methods</h5><dl class="methods"><dt id="widl-IntentSuccessCallback-onSuccess-void-any-data-MessagePortArray-ports"><code>onSuccess</code></dt><dd>The |data| passed will be the payload data from the structured
-      cloneable object passed to the postResult method of the delivered Intent.
-      The |ports| will be any ports in the payload, as resulting from the structured
-      clone algorithm with Transferables, as in the Web Messaging spec.
-      [<cite><a class="bibref" rel="biblioentry" href="#bib-POSTMSG">POSTMSG</a></cite>]
-    <table class="parameters"><tr><th>Parameter</th><th>Type</th><th>Nullable</th><th>Optional</th><th>Description</th></tr><tr><td class="prmName">data</td><td class="prmType"><code><a>any</a></code></td><td class="prmNullFalse">✘</td><td class="prmOptTrue">✔</td><td class="prmDesc"></td></tr><tr><td class="prmName">ports</td><td class="prmType"><code><a>MessagePort</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>
+    <pre class="idl"><span class="idlCallback" id="idl-def-IntentSuccessCallback">callback <span class="idlCallbackID">IntentSuccessCallback</span> = <span class="idlCallbackType"><a>void</a></span> (<span class="idlParam">optional <span class="idlParamType"><a>any</a></span> <span class="idlParamName">data</span></span>, <span class="idlParam">optional <span class="idlParamType"><a>MessagePort</a>[]</span> <span class="idlParamName">ports</span></span>);</span></pre><section><h5 id="callback-intentsuccesscallback-parameters">Callback <a class="idlType" href="#idl-def-IntentSuccessCallback"><code>IntentSuccessCallback</code></a> Parameters</h5><dl class="callback-members"><dt id="widl-IntentSuccessCallback-data"><code>data</code> of type <span class="idlMemberType"><a>any</a></span></dt><dd>
+        The <code>data</code> passed will be the payload data from the structured
+        cloneable object passed to the postResult method of the delivered Intent.
+      </dd><dt id="widl-IntentSuccessCallback-ports"><code>ports</code> of type array of <span class="idlMemberType"><a>MessagePort</a></span></dt><dd>
+        The <code>ports</code> will be any ports in the payload, as resulting from the structured
+        clone algorithm with Transferables, as in the Web Messaging spec.
+        [<cite><a class="bibref" href="#bib-POSTMSG">POSTMSG</a></cite>]
+      </dd></dl></section>
 
-    <pre class="idl"><span class="idlInterface" id="idl-def-IntentFailureCallback">interface <span class="idlInterfaceID">IntentFailureCallback</span> {
-<span class="idlMethod">    <span class="idlMethType"><a>void</a></span> <span class="idlMethName"><a href="#widl-IntentFailureCallback-onFailure-void-any-data">onFailure</a></span> (<span class="idlParam">optional <span class="idlParamType"><a>any</a></span> <span class="idlParamName">data</span></span>);</span>
-};</span>
-</pre><div class="section"><h5 id="methods-3">Methods</h5><dl class="methods"><dt id="widl-IntentFailureCallback-onFailure-void-any-data"><code>onFailure</code></dt><dd>The |data| passed will be the payload data passed to  the postFailure
-      method of the delivered Intent.<table class="parameters"><tr><th>Parameter</th><th>Type</th><th>Nullable</th><th>Optional</th><th>Description</th></tr><tr><td class="prmName">data</td><td class="prmType"><code><a>any</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>
-    </div>
+    <pre class="idl"><span class="idlCallback" id="idl-def-IntentFailureCallback">callback <span class="idlCallbackID">IntentFailureCallback</span> = <span class="idlCallbackType"><a>void</a></span> (<span class="idlParam">optional <span class="idlParamType"><a>any</a></span> <span class="idlParamName">data</span></span>);</span></pre><section><h5 id="callback-intentfailurecallback-parameters">Callback <a class="idlType" href="#idl-def-IntentFailureCallback"><code>IntentFailureCallback</code></a> Parameters</h5><dl class="callback-members"><dt id="widl-IntentFailureCallback-data"><code>data</code> of type <span class="idlMemberType"><a>any</a></span></dt><dd>The <code>data</code> passed will be the payload data passed to  the postFailure
+      method of the delivered Intent.</dd></dl></section>
+    </section>
 
-    </div>
+    </section>
 
-    <div id="delivery-and-response-api" class="section">
+    <section id="delivery-and-response-api">
     <h3><span class="secno">3.4 </span>Delivery and Response API</h3>
     <p>
     When the User Agent loads a Service page to handle an Intent invocation, it
@@ -831,20 +806,19 @@
     <pre class="idl"><span class="idlInterface" id="idl-def-IntentProvider">[<span class="extAttr">NoInterfaceObject</span>]
 interface <span class="idlInterfaceID">IntentProvider</span> {
 <span class="idlAttribute">    readonly attribute <span class="idlAttrType"><a href="#idl-def-Intent" class="idlType"><code>Intent</code></a></span> <span class="idlAttrName"><a href="#widl-IntentProvider-intent">intent</a></span>;</span>
-};</span>
-</pre><div id="attributes-1" class="section"><h4><span class="secno">3.4.1 </span>Attributes</h4><dl class="attributes"><dt id="widl-IntentProvider-intent"><code>intent</code> of type <span class="idlAttrType"><a href="#idl-def-Intent" class="idlType"><code>Intent</code></a></span>, readonly</dt><dd>The intent object as delivered to the service page (includes
-      postResult and postFailure methods).</dd></dl></div>
+};</span></pre><section id="attributes-1"><h4><span class="secno">3.4.1 </span>Attributes</h4><dl class="attributes"><dt id="widl-IntentProvider-intent"><code>intent</code> of type <span class="idlAttrType"><a href="#idl-def-Intent" class="idlType"><code>Intent</code></a></span>, readonly</dt><dd>The intent object as delivered to the service page (includes
+      postResult and postFailure methods).</dd></dl></section>
     <pre class="idl"><span class="idlImplements"><a>Window</a> implements <a href="#idl-def-IntentProvider" class="idlType"><code>IntentProvider</code></a>;</span></pre><div class="idlImplementsDesc"><p>All instances of the <code><a>Window</a></code> type are defined to also implement the <a href="#idl-def-IntentProvider" class="idlType"><code>IntentProvider</code></a> interface.</p></div>
 
     <p>
     This object will only be made available to Service pages when they are
     loaded in the context of an intent invocation. Even if the same URL is
     loaded in other situations, the User Agent <em class="rfc2119" title="must not">must not</em> make
-    <code>Window</code> implement <code>IntentProvider</code>. Similarly, if
+    <code>Window</code> implement <a href="#idl-def-IntentProvider" class="idlType"><code>IntentProvider</code></a>. Similarly, if
     a Service page is registered, but the User Agent loads it and it does not
     contain the declarative markup marking it as expecting to handle the Intent
     the User Agent is delivering, the User Agent <em class="rfc2119" title="must not">must not</em> make
-    <code>Window</code> implement <code>IntentProvider</code>.
+    <code>Window</code> implement <a href="#idl-def-IntentProvider" class="idlType"><code>IntentProvider</code></a>.
     </p>
     <p>
     The <code>window.intent</code> object <em class="rfc2119" title="must">must</em> be made available across
@@ -884,12 +858,12 @@
     and so forth, but does not make the Intent data available to any such pages encountered which
     are not in the same origin.
     </p>
-    </div>
+    </section>
 
-    <div id="registration-markup" class="section">
+    <section id="registration-markup">
     <h3><span class="secno">3.5 </span>Registration Markup</h3>
     <p>
-    Service pages declaratively mark themselves (or other same-origin pages)
+    Web pages declaratively mark themselves (or other same-origin Service pages)
     as providing handling functionality for particular intent actions and types
     using the <code>&lt;intent&gt;</code> tag.
     A User Agent <em class="rfc2119" title="must not">must not</em> deliver an Intent to a web app service page which
@@ -898,33 +872,32 @@
     delivery).
     </p>
     <pre class="idl"><span class="idlInterface" id="idl-def-HTMLIntentElement">interface <span class="idlInterfaceID">HTMLIntentElement</span> : <span class="idlSuperclass"><a>HTMLElement</a></span> {
-<span class="idlAttribute">    attribute <span class="idlAttrType"><a>string</a></span> <span class="idlAttrName"><a href="#widl-HTMLIntentElement-action">action</a></span>;</span>
-<span class="idlAttribute">    attribute <span class="idlAttrType"><a>string</a></span> <span class="idlAttrName"><a href="#widl-HTMLIntentElement-type">type</a></span>;</span>
-<span class="idlAttribute">    attribute <span class="idlAttrType"><a>string</a></span> <span class="idlAttrName"><a href="#widl-HTMLIntentElement-href">href</a></span>;</span>
-<span class="idlAttribute">    attribute <span class="idlAttrType"><a>string</a></span> <span class="idlAttrName"><a href="#widl-HTMLIntentElement-title">title</a></span>;</span>
-<span class="idlAttribute">    attribute <span class="idlAttrType"><a>string</a></span> <span class="idlAttrName"><a href="#widl-HTMLIntentElement-disposition">disposition</a></span>;</span>
-};</span>
-</pre><div id="attributes-2" class="section"><h4><span class="secno">3.5.1 </span>Attributes</h4><dl class="attributes"><dt id="widl-HTMLIntentElement-action"><code>action</code> of type <span class="idlAttrType"><a>string</a></span></dt><dd>An opaque string indicating the behavior class the service supports.
+<span class="idlAttribute">             attribute <span class="idlAttrType"><a>DOMString</a></span> <span class="idlAttrName"><a href="#widl-HTMLIntentElement-action">action</a></span>;</span>
+<span class="idlAttribute">             attribute <span class="idlAttrType"><a>DOMString</a></span> <span class="idlAttrName"><a href="#widl-HTMLIntentElement-type">type</a></span>;</span>
+<span class="idlAttribute">             attribute <span class="idlAttrType"><a>DOMString</a></span> <span class="idlAttrName"><a href="#widl-HTMLIntentElement-href">href</a></span>;</span>
+<span class="idlAttribute">             attribute <span class="idlAttrType"><a>DOMString</a></span> <span class="idlAttrName"><a href="#widl-HTMLIntentElement-title">title</a></span>;</span>
+<span class="idlAttribute">             attribute <span class="idlAttrType"><a>DOMString</a></span> <span class="idlAttrName"><a href="#widl-HTMLIntentElement-disposition">disposition</a></span>;</span>
+};</span></pre><section id="attributes-2"><h4><span class="secno">3.5.1 </span>Attributes</h4><dl class="attributes"><dt id="widl-HTMLIntentElement-action"><code>action</code> of type <span class="idlAttrType"><a>DOMString</a></span></dt><dd>An opaque string indicating the behavior class the service supports.
       It is recommended that users use a fully qualified URI.
       If the <code>action</code> attribute is missing, the intent Service is
       assumed to handle display of the provided type(s) in the <code>type</code>
-      attributes.</dd><dt id="widl-HTMLIntentElement-disposition"><code>disposition</code> of type <span class="idlAttrType"><a>string</a></span></dt><dd>The <code>disposition</code> attribute allows a service to choose which
+      attributes.</dd><dt id="widl-HTMLIntentElement-disposition"><code>disposition</code> of type <span class="idlAttrType"><a>DOMString</a></span></dt><dd>The <code>disposition</code> attribute allows a service to choose which
       context to be opened in. The User Agent <em class="rfc2119" title="must not">must not</em> allow the Client page any
       ability to change the disposition. The <code>window</code> disposition means
       that the service is opened in a new tab or window context. The
       <code>inline</code> disposition means that the User Agent <em class="rfc2119" title="should">should</em> open the
       service in a context directly related to the client page context in an
       overlappable way. The User Agent <em class="rfc2119" title="must not">must not</em> allow this UI surface to be
-      under the control of the client page.</dd><dt id="widl-HTMLIntentElement-href"><code>href</code> of type <span class="idlAttrType"><a>string</a></span></dt><dd>Should be a fully qualified URI. If the <code>href</code> attribute
+      under the control of the client page.</dd><dt id="widl-HTMLIntentElement-href"><code>href</code> of type <span class="idlAttrType"><a>DOMString</a></span></dt><dd>Should be a fully qualified URI. If the <code>href</code> attribute
       is missing, the service URI will be set to the URI in which the tag is
-      found.</dd><dt id="widl-HTMLIntentElement-title"><code>title</code> of type <span class="idlAttrType"><a>string</a></span></dt><dd>A human-readable title which the User Agent <em class="rfc2119" title="should">should</em> use to indicate the
+      found.</dd><dt id="widl-HTMLIntentElement-title"><code>title</code> of type <span class="idlAttrType"><a>DOMString</a></span></dt><dd>A human-readable title which the User Agent <em class="rfc2119" title="should">should</em> use to indicate the
       service to the user. If the <code>title</code> attribute is missing, the User Agent <em class="rfc2119" title="should">should</em>
-      use the title of the registered Service page as the service title.</dd><dt id="widl-HTMLIntentElement-type"><code>type</code> of type <span class="idlAttrType"><a>string</a></span></dt><dd>A string specifying the type of payload data the service can
+      use the title of the registered Service page as the service title.</dd><dt id="widl-HTMLIntentElement-type"><code>type</code> of type <span class="idlAttrType"><a>DOMString</a></span></dt><dd>A string specifying the type of payload data the service can
       accept. Must be a space separated list of type specifiers. If these parse
       as MIME types, or the MIME wildcard types "*/*" or "*", they will be
       interpreted as such (see the section on matching action and type for delivery).
       If not, they will be interpreted as string literal type specifiers. Empty
-      type attributes are not valid registrations.</dd></dl></div>
+      type attributes are not valid registrations.</dd></dl></section>
     <p>
     <i>This section should not be construed as limiting the ability of the User
     Agent to manage registration of non-web services. That is, the User Agent
@@ -933,7 +906,7 @@
     register and unregister with the User Agent with the
     <code>&lt;intent&gt;</code> tag.</i>
     </p>
-    <h4 id="same-origin-registration">Same-origin registration</h4>
+    <h3 id="same-origin-registration">Same-origin registration</h3>
     <p>
     The User Agent <em class="rfc2119" title="must not">must not</em> obey any registration markup which is not
     same-origin. That is, a page may only register <code>href</code> attributes
@@ -950,7 +923,7 @@
     <p>
     The User Agent <em class="rfc2119" title="should">should</em> 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
+    markup specified no intent capability on the <code>href</code> page. That is, a page may
     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 <em class="rfc2119" title="should">should</em>
@@ -966,7 +939,7 @@
     <h4 id="http-error-codes-on-service-pages">HTTP Error Codes on Service Pages</h4>
     <p>
     If a registered service page is retrieved and has a non-20x error code
-    [<cite><a class="bibref" rel="biblioentry" href="#bib-HTTP11">HTTP11</a></cite>], the User Agent <em class="rfc2119" title="should">should</em> take the following actions:</p>
+    [<cite><a class="bibref" href="#bib-HTTP11">HTTP11</a></cite>], the User Agent <em class="rfc2119" title="should">should</em> take the following actions:</p>
     <p>
     30x: redirect to the indicated page. If the page is on-domain, and has
     intent markup, the intent will be re-delivered. If the redirect is permanent
@@ -983,11 +956,11 @@
     50x: indicate to the user that the page cannot be loaded.
     </p>
     <p></p>
-    </div>
+    </section>
 
-    </div>
+    </section>
 
-    <div id="user-agent-behavior" class="section">
+    <section id="user-agent-behavior">
       <!--OddPage--><h2><span class="secno">4. </span>User Agent Behavior</h2>
       <p>
       When the User Agent loads a page with registration markup, it <em class="rfc2119" title="should">should</em> allow
@@ -1062,41 +1035,35 @@
       <p>
       The User Agent <em class="rfc2119" title="should">should</em> allow any serializable and/or Transferable object
       to be passed between client to service and back from service to client.
-      This includes Blobs [<cite><a class="bibref" rel="biblioentry" href="#bib-BLOB">BLOB</a></cite>], MessagePorts, etc. The User Agent <em class="rfc2119" title="may">may</em> inspect
+      This includes Blobs [<cite><a class="bibref" href="#bib-BLOB">BLOB</a></cite>], MessagePorts, etc. The User Agent <em class="rfc2119" title="may">may</em> inspect
       the payload of intents and present specialized UI corresponding to
-      well-known intent types. The User Agent <em class="rfc2119" title="must not">must not</em> categorically prohibit
+      well-known intent types. As an example, the User Agent may present
+      specialized messaging to the user indicating that an intent is of the
+      "share" type, or that the Client is asking them to pick an image.
+      </p>
+      <p>
+      The User Agent <em class="rfc2119" title="may">may</em> act as a Client or a Service. For example, the User
+      Agent may implement particular affordances which directly launch Intents
+      that may be handled by registered Services, or present UI allowing its own
+      functionality to be used alongside other registered Services to handle
+      Intents. For instance, User Agents <em class="rfc2119" title="may">may</em> also dispatch intents directly based
+      on data-specific controls derived from microdata in pages, or based on other
+      User Agent-level features.
+      </p>
+      <p>
+      The User Agent <em class="rfc2119" title="must not">must not</em> categorically prohibit
       dispatch of unknown intent types.  This is not meant to prohibit the User
       Agent from performing filtering functions on intents, such as suppressing
       unwanted intent invocations, intents as used as an attack vector, and
       other mis-use.
       </p>
       <p>
-      In the same way User Agents <em class="rfc2119" title="may">may</em> dispatch Intents triggered by non-web
-      mechanisms to web applications, User Agents <em class="rfc2119" title="may">may</em> dispatch intents invoked by
-      web applications to handlers which are not web applications. In those
-      cases, the User Agent <em class="rfc2119" title="should">should</em> provide a public API mechanism for external
-      connection to the intent dispatch mechanism selected. For example, the
-      User Agent may be able to run an Operating System command in
-      response to an intent. The User Agent could provide a configuration
-      interface such that the user can install handler applications, and a
-      documented format in which intent payload data is translated to that
-      application. In these cases, the requirement that User Agents pass
-      any serializable object is relaxed for some kinds of handlers.
-      </p>
-      <p>
-      User Agents <em class="rfc2119" title="may">may</em> also dispatch intents directly based on data-specific controls
-      derived from microdata in pages, or based on other User Agent-level
-      features. For instance, if the user has services registered which handle
-      text/vcard, then the User Agent may provide the user with a way to invoke
-      particular intents that consume such data as it detects it in web pages.
-      </p>
-      <p>
       If the user has no services registered for a particular type of intent,
       the User Agent <em class="rfc2119" title="may">may</em> display options from other sources of data about
       services it knows can handle that intent type so that the user can
       complete the activity.
       </p>
-      <div id="explicit-intents" class="section">
+      <section id="explicit-intents">
       <h3><span class="secno">4.1 </span>Explicit Intents</h3>
       <p>
       When handling an Intent marked as explicit (that is, constructed with the
@@ -1120,9 +1087,9 @@
       The User Agent <em class="rfc2119" title="may">may</em> ask the user if they wish to install this service,
       just like for any other visit of the page.
       </p>
-      </div>
+      </section>
 
-      <div id="matching-action-and-type-for-delivery" class="section">
+      <section id="matching-action-and-type-for-delivery">
       <h3><span class="secno">4.2 </span>Matching action and type for delivery</h3>
       <p>
       When an Intent is delivered, the User Agent must verify that the Service to
@@ -1130,9 +1097,9 @@
       the result of a user selection) has a registration record supporting the
       action and type of the Intent being delivered by following these steps:
       </p><ol>
-        <li>Let <i>intent action</i> be the action field of the invoked
+        <li>Let <var>intent action</var> be the action field of the invoked
         intent.</li>
-        <li>Let <i>intent type</i> be the type field of the invoked
+        <li>Let <var>intent type</var> be the type field of the invoked
         intent.</li>
         <li>For every distinguishable registration (that is, having unique
         action/type fields) present for the Service page, follow these steps:
@@ -1140,31 +1107,31 @@
           <li>When comparing field values, "different from" means that the strings
           under comparison represent different sequences of code points.</li>
           <li>When considering whether a field value is a MIME type, it is
-          considered so if it parses as a valid MIME type [<cite><a class="bibref" rel="biblioentry" href="#bib-RFC2046">RFC2046</a></cite>], or is
+          considered so if it parses as a valid MIME type [<cite><a class="bibref" href="#bib-RFC2046">RFC2046</a></cite>], or is
           equal to the MIME wildcard strings "*" or "*/*".</li>
-          <li>Let <i>service action</i> be the value of the action field of the
+          <li>Let <var>service action</var> be the value of the action field of the
           service registration.</li>
-          <li>Let <i>service type</i> be the value of the type field of the
+          <li>Let <var>service type</var> be the value of the type field of the
           service registration.</li>
-          <li>If the <i>service type</i> or <i>service action</i> is empty,
+          <li>If the <var>service type</var> or <var>service action</var> is empty,
           the registration record is invalid. Continue to the next
           registration record.</li>
-          <li>If the <i>intent action</i> is different from the <i>service
-            action</i>, continue to the next registration record.
-          </li><li>If the <i>intent type</i> is a MIME type, and the <i>service
-            type</i> is not, continue to the next registration record.
-          </li><li>If the <i>service type</i> is a MIME type, and the <i>intent
-            type</i> is not, continue to the next registration record.
-          </li><li>If both <i>service type</i> and <i>action type</i> are MIME types,
+          <li>If the <var>intent action</var> is different from the <var>service
+            action</var>, continue to the next registration record.
+          </li><li>If the <var>intent type</var> is a MIME type, and the <var>service
+            type</var> is not, continue to the next registration record.
+          </li><li>If the <var>service type</var> is a MIME type, and the <var>intent
+            type</var> is not, continue to the next registration record.
+          </li><li>If both <var>service type</var> and <var>intent type</var> are MIME types,
           then check whether the MIME specifiers overlap. This is true if the
           top-level and sublevel types match exactly, or if one or both are represented
           by the MIME wild card ("*"). If any MIME parameters are present in the
-          <i>service type</i> or the <i>action type</i>, they must be present in
+          <var>service type</var> or the <var>intent type</var>, they must be present in
           both and match exactly. A MIME parameter present in only one of
-          <i>service type</i> and <i>action type</i> does not disqualify the
-          match. If the MIME types do not overlap, continue fo the next
+          <var>service type</var> and <var>intent type</var> does not disqualify the
+          match. If the MIME types do not overlap, continue to the next
           registration record.</li>
-          <li>If neither <i>service type</i> nor <i>action type</i> are MIME types,
+          <li>If neither <var>service type</var> nor <var>intent type</var> are MIME types,
           then if they are different, continue to the next registration
           record.</li>
         </ol>
@@ -1172,9 +1139,9 @@
         page, the Intent <em class="rfc2119" title="must not">must not</em> be delivered. If any satisfying match is
         found, the Intent <em class="rfc2119" title="must">must</em> be delivered to the Service page.</li>
       </ol>
-      </div>
+      </section>
 
-      <div id="handling-service-suggestions-from-intent-invocation" class="section">
+      <section id="handling-service-suggestions-from-intent-invocation">
       <h3><span class="secno">4.3 </span>Handling Service suggestions from Intent Invocation</h3>
       <p>
       If the user has no persistent information about a qualifying service
@@ -1197,13 +1164,13 @@
       and type for delivery" section before delivering
       the Intent to a suggested service, just as for any Intent delivery.
       </p>
-      </div>
+      </section>
 
-    </div>
+    </section>
 
-    <div id="use-cases-and-requirements" class="section">
+    <section id="use-cases-and-requirements">
       <!--OddPage--><h2><span class="secno">5. </span>Use Cases and Requirements</h2>
-      <div id="sharing" class="section">
+      <section id="sharing">
         <h3><span class="secno">5.1 </span>Sharing</h3>
         <p>
         Web Intents should be useful to enable users to share content as they
@@ -1213,14 +1180,14 @@
         or particular content on the page. The user should be able to select the
         sharing application of choice to accomplish this task.
         </p>
-      </div>
-      <div id="integration-with-local-web-apps" class="section">
+      </section>
+      <section id="integration-with-local-web-apps">
         <h3><span class="secno">5.2 </span>Integration with local web apps</h3>
         <p>
         Local web apps should be able to invoke and handle intents.
         </p>
-      </div>
-      <div id="persistent-connections" class="section">
+      </section>
+      <section id="persistent-connections">
         <h3><span class="secno">5.3 </span>Persistent connections</h3>
         <p>
         Web Intents invocations are modeled on RPC, but there are times when a
@@ -1239,8 +1206,8 @@
         work. i.e. whether the connection is permanent or temporary, whether
         tokens are user-consumable or opaque.
         </p>
-      </div>
-      <div id="integration-with-external-applications" class="section">
+      </section>
+      <section id="integration-with-external-applications">
         <h3><span class="secno">5.4 </span>Integration with external applications</h3>
         <p>
         It should be possible for intents to be routed to external helper
@@ -1249,8 +1216,8 @@
         intent. Or the browser could discover home networking equipment on the
         local network and make it available for particular types of intents.
         </p>
-      </div>
-      <div id="translating-existing-web-platform-features-to-intents" class="section">
+      </section>
+      <section id="translating-existing-web-platform-features-to-intents">
         <h3><span class="secno">5.5 </span>Translating existing web platform features to intents</h3>
         <p>
         It should be possible to translate a few existing features to use Web
@@ -1269,8 +1236,8 @@
         resource type and viewing it. This would let web apps function as
         plug-ins.
         </p>
-      </div>
-      <div id="authentication" class="section">
+      </section>
+      <section id="authentication">
         <h3><span class="secno">5.6 </span>Authentication</h3>
         <p>
         It is expected that many services for Web Intents will be ones the user
@@ -1281,31 +1248,31 @@
         which it runs in a normal browsing context. Intent data should be
         persisted by the User Agent across login redirects.
         </p>
-      </div>
-    </div>
+      </section>
+    </section>
 
-    <div id="privacy-considerations" class="section">
+    <section id="privacy-considerations">
       <!--OddPage--><h2><span class="secno">6. </span>Privacy Considerations</h2>
       <p>
       The user needs to have confidence that the Service will user the data
       associated with the action for the purpose intended and not share or retain
-      the data inappropriately.  For this reason it is important that the user have
-      control over Intents, in particular the selection mechanism which determines
-      which Service will handle a particular Intent.  This offers the possibility
-      of user decision and control related to the choice of Service, allowing them
-      to take into account expectations regarding the Service, including Service
-      policies related to retention and secondary use. This relates to the privacy
-      principles of control and consent [<cite><a class="bibref" rel="biblioentry" href="#bib-DAP-PRIVACY-REQS">DAP-PRIVACY-REQS</a></cite>].  For this reason a user
-      should be made aware of explicit intents and be able to view and change them;
-      implementations should be encouraged to offer this functionality.
+      the data inappropriately [<cite><a class="bibref" href="#bib-WEBAPP-PRIVACY-BESTPRACTICES">WEBAPP-PRIVACY-BESTPRACTICES</a></cite>].  For this reason
+      it is important that the user have control over Intents, in particular the
+      selection mechanism which determines which Service will handle a particular Intent.
+      This offers the possibility of user decision and control related to the choice of
+      Service, allowing them to take into account expectations regarding the Service,
+      including Service policies related to retention and secondary use. This relates
+      to the privacy principles of control and consent [<cite><a class="bibref" href="#bib-DAP-PRIVACY-REQS">DAP-PRIVACY-REQS</a></cite>].  For
+      this reason a user should be made aware of explicit intents and be able to view and
+      change them; implementations should be encouraged to offer this functionality.
 
       The minimum data necessary for a Service should be included as Intent parameters,
       corresponding to the privacy principle of minimization
-      [<cite><a class="bibref" rel="biblioentry" href="#bib-DAP-PRIVACY-REQS">DAP-PRIVACY-REQS</a></cite>].
+      [<cite><a class="bibref" href="#bib-DAP-PRIVACY-REQS">DAP-PRIVACY-REQS</a></cite>].
       </p>
-    </div>
+    </section>
 
-    <div class="appendix section" id="acknowledgements">
+    <section class="appendix" id="acknowledgements">
       <!--OddPage--><h2><span class="secno">A. </span>Acknowledgements</h2>
       <p>
         Many thanks to Robin Berjon for making our lives so much easier with his cool tool.
@@ -1314,15 +1281,16 @@
         See also <a href="http://www.webintents.org/">webintents.org</a> for
         more examples and a sample Javascript implementation of Web Intents.
       </p>
-    </div>
+    </section>
 
   
 
 
-<div id="references" class="appendix section"><!--OddPage--><h2><span class="secno">B. </span>References</h2><div id="normative-references" class="section"><h3><span class="secno">B.1 </span>Normative references</h3><dl class="bibliography"><dt id="bib-BLOB">[BLOB]</dt><dd>Arun Ranganathan. <a href="http://www.w3.org/TR/2009/WD-FileAPI-20091117/#dfn-Blob"><cite>Blob.</cite></a> 17 November 2009. W3C Working Draft. (Work in progress.) URL: <a href="http://www.w3.org/TR/2009/WD-FileAPI-20091117/">http://www.w3.org/TR/2009/WD-FileAPI-20091117/#dfn-Blob</a> 
+<section id="references" class="appendix"><!--OddPage--><h2><span class="secno">B. </span>References</h2><section id="normative-references"><h3><span class="secno">B.1 </span>Normative references</h3><dl class="bibliography"><dt id="bib-BLOB">[BLOB]</dt><dd>Arun Ranganathan. <a href="http://www.w3.org/TR/2009/WD-FileAPI-20091117/#dfn-Blob"><cite>Blob.</cite></a> 17 November 2009. W3C Working Draft. (Work in progress.) URL: <a href="http://www.w3.org/TR/2009/WD-FileAPI-20091117/">http://www.w3.org/TR/2009/WD-FileAPI-20091117/#dfn-Blob</a> 
 </dd><dt id="bib-HTML5">[HTML5]</dt><dd>Ian Hickson; David Hyatt. <a href="http://www.w3.org/TR/html5"><cite>HTML5.</cite></a> 29 March 2012. W3C Working Draft. (Work in progress.) URL: <a href="http://www.w3.org/TR/html5">http://www.w3.org/TR/html5</a> 
 </dd><dt id="bib-HTTP11">[HTTP11]</dt><dd>R. Fielding; et al. <a href="http://www.ietf.org/rfc/rfc2616.txt"><cite>Hypertext Transfer Protocol - HTTP/1.1.</cite></a> June 1999. Internet RFC 2616. URL: <a href="http://www.ietf.org/rfc/rfc2616.txt">http://www.ietf.org/rfc/rfc2616.txt</a> 
-</dd><dt id="bib-POSTMSG">[POSTMSG]</dt><dd>Ian Hickson. <a href="http://www.w3.org/TR/webmessaging/"><cite>HTML5 Web Messaging.</cite></a> 13 March 2012. W3C Working Draft. (Work In Progress.) URL: <a href="http://www.w3.org/TR/webmessaging/">http://www.w3.org/TR/webmessaging/</a>
+</dd><dt id="bib-POSTMSG">[POSTMSG]</dt><dd>Ian Hickson. <a href="http://dev.w3.org/html5/postmsg"><cite>HTML5 Web Messaging.</cite></a> URL: <a href="http://dev.w3.org/html5/postmsg">http://dev.w3.org/html5/postmsg</a>
 </dd><dt id="bib-RFC2046">[RFC2046]</dt><dd>N. Freed; N. Borenstein. <a href="http://www.ietf.org/rfc/rfc2046.txt"><cite>Multipurpose Internet Mail Extensions (MIME) Part Two: Media Types.</cite></a> November 1996. Internet RFC 2046. URL: <a href="http://www.ietf.org/rfc/rfc2046.txt">http://www.ietf.org/rfc/rfc2046.txt</a> 
-</dd></dl></div><div id="informative-references" class="section"><h3><span class="secno">B.2 </span>Informative references</h3><dl class="bibliography"><dt id="bib-DAP-PRIVACY-REQS">[DAP-PRIVACY-REQS]</dt><dd>Alissa Cooper, Frederick Hirsch, John Morris. <a href="http://www.w3.org/TR/2010/NOTE-dap-privacy-reqs-20100629/"><cite>Device API Privacy Requirements</cite></a> 29 June 2010. W3C Note URL: <a href="http://www.w3.org/TR/2010/NOTE-dap-privacy-reqs-20100629/">http://www.w3.org/TR/2010/NOTE-dap-privacy-reqs-20100629/</a> 
-</dd></dl></div></div></body></html>
+</dd></dl></section><section id="informative-references"><h3><span class="secno">B.2 </span>Informative references</h3><dl class="bibliography"><dt id="bib-DAP-PRIVACY-REQS">[DAP-PRIVACY-REQS]</dt><dd>Alissa Cooper, Frederick Hirsch, John Morris. <a href="http://www.w3.org/TR/2010/NOTE-dap-privacy-reqs-20100629/"><cite>Device API Privacy Requirements</cite></a> 29 June 2010. W3C Note URL: <a href="http://www.w3.org/TR/2010/NOTE-dap-privacy-reqs-20100629/">http://www.w3.org/TR/2010/NOTE-dap-privacy-reqs-20100629/</a> 
+</dd><dt id="bib-WEBAPP-PRIVACY-BESTPRACTICES">[WEBAPP-PRIVACY-BESTPRACTICES]</dt><dd>Frederick Hirsch. <a href="http://www.w3.org/TR/app-privacy-bp/"><cite>Web Application Privacy Best Practices</cite></a>. W3C Working Group Note. URL: <a href="http://www.w3.org/TR/app-privacy-bp/">http://www.w3.org/TR/app-privacy-bp/</a> 
+</dd></dl></section></section></body></html>