Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(240)

Side by Side Diff: Source/devtools/front_end/frameworks_support/EventListeners.js

Issue 1268353005: [DevTools] Support JQuery event listeners (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Created 5 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
1 /*
2 * Copyright 2015 The Chromium Authors. All rights reserved.
3 * Use of this source code is governed by a BSD-style license that can be
4 * found in the LICENSE file.
5 */
6
7 WebInspector.FrameworksSupport = {}
8
9 /**
10 * @return {string}
11 */
12 WebInspector.FrameworksSupport.eventListenersSetupFunction = function()
13 {
yurys 2015/08/13 23:49:07 functionString = [...].join("\n");
kozy 2015/08/14 17:07:03 Done.
14 var functionString = "(function(){\n";
15 functionString += WebInspector.FrameworksSupport.setupFrameworksEventListene rs.toString() + "\nsetupFrameworksEventListeners();\n";
16 functionString += WebInspector.FrameworksSupport.setupFrameworksEventHandler s.toString() + "\nsetupFrameworksEventHandlers();\n";
17 functionString += "})();";
18 return functionString;
19 }
20
21 WebInspector.FrameworksSupport.setupFrameworksEventListeners = function setupFra meworksEventListeners()
22 {
23 self.devtoolsFrameworksEventListeners = self.devtoolsFrameworksEventListener s || [];
24 if (self.devtoolsFrameworksEventListeners._hasDevtoolsWrapper)
yurys 2015/08/13 23:49:07 Can we make front-end control that we evaluate thi
kozy 2015/08/14 17:07:03 Done.
25 return;
26
27 self.devtoolsFrameworksEventListeners.push(jQueryEventListeners);
28 self.devtoolsFrameworksEventListeners._hasDevtoolsWrapper = true;
29
30 /**
31 * @param {!Object} node
32 * @return {!Array<!{type: string, listener: function(), useCapture: boolean }>}
33 */
34 function jQueryEventListeners(node)
35 {
36 if (!(node instanceof Node))
37 return [];
38 var hasJQuery = (typeof jQuery !== 'undefined') && jQuery.fn;
39 if (!hasJQuery)
40 return [];
41 var listeners = [];
42 var data = jQuery._data || jQuery.data;
43 if (typeof data === "function") {
44 var events = data(node, "events");
45 for (var type in events) {
46 for (var key in events[type]) {
47 var frameworkListener = events[type][key];
48 if (typeof frameworkListener === "object" || typeof framewor kListener === "function") {
49 var listener = {
50 handler: frameworkListener.handler || frameworkListe ner,
51 useCapture: true,
52 type: type
53 };
54 listeners.push(listener);
55 }
56 }
57 }
58 }
59 var entry = jQuery(node)[0];
60 if (entry) {
61 var entryEvents = entry["$events"];
62 for (var type in entryEvents) {
63 var events = entryEvents[type];
64 for (var key in events) {
65 if (typeof events[key] === "function") {
66 var listener = {
67 handler: events[key],
68 useCapture: true,
69 type: type
70 };
71 listeners.push(listener);
72 }
73 }
74 }
75 }
76 return listeners;
77 }
78 }
79
80 WebInspector.FrameworksSupport.setupFrameworksEventHandlers = function setupFram eworksEventHandlers()
81 {
82 self.devtoolsFrameworksEventHandlers = self.devtoolsFrameworksEventHandlers || [];
83 if (self.devtoolsFrameworksEventHandlers._hasDevtoolsWrapper)
84 return;
85
86 self.devtoolsFrameworksEventHandlers.push(jQueryEventHandlers);
87 self.devtoolsFrameworksEventHandlers._hasDevtoolsWrapper = true;
88
89 /**
90 * @param {!Object} node
91 * @return {!Array<function()>}
92 */
93 function jQueryEventHandlers(node)
94 {
95 if (!(node instanceof Node))
96 return [];
97 var hasJQuery = (typeof jQuery !== 'undefined') && jQuery.fn;
98 if (!hasJQuery)
99 return [];
100 var handlers = [];
101 var data = jQuery._data || jQuery.data;
102 if (typeof data === "function") {
103 var nodeData = data(node);
104 if (typeof nodeData.handle === "function")
105 handlers.push(nodeData.handle);
106 }
107 var entry = jQuery(node)[0];
108 if (entry && entry["$handle"])
109 handlers.push(entry["$handle"]);
110 return handlers;
111 }
112 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698