ASSERTION FAILED: !node || node->isShadowRoot() in WebCore::EventRetargeter::eventTar...
authorrniwa@webkit.org <rniwa@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 19 Aug 2013 19:34:25 +0000 (19:34 +0000)
committerrniwa@webkit.org <rniwa@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 19 Aug 2013 19:34:25 +0000 (19:34 +0000)
https://bugs.webkit.org/show_bug.cgi?id=119720

Reviewed by Andy Estes.

Merge https://chromium.googlesource.com/chromium/blink/+/4ce9bfbf54410179cd0f18b3d1a912045fc0ec3d

* dom/EventRetargeter.h:
(WebCore::EventRetargeter::eventTargetRespectingTargetRules):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@154289 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Source/WebCore/ChangeLog
Source/WebCore/dom/EventRetargeter.h

index 804bf98df0d631ccfc84c779d47eb397084af8b3..3119a0e825cb326275b783c5b786c15223540e91 100644 (file)
@@ -1,3 +1,15 @@
+2013-08-19  Ryosuke Niwa  <rniwa@webkit.org>
+
+        ASSERTION FAILED: !node || node->isShadowRoot() in WebCore::EventRetargeter::eventTargetRespectingTargetRules
+        https://bugs.webkit.org/show_bug.cgi?id=119720
+
+        Reviewed by Andy Estes.
+
+        Merge https://chromium.googlesource.com/chromium/blink/+/4ce9bfbf54410179cd0f18b3d1a912045fc0ec3d
+
+        * dom/EventRetargeter.h:
+        (WebCore::EventRetargeter::eventTargetRespectingTargetRules):
+
 2013-08-19  Darin Adler  <darin@apple.com>
 
         <https://webkit.org/b/120013> Tighten up logic in HTMLTableRowsCollection
index 6ddac006311d48c96fc54dde64bfe0a80a6833ad..ff2b625e02081cc66a84b9d0207597e7400343b9 100644 (file)
@@ -90,7 +90,8 @@ inline EventTarget* EventRetargeter::eventTargetRespectingTargetRules(Node* refe
 
     // Spec: The event handling for the non-exposed tree works as if the referenced element had been textually included
     // as a deeply cloned child of the 'use' element, except that events are dispatched to the SVGElementInstance objects
-    Element* shadowHostElement = toShadowRoot(referenceNode->treeScope()->rootNode())->hostElement();
+    Node* rootNode = referenceNode->treeScope()->rootNode();
+    Element* shadowHostElement = rootNode->isShadowRoot() ? toShadowRoot(rootNode)->hostElement() : 0;
     // At this time, SVG nodes are not supported in non-<use> shadow trees.
     if (!shadowHostElement || !shadowHostElement->hasTagName(SVGNames::useTag))
         return referenceNode;