cordova-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "ASF subversion and git services (JIRA)" <>
Subject [jira] [Commented] (CB-11292) calling loadUrl more than once breaks messageChannel
Date Wed, 25 May 2016 21:50:13 GMT


ASF subversion and git services commented on CB-11292:

Commit ecb99c963df2281bd02fa42184f48952ed0fcf84 in cordova-android's branch refs/heads/master
from [~tony--]
[;h=ecb99c9 ]

CB-11292 fix broken MessageChannel after plugins are recreated

This closes #307

> calling loadUrl more than once breaks messageChannel
> ----------------------------------------------------
>                 Key: CB-11292
>                 URL:
>             Project: Apache Cordova
>          Issue Type: Bug
>          Components: Android
>            Reporter: Tony Homer
>            Assignee: Joe Bowser
> CordovaWebViewImpl.sendJavascriptEvent caches a reference to the CoreAndroid plugin instance.
This plugin manages Cordova's messageChannel. One of the things messageChannel is used for
is sending system events from native to JS, for example backbutton events.
> By default, CordovaWebViewImpl.loadUrl unloads all plugins. This has the side effect
of rendering CordovaWebViewImpl's cached instance of CoreAndroid stale. That is, a new instance
is created and bound to a new messageChannel callback.
> After this happens, when CordovaWebViewImpl sends messages to JS, the callback id has
changed and the messages are not handled.
> There are at least 2 approaches that should fix this.
> 1. (tested) do not cache the CoreAndroid instance. If CordovaWebViewImpl.sendJavascriptEvent
gets the reference from PluginManager every time, it will not become stale.
> 2. (not tested, but better encapsulated) when plugins are recreated, clear the cached

This message was sent by Atlassian JIRA

To unsubscribe, e-mail:
For additional commands, e-mail:

View raw message