Index: third_party/WebKit/Source/platform/v8_inspector/V8InjectedScriptHost.cpp |
diff --git a/third_party/WebKit/Source/platform/v8_inspector/V8InjectedScriptHost.cpp b/third_party/WebKit/Source/platform/v8_inspector/V8InjectedScriptHost.cpp |
index 0f16980fe64a0e28d611dea2ad292aa6756c4976..18f453d8bf4072dade556fef772a7528c40ca6cd 100644 |
--- a/third_party/WebKit/Source/platform/v8_inspector/V8InjectedScriptHost.cpp |
+++ b/third_party/WebKit/Source/platform/v8_inspector/V8InjectedScriptHost.cpp |
@@ -221,11 +221,13 @@ void V8InjectedScriptHost::getInternalPropertiesCallback(const v8::FunctionCallb |
v8SetReturnValue(info, properties); |
} |
-static v8::Local<v8::Array> wrapListenerFunctions(v8::Isolate* isolate, const protocol::Vector<V8EventListenerInfo>& listeners) |
+static v8::Local<v8::Array> wrapListenerFunctions(v8::Isolate* isolate, const V8EventListenerInfoList& listeners, const String16& type) |
{ |
v8::Local<v8::Array> result = v8::Array::New(isolate); |
size_t handlersCount = listeners.size(); |
for (size_t i = 0, outputIndex = 0; i < handlersCount; ++i) { |
+ if (listeners[i].eventType != type) |
+ continue; |
v8::Local<v8::Object> function = listeners[i].handler; |
v8::Local<v8::Object> listenerEntry = v8::Object::New(isolate); |
listenerEntry->Set(toV8StringInternalized(isolate, "listener"), function); |
@@ -244,16 +246,15 @@ void V8InjectedScriptHost::getEventListenersCallback(const v8::FunctionCallbackI |
if (!host->debugger()) |
return; |
V8DebuggerClient* client = host->debugger()->client(); |
- V8EventListenerInfoMap listenerInfo; |
+ V8EventListenerInfoList listenerInfo; |
client->eventListeners(info[0], listenerInfo); |
v8::Local<v8::Object> result = v8::Object::New(info.GetIsolate()); |
protocol::Vector<String16> types; |
dgozman
2016/03/10 18:59:47
Should be a set now.
pfeldman
2016/03/10 23:30:10
Done.
|
- for (auto& it : listenerInfo) |
- types.append(it.first); |
- std::sort(types.begin(), types.end(), String16::codePointCompareLessThan); |
+ for (auto& info : listenerInfo) |
+ types.append(info.eventType); |
for (const String16& type : types) { |
- v8::Local<v8::Array> listeners = wrapListenerFunctions(info.GetIsolate(), *listenerInfo.get(type)); |
+ v8::Local<v8::Array> listeners = wrapListenerFunctions(info.GetIsolate(), listenerInfo, type); |
if (!listeners->Length()) |
continue; |
result->Set(toV8String(info.GetIsolate(), type), listeners); |