2012-02-16 Antonio Gomes <agomes@rim.com>
authortonikitoo@webkit.org <tonikitoo@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 17 Feb 2012 00:04:23 +0000 (00:04 +0000)
committertonikitoo@webkit.org <tonikitoo@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 17 Feb 2012 00:04:23 +0000 (00:04 +0000)
        Crash @WebPagePrivate::enqueueRenderingOfClippedContentOfScrollableNodeAfterInRegionScrolling MKS_2986818
        https://bugs.webkit.org/show_bug.cgi?id=78845

        Reviewed by Rob Buis.

        We were trying to operate on a cached Node when its page/frame/document
        were gone to PageCache already. To avoid such problems, lets clean up
        any document data we have cached when the Frame goes into the cache.

        * WebCoreSupport/FrameLoaderClientBlackBerry.cpp:
        (WebCore::FrameLoaderClientBlackBerry::didSaveToPageCache):
        (WebCore):
        * WebCoreSupport/FrameLoaderClientBlackBerry.h:
        (FrameLoaderClientBlackBerry):

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

Source/WebKit/blackberry/ChangeLog
Source/WebKit/blackberry/WebCoreSupport/FrameLoaderClientBlackBerry.cpp
Source/WebKit/blackberry/WebCoreSupport/FrameLoaderClientBlackBerry.h

index 6c453cb..e8d8499 100644 (file)
@@ -1,5 +1,22 @@
 2012-02-16  Antonio Gomes  <agomes@rim.com>
 
+        Crash @WebPagePrivate::enqueueRenderingOfClippedContentOfScrollableNodeAfterInRegionScrolling MKS_2986818
+        https://bugs.webkit.org/show_bug.cgi?id=78845
+
+        Reviewed by Rob Buis.
+
+        We were trying to operate on a cached Node when its page/frame/document
+        were gone to PageCache already. To avoid such problems, lets clean up
+        any document data we have cached when the Frame goes into the cache.
+
+        * WebCoreSupport/FrameLoaderClientBlackBerry.cpp:
+        (WebCore::FrameLoaderClientBlackBerry::didSaveToPageCache):
+        (WebCore):
+        * WebCoreSupport/FrameLoaderClientBlackBerry.h:
+        (FrameLoaderClientBlackBerry):
+
+2012-02-16  Antonio Gomes  <agomes@rim.com>
+
         [BlackBerry] Upstream touch handling related classes
         https://bugs.webkit.org/show_bug.cgi?id=78509
 
index 779865f..d0c72a0 100644 (file)
@@ -1209,6 +1209,13 @@ bool FrameLoaderClientBlackBerry::canCachePage() const
     return true;
 }
 
+void FrameLoaderClientBlackBerry::didSaveToPageCache()
+{
+    // When page goes into PageCache, clean up any possible
+    // document data cache we might have.
+    m_webPagePrivate->clearDocumentData(m_frame->document());
+}
+
 void FrameLoaderClientBlackBerry::provisionalLoadStarted()
 {
     // We would like to hide the virtual keyboard before it navigates to another page
index a3fcfd9..2983d01 100644 (file)
@@ -143,7 +143,7 @@ public:
     virtual void transitionToCommittedFromCachedFrame(CachedFrame*) { notImplemented(); }
     virtual void transitionToCommittedForNewPage();
     virtual bool canCachePage() const;
-    virtual void didSaveToPageCache() { }
+    virtual void didSaveToPageCache();
     virtual void didRestoreFromPageCache();
     virtual void dispatchDidBecomeFrameset(bool) { }
     virtual void download(ResourceHandle*, const ResourceRequest&, const ResourceRequest&, const ResourceResponse&);