Chromium Code Reviews| 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 |