<br><br><div class="gmail_quote">On Fri, Oct 17, 2008 at 5:36 PM, Ian Hickson <span dir="ltr">&lt;ian@hixie.ch&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<br><br>
<br>
&gt; - I know you added the behavior of failing loads when a URL is not in<br>
&gt; the manifest based on something I said, but now that I read it, it feels<br>
&gt; a bit draconian. I wish that developers could somehow easily control the<br>
&gt; space of URLs they expect to be online as well as the ones they expect<br>
&gt; to be offline. But maybe we should just remove the whole thing about<br>
&gt; failing loads of resources not in the manifest and online whitelist for<br>
&gt; v1.<br>
<br>
It seems like failing is what one wants from a debugging perspective.<br>



<br>
&gt; Not sure the &quot;fail if not represented in manifest&quot; is a good idea<br>
&gt; either... are there unintended consequences lurking here... what does<br>
&gt; this do in the face of mashups?<br>
<br>
I&#39;m not sure I understand; can you elaborate?<br></blockquote><div><br></div><div>I was referring to the fail to load behavior discussed above. The change such that iframes do not&nbsp;inherit&nbsp;their container&#39;s appcache alleviates my concerns.</div>
<div>&nbsp;</div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<br>
Hmm, good point. Renamed them &quot;master entries&quot;.</blockquote><div><br></div><div>Works for me.</div><div>&nbsp;</div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">

&gt; * flavors of namespaces*<br>
&gt;<br>
&gt; &nbsp;* online whitelist<br>
&gt; As mentioned in previous messages, this would need to be some form of<br>
&gt; namespacing or filtering to be useful. A better term for this might be<br>
&gt; &#39;bypass&#39; since with respect to the appcache, hits here bypass the cache. Its<br>
&gt; not clear if path prefix matching is the best option for filtering out<br>
&gt; request that should bypass the cache. In working with app developers using<br>
&gt; Gears, the idea of specifying a particular query argument to filter on in<br>
&gt; addition to a path prefix has come up. <a href="http://server/pathprefix" target="_blank">http://server/pathprefix</a> &nbsp; +<br>
&gt; &amp;bypassAppCache<br>
<br>
I&#39;ve changed it to just a prefix. Doing things at the query level seems a<br>
bit odd. The query parameters should be for the server, not the UA.</blockquote><div><br></div><div>Agreed that query params should be for the application logic, where ever the application logic resides:)</div><div><br></div>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
&gt; * opportunistic caching namespaces<br>
&gt; A mouthful but ok. Whatever terminology used for the category of resulting<br>
&gt; entries should be used here... perhaps &#39;auto-caching namespace&#39;.<br>
<br>
This is gone now.<br></blockquote><div><br></div><div>Hooray</div><div>&nbsp;</div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
&gt; *Scriptlets - or dynamic namespace-handlers [new idea]*<br>
I haven&#39;t added this in this version.</blockquote><div><br></div><div>I&#39;m content that this idea has been injected into the collective&nbsp;consciousness&nbsp;and am reasonably confident that sooner or later its time will come :)</div>
<div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">&gt; *When is anything ever deleted?*<br>
&gt;<br>
&gt; Maybe i missed it, but where does appCache deletion happen?<br>
<br>
It didn&#39;t. It now does, in response to 404 or 410 statuses for manifests<br>
when doing an update.</blockquote><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;"><br>
&gt; A new type of event may be warranted for completion of such an update,<br>
&gt; and when swapCache() is called there would no longer an appCache<br>
&gt; associated with the context.<br>
<br>
Done.<br></blockquote><div><br></div><div>Good</div><div>&nbsp;</div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
&gt; *Should we revisit the caching semantics for any resource not explicitly<br>
&gt; listed in the manifest?<br><br>
I&#39;m not a big fan of making these resources act differently than manifest<br>
resources, but I do agree that they should have different error handling.<br>
<br>
I&#39;ve changed the spec so that 404 and 410 errors cause the resource to be<br>
removed, and other errors (and redirects) cause the resource to be copied<br>
from the previous cache, without the whole caching process being canceled.<br>
<br></blockquote><div><br></div><div>Content that the bug is fixed.</div><div>&nbsp;</div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
&gt; b) Maybe there should be some way for the page to know that it was<br>
&gt; loaded as a fallback.<br>
<br>
I could add something to Location, would that work?<br>
<br>
 &nbsp; window.location.fallbackHref<br>
<br>
...or something? It would return the empty string unless it was a fallback<br>
case?</blockquote><div><br></div><div>Not sure anything is needed here. If an app really needs to know this, it could arrange such that a fallback resource should only be loaded in the fallback case for normal application usage.</div>
<div>&nbsp;</div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
&gt; 2) Silent manifest parsing errors<br>
&gt;<br>
&gt; The spec goes out of its way to indicate that most errors while parsing the<br>
&gt; manifest file should be silently eaten. That can&#39;t be an accident. What<br>
&gt; badness is being averted by that behavior? What is trying to be accomplished<br>
&gt; by that behavior?<br>
<br>
We want a format that is forward-compatible and convenient to use.<br>
<br>
I&#39;m open to other syntaxes; what would you suggest?<br></blockquote><div><br></div><div>This was not a comment about the file format, rather how errors in the file are surfaced to the application. &nbsp;We&#39;ve seen with gears, that its easy to introduce errors in the file (malformed urls or same-origin violations). Wasn&#39;t thinking about forward-compatibility. The &#39;fail if not in cache&#39; semantics may help.</div>
<div><br></div><div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">&gt; 4) Why require text/cache-manifest mimetype?<br>
&gt;<br>
&gt; Presents a small hurdle to get over. What is being accomplished with<br>
&gt; this requirement?<br>
<br>
This is actually just a restatement of HTTP&#39;s requirements. If you want<br>
the Content-Type to be ignored, please contact the HTTP working group and<br>
have them change the requirements for handling HTTP Content-Type headers. :-)<br></blockquote><div><br></div><div>Could we specify text/plain (or text/*) as the valid content type so a developer doesn&#39;t need access to the server infrastructure to get UAs to accept her/his text resource as a manifest file?</div>
<div>&nbsp;</div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
I&#39;ve added an allowance for expiring resources. It&#39;s pretty open-ended,<br>
left up to the UA.<br></blockquote><div><br></div><div>&nbsp;Great</div><div><br></div><div>--------------------------------------------------------------------------</div><div>New topics</div><div><br></div><div>* Its not clear that resources add()ed around update initiation time will make their way to a new cache that results from the update. I think the intent is that add()ed resources will show up in the new cache regardless of when add() is initiated or completed, but this isn&#39;t clear.</div>
<div><br></div><div>* Is it an error to initiate the add() of a resource to a cache after it has become obsolete?</div><div><br></div><div>* Should there be onaddsuccess / onadderror &nbsp;events that fires when add(s) complete?</div>
<div><br></div><div>* Pseudo code omission (i think): &nbsp;I don&#39;t see where the pseudo code inserts new master entries or informs already running update of newly discovered master entry.</div><div><br></div><div>* Towards the end of an update, &#39;candidates&#39; are not associated with the new cache in the upgrade attempt case. The differences&nbsp;between the cache attempt vs upgrade attempt seems odd.</div>
<div><br></div><div>&nbsp;</div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;"><font color="#888888">
</font></blockquote></div><br>