[pull] main from electron:main#3
Conversation
|
@pull-request-quantifier[bot] is not allowed to run commands |
|
This PR has Quantification details
Why proper sizing of changes matters
Optimal pull request sizes drive a better predictable PR flow as they strike a
What can I do to optimize my changes
How to interpret the change counts in git diff output
Was this comment helpful? 👍 :ok_hand: :thumbsdown: (Email) |
2 similar comments
|
This PR has Quantification details
Why proper sizing of changes matters
Optimal pull request sizes drive a better predictable PR flow as they strike a
What can I do to optimize my changes
How to interpret the change counts in git diff output
Was this comment helpful? 👍 :ok_hand: :thumbsdown: (Email) |
|
This PR has Quantification details
Why proper sizing of changes matters
Optimal pull request sizes drive a better predictable PR flow as they strike a
What can I do to optimize my changes
How to interpret the change counts in git diff output
Was this comment helpful? 👍 :ok_hand: :thumbsdown: (Email) |
|
This PR has Quantification details
Why proper sizing of changes matters
Optimal pull request sizes drive a better predictable PR flow as they strike a
What can I do to optimize my changes
How to interpret the change counts in git diff output
Was this comment helpful? 👍 :ok_hand: :thumbsdown: (Email) |
8 similar comments
|
This PR has Quantification details
Why proper sizing of changes matters
Optimal pull request sizes drive a better predictable PR flow as they strike a
What can I do to optimize my changes
How to interpret the change counts in git diff output
Was this comment helpful? 👍 :ok_hand: :thumbsdown: (Email) |
|
This PR has Quantification details
Why proper sizing of changes matters
Optimal pull request sizes drive a better predictable PR flow as they strike a
What can I do to optimize my changes
How to interpret the change counts in git diff output
Was this comment helpful? 👍 :ok_hand: :thumbsdown: (Email) |
|
This PR has Quantification details
Why proper sizing of changes matters
Optimal pull request sizes drive a better predictable PR flow as they strike a
What can I do to optimize my changes
How to interpret the change counts in git diff output
Was this comment helpful? 👍 :ok_hand: :thumbsdown: (Email) |
|
This PR has Quantification details
Why proper sizing of changes matters
Optimal pull request sizes drive a better predictable PR flow as they strike a
What can I do to optimize my changes
How to interpret the change counts in git diff output
Was this comment helpful? 👍 :ok_hand: :thumbsdown: (Email) |
|
This PR has Quantification details
Why proper sizing of changes matters
Optimal pull request sizes drive a better predictable PR flow as they strike a
What can I do to optimize my changes
How to interpret the change counts in git diff output
Was this comment helpful? 👍 :ok_hand: :thumbsdown: (Email) |
|
This PR has Quantification details
Why proper sizing of changes matters
Optimal pull request sizes drive a better predictable PR flow as they strike a
What can I do to optimize my changes
How to interpret the change counts in git diff output
Was this comment helpful? 👍 :ok_hand: :thumbsdown: (Email) |
|
This PR has Quantification details
Why proper sizing of changes matters
Optimal pull request sizes drive a better predictable PR flow as they strike a
What can I do to optimize my changes
How to interpret the change counts in git diff output
Was this comment helpful? 👍 :ok_hand: :thumbsdown: (Email) |
|
This PR has Quantification details
Why proper sizing of changes matters
Optimal pull request sizes drive a better predictable PR flow as they strike a
What can I do to optimize my changes
How to interpret the change counts in git diff output
Was this comment helpful? 👍 :ok_hand: :thumbsdown: (Email) |
|
This PR has Quantification details
Why proper sizing of changes matters
Optimal pull request sizes drive a better predictable PR flow as they strike a
What can I do to optimize my changes
How to interpret the change counts in git diff output
Was this comment helpful? 👍 :ok_hand: :thumbsdown: (Email) |
11 similar comments
|
This PR has Quantification details
Why proper sizing of changes matters
Optimal pull request sizes drive a better predictable PR flow as they strike a
What can I do to optimize my changes
How to interpret the change counts in git diff output
Was this comment helpful? 👍 :ok_hand: :thumbsdown: (Email) |
|
This PR has Quantification details
Why proper sizing of changes matters
Optimal pull request sizes drive a better predictable PR flow as they strike a
What can I do to optimize my changes
How to interpret the change counts in git diff output
Was this comment helpful? 👍 :ok_hand: :thumbsdown: (Email) |
|
This PR has Quantification details
Why proper sizing of changes matters
Optimal pull request sizes drive a better predictable PR flow as they strike a
What can I do to optimize my changes
How to interpret the change counts in git diff output
Was this comment helpful? 👍 :ok_hand: :thumbsdown: (Email) |
|
This PR has Quantification details
Why proper sizing of changes matters
Optimal pull request sizes drive a better predictable PR flow as they strike a
What can I do to optimize my changes
How to interpret the change counts in git diff output
Was this comment helpful? 👍 :ok_hand: :thumbsdown: (Email) |
|
This PR has Quantification details
Why proper sizing of changes matters
Optimal pull request sizes drive a better predictable PR flow as they strike a
What can I do to optimize my changes
How to interpret the change counts in git diff output
Was this comment helpful? 👍 :ok_hand: :thumbsdown: (Email) |
|
This PR has Quantification details
Why proper sizing of changes matters
Optimal pull request sizes drive a better predictable PR flow as they strike a
What can I do to optimize my changes
How to interpret the change counts in git diff output
Was this comment helpful? 👍 :ok_hand: :thumbsdown: (Email) |
|
This PR has Quantification details
Why proper sizing of changes matters
Optimal pull request sizes drive a better predictable PR flow as they strike a
What can I do to optimize my changes
How to interpret the change counts in git diff output
Was this comment helpful? 👍 :ok_hand: :thumbsdown: (Email) |
|
This PR has Quantification details
Why proper sizing of changes matters
Optimal pull request sizes drive a better predictable PR flow as they strike a
What can I do to optimize my changes
How to interpret the change counts in git diff output
Was this comment helpful? 👍 :ok_hand: :thumbsdown: (Email) |
|
This PR has Quantification details
Why proper sizing of changes matters
Optimal pull request sizes drive a better predictable PR flow as they strike a
What can I do to optimize my changes
How to interpret the change counts in git diff output
Was this comment helpful? 👍 :ok_hand: :thumbsdown: (Email) |
|
This PR has Quantification details
Why proper sizing of changes matters
Optimal pull request sizes drive a better predictable PR flow as they strike a
What can I do to optimize my changes
How to interpret the change counts in git diff output
Was this comment helpful? 👍 :ok_hand: :thumbsdown: (Email) |
|
This PR has Quantification details
Why proper sizing of changes matters
Optimal pull request sizes drive a better predictable PR flow as they strike a
What can I do to optimize my changes
How to interpret the change counts in git diff output
Was this comment helpful? 👍 :ok_hand: :thumbsdown: (Email) |
Remove our implementation of the scripting api and use upstream's version. It was recently moved to `extensions/` by https://chromium-review.googlesource.com/c/chromium/src/+/7784831, so we link it directly. Update `ElectronExtensionsBrowserClient` to overrides `IsValidTabId()` and `GetScriptExecutorForTab()` to provide tab validation and script-executor hooks. Remove now-redundant local copy of `scripting.idl`. Upstream now provides everything we used this for. Updated breaking-changes.md to document a CSS matching difference. Co-authored-by: GitHub Copilot <github-copilot[bot]@users.noreply.github.com>
…gent cluster key assignment (#50789) * fix: constrain AllowUniversalAccessFromFileURLs to file: origins in agent cluster key assignment Fixes #50242 Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]> * sync patch with upstream CL * add test --------- Co-authored-by: Claude Opus 4.6 (1M context) <[email protected]>
* feat: add accessible labels for macOS menus * fix: wire `MenuItem` accessible label for runtime state changes * fix: remove insert-time tracking of accessible menu item labels * fix: don't set empty accessible menu item labels * fix: make linter happy * docs: add clarification to accessible label documentation * fix: rename `accessibleLabel` to `accessibilityLabel` * fix: move `NSString`'s for accessibility labels inside smaller scopes * Revert "fix: move `NSString`'s for accessibility labels inside smaller scopes" This reverts commit db30684. * fix: actually move `NSString`'s for accessibility labels inside smaller scopes
* refactor: gin_helper::Promise managed by cppgc * fix: broken liveness test * refactor: move handle dependent members to base class
* feat: support WebAuthn Touch ID platform authenticator on macOS
Adds `app.configureWebAuthn({ touchID: { keychainAccessGroup } })` to enable
the Secure Enclave platform authenticator for `navigator.credentials`.
Credentials are stored under the app-supplied keychain access group with a
per-session metadata secret that is generated on first use and persisted in
prefs.
Also introduces `ElectronAuthenticatorRequestClientDelegate` and wires it via
`ContentBrowserClient::GetWebAuthenticationRequestDelegate()` so that
discoverable-credential `get()` calls with multiple matches emit a new
`select-webauthn-account` session event instead of DCHECK-failing in the base
delegate. If no listener is registered (or the callback is invoked with no
credential), the request is cancelled with NotAllowedError rather than
silently auto-selecting.
Tests use the DevTools virtual authenticator so the account-selection flow is
exercised in CI without entitlements or real hardware.
* fix: register request delegate as FidoRequestHandlerBase observer
The base AuthenticatorRequestClientDelegate::StartObserving() is a no-op, so
observer() on the request handler stayed null. MakeCredentialRequestHandler::
SpecializeRequestForAuthenticator dereferences observer()->SupportsPIN() when
residentKey is 'preferred', crashing with SEGV when a real FIDO2 HID key is
dispatched.
Override StartObserving/StopObserving to register via a ScopedObservation like
ChromeAuthenticatorRequestDelegate does. Added a virtual-authenticator
regression test for create() with residentKey: 'preferred'.
* chore: update copyright attribution for new webauthn files
* fix: address review feedback on webauthn account-select event
- Encode credentialId and userHandle as URL-safe base64 without padding so
the values match PublicKeyCredential.id from navigator.credentials.get()
byte-for-byte; tests now assert the equality rather than transcoding.
- Cancel the pending request when the listener invokes the callback with a
credentialId that does not match any account, instead of leaving the
request hanging while the listener retries. The TypeError still surfaces
so the misuse remains visible to the developer.
- DCHECK that the Touch ID config helpers run on the UI thread, encoding
the threading invariant the read-then-write metadata-secret pref relies
on.
* fix: oxfmt formatting in webauthn spec
* fix: use out-param form of base::Base64UrlEncode
* fix: silently cancel webauthn account select on unknown credentialId
Throwing back into the listener bubbles up as an unhandled exception in
the main process. Match the no-args branch exactly so the listener sees a
single consistent failure mode (cancel + NotAllowedError) whether it
declines deliberately or by mistake.
* feat: blur views * spec: add tests, limit values to positive * docs: be explicit in units for blurRadius Co-authored-by: Erick Zhao <[email protected]> * lint: trailing space --------- Co-authored-by: Erick Zhao <[email protected]>
fix: add ShouldUseBundledFrontendResources delegate for remote debugging Co-authored-by: John Kleinschmidt <[email protected]>
feat: add http cache support to requests from utility process Add `session` and `partition` options to `utilityProcess.fork()` to allow utility processes to use a session-specific network context instead of the system network context. This enables HTTP caching, cookie isolation, and webRequest interception for utility process network requests. When `respondToAuthRequestsFromMainProcess` is true and a session is provided, HTTP 401/407 auth challenges now emit a `login` event on the UtilityProcess instance rather than on `app`. Without a session, auth challenges continue to emit on `app` for backward compatibility.
* fix: preserve mouse hook handle when UnhookWindowsHookEx fails NativeWindowViews::SetForwardMouseMessages() installs a low-level mouse hook when mouse forwarding begins and unhooks it once no window needs forwarding. The previous code reset the shared `mouse_hook_` handle to `nullptr` unconditionally after calling UnhookWindowsHookEx, even when the unhook call failed. When unhooking fails, the hook is still installed in the system. Because `mouse_hook_` is nulled out anyway, the next call to SetForwardMouseMessages(true) evaluates `if (!mouse_hook_)` as true and installs a second, duplicate hook via SetWindowsHookEx, so every mouse message is processed by MouseHookProc multiple times. Check the return value of UnhookWindowsHookEx and only null the handle on success. When the call fails, leave `mouse_hook_` pointing at the existing hook so the next activation reuses it rather than stacking a new one on top, and log the failure via PLOG to surface the underlying Windows error. Fixes: #51064 Signed-off-by: Asish Kumar <[email protected]> * fix: clear invalid mouse hook handles Signed-off-by: Asish Kumar <[email protected]> --------- Signed-off-by: Asish Kumar <[email protected]>
Upstream PR: nodejs/node#63016 This needs to be merged before cutting the `43-x-y` release branch.
…()` (#51399) refactor: do not pass a DesktopMediaList* to DesktopCapturer::OnListReady() The list pointer was being used as a proxy for its type, so just pass the type instead. This solves a lifecycle issue occurring in CI where the callack can outlive the DesktopMediaList. Sample error log: [48471:0428/193441.269750:FATAL:base/allocator/partition_alloc_support.cc:798] Detected dangling raw_ptr in unretained with id=0x0000013c02e14378: Task trace: 0 Electron Framework 0x000000012283a0ba electron::api::DesktopCapturer::ListObserver::MaybeNotifyReady() + 170 1 Electron Framework 0x0000000133246dc5 NativeDesktopMediaList::Worker::OnRecurrentCaptureResult(webrtc::DesktopCapturer::Result, std::__Cr::unique_ptr<webrtc::DesktopFrame, std::__Cr::default_delete<webrtc::DesktopFrame>>, long) + 357 2 Electron Framework 0x000000013328dbcf (anonymous namespace)::ScreenshotManagerCapturer::OnRecurrentCaptureTimer() + 1343 Stack trace: 0 Electron Framework 0x000000012ade42f2 base::debug::CollectStackTrace(base::span<void const*, 18446744073709551615ul, void const**>) + 18 1 Electron Framework 0x000000012add00e1 base::debug::StackTrace::StackTrace(unsigned long) + 225 2 Electron Framework 0x000000012ade978a base::allocator::UnretainedDanglingRawPtrDetectedCrash(unsigned long) + 90 3 Electron Framework 0x000000012ae437f7 base::internal::RawPtrBackupRefImpl<true>::ReportIfDanglingInternal(unsigned long) + 391
…1297) * feat: implement app.getApplicationInfoForProtocol() on Linux * refactor: move xdg spec helpers to spec/lib/xdg-helpers.ts test: add Linux test coverage for app.getApplicationInfoForProtocol() * chore: make gncheck happy * fixup! refactor: move xdg spec helpers to spec/lib/xdg-helpers.ts fix accidental clobber of XDG_DATA_DIRS
) Navigations routed through OpenURLFromTab with a non-CURRENT_TAB disposition were emitted as `-new-window` without consulting the initiating frame's sandbox flags. We need to check `WebSandboxFlags::kPopups` on the initiating FrameTreeNode before emitting, surfacing a console error when the navigation is rejected.
* chore: bump chromium in DEPS to 149.0.7815.0 * chore: update patches (trivial only) Co-Authored-By: Claude Opus 4.7 <[email protected]> * 7747370: [Extensions] Move manifest_url_handlers.{h,cc} Ref: https://chromium-review.googlesource.com/c/chromium/src/+/7747370 Co-Authored-By: Claude Opus 4.7 <[email protected]> * chore: node ./script/gen-libc++-filenames.js * gfx::CALayerParams: Make move-only, add fence mach port | https://chromium-review.googlesource.com/c/chromium/src/+/7790009 * fix: preserve renderer stdio behavior on Windows https://chromium-review.googlesource.com/c/chromium/src/+/7665803 now opens CONOUT$ with rw permissions for proper TTY detection. That makes libuv classify inherited console handles as UV_TTY, so Node now exposes process.stdout.isTTY as true in renderer processes. Electron's renderer treats stdout/stderr as non-TTY and our spec expects process.stdout.isTTY to be undefined. This PR preserves that by masking isTTY on process.stdout and process.stderr in the Windows renderer init path, but keeps the underlying streams rw for #50268. Xref: #50268 Co-authored-by: GitHub Copilot <[email protected]> * chore: bump chromium in DEPS to 149.0.7817.0 * chore: update patches (trivial only) * Reland "Migrate ProcessMap to use ChildProcessId" | https://chromium-review.googlesource.com/c/chromium/src/+/7793314 * chore: node ./script/gen-libc++-filenames.js * fixup! fix: preserve renderer stdio behavior on Windows * test: use code review suggestions --------- Co-authored-by: electron-roller[bot] <84116207+electron-roller[bot]@users.noreply.github.com> Co-authored-by: chromium-roller[bot] <chromium-roller[bot]@users.noreply.github.com> Co-authored-by: Claude Opus 4.7 <[email protected]> Co-authored-by: Charles Kerr <[email protected]> Co-authored-by: GitHub Copilot <[email protected]>
test: set timeout limit for ESM fixture processes
…51441) * test: remove quick-start boilerplate from import-meta fixture Remove macOS dock handling boilerplate code from electron-quick-start. This test fixture is a short-lived process that calls process.exit() on completion, so we don't need it. * fix: handle createWindow() rejection in import-meta fixture The createWindow() promise was fire-and-forget. If loadFile() or executeJavaScript() rejects transiently, process.exit() was never called and the process would hang.
Assisted-by: Claude Opus 4.6
Fix a crash that appears to be a DevTools callback to `DevToolsOpened()` while the WebContents teardown is underway. This PR re-applies 5bd2938 / #49406: the first thing the WebContents destructor does is to clear the IWCV's delegate. That approach was accidentaly circumvented a little by 9f9a5b8 / #50032 which added new code to the beginning of the destructor before clearing the delgate. Sample crash trace: Received signal 11 SEGV_MAPERR 0000000001b8 0 0x55b70ad996b2 base::debug::CollectStackTrace() [../../base/debug/stack_trace_posix.cc:1048:7] 1 0x55b70ad81021 base::debug::StackTrace::StackTrace() [../../base/debug/stack_trace.cc:280:20] 2 0x55b70ad9906f base::debug::(anonymous namespace)::StackDumpSignalHandler() [../../base/debug/stack_trace_posix.cc:483:3] 3 0x7fe851b19520 (/usr/lib/x86_64-linux-gnu/libc.so.6+0x4251f) 4 0x55b70ac8c60d base::internal::WeakReference::IsValid() [../../base/memory/weak_ptr.cc:74:0] 5 0x55b7041101e8 electron::api::WebContents::DevToolsOpened() [../../base/memory/weak_ptr.h:238:32] 6 0x55b7041f5141 electron::InspectableWebContents::LoadCompleted() [../../electron/shell/browser/ui/inspectable_web_contents.cc:632:27] 7 0x55b704033be3 base::RepeatingCallback<>::Run() [../../base/functional/callback.h:343:12] 8 0x55b712272d9a (anonymous namespace)::ParseAndHandle<>() [../../chrome/browser/devtools/devtools_embedder_message_dispatcher.cc:320:13] 9 0x55b712272ec2 base::internal::Invoker<>::Run() [../../base/functional/bind_internal.h:673:12] 10 0x55b712272cf3 base::RepeatingCallback<>::Run() [../../base/functional/callback.h:343:12] 11 0x55b712272c36 DispatcherImpl::Dispatch() [../../chrome/browser/devtools/devtools_embedder_message_dispatcher.cc:389:48] 12 0x55b7041f89c6 electron::InspectableWebContents::HandleMessageFromDevToolsFrontend() [../../electron/shell/browser/ui/inspectable_web_contents.cc:962:33]
* chore: bump chromium in DEPS to 149.0.7820.0 * fix(patch): trace builtin num_args renamed to has_arg Ref: https://chromium-review.googlesource.com/c/v8/v8/+/7775556 Co-Authored-By: GitHub Copilot (Claude Opus 4.6) * chore: update patches (trivial only) * 7672857: [network] Plumb Platform LNA permission error to browser process Ref: https://chromium-review.googlesource.com/c/chromium/src/+/7672857 Co-Authored-By: GitHub Copilot (Claude Opus 4.6) --------- Co-authored-by: electron-roller[bot] <84116207+electron-roller[bot]@users.noreply.github.com> Co-authored-by: Charles Kerr <[email protected]>
* build: replace spec dep fork with patch * yup
…51488) Tests spawn child Electron.app instances and kill them with SIGINT (e.g. startRemoteControlApp). After enough abnormal exits of the same bundle ID, AppKit shows a modal "...unexpectedly quit while reopening windows. Do you want to try to reopen its windows again?" alert inside the open-application AppleEvent handler. That handler runs before applicationDidFinishLaunching: is posted, so the alert blocks app.whenReady() forever and the spawned fixture hangs until the job times out. Setting ApplePersistenceIgnoreState for com.github.Electron disables the persistent-UI machinery (including this prompt) for every Electron launch in the test job, mirroring the existing CrashReporter DialogType suppression directly above. Fixes #51462
…51486) Bumps [slackapi/slack-github-action](https://github.com/slackapi/slack-github-action) from 3.0.2 to 3.0.3. - [Release notes](https://github.com/slackapi/slack-github-action/releases) - [Changelog](https://github.com/slackapi/slack-github-action/blob/main/CHANGELOG.md) - [Commits](slackapi/slack-github-action@03ea543...45a88b9) --- updated-dependencies: - dependency-name: slackapi/slack-github-action dependency-version: 3.0.3 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* feat: allow SF Symbols to be customised * spec: add test for symbol options * feat: add nativeImage.createMenuSymbol and restore default values * fix: use apple's sizing logic * docs: update default symbol values * merge hslShift and options, revert sizing logic * docs: update string params * adjust sizing for wider symbols * chore: deprecate hslShift array argument * fix: deprecation isolate crashing build * fix: switch from removed value::Dict alias * test: fix failure * fix: do not crash on invalid symbol name * Update docs/api/native-image.md Co-authored-by: John Kleinschmidt <[email protected]> --------- Co-authored-by: John Kleinschmidt <[email protected]>
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 4.35.2 to 4.35.3. - [Release notes](https://github.com/github/codeql-action/releases) - [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md) - [Commits](github/codeql-action@95e58e9...e46ed2c) --- updated-dependencies: - dependency-name: github/codeql-action dependency-version: 4.35.3 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…ings` (#51416) * fix: always emit `executableWillLaunchAtLogin` from getLoginItemSettings `Converter<LoginItemSettings>::ToV8` only set `executableWillLaunchAtLogin` inside the Windows build block, so calling `app.getLoginItemSettings()` on macOS returned an object where the property was `undefined` rather than the boolean its type implies. Move the `executable_will_launch_at_login` field out of the Windows-only section of `LoginItemSettings` (it keeps its `false` default everywhere) and unconditionally emit the property in the V8 converter. The value is still only meaningful on Windows; on other platforms it is always `false`. * test: include executableWillLaunchAtLogin in SMAppService expectations
See Commits and Changes for more details.
Created by
pull[bot]
Can you help keep this open source service alive? 💖 Please sponsor : )