This commit allows any electron user to compile electron
artifacts by themselves in production mode. When the source code
is reproducibly buildable with a given toolchain this change
allows them to verify the hash of their build, with the same
windows toolchain agains the CI version.
This change was tested on top of version fb9837799b
which was buildable and reproducible for chromium and electron as well.
Further tests may be introduced to allows checking for local reproducibility.
EG: building twice an artifact on the same machine, with different time
and output directory should yield similar hashes.
* chore: bump chromium in DEPS to 0476932294da8809a19189b9f54cee11d50cc512
* update chromium patches (#20838)
* chore: bump chromium in DEPS to 838863f5ec9e8a12132a10bb47be8382ad9756a7
* IsRendererTransferNeededForNavigation went away
1867031
* [arraybuffer] Move the ArrayBuffer implementation from wtf to core
1875731
* URLLoaderRequest new mojo types
* context menu enums moved around
187200418760881866520
* chore: bump chromium in DEPS to dc9525d251bf30828899e4cd7161f6dc6507023f
* update chromium patches
* [WIP] Convert network hints IPC to Mojo
1881967
* jumbo build is no longer supported
1881967
* fix disable-color-correct-rendering
* [FIXME] fix printing patch
compiles but prob doesn't work
* explicitly include ax_enums
1759821
* fixup! [WIP] Convert network hints IPC to Mojo
* fix base::span
* fix AsarURLLoader to not double-std::move
* fix debug build
* fix msstl patch
* lint
* more fix msstl
* mooooore fix msstl
* fix compile
* update backport_fix_msstl_compat_in_ui_events.patch
* update msstl compat patch
* don't try to build chrome's prefetch predictor
* build: fix compilation on windows
* Fixup patches for MAS build
* Free up disk space for mac debug builds
* fix: apply custom site instance only for main frame
* Fixup from rebase
* Try not generating symbols for mac debug builds
* Remove double entry of patch
* FIx compile errors
* Trigger CI
* Set symbol_level to 1 for mac debug builds
* chore: add code required to use chromes spellchecker
* chore: fix linting
* chore: manifests needs buildflags now
* chore: add dictionarySuggestions to the context menu event when the spellchecker is active
* chore: enable by default for windows builds
* chore: add patch to remove incognito usage in the spellchecker
* chore: add dependencies on spellcheck common and flags
* chore: conditionally include spell check panel impl
* chore: fix deps for spellcheck feature flags
* chore: add patch for electron resources
* chore: add dependency on //components/language/core/browser
* chore: patches to make hunspell work on windows
* build: collect hunspell dictionaries into a zip file and publish
* chore: clean up patches
* chore: add docs and set spell checker url method
* chore: fix error handling
* chore: fix hash logic
* build: update hunspell filename generator
* fix: default spellchecker list to the current system locale if we can
* docs: document the language getter
* chore: patch IDS_ resources for linux builds
* feat: add spellcheck webpref flag to disable the builtin spellchecker
* chore: fix docs typo
* chore: clean up spellchecker impl as per feedback
* remove unneeded deps
* fix: dump correct symbols on macOS
* refactor symbol dumping
* .exe/.dll on windows
* dump .exe.pdb/.dll.pdb; also add path for msdia140.dll
* undo breakpad_symbols.zip rename
* dump_syms.exe doesn't support -i on windows
* remove unused windows symbol generation script
* win fix 🤞🤞
* import errno
* use out_dir
* i tender my resignation
Legacy print statements are syntax errors in Python 3 but print() function works as expected in both Python 2 and Python 3.
Old style exceptions are syntax errors in Python 3 but new style exceptions work as expected in both Python 2 and Python 3.
* 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
* build: ensure consistent package-lock across multiple machines
* build: fix linting errors and use npm ci instead of npm install
* build: use a yarn.lock and yarn instead of package-lock and npm
* chore: replace package-lock.json files with yarn.lock
* chore: replace last instance of `npm install`
* 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
* chore: bump chromium in DEPS to 1e9f9a24aa12bea9cf194a82a7e249bd1242ec4f
* chore: update patches
* Make WebContents' theme color a base::Optional<SkColor>
1540022
* update autofill patch for incorrect header includes
* Move Shell messages to web_test and rename to BlinkTest.
1525181
* Make PlatformNotificationServiceImpl a KeyedService.
1336150
* Move MediaPlayerId to its own file.
1547057
* Remove net/base/completion_callback.h, which is no longer used
1552821
* AW NS: support file scheme cookies
1533486
* Remove SecurityInfo and adapt remaining consumers
1509455
* Remove deprecated type-specific number to string conversion functions
1545881
* DevTools: Adding new performance histograms for launch of top 4 tools
1506388
* Update include paths for //base/hash/hash.h
1544630
* build: Disable ensure_gn_version gclient hook for mac CI checkout
* update patches
* use maybe version of v8::String::NewFromTwoByte
* bump appveyor image version
* fix mac ci hopefully
* Convert enum to enum class for MenuAnchorPosition
1530508
* use maybe version of ToObject
* RenderViewHost::GetProcess is no longer const
* Unrefcount AuthChallengeInfo
1550631
* MenuButtonController takes Button rather than MenuButton
1500935
* add //ui/views_bridge_mac to deps to fix link error
* forward declare views::Button in atom::MenuDelegate
* more v8 patches
* base/{=> hash}/md5.h
1535124
* gfx::{PlatformFontWin => win}::*
1534178
* fix v8 patches
* [base] Rename TaskScheduler to ThreadPool
1561552
* use internal_config_base for bytecode_builtins_list_generator
avoids windows link errors
* FIXME: temporarily disable v8/breakpad integration
* FIXME: temporarily disable prevent-will-redirect test
* FIXME: disable neon on aarch64 pending crbug.com/953815
* update to account for WebCursor refactor
1562755
* enable stack dumping on appveyor
* Revert "FIXME: disable neon on aarch64 pending crbug.com/953815"
This reverts commit 57f082026be3d83069f2a2814684abf4dc9e7b53.
* fix: remove const qualifiers to match upstream
* fix: remove const qualifiers to match upstream in cc files as well
* don't throw an error when testing if an object is an object
* use non-deprecated Buffer constructor
* Remove net::CookieSameSite::DEFAULT_MODE enum value
1567955
* depend on modded dbus-native to work around buffer deprecation
https://github.com/sidorares/dbus-native/pull/262
* revert clang roll to fix arm build on linux
* fixup! depend on modded dbus-native to work around buffer deprecation
need more coffee
* update coffee-script
* robustify verify-mksnapshot w.r.t. command-line parameters
* Revert "robustify verify-mksnapshot w.r.t. command-line parameters"
This reverts commit a49af01411f684f6025528d604895c3696e0bc57.
* fix mksnapshot by matching args
* update patches
* TMP: enable rdp on appveyor
* Changed ContentBrowserClient::CreateQuotaPermissionContext() to return scoped_refptr.
1569376
* Make content::ResourceType an enum class.
1569345
* fixup! Make content::ResourceType an enum class.
* turn off rdp
* use net::CompletionRepeatingCallback instead of base::Callback<void(int)>
* remove disable_ensure_gn_version_gclient_hook.patch
* copy repeating callback instead of std::move
* fix lint
* add completion_repeating_callback.h include
* Comparison using is when operands support __eq__
Comparison using 'is' when equivalence is not the same as identity
When you compare two values using the is or is not operator, it is the object identities of the two values that is tested rather than their equality. If the class of either of the values in the comparison redefines equality then the is operator may return False even though the objects compare as equal. Equality is defined by the __eq__ or, in Python2, __cmp__ method. To compare two objects for equality, use the == or != operator instead.
Recommendation
When you want to compare the value of two literals, use the comparison operator == or != in place of is or is not.
If the uniqueness property or performance are important then use an object that does not redefine equality.
* fix: Comparison using is when operands support __eq__
Comparison using 'is' when equivalence is not the same as identity
When you compare two values using the is or is not operator, it is the object identities of the two values that is tested rather than their equality. If the class of either of the values in the comparison redefines equality then the is operator may return False even though the objects compare as equal. Equality is defined by the __eq__ or, in Python2, __cmp__ method. To compare two objects for equality, use the == or != operator instead.
Recommendation
When you want to compare the value of two literals, use the comparison operator == or != in place of is or is not.
If the uniqueness property or performance are important then use an object that does not redefine equality.
* 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