Bir web tarayıcısı oluşturmaya nasıl başlanır? [kapalı]


89

Sıfırdan bir web tarayıcısı oluşturmak için biraz çaba harcamaya karar verdim. Başlamadan önce bilmem gereken modern web tarayıcılarının ortak işlevleri, mimarileri ve özellikleri nelerdir?

Herhangi bir öneri çok takdir edilmektedir!


9
Evet, bu çılgınca bir proje ama mickey'i buraya almamıza gerek yok - bence bu konuda nasıl hareket edeceğiniz konusunda harika bir tartışma noktası var :)
Ross

8
Bir süre önce, kimsenin artık yeni işleme motorları inşa edecek cesarete sahip olmadığı gerçeğinden şikayet ettiği bir makaleyi hatırlıyorum. Yeni tarayıcılara ihtiyaç var, çünkü bugünün bilgisayarları farklı. Birden çok çekirdek. İlk adım, sekme başına 1 işlem içeren Chrome'dur. Bakalım sırada ne var.
stesch

36
Biraz top büyütün ve istediğinizi yapın. Çalışırsa harika. Değilse, denemeye devam et, yoksa sonunda toplumun diğer yarısı gibi "Yeni bir şey yaratma, sadece sahip olduğumuz bozuk şeyleri kullan" diyeceksin.
uSeRnAmEhAhAhAhAhA

7
Bradley Cooper'ın Limitless'ta aldığı haplardan birine ihtiyacın var . ;)
Ali Gajani

3
Bir şans ver. Bahse girerim, buradaki insanların söylediğinden çok daha kolay, özellikle de birçok mevcut bileşeni bir araya getirirseniz. Bir metni ayrıştırıp, içinde metin bulunan renkli kutulardan çıktı almak ne kadar zor olabilir?
Ian Warburton

Yanıtlar:


131

Onu parçalara ayırın. Web tarayıcısı nedir? Bu ne işe yarıyor? O:

  • Harici içeriği getirir. Bu yüzden bir HTTP kitaplığına ihtiyacınız var veya (önerilmez) bunu kendiniz yazın. HTTP protokolünde çok fazla karmaşıklık / incelik vardır, örneğin sona eren başlıkların işlenmesi, farklı sürümler (bu günlerde çoğunlukla 1.1 olmasına rağmen), vb.
  • Farklı içerik türlerini işler. Bu tür şeyler için sırtlayabileceğiniz bir Windos kayıt defteri var. Burada MIME türüne göre içeriği yorumlamaktan bahsediyorum;
  • HTML ve XML'i ayrıştırır : bir DOM (Belge Nesne Modeli) oluşturmak için;
  • CSS'yi ayrıştırır ve uygular : bu, tüm özelliklerin, tüm ölçü birimlerinin ve değerlerin belirtilebileceği tüm yolların anlaşılmasını gerektirir (örn. "Border: 1px solid black" vs ayrı border-width, vb. Özellikler);
  • W3C görsel modelini uygular (ve bu gerçek tetikleyicidir); ve
  • Javascript motoruna sahiptir .

Ve bu temelde kısaca bir Web tarayıcısıdır. Şimdi bu görevlerden bazıları inanılmaz derecede karmaşık. Kulağa kolay gelenler bile zor olabilir. Harici içerik getirmeyi ele alın. Aşağıdaki gibi kullanım durumlarıyla ilgilenmeniz gerekir:

  • Kaç eşzamanlı bağlantı kullanılacak?
  • Kullanıcıya hata bildirimi;
  • Vekiller;
  • Kullanıcı seçenekleri;
  • vb.

Benim ve diğerlerinin topluca kaşlarımızı kaldırmamızın nedeni, işleme motorunun zor olması (ve birinin de belirttiği gibi, yıllarca onların gelişimine girmiş olmaları). Etrafındaki ana işleme motorları şunlardır:

  • Trident: Microsoft tarafından Internet Explorer için geliştirilmiştir;
  • Gecko: Firefox'ta kullanılır;
  • Webkit: Safari ve Chrome 0-27'de kullanılır;
  • KHTML: KDE masaüstü ortamında kullanılır. Webkit birkaç yıl önce KHTML'den ayrıldı;
  • Elektra: Opera 4-6'da kullanılır;
  • Presto: Opera 7-12'de kullanılır;
  • Blink: Chrome 28+, Opera 15+, webkit forkunda kullanılır;

İlk üç, bugün kullanılan başlıca işleme motorları olarak düşünülmelidir.

Javascript motorları da zordur. Bunlardan belirli oluşturma motoruna bağlı olma eğiliminde olan birkaç tane vardır:

  • SpiderMonkey: Gecko / Firefox'ta kullanılır;
  • TraceMonkey: Firefox 3.1'de SpiderMonkey'in yerini alacak ve JIT (tam zamanında) derlemesini tanıtacak;
  • KJS: Konqueror tarafından kullanılan, KHTML'ye bağlı;
  • JScript: Trident'in Internet Explorer'da kullanılan Javascript motoru;
  • JavascriptCore: Safari tarayıcısı tarafından Webkit'te kullanılır;
  • SquirrelFish: Webkit'te kullanılacak ve TraceMonkey gibi JIT ekleyecektir;
  • V8: Google'ın Chrome ve Opera'da kullanılan Javascript motoru;
  • Opera (12.X ve altı) da kendi başına kullandı.

Ve elbette tüm kullanıcı arayüzü unsurları var: sayfalar arasında gezinme, sayfa geçmişi, geçici dosyaları temizleme, bir URL girme, URL'leri otomatik tamamlama vb.

Bu çok fazla iş.


* Gecko :) Ayrıca katılıyorum. Ana parçalar HTML oluşturucu ve JavaScript motorudur.
abatishchev

1
Opera kendi yarattı. Presto şu anki, Electra ise bir öncekiydi.
Tim Sullivan

Harika, derinlemesine yanıt - JavaScript'in hep birlikte ayrıştırılmasını unuttum!
Ross

1
Yine de dünyanın, tarayıcı oluşturmak için topları olan daha fazla insana ihtiyacı var. Cp eff.org/deeplinks/2016/04/save-firefox .
Pacerier

28

Kulağa gerçekten ilginç bir proje gibi geliyor, ancak muazzam bir çaba harcamanızı gerektirecek.

Bu kolay bir şey değil, ama akademik bir bakış açısından, ondan çok şey öğrenebilirsin .

Kontrol edebileceğiniz bazı kaynaklar:

Ancak gerçekçi bir bakış açısından bakıldığında, onu sıfırdan kodlamak için gereken büyük çaba bana şu çizgi romanı hatırlattı:


(kaynak: geekherocomic.com )

İyi şanslar :-)


Oh GHC devam etti mi? Ross'un sığınağı olayını yapmaya başladıklarında aboneliğimi iptal ettiğimi düşünüyorum.
Ross

@Ross: Evet, hala çizgi romanı veriyorlar, adı Rusya'dan Boris ve o bir "Süper Hacker" LOL
Christian C. Salvadó

17

Çoğu modern web tarayıcısı dev canavarlardır ve muhtemelen oldukça kötü tasarlanmışlardır çünkü onlar (ve web'in kendisi) oldukça gelişigüzel bir şekilde gelişmiştir.

Öncelikle projenizin hedeflerini (ve neyi başarmayı umduğunuzu) çok açık hale getirerek başlamalısınız . Bu sadece eğlence için mi yaptığınız bir şey mi yoksa başkalarının tarayıcınızı kullanmasını mı bekliyorsunuz? Başkalarının onu kullanmasını bekliyorsanız, onlar için teşvik ne olur? Chrome, Safari, Firefox, IE, Opera vb. Yerine herkesin kullanabileceği, sıfırdan yeni bir tarayıcı geliştirmenizi beklemek gerçekçi değildir. Tüm bu projelerin başlangıç ​​tarihi 10-15 yıldır. sen ve onları yakaladığın zaman, onlar senden 10-15 yıl daha ileride olacaklar. Ayrıca arkalarında çok daha fazla insan gücü var ve bu yüzden projenizin başarılı olmasını istiyorsanız, bir noktada o insan gücüne ihtiyacınız olacak.

Pek çok kaynağı olan büyük şirketler olan Apple ve Google'ın sıfırdan başlamamasının nedeni budur. Microsoft bile sıfırdan başlamadı. Orijinal IE, Mosaic'e dayanıyordu. Bugün hala sıfırdan başlatılan önemli tarayıcılar Opera , Konqueror ve Lynx'tir., maalesef hepsinin küçük bir pazar payı var. Şu an için Lynx'i unutalım, çünkü bu bir salt metin tarayıcısı ve muhtemelen hala etrafta olmasının tek nedeni, o belirli nişe hizmet etmesidir. Opera tartışmasız şimdiye kadar yapılmış en iyi tarayıcılardan biridir ve yine de hiçbir zaman büyük bir pazar payına sahip olmamıştır, bu nedenle başarı ve yeniliğin aynı şey olmadığını unutmayın. KHTML, Konqueror'un arkasındaki motordur ve kendisi hiçbir zaman çok başarılı olamamıştır, ancak hem Apple hem de Google'ın kullandığı WebKit'in temelini oluşturur. Bence kesinlikle KHTML yapılmasaydı ne Safari ne de Chrome var olmayacaktı. İlginçtir ki, hem KHTML hem de Opera büyük ölçüde Oslo'da aynı binada çalışan Norveçli programcılar tarafından üretildi.

Bir işletim sistemi oluşturmak gibi bir web tarayıcısı oluşturmaya bakmanız gerekir, çünkü esasen tarayıcı budur - web uygulamalarını çalıştırmak için bir işletim sistemidir. Ve bir işletim sistemi gibi, bir web tarayıcısı, birçok bileşeni olan çok karmaşık bir yazılım parçasıdır. Tabii ki, insanlar sıfırdan yeni işletim sistemleri oluşturmada başarılı oldular. Linus Torvalds akla geliyor. Şimdiye kadarki en başarılı işletim sistemlerinden biri olan Linux'u yaptı.

Elbette, yeni ve başarılı bir tarayıcı oluşturmayı yeni ve başarılı bir işletim sistemi oluşturmaktan daha zor hale getiren ek bir zorlukla karşı karşıyasınız. Tarayıcıların web'de dolaşan tüm eski kodları kusursuz bir şekilde çalıştırması beklenir. Şimdi Linus Torvalds'a, UNIX veya bazı mevcut işletim sistemleriyle mükemmel bir şekilde geriye dönük uyumlu olmadığı sürece yeni işletim sisteminin önemli olmayacağı söylendiğini varsayalım. Rahatsız edeceğinden şüpheliyim ve muhtemelen bugün Linux olmayacaktı. Gerçekçi olarak, elbette, Linux'un popüler olmasının tek nedeni, iyi tasarlanmış olması ve GNU projesinin mevcut büyük miktarda kodu Linux'a taşımak için araçlar yapabilmesiydi. GNU'nun Linux için ideolojik desteği olmasaydı, asla şansı olmazdı.

Dolayısıyla, yeni ve başarılı bir tarayıcı yapmayı deneyecek kadar hırslı (veya çılgın) olduğunuzu varsayarsak, odaklanmanız gereken şey mimari ve tasarımdır . Mevcut tarayıcıların tasarımını bir şekilde iyileştirebileceğinizden emin değilseniz sıfırdan yeni bir tarayıcı oluşturmanın pratik bir nedeni yoktur. Bu, WebKit ve Gecko'nun kodlarına, verdikleri tasarım kararlarını anlayacak kadar aşina olmanız gerektiği anlamına gelir , ancak tasarımlarını kopyalamaya çalışmamalısınız, çünkü aksi takdirde sadece kodlarını kullanabilirsiniz.

Kişisel düşüncelerim (yeterince araştırma yapmadan) günümüz tarayıcılarının yeterince modüler olmadığıdır. Yeni bir tarayıcı yapacak olsaydım, bir şeyleri içeri ve dışarı değiştirmeyi kolaylaştırmanın (bir JavaScript motorunu diğeriyle değiştirmek gibi) ve kullanıcıya şu anda mevcut tarayıcılarda olduğundan çok daha fazla kontrol vermenin bir yolunu bulurdum. . Modern tarayıcılar ve web tasarımcıları neredeyse tüm kontrolü kullanıcıdan almışlardır. Neden kullanıcı olarak web tarayıcısına makinemde görüntülenen içeriği nasıl oluşturmasını istediğimi söyleyemiyorum? Orijinal HTML yalnızca içeriğin nasıl yapılandırılacağına dair yönergeler verdi ve zamanla yeni standartlar, kullanıcının artık web tasarımcısının insafına kaldığı noktaya kadar giderek daha dogmatik hale geldi. Linux'un cazibesi, kullanıcıya kontrolü geri vermesiydi ve '

Yerinde olsam araştırmak için harcayacağım bir diğer şey de işletim sistemi tasarım ilkeleridir. İyi bir tarayıcı tasarlamak, en azından teorik olarak, iyi bir işletim sistemi tasarlamakla aynı ilkeleri gerektirmelidir - özellikle eşzamanlı süreçler, güvenlik modelleri vb. İle ilgili olarak.

Son olarak, pek çok araştırma yaptıktan sonra, kodlamaya başlamanız gereken yer burası sanırım:

  1. Mozaik Yeniden Tasarlaama kendi tasarım fikirlerinizle. Bu aynı zamanda, bunu sadece eğlence için veya kendi eğitim yararınız için yapıyorsanız size önereceğim şeydir. Orijinal HTML 1.0 ve HTML 2.0 spesifikasyonlarının yanı sıra HTTP 1.1 spesifikasyonlarını ve mevcut URI spesifikasyonlarını okuyun ve tarayıcınızın tüm bu spesifikasyonlara uyduğundan emin olun. Elbette, taşıma protokollerini, URI kurallarını, vb. Halihazırda işleyen mevcut yazılımı indirebilirsiniz, ancak kendi tarayıcınızı tasarlama konusunda ciddiyseniz, bunları sıfırdan yapmanın da iyi bir egzersiz olduğunu düşünüyorum. tüm yapboz parçalarının nasıl bir araya geldiğine dair iyi bir fikir. Adım 0'ın sonunda, en azından 90'lardaki en son teknolojiye benzeyen bir tarayıcıya sahip olmalısınız. Bu iyi bir ilk kilometre taşıdır. Orijinal Mozaiği şu adresten indirebilirsiniz:ftp://ftp.ncsa.uiuc.edu/Mosaic/ ve tarayıcınızla karşılaştırıldığında nasıl olduğunu görün. Ayrıca, mevcut web sitelerinin Mosaic gibi eski bir tarayıcıda nasıl görüntülendiğini görmek için iyi bir egzersiz.

  2. Tarayıcınıza DOM için destek ekleyin. Öncelikle W3C DOM Seviye 1 ve Seviye 2'ye odaklanın, çünkü hemen hemen tüm mevcut tarayıcılar bunları tamamen desteklemektedir. Ardından Seviye 3 ve Seviye 4'e bakın. DOM, web programlaması için son derece temeldir ve bu nedenle, gerçekten modern bir web tarayıcısı oluşturacaksanız, tüm tasarımının bunu dikkate alması gerekir. Tarayıcıyı C # ile yazdığınızdan, var olan .NET nesne modelini kendi yararınıza nasıl kullanabileceğinizi düşünmek isteyebilirsiniz.

  3. Mevcut komut dosyası motorlarına bakın ve bunları projenize taşıyıp taşıyamayacağınızı görün. Kendi JavaScript yorumlayıcınızı yazmanız konusunda sizi cesaretlendirmek isterim, bu sadece kendi başına çok büyük bir proje olduğu için değil, aynı zamanda JS derleyicilerini (örneğin V8) optimize etmek için zaten çok fazla çalışma yapıldığı için. Bu nedenle, derleyici tasarımında uzman değilseniz, el yapımı JS yorumlayıcınız, EMCAScript özelliklerini kusursuz bir şekilde takip etse bile, muhtemelen mevcut olanlardan daha düşük olacaktır. Yine, komut dosyası motorunun yine de gerçek tarayıcıdan tamamen ayrı bir modül olması gerektiğini düşünüyorum, bu yüzden bir komut dosyası motoru oluşturmak yerine herhangi bir komut dosyası motorunun yerini almanıza izin veren bir çerçeveye sahip olmanın çok daha yararlı olacağını düşünüyorum. bu yalnızca tarayıcınızla çalışır.

  4. Kuzey Amerika'daki en iyi 10-20 web sitesinin (Google, Facebook, YouTube, Twitter, Wikipedia, Amazon, popüler blog platformları vb.) HTML / CSS / JS kaynak koduna bakın ve tarayıcınızı bu sitelerle iyi çalışması için tasarlayın. . Bu, mevcut tüm standartlara (mevcut tarayıcıların hala mükemmel bir şekilde yapmadığı bir şey) uyan bir tarayıcı yapmaktan çok daha az çözülmesi daha izlenebilir bir problemdir. yap bunu). İnsanlar tarayıcınızın standartları ihlal ettiğinden şikayet edecekler, ancak bu, tarayıcınızla Google veya Facebook'a erişemediklerinden şikayet eden insanlar kadar büyük bir sorun değil. İlk sürümünde tüm standartları (hatta çoğu) doğru bir şekilde uygulayan herhangi bir tarayıcı düşünemiyorum, bu yüzden denemeye bile zahmet etmeyin diyorum.


1
Günümüzde çoğu web tarayıcısı kodu için +1 , 1990'lardan kalma bir sürü eski saçmalıkla korkunç derecede berbat durumda . Google, temelde 8,8 milyon satırlık saçmalık kaldırılmış Webkit'i oluşturarak bunu çözmeye çalıştı, ancak yine de, Blink'te sıkışmış, çıkarılamaz yerleşik pislikler var.
Pacerier

1
... Google bugün bir tarayıcı oluşturmaya başlasaydı, onu kesinlikle sıfırdan inşa edecekti , ancak şimdi Titanik'i döndürmek onlar için çok pahalı çünkü tüm çalışanları zaten Blink'i biliyor. Rakip bir tarayıcı işletim sistemi oluşturmak için derin becerilere sahip ve iyi finanse edilen yeni bir başlangıç, kesinlikle Chrome üzerinde bir avantaja sahip olabilir.
Pacerier

15

Kendi oluşturma motorunuzu yazmaktan mı bahsediyorsunuz?

Sadece iyi şanslar diyebilirim. Birçok insan yıllarca çeşitli tarayıcıların mevcut nesline girmiştir, eğer ikisinden de daha iyisini yapmak istiyorsanız, bazı ciddi becerilere ihtiyacınız olacak. Nereden başlayacağınızı sormanız gerekiyorsa, böyle bir göreve girişmenin mantıklı olması için muhtemelen birkaç yıldan fazla bir eğitiminiz vardır.

Bununla birlikte, işte bazı (bariz) işaretler:

  1. Tüm projecteuler.net sorunlarını çözmek gibi küçük şeyler yapan birçok kod yazın
  2. araç setiniz ve topluluk standartları hakkında öğrenebileceğiniz her şeyi öğrenin
  3. çok daha fazla kod yaz
  4. sonlu durum makinelerini gerçek anlamda sağlam bir şekilde kavrayın
  5. daha fazla kod yaz
  6. tcp / ip yığını ve bunun http için nasıl kullanıldığı hakkında her şeyi öğrenin
  7. http hakkında öğrenebileceğiniz her şeyi öğrenin
  8. standartları öğrenin (html, xml, sgml, css)
  9. 150. yaş gününü kutla.
  10. gerçek tarayıcı projesine başlayın.

aşağıda düzenleyin

Bunun motive edici ya da motivasyon kırıcı olmasını istemedim, sadece size bir tarayıcının gerçekten büyük bir proje olduğunu ve gerçekten büyük projelerin çok fazla düşünmeyi gerektirdiğini gösterme girişimi. Mizah serpilmiş künt dürüstlük.

Hayatımın üçte ikisinden fazlası için programlama yapıyorum ve oldukça iyi bir programcı olduğumu düşünmeyi seviyorum, ancak sıfırdan düzgün bir web tarayıcısı yazmak için yarım şansıma sahip olduğumu düşünmek aptallık olur .

Tabii ki, yapmak istediğiniz buysa, yorumumun yolunuza çıkmasına izin vermeyin. Muhtemelen Internet Explorer'dan daha iyisini yapabilirsiniz.


12
Şunu söylemeliydim: Sıfırdan bir elmalı turta yaratmak istiyorsanız, bir evren yaratarak başlamalısınız.
Kris

@ Mk12: gerçekten, teşekkürler. güncellenmiş.
Kris

1
@Kris Bir evreni yaratacak hiçbir şey yokken nasıl yaratırsınız?
uSeRnAmEhAhAhAhAhA

1
@ user2645707: Bilmem, sadece benden daha zeki birinin papağanını yazıyorum. quotationspage.com/quote/26980.html
Kris

12
"Muhtemelen Internet Explorer'dan daha iyisini yapabilirsiniz" için +1.
Pulah Nandha

14

Bu delice hırslı bir proje (özellikle tek bir geliştirici için) ama bir gün yapmayı çok istediğim bir şey - ondan çok şey öğrenebilirsiniz.

Protokollerin nasıl çalıştığı hakkında (kesinlikle araştırmanız gereken bir şey) veya bir tarayıcıda neler olup bittiğiyle ilgili pek bir şey bilmiyorum, ancak başlamak için harika bir yer, başta Chrome ve olmak üzere açık kaynaklı tarayıcıların kaynağı olacaktır. Firefox. Chrome, yalnızca başlamanızı beklediğim şeyi yaptıkları için bakılması özellikle iyi bir projedir: Chrome ve tarayıcının arka ucu. İlk başta bir işleme motoru oluşturmayı unutun - Webkit veya Gekko kullanın.


8

Herkesin söylediği gibi, bir web tarayıcısı devasa bir projedir. İnsanların beklediği her şeyi düşünmeden önce tcp / ip ve soketler, html oluşturma, css kullanma, DOM modeli oluşturma, javascript yürütme, hatalı biçimlendirilmiş işaretleme ve kodla başa çıkma ve her tür dosyayı işleme konusunda endişelenmeniz gerekir. bir tarayıcı (yani yer imleri, geçmiş, özel tarama, güvenlik vb.) Bu büyük bir proje.

Olduğu söyleniyor, yapılabilir. Benim önerim Firefox'un kaynağına bakmak olacaktır. Sıfırdan bir tarayıcı oluşturmak istediğini söylediğini biliyorum, ancak önce açık kaynaklı bir projeden öğrenmek çok faydalı olacaktır .

Firefox kaynağını indirir ve yavaşça çıkarırdım. Başka bir deyişle, kaynağı alır ve tüm yer imi işlevlerini kaldırırdım . Ardından, eklentileri işleme yeteneğini kaldırırdım. Ardından, dosyaları kaydetmeyle ilgili tüm kodu silerim. Çok basit bir web tarayıcısına sahip olana kadar bu işleme devam edecektim . O koda bakardım.

Sonra kendiminkini inşa etmeye başlarım. Firefox'u parçalara ayırarak edindiğim bilgileri alıp yeni bir tarayıcı oluşturmaya koyardım.

Bir şans sürü size!


Firefox'un nasıl parçalanacağına dair herhangi bir işaretçi sağlayabilir misiniz? Demek istediğim, exeyükledikten sonra çok sayıda dlldosya içeren bir kaynak klasör elde ettiğim bir dosya alıyorum . Bunu yapan gerçek kodu ve bunun arkasında yatan mantığı nasıl inceleyebilirim?
Seksi Hayvan

Bu yorum partiye geç kaldı ama neyse. .Exe ve .DLL dosyaları, bir derleme adımının sonucudur ve bundan pek bir anlam çıkarmasını bekleyemezsiniz. Programı anlamlandırmak için kaynak koduna (bazı C ++ ve farklı dosyalardaki diğer diller) ihtiyacınız olacaktır. Programcıların kendi programlarını anlamaları gerekir, bu nedenle kodun çeşitli işlevsel kısımlarını ayırma ve belgeleme eğilimindedirler.
Roy Prins


4

İyi biçimlendirilmiş ve geçerli XHTML ile başlayabilirsiniz, bu, tarayıcınızın gerçek "hayatta" karşılaşacağı etiket çorbasından daha kolay olmalıdır.

O halde, gerçek HTML'yi web'den ihtiyaçlarınıza göre bükmenin bir yolunu bulmalısınız.

Ancak kendinizi kandırmayın: Tarayıcı küçük bir proje değildir.


3

... sonra güvenlik konusunda endişelenmeye başlayın

(işlevsel olmayan ve çapraz kesme endişeleri genel olarak önceden düşünülmelidir :))


1

çok hırslı bir proje ancak bir geliştirici bunu tek başına yapamaz, bir takıma ihtiyacınız var (proje yöneticisi, testçiler ...) ve belki de dil seçiminizi gözden geçirmelisiniz c # yalnızca pencerelerde çalışır (linux'ta mono biliyorum ama bu değil aynı) yine de size iyi şanslar diliyorum ve tarayıcınızı kullanmaktan mutluluk duyacağım: D


0

Elinde gerçekten çok boş vaktin var, değil mi? AFAIK, çoğu tarayıcı C ++ ile yazılmıştır, tüm kullanıcıların bilgisayarlarında .NET çerçevesi yüklü değildir ve eğer yaparsa, ihtiyacınız olan sürüm olmayabilir.

Bu yıllar sürebilir ama her neyse, orada pek çok açık kaynak tarayıcı var, FireFox, Google Chrome ... vb, koda bir göz atarak başlayabilirsiniz, bunda bol şans :)


1
Chrome açık kaynak değildir; Ancak kaynak kodunun çoğu chromium projesinde bulunabilir
Anonymous
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.