OLD | NEW |
---|---|
(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.EventListenersFrameworkSupport = {} | |
8 | |
9 WebInspector.EventListenersFrameworkSupport._frameworkSupportInitializedSymbol = Symbol("frameworkSupportInitialized"); | |
10 | |
11 /** | |
12 * @param {?WebInspector.ExecutionContext} context | |
13 * @return {!Promise<void>} | |
14 */ | |
15 WebInspector.EventListenersFrameworkSupport.initializeOnContext = function(conte xt) | |
16 { | |
17 return new Promise(initializeFrameworksSupport); | |
18 | |
19 /** | |
20 * @param {function(?)} fulfill | |
21 * @param {function(*)} reject | |
22 */ | |
23 function initializeFrameworksSupport(fulfill, reject) | |
24 { | |
25 var initializeFunction = ["(function(){", | |
26 initializeFrameworkUserEventListeners.toString (), | |
27 "initializeFrameworkUserEventListeners();", | |
28 initializeFrameworkInternalEventHandlers.toStr ing(), | |
29 "initializeFrameworkInternalEventHandlers();", | |
30 "})();"].join("\n"); | |
31 if (!context) { | |
32 reject("Empty context"); | |
33 return; | |
34 } | |
35 if (WebInspector.EventListenersFrameworkSupport._frameworkSupportInitial izedSymbol in context) { | |
36 fulfill(undefined); | |
37 return; | |
38 } | |
39 context[WebInspector.EventListenersFrameworkSupport._frameworkSupportIni tializedSymbol] = true; | |
40 context.evaluate(initializeFunction, "EventListenersFrameworkSupport", f alse, true, true, false, fulfill); | |
41 } | |
42 } | |
43 | |
44 function initializeFrameworkUserEventListeners() | |
45 { | |
46 // We should call this function once per context. | |
47 self.devtoolsFrameworkUserEventListeners = self.devtoolsFrameworkUserEventLi steners || []; | |
paulirish
2015/08/14 21:03:16
self.devtoolsFrameworkEventListeners
I understand
| |
48 self.devtoolsFrameworkUserEventListeners.push(jQueryUserEventListeners); | |
49 | |
50 /** | |
51 * @param {!Object} node | |
52 * @return {!Array<!{type: string, listener: function(), useCapture: boolean }>} | |
53 */ | |
54 function jQueryUserEventListeners(node) | |
55 { | |
56 if (!(node instanceof Node)) | |
57 return []; | |
58 var hasJQuery = (typeof jQuery !== 'undefined') && jQuery.fn; | |
59 if (!hasJQuery) | |
60 return []; | |
61 var listeners = []; | |
62 var data = jQuery._data || jQuery.data; | |
63 if (typeof data === "function") { | |
64 var events = data(node, "events"); | |
65 for (var type in events) { | |
66 for (var key in events[type]) { | |
67 var frameworkListener = events[type][key]; | |
68 if (typeof frameworkListener === "object" || typeof framewor kListener === "function") { | |
69 var listener = { | |
70 handler: frameworkListener.handler || frameworkListe ner, | |
71 useCapture: true, | |
72 type: type | |
73 }; | |
74 listeners.push(listener); | |
75 } | |
76 } | |
77 } | |
78 } | |
79 var entry = jQuery(node)[0]; | |
80 if (entry) { | |
81 var entryEvents = entry["$events"]; | |
82 for (var type in entryEvents) { | |
83 var events = entryEvents[type]; | |
84 for (var key in events) { | |
85 if (typeof events[key] === "function") { | |
86 var listener = { | |
87 handler: events[key], | |
88 useCapture: true, | |
89 type: type | |
90 }; | |
91 listeners.push(listener); | |
92 } | |
93 } | |
94 } | |
95 } | |
96 return listeners; | |
97 } | |
98 } | |
99 | |
100 function initializeFrameworkInternalEventHandlers() | |
101 { | |
102 // We should call this function once per context. | |
103 self.devtoolsFrameworkInternalEventHandlers = self.devtoolsFrameworkInternal EventHandlers || []; | |
104 self.devtoolsFrameworkInternalEventHandlers.push(jQueryInternalEventHandlers ); | |
105 | |
106 /** | |
107 * @param {!Object} node | |
108 * @return {!Array<function()>} | |
109 */ | |
110 function jQueryInternalEventHandlers(node) | |
111 { | |
112 if (!(node instanceof Node)) | |
113 return []; | |
114 var hasJQuery = (typeof jQuery !== 'undefined') && jQuery.fn; | |
115 if (!hasJQuery) | |
116 return []; | |
117 var handlers = []; | |
118 var data = jQuery._data || jQuery.data; | |
119 if (typeof data === "function") { | |
120 var nodeData = data(node); | |
121 if (typeof nodeData.handle === "function") | |
122 handlers.push(nodeData.handle); | |
123 } | |
124 var entry = jQuery(node)[0]; | |
125 if (entry && entry["$handle"]) | |
126 handlers.push(entry["$handle"]); | |
127 return handlers; | |
128 } | |
129 } | |
OLD | NEW |