Yönetici Özeti ve Mimari Önem
Electron v45.0.0, çapraz platform masaüstü uygulama geliştirmede devasa bir temel sıçramayı işaret ediyor ve çerçeveyi son teknoloji web ve çalışma zamanı yığınlarıyla hizalıyor. Özünde bu sürüm; Chromium 156.0.8078.48, Node.js v24.22.0 ve V8 15.6'yı sunarak en son web platformu API'lerini, güvenlik yamalarını ve performans optimizasyonlarını doğrudan masaüstü çalışma zamanlarına enjekte ediyor. Bu yukarı akış (upstream) motorlarıyla senkronize olarak Electron geliştiricileri; platformu tanımlayan derin yerel entegrasyon yeteneklerinden ödün vermeden modern JavaScript özelliklerine, geliştirilmiş CSS kapsülleme modellerine ve sağlam ağ primitiflerine anında erişim kazanır.
Mimari açıdan bakıldığında sürüm 45.0.0, süreç topolojilerini, güvenlik çevrelerini ve platform sınırlarını yeniden değerlendiriyor. En dikkat çekeni, Electron sürdürücülerinin resmi olarak 32 bit yapıları (Windows ia32 ve Linux armv7l) kullanımdan kaldırıp kaldırmış olması ve ekosistemi tamamen 64 bit (x64 ve arm64) mimarilere taşımasıdır. Bu stratejik değişim, bakım yükünü azaltır, modern CPU hatları için bellek düzenlerini optimize eder ve kurumsal masaüstü uygulamalarının yalnızca güvenli, yüksek performanslı temeller üzerine kurulmasını sağlar. Dahası, korumalı alanlı (sandboxed) ön yükleme (preload) betiklerindeki kapsamlı yeniden düzenleme, başlatma gecikmesini ve bellek ayak izini önemli ölçüde azaltarak performans ve güvenliğin eş zamanlı olarak ölçeklenebileceğini kanıtlıyor.
Temel İyileştirmeler ve Geliştirici Ergonomisi
Geliştirici ergonomisi, v45.0.0'da hedeflenen API genişletmeleri ve yerel UI iyileştirmeleri sayesinde büyük bir ivme kazanıyor. macOS'te geliştiriciler artık doğrudan menü etiketlerinin yanında yerel sayı veya özel metin rozetleri oluşturmak için MenuItem üzerindeki badge özelliğinden (macOS 14+ üzerinde desteklenir) yararlanabilirler. Ek olarak, yerel entegrasyon app.configureWebAuthn() aracılığıyla genişleyerek macOS üzerinde kesintisiz iCloud Keychain parola anahtarı (passkey) desteği sağlar. Etkinleştirildiğinde, navigator.credentials.create() ve .get() gibi standart kimlik bilgisi API'leri, ASAuthorizationController aracılığıyla Apple'ın yerel parola anahtarı yetkilendirme kullanıcı arayüzünü anında tetikleyerek web uygulamaları ile platform yerel kimlik iş akışları arasındaki boşluğu doldurur.
Performans gözlemlenebilirliği ve hata ayıklama da yeni kilometre taşlarına ulaşıyor. ELECTRON_DEBUG_DRAGGABLE_REGIONS ortam değişkeninin sunulması, geliştiricilerin paketlenmemiş uygulamalar içindeki sürüklenebilir pencere bölgelerini görselleştirmesine ve günlüğe kaydetmesine olanak tanıyarak özel pencere başlık çubuğu geliştirme ile ilişkili geleneksel zorlukları doğrudan hafifletir. Arka uçta bellek profilleme, contentTracing içine bir Perfetto yığın profilleme veri kaynağı entegre edilerek modern bir paradigma geçişi yapar. Ana süreçten yalıtılmış kare (frame) yazdırma için webFrameMain.printToPDF() ve Prompt API entegrasyonu için UtilityProcess içindeki deneysel localAIHandler modülü gibi yeni eklemelerle birlikte Electron v45.0.0, mühendislik ekiplerine sofistike, yapay zekaya hazır ve derinlemesine gözlemlenebilir masaüstü uygulamaları oluşturma yeteneği kazandırıyor.
Mimari Karşılaştırma Matrisi
| Alt Sistem / Metrik | Önceki Temel Çizgi (Eski) | Electron v45.0.0 | Mimari Etki |
|---|---|---|---|
| Temel Chromium | Chromium 152–154 Dönemi | Chromium 156.0.8078.48 |
Modern web API'lerine, CSS özelliklerine ve kritik güvenlik yamalarına erişim. |
| Çalışma Zamanı Motoru (Node) | Node v22.x / erken v24 | Node.js v24.22.0 |
Gelişmiş modül yükleme, akış (stream) performansı ve V8 15.6 yetenekleri. |
| Korumalı Alan Başlatma Gecikmesi | Değerlendirilen varsayılan JS paketleri + genel modüller | Temiz ön yüklemelerden çıkarılmış ağır geneller/modüller | Önemli ölçüde daha hızlı oluşturucu (renderer) ve ön yükleme betiği başlatma. |
| Desteklenen Platformlar | 32 bit ve 64 bit mimariler | Yalnızca 64 bit (x64, arm64) |
Eski yapı yükünü ortadan kaldırır; modern donanım ortamlarını zorunlu kılar. |
| Depolama ve Güvenlik API'leri | Senkron safeStorage (OSCrypt) |
Asenkron geçiş yolu | Uygulamaları yakında kaldırılacak olan yerel kriptografik arka uçlara hazırlar. |
Kritik Değişiklikler ve Geçiş Uyarıları
Electron v45.0.0, geçiş sırasında dikkatli bir denetim gerektiren birkaç kritik breaking change (kritik değişiklik) sunar. En dikkat çekeni, korumalı alanlı oluşturucu başlatmasının, korumalı alanlı ön yükleme betiklerinden events, timers ve url modüllerinin yanı sıra Buffer, setImmediate ve clearImmediate genel nesnelerinin kaldırılmasıyla optimize edilmiş olmasıdır. Korumalı alanlı ön yüklemelerde bu genellere güvenen uygulamaların açıkça polifil (polyfill) paketlemesi gerekir. Ek olarak, ASAR arşivi içindeki dosya sistemi modülü davranışı değişti: fs.open ve ilişkili yöntemler artık geçici dosya kopyaları oluşturmadan doğrudan arşivden okuyan tanımlayıcılar (descriptor) döndürür. Ham bir dosya tanımlayıcısı bekleyen kod (yerel eklentiler veya child_process stdio gibi) EBADF ile başarısız olur ve ASAR dosyalarına yazma işlemleri artık EACCES hatası fırlatır.
Güvenlik ve izin sınırları da sıkılaştırıldı. Ekran, pencere ve sekme yakalama istekleri artık media yerine display-capture olarak setPermissionRequestHandler'a yönlendirilir. İzin işleyicileri açıkça media'ya izin veren geliştiricilerin, ekran paylaşımı gerilemelerini (regression) önlemek için mantıklarını display-capture'ı içerecek şekilde güncellemesi gerekir. Dahası, senkron safeStorage yöntemleri, Electron 46'da tamamen kaldırılmadan önce resmi olarak kullanım dışı bırakılmıştır ve uygulamaların asenkron alternatiflere geçiş yapmasını gerektirir. Son olarak, pencere oluşturma güvenliğinin sertleştirilmesi, eşleşmeyen korumalı alan durumlarına sahip window.open() alt öğelerinin, setWindowOpenHandler aracılığıyla açıkça geçersiz kılınmadığı sürece açıcı (opener) tutamaçları olmadan yalıtılmış süreçlerde yürütülmesini zorunlu kılar.
Adım Adım Yükseltme Kılavuzu
Electron v45.0.0'a yükseltme, değiştirilen API'leri ve mimari kaldırmaları hesaba katmak için yapılandırılmış bağımlılık güncellemeleri ve kod tabanı yeniden düzenlemesi gerektirir.
Bağımlılıkları ve Node/Chromium Hedeflerini Güncelleyin
package.jsondosyanızı Electron v45.0.0'ı hedefleyecek şekilde değiştirin ve 32 bit yapılar artık yayınlanmadığından, derleme hattınızın yalnızca 64 bit mimarileri hedeflediğini doğrulayın:{ "devDependencies": { "electron": "^45.0.0" } }Eksik Geneller İçin Korumalı Alanlı Ön Yükleme Betiklerini Denetleyin Korumalı alanlı ön yükleme betikleriniz
Bufferveyatimersgibi Node.js genellerine bağımlıysa, hafif polifiller ekleyin veya yürütme mantığını değiştirin:// preload.js (Korumalı Alanlı) // Polifil eklenmediği sürece Buffer veya require('timers') için doğrudan referansları kaldırın const { contextBridge } = require('electron'); // Açığa çıkan API'ler için güvenli context bridging kullanın contextBridge.exposeInMainWorld('myAPI', { secureMethod: () => { /* uygulama */ } });Senkron SafeStorage'ı Asenkron Eşdeğerlerine Taşıyın Electron 46'ya hazırlanmak için bloklayıcı kriptografik çağrıları asenkron karşılıklarıyla değiştirin:
// Önce: const decrypted = safeStorage.decryptString(encrypted); // Sonra: async function getDecryptedData(encryptedBuffer) { const decrypted = await safeStorage.decryptStringAsync(encryptedBuffer); return decrypted; }
