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

54 Коммитов

Автор SHA1 Сообщение Дата
Samuel Attard 24b3d66767
refactor: remove electron.asar and embed JS in binary (#18577)
* refactor: remove electron.asar and embed JS in binary

* chore: update DEPS to merged node sha

* chore: remove unneeded eslint ignore
2019-06-03 17:03:59 -07:00
Samuel Attard bc527f6b51
refactor: bundle the browser and renderer process electron code (#18553)
* refactor: bundle the browser and renderer process electron code

* Bundles browser/init and renderer/init
  * Improves load performance of main process by ~40%
  * Improves load performance of renderer process by ~30%
* Prevents users from importing our "requiring" our internal logic such
as ipc-main-internal.  This makes those message buses safer as they are
less accessible, there is still some more work to be done though to lock
down those buses completely.
* The electron.asar file now only contains 2 files, as a future
improvement maybe we can use atom_natives to ship these two files
embedded in the binary
* This also removes our dependency on browserify which had some strange
edge cases that caused us to have to hack around require-order and
stopped us using certain ES6/7 features we should have been able to use
(async / await in some files in the sandboxed renderer init script)

TLDR: Things are faster and better :)

* fix: I really do not want to talk about it

* chore: add performance improvements from debugging

* fix: resolve the provided path so webpack thinks it is absolute

* chore: fixup per PR review

* fix: use webpacks ProvidePlugin to keep global, process and Buffer alive after deletion from global scope for use in internal code

* fix: bundle worker/init as well to make node-in-workers work

* chore: update wording as per feedback

* chore: make the timers hack work when yarn is not used
2019-06-02 13:03:03 -07:00
Milan Burda 5a7b56b042 chore: finish replacing assert with expect in tests (#18215)
* spec: replace assert with expect in api-browser-view-spec.js

* spec: replace assert with expect in api-touch-bar-spec.js

* spec: replace assert with expect in api-web-frame-spec.js

* spec: replace assert with expect in api-web-contents-view-spec.js

* spec: replace assert with expect in security-warnings-spec.js

* spec: replace assert with expect in api-menu-item-spec.js

* spec: replace assert with expect in api-web-request-spec.js

* spec: replace assert with expect in api-remote-spec.js

* spec: replace assert with expect in api-session-spec.js

* spec: replace assert with expect in api-system-preferences-spec.js

* spec: replace assert with expect in api-browser-window-spec.js

* spec: replace assert with expect in webview-spec.js

* spec: replace assert with expect in api-net-spec.js

* spec: replace assert with expect in api-protocol-spec.js

* spec: replace assert with expect api-web-contents-spec.js

* spec: replace assert with expect in api-shell-spec.js

* spec: replace assert with expect in modules-spec.js

* spec: replace assert with expect in chromium-spec.js

* spec: replace assert with expect in api-crash-reporter-spec.js

* spec: replace assert with expect in asar-spec.js

* spec: rename assert-helpers to expect-helpers

* address PR feedback
2019-05-20 12:04:18 -05:00
Milan Burda 2dd108e9c9 fix: fs.promises does not work with asar paths (#18092) 2019-05-02 21:06:01 +09:00
Cheng Zhao a4fcc32799
feat: upgrade to Node 12 (#17838)
* fix: add boringssl backport to support node upgrade

* fix: Update node_includes.h, add DCHECK macros

* fix: Update node Debug Options parser usage

* fix: Fix asar setup

* fix: using v8Util in isolated context

* fix: make "process" available in preload scripts

* fix: use proper options parser and remove setting of _breakFirstLine

_breakFirstLine was being set on the process, but that has changed in node 12 and so is no longer needed. Node will handle it properly when --inspect-brk is provided

* chore: update node dep sha

* fix: process.binding => _linkedBinding in sandboxed isolated preload

* fix: make original-fs work with streams

* build: override node module version

* fix: use _linkedBinding in content_script/init.js

* chore: update node ref in DEPS

* build: node_module_version should be 73
2019-04-26 18:55:12 +09:00
Shelley Vohr 38d75010c7
chore: rename atomBinding to electronBinding (#17419) 2019-03-18 12:37:06 -07:00
Alexey Kuzmin 3cb9aadb80 build: fix the build with enable_run_as_node disabled (#15711) 2019-01-11 08:02:06 -08:00
Milan Burda fade3eb679 chore: make "nodeIntegration" and "webviewTag" default to false (#16235) 2019-01-07 22:19:27 +03:00
Alex Greenland dc93d94bc8 fix: support async child process methods without callback in asar (#15927)
* fix: support async child process methods without callback in asar

* fix: support async child process methods without callback in asar (improved)
2018-12-18 16:27:39 +09:00
Shelley Vohr 94f853c654 chore: re-enable execFileSync binary exec spec (#15476) 2018-10-30 15:45:46 -04:00
Shelley Vohr 40874ddec6
fix: update fs methods for options param (#15323)
* fix: update fs methods for options param

* fix: update rest of fs methods with changes
2018-10-23 15:14:05 -07:00
Cheng Zhao 4c4d8c5bfa fix: support ASAR in fs.copyFile (#14942) 2018-10-03 09:36:20 -07:00
Milan Burda c61db523c7 refactor: replace var with const / let (#14866) 2018-09-29 09:17:00 +10:00
Samuel Attard 558fff69e7
chore: update to standard 12 2018-09-14 14:57:01 +10:00
Aleksei Kuzmin ce8e93bad3 tests: ignore nulls and undefined in the "util.promisify" test 2018-09-11 20:24:04 +02:00
Alexey Kuzmin c7bec13069 test: refactor the "util.promisify" test (#14491) 2018-09-07 10:13:10 -05:00
Milan Burda c63014c256 refactor: use loadFile when appropriate in tests (#14422) 2018-09-04 09:50:53 -05:00
Shelley Vohr b785f45852
fix: override fs.realpathSync.native and fs.realpath.native (#14031)
* fix: override fs.realpathSync.native and fs.realpath.native
* spec: test new native functions
2018-08-12 00:10:55 -07:00
Milan Burda c52b3d921e fix: some APIs modified for ASAR support cannot be util.promisify'ed (#13845) 2018-08-01 13:06:48 +10:00
Jack Teng 3044607746 spec: fix asar spec due to change in node.js
node.js rename the internalModuleReadFile to internalModuleReadJSON
change spec to reflect this change
2018-06-19 10:42:21 -07:00
Felix Rieseberg 0278e380de 🔧 Spec: Don’t use deprecated `new Buffer()` 2017-11-23 14:22:31 -08:00
Aleksei Kuzmin cf749a8e18 Explicitly skip tests that should be skipped 2017-11-20 14:43:23 +01:00
Siyuan Liu 5a48c1feed fixes 10128 2017-07-31 09:32:45 +08:00
Kevin Sawicki f5f790863d Use 1 or 2 minute timeout for long specs 2016-11-29 14:31:57 -08:00
Kevin Sawicki d20e664ea8 Close window in an afterEach 2016-11-29 12:13:33 -08:00
Kevin Sawicki f553d16539 Only support ELECTRON_NO_ASAR in non browser/renderer processes 2016-10-12 11:11:27 -07:00
Kevin Sawicki 8897a7a926 Add specs for ELECTRON_NO_ASAR env var 2016-10-12 11:11:27 -07:00
Cheng Zhao e189132176 Merge pull request #7123 from deepak1556/asar_range_patch
protocol: respect range header when reading from asar
2016-09-09 20:59:12 +09:00
deepak1556 c003c3e28f increase spec timeout 2016-09-08 11:38:24 +05:30
deepak1556 7e6cba1482 add failing spec 2016-09-08 09:37:06 +05:30
Kevin Sawicki b186d752da Add failing spec for restoring noAsar value 2016-09-06 13:40:15 -07:00
Kevin Sawicki 0ebe142b2f Close windows instead of destroying them 2016-08-03 16:23:39 -07:00
Kevin Sawicki b627b8711a Add spec for accessing normal files 2016-07-25 11:17:40 -07:00
Kevin Sawicki 8eca019157 Support paths as Buffers 2016-07-25 11:10:36 -07:00
Kevin Sawicki 30fbe92970 Add asar-supported fs.accessSync implementation 2016-07-25 11:05:18 -07:00
Kevin Sawicki 3ad5504194 Add asar-supported fs.access implementation 2016-07-25 10:50:30 -07:00
Kevin Sawicki 197ec98800 Remove standard linter warnings 2016-06-29 09:46:16 -07:00
Juan Cruz Viotti 1a27ecdad4 Override `child_process.execFile` asar patch for `child_process.exec`
NodeJS implements `child_process.exec` by simply passing the whole
command to `child_process.execFile`. See:

- https://github.com/nodejs/node/blob/master/lib/child_process.js#L90
- https://github.com/nodejs/node/blob/master/lib/child_process.js#L99

Electron patches `child_process.execFile` to add support for `asar`
archives by injecting logic that extracts the required files from the
`asar` to a temporary location before delegating the work to the
original `child_process.execFile`.

In order to decide whether to inject the custom `asar` extracting logic,
Electron makes use of a helper function called `splitPath()`. See:

- https://github.com/electron/electron/blob/master/lib/common/asar.js#L37

If the first argument of the returned array equals `true`, means that
the path is considered to be an `asar` archive, and thus the extraction
logic takes place. The problem is that if the command passed to
`child_process.execFile` *contains* a path to an asar archive, padded
with other commands/arguments, `splitPath()` will consider it to be an
`asar` archive, and will try to extract it, throwing a rightfully
`Invalid package` error.

Fixes: https://github.com/electron/electron/issues/5571
Signed-off-by: Juan Cruz Viotti <jviottidc@gmail.com>
2016-05-19 17:19:36 -04:00
Kevin Sawicki 609f5dcaaf Update read path to something that exists 2016-05-06 10:12:55 -07:00
Kevin Sawicki 3c96d7b726 Rename atom.asar to electron.asar in specs 2016-04-01 16:12:57 -07:00
Zeke Sikelianos 7c58f7fb02 eradicate all per-file eslint globals 2016-03-30 17:00:34 -07:00
Zeke Sikelianos 5e4696f4a7 standardize more 2016-03-30 17:00:32 -07:00
Zeke Sikelianos 9db733a4ff mostly more globals 2016-03-30 17:00:32 -07:00
Zeke Sikelianos f35f362272 autoformat more files 2016-03-30 17:00:31 -07:00
Kevin Sawicki c3b058cea3 Update path to ipc.js 2016-03-08 11:22:58 -08:00
Kevin Sawicki 4b6639c9fd Add missing done param 2016-03-07 15:30:33 -08:00
Kevin Sawicki 4b65610d40 Add specs for realpath of unpacked asar path 2016-03-07 15:27:21 -08:00
Kevin Sawicki 31028ab636 Update var declarations 2016-02-17 09:27:25 -08:00
Kevin Sawicki 8a9395101e Remove unused results 2016-02-17 09:08:34 -08:00
Kevin Sawicki 12adaa0570 Remove unneeded returns 2016-02-17 09:08:34 -08:00