Title: [165133] branches/safari-537.75-branch/Source/WebCore

Diff

Modified: branches/safari-537.75-branch/Source/WebCore/ChangeLog (165132 => 165133)


--- branches/safari-537.75-branch/Source/WebCore/ChangeLog	2014-03-05 22:41:51 UTC (rev 165132)
+++ branches/safari-537.75-branch/Source/WebCore/ChangeLog	2014-03-05 22:59:18 UTC (rev 165133)
@@ -1,5 +1,46 @@
 2014-03-05  Matthew Hanson  <[email protected]>
 
+        Merge r159986.
+
+    2013-12-02  Brady Eidson  <[email protected]> 
+
+            Possible crash in ProgressTracker::progressHeartbeatTimerFired(Timer<ProgressTracker>*) 
+            https://bugs.webkit.org/show_bug.cgi?id=125110 
+
+            Reviewed by Darin Adler. 
+
+            FrameLoader::loadProgressingStatusChanged() might be called while the Frame has a null FrameView. 
+
+            It’s unclear how to reproduce, but there’s no harm in a null check. 
+
+            * loader/FrameLoader.cpp: 
+            (WebCore::FrameLoader::loadProgressingStatusChanged): 
+
+2014-03-05  Matthew Hanson  <[email protected]>
+
+        Merge r159974.
+
+    2013-12-02  Brady Eidson  <[email protected]> 
+
+            Possible crash in ProgressTracker::progressHeartbeatTimerFired(Timer<ProgressTracker>*) 
+            https://bugs.webkit.org/show_bug.cgi?id=125110 
+
+            Reviewed by Darin Adler. 
+
+            It’s possible to have a null m_originatingProgressFrame when the heartbeat timer fires. 
+
+            On the surface this seems impossible because the only time m_originatingProgressFrame is cleared 
+            out the heartbeat timer is also stopped. 
+
+            But there’s likely still a race condition in multi-threaded environments. 
+
+            There’s no harm in null-checking m_originatingProgressFrame before accessing its loader. 
+
+            * loader/ProgressTracker.cpp: 
+            (WebCore::ProgressTracker::progressHeartbeatTimerFired): 
+
+2014-03-05  Matthew Hanson  <[email protected]>
+
         Merge r162063.
 
     2014-01-15  Antti Koivisto  <[email protected]>

Modified: branches/safari-537.75-branch/Source/WebCore/loader/FrameLoader.cpp (165132 => 165133)


--- branches/safari-537.75-branch/Source/WebCore/loader/FrameLoader.cpp	2014-03-05 22:41:51 UTC (rev 165132)
+++ branches/safari-537.75-branch/Source/WebCore/loader/FrameLoader.cpp	2014-03-05 22:59:18 UTC (rev 165133)
@@ -3383,6 +3383,9 @@
 void FrameLoader::loadProgressingStatusChanged()
 {
     FrameView* view = m_frame->page()->mainFrame()->view();
+    if (!view)
+        return;
+
     view->updateLayerFlushThrottlingInAllFrames();
     view->adjustTiledBackingCoverage();
 }

Modified: branches/safari-537.75-branch/Source/WebCore/loader/ProgressTracker.cpp (165132 => 165133)


--- branches/safari-537.75-branch/Source/WebCore/loader/ProgressTracker.cpp	2014-03-05 22:41:51 UTC (rev 165132)
+++ branches/safari-537.75-branch/Source/WebCore/loader/ProgressTracker.cpp	2014-03-05 22:59:18 UTC (rev 165133)
@@ -302,7 +302,8 @@
 
     m_totalBytesReceivedBeforePreviousHeartbeat = m_totalBytesReceived;
 
-    m_originatingProgressFrame->loader()->loadProgressingStatusChanged();
+    if (m_originatingProgressFrame)
+        m_originatingProgressFrame->loader()->loadProgressingStatusChanged();
 
     if (m_progressValue >= finalProgressValue)
         m_progressHeartbeatTimer.stop();
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to