Son zamanlarda, krom tarayıcı projesini anlamak için zaman ve çaba sarf etmeye başladım. Amacım sonunda bir geliştirici olarak katkıda bulunabilmektir, bu yüzden nasıl elde edip yerel olarak inşa edebileceğimi araştırdım. Çalıştırırken bazı sorunlarla karşılaşıyorum ve henüz bir açıklama bulamıyorum.
Umarım aynı durumda olan diğer insanlara yardımcı olacaktır. Forumlara biraz baktıktan sonra, benzer bir şey bulamadım ve bu benim özlediğim bir şey olup olmadığını bilmek istiyorum.
Krom tarayıcıyı Windows 10 Home Edition'da çalıştırmaya çalışıyorum. Mevcut yapılandırmam i5-2500k / 8 gb DDR3 ve çalışma alanım daha büyük bir SSD elde edene kadar bir sabit sürücüde (Önerilen özellikler, daha iyi oluşturulmasına ve çalışmasına izin vermek için 16-32 GB RAM ve SSD olduğunu gösteriyor.) sorunun bir parçası olmak?).
Mevcut krom derlemem: Sürüm 54.0.2808.0 (64-bit)
Projeyi almak ve inşa etmek için, kodun nasıl alınacağına ilişkin talimatları takip ettim.
Yaptığım şey:
- Depo araçlarının Windows versiyonunu çalışma alanıma aldım
- İle depoları getirilen
fetch chromium
vegclient runhooks
- İle oluşturulmuş
cd src
,gn gen out/Default
veninja -C out/Debug
Derleme işlemi işini yapar ve konsolda hiçbir hata görünmüyor. Ancak, tarayıcıyı başlattığımda, yığma iziyle ilgili gibi görünen birden fazla hata alıyorum. Bu hatalar kalıcı değildir ve hiçbirini kapatmadığım sürece, krom yanıt vermeye devam eder ve sayfalar beklendiği gibi gösterilir, bu yüzden şu an için önemli değil:
Ancak, eğer ağır bir yükleme yaparsam (örneğin: facebook haber beslemesini yüklerken), bu noktadan asılıyor ve çok iyi yanıt vermiyor gibi görünüyor (örneğin: sonsuz yükleme, sekme içinde çalışmayan fare olayları). Ayrıca, https://www.google.com.tr adresine giderek ve sayfanın herhangi bir yerine sağ tıklayarak da benim tarafımdan kopyalanabilir .
İşleri biraz hızlandırmayı denemek için her pdb dosyasını yeniden adlandırmak üzere bir komut dosyası çalıştırdım, böylece işleme eklenmezler. Bu, hızı oldukça artırıyor, ancak hala hatalar var. StackTrace hataları şöyle olur:
Asılma konusuna gelince, şimdi bir hataya işaret eden boş bir modal kutusu gösterecektir (açıklama ne olduğu hakkında çok nazik değildir). Bu modal ve bir kez kapandığında, krom amaçlanan gibi çalışmayı durdurur. Olan şey, farelerin üzerinden geçen olaylar görünmüyor ve sayfa yeniden yüklenirken hiçbir zaman yüklenmeyecek.
En son sürümün bazen dengesiz olabileceğinin farkındayım, ancak üzerinde çalışmayı zevkli bir proje haline getirmek için çalışıyorum. Burada yanlış yaptığım bir şey var mı yoksa kaçırmış olabileceğim adımlar var mı? Burada benzer problemleri çözen insanlar var mı?
Çok teşekkürler, herhangi bir yardım büyük beğeni topluyor!
Frederik
Güncelleme - 2016/07/28:
Kodun içine bakarken, ilk hatanın, ::FreeLibrary (in module_list.cc)
HMODULE'ı doğru şekilde serbest bırakamamaktan kaynaklandığını gördüm . Buraya kod koyduğum için üzgünüm, bu yardımcı olabilirse, buraya izin vermeyi tercih ederim.
Güncel soruşturma: on çare yeni bir sürümünü kurmak ::UnMapViewOfFile
zaman ::FreeLibrary
ilk hatalar ulaşırsa görmek için başarısız olur.
İkinci hata için, neler olup bittiği hakkında hala hiçbir fikrim yok. Daha fazla potansiyel ayrıntı bulmayı umarak soruşturmaya devam edecek.
Lütfen sorunların çözülmesine yardımcı olabilecek herhangi bir bilgi sormaktan çekinmeyin.
Güncelleme 2 - 2016/07/28:
Yığın olabilirse, StackOverflow hakkında farklı, daha programlama odaklı bir soru sordum: Chromium tarayıcısı module_list.cc dosyasında önemli hatalar oluşturuyor: Kontrol Başarısız Oldu
Güncelleme 3 - 2016/07/29
Sonunda çalışan bir şey var! Bu, args.gn dosyasındaki bu yapılandırmalarla derlemeyi yapılandırmak:
> gn args out/Default
is_debug = false
enable_nacl = false
symbol_level = 0
remove_webcore_debug_symbols = true
Bu yapılandırma hata ayıklama için uygun değildir, ancak çalışan bir yapılandırmaya sahip olmak ileriye yönelik büyük bir adımdır. Şimdi süper mutlu !! Mevcut hipotezim, hata ayıklama bayrağıyla bir şeyler yapması gerektiği yönünde olurdu. Dahili işlev çağrıları hata ayıklama modunda doğru modül adlarına erişmekte sorun yaşıyor olabilir mi?
Güncelleme 4 - 2016/08/13
Yeni bir hata ayıklama derlemesinden sonra, birkaç Windows Kit hata ayıklayıcısının DLL dosyasının derleme dizinine kopyalanmadığını fark ettim. Bu sefer, bağlantı işlemi başarısız oldu api-ms-win-crt-math-l1-1-0.dll
. Daha sonra tüm sorunları çözeceğini umarak hepsini kopyaladım. İlk çalıştırmada hatalar görünmüyordu, ancak aynı davranış Google Ana Sayfasını sağ tıklattığımda da gerçekleşti (tarama mekaniği sessizce kırıldı). Kapattıktan ve yeniden açtıktan sonra aynı hatalar geri döndü.
Bu sorunları çözmek için bir fikir olarak herkes veya herhangi bir farklı prosedürler, sonra krom projesinde olanlar?