Title: [120806] trunk/Source/WebCore
- Revision
- 120806
- Author
- [email protected]
- Date
- 2012-06-19 23:29:59 -0700 (Tue, 19 Jun 2012)
Log Message
Assertion for event's target is wrong.
https://bugs.webkit.org/show_bug.cgi?id=89479
Reviewed by Hajime Morita.
Fix an assertion to ensure that event's target is reachable from a current target.
No new tests. Fix an assert condition.
* dom/EventContext.cpp:
(WebCore::EventContext::EventContext):
* dom/EventContext.h:
(EventContext):
(WebCore::EventContext::setRelatedTarget):
(WebCore::EventContext::isUnreachableNode):
(WebCore):
(WebCore::EventContext::isReachable):
Modified Paths
Diff
Modified: trunk/Source/WebCore/ChangeLog (120805 => 120806)
--- trunk/Source/WebCore/ChangeLog 2012-06-20 06:23:13 UTC (rev 120805)
+++ trunk/Source/WebCore/ChangeLog 2012-06-20 06:29:59 UTC (rev 120806)
@@ -1,3 +1,23 @@
+2012-06-19 Hayato Ito <[email protected]>
+
+ Assertion for event's target is wrong.
+ https://bugs.webkit.org/show_bug.cgi?id=89479
+
+ Reviewed by Hajime Morita.
+
+ Fix an assertion to ensure that event's target is reachable from a current target.
+
+ No new tests. Fix an assert condition.
+
+ * dom/EventContext.cpp:
+ (WebCore::EventContext::EventContext):
+ * dom/EventContext.h:
+ (EventContext):
+ (WebCore::EventContext::setRelatedTarget):
+ (WebCore::EventContext::isUnreachableNode):
+ (WebCore):
+ (WebCore::EventContext::isReachable):
+
2012-06-19 Benjamin Poulain <[email protected]>
Refactoring: Geolocation::startRequest() should not create the GeoNotifiers
Modified: trunk/Source/WebCore/dom/EventContext.cpp (120805 => 120806)
--- trunk/Source/WebCore/dom/EventContext.cpp 2012-06-20 06:23:13 UTC (rev 120805)
+++ trunk/Source/WebCore/dom/EventContext.cpp 2012-06-20 06:29:59 UTC (rev 120806)
@@ -42,7 +42,7 @@
, m_relatedTarget(0)
{
ASSERT(m_node);
- ASSERT(!m_target || m_target->toNode() || accessible(m_target->toNode()));
+ ASSERT(!isUnreachableNode(m_target.get()));
}
void EventContext::handleLocalEvents(Event* event) const
Modified: trunk/Source/WebCore/dom/EventContext.h (120805 => 120806)
--- trunk/Source/WebCore/dom/EventContext.h 2012-06-20 06:23:13 UTC (rev 120805)
+++ trunk/Source/WebCore/dom/EventContext.h 2012-06-20 06:29:59 UTC (rev 120806)
@@ -50,7 +50,8 @@
private:
#ifndef NDEBUG
- bool accessible(Node*);
+ bool isUnreachableNode(EventTarget*);
+ bool isReachable(Node*);
#endif
RefPtr<Node> m_node;
RefPtr<EventTarget> m_currentTarget;
@@ -80,13 +81,19 @@
inline void EventContext::setRelatedTarget(PassRefPtr<EventTarget> relatedTarget)
{
- ASSERT(!relatedTarget || !relatedTarget->toNode() || accessible(relatedTarget->toNode()));
+ ASSERT(!isUnreachableNode(relatedTarget.get()));
m_relatedTarget = relatedTarget;
}
#ifndef NDEBUG
-inline bool EventContext::accessible(Node* target)
+inline bool EventContext::isUnreachableNode(EventTarget* target)
{
+ // FIXME: Checks also for SVG elements.
+ return target && target->toNode() && !target->toNode()->isSVGElement() && !isReachable(target->toNode());
+}
+
+inline bool EventContext::isReachable(Node* target)
+{
ASSERT(target);
TreeScope* targetScope = target->treeScope();
for (TreeScope* scope = m_node->treeScope(); scope; scope = scope->parentTreeScope()) {
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes