Bug 790856, ensure bounds on the previous viewer, r=bz, a=akeybl
authorOlli Pettay <Olli.Pettay@helsinki.fi>
Fri, 21 Sep 2012 10:39:53 +0300
changeset 104815 5013b57e5c4052452f1e5ad74485f1914f1601dd
parent 104814 e509d037dbbc05dbf7e4d890f23522bdfc83c651
child 104816 df803200c049e0e3668f4b77bee955bd638a2ac9
push id1439
push useropettay@mozilla.com
push dateFri, 21 Sep 2012 07:45:56 +0000
treeherdermozilla-beta@5013b57e5c40 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersbz, akeybl
bugs790856
milestone16.0
Bug 790856, ensure bounds on the previous viewer, r=bz, a=akeybl
layout/base/nsDocumentViewer.cpp
--- a/layout/base/nsDocumentViewer.cpp
+++ b/layout/base/nsDocumentViewer.cpp
@@ -1875,18 +1875,20 @@ DocumentViewerImpl::SetBounds(const nsIn
 
   // If there's a previous viewer, it's the one that's actually showing,
   // so be sure to resize it as well so it paints over the right area.
   // This may slow down the performance of the new page load, but resize
   // during load is also probably a relatively unusual condition
   // relating to things being hidden while something is loaded.  It so
   // happens that Firefox does this a good bit with its infobar, and it
   // looks ugly if we don't do this.
-  if (mPreviousViewer)
-    mPreviousViewer->SetBounds(aBounds);
+  if (mPreviousViewer) {
+    nsCOMPtr<nsIContentViewer> previousViewer = mPreviousViewer;
+    previousViewer->SetBounds(aBounds);
+  }
 
   return NS_OK;
 }
 
 NS_IMETHODIMP
 DocumentViewerImpl::Move(PRInt32 aX, PRInt32 aY)
 {
   NS_ENSURE_TRUE(mDocument, NS_ERROR_NOT_AVAILABLE);