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 ...

  1. É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.
  2. ... 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.
  3. ... 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).
  4. ... 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-.
  5. 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.
  6. 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:

Webkit fejlesztő, savepearlharbor

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.

Mesélj még a belsejében WebKit.

Webkit fejlesztő, savepearlharbor