[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) |
Add Linux-only app tests to check the default protocol handler. This includes adding reusable XDG mock fixtures.
* build: use 32-core Windows ARC runners for build jobs * ci: add siso patch to retry ERROR_INVALID_PARAMETER on ninja file open The existing patch removes the redundant per-chunk re-open in fileParser.readFile, but the single remaining os.Open per subninja can still hit the bindflt race under the ~90k-file concurrent open burst on the 32-core Windows runners. Layer a second patch on top that wraps that open in a Windows-only 5-attempt retry (5-80ms backoff) so a single transient failure no longer aborts the whole manifest load.
…rameless windows (#51252)
…tocol()` (#51251) perf: use GIO instead of xdg-mime for app.getApplicationNameForProtocol() The Linux impl of app.getApplicationNameForProtocol() now uses `g_app_info_get_default_for_uri_scheme()` + `g_app_info_get_display_name()` instead of spawning a call to the `xdg-mime` shell command. Clean up the related tests: remove the xdg-mime mock.
* chore: bump chromium in DEPS to 149.0.7779.0 * chore: bump chromium in DEPS to 149.0.7781.0 * 7726883: Add secondary label support to SimpleMenuModel and update views_examples Ref: https://chromium-review.googlesource.com/c/chromium/src/+/7726883 Co-Authored-By: Claude <svc-devxp-claude@slack-corp.com> * chore: update patches (trivial only) Co-Authored-By: Claude <svc-devxp-claude@slack-corp.com> * fix: IWYU for base/logging.h Upstream is removing transitive includes of base/logging.h as part of crbug.com/499476145. Several CLs landed in this roll that required adding explicit includes across Electron source and patches. Ref: https://chromium-review.googlesource.com/c/chromium/src/+/7732103 Ref: https://chromium-review.googlesource.com/c/chromium/src/+/7735571 Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * 7732482: [bedrock] Create BrowserProcess setters for system tray icons Ref: https://chromium-review.googlesource.com/c/chromium/src/+/7732482 Co-Authored-By: Claude <svc-devxp-claude@slack-corp.com> * chore: update patches (trivial only) Co-Authored-By: Claude <svc-devxp-claude@slack-corp.com> * 7739543: Add RenderWidgetHostView::HasSavedFrame Ref: https://chromium-review.googlesource.com/c/chromium/src/+/7739543 Co-Authored-By: Claude <svc-devxp-claude@slack-corp.com> * chore: bump chromium in DEPS to 149.0.7783.0 * chore: bump chromium in DEPS to 149.0.7789.0 * chore: update patches (trivial only) * 7703728: DedicatedWorker: Enforce same-origin check for main script fetch. Ref: https://chromium-review.googlesource.com/c/chromium/src/+/7703728 Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * 7720140: Remove GetPrefServiceForContext from ExtensionsBrowserClient Ref: https://chromium-review.googlesource.com/c/chromium/src/+/7720140 Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * chore: update patches (trivial only) * 7728375: Disable reentrancy by default except for Android and iOS Upstream changed the default ObserverList reentrancy policy from kAllowReentrancy to kDisallowReentrancy. Electron's observer lists are re-entered when macOS AppKit delivers synchronous window notifications (e.g. windowDidResignMain: during windowDidChangeOcclusionState:) because JS event handlers can trigger window state changes mid-iteration. Explicitly opt into kAllowReentrancy for now. A follow-up should convert synchronous Emit calls in window observer callbacks to EmitEventSoon to eliminate the reentrancy. Ref: https://chromium-review.googlesource.com/c/chromium/src/+/7728375 Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * chore: bump chromium in DEPS to 149.0.7791.1 * chore: update patches (trivial only) * 7696481: [pdf] Rename PdfViewerStreamManager to MimeHandlerStreamManager Ref: https://chromium-review.googlesource.com/c/chromium/src/+/7696481 Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * 7745796: Printing: Remove parameter from ShowScriptedPrintPreview() interface Ref: https://chromium-review.googlesource.com/c/chromium/src/+/7745796 Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * 7688714: [Lens / Cookies] Grant secure cookie exemptions for Lens side panel Ref: https://chromium-review.googlesource.com/c/chromium/src/+/7688714 Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * 7752609: don't show glic button for non-normal BWIs. Ref: https://chromium-review.googlesource.com/c/chromium/src/+/7752609 Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * 7749860: [media] Remove VideoFrame::WrapSharedImage with coded_size Ref: https://chromium-review.googlesource.com/c/chromium/src/+/7749860 Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * chore: bump chromium in DEPS to 149.0.7793.0 * chore: bump chromium in DEPS to 149.0.7795.0 * chore: bump chromium in DEPS to 149.0.7797.0 * chore: update patches * chore: remove upstreamed patches - fix_pass_trigger_for_global_shortcuts_on_wayland.patch: https://chromium-review.googlesource.com/c/chromium/src/+/7620219 - gin_mark_argumentholder_as_cppgc_stack_allocated.patch: https://chromium-review.googlesource.com/c/chromium/src/+/7728865 Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * chore: bump chromium in DEPS to 149.0.7798.0 * chore: update filenames.libcxx.gni * 7760061: Reland Reland Add a client-side decorated frame view for non-browser widgets on Linux Ref: https://chromium-review.googlesource.com/c/chromium/src/+/7760061 Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * 7760945: Rename WebString::UTF8ConversionMode to Utf8ConversionMode Ref: https://chromium-review.googlesource.com/c/chromium/src/+/7760945 Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * chore: update patches * chore: remove upstreamed patches - patches/devtools_frontend/fix_context_selector_not_showing_execution_contexts.patch: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/7761316 Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * 7719004: [extensions] Gate dict-format mime_types_handler parsing Ref: https://chromium-review.googlesource.com/c/chromium/src/+/7719004 Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * 7716681: [pdf] Introduce MimeHandlerStreamDelegate and plumb ownership Ref: https://chromium-review.googlesource.com/c/chromium/src/+/7716681 Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * 7725342: Rename WebString::FromUTF8 to FromUtf8 in Blink Ref: https://chromium-review.googlesource.com/c/chromium/src/+/7725342 Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * 7615475: Add a native frame view for non-browser widgets on Linux Ref: https://chromium-review.googlesource.com/c/chromium/src/+/7615475 Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * 7735248: Move ManifestV2ExperimentManager to //extensions Ref: https://chromium-review.googlesource.com/c/chromium/src/+/7735248 Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * 7725187: linux: set env FC_FONTATIONS and EGL_PLATFORM early Move Ozone pre-init from ElectronBrowserMainParts::PreEarlyInitialization() to ElectronMainDelegate::PreSandboxStartup() to match upstream's rename and relocation. The call has to run before threads are created. Ref: https://chromium-review.googlesource.com/c/chromium/src/+/7725187 Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * 7743280: Introduce client ID for network throttling conditions. Ref: https://chromium-review.googlesource.com/c/chromium/src/+/7743280 Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * chore: disable ml-kem node test incompatible with BoringSSL test-crypto-pqc-key-objects-ml-kem: BoringSSL's ML-KEM support is inconsistent with the test's OpenSSL-version-based assumptions. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * test: update V8 serialization wire format version to 16 V8 14.9 (Chromium 149) bumped the serialization wire format from version 15 to 16. Update the hardcoded expected bytes in the test-v8-serdes.js test. Remove this patch once upstream Node.js catches up via its next V8 roll. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> --------- Co-authored-by: electron-roller[bot] <84116207+electron-roller[bot]@users.noreply.github.com> Co-authored-by: Samuel Maddock <samuelmaddock@electronjs.org> Co-authored-by: Claude <svc-devxp-claude@slack-corp.com> Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com> Co-authored-by: clavin <clavin@electronjs.org>
* build: restrict npm tarball contents to an explicit allowlist The npm publish flow runs `npm pack` in a staging temp dir, but `npm/package.json` had no `files` field — so any file that happened to land in that dir was packed into the published tarball. Recent releases (41.2.1+, 40.9.1+, 39.8.8+) shipped a self-referential `.npm-cache/_logs/*-debug-0.log` (npm's own debug log, written into the pack dir before pack finishes reading files) and a stray copy of `SHASUMS256.txt` that duplicates the info already in `checksums.json`. Add an explicit `files` allowlist so only the intended contents are packaged, regardless of staging-dir contamination. `package.json`, `README.md`, and `LICENSE` are auto-included by npm. Fixes #51290. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * build: include LICENSE and README.md in files allowlist These are auto-included by npm regardless, but listing them makes the intended contents of the tarball self-documenting alongside the other entries. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
The Chromium 149.0.7798.0 roll bumped the pinned siso revision, and upstream added a `path/filepath` import to file_parser.go. That broke the import-block context for the 0002 ERROR_INVALID_PARAMETER retry patch, so `git am --3way` could no longer build a fake ancestor and the build-siso-windows job started failing at the apply step. Re-export both patches against the new siso SHA. No functional change to the patched code; only line offsets, index hashes and the import context move.
…51292) * fix: pre-create thinlto-cache dir on Windows to avoid bindflt race Co-Authored-By: Claude <svc-devxp-claude@slack-corp.com> * fix: discover ThinLTO cache path from GN instead of hardcoding Addresses review feedback from @deepak1556: the hardcoded `out\Default\thinlto-cache` path goes out of sync if upstream changes `cache_dir` in Chromium's build/config/compiler/BUILD.gn. Read the `/lldltocache:` flag from `gn desc` on a linked target (`//electron:electron_app`) and pre-create whatever path GN actually configured. Skips the pre-create entirely when ThinLTO is disabled (non-official builds), which is the correct no-op. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * fix: run gn gen before discovering ThinLTO cache path Previous attempt failed on Windows CI for two reasons: 1. `e init` does not run `gn gen` — out/Default is still unpopulated when the build step starts, so `gn desc` had nothing to introspect. 2. `e` writes informational lines to stderr (e.g. "INFO Auto-updates disabled"), which GitHub Actions' default $ErrorActionPreference = 'Stop' turned into a terminating NativeCommandError before e build could run. Run `gn gen` explicitly here so `gn desc` can report the effective `/lldltocache:` path, and shell each `e` invocation through cmd.exe so its informational stderr stays out of PowerShell's error stream. `e build` re-uses the same generated build dir so gn gen is paid once. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * fix: revert to hardcoded thinlto-cache path, document the coupling Dynamic discovery via `gn desc` required `gn gen` to run beforehand, and `gn gen` can't run before `e build` on Windows CI — gn.exe isn't installed in `src/third_party/gn/` or `src/buildtools/win/gn/` until a Chromium gclient hook that the current CI workflow doesn't trigger. `e build` works because the restored src cache lets it skip the gen step; any attempt to force `gn gen` earlier fails with exit 2. Go back to pre-creating the path the upstream default currently resolves to, and leave a comment explaining the coupling so a future upstream relocation fails loudly (via the original LLVM error) rather than silently. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude <svc-devxp-claude@slack-corp.com> Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
* ci: test with absolute paths for lld-link on windows * fix: exclude system libs * fix: skip abs wrapper for thin archive step
* ci: route rustc linker invocations through abs_link_wrapper * fix: abs path to generated cmd file * fix: remove extra quotes around args
* fix: add inputs to node_headers target for proper invalidation The `generate_node_headers` action had no `inputs` declared, so Ninja would not rebuild when node or V8 header files changed. This caused stale headers to remain in gen/node_headers after a Node.js bump, leading to build failures with errors in files like target_agent.h. Add inputs including the install.py script (which determines which headers to copy), key Node.js headers, inspector headers, and V8 version headers. Changes to any of these will now trigger regeneration. https://claude.ai/code/session_018qZ1FBZCEkmDC1sRvPQnqp * refactor: drive node_headers inputs from filenames.auto.gni Wire the `generate_node_headers` action's inputs through the existing auto_filenames mechanism so there is a single source of truth for which files should invalidate the generated node_headers directory. `script/gen-filenames.ts` now enumerates node and v8 header files via filesystem scan and records them under `auto_filenames.node_header_sources` in filenames.auto.gni, alongside install.py (which drives which headers get copied). BUILD.gn consumes the list directly as the action's `inputs` parameter. The list will repopulate fully the next time `ts-node script/gen-filenames.ts` runs (via lint-staged on any JS/TS commit), the same way webpack bundle deps are refreshed today. https://claude.ai/code/session_018qZ1FBZCEkmDC1sRvPQnqp * chore: update filenames * fmt --------- Co-authored-by: Claude <noreply@anthropic.com>
* ci: run siso build as part of Apply Patches workflow This adds a build-siso job that runs when DEPS or .github/siso-patches change, so siso patch issues are detected before chromium rolls land. https://claude.ai/code/session_01TggMjnXwKFFtuLQAsrGfA3 * ci: trigger rerun-apply-patches on siso-patches changes https://claude.ai/code/session_01TggMjnXwKFFtuLQAsrGfA3 --------- Co-authored-by: Claude <noreply@anthropic.com>
Fix a crash in AutofillPopupView::Show() when the popup tried to show itself after the parent's native view had already gone away during teardown. 2026-04-23T20:44:32.7015810Z Received signal 11 SEGV_ACCERR 000000000160 2026-04-23T20:44:32.9322010Z 4 Electron Framework ... views::Widget::IsVisible() const + 28 2026-04-23T20:44:32.9528810Z 6 Electron Framework ... electron::AutofillPopupView::Show() + 200 2026-04-23T20:44:32.9632090Z 7 Electron Framework ... electron::AutofillPopup::CreateView(...) + 1380 2026-04-23T20:44:32.9749770Z 8 Electron Framework ... electron::AutofillDriver::ShowAutofillPopup(...) + 736 2026-04-23T20:44:33.0015220Z ✗ Electron tests failed with kill signal SIGSEGV.
test: fix race in reentrant loadURL() ready-to-commit test Fix 'fails if loadurl is called after the navigation is ready to commit' by using a done() callback to ensure the test waits for did-fail-load before exiting. Previously, the test would return and call afterEach(closeAllWindows), potentially destroying the window while navigation was in flight.
#51286) * fix: dispatch toast action and reply events from WinRT activation path ToastEventHandler::Invoke previously returned S_OK without dispatching whenever the activation arguments looked structured (type=action, type=reply, or contained &tag=), on the assumption that the COM INotificationActivationCallback::Activate path would deliver the event instead. That assumption only holds when Windows actually invokes the COM activator — which it does for MSIX-packaged apps launched cold, and for unpackaged apps with a properly-registered CLSID when the app is not already running. For non-MSIX apps with activationType="foreground" while the app is running (the common case), Windows raises only the in-process WinRT Activated event, so action and reply were silently dropped. Dispatch structured activations through the same HandleToastActivation the COM path uses. User input (reply text, selection values) is pulled from IToastActivatedEventArgs2::UserInput, which carries the data the COM callback would otherwise have received via NOTIFICATION_USER_INPUT_DATA. Also drop the &tag= term from the structured-args check. Plain clicks in Electron-generated XML don't carry tag=, and a custom toast_xml that puts tag= on a click argument should now dispatch as a click rather than being silently dropped. * fix: release HSTRING out-params from toast activation
Pre-creating out\Default\thinlto-cache dodged the CreateDirectoryW race on bindflt-mounted ARC runners but left CreateFileW for the cache files inside still racy. Latest symptom (publish-x86-win on the v43.0.0-nightly.20260425 re-run): lld-link: error: Failed to open cache file thinlto-cache\llvmcache-...: invalid argument That is the same ERROR_INVALID_PARAMETER bindflt returns under the concurrent ThinLTO write load, just on a different file op. Replace the pre-created directory with a junction at out\Default\thinlto-cache pointing to $env:TEMP\electron-thinlto-cache on the underlying volume. The reparse point is resolved in the I/O manager before bindflt sees per-file operations, so cache reads and writes bypass the filter driver entirely. Idempotent for re-runs: detects an existing junction (without following it via Remove-Item) and a leftover real directory from older builds. Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
* fix: make macOS text replacement work on `contenteditable` * fix: remove accidentally included patch line
…1256)" (#51341) * Revert "build: use 32-core Windows ARC runners for build jobs (#51256)" This reverts commit 099c5c0. * chore: put back siso patch * Revert "fix: route ThinLTO cache through junction outside bindflt mount (#51328)" This reverts commit 9e7a343. * Revert "fix: pre-create thinlto-cache dir on Windows to avoid bindflt race (#51292)" This reverts commit 98e91ca.
…51326) a39108c (#47244) replaced gin_helper::EmitEvent with a direct `v8::Function::Call()` in `WebWorkerObserver::ContextWillDestroy` to avoid re-entering the microtask checkpoint during worker teardown. V8 `DCHECK()`s that a policy is set. Under the old code path, this happened with a node::CallbackScope. Under the new code path, it's possible for a policy to not be set, causing that `DCHECK()` to fail. This PR copies a39108c's changes in `ShareEnvironmentWithContext()`: it explicitly adds a `kDoNotRunMicrotasks` scope.
…xt refresh (#51329) fix: remove early capturer_.reset() that causes null deref on next refresh Another followup to dad4ab6: remove the `capturer_.reset()` that `desktop_media_list.patch` was adding `Worker::RefreshNextThumbnail()`. Since we switched from the one-shot Update() model to the continuous StartUpdating() model, resetting `capturer_` isn't necessary and is now dangerous: ScheduleNextRefresh() posts a delayed Worker::Refresh() that dereferences capturer_, causing a nullptr crash. Under CI load, the NativeDesktopMediaList can survive long enough for the next 1-second refresh cycle to fire before FinalizeList() destroys it. The crash can manifest as either a SIGSEGV or a DCHECK(can_refresh()) failure, which is extra fun because dad4ab6 was fixing a similar DCHECK crash in the first place. Sample crash: ``` [6690:0426/173732.876803:FATAL:chrome/browser/media/webrtc/native_desktop_media_list.cc:934] DCHECK failed: can_refresh().0x00000001337aa7f3 NativeDesktopMediaList::RefreshForVizFrameSinkWindows(...) + 131 ```
* perf: use GIO for Browser::IsDefaultProtocolClient() on Linux perf: use GIO for Browser::SetAsDefaultProtocolClient() on Linux Similar to 7d6227a, this speeds up app.isDefaultProtocolClient() by using the GIO library instead of spawning a shell command to get the info. * feat: log errors if g_app_info_set_as_default_for_type() fails
…dy (#50920) Added Browser::Get()->is_ready() guards to all contentTracing API functions (startRecording, stopRecording, getCategories, getTraceBufferUsage) so they reject their returned Promises with a clear error message instead of crashing when called before app.whenReady(). Added a crash-case fixture test that validates all four APIs reject properly before readiness and work normally after.
* fix: honor webContents.print dpi horizontal/vertical options * style: fix clang-format in print dpi parsing * style: extract print dpi key constants * fix: use local dpi constants in print options parser
See Commits and Changes for more details.
Created by
pull[bot]
Can you help keep this open source service alive? 💖 Please sponsor : )