Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(199)

Unified Diff: third_party/WebKit/Source/core/events/EventPath.cpp

Issue 2742293006: Support event handling in SVG's use-element shadow trees (Closed)
Patch Set: needs rebaseline Created 3 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: third_party/WebKit/Source/core/events/EventPath.cpp
diff --git a/third_party/WebKit/Source/core/events/EventPath.cpp b/third_party/WebKit/Source/core/events/EventPath.cpp
index 1d6dd0e5c4d80c779ec9d808be85eb6464fb29c5..f5203baa66677f462b2f9694287253eec5477d93 100644
--- a/third_party/WebKit/Source/core/events/EventPath.cpp
+++ b/third_party/WebKit/Source/core/events/EventPath.cpp
@@ -35,7 +35,6 @@
#include "core/events/TouchEvent.h"
#include "core/events/TouchEventContext.h"
#include "core/html/HTMLSlotElement.h"
-#include "core/svg/SVGUseElement.h"
namespace blink {
@@ -75,21 +74,12 @@ void EventPath::initializeWith(Node& node, Event* event) {
initialize();
}
-static inline bool eventPathShouldBeEmptyFor(Node& node, Event* event) {
- if (node.isPseudoElement() && !node.parentElement())
- return true;
-
- // Do not dispatch non-composed events in SVG use trees.
- if (node.isSVGElement()) {
- if (toSVGElement(node).inUseShadowTree() && event && !event->composed())
- return true;
- }
-
- return false;
+static inline bool eventPathShouldBeEmptyFor(Node& node) {
+ return node.isPseudoElement() && !node.parentElement();
}
void EventPath::initialize() {
- if (eventPathShouldBeEmptyFor(*m_node, m_event))
+ if (eventPathShouldBeEmptyFor(*m_node))
return;
calculatePath();
@@ -109,16 +99,6 @@ void EventPath::calculatePath() {
HeapVector<Member<Node>, 64> nodesInPath;
Node* current = m_node;
- // Exclude nodes in SVG <use>'s shadow tree from event path.
- // See crbug.com/630870
- while (current->isSVGElement()) {
- SVGUseElement* correspondingUseElement =
- toSVGElement(current)->correspondingUseElement();
- if (!correspondingUseElement)
- break;
- current = correspondingUseElement;
- }
-
nodesInPath.push_back(current);
while (current) {
if (m_event && current->keepEventInNode(m_event))
« no previous file with comments | « third_party/WebKit/Source/core/events/EventListenerMap.cpp ('k') | third_party/WebKit/Source/core/layout/HitTestResult.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698