Repository navigation
Update dependency electron to v45 - #2130
Open
renovate[bot] wants to merge 1 commit into
Open
renovate[bot] wants to merge 1 commit into
renovate[bot] wants to merge 1 commit into
Conversation
renovate
Bot
force-pushed
the
renovate/electron-45.x
branch
from
October 22, 2026 14:31
b59c89e to
5b6a712
Compare
|
renovate
Bot
force-pushed
the
renovate/electron-45.x
branch
from
October 27, 2026 00:46
5b6a712 to
c2a2ff9
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Note
This PR body was truncated due to platform limits.
This PR contains the following updates:
^44.9.3→^45.0.0Release Notes
electron/electron (electron)
v45.0.0: electron v45.0.0Compare Source
Release Notes for v45.0.0
Stack Upgrades
156.0.8078.48v24.22.015.6Breaking Changes
Buffer. #54048events,timersandurlmodules and theBuffer,setImmediateandclearImmediateglobals from sandboxed preload scripts; use a polyfill.webviewTagis enabled.nodeIntegrationInWorker: true, aWorkercreated from an<iframe>in the same process as the main frame used to get Node.js integration even though the iframe itself had none. Workers now only get Node.js integration when the frame that creates them has it: the main frame, or any frame whennodeIntegrationInSubFramesis enabled.chrome-extension://document used to receive the window's preload script (and session preload scripts) wherever it was embedded. It now only does so when it is a top-level frame or is hosted inside the DevTools front-end (adevtools_pageor panel); an extension frame embedded in an ordinary page is treated like any other subframe and followsnodeIntegrationInSubFrames.chromeMediaSource: 'desktop'constraint now only accepts screen and window source ids fromdesktopCapturer.getSources. Passing a WebContents source id there now fails with an "Invalid state" error. To capture a WebContents, usechromeMediaSource: 'tab'with an id fromwebContents.getMediaSourceId(), or useses.setDisplayMediaRequestHandler.contentTracing.enableHeapProfiling()API has been removed. Chromium removed the memlog implementation that backed this API and replaced it with a Perfetto heap-profiling data source. Pass anativeHeapProfilingoption tocontentTracing.startRecording()to enable heap profiling for the duration of a trace. Like all recordings, heap-enabled recordings use the Perfetto protobuf format.contentTracingrecordings to now use a perfetto heap-profiling data source. #54863setPermissionRequestHandlerasdisplay-captureinstead ofmedia; a handler that allows onlymediamust also allowdisplay-captureto keep screen sharing working. #52824document.requestStorageAccessForby default ahead of its removal. The API can temporarily be restored with theenableBlinkFeaturesweb preference set toRequestStorageAccessFor. See Chromium's intent to remove discussion for more information.fs.open,fs.openSyncandfs.promises.openon a file inside an ASAR archive used to extract the file to a temporary copy and return a descriptor for that copy. They now return a descriptor that only identifies the entry to Node'sfsmodule, which reads directly out of the archive with no temporary file (fs.read,fs.readv,fs.fstat,fs.readFile(fd),fs.createReadStreamand theFileHandlemethods). The descriptor itself is not backed by the file's contents: code that reads the raw descriptor (a native addon,child_processstdio,net.Socket({ fd }),http2stream.respondWithFile()/respondWithFD(), aFileHandletransferred to a worker, ...) fails withEBADFand is not supported. Opening a file inside an archive with a flag that allows writing (w,a,r+, ...) now fails withEACCESinstead of silently writing to the temporary copy, andfs.fchmod,fs.fchownandfs.futimeson these descriptors fail withEACCES.window.open()child whosesandboxstate differs from its opener's renderer process is now created in its own process with no opener relationship instead of silently sharing the opener's process; setsandbox: falseinsetWindowOpenHandlerto keep sharing an unsandboxed opener's process. #52472safeStoragemethods are deprecated and will be removed in Electron 46, following Chromium's removal of the synchronous OSCrypt backend they are built on. Use the asynchronous methods instead, which use the same per-platform key stores. Data encrypted withsafeStorage.encryptString()can be decrypted withsafeStorage.decryptStringAsync().select-client-certificateevent support fornet.requestandnet.fetch; requests to servers requesting a client certificate no longer fail withERR_SSL_CLIENT_AUTH_CERT_NEEDED, and applications can now select a certificate to present. #52162 (Also in 44)openAsHiddenoption fromapp.setLoginItemSettings(). #52351 (Also in 44)openAsHidden,wasOpenedAsHiddenandrestoreStatefields from return value ofapp.getLoginItemSettings().app.getLoginItemSettings()on macOS.See the Breaking Changes doc for more details about these changes.
Features
badgeproperty toMenuItemon macOS 14+ for showing a count or custom text badge next to a menu item's label. #50805 (Also in 43, 44)electron_wer.dll, renamed to<app>_wer.dllalongside the executable) socrashReportercaptures__fastfailand other crashes that bypass the in-process handler on Windows. #53851app.configureWebAuthn()API to enable iCloud Keychain passkey support on macOS. When enabled,navigator.credentials.create()and.get()present Apple's native passkey UI viaASAuthorizationController. #51563availabletoprocess.getSystemMemoryInfo()on Linux, exposingproc/meminfoMemAvailable. #52299 (Also in 42, 43, 44)disableWakeLocksoption to WebPreferences. #52342getIsolatedWorldsmethod andisolated-world-createdevent forwebFrameto enable discovery of isolated worlds. #50633initiatorOriginto webRequest and protocol handler requests,DownloadItem.getInitiatorOrigin(), and a trailingframeargument to thewill-downloadandpreconnectsession events. #53700 (Also in 43, 44)systemErrorCodeto theappchild-process-goneevent. #54230 (Also in 44)Notificationaction buttons on Linux. #54889 (Also in 44)localAIHandlermodule in UtilityProcess. #50659ELECTRON_DEBUG_DRAGGABLE_REGIONSenvironment variable, which visualizes and logs draggable regions in unpackaged apps to help debug custom title bars. #53626 (Also in 43, 44)protocol.registerSource()to serve a custom scheme from directories on disk without a JavaScript handler. #54521 (Also in 44)webFrameMain.printToPDF()to allow printing individual frames to PDF from the main process. #52439 (Also in 42, 43, 44)getDisplayMedia({ audio: { restrictOwnAudio: true } })was ignored insetDisplayMediaRequestHandler, causing loopback audio to include local app playback. #52455 (Also in 43, 44)fs.open,fs.createReadStream,fs.copyFile,fs.cpand friends now read files inside ASAR archives directly from the archive instead of extracting a temporary copy;fs.opendirandfs.readlinkwork on archives; opening a packed file for writing fails withEACCES. #52833app.setBadgeCountandwin.setProgressBarfor Linux. These APIs now support any dock or taskbar which implements the LauncherEntry D-Bus API, and they no longer requirelibunity. #52739 (Also in 44)autoUpdaternow streams update downloads to disk, resumes an interrupted download on the next check instead of starting over, and applies a binary delta when the update feed offers one for the running version. #52820 (Also in 44)Fixes
<webview>andwindow.opennow inheritnodeIntegrationInWorkerfrom the embedder, consistent with the other Node and sandbox preferences. #52823 (Also in 41, 42, 43, 44)<webview>withoutallowpopupsalso blocks links opened into a new window by modifier-click, and such windows navigate as the clicking document rather than as a browser-initiated load. #53717 (Also in 42, 43, 44)protocol.registerSchemesAsPrivileged()to reject protocol names that do not conform to RFC 3986 URI scheme grammar. #53742 (Also in 44)kioclient. #54362 (Also in 44)file-system-access-restrictedevent are scoped to the requesting document, grants are reset when the origin's last page closes, and write access works in in-memory sessions. #53690 (Also in 42, 43, 44)--xdg-portal-required-versionhaving no effect and a spurious portal warning being logged for file dialogs on Linux. #54302 (Also in 43, 44)<select>dropdowns not rendering in offscreen windows on macOS. #53716ValidateIntegrityOrDie) and spurious preloadENOENTerrors when an app'sapp.asaris replaced on disk (e.g. by an updater or MDM software) while the app is running. #52283 (Also in 42, 43, 44)WebContentsViewlosing focus when its window is reactivated. #54454 (Also in 43, 44)systemPreferences.promptTouchID(reason)when an invalid reason value is passed. #52764 (Also in 42, 43, 44)process.envwas written while another thread was reading the environment, and a memory leak when a worker thread exits. #53508 (Also in 42, 43, 44)navigator.usb.requestDevice()in in-memory sessions. #54615 (Also in 44)chrome.webstorePrivateAPI. #53775 (Also in 44)node:wasifunctions in optimized code. #53266 (Also in 42, 43, 44)setIgnoreMenuShortcuts()on DevTools. #54115 (Also in 43, 44)utilityProcess.postMessage()after the utility process had exited. #53299 (Also in 43, 44)webContents.debugger. #54444 (Also in 43, 44)app.setLoginItemSettingsif a non-UTF8 service name is used. #52773 (Also in 42, 43, 44)/System/Volumes/Datapaths. #54678thisvalue of a different native type; it now throws aTypeError. #54313 (Also in 43, 44)loadURL()again right after a load failed because the renderer process exited before the page committed. #53942 (Also in 43, 44)app.getPreferredSystemLanguages()was called. #53869 (Also in 43, 44)net.requestchunked upload stream inside a protocol handler never settling when the request failed or was aborted. #53368 (Also in 43, 44)tls/httpsshortly before exiting, affectingapp.exit()beforereadyand short-livedELECTRON_RUN_AS_NODE/child_process.fork()scripts. #52856 (Also in 42, 43, 44)vm.Scriptorvmcontexts created in the main process had been garbage collected shortly before quitting. #54267 (Also in 43, 44)powerMonitoris torn down. #54384 (Also in 44)<webview>is fullscreen. #53744contentTracing.stopRecording()when the trace file could not be written to the requested path. #52793 (Also in 42, 43, 44)menu.popupwith a frame from an offscreen rendered window. #53242 (Also in 43, 44)app.getPreferredSystemLanguages()on Windows. #53864 (Also in 43, 44)select-usb-devicehandler destroys the requestingwebContents. #54008 (Also in 43, 44)image.toPNG()from a sandboxed preload script. #54501 (Also in 43, 44)SpeechRecognition.available()orSpeechRecognition.install()withprocessLocally. #52955 (Also in 42, 43, 44)ResizeObserverloop-limit error handler modified layout. #54289 (Also in 42, 43, 44)contextBridge, and several main/utility-process crashes when option objects passed to Electron APIs contain throwing accessors or Proxy traps. #53069 (Also in 42, 43, 44)nodeIntegrationInSubFramesenabled andsandboxdisabled, e.g. on pages that embed Meta Pixel. #53883 (Also in 42, 43, 44)window.open()child whosecontextIsolationdiffered from its opener's. #53538 (Also in 42, 43, 44)node_initerror being logged when creating aShadowRealmwith Node.js integration enabled. #53578 (Also in 44)nativeTheme.shouldUseDarkColorsafter resettingthemeSource. #54648protocol.registerStreamProtocolwhen an error is emitted during a read. #52474 (Also in 41, 42, 43, 44)WebContentsViewstaying blank after its window is shown whensetBackgroundThrottling(false)was called while the window was hidden. #52844 (Also in 42, 43, 44)accent-color-changedon Windows reporting a colour that differed fromsystemPreferences.getAccentColor(). #54405 (Also in 44)guestInstanceId" error when removing a loaded<webview>from the DOM. #54096 (Also in 42, 43, 44)app.quit()while ashell.openExternal()orshell.openPath()call was still waiting on a system "Open with" dialog. #52888 (Also in 41, 43, 44)contextBridgewas swallowed instead of being thrown back to the caller. #53297 (Also in 43, 44)crashReporter.setUploadToServer()had no effect aftercrashReporter.start()was called. #54519 (Also in 44)WebContentsViewwouldn't see the correct window size. #53031 (Also in 42, 43, 44)requestSingleInstanceLockcould result in a crash. #52025 (Also in 42, 43, 44)npm installfailure with no recovery path when the OS blocked the native zip extractor from loading (for example, Windows Smart App Control). #52748 (Also in 43, 44)net.fetchwhen receiving response headers with non-ASCII characters, and preserved multiple Set-Cookie headers. #54671 (Also in 44)app.disableHardwareAcceleration()not fully disabling GPU hardware usage on Windows starting from Electron 38. #51817 (Also in 41, 42, 43, 44)app.getGPUInfo('complete')stalling the GPU process for several seconds on some Windows systems. #53645 (Also in 44)app.getLoginItemSettings()not finding login items on Windows when the executable path contains spaces. #54419app.getRecentDocuments()omitting documents with non-ASCII paths on Windows. #54385 (Also in 44)BrowserWindowsize corruption on Windows when created with explicitx/yon a secondary monitor whose DPI differs from the primary. #51603 (Also in 42, 43, 44)BrowserWindow.unmaximize()andrestore()having no effect on Wayland when the window was maximized immediately after creation. #53063 (Also in 42, 43, 44)chrome.tabs.query()returning taburlandtitleto extensions without thetabspermission or host access, aligning withtabs.get. #53353 (Also in 42, 43, 44)clipboard.read(),readText()andhas()resolving seconds late on Linux while the app was idle. #54307 (Also in 42, 43, 44)setDisplayMediaRequestHandlerwhen the granted frame had been destroyed or another tab was granted by id. #53673 (Also in 42, 43, 44)webRequest.onBeforeRequestlistener redirected a CORS preflight request, and when callingnet.fetch()with awebRequest-permission extension loaded. #53302 (Also in 43, 44)electron-mksnapshot, and theloadBrowserProcessSpecificV8Snapshotfuse) having no effect in the main process on macOS arm64, Linux x64 and Windows x64. #52872 (Also in 42, 43, 44)trueon Windows. #53958 (Also in 43, 44)desktopCapturer.getSources()leaving non-resizable windows resizable on macOS. #54398 (Also in 43, 44)webContents.setDevToolsWebContents(). #52205 (Also in 42, 43, 44)dialog.showOpenDialog/dialog.showSaveDialogopening at an unusable location on Linux whendefaultPathis a bare filename without a directory. #52243 (Also in 42, 43, 44)Dirent.parentPathbeingundefinedforfs.readdir,fs.readdirSync,fs.glob, andfs.globSyncwithwithFileTypes: trueinside asar archives. #51845 (Also in 42, 43, 44)fs.constants.O_DIRECTORY,O_NOFOLLOWandO_DIRECTholding x86 values on Linux arm64 and armv7l, which made opening a directory fail withEINVAL, and maderequire('trace_events')behave the same on cross-compiled builds as on native ones. #53321 (Also in 42, 43, 44)fs.rmSyncfailing to remove read-only files on Windows. #54190 (Also in 42, 43, 44)GDK_BACKENDleaking into processes spawned by Electron apps on Linux. #54424 (Also in 43, 44)globalShortcutnot working on GNOME Wayland by enabling Chromium'sGlobalShortcutsPortalPreferredTriggerfeature by default on Linux. #52221 (Also in 43)child_process.fork()with therunAsNodefuse disabled;fork()now throws in that configuration.Configuration
📅 Schedule: (UTC)
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about these updates again.
This PR was generated by Mend Renovate. View the repository job log.