6ff111a141
* Don't use JSON to send the result of `ipcRenderer.sendSync`. - Change the return type of AtomViewHostMsg_Message_Sync from `base::string16` to `base::ListValue` - Adjust lib/browser/api/web-contents.js and /lib/renderer/api/ipc-renderer.js to wrap/unwrap return values to/from array, instead of serializing/deserializing JSON. This change can greatly improve `ipcRenderer.sendSync` calls where the return value contains Buffer instances, because those are converted to Array before being serialized to JSON(which has no efficient way of representing byte arrays). A simple benchmark where remote.require('fs') was used to read a 16mb file got at least 5x faster, not to mention it used a lot less memory. This difference tends increases with larger buffers. * Don't base64 encode Buffers * Don't allocate V8ValueConverter on the heap * Replace hidden global.sandbox with NodeBindings::IsInitialized() * Refactoring: check NodeBindings::IsInitialized() in V8ValueConverter * Refactor problematic test to make it more reliable * Add tests for NaN and Infinity |
||
---|---|---|
.. | ||
api_messages.h | ||
atom_api_asar.cc | ||
atom_api_clipboard.cc | ||
atom_api_clipboard.h | ||
atom_api_clipboard_mac.mm | ||
atom_api_crash_reporter.cc | ||
atom_api_key_weak_map.h | ||
atom_api_native_image.cc | ||
atom_api_native_image.h | ||
atom_api_native_image_mac.mm | ||
atom_api_shell.cc | ||
atom_api_v8_util.cc | ||
atom_bindings.cc | ||
atom_bindings.h | ||
constructor.h | ||
event_emitter_caller.cc | ||
event_emitter_caller.h | ||
features.cc | ||
locker.cc | ||
locker.h | ||
object_life_monitor.cc | ||
object_life_monitor.h | ||
remote_callback_freer.cc | ||
remote_callback_freer.h | ||
remote_object_freer.cc | ||
remote_object_freer.h |