Braden Shepherdson created CB-1388:
--------------------------------------
Summary: Add reset() to plugin API and fix callback collisions on
all platforms
Key: CB-1388
URL: https://issues.apache.org/jira/browse/CB-1388
Project: Apache Cordova
Issue Type: Bug
Components: Android, Bada, BlackBerry, CordovaJS, iOS, Qt, Tizen,
webOS, Windows 8, WP7
Affects Versions: 2.0.0
Reporter: Braden Shepherdson
Assignee: Braden Shepherdson
Fix For: 2.2.0
There are three parts to this bug.
First, platform-specific: we should add a reset() function to the plugin API
which is called on top-level navigation or refresh, so that plugins can know to
cancel any long-running requests and reinitialize themselves. This won't be
relevant to some platforms
Second, platform-independent: the callback IDs generated on the Javascript side
should be randomized in some way to prevent collisions after navigation.
Otherwise a request might get the ID "Service1", and before it has a chance to
complete we navigate and a new request is made, also receiving "Service1". Then
the first response comes back and the new Service1 callback is handed the old
results.
Third, we should add a test for this to Mobile Spec, if possible. This is a
tricky thing to reproduce reliably, unfortunately.
I'll tackle the second and third parts, and Android for the first part. It
would be great if people who work on other platforms would add the reset()
logic, or close the platform bugs if the platform is all-Javascript and fully
reloaded on navigation.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira