2009-03-04 Brady Eidson <beidson@apple.com>
authorbeidson@apple.com <beidson@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 4 Mar 2009 18:25:50 +0000 (18:25 +0000)
committerbeidson@apple.com <beidson@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 4 Mar 2009 18:25:50 +0000 (18:25 +0000)
        Reviewed by Darin Adler

        <rdar://problem/6619630> Quick Look of vCards stuck on image of first card opened.

        I narrowed this down to http://trac.webkit.org/changeset/39304 which, among other things,
        consolidated some of the various decision making pieces of the Cache into the new method
        FrameLoader::cachePolicy().

        Before 39304, when deciding whether to use an existing CachedResource, we checked if the FrameLoader
        is reloading.  If it is, we'd evict any existing resource then recreate it.  Quick looks uses the
        same URL for this image every time and expects it to be reloaded with each new card.

        The FrameLoader::isReloading() check did one thing - Ask the DocumentLoader if it's cache policy
        is "ReloadIgnoringCacheData".  This check was lost in the consolidation to the new method.

        * loader/FrameLoader.cpp:
        (WebCore::FrameLoader::cachePolicy): Restore the DocumentLoader's cachePolicy check as a possible
          condition for returning CachePolicyReload.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@41425 268f45cc-cd09-0410-ab3c-d52691b4dbfc

WebCore/ChangeLog
WebCore/loader/FrameLoader.cpp

index c79dcbbf7c7b7c0fda9013988ae1e946558294a3..b10388261663e0c42688cf14c3be82e8d2a51812 100644 (file)
@@ -1,3 +1,24 @@
+2009-03-04  Brady Eidson  <beidson@apple.com>
+
+        Reviewed by Darin Adler
+
+        <rdar://problem/6619630> Quick Look of vCards stuck on image of first card opened.
+
+        I narrowed this down to http://trac.webkit.org/changeset/39304 which, among other things,
+        consolidated some of the various decision making pieces of the Cache into the new method
+        FrameLoader::cachePolicy().
+
+        Before 39304, when deciding whether to use an existing CachedResource, we checked if the FrameLoader 
+        is reloading.  If it is, we'd evict any existing resource then recreate it.  Quick looks uses the
+        same URL for this image every time and expects it to be reloaded with each new card.
+
+        The FrameLoader::isReloading() check did one thing - Ask the DocumentLoader if it's cache policy
+        is "ReloadIgnoringCacheData".  This check was lost in the consolidation to the new method.  
+
+        * loader/FrameLoader.cpp:
+        (WebCore::FrameLoader::cachePolicy): Restore the DocumentLoader's cachePolicy check as a possible
+          condition for returning CachePolicyReload.
+
 2009-03-04  Timothy Hatcher  <timothy@apple.com>
 
         * English.lproj/localizedStrings.js: Update strings to include "DATABASES",
index 80872ee3d9eca3ac11c08b2810c5b506c058f698..aae0539083e5cc423f3132461fc1f42b73ebbeed 100644 (file)
@@ -3237,7 +3237,7 @@ CachePolicy FrameLoader::cachePolicy() const
     if (m_isComplete)
         return CachePolicyVerify;
     
-    if (m_loadType == FrameLoadTypeReloadFromOrigin)
+    if (m_loadType == FrameLoadTypeReloadFromOrigin || documentLoader()->request().cachePolicy() == ReloadIgnoringCacheData)
         return CachePolicyReload;
     
     if (Frame* parentFrame = m_frame->tree()->parent()) {