Reviewed by Darin Adler.
authormitz@apple.com <mitz@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 21 Jan 2008 02:01:26 +0000 (02:01 +0000)
committermitz@apple.com <mitz@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 21 Jan 2008 02:01:26 +0000 (02:01 +0000)
        - fix http://bugs.webkit.org/show_bug.cgi?id=16951
          Assertion failure in FrameView::scheduleRelayout (!m_frame->document() || !m_frame->document()->inPageCache()) when going back from a page with a focused popup

        * dom/Document.cpp:
        (WebCore::Document::setFocusedNode): Bail out if the document is in the
        page cache. Documents in the back/forward cache are "frozen" and should
        not change state.

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

WebCore/ChangeLog
WebCore/dom/Document.cpp

index b6c98cd2eb5c3eef4cae552996566002c7fbeffc..ba3c2b6091363088b92a80be51f060b4585a6cd3 100644 (file)
@@ -1,3 +1,15 @@
+2008-01-20  Dan Bernstein  <mitz@apple.com>
+
+        Reviewed by Darin Adler.
+
+        - fix http://bugs.webkit.org/show_bug.cgi?id=16951
+          Assertion failure in FrameView::scheduleRelayout (!m_frame->document() || !m_frame->document()->inPageCache()) when going back from a page with a focused popup
+
+        * dom/Document.cpp:
+        (WebCore::Document::setFocusedNode): Bail out if the document is in the
+        page cache. Documents in the back/forward cache are "frozen" and should
+        not change state.
+
 2008-01-20  Collin Jackson  <webkit@collinjackson.com>
 
         Reviewed by Sam Weinig.
index df978415bfd57a7b7ac44bd8663cb2cc4a450497..5f60949a452932d6c131fa33be7caad5043074bf 100644 (file)
@@ -2262,7 +2262,10 @@ bool Document::setFocusedNode(PassRefPtr<Node> newFocusedNode)
 
     if (m_focusedNode == newFocusedNode)
         return true;
-        
+
+    if (m_inPageCache)
+        return false;
+
     bool focusChangeBlocked = false;
     RefPtr<Node> oldFocusedNode = m_focusedNode;
     m_focusedNode = 0;