Commit graph

138 commits

Author SHA1 Message Date
Samuel Attard
fe06784a3b build: disable the custom libcxx on Windows 2019-04-02 14:43:06 -07:00
Samuel Attard
30448bb1b8 build: allow zip files to be created larger than 2GB 2019-04-02 14:43:05 -07:00
Samuel Attard
a968f4f999
build: remove strip_debug_info gn arg declaration as it is android only and causing release build failures on windows (#17306) 2019-03-08 19:34:39 -08:00
deepak1556
00aeb8e5c5 Revert "Disable precompiled headers"
This reverts commit 2556d86c8a.
Required clang update is now available.
2019-03-08 15:04:32 -08:00
Jeremy Apthorp
652e232813
feat: enable setuid sandbox on linux (#17269) 2019-03-08 13:10:26 -08:00
Samuel Attard
3b74837020 refactor: Split 'Event' docs/types into more specific Event types (#17038)
* Event = Base event type (with preventDefault)
* IpcMainEvent = Event that ipcMain emits (with sender, reply, etc.)
* IpcRendererEvent = Event that ipcRenderer emits (with sender,
senderId, etc.)
* KeyboardEvent = Event that we emit with keyboard flags (ctrlKey,
altKey, etc.)

This will dramatically improve peoples TS experience with IPC events
2019-02-19 09:24:19 +00:00
Samuel Attard
4ccd6d5900
build: add a pre-flight check to all NPM steps in GN to ensure that we have the right NPM deps installed (#16974) 2019-02-14 14:28:41 -08:00
deepak1556
2556d86c8a Disable precompiled headers
Workaround for https://crbug.com/924225
2019-02-14 23:59:26 +05:30
Samuel Attard
c363eed543 chore: suppress output of npm_action unless it fails (#16888) 2019-02-12 21:32:47 -08:00
Samuel Attard
26df9992cf
build: use typescript for internal Electron JS code (#16441) 2019-02-06 10:27:20 -08:00
Samuel Attard
b202ad1e24
refactor: remove js2asar.py and port logic to JS in more readable / GN-style way (#16718)
* refactor: remove js2asar.py and port logic to JS in more readable / GN-style way

* refactor: further clean up ASAR impl, add new node_action GN template
2019-02-05 12:10:15 -08:00
John Kleinschmidt
bb7c63c052
build: fix native_mksnapshot build (#15770)
* build: fix native_mksnapshot build

When we changed our electron_mksnapshot_zip target to include the v8_context_snapshot_generator, this dependency made the `run_mksnapshot` target run which was trying to run an arm/arm64 binary on x64 hardware.

Don't use custom build args for native_mksnapshot as they are not needed

* Added comment on why snapshot_blob.bin is skipped on arm/arm64
2018-11-21 15:19:19 -05:00
Jeremy Apthorp
90795c4fa4
build: make make_locale_dirs idempotent (#15768) 2018-11-19 15:55:13 -08:00
Andy Dill
4f45b72381 fix: package swiftshader binaries (#15380) 2018-11-17 19:24:29 +11:00
Jeremy Apthorp
c8860d006b
fix: restore missing .lproj directories (#15721)
the empty lproj directories help macOS to understand what locales the app supports
2018-11-15 09:30:45 -08:00
Jeremy Apthorp
d03527ae47
build: skip pyproto/ resources in zip.py (#15348) 2018-10-23 17:19:02 -07:00
Alexey Kuzmin
5e199152e2 ci: run unittests on clean Chromium (#15125)
* ci: run unittests on clean Chromium

* test: add '--run-only-disabled-tests' flag to "script/native-tests.py"

* ci: add a job to run only disabled unittests

* test: use a different GN config for the native tests

* test: enable blink_common_unittests

* test: disable WeakPtrDeathTest*
2018-10-22 16:12:19 -04:00
Jeremy Apthorp
30ccb6aea5
fix: allow renaming electron.exe (#15173) 2018-10-15 17:26:34 -07:00
Heilig Benedek
a82bcc7e3c refactor: move printing out of chromium_src (#15023)
* remove printing related things from chromium_src

* chore: add printing build flag and patch

* fix: include PrintingService on other platforms too

* fix: printing_handler is only needed on Windows

* fix: format BUILD.gn properly

* fix: rename printing build flag to avoid conflict with chromium

* fix: place previously missed printing calls behind build flag

* fix: accidentally renamed flag in patch file

* fix: don't include all printing strings

* fix: allow ShowItemInFolder and OpenItem to block, fixing a DCHECK crash

* fix: make things compile, some changes got lost while rebasing

* fix: remove rogue line from BUILD.gn

* chore: update patch description

* style: lint fix

* chore: use chromium printing buildflag, move node related stuff out of patch

* revert: remove ScopedAllowBlockingForTesting call

* fix: fix my rebase blooper

* fix: re-add header lost during rebase, update patch

* fix: add <map> include, tweak the patch a bit

* revert: remove rogue diff from patch

* fix: clean up after rebase
2018-10-13 12:57:04 +11:00
Jeremy Apthorp
e61b88fc2a build: add v8_embedder_string to build args (#15039) 2018-10-12 08:26:35 -07:00
Heilig Benedek
95696c9456 refactor: move text-to-speech out of chromium_src (#15024)
* chore: add tts patch and buildflag, makes tts work again

* chore: add tts patch and buildflag, makes tts work again

* fix: make things compile

* build: add relevant tts files for linux

* fix: update patch and patch description, should now compile on mac

* build: move chrome specific sources under chromium_src:chrome target

* build: enable_extensions again

We are depending on them, check `//electron/chromium_src:chrome` target
for more info.

* fix: update tts.patch to receive notifications about browser context destruction

* fix: extend browser process from chrome layer

The global state g_browser_process is shared between //chrome
and //electron.

* spec: add basic speech synthesis test

* spec: skip speech tests on ci

* build: fix compilation on windows
2018-10-11 08:52:12 -05:00
Alexey Kuzmin
978d16b8ab
revert: "fixme: allow huge Electron archives" (#15048)
This reverts commit f7dee77f2b.
2018-10-10 13:06:58 +02:00
Samuel Attard
37d44965d1 Revert "FIXME: try enabling dcheck to see if that will get us more info on linux-release-testing"
This reverts commit 1a17ce81d5.
2018-10-10 16:49:53 +11:00
Jeremy Apthorp
1a17ce81d5 FIXME: try enabling dcheck to see if that will get us more info on linux-release-testing 2018-10-09 14:39:39 -07:00
Aleksei Kuzmin
f7dee77f2b fixme: allow huge Electron archives 2018-10-09 14:39:39 -07:00
Samuel Attard
a0c2f3dc28 chore: re-enable bundled font config, we should fix the sysroot 2018-10-09 14:38:00 -07:00
Samuel Attard
7aa01bc00a chore: dont use bundled fontconfig 2018-10-09 14:38:00 -07:00
John Kleinschmidt
1cf00274ab
ci: strip linux binaries for release builds (#14991) 2018-10-09 16:19:05 -04:00
Shelley Vohr
71058fd9a3
fix: re-enable osr following m68 upgrade (#14973) 2018-10-05 11:03:35 -07:00
Samuel Attard
03e6113ef7
Merge pull request #14964 from electron/chromium-upgrade/68
feat: upgrade to Chromium 68.0.3440.128 and Node 10.11.0
2018-10-04 12:04:53 +10:00
Samuel Attard
b59e01bdb0
Revert "feat: upgrade to Chromium 68.0.3440.128 and Node 10.11.0 (#14677)" (#14963)
This reverts commit e012801420.
2018-10-04 12:03:15 +10:00
Jeremy Apthorp
e012801420 feat: upgrade to Chromium 68.0.3440.128 and Node 10.11.0 (#14677)
* Update to Chromium 68.0.3440.128 and Node 10.10.0

* update v8, ffmpeg, chromium, crashpad, boringssl, and webrtc patches

* fix SSL_get_tlsext_status_type patch

* pass encryption_modes_supported to CdmInfo

* kNoSandbox moved into service_manager

* bump CHROME_VERSION_STRING

TODO: automatically pull in the real chrome version

* PathService -> base::PathService

* net::X509Certificate::Equals -> net::X509Certificate::EqualsExcludingChain

* use content::ChildProcessTerminationInfo

* GetHandle() -> GetProcess().Handle()

* ScopedNestableTaskAllower doesn't take an argument

* net::HttpAuthCache::ClearEntriesAddedWithin -> ClearAllEntries

* std::unique_ptr<WebContents>

* blink::WebFullscreenOptions

* OnAudioStateChanged doesn't take a WebContents

* content::RESULT_CODE_NORMAL_EXIT -> service_manager::RESULT_CODE_NORMAL_EXIT

* MessageLoopCurrent

* WasResized -> SynchronizeVisualProperties

* SetTimeStamp takes a base::TimeTicks

* ExecuteScriptInIsolatedWorld is single-script only

* DispatchNonPersistentCloseEvent takes a callback now

* expose URLRequestContextGetter::{Add,Remove}Observer

* test: remove no longer existing Chromium test deps

cc_blink_unittests has been removed in
https://chromium-review.googlesource.com/1053765

mojo_common_unittests has been removed in
https://chromium-review.googlesource.com/1028000

* SetFdLimit -> IncreaseFdLimitTo

NOTE: the behaviour of this API has changed slightly, and we should
mention that in the notes.

* MessageLoop::QuitWhenIdleClosure -> RunLoop::QuitCurrentWhenIdleClosureDeprecated

* certificate_transparency moved out of net/

pending a clearer decision about what to do with CT

in the mean time, copy CreateLogVerifiersForKnownLogs from deleted chromium source

* add secure_origin_whitelist to chrome source list

NOTE: is this something we actually want? cc @deepak1556

* DrainBackgroundTasks -> DrainTasks

* use new node options parser

* fix disable_scroll_begin_dcheck.patch

* ViewsDelegate::CreateWebContents went away

see https://chromium-review.googlesource.com/c/chromium/src/+/1031314

* kZygoteProcess moved into service_manager

* test: minor improvements to the Node spec

 - reformat some parts
 - better failures reporting with `expect`
 - skip some tests instead of marking them as passed

* chromium removed *_posix.cc from the source filters

* test: fix :electron_tests compilation

* better crash diagnostics in ffmpeg test

* fix: enable back a DCHECK in viz::ServerSharedBitmapManager

Fixes #14327.
Backports https://chromium-review.googlesource.com/802574.

* chore: update linux sysroots

* chore: remove obsolete "install-sysroot.py" script

* test: fix frame-subscriber test on Mac

* disable OSR for now

* test: make before-input-event test more robust

* test: make run-as-node --inspect test more robust on windows

* roll node to v10.11.0

* avoid duplicate files when building a zip

* disable failing assert in beginFrameSubscription dirty-rectangle test

* experiment with is_cfi = false

* fix: build torque with x64 toolchain

Co-Authored-By: Alexey Kuzmin <github@alexeykuzmin.com>

* test: disable the "app.relaunch" test on Linux

* chore: bump node to get header tar file

* chore: bump node to fix tar.py line endings
2018-10-04 12:02:14 +10:00
Jeremy Apthorp
14fc6f3081 chore: add GN linting (#14678)
* chore: add GN linter

* chore: fix GN lint errors

* try some crazy bash to get a gn exe

* base64 on linux is different

* cloning build_tools doesn't download GN

* download_from_google_storage needs depot_tools in the path

* fixup! chore: add GN linter
2018-10-03 18:03:26 -05:00
Jeremy Apthorp
f7f93d2071 experiment with is_cfi = false 2018-10-04 00:15:00 +02:00
Jeremy Apthorp
81bd7fab55 avoid duplicate files when building a zip 2018-10-04 00:15:00 +02:00
Jeremy Apthorp
41d806ee45 disable OSR for now 2018-10-04 00:14:59 +02:00
Samuel Attard
2b3415dfd8 chore: remove duplicate and un-needed files from dist zips (#14882)
* chore: remove duplicate and un-needed files from dist zips

* Strip chromedriver binaries

Also, fix path for files to skip

* Don't strip mksnapshot for now

Mksnapshot needs special handling for arm/arm64 because there is both an x86 and arm/arm64 binary in those cases.
2018-10-02 11:12:37 -04:00
Jeremy Apthorp
77fb9cf416 chore: stop using electron.gyp for branding and version (#14559)
* chore: stop using electron.gyp for version info

* chore: remove branding info from electron.gyp

* Use get_electron_branding instead of gn read

* Flip project_name/product_name
2018-09-27 14:53:08 -04:00
Jeremy Apthorp
18c2574350 ci: migrate libcc's Dockerfile to electron and update it (#14786)
* ci: migrate libcc's Dockerfile to electron and update it

* Added nano and sudo

* Use new docker image in CircleCi

* installing nodejs needs curl

* Add needed dependencies

nacl contains dependencies needed for arm and ia32 builds
2018-09-25 15:30:22 -04:00
John Kleinschmidt
70fb89e201 No longer need to filter out resources dir
Also remove not needed change
2018-09-21 21:29:55 -04:00
John Kleinschmidt
a82c4923bd Make sure resources gets skipped 2018-09-21 16:58:33 -04:00
John Kleinschmidt
96ec3e9162 Split build and test into separate jobs
Also clean from review
2018-09-21 13:14:01 -04:00
John Kleinschmidt
e367aff8ac Cleaned up/fixed skip_path with @nornagon's suggestion.
Co-Authored-By: Jeremy Apthorp <nornagon@nornagon.net>
2018-09-21 13:12:26 -04:00
John Kleinschmidt
e78d84165a Add chromedriver to build
Make sure certain paths/files don't make it into the dist zip
Don't build the content shell test_runner
Make sure libffmpeg.dylib gets put in the right place
Run verify-ffmpeg on Mac builds
Add ffmpeg build to VSTS
2018-09-21 13:12:26 -04:00
Robo
b05bce1686 build: with enable_extensions=false (#14657) 2018-09-18 11:04:54 -07:00
Robo
66ced07545 build: update electron patches (#14623)
* build: remove common/icu/no_inline_default_constructor.patch

It was added in https://github.com/electron/libchromiumcontent/pull/207,
the issue is no longer valid in the GN build.

* build: remove common/icu/build_gn.patch

In GN release build all code including node are linked
statically in a single binary, the workaround is no longer valid.

* build: remove ununsed patches

* build: remove is_electron_gn_build arg

* build: remove component mode crt config patch

* build: remove executable config patch for character_data_generator

* build: remove latency_info.patch

* build: remove exec_script_whitelist patch

* build: update patches/common/v8/build_gn.patch

* build: remove common/chromium/fix-arm64-linking-error.patch

It was added in a1df18ca36
to workaround a linker issue.

* build: remove common/chromium/protobuf_build_gn.patch

It was added to workaround a VS linker bug, it has been fixed
in Update 1

* build: remove common/chromium/disable-recursive-surface-sync.patch

It was added in 6bc6626e2c
to fix dcheck on macOS, it no longer appears to be an issue.
2018-09-15 06:40:18 -05:00
Jeremy Apthorp
76c5f5cc8a
build: move libcc patches to electron repo (#14104)
In the GN build, libchromiumcontent is no longer a distinct library, but
merely a container for a set of scripts and patches. Maintaining those
patches in a separate repository is tedious and error-prone, so merge
them into the main repo.

Once this is merged and GN is the default way to build Electron, the
libchromiumcontent repository can be archived.
2018-09-13 22:02:16 -07:00
Aleksei Kuzmin
8bfad3ace3 build: use default value of the enable_widevine flag 2018-09-11 20:24:03 +02:00
Jeremy Apthorp
72526927d9 build: remove gyp build files (#14097)
* build: remove gyp build files

* docs: update build instructions

* build: temporary restore electron.gyp

* build: do not update Electron version in the electron.gyp

* chore: remove unused submodules

* ci: remove obsolete CI scripts and configs

* chore: remove obsolete scripts

* chore: remove obsolete functions from lib/util.py

* ci: send Slack notification for nightly build results
2018-09-09 10:15:32 +09:00
Jeremy Apthorp
58e8c025eb docs: expand on TODOs in BUILD.gn 2018-09-07 12:26:03 -07:00
Robo
c7c95fab2f build: [gn] widevine cdm support behind flag (#14423)
* build: [gn] widevine cdm support behind flag

* build: [gyp] link cdm_support in the component build
2018-09-05 16:00:37 -05:00
Robo
0c4e7104cf build: [gn] explicitly override rtc_use_h264 (#14378)
* build: [gn] explicitly override rtc_use_h264

* build: [gn] don't override ffmpeg config from release config

* build: [gn] remove is_cfi override from release config

The original concern about node is fixed and we have been
building testing builds without the override for sometime now.
2018-08-31 12:47:45 -05:00
John Kleinschmidt
5a72441b2a
build: build ffmpeg and native_mksnapshot for GN release builds (#14240)
* build ffmpeg and native_mksnapshot for GN release builds

* Test ffmpeg via verify-ffmpeg.py

* remove sccache from Windows builds
2018-08-22 11:41:25 -04:00
Jeremy Apthorp
f82f89b2a3 build: [gn] add distributable zip target (#14093)
* build: [gn] add distributable zip target

* build: update the CircleCI config

- enable debug and testing builds on Mac
- run Mac release builds nightly
- run test for Mac release builds
- use shared build machines configs

* Add resources dir to zip on non mac platforms.
2018-08-21 13:06:28 -04:00
Robo
fc730cc705 build: [gn mac] copy ffmpeg lib to framework bundle (#14225)
* build: [gn mac] copy ffmpeg lib to framework bundle

* Pull build config from enviroment variable

* build: use component ffmpeg in testing mode
2018-08-20 17:02:52 -04:00
Alexey Kuzmin
8adc24eef9 build: add config to build Electron for tests (#14101)
* build: add config to build Electron for tests

* build: run nightly linux builds for the 3-0-x branch

* build: gn: update CI config for linux builds

- run GN debug and testing builds for PRs (as FYI)
- do not run tests for GN debug builds
- run GN release builds nightly

* build: gn: run testing builds on CI instead of release on Windows

Should save some time since release builds set 'official_build=true'
which make the builds take much more time.

* build: gn: use testing config to run CI jobs on Mac

Tests should run faster for testing builds.
2018-08-16 16:28:01 -07:00
Charles Kerr
03e8c65b8b chore: remove duplicate setting 2018-08-16 13:56:03 -07:00
Charles Kerr
575b6df844 chore: promote 'is_jumbo_build=true' to all.gn 2018-08-16 13:41:47 -07:00
Charles Kerr
3e0d961684 chore: alphabetize config list 2018-08-16 11:46:35 -07:00
Charles Kerr
d294637e9c chore: enable jumbo builds in GN release configuration 2018-08-16 11:45:04 -07:00
Jeremy Apthorp
6d277ec784 [wip] build: try building node with GN 2018-08-10 10:06:27 -07:00
Jeremy Apthorp
32f456de07 chore: [gn] run 'gn format' over build/node/BUILD.gn 2018-07-31 09:55:27 -07:00
Jeremy Apthorp
d0a9c2c77f build: [gn] build release with is_cfi = false
When is_cfi = true (the default on Linux Release), Electron crashes at
boot with SIGILL in V8::InitializePlatform.
2018-07-30 13:58:38 -07:00
Jeremy Apthorp
a6bc8030ea build: [gn win] fix path names in js2asar 2018-07-27 12:08:39 -07:00
Jeremy Apthorp
0efb5853d6 build: [gn] centralize GN args under build/args/*.gn
Devs can still locally override or add settings by adding lines after
the `import` statement in args.gn.

This will help make sure that everyone has a common set of build args,
and will allow us to update everyone's build args in git.
2018-07-25 14:24:45 -07:00
Jeremy Apthorp
3971fbc671 build: [gn] include node_modules in default_app asar
The default_app asar was recently changed to reference files inside
`node_modules/` in addition to files inside `default_app/`. The
`js2asar.py` script was updated to interpret what this meant, but the GN
build wasn't. This change somewhat hackily makes the GN build reuse the
`js2asar.py` script so that this and also hopefully any future changes
will work in the GN build as well as the GYP build.
2018-07-25 11:45:22 -07:00
Jeremy Apthorp
d7b41462af build: [gn win] fix dllimport usage in node's usage of icu
We're abusing the nodejs build a little bit by building it without ICU support, but forcing the inspector to be built, which depends on ICU. This synchronizes one of the build flags that's required to get ICU to link on Windows.
2018-07-23 10:11:32 -07:00
Jeremy Apthorp
16b66db9c7 build: [gn] working on 32bit windows 2018-07-19 17:04:44 -07:00
Jeremy Apthorp
70068f313a build: [gn] add target for building node headers 2018-07-18 12:01:16 -07:00
John Kleinschmidt
e922b1733b
Merge pull request #13636 from nornagon/gn-release
build: [gn] release build
2018-07-12 10:45:21 -04:00
John Kleinschmidt
9c2287c142
Merge pull request #13635 from electron/node-win32-lean-and-mean
build: [gn] define WIN32_LEAN_AND_MEAN in the node build
2018-07-12 08:25:25 -04:00
Jeremy Apthorp
6089254439 build: [gn linux] link static libs for node release build 2018-07-11 18:11:48 -07:00
Jeremy Apthorp
aa4982d830 build: [gn] define WIN32_LEAN_AND_MEAN in the node build 2018-07-11 17:52:18 -07:00
Jeremy Apthorp
097daa6e32 build: [gn] build node with clang-cl 2018-07-11 17:51:35 -07:00
Jeremy Apthorp
03131c5e77 build: [gn] node as a static lib 2018-07-11 10:43:52 -07:00
Jeremy Apthorp
1e1adef9b6 build: [gn] use clang and custom stdlib when building node on linux 2018-07-10 13:42:36 -07:00
Jeremy Apthorp
d4cf3cee22 build: [gn] use platform-appropriate shlib_suffix when building node 2018-07-10 13:42:33 -07:00
Jeremy Apthorp
99ecbfbd3b build: [gn] use consistent node configuration between gyp and build 2018-07-10 13:42:29 -07:00
Jeremy Apthorp
59fb4eccb4
chore: [gn] link against debug node when in debug mode (#13490)
This is required on Windows, because in Debug mode, C++ stdlib containers have a different size to when in Release mode, so the code in `node.dll` thought that `node::Environment` was a different size to the code in `electron.exe`, which uh, caused problems.

It should also make debugging through node a bit easier on all platforms.
2018-06-28 14:42:09 -07:00
Jeremy Apthorp
475eef01c3
chore: [gn] copy node.dll in addition to node.dll.lib (#13489)
On Windows, you need to link against the `.lib` but the `.dll` needs to be next to the `.exe` at runtime, so we need to copy both.
2018-06-28 14:25:56 -07:00
Jeremy Apthorp
39e6943f1e
chore: [gn] changes to BUILD.gn for windows (#13434)
Grab basket of changes needed to get the `electron_lib` target building on Windows with GN.
2018-06-26 22:58:20 +02:00
Jeremy Apthorp
2d9a491771
chore: [gn] correct library paths for node on windows (#13429)
For some reason the windows node build needs `.dll` on the ends of these libraries, and also needs to be linked against `dbghelp`.

Additionally, copy the `WHOLEARCHIVE` hacks from common.gypi, which was doing the same thing.
2018-06-26 22:57:05 +02:00
Jeremy Apthorp
aa4ca406c8 chore: update GN build for chrome 66 2018-06-21 11:30:43 -07:00
Jeremy Apthorp
c598272891 refactor: [gn] compile node with boringssl (#13285) 2018-06-19 10:39:43 -05:00
Jeremy Apthorp
4321db401c Build node by calling ./configure 2018-05-31 11:18:26 -07:00
Jeremy Apthorp
b160093b91
refactor: GN builds on linux (#12957) 2018-05-16 12:51:11 -07:00
Jeremy Apthorp
7a36322432 [gn] Include node/common.gypi when building node
Not sure how this ever worked, but the GN build certainly doesn't work
on Linux without this.
2018-05-15 09:53:24 -07:00
Jeremy Apthorp
f2b1b3f6b8 Add GN build 2018-05-10 14:03:02 -07:00