[
https://issues.apache.org/jira/browse/CB-8207?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Shazron Abdullah resolved CB-8207.
----------------------------------
Resolution: Fixed
Fixed by CB-8838
> [WKWebView][iOS 8] Unnecessary JSON conversion and possible leak
> ----------------------------------------------------------------
>
> Key: CB-8207
> URL: https://issues.apache.org/jira/browse/CB-8207
> Project: Apache Cordova
> Issue Type: Sub-task
> Components: CordovaJS, iOS
> Affects Versions: 3.5.0
> Reporter: Incarnadine
> Assignee: Shazron Abdullah
> Fix For: 4.0.0
>
>
> The WKWebView bridge is calling JSON.stringify and adding the result to the
> command queue which appears to be unnecessary.
> The JSON conversion negates part of the performance gain of letting
> WKScriptMessage marshal the array.
> Additionally, since commands with WKWebView are processed immediately, it's
> unclear what will happen to the queued commands. Something will either
> process them resulting in duplicate command execution, or the queue will
> continue to grow and allocate memory.
> See ios/exec.js:
> {code}
> // FIXME: This call may be unnecessary depending on how
> // WKScriptMesssage marshals ArrayBuffer
> actionArgs = massageArgsJsToNative(actionArgs);
> var command = [callbackId, service, action, actionArgs];
> // FIXME: This is unnecessary with WKWebView binding
> // and should move into the else below
> commandQueue.push(JSON.stringify(command));
>
> if (bridgeMode === jsToNativeModes.WK_WEBVIEW_BINDING) {
> window.webkit.messageHandlers.cordova.postMessage(command);
> } else {
> if (!isInContextOfEvalJs && commandQueue.length == 1) {
> pokeNative();
> }
> }
> {code}
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]