[
https://issues.apache.org/jira/browse/CB-514?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13266964#comment-13266964
]
Filip Maj edited comment on CB-514 at 5/2/12 10:24 PM:
-------------------------------------------------------
I would love to get rid of the monkeypatching but, as far as I can tell, if we
start listening for the various device events willy-nilly we'd be using up more
resources. In general the handler counting is there to trigger device listening
of system events only when necessary.
Setting to Won't Fix for now but if we can figure out a way around these issues
then I am all for reopening.
was (Author: filmaj):
I would love to get rid of the monkeypatching but, as far as I can tell,
unless we start listening for the various device events willy-nilly we'd be
using up more resources. In general the handler counting is there to trigger
device listening of system events only when necessary.
Setting to Won't Fix for now but if we can figure out a way around these issues
then I am all for reopening.
> Do we need to monkey patch addEventListener()?
> ----------------------------------------------
>
> Key: CB-514
> URL: https://issues.apache.org/jira/browse/CB-514
> Project: Apache Callback
> Issue Type: Bug
> Components: CordovaJS
> Reporter: Patrick Mueller
> Assignee: Filip Maj
>
> discussion here: http://markmail.org/message/mghdkbumdyjhmaye
> 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:
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira