Baru-baru ini, saya mulai meluangkan waktu dan upaya untuk memahami proyek browser kromium. Tujuan saya adalah untuk akhirnya dapat berkontribusi sebagai pengembang, jadi saya akhirnya mencari cara mendapatkannya dan membangunnya secara lokal. Saya menghadapi beberapa masalah saat menjalankannya dan belum dapat menemukan penjelasan apa pun.
Semoga itu akan membantu orang lain yang berada dalam situasi yang sama. Setelah mencari sedikit di forum, saya tidak menemukan sesuatu yang serupa dan ingin tahu apakah ini adalah sesuatu yang saya lewatkan.
Saya mencoba menjalankan chromium-browser pada Windows 10 Home Edition. Konfigurasi saya saat ini adalah i5-2500k / 8gb DDR3 dan ruang kerja saya berada pada hard drive sampai saya mendapatkan SSD yang lebih besar (Spesifikasi yang disarankan menyarankan 16-32 GB RAM dan SSD untuk memungkinkannya membangun dan menjalankan lebih baik. menjadi bagian dari masalah?).
Build kromium saya saat ini adalah: Versi 54.0.2808.0 (64-bit)
Untuk mengambil dan membangun proyek, saya telah mengikuti instruksi tentang cara mendapatkan kode.
Apa yang saya lakukan adalah:
- Mengekstraksi versi windows dari depot-tools ke dalam ruang kerja saya
- Mengambil repositori dengan
fetch chromium
dangclient runhooks
- Dibangun dengan
cd src
,gn gen out/Default
danninja -C out/Debug
Proses build melakukan tugasnya dan tidak ada kesalahan yang muncul di konsol. Namun, ketika saya meluncurkan browser, saya mendapatkan banyak kesalahan yang tampaknya terkait dengan stacktrace. Kesalahan itu bukan modal dan selama saya tidak menutupnya, chrome terus merespons dan halaman ditampilkan seperti yang diharapkan jadi ini bukan masalah besar untuk saat ini:
Tetapi, jika saya melakukan pemuatan berat (mis.: Memuat umpan berita facebook), sepertinya hang dan tidak merespon dengan baik dari titik ini (mis: memuat tanpa akhir, peristiwa mouse tidak berfungsi di dalam tab). Itu juga dapat direproduksi di bagian saya dengan membuka https://www.google.ca dan mengklik kanan di mana saja di halaman.
Untuk mencoba mempercepat beberapa hal, saya telah menjalankan skrip untuk mengubah nama setiap file pdb sehingga mereka tidak melampirkan ke proses. Ini sangat meningkatkan kecepatan, tetapi masih ada kesalahan. Kesalahan StackTrace menjadi ini:
Adapun masalah menggantung, sekarang akan menampilkan kotak modal kosong yang menunjukkan kesalahan (deskripsi tidak terlalu baik tentang apa itu). Yang ini modal dan sekali ditutup, chrome berhenti bekerja seperti yang dimaksudkan. Apa yang terjadi adalah mouse over events tidak muncul, dan halaman tidak akan pernah selesai memuat ketika memuat ulang.
Saya menyadari bahwa versi terbaru terkadang tidak stabil, tetapi saya berupaya menjadikannya proyek yang menyenangkan untuk dikerjakan. Adakah sesuatu yang saya lakukan salah di sini atau langkah-langkah yang mungkin saya lewatkan? Apakah ada orang di sini yang menemukan masalah yang sama?
Terima kasih banyak, bantuan apa pun sangat dihargai!
Frederik
Pembaruan - 2016/07/28:
Menggali kode itu sendiri, saya menemukan bahwa kesalahan pertama disebabkan oleh ::FreeLibrary (in module_list.cc)
tidak dapat dengan benar membebaskan HMODULE. Maaf karena meletakkan kode di sini, jika ini dapat membantu saya lebih suka membiarkannya di sini.
Investigasi saat ini: buat versi baru yang menggunakan ::UnMapViewOfFile
ketika ::FreeLibrary
gagal untuk melihat apakah itu melewati kesalahan pertama.
Untuk kesalahan kedua, saya masih tidak tahu apa yang sedang terjadi. Pergi untuk melanjutkan penyelidikan, berharap menemukan lebih banyak detail potensial.
Silakan meminta informasi apa pun yang dapat membantu menyelesaikan masalah.
Pembaruan 2 - 2016/07/28:
Saya telah mengajukan pertanyaan yang berbeda, lebih berorientasi pada pemrograman di StackOverflow, jika dapat membantu: Browser Chromium membuat kesalahan fatal di module_list.cc: Periksa Gagal
Pembaruan 3 - 2016/07/29
Saya akhirnya dapat sesuatu !! Apa yang dilakukan adalah mengkonfigurasi build dengan konfigurasi ini di args.gn:
> gn args out/Default
is_debug = false
enable_nacl = false
symbol_level = 0
remove_webcore_debug_symbols = true
Konfigurasi ini tidak layak untuk debugging, tetapi memiliki konfigurasi yang berfungsi adalah langkah besar ke depan. Sangat bahagia sekarang !! Hipotesis saya saat ini adalah bahwa ia harus melakukan sesuatu dengan flag debug. Mungkinkah panggilan fungsi internal mengalami kesulitan mengakses nama modul yang tepat dalam mode debug?
Pembaruan 4 - 2016/08/13
Setelah build debug baru, saya perhatikan bahwa beberapa DLL debugger Kit Windows tidak disalin dalam direktori build. Kali ini, proses penautan gagal api-ms-win-crt-math-l1-1-0.dll
. Saya kemudian menyalin semua dari mereka berharap itu akan menyelesaikan semua masalah. Pada percobaan pertama, kesalahan tidak muncul, tetapi perilaku yang sama terjadi ketika saya melakukan klik kanan pada Google Homepage (mekanisme penelusuran rusak secara diam-diam). Setelah menutup dan membukanya kembali, kesalahan yang sama kembali.
Adakah yang memiliki ide untuk menyelesaikan masalah tersebut atau prosedur yang berbeda dari yang ada di proyek chromium?