WebKit
Тип | рушій виведення |
---|---|
Розробники | Apple,KDE,Nokia,Google,RIM,Palm,Samsung,ProFUSIONта інші |
Стабільний випуск | 534 |
Версії | 611.3.10.1.18(10 лютого2023)[1] |
Нестабільний випуск | 534.10 (8 жовтня2010 ) |
Операційна система | Багатоплатформне ПЗ |
Мова програмування | С++ |
Ліцензія | більша частина коду викладена підGNU LGPL,інша підBSD-подібнимиліцензіями |
Репозиторій | github.com/WebKit/WebKit |
Вебсайт | webkit.org |
WebKit— рушій виведення для вебсторінок. На базі WebKit працюють браузериApple Safari,Google Chrome(до версії 28) та інші. WebKit забезпечує набір класів для виведення вебінформації у вікнах та реалізує функції браузера, такі як механізмгіперпосиланьі управління історією відвіданих сторінок.
Спочатку рушій був створений якфорквідKHTMLта використовувався компанієюAppleу своєму браузері Safari. WebKit портується на багато платформ, зокрема зараз він підтримується уWindowsтаLinux.
Такі частини WebKit, як WebCore таJavaScriptCore,доступні під ліцензієюGNU LGPL,а інші підBSD-подібнимиліцензіями.[2]
Із самого початку компанія Apple створила WebKit на базібібліотекиKHTML браузераKonquerorдля використання як рушія для Safari у системіMac OS X.Зараз рушій розроблюють деякі учасники проєктуKDE,спеціалісти компаній:Apple Inc.,Nokia,Googleта інших.[3]
Код, який згодом став WebKit'ом, з'явився у1998році як проєкт KDE зі створення рушія виведення вебсторінок, це були KHTML та KJS (KDE's JavaScript Engine). Ім'я WebKit з'явилося у2002році, коли Apple створилафоркKHTML та KJS. Спеціалісти з Apple написали розробникам KDE листа, у якому пояснили, чому вибрали саме їхній проєкт.[4]У листі йшлося, що ці рушії дозволяють зручно вести розробку, бо є дуже малими за об'ємом коду (менш ніж 144 000 рядків коду), зрозуміло сконструйованими та відповідають стандартам. KHTML та KJS були портовані на Mac OS X та перейменовані наWebCoreтаJavaScriptCore,відповідно. WebCore було анонсовано наMacworld Expoу січні 2003 року Стівом Джобсом,CEOApple, разом із релізом браузера Safari. JavaScriptCore був вперше використаний пізніше, у Mac OS X 10.2, як зачиненийфреймворкразом із програмоюSherlock.
Компанія Apple внесла до проєкту WebKit великі зміни, бо мала різні підходи до програмування зі спільнотою KDE. Але KDE використовувало код WebKit, щоб збільшити швидкістьрендерингуу KHTML та запровадити деякі нові функції (зокрема, щоб проходити тестAcid2).
Але потім розробники KHTML заявили, що вони дуже негативно ставляться до прийняття змін коду з WebKit, та назвали відносини між двома гілками проєкту «великою невдачею»[5],бо Apple відправляла свої зміни до коду з поганою документацією. Розробникам KDE було дуже складно інтегрувати цей код до KHTML. До того ж Apple вимагала від розробників прийматиугоди про нерозголошенняперед тим, як подивитися код, та не давала доступу до бази даних помилок.
Під час процесу «розлучення» один з розробників KDE опублікував статтю, що у KHTML була забезпечена підтримка деяких досягнень Safari, що KDE високо оцінює досягнення Safari та буде впроваджувати зміни від Apple в KHTML і надалі. Після цієї статті компанія зКупертінорозпочала обговорення того, як будувати взаємовідносини з KDE у майбутньому.[6]
Apple виклала код WebKit у своєму репозиторіюCVS.З цього моменту розробники від Apple та від KHTML почали більш активно працювати разом. Багато з розробників KHTML стали брати участь у WebKit.
WebKit2 був анонсований 8 квітня 2010 року. WebKit2 був розроблений з нуля. Головна особливість: різні види вебзмісту працюють у різнихпроцесах.Наразі WebKit2 доступний для Mac та Windows.[7]
13 лютого 2013 рокуOpera Softwareзаявила про приєднання до розробок на базі WebKit[8].
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 для свого браузера вопераційній системіSymbianS60. Компанія Apple портувала WebKit для операційної системи iOS, що працює на телефонахiPhone,планшетіiPadта плеєріiPod Touch.
WebKit був портований на велику кількість фреймворків, які підтримують багатоплатформність. Наприклад:GTK+,Qt.
WebKitGTK+ — порт браузерного рушія для платформи GTK. WebKitGTK дозволяє використати усі можливості WebKit черезGNOME-орієнтований програмний інтерфейс на основіGObjectі може застосовуватися для інтеграції засобів обробки вебконтенту у будь-які застосування, від використання в спеціалізованихHTML/CSS-парсерах,до створення повнофункціональнихвеббраузерів.З відомих проєктів, що використовують WebKitGTK, можна відзначитиMidoriі штатний браузер GNOMEEpiphany.
WebCore — це бібліотека, що відповідає за вивід, рендеринг таоб'єктну модель документадляHTMLіSVG.Код бібліотеки виданий за підLGPL (GNU Lesser General Public License).WebKit «обгортає» WebCore і JavaScriptCore, які написані наC++,програмним інтерфейсомдляObjective-C.
WebKit проходить тестиAcid2таAcid3з відмінним рендерингом на рекомендованому обладнанні.[9]
JavaScriptCore — цефреймворк,що реалізуєJavaScript-рушійдля WebKit. JavaScriptCore був створений на базіKJSта (бібліотека для роботи зрегулярними виразами). З часу створення форку JavaScriptCore збільшив свою функціональність та швидкість роботи.[10] 2 червня 2008 року був анонсований переписаний JavaScriptCore під назвою «SquirrelFish»,інтерпретаторбайткоду.Цей проєкт еволюціонував до SquirrelFish Extreme (або просто SFX), анонсований 18 вересня 2008 року. SFXкомпілюєJavaScript у нативниймашинний код,не потребуючи інтерпретатору, і таким чином прискорюючий виконання JavaScript.
Drosera — цевідлагоджувачдляJavaScript,який входить до складу нічних збірок WebKit.
Бенчмарк, який вимірює продуктивність JavaScript на типових запитах, як то маніпуляції з текстом, шифрування.
- Chromium,браузер з відкритимпочатковим кодом,використовував WebKit до переходу на власний форк рушіяBlink
- CoolNovo— веббраузер компаніїMaple Studios,що розширює можливості Google Chrome
- Comodo Dragon— веббраузер компаніїComodo Group,з посиленим захистом конфіденційних даних
- Google Chrome— веббраузер компаніїGoogle,створений на базі проєкту Chromium
- SRWare Iron— веббраузер компанії SRWare, випущений у зв'язку з тим, що Google Chrome відправляє компанії Google відомості про користувача
- Інтернет@mail.ru— веббраузер Mail.ru (ранішеХром@mail.ru).
- Рамблер Ніхром— веббраузер Рамблера
- Яндекс.Браузер— веббраузер Яндекса (ранішеЯндекс Хром).
- Safari— веббраузер відAppleдля Mac OS
- ICab— веббраузер дляMac OS X
- Мобільні платформи длясмартфонівіінтернет-планшетів:
- Epiphany— веббраузер для середовища робочого столуGNOME
- Adobe Integrated Runtime (AIR)— платформо-незалежне середовище для запуску додатків
- Arora— веббраузер, заснований наQt4
- 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— веббраузер, заснований наNokiaQtDemoBrowser
- 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
- ↑Release 611.3.10.1.18— 2023.
- ↑Open Source - WebKit.Apple.Архіворигіналу за 6 липня 2013.Процитовано 5 березня 2009.
- ↑Maciej Stachowiak (9 листопада 2008).Companies and Organizations that have contributed to WebKit.WebKit Wiki.Архіворигіналу за 6 липня 2013.Процитовано 17 листопада 2008.
- ↑KDE KFM-Devel mailing list «(fwd) Greetings from the Safari team at Apple Computer[Архівовано29 листопада 2014 уWayback Machine.]», January 7, 2003.
- ↑The bitter failure named "safari and khtml".Архіворигіналуза 18 вересня 2010.Процитовано 15 лютого 2011.
- ↑WebCore - KHTML - Firefox: Know your facts!.Архіворигіналуза 10 лютого 2009.Процитовано 15 лютого 2011.
- ↑Announcing WebKit2.Webkit.org. Архіворигіналуза 8 травня 2020.Процитовано 27 грудня 2010.
- ↑Opera перейде на WebKit, рушій Presto залишиться в минулому[Архівовано18 лютого 2013 уWayback Machine.](рос.)
- ↑Maciej Stachowiak (25 вересня 2008).Full Pass Of Acid3.Surfin' Safari - The WebKit Blog.Архіворигіналу за 6 липня 2013.Процитовано 29 вересня 2008.
- ↑The Great Browser JavaScript Showdown.19 грудня 2007.Архіворигіналу за 6 липня 2013.Процитовано 15 лютого 2011.