Användare med M1 Max-modeller av MacBook Pro rapporterar kraftig fördröjning i macOS 26 när appar som bygger på Electron körs öppna i förgrunden. Problemet märks även när CPU- och GPU-användningen är låg.
Flera användare beskriver hur systemet börjar hacka vid fönsterförflyttningar och rullning när till exempel Discord eller Visual Studio Code är öppna. Fördröjningen försvinner när apparna minimeras.
Eget API
Utvecklaren Avarayr har efter omfattande testning identifierat en möjlig orsak till felet. Enligt hans analys uppstår problemet när macOS WindowServer försöker hantera skuggor i fönster där Electron manipulerar interna funktioner i AppKit. Electron har använt ett privat API, kallat _cornerMask, för att skapa egna hörnmasker i gränssnitt med genomskinliga effekter.
Detta API anropas av WindowServer för att beräkna fönsterskuggor. Avarayr misstänker att Apple använder en form av referensbaserad cachehantering för dessa skuggor, och att Electrons ändringar bryter cachen. Systemet tvingas då att ständigt räkna om och rita om skuggorna, vilket orsakar fördröjning och ryckig grafik.
Felbeteende
Även en minimal överskrivning av metoden, som inte gör något annat än att kalla på super, utlöser enligt Avarayr samma felbeteende. Problemen uppstår alltså oavsett om appen gör några visuella förändringar, vilket tyder på att själva överkörningen av den privata funktionen stör WindowServers optimeringar.
Nu finns det ett script som du kan köra för att identifiera appar – Electron-appar som ännu inte har uppdaterats.
Här finns en lista över Electron-appar som har – och som inte har uppdaterats.
Electron
Electron-appar är datorprogram som bygger på ramverket Electron, utvecklat av GitHub. Det låter utvecklare skapa skrivbordsappar med webbteknik som HTML, CSS och JavaScript, i stället för att använda systemets inbyggda språk och gränssnitt.
När du kör en Electron-app startar den i praktiken en inbyggd webbläsare (Chromium) tillsammans med en Node.js-miljö. Det gör att samma kod kan användas för appar på macOS, Windows och Linux utan att skrivas om.
Kända exempel på appar som använder Electron är Discord, Slack, Visual Studio Code, Spotify och Figma. Fördelen är att utvecklingen går snabbt och att apparna fungerar likadant på alla plattformar. Nackdelen är att de ofta använder mer minne och processorkraft än appar som byggts med systemets egna ramverk, vilket ibland kan leda till problem med prestanda eller energiförbrukning.
Läs mer
Discord, Slack och Figma uppdateras – Electron-bugg åtgärdad i macOS Tahoe