flash etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
flash etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

6.02.2013

Firefox'ta Flash içeriğini eklentisiz engelleme

Ziyaret ettiğim sayfaların kenarında köşesinde yer alan Flash içeriğinin sesli ve görüntülü olarak hemen harekete geçmesinden hiç hoşlanmıyorum. Bunu bir süredir Firefox'un NoScript eklentisi ile yapıyordum. Ama Firefox'un 14 sürümünden beri bu işi çok basit bir şekilde yapılabileceğini bugüne kadar ben de bilmiyordum.

Yeni açılan bir sekmeye about:config yazıp
plugins.click_to_play
değerini true yapmak yeterli. Bu işlemden sonra ziyaret edilen sayfadaki bir eklentinin etkinleştirilmesi için aşağıdaki gibi bir izin mesajı görüntülenecek.


3.02.2012

Flash'ın yeni sürümlerindeki güncelleme düzeni

Bazen FlashPlayer'ın güncellenme penceresi çıkar karşıma. Çok dikkat etmem, muhtemelen bilgisayarı yeni başlattığımda görünür.


Ama o pencere nasıl açılır, günlük mü, haftalık mı, aylık mı, bilmiyorum. Bir gün yine açıldığında bekletip Process Explorer'ı açtım. Bir penceredan ilgili prosesi bulan butona basarak bunu Flash'ın update penceresinin üzerine sürükledim.


Nihayetinde Flash Update'in prosesi ortaya çıktı: %systemroot%\system32\Macromed\Flash klasörünün altındaki FlashUtil11c_Plugin.exe dosyası. Process Explorer'da bu prosesi çift tıklayarak komut satırından nasıl başlatıldığını görmek istedim. Nihayetinde aşağıdaki pencerede görüleceği gibi -update plugin argümanlarıyla çağrıldığını gördüm.


Peki bu proses durup dururken nasıl oluyor da çalışıyor? Muhtemelen registry'de bir giriş vardır diye düşünüp registry'yi aradım, ama hiçbir ilgili giriş bulamadım. Bu garip işte. Biraz uğraşmam gerekecek.

Avı için pusuya yatan avcı misali, uzun bir gözlem sürecine girdim. Bu sefer de Process Monitor'ü açtım. Sadece registry olaylarını takip etmek istiyorum. Bu sebeple önce araç çubuğundaki sadece registry butonunun basılı kalmasını sağladım.


Daha sonra Ctrl+L'ye basarak yakalanacak olayların arasından sadece registry yolunda flash geçen olayları süzmek amacıyla aşağıdaki girişi yapıp "Add" butonuna bastım.


Bir de Filter menüsünden "Drop Filtered Events"i işaretledim, çünkü uzun süre Process Monitor'ü açık tutmak milyonlarca gereksiz olayı yakalayacak, ve bunlar da sanal bellekte depolanacağından (eğer File menüsünden Backing Files ile bunu değiştirmediysek) bir süre sonra yetersiz sanal bellek hataları ile karşılaşacağız.


Bu işi birkaç gün tekrarladım. Sonunda oltama birşey takıldı. FlashUtil11c_Plugin.exe'in çalışmasını sağlayan [HKCU\Software\Microsoft\Windows\CurrentVersion\RunOnce\] anahtarının altındaki FlashPlayerUpdate girişiymiş.


 Bu giriş,yukarıda bahsettiğim gibi daha önce yoktu. Buraya bunu kim yazıyor? Bunu bulmak için yukarıdaki süreci bir daha, fakat bu sefer filtre olarak yine path'e flash yerine runonce yazarak tekrarladım. Aynı şekilde "Drop Filtered Events" seçili olmalı.

Bu da birkaç gün sürdü. Sonunda katlili buldum: plugin-container.exe!



plugin-container.exe, firefox'un. Plugin'lerinin firefox.exe prosesinden bağımsız olarak çalışması için geliştirilmiş bir yöntem. Bu sayede Flash gibi plugin'lerde bir sorun olduğunda sadece plugin sonlanıyor, asıl sekme veya firefox prosesine birşey olmuyor. Eskiden böyle olmuyordu, flash sebebiyle bütün firefox çöküyordu, herkes sebebinin firefox olduğunu düşünüyor, "firefox çok çöküyor" şeklinde bir yanılgı oluşuyordu.

Flash'ın güncellenme işini bir browser bileşenine bırakması garip gibi görünse de aslında olay şöyle oluyor; sistemdeki flash sürümü her tarayıcı için farklı olabiliyor. Örneğin benim sistemimdeki durum şöyle (Denetim Masasındaki flash appleti)

Buradaki ActiveX sürümü Internet Explorer'ın kullandığı Flash'ın sürümü, Plug-in sürümü ise Firefox'un kullandığı Flash sürümü. Çıkan sonuç şudur ki, Flash sadece kullandığınız tarayıcı için, ve kullandığınız sürece güncelleniyor. Firefox kullanıyorsanız bu iş bu şekilde. Internet Explorer'ımın sürümünün eski olmasının sebebi de onu daha seyrek kullanıyor olmam. Google Chrom ise kim bilir bu işi nasıl yapıyor.

31.12.2010

Sonunda 64 bit Flash çıktı

Flash Square. 64 bit flash'ın deneme sürümünün kod adı. Henüz deneme aşamasında, ama olması bile birşey! Uzuun süredir çıkması beklenen, ama -muhtemelen- sırf 64 bit sürümü olmadığı için 64 bit işletim sistemlerinin 32 bit tarayıcıları varsayılan olarak seçmesine sebep olan Flash.

Bir süredir sadece Linux için 64 bit Flash mümkündü. Ama şimdi Windows ve Mac için de var. 64 bit Flash Player'ı çıkarmak neden bu kadar uzun sürdü çok merak ediyorum. Gerçekten çok uzun sürdü.Ve hala deneme aşamasında. Nihai sürümün çıkması biraz daha zaman alacak.

64 bit Windows ile hem 32 bit hem de 64 bit Internet Explorer geliyor, aşağıdaki resimde görüldüğü gibi.


Eğer Firefox yüklemek isterseniz o da 32 bit geliyor. Windows için henüz kararlı nihai sürüm 64 bit Firefox yok. Aşağıdaki resimde 64 bit Windows 7 üzerine kurulmuş bir Firefox'un 32 bit olduğu görülüyor.


Dolayısıyla 64 bit Windows bile kullanıyor olsanız, Firefox'un gördüğü  Flash plugin'iniz 32 bit olacak.Bunu Firefox adres satırına about:plugins yazarak da görebilirsiniz.



Yukarıdaki resimde Shockwave Flash plugin'inin kullandığı NPSWF32.dll dosyasının isminden 32 bit olduğu belli. Dolayısıyla Firefox'un gördüğü Flash Player da 32 bit. Version satırındaki 64 sayısı sizi yanıltmasın; o başka.

Şu adresten 64 bit IE için 64 bit Flash Player'i indirelim ve olacakları görelim. Aşağıdaki resimde de 64 bit Windows 7 üzerinde, 64 bit IE8'de çalışan Flash Player'in görüntüsü var. Görev Yöneticisi'nde iexplore.exe'nin yanında *32 olmadığı için 64 bit olduğu açık. Ayrıca FlashUtil64_10_3_162_ActiveX.exe'nin yanında da *32 olmadığından bu eklentinin çalışan proses'i de 64 bit. Ayrıca IE'nin Araçlar>Internet Seçenekleri>Programlar>Eklentileri Yönet>Araç Çubukları ve Uzantılar'da görünen Flash'ın Shockwave Flash Object'in ek bilgilerinde %systemroot%\System32\Macromed\flash klasöründeki Flash64_10_3_162.ocx dosyasının da 64 bit olduğu gözüküyor (sadece dosya adında geçen 64 ibaresinden).


Peki bundan nasıl emin olabiliriz? Visual Studio ile gelen dumpbin adında bir komut satırı aracı var. Bu iş için dumpbin önerilmiş. Üşenmedim, Windows 7 üzerine Visual Studio 2010 Express'i kurdum, Visual Studio Command Prompt'u çalıştırdım (cmd.exe ile olmuyor). Burada aşağıdaki sonuçları elde ettim:


Burada machine (x64) yazan dosyalar 64 bit mimariye göre derlenmiş dosyalar. machine (x86) yazanlarsa 32 bit mimariye göre derlenmiş olanlar. Dumpbin'in çıktısı çok ayrıntılı olduğu için findstr ile filtrelenmiş. Bu filtreyi kaldırınca ayrıca adreslenebilir bellek alanının da 64 bit dosyalar için 2 GB'ın üzerinde olduğuna dair bir ibare de çıkıyor ki bu da beklenen birşey. Unutmadan söyleyeyim, 64 bit Windows üzerinde Program Files klasörü sadece 64 bit uygulamalar için. Geriye dönük uyumluluk açısından 32 bit uygulamalar Program Files (x86) klasörüne kuruluyor. Ayrıca Windows klasörünün altındaki system32 klasörü, her ne kadar adında 32 geçse de artık 64 bit sistem dosyaları için. 32 bit sistem dosysalarının konumu SysWOW64.

64 bit Windows kullanırken 32 bit Firefox'a mı muhtacız? Henüz Firefox'un kararlı bir 64 bit sürümü yok demiştim. Ama deneme sürümlerini denemek isterseniz şu adresten indirebilirsiniz. Hemen onu da indirip kurdum ki Flash Square'i 64 bit Firefox üzerinde deneyebileyim. Firefox'un 64 bit sürümünün adı Firefox değil,  Namoraka. Görünüş aynı, hatta exe dosyası bile firefox.exe. Sadece proje adını değiştirmişler, kararlı ve deneme sürümleri karışmasın diye. İşte aşağıda 64 bit Windows 7 üzerine kurulmuş 64 bit Firefox (yani Namoraka) içinde çalışan 64 bit Flash Square plugin'i gözüküyor.


Burada görülen NPSWF64_10_3_162.dll dosyası isminden 64 bit olduğu çağrışımını yapıyor. Peki gerçekten öyle mi diye bakmak için %systemroot%\system32\Macromed\Flash klasörünün altında bulunan bu dosyanın başlıklarını dumpbin ile inceleyelim:


Aklıma gelmişken, bir uygulamanın 32 bit mi yoksa 64 bit mi olduğunu linux'ta bulmak için file komutunu kullanabiliyormuşuz. Bu komutu  bir dosyayı göstererek, ya da çalışan bir prosesin ID'sini vererek de kullanabiliyoruz. Örneğin, Ubuntu 10.10 x64 üzerinde çalışan Firefox'un gerçekten 64 bit olduğunu görmek için şunlaır yaptım:

$ file /usr/lib/firefox-3.6.10/firefox-bin
/usr/lib/firefox-3.6.10/firefox-bin: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.15, stripped

yada proses ID'sini vererek:

$ file -L /proc/1515/exe
/proc/1515/exe: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.15, stripped

Firefox'un adres satırına about:plugins yazdığımda Flash Player ile ilgili dosyanın npwrapper.libflashplayer.so olduğunu gördüm. Bu dosyayı arattığımda /var/lib/flashplugin-installer/ ve /usr/share/ubufox/plugins/ klasörlerinin altında rastladım. Fakat ikincisi bozuk bir sembolik linkti. Aslen /usr/lib/flashplugin-installer/npwrapper-libflashplayer.so'ya işaret ediyor olsa da böyle bir dosya yoktu. Onun yerine libflashplayer.so adlı bir dosya buldum. file komutu ile bunları incelediğimde ise

$ file /var/lib/flashplugin-installer/npwrapper.libflashplayer.so
/var/lib/flashplugin-installer/npwrapper.libflashplayer.so: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, stripped


ve

$ file /usr/lib/flashplugin-installer/libflashplayer.so
/usr/lib/flashplugin-installer/libflashplayer.so: ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), dynamically linked, stripped

sonuçlarını aldım. İkinci dosya libflashplayer.so 32 bit. Ancak bu, bozuk bir sembolik bir link. Yani Firefox bu dosyayı görmüyor (aslında npwrapper.libflashplayer.so dosyasının bir kopyası buraya konarak sembolik link onarılabilir). Dolayısıyla çalışan Flash'ın 64 bit olduğu sonucuna varabiliriz.

Bunu da bulduktan sonra söyleyeceğim birşeyin kalmadığını farkettim.

4.04.2009

Linux için 64-bit Flash Player kurulumu

64 bitlik sistemlere geçişi geciktiren eski yazılımların uyumsuzluğu, sürücü eksikliği vs gibi sebeplerdi. Bu uyumsuzlukların başında da Adobe Flash Player sayılabilir. Ama bir mucize oldu ve Adobe, yıllardır başta Linux kullanıcıları olmak üzere tüm 64 bit işletim sistemi kullanların taleplerini görmezden gelmeyi bırakarak 64 bitlik Flash playerden söz etmeye başladı. Aslında 64 bitlik Flash player şu anda sadece linux kullanıcılar için yayınlanan bir deneme sürümünden ibaret. Otomatik bir kurulum şimdilik yok. İşte kurulum adımları:

1. Öncelikle Firefox'u kapatın ve sisteminizde başka bir Flash Player olmadığından emin olun. Bunun için şu adımları uygulayabilirsiniz:

sudo rm -f /usr/lib/mozilla/plugins/*flash*
sudo rm -f ~/.mozilla/plugins/*flash*
sudo rm -f /usr/lib/firefox/plugins/*flash*
sudo rm -f /usr/lib/firefox-addons/plugins/*flash*
sudo rm -rfd /usr/lib/nspluginwrapper
sudo apt-get remove -y --purge flashplugin-nonfree gnash gnash-common mozilla-plugin-gnash swfdec-mozilla libflashsupport nspluginwrapper


2. Daha sonra şu adresten Flash Player'ı indirin:


http://download.macromedia.com/pub/labs/flashplayer10/libflashplayer-10.0.22.87.linux-x86_64.so.tar.gz
Bu yazıyı yazarken en son Flash sürümü 10.0.22.87'ydi. En son sürümü Adobe'un sayfasından öğrenip 10.0.22.87'nin yerine yazabilirsiniz.

3. Daha sonra indirdiğiniz zip'li dosyanın içindeki .so uzantılı dosyayı

/usr/lib/mozilla/plugins/
adresine kopyalayın. Şu komutları kullanabilirsiniz:

tar zxvf libflashplayer-10.0.22.87.linux-x86_64.so.tar.gz
sudo cp libflashplayer.so /usr/lib/mozilla/plugins/

4. Daha sonra bu bileşene ihtiyaç duyacak tüm yazılımların Flash'ı bulabilmesi için gerken kısayolları yaratalım:

sudo ln -sf /usr/lib/mozilla/plugins/libflashplayer.so /usr/lib/firefox-addons/plugins/
sudo ln -sf /usr/lib/mozilla/plugins/libflashplayer.so  /usr/lib/xulrunner-addons/plugins/

5. Son olarak indirdiğiniz zip dosyasını ve 3. adımda çıkardığınız .so dosyasının kullanılmayan kopyasını silin.

sudo rm -rf libflashplayer.so
sudo rm -rf libflashplayer-10.0.22.87.linux-x86_64.so.tar.gz

Bu adımdan sonra Firefox'u çalıştırıp Flash'ın doğru bir şekilde yüklenip yüklenmediğini deneyebilirsiniz. Eğer tüm bu işlemleri otomatikleştiren bir script isterseniz myscienceisbetter.info sitesi Ubuntu'ya kurulujm için bu linkte bir script vermiş.

Daha basit bir yöntem şöyle anlatılmış:

  1. http://labs.adobe.com/downloads/flashplayer10.html adresinden en yeni flash'ı indirin. (güncelleme: direk adres : http://download.macromedia.com/pub/labs/flashplayer10/flashplayer_square_p2_64bit_linux_092710.tar.gz)
  2. Profilinizin altında .mozilla klasörünün altında plugins klasörünü açın (bu klasör yoksa oluşturun) ve indirdiğiniz zip dosyasının içindeki libflashplayer.so dosyasını bu klasöre kopyalayın.

Bu yöntemi kullanmak için sisteminizde daha önceden kurulmuş bir flash player olmadığından emin olmanız gerek. Ayrıca bu yöntemle her kullanıcı için libflashplayer.so dosyasını ilgili klasöre kopyalamanız gerek. Ayrıca bu yöntem flash'a ihtiyaç duyacak tek uygulamanın Firefox olduğunu varsayıyor.