* 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
* 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
* 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*
* 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
* 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
* 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
* 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
* 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.
* 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
* 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
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
* 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.
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.
* 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.
* 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.
* 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.
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.
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.
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.
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.
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.