WebKit — рушій виведення для вебсторінок. На базі WebKit працюють браузери Apple Safari, Google Chrome (до версії 28) та інші. WebKit забезпечує набір класів для виведення вебінформації у вікнах та реалізує функції браузера, такі як механізм гіперпосилань і управління історією відвіданих сторінок.

WebKit
WebKit Logo
Тип рушій виведення
Розробник Apple, KDE, Nokia, Google, RIM, Palm, Samsung, ProFUSION та інші
Стабільний випуск 534
Репозиторій github.com/WebKit/WebKit
Нестабільний випуск 534.10 (8 жовтня 2010; 12 років тому (2010-10-08))
Операційна система Багатоплатформне ПЗ
Мова програмування С++
Ліцензія більша частина коду викладена під GNU LGPL, інша під BSD-подібними ліцензіями
Вебсайт webkit.org

CMNS: WebKit у Вікісховищі

Спочатку рушій був створений як форк від KHTML та використовувався компанією Apple у своєму браузері Safari. WebKit портується на багато платформ, зокрема зараз він підтримується у Windows та Linux.

Такі частини WebKit, як WebCore та JavaScriptCore, доступні під ліцензією GNU LGPL, а інші під BSD-подібними ліцензіями.[1]

ІсторіяРедагувати

Із самого початку компанія Apple створила WebKit на базі бібліотеки KHTML браузера Konqueror для використання як рушія для Safari у системі Mac OS X. Зараз рушій розроблюють деякі учасники проєкту KDE, спеціалісти компаній: Apple Inc., Nokia, Google та інших.[2]

ПочатокРедагувати

Код, який згодом став WebKit'ом, з'явився у 1998 році як проєкт KDE зі створення рушія виведення вебсторінок, це були KHTML та KJS (KDE's JavaScript Engine). Ім'я WebKit з'явилося у 2002 році, коли Apple створила форк KHTML та KJS. Спеціалісти з Apple написали розробникам KDE листа, у якому пояснили, чому вибрали саме їхній проєкт.[3] У листі йшлося, що ці рушії дозволяють зручно вести розробку, бо є дуже малими за об'ємом коду (менш ніж 144 000 рядків коду), зрозуміло сконструйованими та відповідають стандартам. KHTML та KJS були портовані на Mac OS X та перейменовані на WebCore та JavaScriptCore, відповідно. WebCore було анонсовано на Macworld Expo у січні 2003 року Стівом Джобсом, CEO Apple, разом із релізом браузера Safari. JavaScriptCore був вперше використаний пізніше, у Mac OS X 10.2, як зачинений фреймворк разом із програмою Sherlock.

Спільна розробкаРедагувати

Компанія Apple внесла до проєкту WebKit великі зміни, бо мала різні підходи до програмування зі спільнотою KDE. Але KDE використовувало код WebKit, щоб збільшити швидкість рендерингу у KHTML та запровадити деякі нові функції (зокрема, щоб проходити тест Acid2).

Але потім розробники KHTML заявили, що вони дуже негативно ставляться до прийняття змін коду з WebKit, та назвали відносини між двома гілками проєкту «великою невдачею»[4], бо Apple відправляла свої зміни до коду з поганою документацією. Розробникам KDE було дуже складно інтегрувати цей код до KHTML. До того ж Apple вимагала від розробників приймати угоди про нерозголошення перед тим, як подивитися код, та не давала доступу до бази даних помилок.

Під час процесу «розлучення» один з розробників KDE опублікував статтю, що у KHTML була забезпечена підтримка деяких досягнень Safari, що KDE високо оцінює досягнення Safari та буде впроваджувати зміни від Apple в KHTML і надалі. Після цієї статті компанія з Купертіно розпочала обговорення того, як будувати взаємовідносини з KDE у майбутньому.[5]

Apple виклала код WebKit у своєму репозиторію CVS. З цього моменту розробники від Apple та від KHTML почали більш активно працювати разом. Багато з розробників KHTML стали брати участь у WebKit.

WebKit2Редагувати

WebKit2 був анонсований 8 квітня 2010 року. WebKit2 був розроблений з нуля. Головна особливість: різні види вебзмісту працюють у різних процесах. Наразі WebKit2 доступний для Mac та Windows.[6]

13 лютого 2013 року Opera Software заявила про приєднання до розробок на базі WebKit[7].

ФоркиРедагувати

3 квітня 2013 року компанія Google заявила, що зробить форк WebKit із назвою Blink, наразі цей рушій використовується у браузері Google Chrome (версія 28 і вище) та Opera (15 і вище).

ВикористанняРедагувати

WebKit використовується як рушій виведення у Safari для Windows, Mac OS X та iOS. Інші програми у Mac OS X можуть використовувати WebKit, наприклад програма Mail, клієнт електронної пошти.

Також на базі WebKit побудовані браузер Google Chrome (до версії 28), браузер в ОС Android та інші.

Портовані версіїРедагувати

Компанія Nokia портувала WebKit для свого браузера в операційній системі Symbian S60. Компанія Apple портувала WebKit для операційної системи iOS, що працює на телефонах iPhone, планшеті iPad та плеєрі iPod Touch.

WebKit був портований на велику кількість фреймворків, які підтримують багатоплатформність. Наприклад: GTK+, Qt.

WebKitGTK+ — порт браузерного рушія для платформи GTK. WebKitGTK дозволяє використати усі можливості WebKit через GNOME-орієнтований програмний інтерфейс на основі GObject і може застосовуватися для інтеграції засобів обробки вебконтенту у будь-які застосування, від використання в спеціалізованих HTML/CSS-парсерах, до створення повнофункціональних веббраузерів. З відомих проєктів, що використовують WebKitGTK, можна відзначити Midori і штатний браузер GNOME Epiphany.

КомпонентиРедагувати

WebCoreРедагувати

WebCore — це бібліотека, що відповідає за вивід, рендеринг та об'єктну модель документа для HTML і SVG. Код бібліотеки виданий за під LGPL (GNU Lesser General Public License). WebKit «обгортає» WebCore і JavaScriptCore, які написані на C++, програмним інтерфейсом для Objective-C.

WebKit проходить тести Acid2 та Acid3 з відмінним рендерингом на рекомендованому обладнанні.[8]

JavaScriptCoreРедагувати

JavaScriptCore — це фреймворк, що реалізує JavaScript-рушій для WebKit. JavaScriptCore був створений на базі KJS та (бібліотека для роботи з регулярними виразами). З часу створення форку JavaScriptCore збільшив свою функціональність та швидкість роботи.[9] 2 червня 2008 року був анонсований переписаний JavaScriptCore під назвою «SquirrelFish», інтерпретатор байткоду. Цей проєкт еволюціонував до SquirrelFish Extreme (або просто SFX), анонсований 18 вересня 2008 року. SFX компілює JavaScript у нативний машинний код, не потребуючи інтерпретатору, і таким чином прискорюючий виконання JavaScript.

DroseraРедагувати

Drosera — це відлагоджувач для JavaScript, який входить до складу нічних збірок WebKit.

SunSpiderРедагувати

Бенчмарк, який вимірює продуктивність JavaScript на типових запитах, як то маніпуляції з текстом, шифрування.

Програми, що використовують WebKitРедагувати

  • Chromium, браузер з відкритим сирцевим кодом, використовував WebKit до переходу на власний форк рушія Blink
  • Safari — веббраузер від Apple для Mac OS
  • ICab — веббраузер для Mac OS X
  • Мобільні платформи для смартфонів і інтернет-планшетів:
    • Apple iOS — платформа для мобільних смартфонів і інтернет-планшетів
    • Google Android — платформа для смартфонів і інтернет-планшетів
    • HP webOS — платформа для смартфонів і інтернет-планшетів
    • Samsung Bada — платформа для смартфонів
  • Epiphany — веббраузер для середовища робочого столу GNOME
  • Adobe Integrated Runtime (AIR) — платформо-незалежне середовище для запуску додатків
  • Arora — веббраузер, заснований на Qt 4
  • Bolt Browser — веббраузер на java для мобільних пристроїв
  • Iris Browser — веббраузер для Windows Mobile
  • Dolfin — стандартний браузер в ОС Bada
  • Konqueror — заснований на KHTML і WebKit веббраузер і файловий менеджер, що входить до складу KDE 4
  • LeechCraft — вільне кросплатформне модульне робоче середовище, що включає в себе браузер, IM-клієнт, аудіоплеєр, клієнт для читання стрічок новин, BitTorrent-клієнт і інші модулі
  • Maxthon 3 — веббраузер для Windows з можливістю перемикання рушія на Trident.
  • Midori — веббраузер, заснований на Gtk. Планується включення до складу середовища робочого столу Xfce.
  • Nokia Series 60 browser — веббраузер для мобільних телефонів Nokia S60
  • OmniWeb — веббраузер для Mac OS X
  • QtWeb — веббраузер для Windows, заснований на Qt
  • QupZilla — кросплатформенний веббраузер на Qt, добре інтегрований з призначеним для користувача оточенням робочого столу
  • Rekonq — веббраузер, заснований на Nokia QtDemoBrowser
  • RockMelt — соціальний браузер, що підтримує синхронізацію з Facebook і Twitter
  • Shiira — веббраузер для Mac OS X
  • Surf — простий веббраузер
  • Swift — веббраузер для Windows
  • Adium — IM клієнт для Mac OS X
  • QutIM — кросплатформенний IM клієнт
  • Vacuum-IM — кросплатформенний Jabber клієнт, написаний на Qt
  • Uzbl — веббраузер для Unix-подібних систем з інтерфейсами, які підключаються у вигляді скриптів, які керують сторінкою, що відображає програми
  • Steam — сервіс цифрової дистрибуції компанії Valve став використовувати рушій WebKit замість MS Trident, що дозволило значно збільшити продуктивність і поліпшити безпеку роботи, а також портувати програму на Mac OS X
  • Yahoo! Messenger — програма миттєвого обміну повідомленнями, WebKit використовується для відтворення повідомлень
  • Luakit — мінімалістичний веббраузер, що нагадує Firefox з увімкненим розширенням Vimperator

Див. такожРедагувати

ВиноскиРедагувати

  1. Open Source - WebKit. Apple. Архів оригіналу за 6 липня 2013. Процитовано 5 березня 2009. 
  2. Maciej Stachowiak (9 листопада 2008). Companies and Organizations that have contributed to WebKit. WebKit Wiki. Архів оригіналу за 6 липня 2013. Процитовано 17 листопада 2008. 
  3. KDE KFM-Devel mailing list «(fwd) Greetings from the Safari team at Apple Computer [Архівовано 29 листопада 2014 у Wayback Machine.]», January 7, 2003.
  4. The bitter failure named "safari and khtml". Архів оригіналу за 18 вересня 2010. Процитовано 15 лютого 2011. 
  5. WebCore - KHTML - Firefox: Know your facts!. Архів оригіналу за 10 лютого 2009. Процитовано 15 лютого 2011. 
  6. Announcing WebKit2. Webkit.org. Архів оригіналу за 8 травня 2020. Процитовано 27 грудня 2010. 
  7. Opera перейде на WebKit, рушій Presto залишиться в минулому [Архівовано 18 лютого 2013 у Wayback Machine.] (рос.)
  8. Maciej Stachowiak (25 вересня 2008). Full Pass Of Acid3. Surfin' Safari - The WebKit Blog. Архів оригіналу за 6 липня 2013. Процитовано 29 вересня 2008. 
  9. The Great Browser JavaScript Showdown. 19 грудня 2007. Архів оригіналу за 6 липня 2013. Процитовано 15 лютого 2011.