[whatwg] Race condition in application cache obsoleting

There seems to be a race condition in how application cache groups are  
marked obsolete. Consider the following scenario:

1. A document is loaded from server, an appcache is fully created.
2. Appcache update is initiated (e.g. by calling  
DOMApplicationCache.update()).
3. A new document is loaded, whose main resource comes from this  
appcache.
4. Update started at step 2 fails, because manifest is 404. Appcache  
is marked obsolete.
5. The new document is being parsed, and the parser finds manifest  
declaration.
6. Parser invokes application cache selection algorithm.
7. The application cache selection algorithm associates the document  
with obsolete appcache, because it was loaded from this appcache.

But at the same time, according to downloading or updating an  
application cache algorithm, "the [obsolete] cache group no longer  
exists for any purpose other than processing of Document objects  
already associated with an application cache in the cache group.

Which part of the spec wins?

- WBR, Alexey Proskuryakov

Received on Monday, 19 April 2010 12:07:20 UTC