Title: [111574] trunk/Source/WebCore
- Revision
- 111574
- Author
- [email protected]
- Date
- 2012-03-21 10:49:51 -0700 (Wed, 21 Mar 2012)
Log Message
Web Inspector: only show JS event listeners in Event Listeners tab of Elements panel
https://bugs.webkit.org/show_bug.cgi?id=81798
Reviewed by Pavel Feldman.
* bindings/js/JSInjectedScriptHostCustom.cpp:
(WebCore::getJSListenerFunctions):
* bindings/js/ScriptEventListener.cpp:
(WebCore::eventListenerHandlerBody):
(WebCore::eventListenerHandlerLocation):
* bindings/v8/custom/V8InjectedScriptHostCustom.cpp:
(WebCore::getJSListenerFunctions):
* inspector/InspectorDOMAgent.cpp:
(WebCore::InspectorDOMAgent::getEventListeners):
Modified Paths
Diff
Modified: trunk/Source/WebCore/ChangeLog (111573 => 111574)
--- trunk/Source/WebCore/ChangeLog 2012-03-21 17:47:08 UTC (rev 111573)
+++ trunk/Source/WebCore/ChangeLog 2012-03-21 17:49:51 UTC (rev 111574)
@@ -1,5 +1,22 @@
2012-03-21 Andrey Kosyakov <[email protected]>
+ Web Inspector: only show JS event listeners in Event Listeners tab of Elements panel
+ https://bugs.webkit.org/show_bug.cgi?id=81798
+
+ Reviewed by Pavel Feldman.
+
+ * bindings/js/JSInjectedScriptHostCustom.cpp:
+ (WebCore::getJSListenerFunctions):
+ * bindings/js/ScriptEventListener.cpp:
+ (WebCore::eventListenerHandlerBody):
+ (WebCore::eventListenerHandlerLocation):
+ * bindings/v8/custom/V8InjectedScriptHostCustom.cpp:
+ (WebCore::getJSListenerFunctions):
+ * inspector/InspectorDOMAgent.cpp:
+ (WebCore::InspectorDOMAgent::getEventListeners):
+
+2012-03-21 Andrey Kosyakov <[email protected]>
+
EventListener::Type enum has unused member InspectorDOMAgentType
https://bugs.webkit.org/show_bug.cgi?id=81794
Modified: trunk/Source/WebCore/bindings/js/JSInjectedScriptHostCustom.cpp (111573 => 111574)
--- trunk/Source/WebCore/bindings/js/JSInjectedScriptHostCustom.cpp 2012-03-21 17:47:08 UTC (rev 111573)
+++ trunk/Source/WebCore/bindings/js/JSInjectedScriptHostCustom.cpp 2012-03-21 17:49:51 UTC (rev 111574)
@@ -193,8 +193,10 @@
size_t handlersCount = listenerInfo.eventListenerVector.size();
for (size_t i = 0, outputIndex = 0; i < handlersCount; ++i) {
const JSEventListener* jsListener = JSEventListener::cast(listenerInfo.eventListenerVector[i].listener.get());
- if (!jsListener)
+ if (!jsListener) {
+ ASSERT_NOT_REACHED();
continue;
+ }
// Hide listeners from other contexts.
if (jsListener->isolatedWorld() != currentWorld(exec))
continue;
Modified: trunk/Source/WebCore/bindings/js/ScriptEventListener.cpp (111573 => 111574)
--- trunk/Source/WebCore/bindings/js/ScriptEventListener.cpp 2012-03-21 17:47:08 UTC (rev 111573)
+++ trunk/Source/WebCore/bindings/js/ScriptEventListener.cpp 2012-03-21 17:49:51 UTC (rev 111574)
@@ -97,6 +97,7 @@
String eventListenerHandlerBody(Document* document, EventListener* eventListener)
{
const JSEventListener* jsListener = JSEventListener::cast(eventListener);
+ ASSERT(jsListener);
if (!jsListener)
return "";
JSLock lock(SilenceAssertionsOnly);
@@ -110,6 +111,7 @@
bool eventListenerHandlerLocation(Document* document, EventListener* eventListener, String& sourceName, int& lineNumber)
{
const JSEventListener* jsListener = JSEventListener::cast(eventListener);
+ ASSERT(jsListener);
if (!jsListener)
return false;
JSC::JSObject* jsObject = jsListener->jsFunction(document);
Modified: trunk/Source/WebCore/bindings/v8/custom/V8InjectedScriptHostCustom.cpp (111573 => 111574)
--- trunk/Source/WebCore/bindings/v8/custom/V8InjectedScriptHostCustom.cpp 2012-03-21 17:47:08 UTC (rev 111573)
+++ trunk/Source/WebCore/bindings/v8/custom/V8InjectedScriptHostCustom.cpp 2012-03-21 17:49:51 UTC (rev 111574)
@@ -189,8 +189,10 @@
size_t handlersCount = listenerInfo.eventListenerVector.size();
for (size_t i = 0, outputIndex = 0; i < handlersCount; ++i) {
RefPtr<EventListener> listener = listenerInfo.eventListenerVector[i].listener;
- if (listener->type() != EventListener::JSEventListenerType)
+ if (listener->type() != EventListener::JSEventListenerType) {
+ ASSERT_NOT_REACHED();
continue;
+ }
V8AbstractEventListener* v8Listener = static_cast<V8AbstractEventListener*>(listener.get());
v8::Local<v8::Context> context = toV8Context(document, v8Listener->worldContext());
// Hide listeners from other contexts.
Modified: trunk/Source/WebCore/inspector/InspectorDOMAgent.cpp (111573 => 111574)
--- trunk/Source/WebCore/inspector/InspectorDOMAgent.cpp 2012-03-21 17:47:08 UTC (rev 111573)
+++ trunk/Source/WebCore/inspector/InspectorDOMAgent.cpp 2012-03-21 17:49:51 UTC (rev 111574)
@@ -776,7 +776,15 @@
Vector<AtomicString> eventTypes = d->eventListenerMap.eventTypes();
for (size_t j = 0; j < eventTypes.size(); ++j) {
AtomicString& type = eventTypes[j];
- eventInformation.append(EventListenerInfo(ancestor, type, ancestor->getEventListeners(type)));
+ const EventListenerVector& listeners = ancestor->getEventListeners(type);
+ EventListenerVector filteredListeners;
+ filteredListeners.reserveCapacity(listeners.size());
+ for (size_t k = 0; k < listeners.size(); ++k) {
+ if (listeners[k].listener->type() == EventListener::JSEventListenerType)
+ filteredListeners.append(listeners[k]);
+ }
+ if (!filteredListeners.isEmpty())
+ eventInformation.append(EventListenerInfo(ancestor, type, filteredListeners));
}
}
}
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes