WebKit Bugzilla
New
Browse
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
RESOLVED DUPLICATE of
bug 30862
97044
Inconsistent caching of local resources
https://bugs.webkit.org/show_bug.cgi?id=97044
Summary
Inconsistent caching of local resources
Florin Malita
Reported
2012-09-18 14:22:51 PDT
Created
attachment 164622
[details]
Local resource caching test 1) extract the attached archive 2) open local-cache.html in a tab (and do not close it): it should be displaying img1.png 3) copy img2.png -> img1.png 4) reload the tab: it's still showing img1.png double CachedResource::freshnessLifetime() const { // Cache non-http resources liberally if (!m_response.url().protocolIsInHTTPFamily()) return std::numeric_limits<double>::max(); Based on this ^^^, one could argue that the above behavior is deliberate. But it's not consistent with how statically declared resources are handled: if inline styling is used instead of JS in the test above, reloading the tab refreshes the image as expected. I tracked this down to CachedResourceLoader::determineRevalidationPolicy(): // Check if the cache headers requires us to revalidate (cache expiration for example). if (existingResource->mustRevalidateDueToCacheHeaders(cachePolicy())) { ... return Reload; } return Use; While the page is loading, cachePolicy() returns CachePolicyRevalidate and the branch is taken, forcing a reload. After the frame loader is finished, the cache policy is CachePolicyVerify due to FrameLoader::subresourceCachePolicy(): if (m_isComplete) return CachePolicyVerify; Since local resources never expire, the branch is not taken anymore and the cached resource is used. I'm not familiar with the caching infrastructure, so it's unclear to me how/whether the behavior in these two cases can be aligned without making local resources effectively uncacheable. Maybe purging non-http resources on reload could be a compromise?
Attachments
Local resource caching test
(39.13 KB, application/zip)
2012-09-18 14:22 PDT
,
Florin Malita
no flags
Details
View All
Add attachment
proposed patch, testcase, etc.
Antti Koivisto
Comment 1
2012-09-19 13:43:07 PDT
What is the actual problem you are having? That dynamically loaded local resources fail to update on reload?
Florin Malita
Comment 2
2012-09-19 14:26:11 PDT
(In reply to
comment #1
)
> What is the actual problem you are having? That dynamically loaded local resources fail to update on reload?
That's the original Chromium bug report, yes:
http://code.google.com/p/chromium/issues/detail?id=46494
But, personally, I find the inconsistency in behavior for statically loaded local resources vs. dynamically loaded local resources to be the real issue (in the sense that I could buy the argument that in the absence of any hints and specialized validators we are caching local resources indefinitely, as long as the reload behavior is consistent).
Alexey Proskuryakov
Comment 3
2012-09-19 14:39:23 PDT
That inconsistency exists for remote resources too, and is a multi-faceted issue. See
bug 30862
.
Florin Malita
Comment 4
2012-09-19 15:12:51 PDT
(In reply to
comment #3
)
> That inconsistency exists for remote resources too, and is a multi-faceted issue. See
bug 30862
.
I see - then it makes sense to mark this as a dupe. *** This bug has been marked as a duplicate of
bug 30862
***
Note
You need to
log in
before you can comment on or make changes to this bug.
Top of Page
Format For Printing
XML
Clone This Bug