WebKit

S Vikipedije, slobodne enciklopedije
WebKit
Programer(i)Apple, Adobe i drugi
Repozitorijum Uredi na Vikipodacima
TipPogon veb-pregledača
LicencaLGPLv2.1
Veb-sajtwebkit.org

WebKit je pogon veb-pregledača koji je razvio Apple za svoj veb-pregledač Safari.

WebKit takođe čini osnovu za eksperimentalni pregledač koji se nalazi u Amazon-ovom čitaču elektronskih knjiga Kindle, kao i osnovni pregledač u Apple-ovom iOS-u, BlackBerry pregledaču u OS6 i novijim verzijama, kao i mobilnim operativnim sistemima Titen. WebKit-ov C++ interfejs za programiranje aplikacija obezbeđuje skup klasa za prikaz veb-sadržaja u prozoru i implementira osobine kao što su otvaranje linkova prilikom klika korisnika, te upravljanje nazad-napred listama i istorijom nedavno posećenih stranica.

WebKit-ov HTML i JavaScript kôd su originalno bili fork KHTML-a i KJS biblioteka iz KDE i danas su dalje razvijeni od strane pojedinaca iz KDE, Apple-a, Google-a, Noki-je, Bitstream, BlackBerry, Igalia i drugih. Projekat je podržao OS X, Windows, Linux i ostalih operativnih sistema nalik Unix-u. Dana 3. aprila 2013. Google je objavio da je iskoristio fork WebCore, komponente WebKit-a i da će ubuduće biti korišćen u budućim verzijama pregledača Google Chrome i {Opera}- pod imenom Blink.

Poreklo[uredi | uredi izvor]

Kôd koji je postao WebKit je započet 1998. godine kao KDE-ov HTML pogona veb-pregledača KHTML i KDE-ov pogon JavaScript-a (KJS). Melton je u svom mejlu programerima KDE-a objasnio da KGNU i KJS dozvoljavaju lakši razvoj od drugih dostupnih tehnologija zbog svoje male veličine (manje od 140 000 linija koda), jasno dizajniranih i standards-compliant. KHTML i KJS su portovani u OS X pomoću adapterske biblioteke i preimenovani u WebCore i JavaScriptCore. JavaScriptCore je najavljen u mejlu KDE biltenu juna 2002. uporedo s prvim izdanjem Apple-ovih izmena. WebCore je na MacWorld Expo-u u januaru 2003. najavio generalni direktor Apple-a Stiv Džobs prilikom izdavanja veb pregledača Safari. JavaScriptCore je prvi put uključen u Mac OS X 10.2 kao privatno okruženje za rad koji je Apple koristio u svojoj aplikaciji Sherlock, dok je WebCore debitovao sa prvom beta verzijom pregledača Safari. Mac OS X 10.3 je bio prvo veće izdanje Apple-ovog operativnog sistema spojen sa WebKit-om, iako je pre toga bio spojen sa manjim izdanjem 10.2.

Prema Apple]-u, neke promene uključuju osobine specifične za OS X (npr. objektivni C, KWQ, OS X pozive) koji su odsutni u KDE-ovom KHTML-u koji je tražio druge programerske taktike.

Podeljeni razvoj[uredi | uredi izvor]

Razmena kodova između WebCore-a i KHTML-a je bila sve teža kako se baza koda menjala jer su oba projekta imala drugačije pristupe kodiranju i deljenju koda. U jednom trenutku KHTML developeri su rekli da najverovatnije nece da prihvate Eplove promene i tvrdili da je saradnja između ove dve grupe velik promašaj. Epl je predao njihove izmene u velikim pečvima koji su sadržali veliki broj izmena sa neadekvatnom dokmentacijom, što će postati uobičajeno u budućim dodacima. Iako su ovi pečevi bili teški KDE developerima za integraciju u KHTML. Dalje, Epl je tražio da developeri potpišu "neobjavljujući" ugovor pre gledanja Eplovih izvornih kodova i čak tada nisu mogli da pristupe Eplovoj bazi bagova.

Tokom zvaničnog perioda "razvoda" KDE developer Kurt Fajfl je objavio članak u kom je tvrdio da su KHTML developeri uspeli da bekportuju mnoga ali ne i sve Safari poboljšanja iz WebCore-a u KHTML, i da su uvek cenili poboljšanja koja su dolazila iz Epla i da je tako i dan danas. Članak je takođe tvrdio da je Epl počeo da kontaktira KHTML developere zbog diskusije o poboljšanju njihove sadašnje i buduće saradnje. Zapravo, projekat je mogao da uključi neke od ovih promena da poboljša KHTML-ovu brzinu renderovanja i doda neke osobine, uključujući saglasnost sa Ecid2 testom za renderovanje.

Otkako se priča o forku pojavila u vestima, Epl je izbacio promene u izvorni kodu WebKit u skladištu javne revizione kontrole. Od prebacivanja izvornog koda u javno CVS skladište, Epl i KHTML developeri su povećali saradnju. Mnogi KHTML developeri su postali recententi i podnosioci za WebKitovo skladište revizione kontrole.

WebKitov tim je takođe preokrenuo mnoge Eplove promene u originalnoj WebKit kodnoj bazi i implementira apstrakcione slojeve za specifičnu platformu kako bi izvršavanje koda za renderovanje drugih platforma bilo značajno lakše.

U julu 2007. Ars Tehnika je prijavio da će KDE-ov tim preći sa KHTML-a na WebKit. Umesto toga, nakon nekoliko godina integracije, KDE razvojna platforma verzija 4.5.0.je izdata u avgustu 2010 sa podrškom i WebKita i KHTML-a i razvoj KHTML-a je nastavljen.

Otvoren kod[uredi | uredi izvor]

Dana 7. juna 2005. Safari developer Dejv Hajat je objavio na svom blogu da će Epl dostaviti otvoren kod WebKita (pre toga su samo WebCore i JavaSkript Kor bili otvorenog koda) i ostvariti pristup WebKitovom drvetu revizione kontrike i tragaču problema. Ovo je objavio Eplov stariji potpredsednik softverskog inženjerstva, Bertrand Serlet, na Eplovoj Svetskoj Konferenciji Developera 2005.

Sredinom decembra 2005, podrška za Prilagodljivu vektorsku grafiku je bio uključen u standardnu građu i već početkom januara 2006 izvorni kod je premešten sa CVS na Subveržn(SVN).

Komponente WebKitovih JavaSkript Kora i WebCore-a su dostupne pod GNU nižom generalnom javnom licencom, dok je ostatak WebKita dostupan pod BSD-stajl licencom.

Dalji razvoj[uredi | uredi izvor]

Počevši od rane 2007. godine, razvojni tim počinje da implementira CSS ekstenzije, uključujući i animacije, prelaze i 2D i 3D transformacije; takve ekstenzije su objavljene kao radni nacrti u 2009. koji treba da budu standardizovani od strane W3C-a.

U novembru 2007. projekat je objavio da je uspešno uradio podršku za medijske osobine HTML5 nacrtne specifikacije, što dozvoljava da ugrađeni video bude renderovan i Skript-kontrolisan u WebKit-u.

Drugog juna 2008. godine WebKit projekat je objavio da su prepisali JavaScriptCore kao „SquirrelFish” bajt kod interpretator. Projekat je evoluirao u SquirrelFish Extreme (SFX), objavljen 18. septembra 2008, koji kompilira JavaScript u izvorni mašinski kod, na taj način eliminišući potrebu za bajtkod interpretatorom i ubrzavajući izvršavanje JavaScript-a. U početku, jedina podržana arhitektura za SFX je bila x86 arhitektura, ali na kraju januara 2009. SFIks je omogućen za OS Iks na x86-64 arhitekturi, pošto je prolazio sve testova na toj platformi.

WebKit 2[uredi | uredi izvor]

Projekat redizajniranja WebKit-a je najavljen 8. aprila 2010 pod nazivom WebKit 2. Cilj WebKit-a 2 su apstrakcija komponenti koja omogućavaju veb renderovanje iz njihovog okružujućeg interfejsa ili šela aplikacije, stvarajući situaciju gde „veb sadržaj(JavaSkript,HTML, raspoređivač itd) živi u odvojenom procesu od procesa korisničkog interfejsa aplikacij. Ova apstrakcija je nameravala da WebKit 2 preuzme malo direktniji pristup procesima nego WebKit. WebKit 2 ima „nekompatabilnu API promenu u odnosu na originalni WebKit što je motivisalo promenu u imenu.

WebKit 2 je namenjen Mac-u, Windows-u, {GTK+-u i MeeGo-Harmatanu. Safari za OS X je prešao na novi API sa verzijom 5.1. Safari za iOS je prešao na WebKit 2 od verzije 8.

Upotreba[uredi | uredi izvor]

Udeo upotrebe veb pregledača prema Stat Kaunteru

WebKit se koristi kao rendering endžin ununtar Safari-a i prethodno je bio korišćen od strane Gugl Hroma na Windows-u, OS Iks-u, iOS-u i androidu(Hrom je koristio samo VebKor, a takođe je implementirao svoj sopstveni Java endžin i multi procesni sistem). Druge aplikacije na OS Iks takođe koriste WebKit, kao na primer eplov e-mejl klijent Mejl i 2008 verzija Majkrosoft pratećeg menadžera, gde obe koriste WebKit za renderovanje e-mejl poruka sa HTML sadržajem.

Instalirana osnova[uredi | uredi izvor]

Novi veb-pregledači su napravljeni na osnovu WebKit-a kao na primer S60 pregledač na Simbijan telefonima, BlekBeri pregledač (od verzije 6.0), Midori, Hrom pregledač, Android pregledač i pregledač korišćena na PlayStation 3 sistemskom softveru od verzije 4.1.0. KDE-ov Rekonk i Plazma Vorkspejs ga takođe koriste kao primarni veb rendering endžin. WebKit je prihvaćen i kao rendering endžin za OmniVeb, iKeb i Veb(ranije poznat kao Epifani) i Slipnir, zamenjujući njihove prethodne endžine. Gnom-ov Veb je jedno vreme podržavao i WebKit i Geko, ali je tim odlučio da je zbog Gekovog ciklusa izdavanja i plana razvoja previše problematično nastavljanje podrške. VebOS koristi WebKit kao osnovu svog aplikacionog rantajma. Najnoviji interfejs Valvovog Stim-a koristi WebKit za renderovanje svog interfejsa i ugrađenog pregledača. WebKit se koristi za renderovanje HTML-a i pokretanje JavaSkripta u Adobovoj integrisanoj rantajm platformi za aplikacije. U Adobe Kriejtiv Suit-u CS5, WebKit se koristi za renderovanje nekih delova korisničkog interfejsa. U prvoj polovini 2010. Godine analitičari su procenili da je ukupun broj mobilnih uređaja sa pregledacima zasnovanim na WebKitu oko 350 miliona, Do sredine Aprila 2015. Godine WebKit je zauzimao 50,3% tržišta što je više nego svih 5 velikih brauzer endžina zajedno.

Portovi[uredi | uredi izvor]

Nedelju dana nakon Hjatove izjave o prebacivanju WebKita pod Open-sors, Nokia je najavila da je portovala WebKit na Simbian operativni sistem i da razvija pregledač zasnovan na njemu za mobilne telefone koje pokreću S60. Veb pregledač za S60 korišćen je na Nokia, Samsong, LG i drugim Simbian S60 telefonima. Epl je takođe portovao WebKit na iOS, gde je korišćen za renderovanje sadržaja u okviru veb pregledača i e-mejl softvera na ajfon, ajped i ajpod tač uređajima. Android platforma je koristila WebKit (kasnije i njegov fork Blink) kao osnovu za svoj veb-pregledač, a Palm Pri je najavio 2009. da je konstruisao interfej baziran na WebKit-u. Amazon Kindle 3 sadrži ekspirimentalni pregledač baziran na WebKit-u.

U junu 2007, Epl je najavio da je WebKit portovan na Windows kao deo Safari-a. WebKit je takođe portovan na nekoliko Tul-kitova koji podržavaju različite platforme, kao što su GTK+ tul-kit, Kjuti okruženje za rad, Adob inegreted rantajm, Enlajtment Fondejšn Lajbreris(EFL), i Kluter tulkit. Kjuti softver sadrži Kjuti port u 4.4 izdanju. Kjuti port WebKita je takođe dostupan za upotrebu u Konkveroru od verzije 4.1. Iris pregledač na Kjutiju takođe koristi WebKit. EFL port je pod razvojem(od strane Samusnga i ProFjužna) sa ciljem upotrebe za stand-alon pregledače, gedžete, vidžete, rič tekst pregledače. Kluter port razvijaju Kolabora a sponzoriše Boš.

Postoji projekat povezan sa WebKitom pod nazivom Oridžin Veb Pregledač, koji omogućava meta-portovanje na apstraktnoj platformi sa ciljem olakšavanja portovanja. Ovakav port se koristi na set-top boksevima, PMP i portovan je na AmigaOS, AROS i MorfOS. MorfOS 1.7 je prvi imao Origin koji je podržavao HTML5 media tagove.

Fork[uredi | uredi izvor]

Aprila 3, 2013. Gugl je najavio da će proizvesti fork WebKitove VebKor komponente pod nzivom Blink. Hrome developeri su odlučili da forkuju WebKit kako bi omogućili veću slobodu u implementaciji VebKor osobina u pregledaču bez izazivanja konflikata, a takođe bi i omogućio pojednostavljivanje koda koji nije potreban Hromu. U vezi sa izjavom Opera veb pregledača da će se do kraja godine prebaciti na WebKit Kromium bazu, takođe je bilo potvrđeno da će se Opera takođe prebaciti na Blink. Prateći ovu izjavu, WebKit developeri su započeli diskusiju o uklanjanju koda specifičnog za Hrom iz endžina kako bi ga učinili generalno udobnijim za korišćenje.

Komponente[uredi | uredi izvor]

WebCore[uredi | uredi izvor]

WebCore je pogon veb-pregledača i DOM biblioteka za HTML i SVG razvijen u okviru projekta WebKit. Njegov kompletan izvorni kod je licenciran pod GNU nižom generalnom javnom licencom (LGPL). WebKitovo okruženje za rad sastavlja VebKor i JavaSkriptKor, omogućavajući Obdžektiv C programski interfejs C++ baziranom VebKor-ovom rendering endžinu i JavaSkriptKor-ovom skript endžinu, dozvoljavajući im da budu lako referencirani od strane aplikacija baziranim na Kokoa API; kasnije verzije takođe sadrže i višeplatformsku C++ apstrakciju.

WebKit je prošao Acid 2 i Acid 3 testove sa savršenim piksel renderingom i bez problema sa tajmingom ili smutnesom na referisanom hardveru.

JavaScriptCore[uredi | uredi izvor]

JavaScriptCore je okruženje za rad koji omogućava pogon JavaScript-a WebKit implementacijama, a omogućava vrste skriptovanja u nekim drugim kontekstima unutar OS Iks-a. JavaScriptCore je originalno izveden iz KDE-ovog pogona JavaScript-a (KJS) biblioteke i PCRE regularne eksprešn biblioteke. Od forkovanja iz KJS i PCRE, JavaSkriptKor je unapređivan sa mnogim novim opcijama i velikim poboljšanjem u preformansama.

WebKit projekat je 2. juna 2008. izjavio da je prepisao JavaScriptCore kao „SkvirelFiš“, bitkod interpretator. Projekat je prerastao u SkvirelFiš ikstrim, najavljen 18. septembra 2008 koji kompajluje JavaSkript u mašinski kod, i time je eliminisao potrebu za JavaScript interpretatorom.

Optimizacija JIT kompajlera nazvana FTL je najavljena 13. maja 2014. Ona koristi LLVM za generisanje optimizovanog mašinskog koda.

Reference[uredi | uredi izvor]

Spoljašnje veze[uredi | uredi izvor]