Fixes for bugs 17460 and 21656. r=travis
git-svn-id: svn://10.0.0.236/trunk@57811 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
@@ -2299,21 +2299,29 @@ PresShell::GetHistoryState(nsILayoutHistoryState** aState)
|
||||
|
||||
NS_PRECONDITION(nsnull != aState, "null state pointer");
|
||||
|
||||
// Create the document state object
|
||||
rv = NS_NewLayoutHistoryState(aState);
|
||||
if (!mHistoryState) {
|
||||
// Create the document state object
|
||||
rv = NS_NewLayoutHistoryState(aState); // This addrefs
|
||||
|
||||
if (NS_FAILED(rv)) {
|
||||
*aState = nsnull;
|
||||
return rv;
|
||||
if (NS_FAILED(rv)) {
|
||||
*aState = nsnull;
|
||||
return rv;
|
||||
}
|
||||
|
||||
// Capture frame state for the entire frame hierarchy
|
||||
nsIFrame* rootFrame = nsnull;
|
||||
rv = GetRootFrame(&rootFrame);
|
||||
if (NS_FAILED(rv) || nsnull == rootFrame) return rv;
|
||||
|
||||
rv = mFrameManager->CaptureFrameState(mPresContext, rootFrame, *aState);
|
||||
|
||||
mHistoryState = *aState;
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
// Capture frame state for the entire frame hierarchy
|
||||
nsIFrame* rootFrame = nsnull;
|
||||
rv = GetRootFrame(&rootFrame);
|
||||
if (NS_FAILED(rv) || nsnull == rootFrame) return rv;
|
||||
|
||||
rv = mFrameManager->CaptureFrameState(mPresContext, rootFrame, *aState);
|
||||
|
||||
|
||||
*aState = mHistoryState;
|
||||
NS_IF_ADDREF(mHistoryState);
|
||||
|
||||
return rv;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user