Hi there, WebKit Bug "13128: Safari not obeying cache header" changed the way non-http resources are cached in WebKit. A comment from Antti Koivisto mentioned that, aside from the RFC2616 changes, there is "one additional change that gives non-HTTP resources long cache lifetime. This matches existing behavior."
I have the following scenario: <html> <head> <script> function reloadFrameByDocumentWrite() { var frameDocument = document.getElementById('ID1').contentWindow.document; frameDocument.open(); frameDocument.write("<img src='pic.png' />"); frameDocument.close(); } </script> </head> <body> <input type="button" value="Reload" onclick="reloadFrameByDocumentWrite();" /> <iframe id="ID1"></iframe> </body> </html> When I load the above code in WebKit and hit "Reload", the picture is displayed into frame ID1. If I change the content of *pic.png* picture while the page is loaded in WebKit and I press "Reload" button again, the frame does not display the updated content of the picture from the local disk. I took a look at the changelist 44452 and in WebCore\loader\CachedResource.cpp double CachedResource::freshnessLifetime() const { // Cache non-http resources liberally if (!m_response.url().protocolInHTTPFamily()) return std::numeric_limits<double>::max(); ... } This means that in cases like the one described above, since the *pic.png* has protocol *file*, it will be cached for a long time and the new content will not be displayed. This is different than Safari 4.0 beta and Safari 3.2.1 on Windows. I was wondering what should be the right behavior here since I was not able to find that in RFC 2616? FF3.5.7 works like WebKit/Chrome/Safari 4.0.5. IE8 displays the updated image. Regards, Mihnea Ovidenie _______________________________________________ webkit-dev mailing list webkit-dev@lists.webkit.org http://lists.webkit.org/mailman/listinfo.cgi/webkit-dev