Title: [118889] trunk/Source/WebCore
- Revision
- 118889
- Author
- [email protected]
- Date
- 2012-05-29 21:05:53 -0700 (Tue, 29 May 2012)
Log Message
Add assertions to make sure that event's target and relatedTarget are accessible.
https://bugs.webkit.org/show_bug.cgi?id=87641
Reviewed by Dimitri Glazkov.
No new tests. No new functionality except for assertions.
* dom/EventContext.cpp:
(WebCore::EventContext::EventContext):
* dom/EventContext.h:
(WebCore):
(EventContext):
(WebCore::EventContext::setRelatedTarget):
(WebCore::EventContext::accessible):
Modified Paths
Diff
Modified: trunk/Source/WebCore/ChangeLog (118888 => 118889)
--- trunk/Source/WebCore/ChangeLog 2012-05-30 04:03:07 UTC (rev 118888)
+++ trunk/Source/WebCore/ChangeLog 2012-05-30 04:05:53 UTC (rev 118889)
@@ -1,3 +1,20 @@
+2012-05-29 Hayato Ito <[email protected]>
+
+ Add assertions to make sure that event's target and relatedTarget are accessible.
+ https://bugs.webkit.org/show_bug.cgi?id=87641
+
+ Reviewed by Dimitri Glazkov.
+
+ No new tests. No new functionality except for assertions.
+
+ * dom/EventContext.cpp:
+ (WebCore::EventContext::EventContext):
+ * dom/EventContext.h:
+ (WebCore):
+ (EventContext):
+ (WebCore::EventContext::setRelatedTarget):
+ (WebCore::EventContext::accessible):
+
2012-05-29 Kent Tamura <[email protected]>
Fix inefficient usage of traverseNextNode()
Modified: trunk/Source/WebCore/dom/EventContext.cpp (118888 => 118889)
--- trunk/Source/WebCore/dom/EventContext.cpp 2012-05-30 04:03:07 UTC (rev 118888)
+++ trunk/Source/WebCore/dom/EventContext.cpp 2012-05-30 04:05:53 UTC (rev 118889)
@@ -41,6 +41,8 @@
, m_target(target)
, m_relatedTarget(0)
{
+ ASSERT(m_node);
+ ASSERT(!m_target || m_target->toNode() || accessible(m_target->toNode()));
}
void EventContext::handleLocalEvents(Event* event) const
Modified: trunk/Source/WebCore/dom/EventContext.h (118888 => 118889)
--- trunk/Source/WebCore/dom/EventContext.h 2012-05-30 04:03:07 UTC (rev 118888)
+++ trunk/Source/WebCore/dom/EventContext.h 2012-05-30 04:05:53 UTC (rev 118889)
@@ -27,13 +27,14 @@
#ifndef EventContext_h
#define EventContext_h
+#include "EventTarget.h"
+#include "Node.h"
+#include "TreeScope.h"
#include <wtf/RefPtr.h>
namespace WebCore {
-class EventTarget;
class Event;
-class Node;
class EventContext {
public:
@@ -48,6 +49,9 @@
void setRelatedTarget(PassRefPtr<EventTarget>);
private:
+#ifndef NDEBUG
+ bool accessible(Node*);
+#endif
RefPtr<Node> m_node;
RefPtr<EventTarget> m_currentTarget;
RefPtr<EventTarget> m_target;
@@ -76,9 +80,23 @@
inline void EventContext::setRelatedTarget(PassRefPtr<EventTarget> relatedTarget)
{
+ ASSERT(!relatedTarget || !relatedTarget->toNode() || accessible(relatedTarget->toNode()));
m_relatedTarget = relatedTarget;
}
+#ifndef NDEBUG
+inline bool EventContext::accessible(Node* target)
+{
+ ASSERT(target);
+ TreeScope* targetScope = target->treeScope();
+ for (TreeScope* scope = m_node->treeScope(); scope; scope = scope->parentTreeScope()) {
+ if (scope == targetScope)
+ return true;
+ }
+ return false;
}
+#endif
+}
+
#endif // EventContext_h
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes