Upstream renamed PluginService methods:
- GetPlugins() -> GetPluginsAsync() (async version takes callback)
- GetPluginsSynchronous() -> GetPlugins() (sync version returns directly)
Electron uses the async version, so updated the call from GetPlugins()
to GetPluginsAsync().
Ref: https://chromium-review.googlesource.com/c/chromium/src/+/7139361
Upstream relaxed the DCHECK(ph_registry) to handle tests using dummy profiles
that lack the required testing factory. Changed to early return with CHECK_IS_TEST().
Our patch already had an early return but updated comment context to match
upstream changes while preserving our behavior (removing CHECK_IS_TEST).
Ref: https://chromium-review.googlesource.com/c/chromium/src/+/7116098
Upstream refactored video picture-in-picture gesture handling to fix issues
caused by multiple sibling layers preventing default gesture event handling.
The OnGestureEvent method was simplified to use HideLiveCaptionDialogForGestureIfNecessary
helper and call views::Widget::OnGestureEvent for default handling.
Updated patch context and preserved #if 0 blocks around live caption code
that Electron disables.
Ref: https://chromium-review.googlesource.com/c/chromium/src/+/7106405
refactor: use std::map::extract() in api::WebRequest
Small readability refactor to api::WebRequest::blocked_requests_:
use extract() when we want to pull a BlockedRequest from the map
and then process it.
In 6399527761 we changed the path strings
that `node_modules.cc` operates on from single-byte to wide strings.
Unfortunately this means that `generic_path()` that the
"fix: ensure TraverseParent bails on resource path exit" patch was
calling was no longer a safe method to call on Windows if the underlying
string has unicode characters in it.
Here we fix it by using `ConvertGenericPathToUTF8` from the Node.js
internal utilities.
* feat(macos): add --disable-geolocation-mac command-line flag
* internally deny geolocation requests if flag set
e
* wrap PermissionRequestHandler instead
* wrap custom handler and deny regardless of response
* Update docs/api/command-line-switches.md
Co-authored-by: Will Anderson <will@itsananderson.com>
* resolving conflicts during rebase
* tests added
* tests added: minor changes
* move IsGeolocationDisabledViaCommandLine inside ElectronPermissionManager as a static member
* test: inject fixturesPath via --boot-eval
* Update shell/browser/electron_permission_manager.cc
Co-authored-by: Robo <hop2deep@gmail.com>
* chore: Fixup after merge
* fixup after merge
---------
Co-authored-by: Will Anderson <will@itsananderson.com>
Co-authored-by: Robo <hop2deep@gmail.com>
Co-authored-by: John Kleinschmidt <jkleinsc@electronjs.org>
* refactor: make api::WebRequest inherit from gin::Wrappable
refactor: remove unused v8::Isolate* arg from WebRequest ctor
refactor: make electron::api::Session::web_request_ a cppgc::Member<api::WebRequest>
refactor: allocate api::WebRequest on cpp heap
refactor: modify Create(), Find(), and FindOrCreate() to return a WebRequest*
* refactor: ProxyingURLLoaderFactory takes a concrete api::WebRequest instead of a WebRequestAPI
Experimental commit to ensure `ProxyingURLLoaderFactory::web_request_api_`
won't be a dangling pointer.
* chore: fix doc shear
* refactor: use cppgc::WeakPersistent<> in ProxyingURLLoaderFactory
* refactor: make ProxyingURLLoaderFactory::web_request_ const
* refactor: make ProxyingWebSocket::web_request_ a cppgc::WeakPersistent<>
* add a gin::WeakCellFactory to api::WebRequest
* refactor: use a gin::WeakCell for the bound WebRequest argument in HandleOnBeforeRequestResponseEvent()
* chore: update patches
* docs(timelines): Correct v40.0.0 stable release date
On the Electron Timelines tutorial page (/docs/latest/tutorial/electron-timelines), there is a clear typo in the release schedule for v40.0.0.
The table currently lists the dates as:
* Alpha: 2025-Oct-30
* Beta: 2025-Dec-03
* **Stable: 2025-Oct-28**
This is logically incorrect, as the 'Stable' release date (Oct 28) is listed *before* both the 'Alpha' (Oct 30) and 'Beta' (Dec 03) dates for the same version.
This appears to be a copy-paste error, as the 'Stable' date (2025-Oct-28) is identical to the 'Stable' date for the v39.0.0 release in the preceding row.
This commit updates the 'Stable' date for v40.0.0 to its correct value, ensuring the timeline is accurate and logical.
* docs: Update v40.0.0 stable date to 2026-Jan-13 based on Chromium schedule
trap handlers will be initialized once the user script starts
but before app#ready. Wasm compilation before that phase will
break trap handler registeration due to the check in
v8::internal::wasm::UpdateComputedInformation. For some reason
this issue was only visible in <= 39-x-y when pdf-reader.mjs
was being loaded, maybe some module loading logic changed in >= 40-x-y
which are based on Node.js v24.x. In either case, it is best to
align the loading of wasm module required for the tests in light
of changes to how we are registering the trap handlers for the
main process.
* refactor: Session::NetLog() returns a NetLog*
Use gin_helper's gin::Wrappable-to-v8::Local converter instead
of rewriting it.
* refactor: FromPath(base::FilePath&, gin::Arguments*) returns a Session*
refactor: FromPartition(std::string&, gin::Arguments*) returns a Session*
Use gin_helper's gin::Wrappable-to-v8::Local converter instead
of rewriting it.