Evet, FireBreath 'da Safari 5.1 ile aynı sorunu yaşadık.
Bununla birlikte); NPN_PluginThreadAsyncCall artık çalışmıyor.
Bulunduğunuz platformu belirtmediniz, bu yüzden hem Mac hem de
Windows'da kullandığımız şeyi göstereceğim.
Pencerelerde bir HWND mesajı oluşturuyoruz ve olay verilerinde
LPARAM olarak bir boşluk * geçiren HWND'ye mesaj gönderiyoruz; void
*, pluginthreadasynccall'ın normalde alacağı, çağrı yapıldığı ve
veri yapısının serbest bırakıldığı paramikleri tutan bir veri
yapısına bir göstericiye geri dönüştürülür. Kullandığımız ileti pencere sınıfı buradadır , ve aramanın yapıldığı yer burasıdır . (IE'de çapraz
iş aramaları için aynı mekanizmayı kullandığımızı unutmayın)
Mac’te temel olarak sadece c-performSelectorOnMainThread
kullanıyoruz; c ++ 'dan kullanımı daha kolay hale getirmek için bir
sınıfa sardık. kullandığımız zamanlayıcı sınıfı buradadır ve
arama yapıldığı yer burasıdır . Dikkatli olmanız
gerektiğine dikkat edin çünkü bunlarla çok fazla olası yarış
koşulları vardır ve bazen tekrar giriş koduyla sonuçlanırsınız.
FireBreath, çapraz iş aramalarının mükemmelleştirilmesi için
düzinelerce saat çalışmaktadır; aldatıcı bir şekilde zor bir
problem.
Umarım bu yardımcı olur!