Google Meet kullanıcıları, görüşmeler sırasında aktif olarak emoji tepkilerini kullanıyor ancak mevcut kullanıcı deneyimi (UX) bu emojileri bulmayı zorlaştırıyor. Bir geliştirici, bu sorunu çözmek amacıyla Google Meet Reactions adlı bir Chrome uzantısı geliştirdi. Bu uzantı, Meet arayüzüne anında arama özelliği ekleyerek kullanıcıların daha önce kullandığı veya meslektaşlarının gönderdiği emojileri hatırlayıp arama sonuçlarında öne çıkarıyor.
Geliştirici, ilk başta DOM manipülasyonu ile emoji düğmelerini bulmayı düşündü ancak Google Meet'in yoğun şekilde gizlenmiş sınıf adları (.b1bzTb gibi) nedeniyle bu yöntemin pratik olmadığını fark etti. Bunun yerine, chrome://webrtc-internals sayfasını inceleyerek "reactions" adında bir RTCDataChannel olduğunu keşfetti. Bu kanal üzerinden emojilerin gönderildiğini belirleyen geliştirici, programatik olarak tepki gönderebilmek için bu kanala erişmeyi ve mesaj formatını çözmeyi hedefledi.
RTCDataChannel'ın RTCPeerConnection.prototype.createDataChannel() metodu aracılığıyla oluşturulduğunu fark eden geliştirici, bu metodu Meet kodu çağırmadan önce yamalayarak "reactions" kanalının referansını yakalamayı başardı. Kod enjeksiyonu için document_start manifest ayarı ve web_accessible_resource olarak tanımlanmış bir betik kullanarak, Meet kanalı oluşturmadan önce kendi kodunun çalışmasını sağladı. Bu sayede, kanal yakalandıktan ve açıldıktan sonra (channel.readyState === 'open'), gelen mesajları dinleyerek ve kendi emojilerini göndererek uzantının temelini attı.
Bu çalışma, kapalı bir platformdaki kullanıcı deneyimi sorunlarını çözmek için WebRTC gibi temel teknolojilerin nasıl tersine mühendislikle kullanılabileceğini gösteriyor.