iToverDose/Yazılım· 7 TEMMUZ 2026 · 20:04

Chrome Bildirimlerini Sesli Okuyan Uzantı Nasıl Geliştirdim ve Manifest V3 Zorlukları

Bir Chrome uzantısıyla tarayıcı bildirimlerini belirlediğiniz anahtar kelimelerle filtreleyerek yalnızca önemlilerinin sesli okunmasını sağladım. Fark ettim ki Manifest V3 mimarisindeki iki kritik kısıtlama, projeyi hayata geçirmeyi zorlaştırıyordu. Detaylar burada.

DEV Community1 dk okuma0 Yorumlar

Geçtiğimiz hafta bir kodlama seansı sırasında kaç kez bildirime baktığımı saydım: 34 kez. Ancak bunların sadece dördü gerçekten dikkatimi gerektiren içeriğe sahipti.

Bu verilerden yola çıkarak, Serious Notification adını verdiğim bir Chrome uzantısı geliştirdim. Uzantı, tarayıcı bildirimlerini yalnızca belirlediğiniz anahtar kelimelerle eşleştiğinde sesli olarak okur. Örneğin "hata" yazdığınızda sadece derleme hatalarını duyarsınız. "acil" olarak ayarladığınızda ise gerçekten önemli olanları yakalarsınız. Diğer tüm bildirimler ise sessiz kalır. Temel fonksiyonelliği sadece bir hafta sonu süren projeyi hayata geçirmek için harcadığım süre kadar basit görünüyordu — ancak Manifest V3 mimarisinin altında yatan iki önemli kısıtlama, geliştirme sürecini beklenmedik bir şekilde karmaşık hale getirdi.

Bildirim API'sini Yakalamak Neden Mümkün Değil?

İlk planım son derece basitti: Chrome bildirimlerini dinleyecek, bunları anahtar kelimelerle karşılaştıracak ve eşleşenleri sesli olarak okuyacaktım. Bunun için bir içerik betiği kullanmak mantıklı görünüyordu. Ancak Chrome'un Notification yapıcısının (constructor) tamamen farklı bir mantıkla çalıştığını fark ettim.

Chrome'da bir web sitesi new Notification("Mesajınız var") şeklinde bildirim oluşturduğunda, bu işlem aslında sayfanın kendi JavaScript bağlamında (window.Notification) gerçekleşir. Manifest V3 altında çalışan standart içerik betikleri ise izole edilmiş bir dünyada (ISOLATED world) çalışır. Bu izole ortam, DOM'u paylaşsa da tamamen ayrı bir JavaScript bağlamına sahiptir. Dolayısıyla içerik betiğiniz DOM'u okuyabilir, ancak sayfanın asıl window.Notification yapıcısına erişemez. Bildirim tetiklendiğinde dinleyebilirsiniz, ancak öncesinde müdahale edemezsiniz.

Ana Dünyada Çalışan Betikler: Çözümün İlk Adımı

Manifest V3, içerik betiklerine "ana dünya" (MAIN world) adı verilen bir seçenek sundu. `

Yapay zeka özeti

Bir Chrome uzantısıyla tarayıcı bildirimlerini belirlediğiniz anahtar kelimelerle filtreleyerek yalnızca önemlilerinin sesli okunmasını sağladım. Fark ettim ki Manifest V3 mimarisindeki iki kritik kısıtlama, projeyi hayata geçirmeyi zorlaştırıyordu. Detaylar burada.

Yorumlar

00
YORUM BIRAK
ID #4TBW5Z

0 / 1200 KARAKTER

İnsan doğrulaması

3 + 2 = ?

Editör onayı sonrası yayına girer

Moderasyon · Spam koruması aktif

Henüz onaylı yorum yok. İlk yorumu sen bırak.