Commit graph

120 commits

Author SHA1 Message Date
Cheng Zhao
b0b6214416 Update node: enable running like upstream node. 2013-08-08 16:57:07 +08:00
Cheng Zhao
55034be104 Add power-monitor module, fixes #45. 2013-08-03 16:03:56 +08:00
Cheng Zhao
02de9c3b39 Enable idle GC for both browser and renderer. 2013-07-29 20:50:03 +08:00
Cheng Zhao
4acbbd1ad7 Discard the idle gc module. 2013-07-29 20:34:07 +08:00
Cheng Zhao
e995383401 Guard against double erasing an object, fixes #44. 2013-07-29 19:14:35 +08:00
Cheng Zhao
2f2cbce9b9 [Win] Override node's console and output stream with chromium's logging.
On Window node doesn't outputing as GUI program, so we have to switch to
chromium's implementation. Hacking into node (like what we did before
this commit) would sometimes make the outputing blocked.
2013-07-25 20:06:23 +08:00
Cheng Zhao
85e4e99e7f [Win] Poll events with GetQueuedCompletionStatus, fixes #41. 2013-07-23 19:19:11 +08:00
Cheng Zhao
767354476b Should force the embed thread to quit when terminating. 2013-07-23 16:55:09 +08:00
Cheng Zhao
9efde9577a Move the watcher queue hack to NodeBindingsMac.
It's mac only.
2013-07-23 13:08:40 +08:00
Cheng Zhao
2f9c30dd50 [Win] Simply poll events for every 50ms.
This only makes async functions half work, will use IOCP for the
polling.
2013-07-22 16:43:58 +08:00
Cheng Zhao
008b8d404d Don't separate node bindings into renderer and browser part.
Since we are going to use embeding thread to implement message
integration on all platforms, we do not need to separate renderer and
browser anymore.
2013-07-22 16:05:35 +08:00
Cheng Zhao
fa9e939745 Cleanup the node bindings code. 2013-07-22 15:25:39 +08:00
Cheng Zhao
1f019b36d2 Remove redundant calls to wake up main thread. 2013-07-22 15:06:08 +08:00
Cheng Zhao
00fda0e778 Move common message integration code to NodeBindings' base class. 2013-07-22 14:58:25 +08:00
Cheng Zhao
41ff753339 Don't use gcd to post tasks to main thread. 2013-07-22 13:03:13 +08:00
Cheng Zhao
25d9c1a14d Add process.activateUvLoop() API. 2013-07-09 20:38:44 +08:00
Cheng Zhao
b5bc347cd4 cpplint 💄 2013-07-07 16:26:59 +08:00
Cheng Zhao
8bdf06131b Separate the creation function of NodeBindings for renderer and browser.
On Windows the message loop integration would need two different
implementations.
2013-07-04 19:47:48 +08:00
Cheng Zhao
d870855645 Implement simple Beep() on Windows. 2013-07-04 16:30:48 +08:00
Cheng Zhao
f53ed6c503 Implement MoveItemToTrash on Windows. 2013-07-04 16:30:48 +08:00
Cheng Zhao
177bb87bb7 Use the platform_util_win implementation from Chromium. 2013-07-04 16:30:47 +08:00
Cheng Zhao
3176e03866 Ranged for is not supported by VS 2010. 2013-07-01 21:54:18 +08:00
Cheng Zhao
230173da1a snprintf is not supported by VS. 2013-07-01 21:47:21 +08:00
Cheng Zhao
398c0a7c6a Implement converting string vector to char pointer array on Windows. 2013-07-01 21:44:25 +08:00
Cheng Zhao
ca389edc38 Implement process.crash() on Windows. 2013-07-01 21:35:00 +08:00
Cheng Zhao
1f8fd40195 Add auto-updater module. 2013-06-03 17:59:34 +08:00
Cheng Zhao
dfa5257ce0 Update to latest chromium and brightray. 2013-06-02 00:26:24 +08:00
Cheng Zhao
cbb467032d Add process.crash() for both browser and renderer. 2013-06-01 16:06:29 +08:00
Cheng Zhao
cd42fcceb9 Add crash reporter module (based on Quincy). 2013-06-01 15:57:37 +08:00
Cheng Zhao
bb69d99423 Use - as filename seperator for coffee script files. Fixes #15.
Also clean unused files and wrong file names.
2013-05-30 20:21:07 +08:00
Cheng Zhao
d265121ed0 Force running uv loop under a handle scope. Fixed #13. 2013-05-22 09:13:32 +08:00
Cheng Zhao
34e9132b68 Modify Window API to be more consistent.
* '_' becomes '-'
* removes 'position' field
* adds 'center' method.
2013-05-10 20:34:05 +08:00
Cheng Zhao
7cc04035c4 Add Menu API. (WIP) 2013-05-06 20:27:09 +08:00
Cheng Zhao
67f998357c Make the CallbacksRegistry a separate module, though rather small. 2013-05-05 20:30:38 +08:00
Cheng Zhao
ec43f740a7 Add the generialized showMessageBox API. 2013-05-03 21:03:26 +08:00
Cheng Zhao
4aeb5e1388 Add dialog API.
Supported APIs:
* openFile
* openMultiFiles
* openFolder
* saveAs

Each API is asynchronous and accepts a callback.
2013-05-03 19:31:24 +08:00
Cheng Zhao
66404b5f15 Add the 'app' built-in module. 2013-05-03 00:05:09 +08:00
Cheng Zhao
9f1fe4d2c2 Closing a window requires closing web contents now.
In this way, we can prevent the close of window by using beforeunload
handler.
2013-05-01 15:42:30 +08:00
Cheng Zhao
7a2734ed71 Add Clipboard API. 2013-04-30 16:10:25 +08:00
Cheng Zhao
a34a63797a Add shell.beep() API. 2013-04-29 22:10:03 +08:00
Cheng Zhao
157c978aa8 Add Shell API.
Include APIs:
shell.showItemInFolder
shell.openItem
shell.openExternal
shell.moveItemToTrash
2013-04-29 21:57:05 +08:00
Cheng Zhao
fbad5bc822 Add platform_util from Chrome.
The platform_util files just come from chrome/browser/ with slight
modifications so it doesn't depend on grit/generate_resources.h, which
is not availabe in libchromiumcontent because it's generated by chrome's
chrome/app/generated_resources.grd.
2013-04-29 20:41:11 +08:00
Cheng Zhao
c5ef255c4b Fix header guard. 2013-04-29 20:40:59 +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
51db9494bd Add API to return all keys of weak map. 2013-04-27 16:54:17 +08:00
Cheng Zhao
d4d1230107 Should wrap WeakCallback with handle scope. 2013-04-26 21:28:41 +08:00
Cheng Zhao
e91d4c7c99 Add WeakMap built-in module. 2013-04-25 21:46:04 +08:00
Cheng Zhao
a513daae30 Enable idle GC in browser. 2013-04-25 19:41:23 +08:00
Cheng Zhao
cc37431a1f Add v8_util.setDestructor.
This API can monitor when the object is GCed by V8, this is required by
the RPC API since we want to make sure the remote object got destroied
when object in renderer is GCed.
2013-04-25 18:25:18 +08:00
Cheng Zhao
ddad3e4846 Add built-in v8_util module for internal use. 2013-04-25 16:30:31 +08:00
Cheng Zhao
ab4015ef51 Module names starting with atom_common_ can be loaded by both sides. 2013-04-25 15:36: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
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
993cf1cc61 Add API messages for IPC. 2013-04-21 11:01:04 +08:00
Cheng Zhao
4c0a162963 Inject node bindings to renderer's DOM. 2013-04-20 11:13:06 +08:00
Cheng Zhao
855b42551d Improve the way to integrate libuv.
Now we poll libuv's events in embed thread by adding main loop's backend
fd to a new kqueue fd, instead of directly polling on main loop's
backend fd. In this way we can avoid dealing with one shot events
overselves.
2013-04-19 21:21:04 +08:00
Cheng Zhao
60528e53ee Use JavaScript to open the main window. 2013-04-17 20:05:43 +08:00
Cheng Zhao
0d8c4dde97 💄 for cpplint. 2013-04-14 17:33:44 +08:00
Cheng Zhao
0f6ece2d27 Add our own built-in native module system. 2013-04-14 15:36:48 +08:00
Cheng Zhao
c6e62dcffd Use node's error reporting system in browser. 2013-04-13 23:38:13 +08:00
Cheng Zhao
409228207c Integrate libuv with browser's message loop. 2013-04-13 23:05:13 +08:00
Cheng Zhao
40307126d7 Load atom.js on startup. 2013-04-13 21:10:41 +08:00
Cheng Zhao
f853fc3df5 Initialize node in browser process. 2013-04-13 18:39:09 +08:00
Cheng Zhao
c27cbaaaf9 Implement generic native window class. 2013-04-12 15:04:46 +08:00