Changeset 115549 in webkit
- Timestamp:
- Apr 27, 2012 11:28:37 PM (12 years ago)
- Location:
- trunk/Source/WebCore
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r115546 r115549 1 2012-04-27 Jochen Eisinger <jochen@chromium.org> 2 3 Ensure that there's always a provisional document loader if the frame loader is in provisional state 4 https://bugs.webkit.org/show_bug.cgi?id=83894 5 6 Reviewed by Nate Chapin. 7 8 We're still seeing crashes in the FrameLoader where the FrameLoader's 9 state is "provisional" but there is no provisional document loader. I 10 added code to update the FrameLoader's state everytime the provisional 11 document loader is cleared, and added checks that the FrameLoader's 12 state can't be set to provisional without a provisional loader. 13 14 If the crashes go away, or the newly added checks reveal the culprit, 15 we should relex the checks to use ASSERT() instead of CRASH(). 16 17 * loader/FrameLoader.cpp: 18 (WebCore::FrameLoader::init): 19 (WebCore::FrameLoader::setupForReplace): 20 (WebCore::FrameLoader::stopAllLoaders): 21 (WebCore::FrameLoader::clearProvisionalLoad): 22 (WebCore::FrameLoader::continueFragmentScrollAfterNavigationPolicy): 23 (WebCore::FrameLoader::continueLoadAfterNavigationPolicy): 24 1 25 2012-04-27 Geoffrey Garen <ggaren@apple.com> 2 26 -
trunk/Source/WebCore/loader/FrameLoader.cpp
r115498 r115549 218 218 m_stateMachine.advanceTo(FrameLoaderStateMachine::CreatingInitialEmptyDocument); 219 219 setPolicyDocumentLoader(m_client->createDocumentLoader(ResourceRequest(KURL(ParsedURLString, emptyString())), SubstituteData()).get()); 220 // FIXME: Make this an ASSERT() instead once we figured out what's going wrong. 221 if (!m_policyDocumentLoader.get()) 222 CRASH(); 220 223 setProvisionalDocumentLoader(m_policyDocumentLoader.get()); 221 224 setState(FrameStateProvisional); … … 1116 1119 void FrameLoader::setupForReplace() 1117 1120 { 1121 // FIXME: Make this an ASSERT() instead once we figured out what's going wrong. 1122 if (!m_documentLoader.get()) 1123 CRASH(); 1118 1124 setState(FrameStateProvisional); 1119 1125 m_provisionalDocumentLoader = m_documentLoader; … … 1524 1530 1525 1531 setProvisionalDocumentLoader(0); 1532 if (m_state == FrameStateProvisional) 1533 setState(FrameStateComplete); 1526 1534 1527 1535 m_checkTimer.stop(); … … 1638 1646 void FrameLoader::clearProvisionalLoad() 1639 1647 { 1640 setProvisionalDocumentLoader(0);1641 1648 if (Page* page = m_frame->page()) 1642 1649 page->progress()->progressCompleted(m_frame); 1650 setProvisionalDocumentLoader(0); 1643 1651 setState(FrameStateComplete); 1644 1652 } … … 2596 2604 m_provisionalDocumentLoader->stopLoading(); 2597 2605 setProvisionalDocumentLoader(0); 2606 // FIXME: Make this an ASSERT() instead once we figured out what's going wrong. 2607 if (m_state == FrameStateProvisional) 2608 CRASH(); 2598 2609 } 2599 2610 … … 2758 2769 #endif 2759 2770 2771 // FIXME: Make this an ASSERT() instead once we figured out what's going wrong. 2772 if (!m_policyDocumentLoader.get()) 2773 CRASH(); 2760 2774 setProvisionalDocumentLoader(m_policyDocumentLoader.get()); 2761 2775 m_loadType = type;
Note: See TracChangeset
for help on using the changeset viewer.