* feat: add will-navigate-in-frame event to webContents
* docs: add documentation for webview will-frame-navigate event
* feat: Eliminate isInPlace argument from will-frame-navigate event
* fix: Fire will-frame-navigate before will-navigate
* feat: send will-frame-navigate with a WebFrameMain in the event details
* docs: Update WebContents docs for new API signature
* feat: Add custom event forwarding for <webview> will-frame-navigate
* fix: wrap WebFrameMain so it can be sent as an event
* test: update webContents and <webview> tests to match new signatures
* chore: undo unnecessary change
* fix: don't switch will-navigate to use EmitNavigationEventDetails
* test: clean up will-navigate and will-frame-navigate tests for <webview>
* chore: apply lint fixes
* chore: move GetRenderFrameHost helper into anonymous namespace
* docs: auto-generate WillFrameNavigateDetails rather than defining it manually
* test: Update <webview> tests to actually pass under new spec runner
* docs: Add section explaining relationship between various nav events
* test: Add some tests to ensure navigation event order doesn't silently change
* test: Always monitor all nav events to ensure unexpected ones don't fire
* test: Add test to verify in-page navigation event order
* feat: Change to new style where extra params are exposed as event props
* fix: Remove unused EmitNavigationEventDetails
* fix: Update tests to use new async helpers
* docs: Rename and reorder sections documenting navigation events
---------
Co-authored-by: Milan Burda <milan.burda@gmail.com>
* chore: drop support for Windows 7 & 8
* chore: remove disable-redraw-lock.patch
* chore: update patches
* Update docs/breaking-changes.md
Co-authored-by: Erick Zhao <erick@hotmail.ca>
* Update docs/breaking-changes.md
Co-authored-by: Keeley Hammond <vertedinde@electronjs.org>
* fix breaking-changes.md
* chore: note last supported version
Co-authored-by: Jeremy Rose <jeremya@chromium.org>
* chore: add link to deprecation policy
* Update docs/breaking-changes.md
Co-authored-by: Jeremy Rose <jeremya@chromium.org>
* update README.md
Co-authored-by: Milan Burda <miburda@microsoft.com>
Co-authored-by: PatchUp <73610968+patchup[bot]@users.noreply.github.com>
Co-authored-by: Erick Zhao <erick@hotmail.ca>
Co-authored-by: Keeley Hammond <vertedinde@electronjs.org>
Co-authored-by: Jeremy Rose <jeremya@chromium.org>
* fix: abort ShipIt installation attempt at the final mile if the app is running
* chore: remove only
* Update patches/squirrel.mac/fix_abort_installation_attempt_at_the_final_mile_if_the_app_is.patch
Co-authored-by: Jeremy Rose <jeremya@chromium.org>
* chore: update patches
* spec: make the ShipIt process lister helper more resilient
Co-authored-by: Jeremy Rose <jeremya@chromium.org>
Co-authored-by: PatchUp <73610968+patchup[bot]@users.noreply.github.com>
* feat: add app.getSystemLanguage() API
* Change the API to getPreferredSystemLanguages
* Fix test
* Clarify docs and add Linux impl
* Remove USE_GLIB
* Don't add C to list
* Remove examples since there's a lot of edge cases
* Fix lint
* Add examples
* Fix compile error
* Apply PR feedback
* Update the example
* test: drop the now-empty remote runner from CI
* move fixtures to spec-main
* remove remote runner
* fix stuff
* remove global-paths hack
* move ts-smoke to spec/
* fix test after merge
* rename spec-main to spec
* no need to ignore spec/node_modules twice
* simplify spec-runner a little
* no need to hash pj/yl twice
* undo lint change to verify-mksnapshot.py
* excessive ..
* update electron_woa_testing.yml
* don't search for test-results-remote.xml
it is never produced now
* test: use custom userData folder for requestSingleInstanceLock()
* update test
* prefix test folder path
* fix: create userDataDir on requestSingleInstanceLock() if needed
* Trigger Build
* fix: initialize asar support in worker threads
Use `ObjectWrap` instead of gin's Wrap in `electron_api_asar.cc` because
gin isn't fully initialized (and apparently not possible to initialize
without ruining the isolate configuration and array buffer allocator) in
worker threads. In the worker thread call `setupAsarSupport` just as we
do for the main process.
* Update lib/asar/fs-wrapper.ts
Co-authored-by: Darshan Sen <raisinten@gmail.com>
* Update patches/node/worker_thread_add_asar_support.patch
Co-authored-by: Darshan Sen <raisinten@gmail.com>
* Add a test
Co-authored-by: Darshan Sen <raisinten@gmail.com>
Co-authored-by: Fedor Indutny <79877362+indutny-signal@users.noreply.github.com>
Co-authored-by: John Kleinschmidt <jkleinsc@electronjs.org>
* feat: Add onFirstInstanceAck event for requestSingleInstanceLock
* Add tests
* Apply patch fix
* Add back missing docs
* Rebase
* Listen for exit earlier in test
* Rebase
* WIP
* Use serialization
* Rebase windows impl of new app requestSingleInstanceLock parameter
* Fix test
* Implement posix side
* Add backwards compatibility test
* Apply PR feedback Windows
* Fix posix impl
* Switch mac impl back to vector
* Refactor Windows impl
* Use vectors, inline make_span
* Use blink converter
* fix: ownership across sequences
* Fix upstream merge from Chromium
Co-authored-by: deepak1556 <hop2deep@gmail.com>
* feat: add support for validating asar archives on macOS
* chore: fix lint
* chore: update as per feedback
* feat: switch implementation to asar integrity hash checks
* feat: make ranged requests work with the asar file validator DataSourceFilter
* chore: fix lint
* chore: fix missing log include on non-darwin
* fix: do not pull block size out of missing optional
* fix: match ValidateOrDie symbol on non-darwin
* chore: fix up asar specs by repacking archives
* fix: maintain integrity chain, do not load file integrity if header integrity was not loaded
* debug test
* Update node-spec.ts
* fix: initialize header_validated_
* chore: update PR per feedback
* chore: update per feedback
* build: use final asar module
* Update fuses.json5
* test: running child app under ASan might receive SIGKILL
* test: renderer process of webview might receive SIGKILL under ASan
* test: increase timeout for asan build
* feat: enable context isolation by default
* chore: set default in ctx iso getter
* spec: make all specs work with the new contextIsolation default
* spec: fix affinity specs
* spec: update tests for new ctx iso default
* spec: update tests for new ctx iso default
* spec: update tests for new ctx iso default
* spec: update tests for new ctx iso default
* chore: move stray prod deps to dev deps
* spec: update tests for new ctx iso default
* turn off contextIsolation for visibility tests
* turn off contextIsolation for <webview> tag nodeintegration attribute loads native modules when navigation happens
Co-authored-by: John Kleinschmidt <jkleinsc@electronjs.org>
* ci: cleanup up test app directories
* ci: use electron prefix for a testing apps so that the can be cleaned up
* Revert "ci: cleanup up test app directories"
This reverts commit a47daba812ee95f506cac0f1bfedda8be7b4e2f0.
* fixup test due to app name change
* feat: add worldSafe flag for executeJS results
* chore: do not log warning for webContents.executeJS
* Apply suggestions from code review
Co-authored-by: Jeremy Rose <jeremya@chromium.org>
* chore: apply PR feedback
* chore: split logic a bit
* chore: allow primitives through the world safe checl
* chore: clean up per PR feedback
* chore: flip boolean logic
* chore: update per PR feedback
* chore: fix typo
* chore: fix spec
Co-authored-by: Jeremy Rose <jeremya@chromium.org>
* chore: add deprecation warning for the default of contextIsolation
* chore: add to breaking changes
* Update docs/breaking-changes.md
Co-authored-by: Jeremy Apthorp <jeremya@chromium.org>
* chore: fix specs on windows
Co-authored-by: Jeremy Apthorp <jeremya@chromium.org>
* fix: let Node.js perform microtask checkpoint in the main process
* fix: don't specify v8::MicrotasksScope for explicit policy
* fix: remove checkpoint from some call-sites
We already perform checkpoint at the end of a task,
either through MicrotaskRunner or through NodeBindings.
There isn't a need to add them again when calling into JS
except when dealing with promises.
* fix: remove checkpoint from some call-sites
We already perform checkpoint at the end of a task,
either through MicrotaskRunner or through NodeBindings.
There isn't a need to add them again when calling into JS
except when dealing with promises.
* fix incorrect specs
* default constructor arguments are considered for explicit mark
* add regression spec
* refactor: port window.open and window.opener to use ctx bridge instead of hole punching
* refactor: only run the isolated init bundle when webview is enabled
* chore: add deprecation warning on setting app.allowRendererProcessReuse to false
* fix: no deprecation warnings in process reuse spec
* chore: add test for new deprecate removeProperty behavior
* docs: add references to app.whenReady() in isReady
* refactor: prefer app.whenReady()
In the docs, specs, and lib, replace instances of `app.once('ready')`
(seen occasionally) and `app.on('ready')` (extremely common) with
`app.whenReady()`.
It's better to encourage users to use whenReady():
1. it handles the edge case of registering for 'ready' after it's fired
2. it avoids the minor wart of leaving an active listener alive for
an event that wll never fire again
* chore: bump chromium in DEPS to a1ea0d7aedd6b5fe58fbabfa3b05aa8ee41304ff
* update patches
* update extensions code
* Remove WebPoint
https://chromium-review.googlesource.com/c/chromium/src/+/2007474
* fix build
* chore: bump chromium in DEPS to 9351e26c2a3714f8bbb10789c71bb51b0b494c75
* update patches
* Remove error description from the DidFailLoadWithError message
https://chromium-review.googlesource.com/c/chromium/src/+/2011280
* Make SimpleNetworkHintsHandlerImpl use the right NetworkIsolationKey
https://chromium-review.googlesource.com/c/chromium/src/+/1994430
* Rename libgtkui to gtk
https://chromium-review.googlesource.com/c/chromium/src/+/2011683
* [metrics] Remove histogram Startup.WarmStartTimeFromRemoteProcessStart*.
https://chromium-review.googlesource.com/c/chromium/src/+/2003211
* fix requestSingleInstanceLock test
* chore: bump chromium in DEPS to a813567a4f17ea08292c2b26fa10d0ffd47010d9
* chore: bump chromium in DEPS to f0aca2de536ceecd6eb66e928051d11e6d11991f
* chore: bump chromium in DEPS to 865556af6d0c9d990f5b1816cb792f7c3859667b
* chore: bump chromium in DEPS to 98538fdd28c4b6692e4cc2839729bb7ac009586a
* update patches
* fix broken tests
* Update node tests for v8 changes
* Update node patches for test failures
* Update for number of tests
Co-authored-by: Jeremy Apthorp <nornagon@nornagon.net>
Co-authored-by: John Kleinschmidt <jkleinsc@github.com>
* fix: restore parts of original ResourceRequestBody V8 conversion
Restore some of the original conversion logic in order to fix target=_blank post form submissions.
* test: add test for POST form submission