Commit graph

295 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