Очікує на перевірку

WebKit

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до навігації Перейти до пошуку
WebKit
WebKit Logo
WebKit Logo
Типрушій виведення
РозробникиApple,KDE,Nokia,Google,RIM,Palm,Samsung,ProFUSIONта інші
Стабільний випуск534
Версії611.3.10.1.18(10 лютого2023)[1]
Нестабільний випуск534.10 (8 жовтня2010;13 років тому(2010-10-08))
Операційна системаБагатоплатформне ПЗ
Мова програмуванняС++
Ліцензіябільша частина коду викладена під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

[ред.|ред. код]

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

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

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

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

[ред.|ред. код]

Див. також

[ред.|ред. код]

Виноски

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