[
https://issues.apache.org/jira/browse/CB-514?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13266920#comment-13266920
]
Patrick Mueller commented on CB-514:
------------------------------------
I guess the place checking the first event / last event is here?
*
https://github.com/filmaj/incubator-cordova-js/blob/axemonkeypatch/lib/common/plugin/battery.js#L33
I don't really know anything about the "Battery API". Googling yielded this:
* http://www.w3.org/TR/battery-status/
This API doesn't expect you to use {{window}} as the {{EventTarget}}, but
instead {{navigator.battery}}.
And according to
*
https://github.com/filmaj/incubator-cordova-js/blob/axemonkeypatch/lib/common/common.js
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: 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