Incarnadine created CB-8207:
-------------------------------
Summary: [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: Bug
Components: iOS
Affects Versions: 3.5.0
Reporter: Incarnadine
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:
```
// 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();
}
}
```
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]