Reviewed by Antti
authorbeidson <beidson@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 11 Apr 2007 18:22:20 +0000 (18:22 +0000)
committerbeidson <beidson@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 11 Apr 2007 18:22:20 +0000 (18:22 +0000)
        <rdar://problem/5125648> and http://bugs.webkit.org/show_bug.cgi?id=13326

        Crash opening a link in a new window from Gmail

        Problem here is that the currentHistoryItem in the new window is null.  This *shouldn't* be the case,
        and is the cause of a very long standing bug -
        http://bugs.webkit.org/show_bug.cgi?id=3546 - Can't go back to first page in new window opened from gmail

        For now, adding a null check prevents this crash and restores the original, long standing regression

        * loader/FrameLoader.cpp:
        (WebCore::FrameLoader::updateHistoryForInternalLoad): NULL check

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

WebCore/ChangeLog
WebCore/loader/FrameLoader.cpp

index 72eb408..ea2b02b 100644 (file)
@@ -1,3 +1,20 @@
+2007-04-11  Brady Eidson  <beidson@apple.com>
+
+        Reviewed by Antti
+
+        <rdar://problem/5125648> and http://bugs.webkit.org/show_bug.cgi?id=13326
+
+        Crash opening a link in a new window from Gmail
+
+        Problem here is that the currentHistoryItem in the new window is null.  This *shouldn't* be the case, 
+        and is the cause of a very long standing bug - 
+        http://bugs.webkit.org/show_bug.cgi?id=3546 - Can't go back to first page in new window opened from gmail
+
+        For now, adding a null check prevents this crash and restores the original, long standing regression
+        * loader/FrameLoader.cpp:
+        (WebCore::FrameLoader::updateHistoryForInternalLoad): NULL check
+
 2007-04-11  Adam Roben  <aroben@apple.com>
 
         Reviewed by Anders.
index a24bea0..f3e7c82 100644 (file)
@@ -4030,8 +4030,10 @@ void FrameLoader::updateHistoryForInternalLoad()
 #endif
     
     if (documentLoader()->isClientRedirect()) {
-        m_currentHistoryItem->setURL(documentLoader()->URL());
-        m_currentHistoryItem->setFormInfoFromRequest(documentLoader()->request());
+        if (m_currentHistoryItem) {
+            m_currentHistoryItem->setURL(documentLoader()->URL());
+            m_currentHistoryItem->setFormInfoFromRequest(documentLoader()->request());
+        }
     } else {
         // Add an item to the item tree for this frame
         Frame* parentFrame = m_frame->tree()->parent();