stringtranslate.com

Gecko (программное обеспечение)

Gecko (стилизовано как ɢecko) — браузерный движок, разработанный Mozilla . Используется в браузере Firefox , почтовом клиенте Thunderbird и многих других проектах.

Gecko разработан для поддержки открытых стандартов Интернета и используется различными приложениями для отображения веб-страниц и, в некоторых случаях, самого пользовательского интерфейса приложения (путем рендеринга XUL ). Gecko предлагает богатый программный API , который делает его пригодным для широкого спектра ролей в приложениях с поддержкой Интернета, таких как веб-браузеры , представление контента и клиент/сервер . [3]

Gecko написан на C++ и JavaScript , [4] [5] а с 2016 года дополнительно на Rust . [6] [7] Это бесплатное программное обеспечение с открытым исходным кодом, подпадающее под условия Mozilla Public License версии 2. [8] Mozilla официально поддерживает его использование на Android , [4] Linux , macOS и Windows . [9]

История

Разработка движка компоновки, теперь известного как Gecko, началась в Netscape в 1997 году после покупки компанией DigitalStyle . Существующий движок рендеринга Netscape, изначально написанный для Netscape Navigator 1.0 и модернизировавшийся на протяжении многих лет, был медленным, не соответствовал стандартам W3C, имел ограниченную поддержку динамического HTML и не имел таких функций, как инкрементальная перекомпоновка (когда движок компоновки перестраивает элементы на экране по мере загрузки новых данных и добавления их на страницу). Новый движок компоновки разрабатывался параллельно со старым, с намерением интегрировать его в Netscape Communicator, когда он станет зрелым и стабильным. Ожидалось, что по крайней мере еще одна крупная ревизия Netscape будет выпущена со старым движком компоновки до перехода.

После запуска проекта Mozilla в начале 1998 года новый код движка компоновки был выпущен под лицензией с открытым исходным кодом. Первоначально представленное как Raptor , название пришлось изменить на NGLayout (макет следующего поколения) из-за проблем с торговой маркой . Позже Netscape переименовала NGLayout в Gecko . Хотя Mozilla Organization (предшественник Mozilla Foundation ) изначально продолжала использовать название NGLayout (Gecko было торговой маркой Netscape), [10] в конечном итоге победил брендинг Gecko. [ необходима цитата ]

В октябре 1998 года Netscape объявила, что ее следующий браузер будет использовать Gecko (который в то время все еще назывался NGLayout) вместо старого движка компоновки, что потребовало переписывания значительной части приложения. Хотя это решение было популярно среди сторонников веб-стандартов, оно было в значительной степени непопулярно среди разработчиков Netscape, которые были недовольны шестью месяцами, отведенными на переписывание. [11] Это также означало, что большую часть работы, проделанной для Netscape Communicator 5.0 (включая разработку улучшений Mariner для старого движка компоновки), пришлось прекратить. Netscape 6, первый релиз Netscape, включающий Gecko, был выпущен в ноябре 2000 года (название Netscape 5 никогда не использовалось). [ необходима цитата ]

По мере продолжения разработки Gecko другие приложения и встраиваемые программы начали использовать его. America Online , к тому времени материнская компания Netscape, в конечном итоге приняла его для использования в CompuServe 7.0 и AOL для Mac OS X (эти продукты ранее имели встроенный Internet Explorer). Однако, за исключением нескольких бета-версий , Gecko никогда не использовался в основном клиенте Microsoft Windows AOL. [ необходима цитата ]

15 июля 2003 года AOL уволила оставшихся разработчиков Gecko, а Mozilla Foundation (сформированный в тот же день) стал главным распорядителем разработки Gecko. Сегодня Gecko разрабатывается сотрудниками Mozilla Corporation , сотрудниками компаний, которые вносят вклад в проект Mozilla, и добровольцами. [ необходима цитата ]

В эпоху Netscape сочетание неудачных технических и управленческих решений привело к раздуванию программного обеспечения Gecko . [11] [12] [13] Таким образом, в 2001 году Apple решила создать движок KHTML , а не Gecko, для создания движка WebKit для своего браузера Safari . [12] [13] Однако к 2008 году Mozilla решила некоторые проблемы раздувания, что привело к значительному повышению производительности Gecko. [14]

В октябре 2016 года Mozilla анонсировала Quantum, текущий проект, охватывающий несколько усилий по разработке программного обеспечения для «создания веб-движка следующего поколения для пользователей Firefox ». Он включал многочисленные улучшения Gecko, взятые из экспериментального проекта Servo . [15] [16] Firefox 57, также известный как «Firefox Quantum», впервые выпущенный в ноябре 2017 года, является начальной версией с основными компонентами из проектов Quantum/Servo. К ним относятся повышенная производительность в компонентах CSS и рендеринга GPU . Дополнительные компоненты будут постепенно объединяться из Servo в Gecko в будущих версиях. [15]

В сентябре 2018 года Mozilla анонсировала GeckoView, основу следующего поколения мобильных продуктов Mozilla, основанных на программной библиотеке, которая делает Gecko пригодным для повторного использования для Android, охватывая новые усилия по разработке программного обеспечения, чтобы «отделить сам движок от его пользовательского интерфейса и упростить его встраивание в другие приложения». Firefox Focus 7.0, выпущенный в том же месяце, [17] является первоначальной версией, представленной GeckoView, с повышенной производительностью при средней загрузке страниц. [18] [19] Firefox Reality также был создан с использованием GeckoView. [18] В июне 2019 года Mozilla анонсировала Firefox Preview как текущий проект, который фокусируется на создании веб-браузера для Android с использованием GeckoView. [20] Firefox для Android 79, также известный как «Firefox Daylight», впервые выпущенный в августе 2020 года, является первым стабильным релизом с основными компонентами, работающими на движке GeckoView. [21]

Поддержка стандартов

С самого начала Gecko был разработан для поддержки открытых стандартов Интернета. Некоторые стандарты, поддерживаемые Gecko, включают:

Gecko также поддерживает SVG . [23]

Нестандартная поддержка устаревшего IE

Для поддержки веб-страниц, разработанных для устаревших версий Netscape и Internet Explorer, Gecko поддерживает переключение DOCTYPE . Документы с современным DOCTYPE отображаются в режиме соответствия стандартам, который строго следует стандартам W3C . Документы, не имеющие DOCTYPE или имеющие старый DOCTYPE, отображаются в режиме quirks , который эмулирует некоторые нестандартные странности Netscape Communicator 4.x; однако некоторые функции 4.x (например, слои ) не поддерживаются.

Gecko также имеет ограниченную поддержку некоторых нестандартных функций Internet Explorer, таких как элемент marquee и document.allсвойство (хотя страницы, явно тестирующие это, document.allбудут уведомлены о том, что они не поддерживаются). [24]

Использование

Gecko в основном используется в веб-браузерах , самые ранние из которых — Netscape 6 и Mozilla Suite (позже переименованный в SeaMonkey ). Он также используется в других производных веб-браузеров Mozilla, таких как Firefox и Firefox для мобильных устройств , а также в реализации клона Internet Explorer , который является частью Wine . [25] Mozilla также использует его в своем почтовом клиенте Thunderbird .

Другие веб-браузеры, использующие Gecko, включают GNU IceCat , [26] Waterfox , K-Meleon , Lunascape , Portable Firefox , Conkeror , Classilla , TenFourFox .

Gecko также используется Sugar для компьютера OLPC XO-1 , [27] и используется как полная реализация XUL ( язык пользовательского интерфейса XML ). В настоящее время Gecko определяет спецификацию XUL. [ требуется обновление ] Gecko также используется мобильной операционной системой KaiOS , которая основана на прекращенной версии Firefox OS . [28]

Бывшие пользователи

Продукты, которые ранее использовали Gecko, включают Pale Moon (теперь использующий Goanna ), Epiphany (теперь известный как GNOME Web и использующий WebKitGTK ) и GNOME DevHelp (теперь использующий WebKitGTK ).

К числу прекращенных продуктов, использующих Gecko, относятся Swiftfox , Flock , Galeon , Camino , Minimo , Beonex Communicator , Kazehakase , Songbird , Sunbird (календарь) , MicroB , Nightingale , Instantbird и Picasa для Linux. [29]

Зависимость от собственности

На Windows и других платформах Gecko зависит от проприетарных компиляторов. [30]

После Gecko 2.0 номер версии был увеличен до 5.0, чтобы соответствовать Firefox 5, и с тех пор синхронизируется с основным номером версии Firefox и Thunderbird [31] , чтобы отразить тот факт, что он больше не является отдельным компонентом. [32]

Квантовый

Quantum — проект Mozilla, охватывающий несколько программных разработок для «создания веб-движка следующего поколения для пользователей Firefox ». Он включает в себя многочисленные улучшения Gecko, в основном взятые из экспериментального проекта Servo . Quantum также включает в себя усовершенствования пользовательского интерфейса и взаимодействий. [15] [16]

Firefox 57, выпущенный в ноябре 2017 года, является начальной версией с включенным компонентом Servo. Mozilla называет этот и несколько запланированных будущих релизов «Firefox Quantum». [33] [34]

Фон

В 2012 году Mozilla начала экспериментальный проект Servo , который представляет собой движок, разработанный с нуля с целью улучшения параллелизма и синхронизма , а также снижения уязвимостей безопасности памяти . Servo написан на языке программирования Rust , также созданном Mozilla, который предназначен для генерации скомпилированного кода с лучшей безопасностью памяти, параллелизмом и синхронизмом, чем скомпилированный код C++. [5]

По состоянию на апрель 2016 года Servo требовалось как минимум несколько лет разработки, чтобы стать полнофункциональным браузерным движком, [35] отсюда и решение начать проект Quantum, чтобы добавить стабильные части Servo в Firefox. Mozilla уволила всех разработчиков Servo в августе 2020 года. [36]

Компоненты

Проект Quantum состоит из нескольких подпроектов. [15]

Лазурный

Проект Mozilla Azure — это API низкоуровневой абстракции графики без сохранения состояния , используемый в Firefox . [49]
Проект преследует несколько целей, в том числе:

Azure обеспечит 2D-аппаратное ускорение поверх 3D-графических бэкэндов. Firefox начал использовать Azure вместо Cairo в 2012 году. [50] [51] Он написан на C++ и используется Servo . [52] Название Azure — это ода раннему основателю Netscape Джеймсу Х. Кларку и его ранней работе в Silicon Graphics, где рабочие станции часто назывались в честь цветов. [53]

Ссылки

  1. ^ "Лицензионные соглашения с конечным пользователем Mozilla Foundation". Mozilla .
  2. ^ "Политика лицензирования Mozilla". mozilla.org . Получено 2013-03-26 .
  3. ^ "Внедрение Mozilla". Mozilla.org. 2012-10-25 . Получено 2012-10-31 .
  4. ^ ab "Простая сборка Firefox для Android". Архивировано из оригинала 2019-09-29 . Получено 2017-05-03 . Gecko реализован с использованием C++ и JavaScript.
  5. ^ ab Bergstrom, Lars; et al. (май 2016 г.). "Engineering the Servo Web Browser Engine using Rust" (PDF) . Труды Международной конференции по программной инженерии . Архивировано (PDF) из оригинала 29.05.2016.
  6. ^ "Группы Google". groups.google.com .
  7. ^ Йегулалп, Сердар (3 февраля 2017 г.). «Mozilla связывает судьбу Firefox с языком Rust». InfoWorld .
  8. ^ "MPL 2 Upgrade" . Получено 2012-08-18 .
  9. ^ "Gecko FAQ". MDN Web Docs . Архивировано из оригинала 2019-10-08 . Получено 2017-05-03 .
  10. ^ "nglayout project: identity crisis". Mozilla.org. Архивировано из оригинала 2011-06-29 . Получено 2012-10-31 .
  11. ^ ab Jorge O. Castro (2004-06-15). "Ars Technica садится со Скоттом Коллинзом из Mozilla.org". Ars Technica . Получено 2017-02-16 .
  12. ^ ab Paul Festa (14.01.2003). "Apple пренебрежительно относится к Mozilla". CNET Networks . Архивировано из оригинала 25.10.2012 . Получено 16.02.2017 .
  13. ^ ab Дэвид Барон (2003-01-09). "Четверг 2003-01-09". Веблог Дэвида Барона . Самостоятельно опубликовано. Архивировано из оригинала 2009-07-28 . Получено 2017-02-16 .
  14. ^ Райан Пол (2008-09-09). "Почему Mozilla привержена Gecko, поскольку популярность WebKit растет" . Получено 2017-02-16 .
  15. ^ abcd "Quantum". Mozilla Wiki . Получено 20.04.2017 .
  16. ^ ab Cimpanu, Catalin. "Mozilla объявляет о выпуске Quantum — нового браузерного движка для Firefox". softpedia . Получено 07.11.2016 .
  17. ^ "Firefox Focus 7.0 входит в бета-версию, переключается на GeckoView (движок Gecko)". 14 сентября 2018 г. Архивировано из оригинала 31 июля 2020 г. Получено 19 сентября 2019 г.
  18. ^ ab "Firefox Focus with GeckoView". Mozilla Hacks . 13 сентября 2018 г. Получено 4 сентября 2019 г.
  19. ^ "Что нового в Firefox Focus для Android (версия 7) | Справка Firefox Focus". support.mozilla.org . Получено 4 сентября 2019 г. .
  20. ^ "GeckoView в 2019 году". Mozilla Hacks . 27 июня 2019 г. Получено 4 сентября 2019 г.
  21. ^ Vesta Zare (25 августа 2020 г.). «Быстрый, персонализированный и приватный по замыслу на всех платформах: представляем новый опыт Firefox для Android». Блог Mozilla . Получено 22 сентября 2020 г.
  22. ^ "Кроссбраузерная совместимость ECMAScript 2015 (ES6) в Firefox 102". www.lambdates.com . Получено 21.08.2022 .
  23. ^ "Кроссбраузерная совместимость SVG (базовая поддержка) в Firefox 102". www.lambdates.com . Получено 21.08.2022 .
  24. ^ "Mozilla добавляет необнаруживаемую поддержку document.all, часть нового дистрибутива Novell Linux?". Developer.mozilla.org. 2004-07-23 . Получено 2018-02-07 .
  25. ^ "IE использует Gecko под Wine". Wine Wiki . Получено 14.09.2009 .
  26. ^ sdubois (24 июня 2010 г.). "Gecko". Free Software Foundation . Получено 23 мая 2019 г.
  27. ^ Мартенс, Китай (03.01.2007). «One Laptop Per Child готовит интерфейс „Sugar“». Служба новостей IDG. Архивировано из оригинала 18.01.2008 . Получено 28.12.2007 .
  28. ^ Хилл, Пол (2020-03-12). «KaiOS Technologies сотрудничает с Mozilla для улучшения Gecko». Neowin . Получено 2024-07-12 .
  29. ^ "Picasa 3.0 для Linux". Архивировано из оригинала 2009-01-07 . Получено 2008-12-28 .
  30. ^ "Сборка Firefox для Windows". MDN Web Docs .
  31. ^ "Версии Gecko и версии приложений". MDN . Архивировано из оригинала 2020-10-31 . Получено 2013-11-18 .
  32. ^ «Не так много в новом Thunderbird 5, но дорожная карта выглядит многообещающей». Ars Technica . 30 июня 2011 г. Получено 07.02.2018 .
  33. ^ ab "Firefox 57.0, см. все новые функции, обновления и исправления". Mozilla . Получено 2018-10-30 .
  34. ^ ab "Представляем новый Firefox: Firefox Quantum – The Mozilla Blog". The Mozilla Blog . Получено 2018-10-30 .
  35. ^ "Оставшаяся работа сервопривода". GitHub . Получено 2017-02-17 .
  36. ^ "Mozilla увольняет 250 сотрудников, переориентируясь на коммерческие продукты". ZDNet . Получено 2022-06-14 .
  37. ^ "The Changelog". The Changelog . 18 ноября 2016 г. Получено 28.03.2017 г.
  38. ^ "Bay Area Rust Meetup February 2016". Air Mozilla . Получено 28.03.2017 .
  39. ^ "Webrender Where". Mozilla Wiki . Получено 2020-07-14 .
  40. ^ "Firefox стал быстрее и стабильнее с первыми большими байтами Project Quantum, проще с компактными темами и переработанными разрешениями". Блог Mozilla . Получено 27.04.2017 .
  41. ^ "Servo Architecture". YouTube . 18 января 2017 г. Архивировано из оригинала 2021-12-11 . Получено 2017-03-28 .
  42. ^ "Mozilla's Quantum Project". Блог Билла Макклоски . 2016-10-27 . Получено 2017-03-28 .
  43. ^ "Entering the Quantum Era". Mozilla Hacks . 2017-11-13 . Получено 2020-07-14 .
  44. ^ "Quantum Flow". Mozilla Wiki . Получено 28.03.2017 .
  45. ^ "Информационный бюллетень по квантовой потоковой инженерии № 25". ehsanakhgari.org . 2017-09-17 . Получено 2020-07-14 .
  46. ^ dolske (2017-05-18). "Photon Engineering Newsletter #1". Блог Dolske . Получено 2017-07-04 .
  47. ^ "TPE Necko/Projects - MozillaWiki". wiki.mozilla.org . Получено 2017-07-04 .
  48. ^ "Заметки о выпуске Firefox 59". www.mozilla.org . Получено 16.01.2019 .
  49. ^ "Платформа/GFX/Moz2D - MozillaWiki".
  50. ^ Парфени, Лучиан. «Firefox теперь использует Azure Graphics API для Canvas на всех платформах».
  51. ^ «Azure заменяет Cairo в Mozilla Firefox — Phoronix».
  52. ^ Уиллис, Натан (17 июня 2015 г.). «Параллельная отрисовка страниц с помощью Mozilla Servo». LWN.net . Получено 27 июня 2015 г.
  53. ^ "Представляем проект Azure - JOEDREW!". Архивировано из оригинала 2016-09-08 . Получено 2019-09-22 .

Внешние ссылки