<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>[204499] trunk/Source/WebCore</title>
</head>
<body>

<style type="text/css"><!--
#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt;  }
#msg dl a { font-weight: bold}
#msg dl a:link    { color:#fc3; }
#msg dl a:active  { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
#msg pre { overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; }
#logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; }
#logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; }
#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; }
#logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; }
#logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; }
#logmsg pre { background: #eee; padding: 1em; }
#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;}
#logmsg dl { margin: 0; }
#logmsg dt { font-weight: bold; }
#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
#logmsg dd:before { content:'\00bb';}
#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; }
#logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; }
#logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; }
#logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; }
#logmsg table th.Corner { text-align: left; }
#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
#patch { width: 100%; }
#patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
#patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff  {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;}
#patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;}
#patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;}
#patch .lines, .info {color:#888;background:#fff;}
--></style>
<div id="msg">
<dl class="meta">
<dt>Revision</dt> <dd><a href="http://trac.webkit.org/projects/webkit/changeset/204499">204499</a></dd>
<dt>Author</dt> <dd>cdumez@apple.com</dd>
<dt>Date</dt> <dd>2016-08-15 23:48:34 -0700 (Mon, 15 Aug 2016)</dd>
</dl>

<h3>Log Message</h3>
<pre>Rename RegisteredEventListener::listener() to callback() for clarity
https://bugs.webkit.org/show_bug.cgi?id=160873

Reviewed by Darin Adler.

Rename RegisteredEventListener::listener() to callback() for clarity
and to match the specification:
- https://dom.spec.whatwg.org/#concept-event-listener

Always calling listener-&gt;listener() seems wrong.

* bindings/js/JSCommandLineAPIHostCustom.cpp:
(WebCore::getJSListenerFunctions):
* dom/EventListenerMap.cpp:
(WebCore::findListener):
(WebCore::removeFirstListenerCreatedFromMarkup):
(WebCore::copyListenersNotCreatedFromMarkupToTarget):
(WebCore::EventListenerIterator::nextListener):
* dom/EventTarget.cpp:
(WebCore::EventTarget::getAttributeEventListener):
(WebCore::EventTarget::fireEventListeners):
* dom/RegisteredEventListener.h:
(WebCore::RegisteredEventListener::callback):
(WebCore::RegisteredEventListener::RegisteredEventListener):
(WebCore::RegisteredEventListener::listener): Deleted.
* inspector/InspectorDOMAgent.cpp:
(WebCore::InspectorDOMAgent::getEventListeners):
(WebCore::InspectorDOMAgent::buildObjectForEventListener):</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkSourceWebCoreChangeLog">trunk/Source/WebCore/ChangeLog</a></li>
<li><a href="#trunkSourceWebCorebindingsjsJSCommandLineAPIHostCustomcpp">trunk/Source/WebCore/bindings/js/JSCommandLineAPIHostCustom.cpp</a></li>
<li><a href="#trunkSourceWebCoredomEventListenerMapcpp">trunk/Source/WebCore/dom/EventListenerMap.cpp</a></li>
<li><a href="#trunkSourceWebCoredomEventTargetcpp">trunk/Source/WebCore/dom/EventTarget.cpp</a></li>
<li><a href="#trunkSourceWebCoredomRegisteredEventListenerh">trunk/Source/WebCore/dom/RegisteredEventListener.h</a></li>
<li><a href="#trunkSourceWebCoreinspectorInspectorDOMAgentcpp">trunk/Source/WebCore/inspector/InspectorDOMAgent.cpp</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkSourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/ChangeLog (204498 => 204499)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/ChangeLog        2016-08-16 06:41:33 UTC (rev 204498)
+++ trunk/Source/WebCore/ChangeLog        2016-08-16 06:48:34 UTC (rev 204499)
</span><span class="lines">@@ -1,5 +1,36 @@
</span><span class="cx"> 2016-08-15  Chris Dumez  &lt;cdumez@apple.com&gt;
</span><span class="cx"> 
</span><ins>+        Rename RegisteredEventListener::listener() to callback() for clarity
+        https://bugs.webkit.org/show_bug.cgi?id=160873
+
+        Reviewed by Darin Adler.
+
+        Rename RegisteredEventListener::listener() to callback() for clarity
+        and to match the specification:
+        - https://dom.spec.whatwg.org/#concept-event-listener
+
+        Always calling listener-&gt;listener() seems wrong.
+
+        * bindings/js/JSCommandLineAPIHostCustom.cpp:
+        (WebCore::getJSListenerFunctions):
+        * dom/EventListenerMap.cpp:
+        (WebCore::findListener):
+        (WebCore::removeFirstListenerCreatedFromMarkup):
+        (WebCore::copyListenersNotCreatedFromMarkupToTarget):
+        (WebCore::EventListenerIterator::nextListener):
+        * dom/EventTarget.cpp:
+        (WebCore::EventTarget::getAttributeEventListener):
+        (WebCore::EventTarget::fireEventListeners):
+        * dom/RegisteredEventListener.h:
+        (WebCore::RegisteredEventListener::callback):
+        (WebCore::RegisteredEventListener::RegisteredEventListener):
+        (WebCore::RegisteredEventListener::listener): Deleted.
+        * inspector/InspectorDOMAgent.cpp:
+        (WebCore::InspectorDOMAgent::getEventListeners):
+        (WebCore::InspectorDOMAgent::buildObjectForEventListener):
+
+2016-08-15  Chris Dumez  &lt;cdumez@apple.com&gt;
+
</ins><span class="cx">         Add support for dictionary members of non nullable wrapper types
</span><span class="cx">         https://bugs.webkit.org/show_bug.cgi?id=160876
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsjsJSCommandLineAPIHostCustomcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/js/JSCommandLineAPIHostCustom.cpp (204498 => 204499)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/js/JSCommandLineAPIHostCustom.cpp        2016-08-16 06:41:33 UTC (rev 204498)
+++ trunk/Source/WebCore/bindings/js/JSCommandLineAPIHostCustom.cpp        2016-08-16 06:48:34 UTC (rev 204499)
</span><span class="lines">@@ -73,7 +73,7 @@
</span><span class="cx">         return nullptr;
</span><span class="cx">     size_t handlersCount = listenerInfo.eventListenerVector.size();
</span><span class="cx">     for (size_t i = 0, outputIndex = 0; i &lt; handlersCount; ++i) {
</span><del>-        const JSEventListener* jsListener = JSEventListener::cast(&amp;listenerInfo.eventListenerVector[i]-&gt;listener());
</del><ins>+        const JSEventListener* jsListener = JSEventListener::cast(&amp;listenerInfo.eventListenerVector[i]-&gt;callback());
</ins><span class="cx">         if (!jsListener) {
</span><span class="cx">             ASSERT_NOT_REACHED();
</span><span class="cx">             continue;
</span></span></pre></div>
<a id="trunkSourceWebCoredomEventListenerMapcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/EventListenerMap.cpp (204498 => 204499)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/EventListenerMap.cpp        2016-08-16 06:41:33 UTC (rev 204498)
+++ trunk/Source/WebCore/dom/EventListenerMap.cpp        2016-08-16 06:48:34 UTC (rev 204499)
</span><span class="lines">@@ -89,7 +89,7 @@
</span><span class="cx"> {
</span><span class="cx">     for (size_t i = 0; i &lt; listeners.size(); ++i) {
</span><span class="cx">         auto&amp; registeredListener = listeners[i];
</span><del>-        if (registeredListener-&gt;listener() == listener &amp;&amp; registeredListener-&gt;useCapture() == useCapture)
</del><ins>+        if (registeredListener-&gt;callback() == listener &amp;&amp; registeredListener-&gt;useCapture() == useCapture)
</ins><span class="cx">             return i;
</span><span class="cx">     }
</span><span class="cx">     return notFound;
</span><span class="lines">@@ -154,7 +154,7 @@
</span><span class="cx"> static void removeFirstListenerCreatedFromMarkup(EventListenerVector&amp; listenerVector)
</span><span class="cx"> {
</span><span class="cx">     bool foundListener = listenerVector.removeFirstMatching([] (const auto&amp; registeredListener) {
</span><del>-        if (registeredListener-&gt;listener().wasCreatedFromMarkup()) {
</del><ins>+        if (registeredListener-&gt;callback().wasCreatedFromMarkup()) {
</ins><span class="cx">             registeredListener-&gt;markAsRemoved();
</span><span class="cx">             return true;
</span><span class="cx">         }
</span><span class="lines">@@ -181,9 +181,9 @@
</span><span class="cx"> {
</span><span class="cx">     for (auto&amp; registeredListener : listenerVector) {
</span><span class="cx">         // Event listeners created from markup have already been transfered to the shadow tree during cloning.
</span><del>-        if (registeredListener-&gt;listener().wasCreatedFromMarkup())
</del><ins>+        if (registeredListener-&gt;callback().wasCreatedFromMarkup())
</ins><span class="cx">             continue;
</span><del>-        target-&gt;addEventListener(eventType, registeredListener-&gt;listener(), registeredListener-&gt;useCapture());
</del><ins>+        target-&gt;addEventListener(eventType, registeredListener-&gt;callback(), registeredListener-&gt;useCapture());
</ins><span class="cx">     }
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -226,7 +226,7 @@
</span><span class="cx">     for (; m_entryIndex &lt; m_map-&gt;m_entries.size(); ++m_entryIndex) {
</span><span class="cx">         EventListenerVector&amp; listeners = *m_map-&gt;m_entries[m_entryIndex].second;
</span><span class="cx">         if (m_index &lt; listeners.size())
</span><del>-            return &amp;listeners[m_index++]-&gt;listener();
</del><ins>+            return &amp;listeners[m_index++]-&gt;callback();
</ins><span class="cx">         m_index = 0;
</span><span class="cx">     }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoredomEventTargetcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/EventTarget.cpp (204498 => 204499)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/EventTarget.cpp        2016-08-16 06:41:33 UTC (rev 204498)
+++ trunk/Source/WebCore/dom/EventTarget.cpp        2016-08-16 06:48:34 UTC (rev 204499)
</span><span class="lines">@@ -116,8 +116,8 @@
</span><span class="cx"> EventListener* EventTarget::getAttributeEventListener(const AtomicString&amp; eventType)
</span><span class="cx"> {
</span><span class="cx">     for (auto&amp; eventListener : getEventListeners(eventType)) {
</span><del>-        if (eventListener-&gt;listener().isAttribute())
-            return &amp;eventListener-&gt;listener();
</del><ins>+        if (eventListener-&gt;callback().isAttribute())
+            return &amp;eventListener-&gt;callback();
</ins><span class="cx">     }
</span><span class="cx">     return nullptr;
</span><span class="cx"> }
</span><span class="lines">@@ -241,7 +241,7 @@
</span><span class="cx"> 
</span><span class="cx">         // Do this before invocation to avoid reentrancy issues.
</span><span class="cx">         if (registeredListener-&gt;isOnce())
</span><del>-            removeEventListener(event.type(), registeredListener-&gt;listener(), ListenerOptions(registeredListener-&gt;useCapture()));
</del><ins>+            removeEventListener(event.type(), registeredListener-&gt;callback(), ListenerOptions(registeredListener-&gt;useCapture()));
</ins><span class="cx"> 
</span><span class="cx">         if (registeredListener-&gt;isPassive())
</span><span class="cx">             event.setInPassiveListener(true);
</span><span class="lines">@@ -249,7 +249,7 @@
</span><span class="cx">         InspectorInstrumentationCookie cookie = InspectorInstrumentation::willHandleEvent(context, event);
</span><span class="cx">         // To match Mozilla, the AT_TARGET phase fires both capturing and bubbling
</span><span class="cx">         // event listeners, even though that violates some versions of the DOM spec.
</span><del>-        registeredListener-&gt;listener().handleEvent(context, &amp;event);
</del><ins>+        registeredListener-&gt;callback().handleEvent(context, &amp;event);
</ins><span class="cx">         InspectorInstrumentation::didHandleEvent(cookie);
</span><span class="cx"> 
</span><span class="cx">         if (registeredListener-&gt;isPassive())
</span></span></pre></div>
<a id="trunkSourceWebCoredomRegisteredEventListenerh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/RegisteredEventListener.h (204498 => 204499)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/RegisteredEventListener.h        2016-08-16 06:41:33 UTC (rev 204498)
+++ trunk/Source/WebCore/dom/RegisteredEventListener.h        2016-08-16 06:48:34 UTC (rev 204499)
</span><span class="lines">@@ -49,7 +49,7 @@
</span><span class="cx">         return adoptRef(*new RegisteredEventListener(WTFMove(listener), options));
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    EventListener&amp; listener() const { return const_cast&lt;EventListener&amp;&gt;(m_listener.get()); }
</del><ins>+    EventListener&amp; callback() const { return const_cast&lt;EventListener&amp;&gt;(m_callback.get()); }
</ins><span class="cx">     bool useCapture() const { return m_useCapture; }
</span><span class="cx">     bool isPassive() const { return m_isPassive; }
</span><span class="cx">     bool isOnce() const { return m_isOnce; }
</span><span class="lines">@@ -59,7 +59,7 @@
</span><span class="cx"> 
</span><span class="cx"> private:
</span><span class="cx">     RegisteredEventListener(Ref&lt;EventListener&gt;&amp;&amp; listener, const Options&amp; options)
</span><del>-        : m_listener(WTFMove(listener))
</del><ins>+        : m_callback(WTFMove(listener))
</ins><span class="cx">         , m_useCapture(options.capture)
</span><span class="cx">         , m_isPassive(options.passive)
</span><span class="cx">         , m_isOnce(options.once)
</span><span class="lines">@@ -66,7 +66,7 @@
</span><span class="cx">     {
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    Ref&lt;EventListener&gt; m_listener;
</del><ins>+    Ref&lt;EventListener&gt; m_callback;
</ins><span class="cx">     bool m_useCapture { false };
</span><span class="cx">     bool m_isPassive { false };
</span><span class="cx">     bool m_isOnce { false };
</span></span></pre></div>
<a id="trunkSourceWebCoreinspectorInspectorDOMAgentcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/inspector/InspectorDOMAgent.cpp (204498 => 204499)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/inspector/InspectorDOMAgent.cpp        2016-08-16 06:41:33 UTC (rev 204498)
+++ trunk/Source/WebCore/inspector/InspectorDOMAgent.cpp        2016-08-16 06:48:34 UTC (rev 204499)
</span><span class="lines">@@ -860,7 +860,7 @@
</span><span class="cx">             EventListenerVector filteredListeners;
</span><span class="cx">             filteredListeners.reserveInitialCapacity(listeners.size());
</span><span class="cx">             for (auto&amp; listener : listeners) {
</span><del>-                if (listener-&gt;listener().type() == EventListener::JSEventListenerType)
</del><ins>+                if (listener-&gt;callback().type() == EventListener::JSEventListenerType)
</ins><span class="cx">                     filteredListeners.uncheckedAppend(listener);
</span><span class="cx">             }
</span><span class="cx">             if (!filteredListeners.isEmpty())
</span><span class="lines">@@ -1477,7 +1477,7 @@
</span><span class="cx"> 
</span><span class="cx"> Ref&lt;Inspector::Protocol::DOM::EventListener&gt; InspectorDOMAgent::buildObjectForEventListener(const RegisteredEventListener&amp; registeredEventListener, const AtomicString&amp; eventType, Node* node, const String* objectGroupId)
</span><span class="cx"> {
</span><del>-    Ref&lt;EventListener&gt; eventListener = registeredEventListener.listener();
</del><ins>+    Ref&lt;EventListener&gt; eventListener = registeredEventListener.callback();
</ins><span class="cx"> 
</span><span class="cx">     JSC::ExecState* state = nullptr;
</span><span class="cx">     JSC::JSObject* handler = nullptr;
</span></span></pre>
</div>
</div>

</body>
</html>