Samuel Attard
122685194a
build: add import/order eslint rule ( #44085 )
...
* build: add import/order eslint rule
* chore: run lint:js --fix
2024-10-02 19:10:44 -07:00
Shelley Vohr
d4e4cdee6c
fix: remove resize listener when BrowserWindow closed ( #43972 )
2024-09-27 10:34:00 -04:00
Samuel Attard
74af96da16
build: update some build dependencies ( #43882 )
...
* build: update some build dependencies
* build: fix eslint issues after updating
* build: disable ts check on busted js example
* build: update internal types for stricter event handling
* restore url.parse behavior
* fix typing issues
* sigh
* build: update easy deps
* build: skip woa engines check
2024-09-26 00:12:11 -07:00
Shelley Vohr
f89bd745d5
fix: createWindow
shouldn't load URL for webContents
( #43775 )
...
* fix: createWindow shouldn't load URL for webContents
* chore: add non about blank test
2024-09-20 09:56:03 +02:00
Fedor Indutny
6aa6bada79
fix: third time screen sharing on macOS ( #43767 )
...
Because we used decrementing negative source ids for fake video id when
instantating a native macOS screen share picker, we eventually hit the
`DesktopMediaID::kFakeId = -3` in Chromium source code which displayed a
test green screen.
In this change we reserve our own fake id of `-4` and decrement the
window id integer for uniqueness instead.
Co-authored-by: Fedor Indutny <238531+indutny@users.noreply.github.com>
2024-09-19 18:28:28 -07:00
Keeley Hammond
309d5dade3
feat: add support for system picker in setDisplayMediaRequestHandler ( #43581 )
...
* tmp
* feat: add support for system picker in setDisplayMediaRequestHandler
* oops
* Apply suggestions from code review
Co-authored-by: Erick Zhao <erick@hotmail.ca>
* stuff
* well...
* seems legit
* chore: update patch to handle screenCapturer
* feat: modify API to use useSystemPicker
* fix: gate ScreenCaptureKitPicker to macos 15 or higher
* fix: don't use native picker with legacy media selection
* chore: code review, boolean set & docs update
* fix: add cancelCallback
* docs: clarify session & desktopCapturer docs
---------
Co-authored-by: Samuel Attard <marshallofsound@electronjs.org>
Co-authored-by: Samuel Attard <sam@electronjs.org>
Co-authored-by: Erick Zhao <erick@hotmail.ca>
2024-09-10 16:05:57 -07:00
Zorro Liu
e2fe8f50e2
fix: update BrowserView#lastWindowSize
after window resize ( #43463 )
...
fix: update BrowserView#lastWindowSize after window resize (#43462 )
2024-09-09 14:22:30 +02:00
Shelley Vohr
50ce448556
fix: menu should allow focused BaseWindow
where possible ( #43404 )
...
fix: menu should allow focused BaseWindow
2024-08-22 14:13:30 -04:00
Alexander Cyon
ae0c8881c3
chore: fix typos in 'spec/' folder (and one in 'lib/' folder) ( #43374 )
2024-08-22 15:44:15 +02:00
Shelley Vohr
4ae43dcb3b
fix: touch bar functionality on BaseWindow ( #43353 )
...
* fix: touch bar functionality on BaseWindow
* test: add test for BaseWindow.setTouchBar
2024-08-22 12:48:25 +02:00
Vít Černý
189675575c
feat: extend navigationHistory API ( #42014 )
...
* feat: extend navigationHistory API
* refactor: simplify index checking
* refactor: rename 'getHistory' and 'replaceHistory' methods of navigationHistory
* refactor: rename delete*() methods to remove*()
* feat: remove navigationHistory.replaceHistory()
* tests: add tests for removeEntryAtIndex and getAllEntries
2024-08-19 15:46:04 -04:00
Alice Zhao
4286234721
fix: redirect webview navigation methods ( #42981 )
2024-07-29 13:00:51 +02:00
Keeley Hammond
2fd04a78a1
fix: revert BrowserWindow unresponsive handling refactor ( #43034 )
...
* Revert "refactor: JSify BrowserWindow unresponsive handling (#37902 )"
This reverts commit 67ba30402b
.
* chore: remove BrowserWindow::SetTitleBarOverlay
---------
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
2024-07-25 13:02:02 -07:00
Shelley Vohr
cfdcf48e1b
fix: desktopCapturer breaks BrowserWindow resizable on macOS ( #43013 )
...
* fix: desktopCapturer breaks BrowserWindow resizable on macOS
* test: oops fix showing
2024-07-25 11:17:37 +02:00
Shelley Vohr
5669a40d5c
feat: add transparency checking to nativeTheme
( #42862 )
...
* feat: add transparency checking to nativeTheme
Refs https://chromium-review.googlesource.com/c/chromium/src/+/4684870
* chore: deprecate previous function
* chore: fix lint
2024-07-24 14:38:22 +02:00
arno renevier
81bdba67ec
feat: Implement password delegate for NSS ( #41205 )
...
* feat: Implement password delegate for NSS (#41188 )
Introduce an app event client-certificate-request-password. It allows
the user to display a UI to prompt for the password.
An alternative would have been to implement a class similar to
CryptoModulePasswordDialogView, to provide the UI. This might have been
simpler for the user, comparing to letting them implement the UI. But it
seems like electron does not have an i18n framework, so it's not
possible to provide a locale aware UI.
* fix lint:markdown error
* address review comments
* use a trampoline handler in JS. The api exposed is now app.setClientCertRequestPasswordHandler
* use properties on the Event object instead of positional parameters
* remove ChromeNSSCryptoModuleDelegate::OnPassword in favor of args->GetNext(&password_)
* address review comments second round
- backslash escape parametrized TypeScript
- rename hostName param to hostname
- use base::ScopedAllowBaseSyncPrimitivesForTesting
- and then, rename ChromeNSSCryptoModuleDelegate to ElectronNSSCryptoModuleDelegate
* Update docs/api/app.md
Co-authored-by: Sam Maddock <samuel.maddock@gmail.com>
* Update docs/api/app.md
Co-authored-by: Erick Zhao <erick@hotmail.ca>
---------
Co-authored-by: Arno Renevier <arnaud@switchboard.app>
Co-authored-by: Sam Maddock <samuel.maddock@gmail.com>
Co-authored-by: Erick Zhao <erick@hotmail.ca>
2024-07-17 09:48:03 -04:00
Shelley Vohr
cb2e7f130b
fix: potentially closed webContents in BrowserView ( #42633 )
2024-07-08 12:13:53 +02:00
Alice Zhao
e9a93a8c5c
fix: setTopBrowserView focus issue with reordering ( #42653 )
...
* fix: reorder top browser view instead of adding/removing
* fix: update browserViews order
* test: add a test for setTopBrowserView
2024-07-01 11:36:04 +02:00
George Xu
ba8ad4716b
feat: expose system preferences to utility process ( #42203 )
...
* chore: expose system preferences to utility process
* chore: add tests, doc changes and module-list update
* relative link
* use @
* fix test
* chore: disable linux test
* kick
* noop on windows utility process
2024-06-20 11:15:57 -04:00
Shelley Vohr
37608933ae
fix: fetch-dependent interfaces in Web Workers ( #42579 )
2024-06-20 11:01:50 -04:00
Shelley Vohr
4aa9070e6c
fix: missing fetch
-dependent interfaces in Node.js ( #42419 )
...
fix: missing fetch-dependent interfaces in Node.js
2024-06-11 16:59:53 -05:00
Alice Zhao
406f644d26
feat: duplicate navigation related APIs to contents.navigationHistory
( #41752 )
...
* refactor: move navigation related api to navigationHistory
* docs: add deprecation messages to old web content methods
* fix: add deprecation warnings to webcontents
* fix: add deprecation warnings and make existing naviagation apis internal
* Update docs/api/web-contents.md
Co-authored-by: Sam Maddock <samuel.maddock@gmail.com>
* Update docs/api/web-contents.md
Co-authored-by: Sam Maddock <samuel.maddock@gmail.com>
* Update docs/api/web-contents.md
Co-authored-by: Sam Maddock <samuel.maddock@gmail.com>
* Update docs/api/web-contents.md
Co-authored-by: Sam Maddock <samuel.maddock@gmail.com>
* docs: fix links
* docs: add breaking change to 31
* docs: move breaking change to 32
* chore: re-run pipeline
---------
Co-authored-by: Sam Maddock <samuel.maddock@gmail.com>
2024-06-05 09:34:47 -07:00
Anny Yang
5fb117a7d7
fix: don't destroy BrowserView webContents when owning BrowserWindow hasn't been closed ( #42353 )
...
* fix: moves bv webContents close to closed event
* chore: adds unit tests
* chore: test that bv webContents are destroyed when parent bw closed
2024-06-05 09:58:38 +02:00
Shelley Vohr
9f88820be9
fix: dialogs should work with BaseWindows internally ( #42315 )
2024-05-31 12:04:22 +02:00
Shelley Vohr
d0cb298f95
fix: webContents.navigationHistory
should be enumerable ( #42139 )
...
fix: webContents.navigationHistory should be enumerable
2024-05-14 16:47:47 -04:00
electron-roller[bot]
653d0f009e
chore: bump node to v20.13.1 (main) ( #42088 )
...
* chore: bump node in DEPS to v20.13.0
* crypto: enable NODE_EXTRA_CA_CERTS with BoringSSL
https://github.com/nodejs/node/pull/52217
* test: skip test for dynamically linked OpenSSL
https://github.com/nodejs/node/pull/52542
* lib, url: add a `windows` option to path parsing
https://github.com/nodejs/node/pull/52509
* src: use dedicated routine to compile function for builtin CJS loader
https://github.com/nodejs/node/pull/52016
* test: mark test as flaky
https://github.com/nodejs/node/pull/52671
* build,tools: add test-ubsan ci
https://github.com/nodejs/node/pull/46297
* src: preload function for Environment
https://github.com/nodejs/node/pull/51539
* chore: fixup patch indices
* deps: update c-ares to 1.28.1
https://github.com/nodejs/node/pull/52285
* chore: handle updated filenames
- https://github.com/nodejs/node/pull/51999
- https://github.com/nodejs/node/pull/51927
* chore: bump node in DEPS to v20.13.1
* events: extract addAbortListener for safe internal use
https://github.com/nodejs/node/pull/52081
* module: print location of unsettled top-level await in entry points
https://github.com/nodejs/node/pull/51999
* fs: add stacktrace to fs/promises
https://github.com/nodejs/node/pull/49849
* chore: update patches
---------
Co-authored-by: electron-roller[bot] <84116207+electron-roller[bot]@users.noreply.github.com>
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
Co-authored-by: PatchUp <73610968+patchup[bot]@users.noreply.github.com>
2024-05-13 11:43:14 -04:00
Shelley Vohr
c765d57265
fix: BrowserView autoresizing conversion error ( #42056 )
2024-05-13 10:27:01 +02:00
Jeremy Rose
4e8c28fdf0
fix: data corruption in protocol.handle
( #41894 )
2024-04-22 13:40:01 -07:00
Jeremy Rose
67ba30402b
refactor: JSify BrowserWindow unresponsive handling ( #37902 )
2024-04-18 13:14:07 -07:00
electron-roller[bot]
7120c58297
chore: bump node to v20.12.2 (main) ( #41710 )
...
* chore: bump node in DEPS to v20.12.0
* chore: update build_add_gn_build_files.patch
* chore: update patches
* chore: bump node in DEPS to v20.12.1
* chore: update patches
* build: encode non-ASCII Latin1 characters as one byte in JS2C
https://github.com/nodejs/node/pull/51605
* crypto: use EVP_MD_fetch and cache EVP_MD for hashes
https://github.com/nodejs/node/pull/51034
* chore: update filenames.json
* chore: bump node in DEPS to v20.12.2
* chore: update patches
* src: support configurable snapshot
https://github.com/nodejs/node/pull/50453
* test: remove test-domain-error-types flaky designation
https://github.com/nodejs/node/pull/51717
* src: avoid draining platform tasks at FreeEnvironment
https://github.com/nodejs/node/pull/51290
* chore: fix accidentally deleted v8 dep
* lib: define FormData and fetch etc. in the built-in snapshot
https://github.com/nodejs/node/pull/51598
* chore: rebase on main
* chore: remove stray log
---------
Co-authored-by: electron-roller[bot] <84116207+electron-roller[bot]@users.noreply.github.com>
Co-authored-by: Cheng <zcbenz@gmail.com>
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
Co-authored-by: PatchUp <73610968+patchup[bot]@users.noreply.github.com>
2024-04-17 12:39:13 -04:00
daihere1993
72c2b9e862
fix: recognize 'undefined' header value in ClientRequest
( #41615 )
...
Co-authored-by: zowu <luke.wu@nokia-sbell.com>
2024-03-27 16:46:07 -07:00
Alice Zhao
00e3445f8a
feat: add navigationHistory.getEntryAtIndex(int index)
method ( #41577 )
2024-03-21 14:59:23 -07:00
Shelley Vohr
040acaaf30
fix: support withFileTypes
in fs.{readdir|readdirSync}
( #41627 )
...
fix: support withFileTypes in fs.{readdir|readdirSync}
2024-03-21 10:22:40 -04:00
Shelley Vohr
b02918883f
fix: support recursive readdir in Asar files ( #41582 )
2024-03-19 11:10:14 +01:00
Shelley Vohr
d5912fd05a
fix: webContents.print options should be optional ( #41467 )
2024-02-29 10:19:44 -05:00
Krzysztof Halwa
a0dad83ded
feat: Allow creation of new window to be customizable. ( #41432 )
2024-02-29 10:15:01 -05:00
Henrik Gaßmann
80906c0adb
fix: properly stream uploadData
in protocol.handle()
( #41052 )
...
* refactor(protocol): extract file stream factory
Increase readability by moving the file stream creation logic out of the
`uploadData` to request body conversion function.
* fix: properly flatten streams in `protocol.handle()`
Refs: electron/electron#39658
* fix: `protocol.handle()` filter null origin header
Refs: electron/electron#40754
* fix: remove obsolete TODO comment
Refs: electron/electron#38929
* fix: forward `Blob` parts in `protocol.handle()`
Refs: electron/electron#40826
* fix: explicitly error out on unknown chunk parts
2024-02-16 14:29:29 -05:00
marekharanczyk
398ca2a019
fix: make sure invalid URL loads promises are fulfilled. ( #41194 )
...
* fix: make sure invalid URL loads promisses are fulfilled.
* fixup! fix: make sure invalid URL loads promisses are fulfilled.
2024-02-05 16:36:51 +09:00
Milan Burda
dac29f9949
refactor: type-safe module imports / requires ( #41192 )
2024-02-05 16:36:28 +09:00
Shelley Vohr
6df3443617
fix: validate printToPDF
margins
against pageSize
( #41157 )
...
fix: validate margins against pageSize
2024-01-31 10:48:41 +01:00
Milan Burda
fb88375ab4
refactor: type-safe imports in lib/node/init.ts ( #41148 )
2024-01-31 08:38:56 +09:00
Shelley Vohr
6786fde576
docs: document printToPDF
generateDocumentOutline
option ( #41156 )
...
* doc: document printToPDF generateDocumentOutline option
* doc: ready event to whenReady
2024-01-30 09:55:03 -06:00
Cheng Zhao
db2bf1a0d1
fix: apply module search paths restriction on worker and child process ( #41118 )
2024-01-26 17:29:04 +09:00
Maikel Ortega Hernández
a05bfd332d
fix: on error, reset spawnedProcess ( #41033 )
...
reset spawnedProcess instance in case of error
2024-01-24 16:45:08 -06:00
Cheng Zhao
d13a93fb61
chore: remove node patches by using the preload feature ( #41080 )
2024-01-24 09:54:32 -06:00
Devraj Mehta
8c71e2adc9
feat: add net module to utility process ( #40017 )
...
* chore: initial prototype of net api from utility process
* chore: update url loader to work on both browser and utility processes
* chore: add net files to utility process bundle
* chore: re-add app ready check but only on main process
* chore: replace browser thread dcheck's with sequence checker
* refactor: move url loader from browser to common
* refactor: move net-client-request.ts from browser to common
* docs: add utility process to net api docs
* refactor: move net module app ready check to browser only
* refactor: switch import from main to common after moving to common
* test: add basic net module test for utility process
* refactor: switch browser pid with utility pid
* refactor: move electron_api_net from browser to common
* chore: add fetch to utility net module
* chore: add isOnline and online to utility net module
* refactor: move net spec helpers into helper file
* refactor: break apart net module tests
Adds two additional net module test files: `api-net-session-spec.ts` for
tests that depend on a session being available (aka depend on running on
the main process) and `api-net-custom-protocols-spec.ts` for custom
protocol tests. This enables running `api-net-spec.ts` in the utility
process.
* test: add utility process mocha runner to run net module tests
* docs: add utility process to net module classes
* refactor: update imports in lib/utility to use electron/utility
* chore: check browser context before using in main process
Since the browser context supplied to the SimpleURLLoaderWrapper can now
be null for use in the UtilityProcess, adding a null check for the main
process before use to get a more sensible error if something goes wrong.
Co-authored-by: Cheng Zhao <github@zcbenz.com>
* chore: remove test debugging
* chore: remove unnecessary header include
* docs: add utility process net module limitations
* test: run net module tests in utility process individually
* refactor: clean up prior utility process net tests
* chore: add resolveHost to utility process net module
* chore: replace resolve host dcheck with sequence checker
* test: add net module tests for net.resolveHost
* docs: remove utility process limitation for resolveHost
---------
Co-authored-by: deepak1556 <hop2deep@gmail.com>
Co-authored-by: Cheng Zhao <github@zcbenz.com>
2024-01-04 16:20:37 -05:00
Jeremy Rose
15c6014324
feat: replace BrowserView with WebContentsView ( #35658 )
2023-12-13 13:01:03 -08:00
Tamás Zahola
a94fb2cb5d
fix: don't reject loadURL()
promise from did-fail-load
- use did-finish-load
instead ( #40661 )
2023-12-12 11:45:14 -08:00
Jeremy Rose
85bc005cd6
refactor: move JS dialog handling to JS ( #40598 )
2023-12-05 17:36:23 -08:00
Shelley Vohr
9c94fd7afb
chore: upgrade to Node.js v20 ( #40545 )
...
* chore: upgrade to Node.js v20
* src: allow embedders to override NODE_MODULE_VERSION
https://github.com/nodejs/node/pull/49279
* src: fix missing trailing ,
https://github.com/nodejs/node/pull/46909
* src,tools: initialize cppgc
https://github.com/nodejs/node/pull/45704
* tools: allow passing absolute path of config.gypi in js2c
https://github.com/nodejs/node/pull/49162
* tools: port js2c.py to C++
https://github.com/nodejs/node/pull/46997
* doc,lib: disambiguate the old term, NativeModule
https://github.com/nodejs/node/pull/45673
* chore: fixup Node.js BSSL tests
* https://github.com/nodejs/node/pull/49492
* https://github.com/nodejs/node/pull/44498
* deps: upgrade to libuv 1.45.0
https://github.com/nodejs/node/pull/48078
* deps: update V8 to 10.7
https://github.com/nodejs/node/pull/44741
* test: use gcUntil() in test-v8-serialize-leak
https://github.com/nodejs/node/pull/49168
* module: make CJS load from ESM loader
https://github.com/nodejs/node/pull/47999
* src: make BuiltinLoader threadsafe and non-global
https://github.com/nodejs/node/pull/45942
* chore: address changes to CJS/ESM loading
* module: make CJS load from ESM loader (https://github.com/nodejs/node/pull/47999 )
* lib: improve esm resolve performance (https://github.com/nodejs/node/pull/46652 )
* bootstrap: optimize modules loaded in the built-in snapshot
https://github.com/nodejs/node/pull/45849
* test: mark test-runner-output as flaky
https://github.com/nodejs/node/pull/49854
* lib: lazy-load deps in modules/run_main.js
https://github.com/nodejs/node/pull/45849
* url: use private properties for brand check
https://github.com/nodejs/node/pull/46904
* test: refactor `test-node-output-errors`
https://github.com/nodejs/node/pull/48992
* assert: deprecate callTracker
https://github.com/nodejs/node/pull/47740
* src: cast v8::Object::GetInternalField() return value to v8::Value
https://github.com/nodejs/node/pull/48943
* test: adapt test-v8-stats for V8 update
https://github.com/nodejs/node/pull/45230
* tls: ensure TLS Sockets are closed if the underlying wrap closes
https://github.com/nodejs/node/pull/49327
* test: deflake test-tls-socket-close
https://github.com/nodejs/node/pull/49575
* net: fix crash due to simultaneous close/shutdown on JS Stream Sockets
https://github.com/nodejs/node/pull/49400
* net: use asserts in JS Socket Stream to catch races in future
https://github.com/nodejs/node/pull/49400
* lib: fix BroadcastChannel initialization location
https://github.com/nodejs/node/pull/46864
* src: create BaseObject with node::Realm
https://github.com/nodejs/node/pull/44348
* src: implement DataQueue and non-memory resident Blob
https://github.com/nodejs/node/pull/45258
* sea: add support for V8 bytecode-only caching
https://github.com/nodejs/node/pull/48191
* chore: fixup patch indices
* gyp: put filenames in variables
https://github.com/nodejs/node/pull/46965
* build: modify js2c.py into GN executable
* fix: (WIP) handle string replacement of fs -> original-fs
* [v20.x] backport vm-related memory fixes
https://github.com/nodejs/node/pull/49874
* src: make BuiltinLoader threadsafe and non-global
https://github.com/nodejs/node/pull/45942
* src: avoid copying string in fs_permission
https://github.com/nodejs/node/pull/47746
* look upon my works ye mighty
and dispair
* chore: patch cleanup
* [api] Remove AllCan Read/Write
https://chromium-review.googlesource.com/c/v8/v8/+/5006387
* fix: missing include for NODE_EXTERN
* chore: fixup patch indices
* fix: fail properly when js2c fails in Node.js
* build: fix js2c root_gen_dir
* fix: lib/fs.js -> lib/original-fs.js
* build: fix original-fs file xforms
* fixup! module: make CJS load from ESM loader
* build: get rid of CppHeap for now
* build: add patch to prevent extra fs lookup on esm load
* build: greatly simplify js2c modifications
Moves our original-fs modifications back into a super simple python script action, wires up the output of that action into our call to js2c
* chore: update to handle moved internal/modules/helpers file
* test: update @types/node test
* feat: enable preventing cppgc heap creation
* feat: optionally prevent calling V8::EnableWebAssemblyTrapHandler
* fix: no cppgc initialization in the renderer
* gyp: put filenames in variables
https://github.com/nodejs/node/pull/46965
* test: disable single executable tests
* fix: nan tests failing on node headers missing file
* tls,http2: send fatal alert on ALPN mismatch
https://github.com/nodejs/node/pull/44031
* test: disable snapshot tests
* https://github.com/nodejs/node/pull/47887
* https://github.com/nodejs/node/pull/49684
* https://github.com/nodejs/node/pull/44193
* build: use deps/v8 for v8/tools
Node.js hard depends on these in their builtins
* test: fix edge snapshot stack traces
https://github.com/nodejs/node/pull/49659
* build: remove js2c //base dep
* build: use electron_js2c_toolchain to build node_js2c
* fix: don't create SafeSet outside packageResolve
Fixes failure in parallel/test-require-delete-array-iterator:
=== release test-require-delete-array-iterator ===
Path: parallel/test-require-delete-array-iterator
node:internal/per_context/primordials:426
constructor(i) { super(i); } // eslint-disable-line no-useless-constructor
^
TypeError: object is not iterable (cannot read property Symbol(Symbol.iterator))
at new Set (<anonymous>)
at new SafeSet (node:internal/per_context/primordials:426:22)
* fix: failing crashReporter tests on Linux
These were failing because our change from node::InitializeNodeWithArgs to
node::InitializeOncePerProcess meant that we now inadvertently called
PlatformInit, which reset signal handling. This meant that our intentional
crash function ElectronBindings::Crash no longer worked and the renderer process
no longer crashed when process.crash() was called. We don't want to use Node.js'
default signal handling in the renderer process, so we disable it by passing
kNoDefaultSignalHandling to node::InitializeOncePerProcess.
* build: only create cppgc heap on non-32 bit platforms
* chore: clean up util:CompileAndCall
* src: fix compatility with upcoming V8 12.1 APIs
https://github.com/nodejs/node/pull/50709
* fix: use thread_local BuiltinLoader
* chore: fixup v8 patch indices
---------
Co-authored-by: Keeley Hammond <vertedinde@electronjs.org>
Co-authored-by: Samuel Attard <marshallofsound@electronjs.org>
2023-11-30 09:51:35 -05:00