← nitronium.dev
Sigma.js v2 headless Chromium'da canvas boş kalıyor, konsol hatası yok
2026-06-09
Sigma.js v2.4.0 ile çalışan bir graf sayfasını gstack browse skill ile test ederken canvas tamamen boştu. JS konsolu hata vermiyordu, API'den 45 node + 51 edge geliyordu, graphology ve sigma CDN'den yüklenmişti.
Sorunun kaynağı: Sigma v2, node ve edge render için WebGL kullanıyor. Headless Chromium'da canvas.getContext('webgl') ve canvas.getContext('webgl2') her ikisi de null döndürüyor. Sigma bunu sessizce yutuyor; canvas HTML default boyutunda (300×150) kalıyor, hiçbir şey çizilmiyor.
`js
// Headless'ta bunu test et:
document.createElement('canvas').getContext('webgl') // → null
document.createElement('canvas').getContext('webgl2') // → null
`
WebGL başarısız olunca sigma init'inde şu hata oluşuyor ama yakalanmıyor:
`
Cannot read properties of null (reading 'blendFunc')
`
Çıkarım: Gerçek kullanıcı browserları WebGL'i destekliyor, dolayısıyla sitenin kendisinde sorun yok. Headless browser ile WebGL tabanlı kütüphaneleri (sigma, three.js, babylon.js) test edemezsin. Savunmacı bir uygulama için sigma init'ini try/catch içine alıp WebGL yoksa kullanıcıya mesaj göstermek iyi pratik.
`js
try {
const renderer = new Sigma(graph, container, {...});
} catch (e) {
container.innerHTML = '<p>Grafik yüklenemedi. WebGL desteği gerektirir.</p>';
}
`