Commit graph

288 commits

Author SHA1 Message Date
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
41ff753339 Don't use gcd to post tasks to main thread. 2013-07-22 13:03:13 +08:00
Cheng Zhao
4c71fbb68b [Win] views_chromiumcontent.lib is renamed to chromiumviews.lib. 2013-07-09 12:26:31 +08:00
Cheng Zhao
7dae2c4966 Link to the views module as static library. 2013-07-09 10:22:38 +08:00
Cheng Zhao
525433905b Also ship content_shell.pak on Windows. 2013-07-08 09:55:38 +08:00
Cheng Zhao
7c44d1fa3e Compile out a working exe! 2013-07-06 08:29:08 +08:00
Cheng Zhao
d473fcbf64 Implement basic methods of NativeWindowWin. 2013-07-05 18:33:37 +08:00
Cheng Zhao
ec147010fd Add dummy implemenation of accelerator_util for Windows. 2013-07-05 10:23:10 +08:00
Cheng Zhao
3d77ee9d3b Add dummy implementation of file dialog for Windows. 2013-07-05 10:13:09 +08:00
Cheng Zhao
cbb3c89ad7 Add dummy implementation of message box for Windows. 2013-07-05 09:59:53 +08:00
Cheng Zhao
df460c8d7d Add dummny menu implementation for Windows. 2013-07-05 09:44:56 +08:00
Cheng Zhao
803ec00378 Add dummy implementaions of node integration in Windows. 2013-07-04 21:18:28 +08:00
Cheng Zhao
afca7464be Implement browser related functions in Windows. 2013-07-04 20:58:28 +08:00
Cheng Zhao
f146c1fe3b Seperate implementation of crash reporter to standalone class. 2013-07-04 16:30:49 +08:00
Cheng Zhao
5f3b71e589 Add empty auto updater implementation for Windows. 2013-07-04 16:30:48 +08:00
Cheng Zhao
40e06db3a8 Use the platform_util_win implementation from Chromium. 2013-07-02 18:47:51 +08:00
Cheng Zhao
236b29ee8c Fix main function on Windows. 2013-07-02 18:02:55 +08:00
Cheng Zhao
892f1aa7ce Rename source_root to atom_source_root to avoid conflicts. 2013-07-02 12:10:14 +08:00
Cheng Zhao
59ba3f1025 Implement main function on Windows. 2013-07-01 22:21:31 +08:00
Cheng Zhao
fecaa7b75a Should enable C++ exceptions for all targets on Windows.
It's a requirement for using standard library of VS.
2013-07-01 20:52:48 +08:00
Cheng Zhao
49a5f6e38c Compile atom_lib with C++ exception enabled. 2013-07-01 18:31:23 +08:00
Cheng Zhao
02ba7d27b9 Make Objective-C's categories work.
See more on:
http://stackoverflow.com/questions/2567498/objective-c-categories-in-static-library
2013-06-29 09:23:27 +08:00
Cheng Zhao
6362e60a7b Make video and audio tag work, fixes #31.
See more about this on:
fdf20531bd
2013-06-26 10:31:32 +08:00
Cheng Zhao
5c48f03dfe Rewrite compile-coffee script in python. 2013-06-24 16:24:19 +08:00
Cheng Zhao
6bb3f1bba8 Merge branch 'master' into python
Conflicts:
	script/update
2013-06-22 07:55:51 +08:00
Cheng Zhao
f26db5c7a1 Enable getUserMedia(). Part of fixes for #31. 2013-06-21 16:05:28 +08:00
Cheng Zhao
6d187cbb7d Build atom-shell with ninja. 2013-06-19 21:34:43 +08:00
Cheng Zhao
b9455a997c Add runModalSheetForWindow method for NSAlert. 2013-06-07 15:41:26 +08:00
Cheng Zhao
1f8fd40195 Add auto-updater module. 2013-06-03 17:59:34 +08:00
Cheng Zhao
08dbdd9718 Wrap Sparkle's minimum interface with C++. 2013-06-02 20:26:03 +08:00
Cheng Zhao
312744b863 Build with Sparkle.framework. 2013-06-02 15:48:08 +08:00
Cheng Zhao
cd42fcceb9 Add crash reporter module (based on Quincy). 2013-06-01 15:57:37 +08:00
Cheng Zhao
97bc6cfc81 Build with Quincy. 2013-06-01 15:17:45 +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
2bb33d8b32 Rewrite dialog API with our simpler blocking dialog implementations.
Fixed #9, fixed #10.
2013-05-20 21:50:54 +08:00
Cheng Zhao
84e721188b Build node-webkit style Menu API arounding the delegate-style Menu API. 2013-05-16 19:34:23 +08:00
Cheng Zhao
b16c19ce32 Convert generic accelerator to platform accelerator.
When creating menus, the accelerators must be converted to platform
accelerators before they can be used.
2013-05-16 15:24:18 +08:00
Cheng Zhao
072ac8ba0b Rename 'window' module to 'browser_window' module. Fix #3. 2013-05-15 19:19:53 +08:00
Cheng Zhao
014b0a9a38 Add StringToAccelerator to parse a string as an accelerator. 2013-05-14 21:12:27 +08:00
Cheng Zhao
d6103dd639 Expose Menu API in javascript. 2013-05-14 19:24:52 +08:00
Cheng Zhao
667384ef74 Use Atom's icon. 2013-05-14 15:50:33 +08:00
Cheng Zhao
ebac5f9ed5 Ship the custom node binary build with atom-shell.
This is required by the child_process.fork, which is indeed executing
the node binary to start a script.

The node fork can be found at:
https://github.com/atom/cefode-node/tree/chromium-v8
2013-05-11 21:07:03 +08:00
Cheng Zhao
e6a9add691 Rename atom module to atom_delegate to avoid conflicts with Atom. 2013-05-07 20:33:50 +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
9b75019898 Add 'quit' and 'window-all-closed' events for app module. 2013-05-03 10:53:54 +08:00
Cheng Zhao
66404b5f15 Add the 'app' built-in module. 2013-05-03 00:05:09 +08:00
Cheng Zhao
d151d494bd Add Browser class to controll when the application should quit. 2013-05-02 23:43:23 +08:00
Cheng Zhao
8cf1050730 Add _mac suffix for obj-c files. 2013-05-02 23:03:14 +08:00
Cheng Zhao
264f085afb Add WindowList class to manage all windows. 2013-05-02 22:54:09 +08:00
Cheng Zhao
43d42ca57f Quiting the application is now equivalent to close all windows. 2013-05-02 20:09:19 +08:00
Cheng Zhao
a674572dd4 Implement beforeunload event.
Unlike normal browser which would show a dialog to choose whether to
continue, you can just return a empty string in the handler to prevent
unloading.
2013-05-01 00:05:19 +08:00
Cheng Zhao
7a2734ed71 Add Clipboard API. 2013-04-30 16:10:25 +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
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
0692776020 No more C++ RecordedObject and ObjectsRegistry code.
All RPC API will be implemented in pure javascript.
2013-04-25 15:02:58 +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
16244e42e0 Use require('ipc').send to communicate between browser and renderer. 2013-04-23 12:18:07 +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
683087fbc4 Record all objects created by API in browser. 2013-04-20 21:52:46 +08:00
Cheng Zhao
1309d04ca7 Emulate DOM's Event class. 2013-04-18 21:42:20 +08:00
Cheng Zhao
2d016785a7 Add observers list for NativeWindow. 2013-04-18 20:50:58 +08:00
Cheng Zhao
60528e53ee Use JavaScript to open the main window. 2013-04-17 20:05:43 +08:00
Cheng Zhao
7da34e65f7 Initial empty window javascript binding. 2013-04-16 00:25:08 +08:00
Cheng Zhao
488d72e41b Internal built-in module code should be wrapped under api namespace. 2013-04-15 23:01:12 +08:00
Cheng Zhao
ef2056c3f5 Initial javascript startup code. 2013-04-15 15:39:54 +08:00
Cheng Zhao
a7516f3da5 Copy the default_app to bundle. 2013-04-14 23:24:46 +08:00
Cheng Zhao
ee420b1590 Write js codes in coffee script. 2013-04-14 22:48:35 +08:00
Cheng Zhao
0f6ece2d27 Add our own built-in native module system. 2013-04-14 15:36:48 +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
939b695675 Build with node. 2013-04-12 22:52:32 +08:00
Cheng Zhao
87dbf82d83 Pass brightray.gypi via parameters.
We need to make sure node.gyp can get variables in brightray.gypi, this
needs minimum modifications.
2013-04-12 21:17:54 +08:00
Cheng Zhao
f5e74e1b65 AtomBrowserMainParts is platform-independent now. 2013-04-12 15:57:17 +08:00
Cheng Zhao
3391370857 Steal ChromeEventProcessingWindow from chrome.
Chromium has done quite a lot of low level works for us, steal them to
ease our lives.
2013-04-12 15:24:36 +08:00
Cheng Zhao
c27cbaaaf9 Implement generic native window class. 2013-04-12 15:04:46 +08:00
Cheng Zhao
a915cf2e81 Initial empty browser. 2013-04-12 10:14:23 +08:00