Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 var eventBindingsNatives = requireNative('event_bindings'); | 5 var eventBindingsNatives = requireNative('event_bindings'); |
| 6 var AttachEvent = eventBindingsNatives.AttachEvent; | 6 var AttachEvent = eventBindingsNatives.AttachEvent; |
| 7 var DetachEvent = eventBindingsNatives.DetachEvent; | 7 var DetachEvent = eventBindingsNatives.DetachEvent; |
| 8 var Print = eventBindingsNatives.Print; | 8 var Print = eventBindingsNatives.Print; |
| 9 | 9 |
| 10 var chromeHidden = requireNative('chrome_hidden').GetChromeHidden(); | 10 var chromeHidden = requireNative('chrome_hidden').GetChromeHidden(); |
| (...skipping 177 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 188 // Dispatches this event object to all listeners, passing all supplied | 188 // Dispatches this event object to all listeners, passing all supplied |
| 189 // arguments to this function each listener. | 189 // arguments to this function each listener. |
| 190 chrome.Event.prototype.dispatch = function(varargs) { | 190 chrome.Event.prototype.dispatch = function(varargs) { |
| 191 if (!this.eventOptions_.supportsListeners) | 191 if (!this.eventOptions_.supportsListeners) |
| 192 throw new Error("This event does not support listeners."); | 192 throw new Error("This event does not support listeners."); |
| 193 var args = Array.prototype.slice.call(arguments); | 193 var args = Array.prototype.slice.call(arguments); |
| 194 var validationErrors = this.validate_(args); | 194 var validationErrors = this.validate_(args); |
| 195 if (validationErrors) { | 195 if (validationErrors) { |
| 196 return validationErrors; | 196 return validationErrors; |
| 197 } | 197 } |
| 198 var retvals = []; | |
| 198 for (var i = 0; i < this.listeners_.length; i++) { | 199 for (var i = 0; i < this.listeners_.length; i++) { |
| 199 try { | 200 try { |
| 200 this.listeners_[i].apply(null, args); | 201 var retval = this.listeners_[i].apply(null, args); |
| 202 if (retval !== undefined) | |
| 203 retvals.push(retval); | |
| 201 } catch (e) { | 204 } catch (e) { |
| 202 console.error("Error in event handler for '" + this.eventName_ + | 205 console.error("Error in event handler for '" + this.eventName_ + |
| 203 "': " + e.stack); | 206 "': " + e.stack); |
| 204 } | 207 } |
| 205 } | 208 } |
| 209 if (retvals.length) | |
| 210 return retvals; | |
|
Matt Perry
2012/03/30 05:41:39
This conflicts with 'return validationErrors' abov
| |
| 206 }; | 211 }; |
| 207 | 212 |
| 208 // Attaches this event object to its name. Only one object can have a given | 213 // Attaches this event object to its name. Only one object can have a given |
| 209 // name. | 214 // name. |
| 210 chrome.Event.prototype.attach_ = function() { | 215 chrome.Event.prototype.attach_ = function() { |
| 211 AttachEvent(this.eventName_); | 216 AttachEvent(this.eventName_); |
| 212 allAttachedEvents[allAttachedEvents.length] = this; | 217 allAttachedEvents[allAttachedEvents.length] = this; |
| 213 if (!this.eventName_) | 218 if (!this.eventName_) |
| 214 return; | 219 return; |
| 215 | 220 |
| (...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 302 for (var i = 0; i < allAttachedEvents.length; ++i) { | 307 for (var i = 0; i < allAttachedEvents.length; ++i) { |
| 303 var event = allAttachedEvents[i]; | 308 var event = allAttachedEvents[i]; |
| 304 if (event) | 309 if (event) |
| 305 event.detach_(false); | 310 event.detach_(false); |
| 306 } | 311 } |
| 307 }; | 312 }; |
| 308 | 313 |
| 309 chromeHidden.dispatchError = function(msg) { | 314 chromeHidden.dispatchError = function(msg) { |
| 310 console.error(msg); | 315 console.error(msg); |
| 311 }; | 316 }; |
| OLD | NEW |