WWW/2011/tracking-protection/drafts tracking-dnt.html,1.127,1.128

Update of /w3ccvs/WWW/2011/tracking-protection/drafts
In directory hutz:/tmp/cvs-serv31044

Modified Files:
	tracking-dnt.html 
Log Message:
Revised site-specific exception API again, to allow specific lists, allow
UAs to generalize such lists to site-wide, remove the same-origin constraint
and hence allow use of libraries, and require UAs to treat each call as
'atomic', thereby assuring sites of some consistency in what is granted.


Index: tracking-dnt.html
===================================================================
RCS file: /w3ccvs/WWW/2011/tracking-protection/drafts/tracking-dnt.html,v
retrieving revision 1.127
retrieving revision 1.128
diff -u -d -r1.127 -r1.128
--- tracking-dnt.html	18 Jul 2012 11:05:07 -0000	1.127
+++ tracking-dnt.html	30 Jul 2012 23:42:26 -0000	1.128
@@ -1288,7 +1288,8 @@
 
     <section id='exceptions' class="option">
       <h2>User-Granted Exceptions</h2>
-	  <p class="issue"><a href="http://www.w3.org/2011/tracking-protection/track/issues/111">ISSUE-111</a>: Different DNT values to signify existence of site-specific exceptions</p>
+	  <p class="issue"><a href="http://www.w3.org/2011/tracking-protection/track/issues/111">ISSUE-111</a>: Different DNT values to signify existence of site-specific 
+	  exceptions.</p>
       <section id="exceptions-overview" class="informative">
         <h2>Overview</h2>
 
@@ -1346,7 +1347,7 @@
         and analytics providers, and some mashed-up content from less-trusted sites).
         For this reason, there is support both for explicitly named sites, as well
         as support for granting an exception to all third-parties on a given
-        site (site-wide exception, using the wild-card "*").</p>
+        site (site-wide exception, using the conceptual wild-card "*").</p>
         
         <p>There are some cases in which a user may desire a site to be allowed to 
         track them on any top-level domain. An API is provided so that the site and 
@@ -1365,15 +1366,14 @@
           <p>This API considers exceptions which are double-keyed to two
           domains: the <strong>site</strong>, and the
           <strong>target</strong>. A user might &#8212; for instance &#8212;
-          want AnalytiCo to track them on Example News, but not on Example
+          want AnalytiCo to be allowed to track them on Example News, but not on Example
           Medical. To simplify language used in this API specification, we
           define two terms:</p>
           
           <ul> 
             <li><strong>Top-Level Domain (TLD)</strong> is the domain name 
             of the top-level document origin of this DOM: essentially the fully qualified
-            domain name in the address bar. For all these APIs, this MUST match the
-            script origin.</li> 
+            domain name in the address bar.</li> 
             <li>A <strong>target</strong> site is a domain name which is the target
             of an HTTP request, and which may be an origin for embedded resources
             on <strong>the indicated top-level domain</strong>.</li>
@@ -1402,10 +1402,9 @@
            domain names.</p>
            <p>The domains that enter into the behavior of the APIs include:</p>
 		  <ul> 
-			<li>As described above, the <strong>Top-Level Domain (TLD)</strong>;</li> 
-			<li>The domain of the origin of the script;</li>
-			<li>Domain names passed to the API;</li>
-			<li>Domains declared in the well-known resource as 'partners'.</li> 
+			<li>As described above, the <strong>Top-Level Domain (TLD)</strong> active
+			at the time of the call, and;</li> 
+			<li>Domain names passed to the API.</li>
 		  </ul>
            <p class="note">Note that these strict, machine-discoverable, concepts 
            may not match the definitions of first and third party; in particular, 
@@ -1413,11 +1412,7 @@
            to first party by virtue of user interaction; the UA will not change 
            the DNT header it sends them.</p>
            
-           <p>During the execution of these APIs, the top-level browsing domain 
-           and the domain origin of the script MUST match, 
-           otherwise no action is taken, and an error value returned.</p>
-           
-           <p>The calls causes the following steps to occur:
+           <p>The calls cause the following steps to occur:
            <ul>
 			<li>First, the UA somehow confirms with the user that they agree to 
 			the grant of exception;</li>
@@ -1451,21 +1446,29 @@
           </p>
           <p class="issue">What is the effect of re-directs, when the source of the
            re-direct would get a different DNT header than the target, using these
-           matching rules?</p>
+           matching rules?<br><b>Proposal</b>: The re-direct is not relevant; each 
+           site gets the DNT header controlled by the list of grants.</p>
           <div class="note">
           <p >
             It is left up to individual user-agent implementations how to
             determine and how and whether to store users' tracking
             preferences.
           </p>
-          <p >When an explicit list of domains is provided, their names might mean 
-          little to the user. The user 
+          <p >When an explicit list of domains is provided 
+          through the API, their names might mean little to the user. The user 
           might, for example, be told that such-and-such top-level domain is 
           asking for an exception for a specific set of sites, rather than listing 
-          them by name.</p>
-		  <p >Conversely, if a wild-card is or will be used, the user may be told 
+          them by name; or the user-agent may decide to ask the user for
+          a site-wide exception, effectively ignoring the list of domain names,
+          if supplied.</p>
+		  <p >Conversely, if a wild-card is used, the user may be told 
 		  that the top-level domain is asking for an exception for all third-parties that 
 		  are, or will be, embedded in it.</p>
+		  <p>User-agents MUST handle each request as a 'unit', granting and maintaining it
+		  in its entirety, or not at all. That means that a user-agent MUST NOT indicate
+		  to a site that a request for targets {a, b, c} has been granted, and
+		  later remove only one or two of {a, b, c} from its logical database of
+		  remembered grants.</p>
 		  </div>
 
           <p class="issue"><a
@@ -1493,8 +1496,10 @@
 			NavigatorDoNotTrack'>
 			  <dt>
 				void
-				requestSiteSpecificTrackingException(in TrackingResponseCallback callback,
-				optional siteName, optional explanationString, optional detailURI)
+				requestSiteSpecificTrackingException(
+				  in TrackingResponseCallback callback,
+				  optional sequence&lt;DOMString&gt; arrayOfDomainStrings, 
+				  optional siteName, optional explanationString, optional detailURI)
 			  </dt>
 			  <dd>
 				Called by a page to request or confirm a user-granted tracking
@@ -1504,7 +1509,7 @@
 			<dl class="idl" title='[Callback, NoInterfaceObject] interface
 			TrackingResponseCallback'>
 			  <dt>
-				void handleEvent(in boolean granted)
+				void handleEvent(in integer granted)
 			  </dt>
 			  <dd>
 				The callback is called by the user agent to indicate the user's
@@ -1514,7 +1519,7 @@
 			
 			<p>
 			  The <code>requestSiteSpecificTrackingException</code> method takes
-			  the mandatory argument:
+			  one mandatory argument:
 			</p>
 	
 			<ul>
@@ -1524,12 +1529,15 @@
 			  </li>
 			</ul>
 			<p>
-			  It also takes three optional arguments:
+			  It also takes four optional arguments:
 			</p>
 			<ul>
 			  <li>
-				<code>siteName</code>, a string for the name of the top-level domain
-				(script origin),
+				<code>arrayOfDomainStrings</code>, a JavaScript array of strings,
+			  </li>
+			  <li>
+				<code>siteName</code>, a user-readable string for the 
+				name of the top-level domain,
 			  </li>
 			  <li>
 				<code>explanationString</code>, a short explanation of the
@@ -1541,39 +1549,48 @@
 			  </li>
 			</ul>
 	
-			<p>When called,
+			<p>If the request does not include the <code>arrayOfDomainStrings</code>,
+			  then this request is for a site-wide exception. Otherwise
+			  each string in <code>arrayOfDomainStrings</code> specifies a
+			  <strong>target</strong>. When called,
 			  <code>requestSiteSpecificTrackingException</code> MUST return
 			  immediately, then asynchronously determine whether the user grants
 			  the requested exception(s).
 			</p>
+			<p>If the list <code>arrayOfDomainStrings</code> is supplied, the
+			user-agent MAY choose to ask the user to grant a site-wide exception. 
+			If it does so, and the user agrees, it MUST indicate this in the
+			response callback.</p>
 	
 			<p>The execution of this API and the use of the resulting permission 
-			(if granted) use two 'implicit' parameters, when the API is called:
-			  <ul>
-			    <li>the domain of the origin of the script (script-origin);</li>
-			    <li>the 'partners' list at the well-known URL location.</li>
-			  </ul>
-			The user-agent SHOULD use the partners as the list of
-			 <strong>target</strong>s, 
-			if it exists, or a list containing the single special string &#8220;*&#8221;, 
-			indicating all targets,
-			as the <strong>target</strong> if it does not; it MAY use a list of the 
-			special 
-			string &#8220;*&#8221; even if the partners list exists.</p>
+			(if granted) use the 'implicit' parameter, when the API is called, 
+			the domain of the top-level site.</p>
 			
 			<p>The <code>granted</code> parameter passed to the callback is the
-			  user&#8217;s response; <code>true</code> indicates the user grants an
-			  exception on <strong>top-level domain</strong> for all of the
-			  <strong>target</strong>s. The response <code>false</code>
-			  indicates that the user does not want an exception on 
-			  <strong>top-level domain</strong> for at least one of 
-			  the <strong>target</strong>s.
+			  user&#8217;s response; The response
+			  <ul>
+			   <li><code>0</code>
+			    indicates that user does not grant the exception on 
+			    <strong>top-level domain</strong> for 
+			    the indicated <strong>target</strong>s.</li>
+			  <li><code>1</code> indicates the user grants an
+			    exception on <strong>top-level domain</strong> for the specific
+			    <strong>target</strong>s.</li>
+			  <li><code>2</code> indicates the user grants a site-wide
+			    exception on <strong>top-level domain</strong> for all 
+			    <strong>target</strong>s.</li>
+			  </ul>
 			</p>
 			
 			
-			<p>If permission is granted, then the set of duplets (one per target):</p>
+			<p>If permission is granted for an explicit list,
+			 then the set of duplets (one per target):</p>
 				<code>[top-level-domain, target]</code>
 			<p>is added to the database of remembered grants.</p>  
+			<p>If permission is granted for a site-wide exception,
+			 then the duplets:</p>
+				<code>[top-level-domain, * ]</code>
+			<p>is added to the database of remembered grants.</p>  
 
 			<p>
 			  A particular response to the API &mdash; like a DNT response
@@ -1596,13 +1613,14 @@
 			  </dt>
 			  <dd>
 				<p>Ensures that the database of remembered grants no longer contains any
-				duplets </p>
+				duplets for which the first part is the current top-level domain,
+				i.e. no duplets </p>
 				<code>[top-level-domain, target]</code>
 				
 				<p>for any target.  This method never fails and there 
 				is no callback. After the call has been made, it is assured that there
-				are no site-specific exceptions for the given top-level-domain.</p>
-
+				are no site-specific or site-wide exceptions for the given
+				 top-level-domain.</p>
 			  </dd>
 			</dl>
 			
@@ -1746,7 +1764,9 @@
           <p class="issue"><a href="http://www.w3.org/2011/tracking-protection/track/issues/140">ISSUE-140</a>: Do we need site-specific exceptions, i.e., concrete list of permitted third parties for a site?<br>
             <b>PROPOSAL</b>: In this section; yes, as some sites may have a mix of
             trusted/needed third parties, and others that either don't need to
-            track, or aren't as trusted, or both.
+            track, or aren't as trusted, or both. But all sites are (a) told what they
+            got granted (list, or *) and (b) are assured that requests will be treated
+            'atomically'.
           </p>
       </section>
 

Received on Monday, 30 July 2012 23:42:30 UTC