If we created a transient about:blank content viewer, make sure we're locating the root view sibling for that viewer and not the viewer it's replacing. Bug 300533, r=cbiesinger, a=brendan.

git-svn-id: svn://10.0.0.236/branches/MOZILLA_1_8_BRANCH@178811 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
bryner%brianryner.com
2005-08-24 18:59:52 +00:00
parent c54847b45d
commit ea3bedd716
2 changed files with 21 additions and 2 deletions

View File

@@ -4734,7 +4734,7 @@ nsDocShell::EnsureDeviceContext()
return NS_OK;
}
NS_IMETHODIMP
nsresult
nsDocShell::CreateAboutBlankContentViewer()
{
nsCOMPtr<nsIDocument> blankDoc;
@@ -4807,6 +4807,10 @@ nsDocShell::CreateAboutBlankContentViewer()
}
}
mCreatingDocument = PR_FALSE;
// The transient about:blank viewer doesn't have a session history entry.
SetHistoryEntry(&mOSHE, nsnull);
return rv;
}
@@ -5206,6 +5210,21 @@ nsDocShell::RestoreFromHistory()
mSavedRefreshURIList = nsnull;
// In cases where we use a transient about:blank viewer between loads,
// we never show the transient viewer, so _its_ previous viewer is never
// unhooked from the view hierarchy. Destroy any such previous viewer now,
// before we grab the root view sibling, so that we don't grab a view
// that's about to go away.
if (mContentViewer) {
nsCOMPtr<nsIContentViewer> previousViewer;
mContentViewer->GetPreviousViewer(getter_AddRefs(previousViewer));
if (previousViewer) {
mContentViewer->SetPreviousViewer(nsnull);
previousViewer->Destroy();
}
}
// Save off the root view's parent and sibling so that we can insert the
// new content viewer's root view at the same position. Also save the
// bounds of the root view's widget.

View File

@@ -275,7 +275,7 @@ protected:
// Content Viewer Management
NS_IMETHOD EnsureContentViewer();
NS_IMETHOD EnsureDeviceContext();
NS_IMETHOD CreateAboutBlankContentViewer();
nsresult CreateAboutBlankContentViewer();
NS_IMETHOD CreateContentViewer(const char * aContentType,
nsIRequest * request, nsIStreamListener ** aContentHandler);
NS_IMETHOD NewContentViewerObj(const char * aContentType,