Граф коммитов

27009 Коммитов

Автор SHA1 Сообщение Дата
Cheng Zhao afe07521c5 Correctly handle window's lifetime when it's closed. 2013-05-01 23:28:01 +08:00
Adam Roben 57ed898128 Merge pull request #9 from aroben/frontend-host-crash
frontend_host_ should be destructed after devtools_web_contents_.
2013-05-01 07:50:39 -07:00
Cheng Zhao 082f88ed3c frontend_host_ should be destructed after devtools_web_contents_. 2013-05-01 22:00:20 +08:00
Cheng Zhao 9e489cae0c Add window closing related methods for window observer. 2013-05-01 16:33:19 +08:00
Cheng Zhao edd8410c24 Simply the closing model. 2013-05-01 16:12:00 +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 31d6be0e63 Release resources in browser when renderer view is gonna unloaded. 2013-05-01 10:59:29 +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 bcf6cd9f1b Drop support for cross-process callbacks.
Now it's forbidden for browser to store reference to objects (including
functions) in renderer, because when the renderer is destroyed, it's
extremely hard to clean all of corresponding objects in browser
correctly, which would cause very bad resources leak.
2013-04-30 22:37:54 +08:00
Cheng Zhao 74c519ac3f Enable getting window from routing id and process id. 2013-04-30 20:32:23 +08:00
Cheng Zhao de94e4f37e Update to newest brightray. 2013-04-30 18:59:07 +08:00
Cheng Zhao a06c9b806b Add API to get any global variable from browser. 2013-04-30 16:27:14 +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 1f1f6abd78 💄 2013-04-29 19:56:12 +08:00
Cheng Zhao ae0e7ade78 Add vendor/ to .gitignore, so ag won't search it. 2013-04-29 19:39:05 +08:00
Cheng Zhao 6c21121001 Avoid using destoryed native objects in js API. 2013-04-29 19:38:18 +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 51db9494bd Add API to return all keys of weak map. 2013-04-27 16:54:17 +08:00
Adam Roben 676e92e322 Fix crashes when dragging links
Turns out we needed to implement ContentClient::GetNativeImageNamed, which is
called to get the default drag image.
2013-04-26 22:49:58 -04:00
Adam Roben 73d467d657 Turn off C++ exceptions
We weren't using them anyway, and don't intend to. This matches Chromium.
2013-04-26 14:13:45 -04: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
Adam Roben 6908eecd0c Allow embedders to specify extra .pak files 2013-04-26 11:04:51 -04:00
Cheng Zhao 536b523232 Keep an id for each object added to global weak map. 2013-04-26 22:33:31 +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 d4d1230107 Should wrap WeakCallback with handle scope. 2013-04-26 21:28:41 +08:00
Cheng Zhao dded164052 Separate stored objects by the render view.
When a render view is closed, it's not guarrenteed that all objects'
weak callback would be called. So we must clean up all objects manually
after the render view gets closed.
2013-04-26 21:14:29 +08:00
Cheng Zhao e91d4c7c99 Add WeakMap built-in module. 2013-04-25 21:46:04 +08:00
Cheng Zhao bcfec7c8cd Notify creation and destruction of native objects. 2013-04-25 20:23:00 +08:00
Cheng Zhao a513daae30 Enable idle GC in browser. 2013-04-25 19:41:23 +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 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 a7ddf57620 Cheat on the remote object's constructor name. 2013-04-25 16:36:28 +08:00
Cheng Zhao ddad3e4846 Add built-in v8_util module for internal use. 2013-04-25 16:30:31 +08:00
Cheng Zhao 678a4953fa Better support of array type in RPC. 2013-04-25 16:03:29 +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 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 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
Adam Roben 3b879a6178 Allow embedders to provide their own ContentClient subclass 2013-04-24 18:30:47 -04:00
Adam Roben c27ac79969 Update to latest libchromiumcontent
* vendor/libchromiumcontent 4ae397b...d5cef3b (1):
  > Add libtest_support_chromiumcontent.a
2013-04-24 15:56:43 -04:00
Adam Roben 94d7b383c5 Fix DCHECK() assertion in BrowserClient 2013-04-24 10:54:53 -04: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