Commit Graph

40 Commits

Author SHA1 Message Date
Nathan Sobo
f22fedebcf Inject new instances of native objects into every JS context
This prevents concurrent access to the same state from different
worker threads. We needed to treat windowState specially because we
explicitly want it to last beyond the life-span of a single context.
So we store it as a static variable in `native.mm` and synchronize
access with a static `NSLock`. Good enough for now.
2013-01-24 17:22:50 -08:00
Corey Johnson & Nathan Sobo
f876071ff0 💄 2013-01-24 17:22:49 -08:00
Corey Johnson & Nathan Sobo
5294cb6df1 Kill lines I forgot to delete 2013-01-24 17:22:49 -08:00
Nathan Sobo
87829043d4 Use window binding instead of v8 extension for $native object
This paves the way to inject `$native` into the context of a web worker
2013-01-24 17:22:49 -08:00
Kevin Sawicki & Nathan Sobo
2fb27bb2dd Store pathToOpen using new atom.set/getWindowState api
When you use `setWindowState`, your data is saved across refreshes.
You can only store state that can be serialized to JSON.
2013-01-10 18:04:22 -07:00
Kevin Sawicki
cdac5e0763 Read output for terminate handler off main thread
Follow on to commit 1bd0cc4152
2012-12-19 17:25:19 -08:00
Corey Johnson & Nathan Sobo
1bd0cc4152 ChildProcess can handle commands that return large amounts of data.
When a command returned a large amount of data, it was blocking on the stderr  callback when `[fileHandle availableData]` was called. From what I can tell, this is because stderr was being called with a zero-length string.

This was fixed when `[fileHandle availableData]` was moved to run inside the NSTask thread (instead of on the main thread). It now returns a zero-length string rather than blocking forever.

An unresolved question is why stderr is being called with zero-length strings.
2012-12-19 11:47:50 -08:00
Corey Johnson & Kevin Sawicki
a6a05b6ff4 Remove directories from fuzzy-finder 2012-12-12 17:25:45 -08:00
Corey Johnson & Kevin Sawicki
404f637101 Populate fuzzy-finder asynchronously 2012-12-12 12:26:39 -08:00
Corey Johnson & Nathan Sobo
702b8047e4 Unwatch all paths after each test 2012-11-29 15:31:05 -08:00
Corey Johnson
5c4079a2c8 Use NSASCIIStringEncoding instead of NSNonLossyASCIIStringEncoding 2012-11-29 10:36:16 -08:00
Corey Johnson
02c441e937 If $native.read fails to open a file as UTF8, it opens it as ascii
This is a temporary solution to allow Atom to open binary files. The ultimate goal would be to have a hex-editor built into atom.
2012-11-29 10:34:22 -08:00
Corey Johnson & Nathan Sobo
db78d6a7e5 Ensure PathWatcher isn't watching anything at the end of each spec
This replaces the old functionality of ensuring no files or directories have subscriptions in javascript. We allow this now, but we just don't allow leaked watches at the native layer.
2012-11-28 17:16:15 -07:00
Kevin Sawicki
0e89c7a673 💄 2012-10-26 10:41:40 -07:00
Corey Johnson
de03cc82ed fs.traversePath(path) works if path is a symlink 2012-10-12 15:44:01 -07:00
Corey Johnson
c43c82fbcb 💄 2012-10-12 15:44:00 -07:00
Kevin Sawicki
a1f9e061bc Remove native.list
Use native.traverseTree instead from fs.list
and fs.listTree
2012-10-09 17:41:33 -07:00
Kevin Sawicki
d8ea07468b Include FTS_PHYSICAL when calling fts_open 2012-10-09 17:41:33 -07:00
Kevin Sawicki
edc1c590aa Guard against null onDir function result 2012-10-09 17:41:33 -07:00
Kevin Sawicki
375d3551fa Check fts_info against FTS_NSOK for files 2012-10-09 17:41:33 -07:00
Kevin Sawicki
6b6cf85ba0 DRY up native traverseTree for file and folder cases 2012-10-09 17:41:32 -07:00
Kevin Sawicki
8b61e6a9df Split out file and directory callbacks 2012-10-09 17:41:32 -07:00
Kevin Sawicki
71c161d527 Remove unneeded regex matching for built-in ignores 2012-10-09 17:41:32 -07:00
Kevin Sawicki
f71b90578e 💄 2012-10-09 17:41:32 -07:00
Kevin Sawicki
c304788fbf 💄 2012-10-09 17:41:32 -07:00
Kevin Sawicki
98c8525bdd Use single args vector and clear before insertion 2012-10-09 17:41:32 -07:00
Kevin Sawicki
51a41a9a72 Add native traverseTree 2012-10-09 17:41:32 -07:00
Corey Johnson
871a230b03 Make $native.exists a tiny bit faster 2012-09-26 16:30:22 -07:00
Corey Johnson & Nathan Sobo
c9c138491e Add atom.exit, which exits from the browser process instead of the renderer 2012-08-31 10:15:12 -06:00
Corey Johnson & Nathan Sobo
bd1982ede1 Nix fs.async.* methods. They aren't needed now. 2012-08-30 16:12:15 -06:00
Nathan Sobo
d5ffdb153a Remove $native.saveDialog. It's replaced with atom.showSaveDialog 2012-08-30 11:08:55 -06:00
Nathan Sobo
c24c9e2003 Merge branch 'master' of github.com:github/atom-cef3
Conflicts:
	native/atom_cef_client.h
	native/atom_cef_client_mac.mm
	src/app/atom.coffee
2012-08-29 23:08:31 -06:00
Nathan Sobo
63a0746cc5 Remove $native.alert 2012-08-29 20:53:04 -05:00
Corey Johnson
d9dc526425 DevTools are working 2012-08-29 15:31:06 -07:00
Corey Johnson
073164c584 Remove newWindow from native extension 2012-08-29 08:56:57 -07:00
Corey Johnson & Nathan Sobo
f6a55ee468 Throw exception if fs.list's path argument is null or empty 2012-08-28 16:47:36 -07:00
Nathan Sobo
16c7c523cf Native open code now presents the open panel from the browser process
This avoids retina resolution issues and ink framework errors that occur when opening dialogs from the chromium renderer process.
2012-08-28 13:54:44 -05:00
Corey Johnson & Nathan Sobo
4781d477cd Remove tabs and handle key events when there are no windows open. 2012-08-28 10:37:25 -07:00
Nathan Sobo
a4a87917ba Put the other v8 extensions in the v8_extensions namespace 2012-08-28 11:16:27 -05:00
Corey Johnson & Nathan Sobo
5141aba658 Move all extension C and JavaScript code into native/v8_extensions 2012-08-27 14:02:05 -07:00