HTML Standard Tracker

Filter

File a bug

SVNBugCommentTime (UTC)
2350[Gecko] [Webkit] [Google Gears] Appcache: Check the manifest again after updating the cache to make sure it hasn't changed.2008-10-17 23:12
@@ -39109,23 +39109,24 @@ style/default.css</pre>
 
    <li>
 
     <p>If the previous step fails due to a 404 or 410 response or
     equivalent, then run the <span>cache removal steps</span></p>
 
     <p>If the previous step fails in some other way (e.g. the server
     returns another 4xx or 5xx response or equivalent, or there is a
     DNS error, or the connection times out, or the user cancels the
     download, or the parser for manifests fails when checking the
-    magic signature), or if the resource is labeled with a MIME type
-    other than <code title="">text/cache-manifest</code>, then run the
-    <span>cache failure steps</span>.</p>
+    magic signature), or if the server returned a redirect, or if the
+    resource is labeled with a MIME type other than <code
+    title="">text/cache-manifest</code>, then run the <span>cache
+    failure steps</span>.</p>
 
    </li>
 
    <li>
 
     <p>If this is an <span title="concept-appcache-upgrade">upgrade
     attempt</span> and the newly downloaded <var
     title="">manifest</var> is byte-for-byte identical to the manifest
     found in <var title="">cache</var>, or if the server reported it
     as "304 Not Modified" or equivalent, then run these substeps:</p>
@@ -39369,24 +39370,47 @@ style/default.css</pre>
     downloaded.</p>
 
     <p>If any of these downloads fail (e.g. the connection times out,
     or the user cancels the download), then run the <span>cache
     failure steps</span>.</p> <!-- can't fail with a non-2xx code,
     because things only get added to the cache implicitly once they
     are known to have a manifest="" attribute. -->
 
    </li>
 
-   <li><p>Store <var title="">manifest</var> in <var title="">new
-   cache</var>, if it's not there already, and categorize this entry
-   (whether newly added or not) as <span
-   title="concept-appcache-manifest">the manifest</span>.</p></li>
+   <li>
+
+    <p><span>Fetch</span> the resource from <var title="">manifest
+    URL</var> again, and let <var title="">second manifest</var> be
+    that resource.</p>
+
+   </li>
+
+   <li>
+
+    <p>If the previous step failed for any reason, or if the fetching
+    attempt involved a redirect, or if <var title="">second
+    manifest</var> and <var title="">manifest</var> are not
+    byte-for-byte identical, then schedule a rerun of the entire
+    algorithm with the same parameters after a short delay, and run
+    the <span>cache failure steps</span>.</p>
+
+   </li>
+
+   <li>
+
+    <p>Otherwise, store <var title="">manifest</var> in <var
+    title="">new cache</var>, if it's not there already, and
+    categorize this entry (whether newly added or not) as <span
+    title="concept-appcache-manifest">the manifest</span>.</p>
+
+   </li>
 
    <li>
 
     <p>If this is a <span title="concept-appcache-cache">cache
     attempt</span>, then:</p>
 
     <p id="flagAsCandidateForCache-result">Associate any
     <code>Document</code> objects that were <a
     href="#flagAsCandidateForCache">flagged as candidates</a> for this
     manifest URL's caches with <var title="">cache</var>.</p>

|