[html5] r6194 - [giow] (1) Support 'no-store' in appcache. This means we can now allow cross-ori [...]

whatwg at whatwg.org whatwg at whatwg.org
Tue Jun 7 16:09:48 PDT 2011


Author: ianh
Date: 2011-06-07 16:09:47 -0700 (Tue, 07 Jun 2011)
New Revision: 6194

Modified:
   complete.html
   index
   source
Log:
[giow] (1) Support 'no-store' in appcache. This means we can now allow cross-origin HTTPS caching, too, without making things worse than the regular HTTP cache.

Modified: complete.html
===================================================================
--- complete.html	2011-06-07 00:00:13 UTC (rev 6193)
+++ complete.html	2011-06-07 23:09:47 UTC (rev 6194)
@@ -239,7 +239,7 @@
 
   <header class=head id=head><p><a class=logo href=http://www.whatwg.org/><img alt=WHATWG height=101 src=/images/logo width=101></a></p>
    <hgroup><h1>Web Applications 1.0</h1>
-    <h2 class="no-num no-toc">Living Standard — Last Updated 6 June 2011</h2>
+    <h2 class="no-num no-toc">Living Standard — Last Updated 7 June 2011</h2>
    </hgroup><dl><dt>Multiple-page version:</dt>
     <dd><a href=http://www.whatwg.org/specs/web-apps/current-work/complete/>http://www.whatwg.org/specs/web-apps/current-work/complete/</a></dd>
     <dt>One-page version:</dt>
@@ -64760,11 +64760,12 @@
   manifest is automatically cached even if it isn't explicitly
   mentioned.</p>
 
-  <p class=note>HTTP cache headers and restrictions on caching pages
-  served over TLS (encrypted, using <code title="">https:</code>) are
-  overridden by manifests. Thus, pages will not expire from an
-  application cache before the user agent has updated it, and even
-  applications served over TLS can be made to work offline.</p>
+  <p class=note>With the exception of "no-store" directive, HTTP
+  cache headers and restrictions on caching pages served over TLS
+  (encrypted, using <code title="">https:</code>) are overridden by
+  manifests. Thus, pages will not expire from an application cache
+  before the user agent has updated it, and even applications served
+  over TLS can be made to work offline.</p>
 
 <!--(doesn't currently function)
   <p><a href="http://www.whatwg.org/demos/offline/clock/clock2.html">View this example online</a>.</p>
@@ -65231,11 +65232,6 @@
   </dl><p>Manifests may contain sections more than once. Sections may be
   empty.</p>
 
-  <p>If the manifest's <a href=#url-scheme title=url-scheme><scheme></a>
-  is <code title="">https:</code> or another scheme intended for
-  encrypted data transfer, then all URLs in <a href=#concept-appcache-manifest-explicit title=concept-appcache-manifest-explicit>explicit sections</a>
-  must have the <a href=#same-origin>same origin</a> as the manifest itself.</p>
-
   <p>URLs that are to be fallback pages associated with <a href=#concept-appcache-fallback-ns title=concept-appcache-fallback-ns>fallback namespaces</a>, and
   those namespaces themselves, must be given in <a href=#concept-appcache-manifest-fallback title=concept-appcache-manifest-fallback>fallback sections</a>,
   with the namespace being the first URL of the data line, and the
@@ -65431,10 +65427,7 @@
       <a href=#url-scheme title=url-scheme><scheme></a> component than
       the manifest's URL (compared in an <a href=#ascii-case-insensitive>ASCII
       case-insensitive</a> manner), then jump back to the step
-      labeled "start of line". If the manifest's <a href=#url-scheme title=url-scheme><scheme></a> is <code title="">https:</code> or another scheme intended for encrypted
-      data transfer, and the resulting <a href=#absolute-url>absolute URL</a> does
-      not have the <a href=#same-origin>same origin</a> as the manifest's URL,
-      then jump back to the step labeled "start of line".</p>
+      labeled "start of line".</p>
 
       <p>Drop the <a href=#url-fragment title=url-fragment><fragment></a>
       component of the resulting <a href=#absolute-url>absolute URL</a>, if it has
@@ -65787,7 +65780,7 @@
     checking the magic signature), or if the server returned a
     redirect, or if the resource is labeled with a <a href=#mime-type>MIME
     type</a> other than <code><a href=#text/cache-manifest>text/cache-manifest</a></code>, then run
-    the <a href=#cache-failure-steps>cache failure steps</a>.</p>
+    the <a href=#cache-failure-steps>cache failure steps</a>. <a href=#refsHTTP>[HTTP]</a></p>
 
    </li>
 
@@ -65812,13 +65805,16 @@
       entries</a>, wait for the resource for this entry to have
       either completely downloaded or failed.</p>
 
-      <p>If the download failed (e.g. the connection times out, or the
-      user cancels the download), then create a <a href=#concept-task title=concept-task>task</a> to <a href=#fire-a-simple-event>fire a simple
+      <p>If the download failed (e.g. the server returns a 4xx or 5xx
+      response <a href=#concept-http-equivalent-codes title=concept-http-equivalent-codes>or
+      equivalent</a>, or there is a DNS error, the connection times
+      out, or the user cancels the download), or if the resource is
+      labeled with the "no-store" cache directive, then create a <a href=#concept-task title=concept-task>task</a> to <a href=#fire-a-simple-event>fire a simple
       event</a> that is cancelable named <code title=event-appcache-error><a href=#event-appcache-error>error</a></code> at the
       <code><a href=#applicationcache>ApplicationCache</a></code> singleton of the <a href=#cache-host>cache
       host</a> the <code><a href=#document>Document</a></code> for this entry, if there
-      still is one, and append it to <var title="">task list</var>. The
-      default action of this event must be, if the user agent
+      still is one, and append it to <var title="">task list</var>.
+      The default action of this event must be, if the user agent
       <a href=#shows-caching-progress>shows caching progress</a>, the display of some sort of
       user interface indicating to the user that the user agent failed
       to save the application for offline use.</p>
@@ -65831,10 +65827,6 @@
       be removed from the entry in <var title="">cache</var>
       (application caches never include fragment identifiers).</p>
 
-      <p class=note>HTTP caching rules, such as <code title="">Cache-Control: no-store</code>, are ignored for the
-      purposes of the <a href=#application-cache-download-process>application cache download
-      process</a>.</p>
-
      </li>
 
      <li><p>For each <a href=#cache-host>cache host</a> associated with an
@@ -65979,8 +65971,9 @@
       5xx response <a href=#concept-http-equivalent-codes title=concept-http-equivalent-codes>or
       equivalent</a>, or there is a DNS error, or the connection
       times out, or the user cancels the download), or if the server
-      returned a redirect, then run the first appropriate step from
-      the following list:</p>
+      returned a redirect, or if the resource is labeled with the
+      "no-store" cache directive, then run the first appropriate step
+      from the following list: <a href=#refsHTTP>[HTTP]</a></p>
 
       <dl class=switch><dt>If the URL being processed was flagged as an "explicit
        entry" or a "fallback entry"</dt>
@@ -66001,6 +65994,9 @@
 
        <dt>If the error was a 404 or 410 HTTP response <a href=#concept-http-equivalent-codes title=concept-http-equivalent-codes>or equivalent</a></dt>
 
+       <dt>If the resource was labeled with the "no-store" cache
+       directive</dt>
+
        <dd>
 
         <p>Skip this resource. It is dropped from the cache.</p>
@@ -66027,6 +66023,10 @@
       without errors, and making non-manifest resources survive
       server-side errors.</p>
 
+      <p class=note>Except for the "no-store" directive, HTTP
+      caching rules are ignored for the purposes of the
+      <a href=#application-cache-download-process>application cache download process</a>.</p>
+
      </li>
 
      <li>
@@ -66097,8 +66097,12 @@
     entries</a>, wait for the resource for this entry to have
     either completely downloaded or failed.</p>
 
-    <p>If the download failed (e.g. the connection times out, or the
-    user cancels the download), then run these substeps:</p>
+    <p>If the download failed (e.g. the server returns a 4xx or 5xx
+    response <a href=#concept-http-equivalent-codes title=concept-http-equivalent-codes>or
+    equivalent</a>, or there is a DNS error, the connection times
+    out, or the user cancels the download), or if the resource is
+    labeled with the "no-store" cache directive, then run these
+    substeps:</p>
 
     <ol><li><p>Unassociate the <code><a href=#document>Document</a></code> for this entry from
      <var title="">new cache</var>.</li>

Modified: index
===================================================================
--- index	2011-06-07 00:00:13 UTC (rev 6193)
+++ index	2011-06-07 23:09:47 UTC (rev 6194)
@@ -243,7 +243,7 @@
 
   <header class=head id=head><p><a class=logo href=http://www.whatwg.org/><img alt=WHATWG height=101 src=/images/logo width=101></a></p>
    <hgroup><h1 class=allcaps>HTML</h1>
-    <h2 class="no-num no-toc">Living Standard — Last Updated 6 June 2011</h2>
+    <h2 class="no-num no-toc">Living Standard — Last Updated 7 June 2011</h2>
    </hgroup><dl><dt><strong>Web developer edition</strong></dt>
     <dd><strong><a href=http://developers.whatwg.org/>http://developers.whatwg.org/</a></strong></dd>
     <dt>Multiple-page version:</dt>
@@ -64750,11 +64750,12 @@
   manifest is automatically cached even if it isn't explicitly
   mentioned.</p>
 
-  <p class=note>HTTP cache headers and restrictions on caching pages
-  served over TLS (encrypted, using <code title="">https:</code>) are
-  overridden by manifests. Thus, pages will not expire from an
-  application cache before the user agent has updated it, and even
-  applications served over TLS can be made to work offline.</p>
+  <p class=note>With the exception of "no-store" directive, HTTP
+  cache headers and restrictions on caching pages served over TLS
+  (encrypted, using <code title="">https:</code>) are overridden by
+  manifests. Thus, pages will not expire from an application cache
+  before the user agent has updated it, and even applications served
+  over TLS can be made to work offline.</p>
 
 <!--(doesn't currently function)
   <p><a href="http://www.whatwg.org/demos/offline/clock/clock2.html">View this example online</a>.</p>
@@ -65227,11 +65228,6 @@
   </dl><p>Manifests may contain sections more than once. Sections may be
   empty.</p>
 
-  <p>If the manifest's <a href=#url-scheme title=url-scheme><scheme></a>
-  is <code title="">https:</code> or another scheme intended for
-  encrypted data transfer, then all URLs in <a href=#concept-appcache-manifest-explicit title=concept-appcache-manifest-explicit>explicit sections</a>
-  must have the <a href=#same-origin>same origin</a> as the manifest itself.</p>
-
   <p>URLs that are to be fallback pages associated with <a href=#concept-appcache-fallback-ns title=concept-appcache-fallback-ns>fallback namespaces</a>, and
   those namespaces themselves, must be given in <a href=#concept-appcache-manifest-fallback title=concept-appcache-manifest-fallback>fallback sections</a>,
   with the namespace being the first URL of the data line, and the
@@ -65427,10 +65423,7 @@
       <a href=#url-scheme title=url-scheme><scheme></a> component than
       the manifest's URL (compared in an <a href=#ascii-case-insensitive>ASCII
       case-insensitive</a> manner), then jump back to the step
-      labeled "start of line". If the manifest's <a href=#url-scheme title=url-scheme><scheme></a> is <code title="">https:</code> or another scheme intended for encrypted
-      data transfer, and the resulting <a href=#absolute-url>absolute URL</a> does
-      not have the <a href=#same-origin>same origin</a> as the manifest's URL,
-      then jump back to the step labeled "start of line".</p>
+      labeled "start of line".</p>
 
       <p>Drop the <a href=#url-fragment title=url-fragment><fragment></a>
       component of the resulting <a href=#absolute-url>absolute URL</a>, if it has
@@ -65783,7 +65776,7 @@
     checking the magic signature), or if the server returned a
     redirect, or if the resource is labeled with a <a href=#mime-type>MIME
     type</a> other than <code><a href=#text/cache-manifest>text/cache-manifest</a></code>, then run
-    the <a href=#cache-failure-steps>cache failure steps</a>.</p>
+    the <a href=#cache-failure-steps>cache failure steps</a>. <a href=#refsHTTP>[HTTP]</a></p>
 
    </li>
 
@@ -65808,13 +65801,16 @@
       entries</a>, wait for the resource for this entry to have
       either completely downloaded or failed.</p>
 
-      <p>If the download failed (e.g. the connection times out, or the
-      user cancels the download), then create a <a href=#concept-task title=concept-task>task</a> to <a href=#fire-a-simple-event>fire a simple
+      <p>If the download failed (e.g. the server returns a 4xx or 5xx
+      response <a href=#concept-http-equivalent-codes title=concept-http-equivalent-codes>or
+      equivalent</a>, or there is a DNS error, the connection times
+      out, or the user cancels the download), or if the resource is
+      labeled with the "no-store" cache directive, then create a <a href=#concept-task title=concept-task>task</a> to <a href=#fire-a-simple-event>fire a simple
       event</a> that is cancelable named <code title=event-appcache-error><a href=#event-appcache-error>error</a></code> at the
       <code><a href=#applicationcache>ApplicationCache</a></code> singleton of the <a href=#cache-host>cache
       host</a> the <code><a href=#document>Document</a></code> for this entry, if there
-      still is one, and append it to <var title="">task list</var>. The
-      default action of this event must be, if the user agent
+      still is one, and append it to <var title="">task list</var>.
+      The default action of this event must be, if the user agent
       <a href=#shows-caching-progress>shows caching progress</a>, the display of some sort of
       user interface indicating to the user that the user agent failed
       to save the application for offline use.</p>
@@ -65827,10 +65823,6 @@
       be removed from the entry in <var title="">cache</var>
       (application caches never include fragment identifiers).</p>
 
-      <p class=note>HTTP caching rules, such as <code title="">Cache-Control: no-store</code>, are ignored for the
-      purposes of the <a href=#application-cache-download-process>application cache download
-      process</a>.</p>
-
      </li>
 
      <li><p>For each <a href=#cache-host>cache host</a> associated with an
@@ -65975,8 +65967,9 @@
       5xx response <a href=#concept-http-equivalent-codes title=concept-http-equivalent-codes>or
       equivalent</a>, or there is a DNS error, or the connection
       times out, or the user cancels the download), or if the server
-      returned a redirect, then run the first appropriate step from
-      the following list:</p>
+      returned a redirect, or if the resource is labeled with the
+      "no-store" cache directive, then run the first appropriate step
+      from the following list: <a href=#refsHTTP>[HTTP]</a></p>
 
       <dl class=switch><dt>If the URL being processed was flagged as an "explicit
        entry" or a "fallback entry"</dt>
@@ -65997,6 +65990,9 @@
 
        <dt>If the error was a 404 or 410 HTTP response <a href=#concept-http-equivalent-codes title=concept-http-equivalent-codes>or equivalent</a></dt>
 
+       <dt>If the resource was labeled with the "no-store" cache
+       directive</dt>
+
        <dd>
 
         <p>Skip this resource. It is dropped from the cache.</p>
@@ -66023,6 +66019,10 @@
       without errors, and making non-manifest resources survive
       server-side errors.</p>
 
+      <p class=note>Except for the "no-store" directive, HTTP
+      caching rules are ignored for the purposes of the
+      <a href=#application-cache-download-process>application cache download process</a>.</p>
+
      </li>
 
      <li>
@@ -66093,8 +66093,12 @@
     entries</a>, wait for the resource for this entry to have
     either completely downloaded or failed.</p>
 
-    <p>If the download failed (e.g. the connection times out, or the
-    user cancels the download), then run these substeps:</p>
+    <p>If the download failed (e.g. the server returns a 4xx or 5xx
+    response <a href=#concept-http-equivalent-codes title=concept-http-equivalent-codes>or
+    equivalent</a>, or there is a DNS error, the connection times
+    out, or the user cancels the download), or if the resource is
+    labeled with the "no-store" cache directive, then run these
+    substeps:</p>
 
     <ol><li><p>Unassociate the <code><a href=#document>Document</a></code> for this entry from
      <var title="">new cache</var>.</li>

Modified: source
===================================================================
--- source	2011-06-07 00:00:13 UTC (rev 6193)
+++ source	2011-06-07 23:09:47 UTC (rev 6194)
@@ -73777,11 +73777,12 @@
   manifest is automatically cached even if it isn't explicitly
   mentioned.</p>
 
-  <p class="note">HTTP cache headers and restrictions on caching pages
-  served over TLS (encrypted, using <code title="">https:</code>) are
-  overridden by manifests. Thus, pages will not expire from an
-  application cache before the user agent has updated it, and even
-  applications served over TLS can be made to work offline.</p>
+  <p class="note">With the exception of "no-store" directive, HTTP
+  cache headers and restrictions on caching pages served over TLS
+  (encrypted, using <code title="">https:</code>) are overridden by
+  manifests. Thus, pages will not expire from an application cache
+  before the user agent has updated it, and even applications served
+  over TLS can be made to work offline.</p>
 
 <!--(doesn't currently function)
   <p><a href="http://www.whatwg.org/demos/offline/clock/clock2.html">View this example online</a>.</p>
@@ -74338,12 +74339,6 @@
   <p>Manifests may contain sections more than once. Sections may be
   empty.</p>
 
-  <p>If the manifest's <span title="url-scheme"><scheme></span>
-  is <code title="">https:</code> or another scheme intended for
-  encrypted data transfer, then all URLs in <span
-  title="concept-appcache-manifest-explicit">explicit sections</span>
-  must have the <span>same origin</span> as the manifest itself.</p>
-
   <p>URLs that are to be fallback pages associated with <span
   title="concept-appcache-fallback-ns">fallback namespaces</span>, and
   those namespaces themselves, must be given in <span
@@ -74574,12 +74569,7 @@
       <span title="url-scheme"><scheme></span> component than
       the manifest's URL (compared in an <span>ASCII
       case-insensitive</span> manner), then jump back to the step
-      labeled "start of line". If the manifest's <span
-      title="url-scheme"><scheme></span> is <code
-      title="">https:</code> or another scheme intended for encrypted
-      data transfer, and the resulting <span>absolute URL</span> does
-      not have the <span>same origin</span> as the manifest's URL,
-      then jump back to the step labeled "start of line".</p>
+      labeled "start of line".</p>
 
       <p>Drop the <span title="url-fragment"><fragment></span>
       component of the resulting <span>absolute URL</span>, if it has
@@ -75008,7 +74998,8 @@
     checking the magic signature), or if the server returned a
     redirect, or if the resource is labeled with a <span>MIME
     type</span> other than <code>text/cache-manifest</code>, then run
-    the <span>cache failure steps</span>.</p>
+    the <span>cache failure steps</span>. <a
+    href="#refsHTTP">[HTTP]</a></p>
 
    </li>
 
@@ -75039,15 +75030,18 @@
       entries</span>, wait for the resource for this entry to have
       either completely downloaded or failed.</p>
 
-      <p>If the download failed (e.g. the connection times out, or the
-      user cancels the download), then create a <span
+      <p>If the download failed (e.g. the server returns a 4xx or 5xx
+      response <span title="concept-http-equivalent-codes">or
+      equivalent</span>, or there is a DNS error, the connection times
+      out, or the user cancels the download), or if the resource is
+      labeled with the "no-store" cache directive, then create a <span
       title="concept-task">task</span> to <span>fire a simple
       event</span> that is cancelable named <code
       title="event-appcache-error">error</code> at the
       <code>ApplicationCache</code> singleton of the <span>cache
       host</span> the <code>Document</code> for this entry, if there
-      still is one, and append it to <var title="">task list</var>. The
-      default action of this event must be, if the user agent
+      still is one, and append it to <var title="">task list</var>.
+      The default action of this event must be, if the user agent
       <span>shows caching progress</span>, the display of some sort of
       user interface indicating to the user that the user agent failed
       to save the application for offline use.</p>
@@ -75062,11 +75056,6 @@
       be removed from the entry in <var title="">cache</var>
       (application caches never include fragment identifiers).</p>
 
-      <p class="note">HTTP caching rules, such as <code
-      title="">Cache-Control: no-store</code>, are ignored for the
-      purposes of the <span>application cache download
-      process</span>.</p>
-
      </li>
 
      <li><p>For each <span>cache host</span> associated with an
@@ -75233,8 +75222,9 @@
       5xx response <span title="concept-http-equivalent-codes">or
       equivalent</span>, or there is a DNS error, or the connection
       times out, or the user cancels the download), or if the server
-      returned a redirect, then run the first appropriate step from
-      the following list:</p>
+      returned a redirect, or if the resource is labeled with the
+      "no-store" cache directive, then run the first appropriate step
+      from the following list: <a href="#refsHTTP">[HTTP]</a></p>
 
       <dl class="switch">
 
@@ -75258,6 +75248,9 @@
        <dt>If the error was a 404 or 410 HTTP response <span
        title="concept-http-equivalent-codes">or equivalent</span></dt>
 
+       <dt>If the resource was labeled with the "no-store" cache
+       directive</dt>
+
        <dd>
 
         <p>Skip this resource. It is dropped from the cache.</p>
@@ -75288,6 +75281,10 @@
       without errors, and making non-manifest resources survive
       server-side errors.</p>
 
+      <p class="note">Except for the "no-store" directive, HTTP
+      caching rules are ignored for the purposes of the
+      <span>application cache download process</span>.</p>
+
      </li>
 
      <li>
@@ -75369,8 +75366,12 @@
     entries</span>, wait for the resource for this entry to have
     either completely downloaded or failed.</p>
 
-    <p>If the download failed (e.g. the connection times out, or the
-    user cancels the download), then run these substeps:</p>
+    <p>If the download failed (e.g. the server returns a 4xx or 5xx
+    response <span title="concept-http-equivalent-codes">or
+    equivalent</span>, or there is a DNS error, the connection times
+    out, or the user cancels the download), or if the resource is
+    labeled with the "no-store" cache directive, then run these
+    substeps:</p>
 
     <ol>
 




More information about the Commit-Watchers mailing list