<!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->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 <cdumez@apple.com>
</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->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 <cdumez@apple.com>
+
</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 < handlersCount; ++i) {
</span><del>- const JSEventListener* jsListener = JSEventListener::cast(&listenerInfo.eventListenerVector[i]->listener());
</del><ins>+ const JSEventListener* jsListener = JSEventListener::cast(&listenerInfo.eventListenerVector[i]->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 < listeners.size(); ++i) {
</span><span class="cx"> auto& registeredListener = listeners[i];
</span><del>- if (registeredListener->listener() == listener && registeredListener->useCapture() == useCapture)
</del><ins>+ if (registeredListener->callback() == listener && registeredListener->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& listenerVector)
</span><span class="cx"> {
</span><span class="cx"> bool foundListener = listenerVector.removeFirstMatching([] (const auto& registeredListener) {
</span><del>- if (registeredListener->listener().wasCreatedFromMarkup()) {
</del><ins>+ if (registeredListener->callback().wasCreatedFromMarkup()) {
</ins><span class="cx"> registeredListener->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& 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->listener().wasCreatedFromMarkup())
</del><ins>+ if (registeredListener->callback().wasCreatedFromMarkup())
</ins><span class="cx"> continue;
</span><del>- target->addEventListener(eventType, registeredListener->listener(), registeredListener->useCapture());
</del><ins>+ target->addEventListener(eventType, registeredListener->callback(), registeredListener->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 < m_map->m_entries.size(); ++m_entryIndex) {
</span><span class="cx"> EventListenerVector& listeners = *m_map->m_entries[m_entryIndex].second;
</span><span class="cx"> if (m_index < listeners.size())
</span><del>- return &listeners[m_index++]->listener();
</del><ins>+ return &listeners[m_index++]->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& eventType)
</span><span class="cx"> {
</span><span class="cx"> for (auto& eventListener : getEventListeners(eventType)) {
</span><del>- if (eventListener->listener().isAttribute())
- return &eventListener->listener();
</del><ins>+ if (eventListener->callback().isAttribute())
+ return &eventListener->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->isOnce())
</span><del>- removeEventListener(event.type(), registeredListener->listener(), ListenerOptions(registeredListener->useCapture()));
</del><ins>+ removeEventListener(event.type(), registeredListener->callback(), ListenerOptions(registeredListener->useCapture()));
</ins><span class="cx">
</span><span class="cx"> if (registeredListener->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->listener().handleEvent(context, &event);
</del><ins>+ registeredListener->callback().handleEvent(context, &event);
</ins><span class="cx"> InspectorInstrumentation::didHandleEvent(cookie);
</span><span class="cx">
</span><span class="cx"> if (registeredListener->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& listener() const { return const_cast<EventListener&>(m_listener.get()); }
</del><ins>+ EventListener& callback() const { return const_cast<EventListener&>(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<EventListener>&& listener, const Options& 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<EventListener> m_listener;
</del><ins>+ Ref<EventListener> 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& listener : listeners) {
</span><del>- if (listener->listener().type() == EventListener::JSEventListenerType)
</del><ins>+ if (listener->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<Inspector::Protocol::DOM::EventListener> InspectorDOMAgent::buildObjectForEventListener(const RegisteredEventListener& registeredEventListener, const AtomicString& eventType, Node* node, const String* objectGroupId)
</span><span class="cx"> {
</span><del>- Ref<EventListener> eventListener = registeredEventListener.listener();
</del><ins>+ Ref<EventListener> 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>