Движки веб-браузеров – что это и какие бывают


Операционная система: Linux
Русский язык интерфейса: есть

Разработка Galeon началась на стыке тысячелетий, в 2000 году. Браузер создавался как альтернатива Mozilla. Его особенностью являлось отсутствие в своем составе дополнительных компонентов (почтовый клиент, редактор HTML-страниц и т.д.), а также жесткая привязка к операционной системе Linux. В 2002 год из проекта ушел один из ведущих разработчиков, создав вскоре Epiphany. Новый браузер был включен в состав GNOME, а Galeon остался несколько не у дел. Его разработка замедлилась. На сегодняшний день он – самый старший из браузеров на движке Gecko, находящихся в разработке.

Galeon тесно интегрирован с GNOME. Это означает, что программа использует многие свойства рабочей среды. Например, вы не можете поменять тему оформления для отдельного приложения. Общие настройки панелей инструментов указываются в центре управления GNOME. Впрочем, вы можете добавлять или удалять кнопки с панели, используя для этого сходный с Mozilla Firefox инструмент. Контекстное меню панели инструментов отсутствует.

Программа позволяет импортировать закладки из браузеров Netscape, Mozilla (SeaMonkey и Firefox), Konqueror и Epiphany. Сам инструмент импорта, однако, представлен не в главном меню, а спрятан в Bookmarks Editor.

Galeon обладает массой положительных особенностей при работе с закладками. Вы можете создавать несколько панелей со ссылками на любимые сайты. На них могут быть представлены обычные ссылки, папки, виртуальные папки, а также специальные сценарии, называемые bookmarklets.

Для управления всем этим разнообразием элементов и технических решений предназначен редактор закладок. Виртуальные папки отличаются от их обычных аналогов тем, что они являются лишь результатами поиска информации. Физически в них ничего не переносится. Критерии поиска состоят из текстовой строки, даты последнего посещения, даты создания ссылки. Кроме того, для текстовой строки можно указывать совпадения не только с заголовком закладки, но и с ее примечаниями. На самом деле, в этой технологии нет ничего уникального – она вовсю используется в почтовых клиентах. Но в браузерах это, к сожалению, большая редкость.

Вторая особенность работы с вкладками заключается в возможности создания псевдонимов. Иными словами, ваша ссылка может находиться сразу в нескольких физических папках. При этом управление ею происходит всегда из единого места, одного диалогового окна. Не стоит путать эту возможность с виртуальными каталогами, где ссылки лишь размножаются, дублируясь по результатам поиска. Здесь речь идет именно о физических папках.

Любая папка с закладками может быть превращена в панель инструментов. Как было сказано ранее, подобных панелей может быть несколько. Мало того, вы можете указывать произвольные значки для обозначений папок и сайтов. Например, виртуальная папка, где содержатся ссылки о кинематографе, может быть оформлена в виде стилизованного фрагмента пленки. При отображении значков внутри панелей инструментов, их размер не меняется, они всегда показываются в 100% масштабе. Это означает, что внутри одной панели инструментов могут быть как крупные, так и мелкие картинки.

Каждой ссылке можно присваивать сокращения. Они позволяют быстро вводить адреса, не обращаясь к каким-либо меню или панелям. Например, вместо довольно длинного адреса «http://galeon.sourceforge.net» можно ввести сокращение «gln». Три буквы набирать всегда легко, даже краской на заборе.

Galeon позволяет работать с умными закладками. В их адресах допускается использование переменных. Подобные закладки можно вызывать через сокращения. Вы вводите краткое слово в адресной строке, после чего сразу дописываете аргумент. Подобным образом можно, например, быстро осуществлять поиск на специальных сервисах. Второй вариант работы заключается в вызове меню закладок. При этом открывается диалоговое окно с запросом на ввод аргумента.

Из умных закладок создана страница My Portal, которую удобно использовать как стартовый документ. На ней отображаются ссылки на последние посещенные сайты, список наиболее популярных закладок, служебные сценарии (bookmarklets), а также умные закладки. Последний тип ссылок сразу представлен в виде строк ввода текстовых запросов. My Portal имеет динамическое наполнение, которое автоматически меняется со временем.

Galeon поддерживает мышиные жесты без необходимости установки каких-либо дополнительных модулей. Жестикуляция активируется при удержании средней кнопки мыши. Подробное описание всех жестов с рисунками дается в справочной системе браузера.

Работа с вкладками также выполнена на высоком уровне. Вы можете группировать вкладки, добавлять их одной командой в избранное, менять местами документы на панели. Любую закладку можно отцепить от текущего окна и превратить в новое окно браузера. Вы можете также создавать копии вкладок, а также закрывать все документы, кроме текущего.

Браузер позволяет блокировать всплывающие окна, настраивать правила приема cookies и загрузки изображений. Левая боковая панель отображает историю посещений и закладки.

Galeon является монолитным, законченным продуктом. Программа обладает массой возможностей и богатыми настройками, но добавить к этому нечего. Равно и убрать некоторые, возможно, лишние элементы не удастся.

Некоторые из функций, реализованные за последние годы в Galeon, перенесены в Epiphany в виде модулей расширения.

Плюсы:
+ тесная интеграция с рабочей средой GNOME
+ продвинутая работа с закладками
+ локальный портал

Минусы:
- проект практически не развивается
- отсутствие расширяемости

Эволюция идёт, и более слабые, медленные и неэффективные организмы вымирают. Не так давно мы проводили в пучину истории Оперу-12, глядя куда-то вдаль, молча слушая за спиной всхлипывания сочувствующих. В отличие от трупа последнего животного из Красной Книги, ею можно было ещё пользоваться 2-3 года, да и на некрофилов пользователи не смахивали. Похожая ситуация повторяется с Firefox на движке Gecko с последней наиболее удобной версией 56.0.2. Есть много полезной и привычной функциональности, не только встроенной, но и в аддонах (расширениях). Даже пониженное быстродействие - не основание для перехода к новой версии, если с ней теряется несколько полезных функций. А со старым движком есть, что терять...


Рассмотрим список того, чем ещё можно пользоваться в старой версии Firefox и с какими успехами идёт замена и восстановление этого в новых версиях. Что имеется совершенно нового, ради чего стоит всё бросить и забыть. (На самом деле - не обязательно. Ведь можно одновременно открывать старую и новую версии.)


Итак, то, о чём нас долго, около года предупреждали разработчики Firefox, свершилось. 14 ноября (по новому стилю) 2017 года версия 57 "Quantum" захватила основную ветку релизов браузера и уже не выпускала знамя победы из рук. Старые версии остались достоянием истории и тех доживающих свой век пользователей, которые ещё не осознали великого поворотного момента и неизбежности прихода нового строя.


То, что мы этого даже не очень заметили, говорит о том, что Firefox сам находится на обочине жизни большинству пользователей не нужны дополнения, а без них голодранцам и так в новом доме хорошо новая версия показала много улучшений - хорошую скорость срабатывания, новый дизайн окна и строения интерфейса дополнений. В среднем, значительно больше плюсов, чем минусов, а дополнения нарастятся сами по себе, как не раз бывало во времена великих вымираний версий даже в истории Firefox - вспомнить хотя бы версии 5-8 по сравнению с версией 3 или 4 - разбой и опустошение там были довольно долго. Потом менее катастрофические события были, как помнится на 13-й версии, потом на 21-22-й. Так что и тут ничего удивительного нет.


Удивительно другое - что разработчики так гибко приспособились делать революции, что прошли через последнюю подготовленными, сделав сразу несколько очень серьёзных изменений, каждый из которых ранее приводил к развалу и потере пользователей: они изменили 1) движок, 2) систему расширений, 3) дизайн интерфейса. А в последующих версиях продолжают внедрять серьёзные фичи типа контекстных контейнеров (март 2018).


Тем не менее, наличие уже работающей версии 56 "Gecko" с рядом старых аддонов - есть аргумент, чтобы хотя бы продолжить ими пользоваться, пока новых не понаизобретут. Ведь, в отличие от ранних версий Firefox (до примерно 25-30), падающих при расширении занимаемого ОЗУ более примерно 2.5 ГБ (около 20 работающих вкладок), последние версии 5X продолжали работать и при занятии 5.5 Гб и мешала лишь общая нехватка памяти в компьютере (у кого как, но я на вариантах с более 8 ГБ ОЗУ не тестировал). Пусть медленнее, но страницы открываются и выполняют свои функции.


Поэтому я заранее, в октябре-ноябре 2017 года пересмотрел последние версии Firefox (51-56) на предмет того, насколько хорошо они поддерживают актуальные на тот момент расширения. У меня лично давно водится пара десятков расширений, которые, несомненно, не все переживут смену движка, а пользу и удобства имеют, поэтому было интересно заранее подготовиться.



Только зарегистрированные пользователи могут участвовать в опросе. , пожалуйста.

Всем привет!



Это будет цикл статей в которых мы создадим свой собственный минималистичный браузерный движок. Каждая статья будет подкреплена реальным кодом и примерами.
По прошествии десяти статей у нас с вами будет минимальная рабочая версия браузерного движка, сильно минимальная. После этого, если запал не уйдёт и будет интерес сообщества, продолжим, и в итоге доберёмся до JS.


И конечно, первым делом необходимо понять, что такое браузер и браузерный движок.

Браузер и браузерный движок

Существующий мир сложно представить без браузеров. Они есть на многих устройствах: компьютеры, лэптопы, телефоны, игровые приставки. Если представить браузер в виде машины то браузерный движок это всё то, что скрыто под капотом вашего автомобиля.
Браузеры как и автомобили могут отличаться внешним видом и содержимым под капотом. Цвет, кнопочки на панели, аудиосистема. У кого-то под капотом двигатель V8, а у кого-то там масло течёт.


Браузер объединяет периферию и предоставляет функционал позволяющий манипулировать движком, его поведением, предоставляет дополнительные сервисы.
Браузерный движок выполняет всю "грязную" работу: загрузка, обработка, отрисовка данных и все возможные расчёты.


Всё как в автомобилях. Есть салон в котором присутствует педаль газа, тормоза и множество переключателей полезных и понятных пользователю. А есть большая механическая часть скрытая от пользователя под капотом.

Кто создает браузеры и движки

Разработкой собственного браузера занимается множество компаний: Google, Mozilla, Apple, Microsoft, Opera Software, Яндекс, Ростелеком, Vivaldi Technologies, много их


Каждый добавляет какие-то свои "фишки", сервисы в создаваемый браузер. К примеру, Яндекс интегрирует свои сервисы, поиск.


С браузерными движками дела обстоят кардинально иначе. Вот список движков, их разработчиков и обладателей:

  • Blink: Google
  • Gecko: Mozilla
  • WebKit: Apple
  • EdgeHTML: Microsoft

Это основные обладатели и разработчики движков. В разработке им помогают сторонние компании на определенных условиях.


Например, рассмотрим самый популярный проект от компании Google - Chromium. Данный проект содержит в себе движок Blink. Создавать данный проект Google помогают такие компании как Intel, Facebook, IBM, LG Electronics, NVIDIA, Yandex. Полный список можно посмотреть .
Условия на которых компании помогают создавать Blink/Chromium описаны в разделе Legal stuff на сайте проекта Chromium. Если кратко, то всё что вы создаёте принадлежит (не эксклюзивно) Google.


Браузеры компаний Opera, Яндекс, Ростелеком и другие используют именно этот браузерный движок. Если быть до конца откровенным то заявления вроде "у нас есть свой браузер" не совсем правда. Собственные сервисы - да, а вот всё остальное принадлежит другой компании(ям). И эта другая компания предоставляет свой браузерный движок на определенных условиях.

Лицензии браузерных движков

Любой открытый код содержит в себе лицензию с описанием условий по использованию данного кода, и браузерные движки не исключение.


Если сразу и кратко: лицензии сносные, прям вот из ряда вон ничего нет. Кроме EdgeHTML который закрыт. Легально утащить к себе какой-то проект и закрыто разрабатывать/изменять видимо не выйдет. Лицензии призывают к взаимной открытости.



Открытый исходный код, ответвление движка WebKit. Как и в WebKit заявлено четыре лицензии:

Самый популярный браузерный движок. Он входит в состав проекта Chromium. Именно на основе Chromium создают собственные браузеры.



Открытый исходный код. Заявлена одна лицензия:



Активно развивается компаний Mozilla и используется в собственном браузере компании - Firefox. Так же используется в браузере Tor Browser обеспечивающий анонимное пребывание в сети.


Как основа для производителей браузеров большой популярности не имеет.



Открытый исходный код. Заявлено четыре лицензии:

Развивается компанией Apple и используется в собственном браузере компании - Safari. Ранее многие компании использовали в своих разработках WebKit, но после покинули проект и переключились на Blink от Google.



Закрытый исходный код. Проприетарная лицензия.


Движок используется для браузера компании Microsoft под названием Edge, который пришёл на смену Internet Explorer. Это их новый движок. Предыдущий Trident (MSHTML) компания прекратила развивать.

Риски

Использование стороннего движка порождает очевидные риски:

  1. Закрытие исходного кода
  2. Выход ключевых компаний из разработки
  3. Смена лицензий на код

Никто не может гарантировать, что исходный код свободного браузерного движка не будет закрыт для публичного доступа. Так же возможен выход ключевых компаний из разработки свободного движка, что фактически является его закрытием.


Компании развивающие собственные браузеры должны понимать, что всё будет "хорошо" пока они не составляют угрозу/конкуренцию разработчикам оригинального браузера/браузерного движка. Думаю это очевидно. Компания тратит на разработку движка свои ресурсы, но вдруг появляется другая компания которая используя их движок захватывает рынок. Реакция, думаю, очевидна - смотрим список рисков выше.


«Мы создадим копию движка на текущий момент и продолжим развивать сами» - именно так отвечают производители браузеров на сторонних движках. Большое заблуждение, не выйдет просто так продолжить разработку чужого движка. То есть, взять программистов и поставить им задачу - пишите браузерный движок. Написание браузерного движка сложный технологический процесс. Подтверждением этого служит список их обладателей.


Для примера, компания Microsoft создает свой движок, хоть и закрытый. Google вместе с Apple разрабатывали WebKit, но позже Google сделал форк и начал развитие собственного движка Blink.


При этом нужно понимать, что браузерный движок постоянно развивается. Постоянно обновляются спецификации, добавляются новые возможности, улучшаются текущие. Это живая работа. Если взять какой-либо движок на текущую дату и просто использовать его для своего браузера то, примерно, через год-два браузер на этом движке морально устареет.

Адаптация движков

Существует проблема адаптации стороннего движка под нужды собственного браузера. На адаптацию тратится не мало ресурсов. При этом нужно понимать, что браузерные движки часто обновляются, что создает систематические проблемы при интеграции в собственный браузер.

Собственный движок

Прежде всего стоит ответить на главный вопрос - зачем создавать свой браузерный движок? А точнее, кому не надо создавать свой движок?


Свой браузерный движок не стоит создавать если:

  • Нет задачи/стремления захватить рынок.
  • Браузер нужен лишь номинально. Сейчас это модно, делают даже школьники.
  • Создаваемый движок не будет отличаться от существующих: скорость, надёжность, адаптивность.
  • Идёт освоение бюджета.

На текущий момент нет сложности создать собственный браузер на стороннем движке. Их наплодилось не мало и как-то выделиться среди всей этой массы можно только созданием браузера на исключительно своих компонентах, на собственном движке.


Стоит ли заниматься разработкой движка для "заработка", для создания стартапа?


Данный вопрос скорее к сфере его применения. Мне видится несколько направлений:

  1. Собственно, создание полноценного браузера. Сотрудничество с поисковыми системами, различными сервисами. Создание особых версий для государственных структур.
  2. Рынок IoT (интернет-вещей), а так же адаптация для телевизоров, приставок, портативных устройств.
  3. Сервисы на отдельных компонентах браузера. Например, умный анализ контента сайта на риски: запрещенные комментарии, посты от пользователей и так далее. Технический анализ сайтов.
  4. Продажа движка. Самое простое, написать под компанию.

Кроме того, престиж компании разработчика браузерного движка значительно выше чем у клонов. Именно как технологической компании. Это сказывается на популярности компании и привлекательности для существующих и будущих сотрудников. Но это уже скорее о честолюбии, встать в одном списке с такими компаниями как Google, Mozilla, Microsoft.

Заключение

Без сомнения, создание браузерного движка процесс сложный и требующий значительных ресурсов. Подходить к этой разработки необходимо крайне серьёзно и с чётким планом по развитию. Кроме того, это не тот продукт прибыль от которого можно получать на промежуточном этапе разработки. Да, отдельные компоненты можно адаптировать под нужды компаний, но я уверен, что такой подход только отнимет время и значительно затянет разработку.


Развитие браузерного движка сильно зависит от метода его разработки. Каким он будет: открытым, закрытым?


Я уверен, что если компания занимается развитием браузера на основе стороннего браузерного движка то ей следует серьёзно подумать над перспективой создания собственного.


Компании далёкой от браузеров заняться разработкой браузерного движка тоже можно, и не только для того чтобы создать браузер. Если итоговый продукт будет полноценным браузерным движком превосходящим существующие то он будет востребован. Сферы применения были описаны выше.

Цикл статей

  1. Браузер!= Браузерный движок
  2. Браузерный движок. Архитектура, работа с памятью.
  3. HTML парсер. Токенизация, обработка токенов, построение дерева.
    Пишем свой парсер. Из каких стадий состоит разбор HTML, в чём сложность и как разогнать HTML парсер в несколько раз.
  4. Кодировки в HTML. Как определяются, как конвертируются.
    Напишем свой кодировщик и обсудим положение дел.
  5. CSS парсер и CSS модули. Токенизация, обработка токенов.
    Создадим свой CSS парсер. Разберём основные аспекты обработки CSS. Выясним в чём сложность, на что тратятся ресурсы и как написать самый быстрый парсер CSS/модулей.
  6. CSS парсер. Grammar.
    Пишем собственный Grammar для CSS модулей формирующий быстрый, человеко-читаемый код.
  7. CSS Selectors. Как устроены, быстрый поиск HTML элементов по селекторам.
  8. Layout. Скрещиваем HTML и CSS.
    Назначаем CSS свойства HTML элементам. Разберём порядок назначения, приоритеты и что делать если CSS постоянно изменяется.
  9. Layout. Потоки. Поддержка CSS свойства display: block.
  10. Шрифты. Как расчитывать размер символов, строк.
    Напишем свой парсер шрифтов. Узнаем, что такое baseline, descender, x-height, как хранятся символы и углубимся в тему расчётов размера символов.
  11. Layout. Поддержка CSS свойства display: inline.

Судьба Modest

Кто-то из читателей, возможно, знает, что я занимаюсь разработкой браузерного движка. В моих публикациях можно найти предыдущие статьи на эту тему.


К сожалению, проект Modest пришлось завершить. Какое-то время проект развивался в компании, в которой я раньше работал. Мне пришлось покинуть компанию. Появились разногласия которые не позволили продолжить разработку проекта. Обычный рабочий процесс, такое бывает.


Не смотря на то, что у меня есть все права на Modest, на код никто не претендует (подписаны бумаги), я решил его "закопать". Чтобы ни у кого не возникало ложных ощущений. Тут надо понимать, что закапывается и весь основной код который развивался вне компании (mycore, myhtml). Но, есть и плюс, возможно, я стал чуть умнее.


Мной было потрачено очень много времени на изучение спецификаций, осознания их, поиск оптимальных алгоритмов, написание черновиков (прототипов), создание myhtml (самый быстрый парсер html) в свободное от работы время, и просто так забросить эту тему я пока не могу. Было потрачено много выходных, праздников, вечеров, ночей.


Теперь я занимаюсь разработкой нового браузерного движка. Разработка с ноля. Имени у него пока нет, только кодовое - lexbor. Вся основа уже написана: работа с памятью, общие алгоритмы, заложена будущая архитектура. Как всегда, всё краше и лучше чем было. В общем, у меня есть самое главное: технология и чёткое видение/понимание как и что развивать.


Одному мне такой проект не потянуть. Если поддержки не найду (финансирования) то прекращу разработку и присоединюсь контребьютером к существующему открытому движку (Blink или Gecko). Попробую побыть там волонтером и реализовать свои идеи. Занимаюсь всем этим исключительно в нерабочее время.


Тут видимо должна быть картинка «ты должен был бороться со злом, а не примкнуть к нему».


Спасибо за внимание!


Теги:

  • html renderer
  • browsers
  • web engine
  • high-performance
Добавить метки

Браузеры — штука тонкая для веб-разработчика. Хотя технологии, используемые в браузерах, стандартизируются Консорциумом Всемирной Паутины (World Wide Web Consortium, W3C), этот консорциум как правило не успевает за развитием технологий, и поэтому почти всегда в браузерах новые функции появляются раньше, чем в спецификации W3C. Особенно это касается свойств Каскадных Таблиц Стилей (Cascading Style Sheets, CSS), хотя применимо и к последним тегам HTML5 (HyperText Markup Language — язык разметки гипертекста, HTML, версия 5). Таким образом получается, что самые передовые и новые технологии, позволяющие делать красивые сайты, могут появиться в одном браузере и не появиться в другом — тут всё зависит от желания, усердия, количества и качества разработчиков, данный браузер делающих.

Чтобы сделать красивый и работоспособный сайт, требуется узнать и продумать, как и в каких браузерах он будет выглядеть. Не обязательно проверять все браузеры — достаточно знать, на каком движке тот или иной браузер основан. Несмотря на всё обилие браузеров в мире современных программ, популярных браузеров, которыми пользуются почти все, не так уж много, а движков, на которых они основаны, ещё меньше. Таким образом, существуют браузеры-аналоги, в которых почти всё одинаково, за исключением мелочей, которые зачастую тоже можно настроить.


Пожалуй самый распространённый движок, широко используемый в современных браузерах, это Webkit . В этом движке как правило (за редкими исключениями) первыми появляются все нововведения в веб-технологиях. Движок обладает исключительной простотой использования и настройки, минималистичным интерфейсом. В системе каждая открытая вкладка (а также каждый плагин и расширение) является отдельным процессом, что повышает стабильность работы. На нём работают такие браузеры как Google Chrome (с версии 28 вариант Webkit от Google называется Blink), Яндекс.Браузер, Safari, Рамблер Нихром, Mail.ru Хром, SrWare Iron, Maxthon, встроенные браузеры на Андроид-смартфонах и планшетах, и в других менее известных проектах. Разрабатывается корпорацией Google и сообществом разработчиков по всему миру. Новые CSS-свойства, ещё не успевшие попасть в стандарт W3C, поддерживаются в нём с префиксом -webkit.

Gecko — движок, ориентированный на улучшенную поддержку стандартов. Так же как и Webkit старается внедрять все последние нововведения как можно скорее, однако, в отличие от Webkit, работает несколько медленнее. Весь браузер работает единым процессом, из-за чего может подтормаживать и падать. Видимо по этой причине в последнее время ходят слухи, что его заменят на Webkit. Разрабатывается некоммерческой организацией Mozilla Foundation. Новые свойства CSS поддерживаются с префиксом -moz. Используется в браузерах Firefox, Konqueror, K-Meleon. Раньше на нём же работал браузер Netscape, пока его разработку не свернули.


Presto — движок, который характеризуется наиболее быстрой работой JavaScript, в него интегрирован клиент почты и читалка RSS-лент. В общем забеге не отличается особенной быстротой, однако довольно легковесный и работает без проблем даже на старых компьютерах. В памяти представляет один процесс, из-за чего может при некоторых условиях падать — это компенсируется автоматическим открытием всех открытых в прошлый раз вкладок. Распознаёт большинство нововведений вебкит без лишних заморочек, но не все они работают правильно (например, анимация). На нём работает браузер Opera. Новые свойства CSS поддерживаются с префиксами -o, -webkit.

Trident — пожалуй, наиболее отстающий в плане современных технологий движок. Самые новые свойства CSS и теги HTML5 в нём появляются редко, а чаще тогда, когда они уже реализованы в других браузерах. Последняя версия в скорости работы не отстаёт от других браузеров, в то же время максимально интегрируется в Windows. Также работает в нескольких процессах, что увеличивает стабильность. Стандарты W3C до сих пор поддерживает не полностью, однако в последнее время ситуация улучшается. Новые свойства CSS иногда поддерживаются с префиксом -ms. Как вы наверное уже догадались, на этом движке работает браузер Internet Explorer (IE) корпорации Microsoft.

Все обновления дизайна, которые делаются на наших сайтах, так или иначе будут отображаться в последних версиях всех популярных браузеров. Абсолютно всё будет как нужно работать в браузерах на основе Webkit и Gecko. В Presto (Opera) некоторые анимации могут работать не так как нужно, причём заставить их работать как следует мы пока не нашли способа. И наконец в Trident (IE) обнаружится больше всего пробелов. В нём плохо работают не только наши анимации, но также не отображаются некоторые фоны. Ситуация может измениться только с выходом следующей версии IE.

Для тех, кто хочет насладиться всем разнообразием современных веб-технологий, рекомендуется перейти на Webkit-браузер. Легче всего это будет сделать, установив Яндекс.Браузер , о котором мы уже упоминали. И вот почему.


Во-первых, он перенесёт все ваши настройки, закладки и прочее из прежнего браузера в себя. Он умеет добывать личные настройки из Google Chrome, Firefox, Opera (не вытаскивает пароли), Internet Explorer (не вытаскивает Cookie), это только то что мне пишет. Возможно, при наличии других браузеров он предложит импортировать настройки из них. Во-вторых, этот браузер является как бы гибридом Google Chrome и Opera, взяв всё лучшее от обоих: от Оперы уникальные технологии сжатия трафика, настраиваемую стартовую панель быстрого доступа к сайтам (SpeedDial) и модифицированное отображение адреса сайта в адресной строке, от Хрома — скорость, надёжность, простоту и последние нововведения веб-технологий. Можно конечно выбрать например Google Chrome, там тоже есть импорт настроек, но он не берёт их из Оперы и там нет по умолчанию стартовой панели и т.д. Теперь вы в курсе, на каких движках работают браузеры, их отличия и функционал, и сможете выбрать лучший.

Webkit — 38,6%
Presto — 26,5%
Gecko — 18,7%
Trident — 11,2%

Кто пожелает остаться на прежнем браузере — что ж, оптимизаторы будут стараться поддерживать как можно больше различных браузеров, чтобы сайты в них смотрелись максимально одинаково. Пока такого достичь не удалось. Пока…

И других.

Gecko используется во многих браузерах, таких как Mozilla Firefox, SeaMonkey, Camino, Epiphany, K-Meleon и других. Gecko постоянно находится в процессе разработки под руководством компании mozilla.org. Ранее Gecko был известен под кодовыми именами Raptor и NGLayout; новое название было выбрано в связи с рассмотрением дела о нарушении прав на использование старой торговой марки.

Что такое браузерный движок

По существу, это программная библиотека, которая использует контент (информацию, размеченную с помощью языков HTML и XML; графические файлы, апплеты и т.д.) и информацию о его оформлении (каскадные таблицы стилей, тэги языка HTML, используемые для визуальной разметки) и отображает отформатированный контент на экране. Таким образом, движок "заполняет" область информационного наполнения, которая представляет из себя пустое пространство внутри окон графического интерфейса пользователя chrome .

Формально движок определяет правила размещения контента на странице. Ядро этого движка очень быстрое. Кроме того, Gecko предоставляет средства анализа документов различных типов (HTML, XML, SVG и др.), улучшенные возможности визуализации, включая создание составных изображений и их трансформацию. Движок поддерживает встроенный интерпретатор языка JavaScript и плагины.

Более того, Gecko настолько быстрый и мощный, что он используется для создания пользовательского интерфейса (chrome) некоторых приложений. Иными словами, этот движок используется не только для отображения контента, но и для отображения панелей прокрутки (scrollbar), панелей инструментов (toolbar), а также разнообразных меню. См. также информацию о технологии XUL .

Чем отличается браузерный движок, такой как Gecko от полнофункционального web-браузера?

Gecko предоставляет надёжную платформу для отображения контента на экране, включая движок для вёрстки, и сопутствующий набор компонентов браузера. Тем не менее, Gecko не оформляет пакет всех этих этих компонентов в интегрированное, полноценное, дружественное к пользователю приложение (включая меню, панели инструментов и др.), такое как Firefox.

В рамках проекта mozilla.org все необходимые компоненты собираются в полноценные приложения, такие как Firefox, Thunderbird, SeaMonkey, Camino. Все они свободно доступны для скачивания с сервера mozilla.org. Компания Netscape выпускала свои собственные версии браузера под торговой маркой Netscape Navigator. Другие компании также выпускают свои собственные программные продукты, которые использую движок Gecko. Вам будет интересно ознакомиться с частичным списком приложений использующих движок Gecko посредством технологии XULRunner, на странице XULRunner Hall of Fame .

Третьи лица, такие как независимые продавцы программных продуктов (ISV) и поставщики аппаратного обеспечения отбирают компоненты, которые они хотят использовать в собственных приложениях или устройствах. Некоторые компоненты браузера, такие как закладки, журнал посещений, адресная книги и т.д., не распространяются как часть Gecko. Тем не менее, исходный код всех этих компонентов доступен для бесплатной загрузки с сайта mozilla.org.

Почему мы создаём новый движок?

Начальный браузер Mozilla, впервые выпущенный под названием Navigator 1.0, был быстро разработан небольшой командой разработчиков, страстно желавших создания революционного, новаторского продукта, новинка, "захватчика рынка" - и они в этом серьезно преуспели. После, когда web эволюционировал, компания Netscape собрала отличную команду, которая перестроила движок, выведя его на новый уровень, необходимый для создания будущих продуктов. Gecko делает возможным создание революционно нового класса динамического, намного более интерактивного контента, и предоставляет больший контроль над визуальным отображением для web-разработчикам, используя открытые стандарты вместо проприетарных API. Мы приглашаем Вас присоединиться к работе команды на странице getting involved .

Как движок Gecko используется в иных продуктах компании mozilla.org ?

Gecko лежит в основе браузера Netscape 6, обеспечивая работу всех его компонентов, включая Navigator и Messenger. Технология Gecko также ускоряет отображение портала Netscape.com, быстрее доставляя интерактивный контент и сервисы. Архитектура Gecko будет обслуживать Netscape также и в будущем, позволяя внедрять больше инноваций за меньшую стоимость, облегчая распространение и обновление ПО, обеспечивая их межплатформенную поддержку.

Как компания Netscape собирается использовать Gecko?

Как могут другие компании и организации использовать этот движок?

Поскольку движок Gecko относительно невелик и легковесен, а его исходный код открыт, другие компании и организации могут легко использовать эту технологию. Многие производители аппаратного обеспечения, создающие устройства с сетевым доступом, желают добавить функциональность веб-браузера. Аналогично, многие разработчики программного обеспечения желают обеспечить функциональность веб-браузера в свои приложения, но независимая разработка веб-браузера не входит в их планы. Эти разработчики могут выбрать необходимые компоненты браузера из библиотеки Gecko, и упаковать их вместе со своими компонентами в собственный полноценный продукт.

Над поддержкой каких открытых стандартов в движке Gecko работает команда разработчиков и почему она поддерживает их?

  • HTML 4.0, тег canvas из HTML 5
  • CSS 1 и CSS 2
  • DOM 0/1/2
  • XML 1
  • JavaScript 1.5
  • HTTP 1.1 и FTP
  • Unicode
  • OJI (Open Java Interface)
  • Image formats
    • JPEG, PJPEG

Обозначает ли полное соответствие движка стандартам отсутствие багов в данной или последующих версиях?

Как Gecko форматирует документы XML?

Для форматирования XML-документов движок использует технологии CSS и XSLT .

В случае, если с XML-документом не связан никакой документ CSS или XSLT , Gecko отображает исходный код документа, отформатированный стилевыми таблицами по умолчанию.

Чем Gecko полезен авторам и разработчикам контента?

Для авторов разработка, а после тестирование каждой web-страницы несколько раз для поддержки различных, несовместимых между собой объектных моделей документов (DOM) браузеров, зависимых от поставщиков ПО, является достаточно утомительным занятием. Вот почему они требуют, чтобы все поставщик программного обеспечения полностью поддерживали открытые стандарты, перечисленные выше, чтобы:

  • иметь возможность воспользоваться принципом "написал единожды - просматривай везде";
  • иметь в своём распоряжении богатую, мощную систему форматирования и объектную модель.

Надёжная поддержка этих стандартов в Gecko делает его платформой, которую выбирают разработчики web-приложений и авторы контента во всём мире.

Построен ли Gecko API на основе ActiveX, COM, JavaBeans?

Благодаря технологии XPCOM , межплатформенному подмножеству COM, Gecko может быть повторно использован на всех платформах. Технология COM, изначально разработанная фирмой Digital, а позже перенятая компанией Microsoft, является стандартом де-факто для модульных интерфейсов на платформах Windows.

Более того, на платформах Windows, интерфейсы Gecko XPCOM "обёрнуты" в элементы управления ActiveX. Таким образом, разработчики на языке Visual Basic могут использовать их в своих программах. Тем не менее, на иных платформах элементы управления ActiveX не могут быть использованы, ибо эта технология специфична для платформы Windows.

Оболочка (wrapper) XPCOM для JavaBean в данный момент не разрабатывается, но это не означает, что в архитектура Gecko не позволяет разработать такой интерфейс в будущем. Исходный код и документация для этих интерфейсов доступны на сервере проекта mozilla.org.

Совместим ли Gecko API с Microsoft Trident API?

Интерфейс XPCOM движка Gecko отличается от API аналогичного продукта корпорации Microsoft. Главные отличия между этими двумя моделями состоят в способе отражения объектной модели документов (DOM) в этих интерфейсах.

Интерфейс Microsoft Trident отражает DOM в проприетарном API, тогда как Gecko предоставляет интерфейс DOM следуя стандарту W3C. Существуют, кроме того, иные отличия. Благодаря усилиям Adam Lock, создан частичный уровень совместимости, облегчающий разработчикам переход от движка компании Microsoft к движку Gecko.

Какие платформы поддерживает Gecko ?

Сегодня Gecko поддерживает следующие платформы:

  • Win32 (Windows 95, Windows 98, Windows NT 4, Windows 2000, Windows XP, Windows Vista - Gecko 1.9)
  • Linux

Производители ПО и волонтёры участвующие в проекте mozilla.org переносят движок на другие платформы. Среди прочих, в процессе разработки находятся проекты по портированию Gecko на Solaris, HP/UX, AIX, Irix, OS/2, OpenVMS, BeOS, и Amiga.

Каковы основные компоненты Gecko?

Движок состоит из следующих компонентов:

  • Синтаксический анализатор (parser) для HTML и XML
  • Движок для вёрстки (layout engine) с моделью контента (content model)
  • Стилевая система (обрабатывает CSS)
  • Интерпретатор JavaScript (SpiderMonkey)
  • Графическая библиотека (image library)
  • Сетевая библиотека (Necko)
  • Набор виджетов и библиотек для визуализации графики, специфичных для платформы (Win32, X, и Mac)
  • Библиотека для управления предпочтениями пользователей
  • Mozilla Plug-in API (NPAPI), используемый для поддержки интерфейса плагинов для браузера Navigator
  • Open Java Interface (OJI), с поддержкой виртуальной машины Java (JVM) компании Sun
  • Внутренний интерфейс инфраструктуры описания ресурсов (RDF)
  • Библиотека для отображения шрифтов
  • Библиотека средств защиты (