cordova-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "ASF subversion and git services (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (CB-10106) iOS bridges need to take into account bridge changes
Date Fri, 04 Dec 2015 09:30:10 GMT

    [ https://issues.apache.org/jira/browse/CB-10106?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15041330#comment-15041330
] 

ASF subversion and git services commented on CB-10106:
------------------------------------------------------

Commit f2e056e5fe945801b518b752871f5c64c0a28a88 in cordova-ios's branch refs/heads/master
from [~shazron]
[ https://git-wip-us.apache.org/repos/asf?p=cordova-ios.git;h=f2e056e ]

CB-10106 - added bridge proxy


> iOS bridges need to take into account bridge changes
> ----------------------------------------------------
>
>                 Key: CB-10106
>                 URL: https://issues.apache.org/jira/browse/CB-10106
>             Project: Apache Cordova
>          Issue Type: Bug
>          Components: iOS, Plugin WKWebViewEngine
>            Reporter: Shazron Abdullah
>            Assignee: Shazron Abdullah
>              Labels: cordova-ios-4.0.x
>
> New bridges (and the existing bridge) needs to take into account bridge changes.
> Each bridge should have this at the end of their .js:
> {code}
> // unregister the old bridge
> cordova.define.remove('cordova/exec');
> // redefine bridge to our new bridge
> cordova.define("cordova/exec", function(require, exports, module) {
>     module.exports = iOSExec;
> });
> {code}
> But, this would only re-define cordova.exec and the return value of `require('cordova/exec')`.
However, if the bridge was not loaded first, existing local references in plugins to `require('cordova/exec')`
will not be updated.
> Therefore, each bridge itself must detect that it is not the current bridge, and forward
commands to the new bridge. Thus:
> {code}
> var iOSExec = function() {
>       if (iOSExec !== cordova.exec) {
>           cordova.exec.apply(null, arguments);
>           return;
>       }
> // ... rest of the implementation here...
> }
> {code}
> Although I see this being a problem of the default bridge, not any external bridges.
> There might be an edge case where a command is already in the commandQueue (default bridge)
when the bridge is swapped, that needs to be handled.
> I realize this seems hacky, but if there's a better way to handle this case I'm all ears.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@cordova.apache.org
For additional commands, e-mail: issues-help@cordova.apache.org


Mime
View raw message