Webkit fejlesztő, savepearlharbor
Sokunk számára a fejlesztők, WebKit - egy fekete doboz. Azt dobd HTML, CSS, JS, és egy csomó képet, és a WebKit, valahogy ... varázslatosan ad nekünk egy weboldal, amely úgy néz ki, és jól működik.
Valójában azonban, mint a kollégám Ilya Grigorik.
Web-kit nem egy fekete doboz. Ez - fehér doboz. És nem csak fehér, hanem a nyitott fiókot.
Tehát, próbáljuk kitalálni, néhány dolgot:
- Mi WebKit?
- A WebKit nem?
- WebKit használunk WebKit alapú böngésző?
- Miért WebKit nem ugyanaz?
Most, főleg miután a hírt, hogy az Opera folytatta WebKit. vagyunk körülvéve sok WebKit alapú böngésző, és ez elég nehéz azt mondani, hogy egyesül, és ahol a saját útjukat járják. Az alábbiakban, remélem, megpróbálunk némi fényt erre a kérdésre. Ennek eredményeként, akkor könnyebben meghatározhatók a különbség a böngésző elküldi a hibákat a megfelelő tracker, és cross-browser fejlesztés hatékonyabb.
Szabványos alkatrészek webböngésző
Nézzük felsorolunk néhány összetevője a modern böngészők:
Melyikük közösek a WebKit böngésző? Nagyjából csak az első kettő.
A fennmaradó elemek minden WebKit «port» megvalósít a maga módján. Lássuk, mit jelent ez.
WebKit port
Sok WebKit «port„, és adok Ariya Hidayat, a WebKit és a hacker. Vezető Sencha jobb beszélni róla:
A legnépszerűbb koncepció egyesület WebKit, általában a faj WebKit de az Apple, amely fut a Mac OS X (az első és az eredeti WebKit könyvtár). Mint azt sejteni lehet, a különböző felületek realizovanna különféle eredeti könyvtárakat Mac OS X, a főként CoreFoundation komponenst. Például, ha egy szín definiálására lapos gomb egy speciális hurkot sugara, a WebKit tudja, hol és hogyan kell felhívni a gombot. Ugyanakkor, a végső renderelés gombok (a pixelek a monitor felhasználó) fekszenek a vállán CoreGraphics.
Amint azt már említettük, azt használják CoreGraphics, egyedi minden kikötő WebKit. Chrome Mac-as, például használ Skia.
Egy bizonyos ponton, a WebKit volt „hordozott” a különböző platformok, mind az asztali és a mobil. Ez a változás általában úgynevezett «WebKit port.” Safari Windows, Apple önállóan is portolni WebKit futtatni Windows alatt a Windows változatát (korlátozott végrehajtás) CoreFoundation könyvtárban.
... annak ellenére, hogy a Safari Windows már meghalt.
Ezen kívül ott már sok más „port” (lásd. A teljes listát). Google által létrehozott és megtartják prodlozhaet Chromium port. Van is egy WebKitGtk, GTK + alapú. Nokia (és most Trolltech, aki megvette) támogatja WebKit Qt port népszerűvé vált modulként QtWebKit.
Egyes portok WebKit
- szafari
- Safari alatt OS X és a Safari Windows két különböző port
- WebKit nightly build szerelvény forráskód Mac «port», mellyel a Safari, csak később - mobil Safari
- fejleszteni egy privát ág, de később megnyitották.
- Chrome iOS (Apple WebView-, egy kicsit később a különbség) - Chrome (króm)
- Chrome for Android (a csak „port» króm)
- A króm is az alapja böngészők: Yandex. 360. Sogou. és hamarosan, Opera. - Android böngésző
- a legújabb forráskódját WebKit, elérhető a kiadás időpontjában. - Ennél is nagyobb számú portokat. Amazon Silk, Dolphin, Blackberry, QtWebKit, WebKitGTK +, A EFL port (Tizen) wxWebKit, WebKitWinCE stb
Egyéb portok is összpontosítani a különböző feladatokat. Focus Mac port - az elválasztást a böngésző és az operációs rendszer, és a rendelkezésre Bindig Obj-C és C ++ beágyazására renderelőmotor natív alkalmazásokat. Focus Chromium port - teljes egészében a böngészőben. QtWebKit kínál port használni cross-platform alkalmazás architektúra, mint a motor tételére.
A teljes minden WebKit böngésző
Kezdésként nézzük meg a közös jellemzők, amelyek használják az összes WebKit alapú böngésző:
Tudod, ez vicces, én több kísérletet tett, hogy megírjam ezt a bekezdést. És mint látni fogja minden alkalommal Chrome csapat tagjai javított ki ...
- És így, az első helyen, a WebKit HTML értelmezi ugyanaz. Nos, kivéve, hogy a Chromium egyetlen port, abban a pillanatban, ami lehetővé tette patakok támogatást elemzés HTML.
- ... Nos, miután elemzés a HTML, a DOM fában van kialakítva ugyanúgy. Nos, valójában árnyék DOM csak akkor engedélyezett, Chromium port, azaz az építkezés egy DOM körű. Szintén egyedi elemek.
- ... Nos, WebKit egy ablakot hoz létre és a dokumentum objektumok mindenki számára azonos. Ugyanakkor, bár a tulajdonságok és szerkezet, amely az általuk nyújtott függhet a használatát kapcsolók funkciói (jellemző a zászlók).
- ... CSS elemzés ugyanaz. Eszik a CSS, és átalakítja azt CSSOM elég általános. Igen, de csak a Chrome -webkit- előtagokat amikor az Apple és más böngészők támogatják a hagyományos előtagokat -khtml- és -apple-.
- Layout ... ... elhelyezése? Ez olyan, mint a kenyér és a vaj. Mindenütt ugyanaz, ugye? Nos, már! Szubpixel elrendezés és prototípus telített számtani része WebKit, de eltér port port.
- Szuper.
Tehát, ez nehéz.
Csak a Flickr és a GitHub elrejtése megvalósított funkciók speciális zászlók, WebKit ugyanezt teszi. Ez lehetővé teszi, hogy a portok engedélyezése / tiltása bármely alkalmassága fordításkor a WebKit fordításkor Feature zászlók. Funkciók is lehetnek benne a műveletben, a paramétereket a parancssor (Chromium) vagy konfigurációk, így például körülbelül: zászlók.
Most próbáljuk összefoglalni, amit a világ összes WebKit ...
Mi a közös az egyes kikötő WebKit.
Teljesen világossá válik, úgyhogy próbáljuk nézni néhány különbség.
Most, hogy nem gyakori, hogy WebKit portok:
Nézzük meg az egyiket: 2D grafikus függ a kikötő, akkor használjon egy teljesen más könyvtár teszi a képernyőn:
Vagy ha bemegy a részleteket, az újonnan hozzáadott funkció: CSS.supports () engedélyezett az összes port, kivéve győzelem és wincairo, amely nem tartalmazza a feltételes css3 funkció (css3 feltételes funkciók).
Most vdaemsya A technikai részletek ... idő lesz aprólékos. Még a fentiek nem egészen helyes. Valójában WebCore, gyakori összetevője. WebCore ezt az elrendezést, a színvisszaadás és a DOM könyvtár HTML és az SVG, és alapvetően az emberek mit gondolnak, amikor azt mondják WebKit. Valójában a „WebKit” technikailag - egy réteg kötések között WebCore és a „port”, bár a hétköznapi beszélgetés, ez a különbség általában nem számít.
Diagram segít:
A legtöbb összetevő WebKit működtetett (szürkével jelölve).
Betűtípus és a szöveg renderelés nagyon nagy része a platform. 2 módja van, hogy külön szövegének WebKit: gyors és nagy kihívást. Mindkettő egyedi támogatást a platform (megvalósított oldalán a port), de hamar csak tudni kell, hogyan blitirovat jelei (ami gyorsítja az WebKit platform), amikor nehéz áthelyezni a renderelés vonalak a platform szinten, és egyszerűen azt mondja: „Paint it, kérem.”
«WebKit olyan, mint egy szendvicset. Más kérdésekben, abban az esetben a Chromium, ez több, mint egy taco. Ízletes taco webes technológiákat.
Dmitri Glazkov, Chrome WebKit hacker. Champion Web Alkatrészgyártó és árnyék dom.
Most nézzük kiterjeszti a felülvizsgálatot, és nézd meg néhány portot és több alrendszerre. Az alábbiakban öt WebKit port, vegye figyelembe, hogy a különböző eszközkészletet mindegyikük, annak ellenére, hogy a közös elemek:
Oké, akkor miért jöttünk?
És így, minden WebKit-s most teljesen más. Félek.
Nem éri meg! Amely WebKit-tesztek «layoutTest» óriási. (28.000 tesztek a legutóbbi adatok szerint), és nem csak a már meglévő funkciók, hanem az összes regressziót talált. Sőt, amikor megtanulni egy új, ezoterikus funkció DOM / CSS / HTML-5, layoutTest-s általában van egy kiváló bizonyítéka a minimális teljes web platform.
Ezen túlmenően, a W3C azon dolgozik, hogy egységesítsék a vizsgálatsorozat. Ez azt jelenti, hogy mi várható a WebKit port és minden más böngésző fogják tesztelni ugyanazokat a vizsgálatokat, vezet minket, hogy a csökkenés hirtelen fordulat, és egy átjárható interneten. Mindazok számára, akik a saját erőfeszítései látogató teszt A Web Forward esemény ... köszönöm!
Opera nemrég költözött WebKit. Mi történik?
Robert Naiman és Rob Hawks már érintettük ezt a témát. de hozzátenném, hogy az egyik fontos része volt a bejelentés, hogy az Opera megy Chromium. Ez azt jelenti, hogy a WebGL, vászon, HTML5 formái, a végrehajtás 2D grafikus, mindezek ugyanaz lesz a Chrome és az Opera most. Ugyanez API, ugyanaz az alacsony szintű végrehajtását. Mivel Opera alapul Króm, úgy érezheti, hogy csökkentse a munkát, a kompatibilitás ellenőrzése Opera és a Chrome.
Azt is meg kell jegyeznünk, hogy az összes Opera böngészők kerül át a Chromium. Azaz, az Opera for Windows, Mac, Linux és az Opera Mobile (teljes mobil böngésző). Még az Opera Mini, vékony kliens, akkor kapcsol a jelenlegi rendering farm alapján Presto, a másik alapján Chromium.
... és éjszakai épít WebKit. Mi ez?
Chrome Canary is a legújabb WebKit forráskódot, egy napos, vagy úgy.