WebKit - WebKit

WebKit
WebKit logosu (2015).svg
Orijinal yazar(lar) KDE
Geliştirici(ler) Apple Inc. , Adobe Systems , Sony , KDE , Igalia ve diğerleri
İlk sürüm 4 Kasım 1998 ; 22 yıl önce (KHTML yayınlandı) 7 Haziran 2005 ; 16 yıl önce (WebKit kaynaklı) ( 1998-11-04 )
 ( 2005-06-07 )
Önizleme sürümü
her gece
Yazılmış C++
İşletim sistemi macOS , Linux , Microsoft Windows
Tip tarayıcı motoru
Lisans LGPLv2.1 (oluşturma motoru, JavaScript motoru), BSD 2-Clause (Apple'dan ek katkılar)
İnternet sitesi web seti .org

WebKit , Apple tarafından geliştirilen ve öncelikle Safari web tarayıcısında ve tüm iOS web tarayıcılarında kullanılan bir tarayıcı motorudur . WebKit ayrıca BlackBerry Tarayıcı , PS3'ten itibaren PlayStation konsolları, Tizen mobil işletim sistemleri ve Amazon Kindle e-kitap okuyucusuna dahil olan bir tarayıcı tarafından da kullanılmaktadır . WebKit'in C++ uygulama programlama arabirimi (API), Web içeriğini pencerelerde görüntülemek için bir dizi sınıf sağlar ve kullanıcı tarafından tıklandığında bağlantıları takip etme, geriye dönük bir listeyi yönetme ve yakın zamanda ziyaret edilen sayfaların geçmişini yönetme gibi tarayıcı özelliklerini uygular.

WebKit'in HTML ve JavaScript motoru olarak başlayan çatal ait KHTML ve KJS gelen kütüphaneler KDE , ve o zamandan beri daha da KDE katılımcıyla tarafından geliştirilmiştir Elma , Google , Nokia , Bitstream , BlackBerry , Sony , Igalia ve diğerleri. WebKit, macOS , Windows , Linux ve diğer çeşitli Unix benzeri işletim sistemlerini destekler . 3 Nisan 2013'te Google, WebKit'in bir bileşeni olan WebCore'u, Google Chrome'un ve Opera web tarayıcısının gelecekteki sürümlerinde kullanılmak üzere Blink adı altında çatalladığını duyurdu .

WebKit, GNU Kısıtlı Genel Kamu Lisansı altında bulunan WebCore ve JavaScriptCore bileşenleri dışında BSD 2-Clause lisansı altında mevcuttur . 7 Mart 2013 itibariyle WebKit, Apple'ın ABD Patent ve Ticari Marka Ofisi'ne kayıtlı ticari markasıdır.

kökenler

WebKit olacak kod, 1998'de KDE HTML ( KHTML ) düzen motoru ve KDE JavaScript ( KJS ) motoru olarak başladı. WebKit proje olarak, 25 Haziran 2001 tarihinde Don Melton tarafından Apple içinde başlanması çatal ait KHTML ve KJS . Melton, KDE geliştiricilerine gönderdiği bir e-postada, KHTML ve KJS'nin küçük (140.000 satırdan az kod ), temiz tasarlanmış ve standartlara uygun olması nedeniyle diğer mevcut teknolojilere göre daha kolay geliştirilmesine izin verdiğini açıkladı . KHTML ve KJS , bir adaptör kitaplığı yardımıyla OS X'e taşındı ve WebCore ve JavaScriptCore olarak yeniden adlandırıldı. JavaScriptCore, Haziran 2002'de, Apple'ın değişikliklerinin ilk sürümüyle birlikte bir KDE posta listesine gönderilen bir e-postayla duyuruldu .

Apple'a göre , KDE'nin KHTML'sinde bulunmayan ve farklı geliştirme taktikleri gerektiren OS X'e özgü özellikler (örneğin, Objective-C , KWQ, OS X çağrıları) bazı değişiklikler içeriyordu .

bölünmüş geliştirme

WebCore ve KHTML arasındaki kod alışverişi, kod tabanı farklılaştıkça giderek zorlaştı, çünkü her iki proje de kodlama ve kod paylaşımında farklı yaklaşımlara sahipti. Bir noktada KHTML geliştiricileri, Apple'ın değişikliklerini kabul etmeyeceklerini söyledi ve iki grup arasındaki ilişkinin "acı bir başarısızlık" olduğunu iddia etti. Apple, değişikliklerini, çoğu zaman gelecekteki eklemelerle ilgili olarak, yetersiz belgelerle çok fazla değişiklik içeren büyük yamalarda sundu. Bu nedenle, bu yamaları KDE geliştiricilerinin KHTML'ye geri entegre etmeleri zordu . Ayrıca Apple, geliştiricilerin Apple'ın kaynak koduna bakmadan önce gizlilik anlaşmaları imzalamalarını talep etmişti ve o zaman bile Apple'ın hata veritabanına erişemediler.

Kamuoyuna "boşanma" dönemde KDE geliştiricisi Kurt Pfeifle ( pipitas ) KHTML geliştiricilerin başarmıştı iddia bir makale yayınlanmıştır backport KHTML için WebCore gelen Safari iyileştirmeler birçok (ama hepsi değil), ve her zaman Apple'dan gelen gelişmeler takdir ve hala yok Bu yüzden. Makale ayrıca Apple'ın karşılıklı ilişkinin nasıl geliştirileceğini ve gelecekteki işbirliğinin yollarını tartışmak için KHTML geliştiricileriyle iletişime geçmeye başladığını da kaydetti. Aslında, KDE projesi, KHTML'nin oluşturma hızını iyileştirmek ve Acid2 oluşturma testiyle uyumluluk dahil olmak üzere özellikler eklemek için bu değişikliklerin bazılarını dahil edebildi .

Çatalın haberlerde ortaya çıkış hikayesinin ardından Apple, WebKit çatalının kaynak kodundaki değişiklikleri halka açık bir revizyon-kontrol deposunda yayınladı .

WebKit ekibi ayrıca orijinal WebKit kod tabanındaki Apple'a özgü birçok değişikliği tersine çevirdi ve çekirdek işleme kodunun diğer platformlara işlenmesini önemli ölçüde kolaylaştırmak için platforma özel soyutlama katmanları uyguladı.

Temmuz 2007'de Ars Technica , KDE ekibinin KHTML'den WebKit'e geçeceğini bildirdi. Bunun yerine, birkaç yıllık entegrasyondan sonra, hem WebKit hem de KHTML desteğiyle KDE Geliştirme Platformu sürüm 4.5.0, Ağustos 2010'da yayınlandı ve KHTML'nin geliştirilmesi devam ediyor.

Açık kaynak kullanımı

7 Haziran 2005'te Safari geliştiricisi Dave Hyatt , web günlüğünde Apple'ın açık kaynaklı WebKit (önceden yalnızca WebCore ve JavaScriptCore açık kaynaktı) olduğunu ve WebKit'in revizyon kontrol ağacına ve sorun izleyiciye erişim sağladığını duyurdu .

Aralık 2005'in ortalarında, Ölçeklenebilir Vektör Grafikleri (SVG) desteği standart yapıyla birleştirildi.

WebKit'in JavaScriptCore ve WebCore bileşenleri GNU Kısıtlı Genel Kamu Lisansı altında bulunurken, WebKit'in geri kalanı BSD 2-Clause lisansı altında mevcuttur.

Daha fazla gelişme

2007'nin başlarından itibaren geliştirme ekibi , animasyon , geçişler ve hem 2B hem de 3B dönüşümler dahil Basamaklı Stil Sayfaları (CSS) uzantılarını uygulamaya başladı ; bu tür uzantılar, standardizasyon için 2009 yılında World Wide Web Consortium'a (W3C) çalışma taslakları olarak yayınlandı .

Kasım 2007'de proje, HTML5 taslak belirtiminin medya özellikleri için destek eklediğini ve gömülü videonun yerel olarak oluşturulmasına ve WebKit'te komut dosyası tarafından kontrol edilmesine izin verdiğini duyurdu .

2 Haziran 2008'de WebKit projesi JavaScriptCore'u bir bayt kodu yorumlayıcısı olan "SquirrelFish" olarak yeniden yazdıklarını duyurdu . Proje, 18 Eylül 2008'de duyurulan SquirrelFish Extreme'e (kısaltılmış SFX) dönüşerek JavaScript'i yerel makine kodunda derleyerek bayt kodu yorumlayıcı ihtiyacını ortadan kaldırarak JavaScript yürütmesini hızlandırdı. Başlangıçta, SFX için desteklenen tek işlemci mimarisi x86 idi , ancak Ocak 2009'un sonunda, SFX, bu platformdaki tüm testleri geçtiği için x86-64'te OS X için etkinleştirildi .

WebKit2

8 Nisan 2010'da, WebKit'i yeniden tasarlamak için WebKit2 adlı bir proje açıklandı. Amacı, "web içeriğinin (JavaScript, HTML, düzen, vb.) Bu soyutlamanın amacı, WebKit2 için WebKit'ten daha basit bir işlemi yeniden kullanmaktır. WebKit2, "orijinal WebKit'ten uyumsuz bir API değişikliğine" sahipti ve bu da isim değişikliğini motive etti.

WebKit2 hedefleri Linux, MacOS, Windows, GTK ve MeeGo -Harmattan olarak belirlendi. OS X için Safari, sürüm 5.1 ile yeni API'ye geçti. iOS için Safari, iOS 8'den beri WebKit2'ye geçti.

Orijinal WebKit API, WebKitLegacy API olarak yeniden adlandırıldı. WebKit2 API, yalnızca düz WebKit API olarak yeniden adlandırıldı.

Kullanmak

WebKit içinde render motoru olarak kullanılan Safari ve eskiden tarafından kullanılmıştır Google 'ın Chrome Windows, MacOS, ve web tarayıcısında Android (sürüm 4.4 KitKat'ta önce). Chrome yalnızca WebCore'u kullandı ve V8 adlı kendi JavaScript motorunu ve çok işlemli bir sistemi içeriyordu . iOS için Chrome, WebKit'i kullanmaya devam ediyor çünkü Apple, o platformdaki web tarayıcılarının bunu yapmasını gerektiriyor. Apple'ın e-posta istemcisi Mail , App Store ve Microsoft'un Entourage kişisel bilgi yöneticisinin 2008 sürümü gibi macOS ve iOS'taki diğer uygulamalar WebKit'i kullanır ve bunların her ikisi de HTML içeriği oluşturmak için WebKit'i kullanır.

kurulu taban

Symbian cep telefonlarındaki S60 tarayıcısı , BlackBerry Tarayıcısı (sürüm 6.0+), Midori , Chrome tarayıcısı, KitKat sürümünden önceki Android Web tarayıcısı ve PlayStation 3 sistem yazılımında kullanılan tarayıcı gibi WebKit çevresinde yeni web tarayıcıları oluşturulmuştur . sürüm 4.10. KDE'nin Rekonq web tarayıcısı ve Plazma Çalışma Alanları da onu yerel web işleme motoru olarak kullanır. WebKit, OmniWeb , iCab ve Web (eski adıyla Epiphany) ve Sleipnir'de oluşturma motoru olarak benimsenerek orijinal oluşturma motorlarının yerini almıştır. GNOME'un Web'i bir süre hem Gecko'yu hem de WebKit'i destekledi , ancak ekip Gecko'nun yayın döngüsünün ve gelecekteki geliştirme planlarının onu desteklemeye devam etmeyi çok hantal hale getireceğine karar verdi. webOS , uygulama çalışma zamanının temeli olarak WebKit'i kullanır. En son arayüz güncellemesi Vana 'ın Buhar onun arayüzü ve tarayıcı yerleşik hale getirmek için WebKit'i kullanır. WebKit, HTML oluşturmak ve JavaScript'i Adobe Integrated Runtime uygulama platformunda çalıştırmak için kullanılır . Gelen Adobe Creative Suite CS5, WebKit kullanıcı arayüzü bazı bölümlerini işlemek için kullanılır. 2010'un ilk yarısı itibariyle bir analist, WebKit tabanlı bir tarayıcıyla gönderilen toplam cep telefonu sayısının 350 milyon olduğunu tahmin etti. 2015 Nisan ortası itibariyle WebKit tarayıcı pazar payı %50,3 idi.

Limanlar

Hyatt'ın WebKit'in açık kaynak kullanımını duyurmasından bir hafta sonra Nokia, WebKit'i Symbian işletim sistemine taşıdığını ve S60 çalıştıran cep telefonları için WebKit tabanlı bir tarayıcı geliştirdiğini duyurdu . S60 için Web Tarayıcısı olarak adlandırıldı , Nokia, Samsung, LG ve diğer Symbian S60 cep telefonlarında kullanıldı. Apple ayrıca WebKit'i iPhone , iPod Touch ve iPad'de çalışması için iOS'a taşıdı ve burada içeriğin cihazın web tarayıcısında ve e-posta yazılımında işlenmesi için kullanıldı. Android cep telefonu platformu kullanılan WebKit (ve sonraki sürümleri onun Blink çatal ) kendi web tarayıcısı temelinde gibi Palm Pre 2009 Ocak duyurulan WebKit dayalı bir arayüze sahiptir. Amazon Kindle 3 deneysel WebKit tabanlı tarayıcısı içerir.


Haziran 2007'de Apple, WebKit'in Safari'nin bir parçası olarak Microsoft Windows'a taşındığını duyurdu . Windows için Safari şirket tarafından sessizce durdurulmuş olsa da, WebKit'in Microsoft'un işletim sistemine bağlantı noktaları hala aktif olarak korunmaktadır. Windows bağlantı noktası, çalışmak için Apple'ın tescilli kitaplıklarını kullanır ve Windows için iCloud ve iTunes için kullanılırken, "WinCairo" bağlantı noktası tamamen açık kaynaklı ve yeniden dağıtılabilir bir bağlantı noktasıdır.

GNOME Web , Linux'ta WebKitGTK kullanan büyük bir web tarayıcısıdır.

WebKit ayrıca Eolie, GNOME Web , Adobe Integrated Runtime , Enlightenment Foundation Libraries (EFL) ve Clutter araç takımı tarafından kullanılan WebKitGTK adı altında Linux için GTK araç takımı gibi birden çok platformu destekleyen çeşitli araç takımlarına da taşınmıştır . Qt Yazılımı , Qt 4.4 sürümünde QtWebKit adlı bir modül olarak bir WebKit bağlantı noktası içeriyordu (o zamandan beri , bunun yerine Blink kullanan Qt WebEngine tarafından değiştirilmiştir ). İris Tarayıcı Qt ayrıca WebKit kullandı. Enlightenment Foundation Libraries (EFL) bağlantı noktası – EWebKit – ( Samsung ve ProFusion tarafından ) yerleşik ve mobil sistemlere odaklanarak bağımsız tarayıcı, widget'lar-gadget'lar, zengin metin görüntüleyici ve oluşturucu olarak kullanım için geliştirildi. Clutter bağlantı noktası, Collabora tarafından geliştirilmiştir ve Robert Bosch GmbH tarafından desteklenmektedir .

Ayrıca, gömülü veya hafif sistemlere taşımayı daha hızlı ve daha kolay hale getirmek amacıyla soyut bir platforma bir meta bağlantı noktası sağlayan Origyn Web Tarayıcı adlı WebKit (Pleyo sponsorluğunda) ile senkronize edilmiş bir proje vardı . Bu port, set üstü kutular , PMP gibi gömülü cihazlar için kullanılır ve AmigaOS , AROS ve MorphOS'a port edilmiştir . MorphOS sürüm 1.7, HTML5 medya etiketlerini destekleyen Origyn Web Tarayıcısının ( OWB) ilk sürümüdür .

Gömülü için Web Platformu

Gömülü Web Platformu (WPE) , yerleşik uygulamalar için tasarlanmış bir WebKit bağlantı noktasıdır; temel işleme işlevsel bloklarını genel amaçlı rutinler kitaplığına (libwpe), platform arka uçlarına ve motorun kendisine (WPE WebKit adı verilir) bölerek mimariyi daha da geliştirir. GTK bağlantı noktası, bağımsız olsa da, dahili platform desteği uygulaması yerine bu temel kitaplıkları kullanmak için oluşturulabilir. WPE bağlantı noktası şu anda Igalia tarafından yönetilmektedir.

Google tarafından çatallanma

3 Nisan 2013'te Google, Blink olarak adlandırılacak WebKit'in WebCore bileşeninin bir çatalını üreteceğini duyurdu . Chrome'un geliştiricileri, yukarı akışta çakışmalara neden olmadan tarayıcıda WebCore'un özelliklerini uygulamada daha fazla özgürlüğe izin vermek ve Chrome tarafından kullanılmayan WebCore bileşenlerinin kodunu kaldırarak kod tabanını basitleştirmeye izin vermek için çatala karar verdi. İlgili olarak Opera Software bu vasıtası ile WebKit geçiş olacağını yılın başlarında duyurusu Krom codebase, bu doğrulandı Opera web tarayıcısı Blink da geçiş olacaktır. Duyurunun ardından WebKit geliştiricileri, kod tabanını kolaylaştırmak için Chrome'a ​​özgü kodu motordan kaldırma konusunda tartışmalara başladı. WebKit'in artık Chrome'a ​​özel herhangi bir kodu yoktur (ör. buildsystem, V8 JavaScript motor kancaları, platform kodu vb.).

Bileşenler

Web Çekirdeği

WebCore, WebKit projesi tarafından geliştirilen HTML ve Ölçeklenebilir Vektör Grafikleri (SVG) için bir düzen, işleme ve Belge Nesne Modeli (DOM) kitaplığıdır . Tam kaynak kodu, GNU Kısıtlı Genel Kamu Lisansı (LGPL) kapsamında lisanslanmıştır . WebKit çerçevesi, WebCore ve JavaScriptCore'u sararak , C++ tabanlı WebCore işleme motoruna ve JavaScriptCore komut dosyası motoruna bir Objective-C uygulama programlama arabirimi sağlayarak, Cocoa API'sine dayalı uygulamalar tarafından kolayca başvurulmasına olanak tanır ; sonraki sürümler ayrıca platformlar arası bir C++ platformu soyutlaması içerir ve çeşitli bağlantı noktaları daha fazla API sağlar.

WebKit, Asit2 ve Asit3 testlerini mükemmel piksel oluşturma ve referans donanımında zamanlama veya düzgünlük sorunları olmadan geçer.

JavaScriptÇekirdek

JavaScriptCore, WebKit uygulamaları için bir JavaScript motoru sağlayan ve bu tür komut dosyalarını macOS içindeki diğer bağlamlarda sağlayan bir çerçevedir. JavaScriptCore, orijinal olarak KDE'nin JavaScript motoru ( KJS ) kitaplığından (KDE projesinin bir parçasıdır) ve PCRE düzenli ifade kitaplığından türetilmiştir . KJS ve PCRE'den çatallandığından beri JavaScriptCore, birçok yeni özellik ve büyük ölçüde iyileştirilmiş performans ile geliştirildi.

2 Haziran 2008'de WebKit projesi JavaScriptCore'u bir bayt kodu yorumlayıcısı olan "SquirrelFish" olarak yeniden yazdıklarını duyurdu . Proje, 18 Eylül 2008'de duyurulan SquirrelFish Extreme'e (kısaltılmış SFX, Nitro olarak pazarlandı) dönüştü ve JavaScript yürütmesini daha da hızlandırdı.

13 Mayıs 2014'te FTL adlı bir optimize tam zamanında (JIT) derleyici duyuruldu. Optimize edilmiş makine kodu oluşturmak için LLVM kullanır . "FTL", "Dördüncü Katman LLVM" anlamına gelir ve gayri resmi olarak ışıktan hızlı anlamına gelir ve hızına atıfta bulunur. 15 Şubat 2016 itibariyle, FTL JIT'in arka ucunun yerini "Bare Bones Backend" (veya kısaca B3) almıştır.

Ayrıca bakınız

Referanslar

Dış bağlantılar