Commit graph

345 commits

Author SHA1 Message Date
Paul Betts
75362450cd Everything is in KB 2016-05-17 14:47:56 -07:00
Paul Betts
191b054ff0 Implement process and system memory statistics 2016-05-17 14:47:56 -07:00
Paul Betts
a7ac7ba4c1 Add the dumbest new builtin that works 2016-05-17 14:47:56 -07:00
Cheng Zhao
f1142cf2b5 Adapt to changes on hash functions of Chrome 50 2016-05-13 11:12:15 +09:00
Cheng Zhao
73223fe5c3 Upgrade to Node v6 2016-05-13 11:12:01 +09:00
Cheng Zhao
ff3104b44b hash function for pair is already defined in VS 2016-05-11 21:32:28 +09:00
Cheng Zhao
759a46f3d6 Use DoubleIDWeakMap for |rendererFunctions| 2016-05-11 20:40:48 +09:00
Cheng Zhao
49ac160ff7 Move createIDWeakMap to v8Util 2016-05-11 19:30:06 +09:00
Cheng Zhao
a077355d70 Turn api::IDWeakMap into api::KeyWeakMap<T> 2016-05-11 18:21:35 +09:00
Cheng Zhao
04d59991b0 Use create function instead of IDWeakMap constructor 2016-05-11 16:15:32 +09:00
Cheng Zhao
c708ae8eb5 Remove IDWeakMap 2016-05-11 15:51:22 +09:00
Cheng Zhao
7f2a46cdd5 Remove unused methods of IDWeakMap 2016-05-11 15:17:35 +09:00
Cheng Zhao
446da677b5 Remove NativeImage.toDataUrl 2016-05-06 10:12:56 -07:00
Cheng Zhao
76a954077d Simplify RemoteCallbackFreer 2016-04-26 16:37:46 +09:00
Cheng Zhao
d9778413e1 Should also destory RemoteCallbackFreer when page is reloaded 2016-04-26 16:30:26 +09:00
Cheng Zhao
06cf0406fe Dereference remote objects with native code
Previously we rely on the v8util.setDestructor to dereference the remote
objects in JavaScript, however as documented in V8, it is forbidden to
call V8 APIs in object's destructor (e.g. the weak callback), and doing
so would result in crashs.

This commit removes the JavaScript setDestructor method, and avoids
doing the dereference work with V8.
2016-04-26 16:16:22 +09:00
Cheng Zhao
2ae52d0ff4 Make Wrappable a template class 2016-04-25 10:17:54 +09:00
Cheng Zhao
39a20ea4fb Upgrade Node to v5.10.0 2016-04-03 15:05:47 +09:00
Cheng Zhao
c307478d5d Merge pull request #4892 from deepak1556/v8_util_patch
common: use v8::private symbols as identifiers for object properties
2016-03-31 10:22:23 +09:00
Cheng Zhao
70f9cb098f Use Environment::KickNextTick 2016-03-27 19:13:44 +09:00
Cheng Zhao
d83cb53997 Type of native array has changed 2016-03-27 19:13:44 +09:00
Robo
5fccbfc7c6 common: use v8::private symbols as identifiers for object properties 2016-03-24 01:24:01 +05:30
Cheng Zhao
52d09e9600 Run callback of setDestructor immediately when GC happens
Fix #4733.
2016-03-21 21:42:12 +09:00
Cheng Zhao
939d69df6e Throw error with message of "Not implemented". 2016-03-17 22:01:31 +09:00
Paul Betts
e94da877c2 Fix compile oopses on non-OS X 2016-03-16 12:49:34 -07:00
Paul Betts
d344c1e408 AsNativeRepresentation => getNativeHandle 2016-03-14 19:50:31 -07:00
Paul Betts
e3e6cd6fd8 Remove type parameter 2016-03-14 19:48:40 -07:00
Paul Betts
63d9174822 🔥 build warning on Win32 2016-03-13 20:27:44 -07:00
Paul Betts
7233c83874 Linting 2016-03-13 20:18:03 -07:00
Paul Betts
262abc43f8 First hack at being able to return NSImage pointers 2016-03-13 20:08:53 -07:00
Paul Betts
b3da5370c0 Add a new method to get the representation of an image 2016-03-13 20:08:09 -07:00
Paul Betts
f4ec369873 More boring fixups 2016-03-10 17:06:22 +09:00
Cheng Zhao
5fae63a2f5 Fix compilation errors on OS X 2016-03-10 17:06:21 +09:00
Paul Betts
4503aafe64 int32 => int32_t 2016-03-10 17:06:21 +09:00
Paul Betts
d2944c62a5 basictypes.h => macros.h 2016-03-10 17:06:21 +09:00
Kevin Sawicki
70aa9b06ee Move JavaScript to root lib/ folder 2016-03-08 11:14:21 -08:00
Kevin Sawicki
022c2c0d8c absolute_path -> normalize_path 2016-03-07 16:45:14 -08:00
Kevin Sawicki
0dba0b9cad MakePathAbsolute -> NormalizePath 2016-03-07 16:45:14 -08:00
Kevin Sawicki
9c88a5c1ab Check ReferencesParent before calling MakeAbsoluteFilePath 2016-03-07 16:45:14 -08:00
Kevin Sawicki
145d5abe80 Mention explicit using original path on failures 2016-03-07 16:45:14 -08:00
Kevin Sawicki
b90c0c7895 Use MakeAbsoluteFilePath when creating native image from path 2016-03-07 16:45:13 -08:00
Cheng Zhao
c65cfadd09 v8Util.createObjectWithName is no longer used 2016-02-22 13:05:58 +08:00
Kevin Sawicki
b3ac48cf52 Handle argument parsing in C++ 2016-02-17 09:05:21 -08:00
Kevin Sawicki
04517caf36 Add missing semicolon 2016-02-17 08:56:59 -08:00
Kevin Sawicki
5e5313d8b1 Return value from bindings method 2016-02-17 08:56:59 -08:00
Kevin Sawicki
f5bed87199 without_activation -> activate 2016-02-17 08:56:58 -08:00
Ben Gotow
d8679b3899 Allow openExternal to open URLs in the background #3224 2016-02-17 08:56:58 -08:00
Max Brunsfeld
3e3e593366 👕 Add missing semicolons 2016-02-16 15:28:33 -08:00
Max Brunsfeld
ccef805e9b Add API for custom handling of deprecations 2016-02-16 15:21:32 -08:00
Vjekoslav Ratkajec
252b12be13 Add readRtf feature with appropriate spec test. Docs updated as well. 2016-02-05 09:06:21 +01:00
Vjekoslav Ratkajec
acd5d40ab0 Adding support to write RTF to clipboard. 2016-02-04 19:38:47 +01:00
Robo
a6bcc5d110 common: export hideInternalModules 2016-01-27 18:44:47 +05:30
Kevin Sawicki
b1f679ff6d Clean up semicolon lint errors 2016-01-21 09:32:21 -07:00
Kevin Sawicki
70bcb0ac5a Clean up no-unused-vars lint errors 2016-01-21 09:32:21 -07:00
Cheng Zhao
3b62ce7fa6 modules.exports => module.exports 2016-01-16 14:26:01 +08:00
Kevin Sawicki
f830af49c2 Use ES6 style class 2016-01-15 15:30:01 -08:00
Kevin Sawicki
2b95aeba3c Declare vars one per line 2016-01-15 10:17:45 -08:00
Jessica Lord
1779701445 Use const 2016-01-14 14:40:12 -08:00
Kevin Sawicki
030d2a843c Remove extra newlines around comments 2016-01-14 11:10:12 -08:00
Kevin Sawicki
990dc30e8d Use // for multi-line comments 2016-01-14 10:44:21 -08:00
Kevin Sawicki
f4af744519 Use // for single line comments 2016-01-14 10:35:29 -08:00
Cheng Zhao
af02739c4e Change webview's zoom level on JavaScript side 2016-01-13 12:50:02 +08:00
Cheng Zhao
55dfddba77 Handle executeJavaScript in JavaScript 2016-01-13 12:11:46 +08:00
Kevin Sawicki
1f9691ae13 Convert all source files to JavaScript 2016-01-12 16:24:06 -08:00
Kevin Sawicki
403870a27e Migrate to block comments 2016-01-12 16:22:34 -08:00
Cheng Zhao
2294a5ce69 Leak FunctionTemplateHandle
They are cached through the app's lifetime, and freeing them at the
right time is complicate, so just leak them.
2015-12-29 10:40:10 +08:00
Cheng Zhao
d8d963b780 Cache function templates created by CreateObjectWithName 2015-12-29 10:29:48 +08:00
Cheng Zhao
3d2163230b Optimize the case when creating plain object 2015-12-28 22:51:40 +08:00
Cheng Zhao
353f08e477 Remove sync call in remote module 2015-12-17 22:03:16 +08:00
Kevin Sawicki
67c0de36a3 📝 Add missing period 2015-12-15 16:47:19 -08:00
Kevin Sawicki
d44a9d1fcc 🎨 Remove parens 2015-12-15 16:46:53 -08:00
Kevin Sawicki
aedfd3bf0e Add specs for companyName/submitURL being required 2015-12-15 16:44:38 -08:00
Kevin Sawicki
80e9631220 Use better signature match in deprecation message 2015-12-15 16:27:01 -08:00
Kevin Sawicki
524649797f Make companyName and submitURL required options 2015-12-15 16:22:31 -08:00
Kevin Sawicki
dcc99dd5cb Remove duplicate start calls 2015-12-15 16:10:04 -08:00
Cheng Zhao
73e7773d84 Update to API changes of Chrome 47 2015-12-07 19:56:23 +08:00
Cheng Zhao
a15f9fab5b Use BuildPrototype to build prototype
This saves the step of manually keeping the global template object,
which is easy to forget then leak.
2015-12-03 16:04:46 +08:00
Cheng Zhao
cfdcfcbd80 Add executable permission in CopyFileOut 2015-11-27 22:06:37 +08:00
Juan Cruz Viotti
585ff9062c 🐛 Fix missing execution permission bit in execFile override
Consider an electron application that uses `execFile` to run a script
that lives within the application code base:

```coffee
child_process = require 'child_process'
child_process.execFile __dirname + '/script.sh', (error) ->
  throw error if error?
```

An application like this will fail when being packaged in an `asar` with
an following error:

```
Error: spawn EACCES
```

Electron overrides certain `fs` functions to make them work within an
`asar` package. In the case of `execFile`, the file to be executed is
extracted from the `asar` package into a temporary file and ran from
there.

The problem is that during the extraction, the original permissions of
the file are lost.

We workaround this by:

1. Extending `asar.stat` to return whether a file is executable or not,
  which is information that's already saved in the `asar` header.

2. Setting execution permissions on the extracted file if the above
  property holds true.

Fixes: https://github.com/atom/electron/issues/3512
2015-11-26 23:30:23 -04:00
Cheng Zhao
94e24abb99 Use the new style remote module in Electron 2015-11-13 22:22:25 +08:00
Cheng Zhao
e8ffd24e4e Rename the "clicked" event to "click" in Tray 2015-11-13 16:41:33 +08:00
Cheng Zhao
fbb8e61958 Replace "Url" in API names with "URL" 2015-11-13 16:03:40 +08:00
Cheng Zhao
852500e5fa Fix a few places using old style require 2015-11-13 09:38:22 +08:00
Cheng Zhao
2ca5a33d28 Add electron.hideInternalModules 2015-11-12 21:46:03 +08:00
Cheng Zhao
8b2942c279 Optimize remote.require('electron') 2015-11-12 20:30:40 +08:00
Cheng Zhao
1d1f911b09 Use require('electron') in Electron's code 2015-11-12 20:29:30 +08:00
Cheng Zhao
c2c09daa23 Add "electron" module 2015-11-12 16:40:27 +08:00
Cheng Zhao
f0bd28ca8d Do not turn off deprecation notice by default
It is v4 now, people should be punished if they are still using
deprecated Node.js APIs.
2015-11-09 21:19:16 +08:00
Cheng Zhao
89ff62b1b5 Add "deprecate" module 2015-11-09 21:19:16 +08:00
Cheng Zhao
47649ffd17 win: Fix calling showItemInFolder in renderer process 2015-11-05 20:47:27 +08:00
Cheng Zhao
cb91d4487b Clean up the code handling renderer callback 2015-10-31 15:00:06 +08:00
Robo
2c59f4567e use webcontents id to identify callbacks 2015-10-30 19:51:19 +05:30
Robo
3a154ab8ea add line and column values to callback id 2015-10-29 21:21:30 +05:30
Robo
ac4df34ecd create binding to idweakmap 2015-10-29 17:51:56 +05:30
Robo
eae7c840b7 use idweakmap for holding callbacks in browser 2015-10-29 17:51:56 +05:30
Robo
62d15953ff remote: track listeners for browser side 2015-10-29 17:51:56 +05:30
Cheng Zhao
f399f50e9e Fix calling showItemInFolder in renderer
The remote method always assumes the existence of the remote object but
doesn't keep a reference to it, so if we only keep the reference of a
remote method we will get into troubles once the remote object is
garbage collected.

We should probably fix this in remote module, but since most things are
already working quite good, I'm using the work-around for now.

Fix #3139.
2015-10-26 16:48:27 +08:00
Cheng Zhao
6bfe06ec4e Pass original argv in callback 2015-10-22 19:02:21 +08:00
Cheng Zhao
d9fdfb711f Clean up CallbackRegistry
There were some ancient code there.
2015-10-16 20:25:30 +08:00
Ben Gotow
aeb24b784d Allow "released callback" errors to be traced to remote calls 2015-10-15 18:46:59 -07:00
Cheng Zhao
7b57a945f8 mac: Set process.mas to true for MAS build 2015-10-14 11:53:52 +08:00
Cheng Zhao
df12f181a4 Can not print string16 in wcout on POSIX 2015-10-10 17:43:56 +08:00
Eran Tiktin
1896deb10e Fix console.* calls on Windows
- Calls for console.* on browser process are printed with no need for
--enable-logging
- The output is without the logging prefix
- The cursor in the terminal is always after the last output
- The first output starts on a new line and not at the prompt
- console.* from renderer are not printed to cmd
- Added a missing '\n' in the default_app help output
2015-10-10 06:39:02 +03:00
Robo
7756bb6762 webcontents: notify guests of embedders' zoom level change 2015-10-08 10:38:22 +05:30
Cheng Zhao
e365cb6b1c No longer needs to define node_includes.h at last 2015-09-07 16:41:49 +08:00
Cheng Zhao
45491ca7ab Fix API changes 2015-09-03 17:50:23 +09:00
Robo
af52eda0eb process: api to set file descriptor soft limit 2015-08-31 13:00:04 +05:30
Cheng Zhao
63eb4b72e2 IDWeakMap is not used anly more in JS 2015-08-27 19:55:16 +08:00
Cheng Zhao
64e8ce0c07 Don't rely on IDWeakMap for bookkeeping remote objects
It frees us from using C++ to track JS objects, thus improves the
performance of collecting memory.
2015-08-27 19:01:34 +08:00
Cheng Zhao
bd64f5ced2 Use V8's new SetWeak method 2015-08-27 16:41:51 +08:00
Cheng Zhao
9212a1db8e Merge branch 'master' into chrome44 2015-08-21 19:29:34 +08:00
Cheng Zhao
82fc98848a win: Move the ICO reading code into a separate function 2015-08-21 12:06:38 +08:00
Eran Tiktin
f386342a7c Fix memory leak and confirming to style guide
Fixed according to @hokein 's suggestions.
2015-08-20 19:26:20 +03:00
Eran Tiktin
2bc087b5d5 Merge branch 'master' into nativeimage_ico_support_windows 2015-08-20 17:11:52 +03:00
Haojian Wu
11ffb9dfb6 Fix node::Buffer API changes. 2015-08-11 09:48:29 +08:00
Eran Tiktin
850edd546c Added support for reading .ico from asar
If the file path is to an asar archive, we extract the file to temp, so
LoadImage can load it
2015-08-08 21:57:29 +03:00
Eran Tiktin
ab1b4c46b2 Converted tabs to spaces 2015-08-08 18:31:12 +03:00
Eran Tiktin
bec7a399cb Add support for using .ico icon files on Windows
NativeImage::CreateFromPath now supports loading .ico icon files on
Windows.
2015-08-08 17:58:05 +03:00
Cheng Zhao
c51f349dfa Run microtask before handling pending process.nextTick tasks
This follows the behavior of Node.js.
2015-08-07 21:26:24 +08:00
Cheng Zhao
1bb0dde360 Use WebScopedRunV8Script in converted C++ functions 2015-08-07 19:37:17 +08:00
Cheng Zhao
2ff104d012 Move callback converter from native mate to electron 2015-08-07 19:35:35 +08:00
Cheng Zhao
2f04f76e69 ImageSkiaRep doesn't release memory 2015-08-05 15:49:37 +08:00
Robo
239d535cac render: executejavascript with option to simulate usergesture 2015-07-30 15:38:46 +05:30
Cheng Zhao
2d5c0ac9ee Coffeescript declares variable before assigning it 2015-07-30 10:31:49 +08:00
Cheng Zhao
8d09f13bad Fix running callback when global.global is deleted
Close #2366.
2015-07-30 10:28:24 +08:00
Cheng Zhao
9afa94f4b8 win: Implement double-clicked event 2015-07-29 12:36:01 +08:00
Cheng Zhao
2c97cd64cf Minor style fix for #2352 2015-07-29 11:48:40 +08:00
Nishanth Shanmugham
9211109088 Add NativeImage.IsTemplateImage method
* Rename internal function that determines template image filename patterns
* Add the new IsTemplateMethod
2015-07-26 21:58:48 -07:00
Robo
2d3e938a7f clipboard: api to write multiple formats to same writer 2015-07-10 09:20:52 +05:30
Cheng Zhao
15f350edcb Don't make IDWeakMap public API 2015-06-24 13:38:55 +08:00
Cheng Zhao
d02413de00 Make the JS IDWeakMap a thin wrapper of C++ IDWeakMap 2015-06-24 13:35:39 +08:00
deepak1556
8e05fe3350 process: add hang method 2015-06-18 14:14:29 +05:30
Cheng Zhao
132c13a11b Fix calls to deprecated node::ThrowError API 2015-06-10 14:21:09 +08:00
Cheng Zhao
db9615f5cd Don't rely on JS for setting optional argument
It makes the code much shorter and cleaner.
2015-06-10 12:12:37 +08:00
Cheng Zhao
200a19dad9 linux: Don't use clipboard module in renderer process 2015-06-10 11:57:28 +08:00
Haojian Wu
cd1c331112 Fix coffeelint error. 2015-06-06 17:59:20 +08:00
Haojian Wu
c821a06e2f Implement crash-reporter.getUploadedReports API.
Also redefine the getLastCrashReport API implementation using
getUploadedReports API.
2015-06-05 18:59:03 +08:00
Cheng Zhao
f54506acc0 Merge pull request #1822 from hokein/crashpad-mac
Crashpad!
2015-06-04 22:11:14 +08:00
Haojian Wu
d5b47d1059 Simplify and polish the code. 2015-06-04 15:53:37 +08:00
Haojian Wu
94382cbaa2 Fix cpplint error. 2015-06-03 11:31:34 +08:00
Haojian Wu
4457edb1d3 Implement crash-reporter.getLastLastCrashReport API on OS X. 2015-06-03 09:47:42 +08:00
deepak1556
4d56281972 restore clipboard.has api and fix docs 2015-05-27 13:35:51 +05:30
deepak1556
5584e3fd49 clipboard: api to list supported types, reading and writing markup 2015-05-27 13:21:56 +05:30
Cheng Zhao
d78efe7c22 Use Local instead of Handle 2015-05-22 19:11:22 +08:00
Cheng Zhao
01e891652f Fix compilation errors 2015-05-22 15:24:34 +08:00
Cheng Zhao
fa169ee7ff Remove the original-fs.js
It is acutally not needed.
2015-05-20 13:31:28 +08:00
Cheng Zhao
d8d7e5b9bb Add Archive::GetFD 2015-05-11 11:02:17 +08:00
Cheng Zhao
cd0aa4a956 Merge pull request #1389 from atom/rename-to-electron
Rename to electron
2015-04-17 15:22:07 +08:00
Cheng Zhao
76316e5e65 Forgot to set default version in crash reporter 2015-04-14 17:37:22 +08:00
Cheng Zhao
c6c305a827 Don't hard-code product name in crash-repoter 2015-04-14 15:39:48 +08:00