Commit graph

30 commits

Author SHA1 Message Date
Cheng Zhao
a06c9b806b Add API to get any global variable from browser. 2013-04-30 16:27:14 +08:00
Cheng Zhao
1f1f6abd78 💄 2013-04-29 19:56:12 +08:00
Cheng Zhao
af57d3be08 Uniform message names.
Messages sent to browser should be prefixed with ATOM_BROWSER_, and
messages sent to renderer should be prefixed with ATOM_RENDERER_.
2013-04-29 18:59:34 +08:00
Cheng Zhao
f1e15b49a9 Support passing callbacks from renderer to browser. 2013-04-29 18:24:37 +08:00
Cheng Zhao
948e50285d Use camelCase not under_score, I forgot it's coffee script. 2013-04-27 19:13:24 +08:00
Cheng Zhao
99f6a5678a Add remote.getCurrentWindow() API in renderer. 2013-04-27 19:06:41 +08:00
Cheng Zhao
b35946381b Make the RPC stuff code more understandable. 2013-04-26 23:58:49 +08:00
Cheng Zhao
da3d4c8408 Allow renderer to get object in browser for arbitrary times.
Now, when creating a remote object in renderer, the browser will
reference the corresponding object by storing it in a strong map. And
when the remote object in renderer is GCed, the corresponding object
will be dereferenced in browser.
2013-04-26 23:26:41 +08:00
Cheng Zhao
cc921fed1e Add remote.getObject API to get object in browser by it's ID. 2013-04-26 22:25:30 +08:00
Cheng Zhao
3f6f2f4bea Tell browser to release remote object when the object is GCed. 2013-04-25 19:28:04 +08:00
Cheng Zhao
a7ddf57620 Cheat on the remote object's constructor name. 2013-04-25 16:36:28 +08:00
Cheng Zhao
678a4953fa Better support of array type in RPC. 2013-04-25 16:03:29 +08:00
Cheng Zhao
70fe77ca34 Return object instead of function for remote object type. 2013-04-25 15:28:37 +08:00
Cheng Zhao
2997eb9c77 Add renference links. 2013-04-25 15:12:56 +08:00
Cheng Zhao
d723173bc7 Initial RPC API implementation.
Basic usage is:
remote = require 'remote'
Window = remote.require 'window'
w = new Window { width: 800, height: 600 }

Still need to do:
* Beter support for Array type.
* Remote objects should cheat devtools.
* Support cross-process callbacks.
2013-04-24 16:43:01 +08:00
Cheng Zhao
f8899242c5 No more plan for ipc.sendSync in browser.
I want the browser to be fully asynchronous, so sending synchronous
messages from browser to renderer will be unacceptable.
2013-04-23 22:21:49 +08:00
Cheng Zhao
1b87a31940 Add ipc.sendSync in renderer. 2013-04-23 21:52:19 +08:00
Cheng Zhao
8f0b2b6363 small tune of IPC interface. 2013-04-23 20:57:14 +08:00
Cheng Zhao
d28f51fb9c Add getRoutingID and getProcessID for window API. 2013-04-23 17:21:34 +08:00
Cheng Zhao
16244e42e0 Use require('ipc').send to communicate between browser and renderer. 2013-04-23 12:18:07 +08:00
Cheng Zhao
66a0abe799 Renderer can now use process.send to send messages to browser. 2013-04-22 21:32:48 +08:00
Cheng Zhao
a7c3bdbf5d Separate AtomBindings for renderer. 2013-04-22 16:27:52 +08:00
Cheng Zhao
2ba3ce740c Remove RemoteObject, C++ layer should only have basic bridges. 2013-04-22 16:16:55 +08:00
Cheng Zhao
3ae0c99ca9 Add the RemoteObject API in renderer. (not implemented yet) 2013-04-22 09:13:25 +08:00
Cheng Zhao
5948bff23f Share same native bindings code on both renderer and browser. 2013-04-21 14:53:26 +08:00
Cheng Zhao
17a9c2aea5 💄 for cpplint. 2013-04-20 14:03:55 +08:00
Cheng Zhao
0b2b9d371e Remembers all opened web frames.
There is a hack in WebKit to switch to the creation context of exception
when under node context, so we need to remember all window contexts.

Remove this when we have multi-context node.
2013-04-20 13:05:23 +08:00
Cheng Zhao
4c0a162963 Inject node bindings to renderer's DOM. 2013-04-20 11:13:06 +08:00
Cheng Zhao
e49861b45b 💄 2013-04-12 23:20:09 +08:00
Cheng Zhao
a915cf2e81 Initial empty browser. 2013-04-12 10:14:23 +08:00