Bug 1364364 - Part 6: Re-connect nsDocViewerFocusListener in nsDocumentViewer::Open. r?smaug draft
authorSamael Wang <freesamael@gmail.com>
Tue, 05 Sep 2017 18:16:10 +0800
changeset 664562 c5cb09249cb071b9ca2024d42660311aa942f481
parent 664561 dad6ed482e3d9cc6f1ebef0b16c4825220febe43
child 731470 818e7759c982e9620ab2e74f742c6aa40feb93fd
push id79723
push userbmo:sawang@mozilla.com
push dateThu, 14 Sep 2017 03:01:27 +0000
reviewerssmaug
bugs1364364
milestone57.0a1
Bug 1364364 - Part 6: Re-connect nsDocViewerFocusListener in nsDocumentViewer::Open. r?smaug I noticed this error message on fixing dom/workers/test/test_suspend.html: WARNING: NS_ENSURE_TRUE(mDocViewer) failed: file layout/base/nsDocumentViewer.cpp, line 3863 It happens when a nsDocumentViewer::Close() is followed by a nsDocumentViewer::Open(), the viewer would have been disconnected. Since it takes only one-line change to fix I just include it in this bug. MozReview-Commit-ID: LMT2PJkUqi1
layout/base/nsDocumentViewer.cpp
--- a/layout/base/nsDocumentViewer.cpp
+++ b/layout/base/nsDocumentViewer.cpp
@@ -1502,16 +1502,18 @@ nsDocumentViewer::Open(nsISupports *aSta
       nsCOMPtr<nsIDocShell> shell = do_QueryInterface(item);
       AttachContainerRecurse(shell);
     }
   }
 
   SyncParentSubDocMap();
 
   if (mFocusListener && mDocument) {
+    // The focus listener may have been disconnected.
+    mFocusListener->Init(this);
     mDocument->AddEventListener(NS_LITERAL_STRING("focus"), mFocusListener,
                                 false, false);
     mDocument->AddEventListener(NS_LITERAL_STRING("blur"), mFocusListener,
                                 false, false);
   }
 
   // XXX re-enable image animations once that works correctly