Tüm Firefox uzantılarını kurmak
(jack.cab)- Mozilla’nın Add-ons API’si kullanılarak 84.000’den fazla Firefox uzantısının tamamının toplanıp kurulduğu büyük ölçekli bir deney gerçekleştirildi
- Scraping yoluyla 84.235 benzersiz uzantı elde edildi, toplam boyut 49,3 GB, veri kümesi Hugging Face’te yayımlandı
- Kurulum sürecinde oltalama, spam, PUA (potansiyel olarak istenmeyen uygulama) gibi çeşitli kötü amaçlı uzantıların çok sayıda olduğu ortaya çıktı
- Sonuçta 84.194 uzantının kurulması başarıldı ancak tarayıcının pratikte kullanılamaz durumda olduğu görüldü
- Deney, Firefox uzantı ekosisteminin ölçeğini, kalitesini ve güvenlik sorunlarını topluca ortaya koyan bir vaka olarak değerlendiriliyor
Tüm Firefox uzantılarını kurma deneyi
- Firefox için 84.000’den fazla uzantının tamamını toplama, analiz etme ve kurma üzerine büyük ölçekli bir deney
- Mozilla’nın açık Add-ons API’si üzerinden tüm uzantı listesi scrape edildi ve gerçek kurulum da yapıldı
- Veri kümesi Hugging Face üzerinde yayımlandı ve herkesin erişimine açık
- Birkaç denemenin ardından 84.194 uzantı başarıyla kuruldu, ancak tarayıcı pratikte kullanılamaz hale geldi
- Deney sayesinde uzantı ekosisteminin ölçeği, kalitesi, kötü amaçlı uzantılar, spam ve PUA’lar (potansiyel olarak istenmeyen uygulamalar) görünür hale geldi
Firefox uzantılarını scrape etme
- Mozilla’nın addons-server API’si kimlik doğrulama olmadan erişilebiliyor ve
searchuç noktasıyla uzantı listesi sayfa sayfa sorgulanabiliyor - Varsayılan sıralama (
recommended,users) ile yalnızca yaklaşık 30.000 uzantı görülebildiği için, eksik uzantıları bulmak adınacreated,rating,hotness,updatedgibi çeşitli sıralama seçenekleri birlikte kullanıldı exclude_addonsparametresi kullanılarak 600. sayfadan sonraki uzantılar da ek olarak toplandı- Kategori bazında paralel isteklerle toplam 84.235 benzersiz uzantı elde edildi; ortalama boyut 584,9 KB, toplam boyut 49,3 GB
- Nihai veri kümesi Hugging Face’e yüklenerek yayımlandı
- 11 Nisan 2026 güncellemesinde,
created__gtevecreated__ltefiltreleri kullanılarak doğru ve verimli tam scraping gerçekleştirildi
Firefox uzantılarının analizi
- En büyük uzantı dmitlichess (196,3 MB) oldu ve 2000’den fazla ses dosyası içeriyor
- İlk 10 uzantının çoğu AI modelleri, Unity uygulamaları, görsel kaynaklar gibi büyük içerikler barındırıyor
- En küçük uzantı theTabs-saver (7,5 KB) ve kod içermiyor
- En düşük puanlı uzantı Tab Stack for Firefox
- En eski uzantı Web Developer
- En fazla ekran görüntüsüne sahip uzantı RDS Bar (54 adet)
- En çok izin isteyen uzantı FalscheLaden (3.695 izin isteği), ardından Google Dark Theme (2.675 adet)
- En çok uzantı yayımlayan geliştirici Dr. B (84 uzantı); çoğunda README var, simge yok
-
Oltalama ve kötü amaçlı uzantılar
- Veri kümesinde çok sayıda kripto cüzdanı oltalama uzantısı bulundu
- Örnek: “Іron Wаllеt”, kurulumdan 3 saniye sonra NocoDB’den URL alıp oltalama sayfasına yönlendiriyor
- Bazı uzantılar seed ifadesini alıp sunucuya gönderiyor
- Bildirimin ardından ertesi gün Mozilla tarafından çoğu kaldırıldı
- Yazma iznine sahip API anahtarı örnekleri de bulundu ve veri silme işlemi doğrudan yapıldı
- Veri kümesinde çok sayıda kripto cüzdanı oltalama uzantısı bulundu
-
SEO spam uzantıları
- Uzantı sayfasındaki “Homepage” bağlantısı backlink amacıyla kötüye kullanılıyor
- Typo Sniper, Tab Fortune Teller gibi AI ile üretilmiş uzantılar kumarhane sitelerine yönlendiriyor
- “Code Injector” türü çok sayıda uzantı bulunuyor; aynı kod yapısı ve rastgele alan adları kullanılıyor
- Çoğunun 2025’te oluşturulduğu görüldü
-
PUA (potansiyel olarak istenmeyen uygulama) uzantıları
- “Custom Web Search” desenine sahip 20’den fazla uzantı bulundu; toplam kullanıcı sayısı 700 binden fazla
- Hepsi aynı yapı ve alan adlarını kullanıyor, ayrıca “Innover Online Group Ltd” belirtiliyor
- Mozilla bunların bir kısmını (115.000 kullanıcılı olanlar dahil) devre dışı bıraktı
- Yahoo ortaklık kodu
safeplexsearchkullanılıyor ve Firefox’a özel sürüm de mevcut - Benzer şirket Atom Apps de aynı yöntemle uzantı dağıttı; toplam 220 bin günlük kullanıcıya ulaştı
-
İstatistik özeti
- Uzantıların %34,3’ünün günlük kullanıcısı 0
- 10’dan fazla kullanıcıya sahip olanlar: %25,1, 100’den fazla: %10,6, 1.000’den fazla: %3,2, 10.000’den fazla: %0,7
- %76,7 açık kaynaklı (SPDX lisansına göre)
- %23’ü yazı yayımlandıktan sonra oluşturulmuş uzantılar
- Bunların %19’unda kullanıcı, inceleme, simge ve indirme verisi yok
- %2,4 ücretli uzantı, bunların %38,1’i açık kaynaklı
- Uzantıların %34,3’ünün günlük kullanıcısı 0
Tüm uzantıları kurma girişimi
- Her uzantının
.xpidosyası profil klasörüne GUID adıyla kaydedildi veextensions.jsondüzenlendi addonStartup.json.lz4silinipextensions.jsonüzerinde oynanarak otomatik etkinleştirme yapıldı-
Deneme 0: 65.335 adet (Windows VM)
- Enterprise Policy yöntemiyle kurulum denendi ancak bellek yetersizliği ve sistem kilitlenmesi yaşandı
-
Deneme 1: yaklaşık 1.000 adet
- Doğrudan indirip elle yerleştirme yapıldı, kurulum başarılı oldu
- Bazı uzantılar tüm metni belirli bir dizgeyle değiştirdi
- Çok sayıdaki güvenlik uzantısı nedeniyle alan adı engelleme ve uyarı pencereleri sık görüldü
-
Deneme 2: 65.335 adet
addonStartup.json.lz4silinmediği için gerçekte etkinleşen uzantı sayısı yaklaşık 1.000’de kaldıabout:addonsgörüntülenirken Firefox dondu ve yeniden başlatılamadı
-
Deneme 3: 65.335 adet (Mac)
- Paralel indirme sırasında hız düştü, toplam 6 saat sürdü
- Firefox açıldığında yanıt vermedi,
extensions.jsonboyutu 144 MB oldu - Disk yazma miktarı 400 GB’tan fazlaya çıktı
-
Deneme 4~10: 1.000~6.000 adet
- 3.000 adede kadar web sayfaları yüklenebildi
- 4.000’den sonra tüm siteler engellenmeye başladı, 6.000’de yalnızca
about:addonsyüklenebildi
-
Deneme 11: 84.194 adet (6 ay sonra)
- Sanal makine (VM), 16~24 GB RAM ortamında kullanıldı
- İndirme 1 saat 43 dakika sürdü, bazı uzantılar Defender tarafından algılandı
- Firefox açılırken
extensions.json189 MB’a kadar büyüdü ve 39 dakika sonra zorla kapatıldı - Sonrasında
enable.jsçalıştırılarak yeniden denendi -
Launch 1~3 sonuçları
- Launch 1: Görüntüleme olmadan 39 dakika beklendi, sonra durduruldu
- Launch 2: Tarayıcı göründü ama 3 dakika içinde çöktü
- Launch 3: Uzun bekleyişten sonra başarıyla kararlı hale geldi, 84.194 uzantının yüklendiği doğrulandı
Tüm uzantıları kullanma testi
-
about:addons
- Ayar sayfası yüklenemedi, indeks sayfası 6 saat sonra tamamen yüklendi
- Bellek kullanımı 27~37 GiB seviyesinde kaldı
- Simgeler görünmedi, yanıt gecikmesi çok şiddetliydi
-
about:support
- Toplam 84.205 uzantı gösterildi ancak buna yerleşik uzantılar da dahildi
- Gerçekte kurulu harici uzantı sayısının 84.194 olduğu doğrulandı
-
about:preferences
- Çok sayıda New Tab seçeneği göründü, çakışmalar ve çökmeler yaşandı
-
New Tab
- Yalnızca Firefox Home düzgün yüklendi, diğer uzantıların tamamı başarısız oldu
-
moz-extension
- buyPal uzantısı sekmeyi otomatik olarak devraldı ve düzgün yüklenen tek uzantı oldu
- Ardından Firefox yeniden çöktü
-
example.com
- 24 saat beklenmesine rağmen sayfa yüklenmedi, çok sayıda engelleyici uzantı olduğu tahmin ediliyor
-
about:telemetry
- Environment Data’ya tıklanınca anında çökme yaşandı
Kullanılabilirlik değerlendirmesi
- İmkansız
- Firefox, 84.000 uzantı kurulu durumdayken pratikte çalışamaz hale geliyor
Ek inceleme önerileri
about:addons’un 6 saatte yüklenmesinin veexample.com’un hiç açılmamasının nedenlerini analiz etme.xpidestekleyen Kagi Orion, GNOME Web gibi diğer tarayıcılarda deney yapma- 500 binden fazla tema ya da tüm kullanıcı betikleri ve stillerini kurma deneyleri
- Tüm Chrome Web Store uzantılarını kurmak ölçek nedeniyle imkansız
Dipnot özeti
- Toplam 8 uzantı scraping sırasında kaçırıldı veya silindi
- 2025 Eylül’ünde yazılan ilk sürümden sonra sayılar 2026 Nisan’ında güncellendi
- “Foreshadowing”, edebi bir önseme tekniği olarak anılıyor
1 yorum
Hacker News yorumları
"Middle Finger Emoji Sticker" ödülünü almış
Süreci kısaca özetleyip blogunda paylaşmış
Aslına buradan ulaşılabilir
Eski Internet Explorer araç çubuğu savaşlarını hatırlatıyor
İnternet kafelerde Ask.com, Google, Yahoo, sonrasında da Bing araç çubuklarından en az ikisinin kurulu olduğu günleri hatırlıyorum
Bunun neden bu kadar uzun sürdüğünü araştırmış
13 yıl önce extensions.json değil, extensions.sqlite varmış
Şimdi yapı, tüm dosyayı her 20ms'de bir serileştirip yeniden yazıyor; bu 15 eklenti için sorun değil ama 84.194 tane olunca problem oluyor
Bu debounce değerinin nasıl belirlendiğini merak ediyorum. Hangi eklentinin extensions.json dosyasını saniyede birkaç kez yazdığı şüpheli
Gerçekte sayfaların hiçbiri düzgün açılmıyor ama yazının kendisini okumak gerçekten çok eğlenceliydi
“crash reporting'i açtım” kısmında uzun süre güldüm. Mozilla ekibi açısından korku hikayesi gibi olmalı
Yine de yazarın yüklediğini bulamadım. crash-stats.mozilla.org üzerinden görülebilir
Profil hâlâ duruyorsa bu rehber ile crash ID bulunabilir
Yazı gerçekten acayip ama harika
Özellikle about: sayfalarından bir veya birkaçında performans bug'ı bulmuş olması etkileyiciydi. Kesinlikle takip edilmesi gereken bir konu
Eklenti listesi site haritası olarak da görülebiliyor
Firefox Add-ons sitemap,
Chrome Web Store sitemap,
Edge sitemap da incelenebilir
Video o kadar komik ki gözümden yaş geldi
Bilgisayardan pek anlamayan yaşlı birinin internette gezinmesi herhalde böyle bir şeydir. Keşke biri aynısını Chrome için de yapsa
“Bu servis mesh bizim kullanımımız için gereğinden fazla tasarlanmıştı ama broker 84.205 mikroservis için fazla yavaş kalıyor”
Bu bitmeyen gerilim çok tanıdık geliyor
Tüm NPM paketlerine bağımlı olan o efsanevi NPM paketini hatırlattı
İlgili yazı gerçekten çok komik
“Bununla neredeyse tüm eklentileri kurunca, daha önce yaptığım her şey aptalca görünmeye başladı” sözüne çok katılıyorum
Ben de benzer bir boşunalık hissi yaşadım