- Eksperimen skala besar dilakukan dengan mengumpulkan dan memasang seluruh 84.000+ ekstensi Firefox menggunakan Add-ons API milik Mozilla
- Melalui scraping, berhasil dikumpulkan 84.235 ekstensi unik, dengan total ukuran 49,3GB, dan dataset dipublikasikan di Hugging Face
- Selama proses pemasangan, ditemukan banyak ekstensi berbahaya seperti phishing, spam, dan PUA (aplikasi yang berpotensi tidak diinginkan)
- Pada akhirnya 84.194 ekstensi berhasil dipasang, tetapi browser praktis tidak bisa digunakan
- Eksperimen ini dinilai sebagai contoh yang secara menyeluruh memperlihatkan skala, kualitas, dan masalah keamanan dalam ekosistem ekstensi Firefox
Eksperimen memasang semua ekstensi Firefox
- Eksperimen skala besar yang mengumpulkan, menganalisis, dan memasang seluruh 84.000+ ekstensi untuk Firefox
- Seluruh daftar ekstensi di-scrape lewat Add-ons API publik Mozilla, lalu benar-benar dipasang
- Dataset dipublikasikan di Hugging Face sehingga dapat diakses siapa saja
- Setelah beberapa kali percobaan, 84.194 ekstensi berhasil dipasang, tetapi browser praktis tidak bisa digunakan
- Eksperimen ini menyingkap skala ekosistem ekstensi, kualitas, ekstensi berbahaya, spam, dan PUA (aplikasi yang berpotensi tidak diinginkan)
Scraping ekstensi Firefox
- addons-server API milik Mozilla dapat diakses tanpa autentikasi, dan daftar ekstensi bisa diambil per halaman lewat endpoint
search
- Dengan pengurutan default (
recommended,users), hanya sekitar 30.000 yang bisa diambil, sehingga digunakan kombinasi opsi pengurutan seperti created, rating, hotness, dan updated untuk mendapatkan ekstensi yang terlewat
- Parameter
exclude_addons dimanfaatkan untuk mengumpulkan tambahan ekstensi setelah halaman 600
- Dengan request paralel per kategori, diperoleh total 84.235 ekstensi unik, ukuran rata-rata 584,9KB, total ukuran 49,3GB
- Dataset akhir diunggah ke Hugging Face dan dibuka untuk publik
- Pada pembaruan 11 April 2026, scraping penuh yang akurat dan efisien diimplementasikan menggunakan filter
created__gte dan created__lte
Analisis ekstensi Firefox
- Ekstensi terbesar adalah dmitlichess (196,3MB), berisi lebih dari 2000 file audio
- 10 ekstensi terbesar umumnya memuat konten besar seperti model AI, aplikasi Unity, dan resource gambar
- Ekstensi terkecil adalah theTabs-saver (7,5KB) tanpa kode
- Ekstensi dengan rating terendah adalah Tab Stack for Firefox
- Ekstensi tertua adalah Web Developer
- Ekstensi dengan screenshot terbanyak adalah RDS Bar (54 gambar)
- Ekstensi dengan permintaan izin terbanyak adalah FalscheLaden (3.695 permintaan izin), diikuti Google Dark Theme (2.675)
- Developer yang menerbitkan ekstensi terbanyak adalah Dr. B (84 ekstensi), sebagian besar menyertakan README tanpa ikon
-
Phishing dan ekstensi berbahaya
- Dalam dataset ditemukan banyak ekstensi phishing dompet kripto
- Contoh: “Іron Wаllеt” mengambil URL dari NocoDB 3 detik setelah dipasang lalu mengarahkan ke halaman phishing
- Beberapa ekstensi meminta seed phrase lalu mengirimkannya ke server
- Setelah dilaporkan, sebagian besar dihapus Mozilla pada hari berikutnya
- Ditemukan juga kasus API key dengan izin tulis, sehingga data sempat dihapus secara langsung
-
Ekstensi spam SEO
- Tautan “Homepage” di halaman ekstensi disalahgunakan sebagai backlink
- Ekstensi hasil generasi AI seperti Typo Sniper dan Tab Fortune Teller mengarah ke situs kasino
- Banyak ekstensi jenis “Code Injector”, dengan struktur kode sama dan domain acak
- Mayoritas dipastikan dibuat pada 2025
-
Ekstensi PUA (aplikasi yang berpotensi tidak diinginkan)
- Ada sekitar 20 ekstensi dengan pola “Custom Web Search”, dengan total lebih dari 700 ribu pengguna
- Semuanya memakai struktur dan domain yang sama, serta mencantumkan “Innover Online Group Ltd”
- Mozilla menonaktifkan sebagian di antaranya (dengan 115.000 pengguna)
- Menggunakan kode afiliasi Yahoo
safeplexsearch, dan ada versi khusus Firefox
- Perusahaan serupa, Atom Apps, juga mendistribusikan ekstensi dengan cara yang sama, total 220 ribu pengguna harian
-
Ringkasan statistik
- 34,3% ekstensi memiliki 0 pengguna harian
- Pengguna 10+: 25,1%, 100+: 10,6%, 1.000+: 3,2%, 10.000+: 0,7%
- 76,7% bersifat open source (berdasarkan lisensi SPDX)
- 23% dibuat setelah artikel ditulis
- Di antaranya, 19% tidak memiliki pengguna, ulasan, ikon, maupun unduhan
- 2,4% adalah ekstensi berbayar, dan 38,1% di antaranya open source
Upaya memasang semua ekstensi
- File
.xpi tiap ekstensi disimpan ke folder profil dengan nama GUID lalu extensions.json dimodifikasi
addonStartup.json.lz4 dihapus dan extensions.json dimanipulasi agar aktif otomatis
-
Percobaan 0: 65.335 (Windows VM)
- Mencoba memasang lewat metode Enterprise Policy tetapi kehabisan memori dan sistem macet
-
Percobaan 1: sekitar 1.000
- Diunduh langsung lalu ditempatkan secara manual, pemasangan berhasil
- Beberapa ekstensi mengubah semua teks menjadi string tertentu
- Banyak ekstensi keamanan menyebabkan pemblokiran domain dan popup peringatan yang sering muncul
-
Percobaan 2: 65.335
- Karena lupa menghapus
addonStartup.json.lz4, yang benar-benar aktif hanya sekitar 1.000
- Saat membuka
about:addons, Firefox freeze dan tidak bisa dijalankan ulang
-
Percobaan 3: 65.335 (Mac)
- Download paralel menurunkan kecepatan, total memakan waktu 6 jam
- Saat Firefox dijalankan, statusnya not responding, ukuran
extensions.json 144MB
- Terjadi penulisan disk lebih dari 400GB
-
Percobaan 4~10: 1.000~6.000
- Hingga 3.000, halaman web masih bisa dimuat
- Mulai 4.000+, semua situs diblokir, dan pada 6.000 hanya
about:addons yang bisa dimuat
-
Percobaan 11: 84.194 (6 bulan kemudian)
- Menggunakan virtual machine (VM) dengan RAM 16~24GB
- Download memakan waktu 1 jam 43 menit, beberapa ekstensi terdeteksi Defender
- Saat Firefox dijalankan,
extensions.json membesar hingga 189MB lalu dipaksa berhenti setelah 39 menit
- Setelah itu dicoba lagi dengan menjalankan
enable.js
-
Hasil Launch 1~3
- Launch 1: menunggu 39 menit tanpa rendering lalu dihentikan
- Launch 2: browser tampil lalu crash dalam 3 menit
- Launch 3: setelah menunggu lama berhasil stabil, dan terkonfirmasi 84.194 ekstensi termuat
Pengujian penggunaan semua ekstensi
-
about:addons
- Halaman pengaturan gagal dimuat, halaman indeks baru termuat penuh setelah 6 jam
- Penggunaan memori bertahan di 27~37 GiB
- Ikon tidak tampil dan respons sangat lambat
-
about:support
- Total 84.205 ekstensi ditampilkan, tetapi termasuk ekstensi bawaan
- Ekstensi eksternal yang benar-benar terpasang dipastikan berjumlah 84.194
-
about:preferences
- Muncul banyak opsi New Tab, terjadi konflik dan crash
-
New Tab
- Hanya Firefox Home yang termuat normal, semua ekstensi lain gagal
-
moz-extension
- Ekstensi buyPal otomatis menggantikan tab dan menjadi satu-satunya yang termuat normal
- Setelah itu Firefox crash lagi
-
example.com
- Bahkan setelah menunggu 24 jam halaman tetap tidak termuat, diduga ada banyak ekstensi pemblokir
-
about:telemetry
- Saat klik Environment Data, langsung crash
Evaluasi kelayakan penggunaan
- Tidak mungkin
- Firefox praktis tidak bisa berfungsi saat 84.000 ekstensi dipasang
Usulan eksplorasi lanjutan
- Menganalisis penyebab
about:addons butuh 6 jam untuk dimuat dan penyebab example.com tidak termuat
- Mencoba eksperimen yang sama di browser lain yang mendukung
.xpi seperti Kagi Orion dan GNOME Web
- Eksperimen memasang semua tema (500 ribu+) atau seluruh user script dan style
- Memasang seluruh ekstensi Chrome Web Store mustahil dilakukan karena skalanya
Ringkasan catatan kaki
- Total 8 ekstensi terlewat saat scraping atau sudah dihapus
- Angka diperbarui pada April 2026 setelah versi awal yang ditulis pada September 2025
- “Foreshadowing” disebut sebagai perangkat pertanda dalam sastra
1 komentar
Komentar Hacker News
Memenangkan penghargaan "Middle Finger Emoji Sticker"
Ia merangkum prosesnya secara singkat dan mengunggahnya ke blog
Tulisan aslinya bisa dilihat di sini
Ini mengingatkan pada perang toolbar Internet Explorer dulu
Saya ingat di setiap warnet selalu ada setidaknya dua toolbar Ask.com, Google, Yahoo, dan belakangan Bing terpasang
Saya menyelidiki kenapa ini butuh waktu selama itu
13 tahun lalu yang dipakai bukan extensions.json melainkan extensions.sqlite
Sekarang strukturnya menserialisasi lalu menulis ulang seluruh file setiap 20ms, jadi masih oke untuk 15 ekstensi, tapi menjadi masalah untuk 84.194 ekstensi
Saya penasaran bagaimana nilai debounce ini ditentukan. Sulit membayangkan ekstensi apa yang menulis extensions.json berkali-kali per detik
Tidak ada satu pun halaman nyata yang terbuka dengan benar, tapi tulisannya sendiri sangat menyenangkan untuk dibaca
Saya tertawa lama di bagian “menyalakan crash reporting”. Dari sudut pandang tim Mozilla, ini pasti seperti cerita horor
Namun saya tidak berhasil menemukan yang diunggah penulis. Bisa dilihat di crash-stats.mozilla.org
Jika profilnya masih tersisa, crash ID bisa dicari lewat panduan ini
Tulisannya benar-benar aneh tapi keren
Saya terutama terkesan karena ia menemukan bug performa di setidaknya satu halaman about:. Ini benar-benar perlu ditindaklanjuti
Daftar ekstensi juga bisa dilihat sebagai sitemap
Firefox Add-ons sitemap,
Chrome Web Store sitemap,
dan Edge sitemap juga bisa dijadikan rujukan
Videonya sangat lucu sampai bikin menangis
Rasanya mungkin seperti ini jika orang lanjut usia yang hampir tidak paham komputer sedang menjelajah web. Semoga ada yang melakukan hal serupa di Chrome
“Message service ini terlalu overengineered untuk kebutuhan kami, tapi brokernya terlalu lambat untuk 84.205 microservices”
Ketegangan tanpa akhir ini terasa sangat familier
Ini mengingatkan pada paket NPM legendaris yang bergantung pada semua paket NPM
Tulisan terkait benar-benar lucu
Saya sangat relate dengan kalimat, “Setelah menginstal hampir semua ekstensi dengan ini, semua hal yang pernah saya lakukan sebelumnya jadi terlihat bodoh”
Saya juga merasakan kehampaan yang serupa