incubator-callback-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Patrick Mueller (JIRA)" <>
Subject [jira] [Commented] (CB-514) Do we need to monkey patch addEventListener()?
Date Wed, 02 May 2012 21:24:49 GMT


Patrick Mueller commented on CB-514:

I guess the place checking the first event / last event is here?


I don't really know anything about the "Battery API".  Googling yielded this:


This API doesn't expect you to use {{window}} as the {{EventTarget}}, but instead {{navigator.battery}}.

And according to 


we are in fact installing {{navigator.battery}}.  

So why is {{window}} the EventTarget for these events?  Looking through the older versions
of the Battery spec, you can see they've moved the EventTarget from {{window}} to a factory
to the {{navigator}} property.  But none of the events look similar to the one's we've defined.
> Do we need to monkey patch addEventListener()?
> ----------------------------------------------
>                 Key: CB-514
>                 URL:
>             Project: Apache Callback
>          Issue Type: Bug
>          Components: CordovaJS
>            Reporter: Patrick Mueller
>            Assignee: Filip Maj
> discussion here:
> I noticed in cordova.js we override the following messages on window/document:
> {noformat}
> document.addEventListener = function(evt, handler, capture) {...}
> window.addEventListener = function(evt, handler, capture) {...}
> document.removeEventListener = function(evt, handler, capture) {...}
> window.removeEventListener = function(evt, handler, capture) {...}
> {noformat}
> aka as "monkey patching".  
> Apparently, we aren't sure why we're doing this.  My guess is that we've done this in
the past when dispatching user-land events wasn't possible, and so trapping listeners was
the only way to get the listeners so you could send them events.
> It would be nice to remove this monkey patching, if we can, by using:
> {noformat}
> event = document.createEvent('Events')
> event.initEvent(blah)
> window.dispatchEvent(event)
> // or document.dispatchEvent(event)
> {noformat}
> We'll need to figure out if this works on all our platforms.  Even if it doesn't work
on all of them, I think we should only use monkey patching on platforms that we have to.

This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:!default.jspa
For more information on JIRA, see:


View raw message