Bug 1044586 - fix propagating document events to the window when the inner window has changed, r?smaug draft
authorGijs Kruitbosch <gijskruitbosch@gmail.com>
Wed, 30 Nov 2016 18:33:55 +0000
changeset 446001 54781fcb0785b05f5320f013b622cc231f51b657
parent 445848 13736e2db6eb94b02dd28cc88f2943b8109aa374
child 538676 4afdcdf60533a153d2a49ea236c2b18fb558625c
push id37669
push usergijskruitbosch@gmail.com
push dateWed, 30 Nov 2016 18:49:00 +0000
reviewerssmaug
bugs1044586
milestone53.0a1
Bug 1044586 - fix propagating document events to the window when the inner window has changed, r?smaug MozReview-Commit-ID: G6yPBwbITvG
dom/base/nsDocument.cpp
--- a/dom/base/nsDocument.cpp
+++ b/dom/base/nsDocument.cpp
@@ -7632,19 +7632,22 @@ nsDocument::GetEventTargetParent(EventCh
 {
   aVisitor.mCanHandle = true;
    // FIXME! This is a hack to make middle mouse paste working also in Editor.
    // Bug 329119
   aVisitor.mForceContentDispatch = true;
 
   // Load events must not propagate to |window| object, see bug 335251.
   if (aVisitor.mEvent->mMessage != eLoad) {
-    nsGlobalWindow* window = nsGlobalWindow::Cast(GetWindow());
-    aVisitor.mParentTarget =
-      window ? window->GetTargetForEventTargetChain() : nullptr;
+    nsPIDOMWindowInner* innerWindow = GetInnerWindow();
+    if (innerWindow && innerWindow->IsCurrentInnerWindow()) {
+      nsGlobalWindow* window = nsGlobalWindow::Cast(GetWindow());
+      aVisitor.mParentTarget =
+        window ? window->GetTargetForEventTargetChain() : nullptr;
+    }
   }
   return NS_OK;
 }
 
 NS_IMETHODIMP
 nsDocument::CreateEvent(const nsAString& aEventType, nsIDOMEvent** aReturn)
 {
   NS_ENSURE_ARG_POINTER(aReturn);