Легковесные браузеры

Давайте отвлечемся от таких монстров веб-обозревания, как Firefox, Opera, IE и обратим внимание на несколько молодых проектов, основанных на библиотеке WebKit.
Для начала, пара слов о самом WebKit. Это движок, используемый для рендеринга страниц небезызвестным Safari. Когда-то он был форкнут от KHTML, движка Konqueror, доработан и использован в своих целях (надо сказать, с пафосом: один из аргументов в пользу Safari, по мнению Apple, было «Open-source rendering engine»), при этом часть исправлений и дополнений были внесены и обратно в KHTML. После этого WebKit получил свое нынешнее название (когда-то было WebCore) и теперь продолжает разрабатываться.
Замечательна эта библиотека тем, что по скорости обработки сравнима с Opera, построена, вслед за KHTML, основываясь на веб-стандартах, распространяется под лицензией LGPL-2 и уже успела себя зарекомендовать в Safari и встроенном браузере Symbian 9.

Список приложений говорит нам о таких открытых webkit-браузерах, работающих под Linux, как Arora, Atlantis, Midori. Но раньше там же перечислялись Kazehakase и Epiphany. Google же предложил еще FoxKit.
Итак, 6 браузеров. Два (Arora и FoxKit) на Qt, остальные — на Gtk, FoxKit привязан к KDE4, Epiphany и Atlantis — к Gnome. Поскольку я пользуюсь KDE и не имею Гнома, смог собрать и изучить только четыре из шести браузеров.
  • Arora
    Этот браузер был форкнут от демо-браузера, показывающего простоту использования WebKit, встроенного в Qt-4.4. Как полагается, теперь живет своей жизнью и страдает от того, что qt-webkit несколько отстает от webkit-gtk.

    Плюсы: Хорошо выглядит среди Qt/KDE-приложений, сохраняет сессии.
    Минусы: qt-webkit пока что не поддерживает плагины, почему-то Shift+wheel не скроллит постранично, webkit старый — не проходит Acid3
  • Foxkit
    Один программист решил написать браузер на qt-webkit, но, чтобы не отставать на милю от Arora, решил использовать фичи от kdelibs. Я смог собрать это чудо только после замены uint(x) на (unsigned long)x во всех исходниках (заточен под 32 бита, видимо). Панель навигации я не нашел, хотя на скриншоте автора она присутствует.

    Плюсы: интеграция с KDE
    Минусы: пришлось патчить, не нашел Location Bar, минусы Arora тоже в силе
  • Midori
    Пожалуй, найболее известный на текущий момент webkit-браузер, не считая Safari, поскольку раньше всех начал хоть как-то работать. Написан с нуля (из рассматриваемых здесь, пожалуй, единственный), активно разрабатывается. У меня собрана версия 0.0.19 с webkit-gtk-0_p35417, все из портов Gentoo. Разработчик предупреждает о нестабильности всвязи с постоянным изменением API WebKit, что вполне подтверждается на практике.

    Плюсы: приятный интерфейс, поддержка netscape-плагинов, большое количество потенциальных настроек.
    Минусы: Нестабильность (не по вине автора), проблемы с кодировками — см. скриншот к Kazehakase
  • Kazehakase
    Самый старый из рассмотренных четырех браузеров, основная цель — корректная поддержка японского языка на страничках. С самого рождения он умеет работать с gecko, когда-то умел с WebCore, а сейчас научился и с WebKit. Собирается из портов Gentoo без нареканий (0.5.5-r1), интерфейс хорошо продуман, имеет много настроек. Плагины тоже должны быть, но у меня что-то с руками, видимо — у друга в Midori были.

    Плюсы: как и Epiphany, поддерживает два движка на выбор. Очень гибкий в поведении.
    Минусы: при работе с WebKit необходимо указывать протокол («http://», например), не работает управление загрузкой (Stop, например). Опять же кодировка; браузер начинает адекватно реагировать на ваши действия только после тщательной обработки настроек напильником.


Следует отметить, что Kazehakase и Midori имеют встроенный менеджер закачек (я, правда, не тестил).

Вывод: На текущий момент можно пользоваться, видимо, двумя из шести браузеров с WebKit в основе — Arora и Epiphany (подтвердите?). Но и с ними не так гладко — первый не подойдет для youtube, второй может не угадать кодировку на русскоязычном сайте. Но уже можно видеть, что Apple не зря проделал работу над библиотекой — легким браузерам быть!

Эпилог: Когда вышел FF3, я его немного погонял по характерным страничкам. Он стал работать заметно быстрее FF2 и немного медленнее Konqueror, при этом стал слегка разбивать некоторые страницы WWW. У меня сложилось впечатление, что Mozilla много кода взяла из WebKit, но я не уверен в этом. Если это действительно так, следует порадоваться за стандартизацию браузеров — еще чуть-чуть, и FF будет обрабатывать HTML так же, как Safari, к ним должна подтянуться Opera (которая, кажется, разрабатывалась тоже исходя из стандартов), сделанным на основе тех же стандартов многие ожидают IE8. И тогда наступит счастье верстальщиков — везде все так, как должно бы быть.

UPD:Под Win кроме сафари был Swift, но умер, а также вполне актуальна Arora, ибо написана она на крайне кроссплатформенном Qt4. Плус есть проект KDE4 for Windows, в котором есть Konqueror.

P.S. Просьба не разжигать холивар Opera vs. FF vs. Safari и иже с ними — топик, скорее, предназначен для ознакомления с новыми софтинами тем, кому это интересно. Может быть, кто-то из программистов обратит свое внимание на какой-нибудь из проектов и поможет ему развиться быстрее?
+8
16 августа 2008, 00:49
stolen 31,0 G+

комментарии (23)

НЛО прилетело и опубликовало эту надпись здесь
–1
0n1y_0ne #
Да-да, присоединяюсь к предыдущему хабраюзеру и изнеможденно интересуюсь, есть ли подобная бяка под винду акромя сафари. Ибо последний ну хоть ты с кармен электра трахнись вменяемым браузером называться не может.
0
khim #
Не буду ничего говорит про Safari, но могу сказать что портировать WebKit под Windows — проблема. Я говорил с людьми, которые пытались это делать. Ну конечно WebKit может работать под Windows — но только если его встроить в Safari. Ибо он заточен реально только под две OS: *nix (там он жил изначально) и MacOS (туда его портировал Apple). В Safari есть некоторое количество библиотек, которые он тянет с собой из MacOS, что и позволяет запускать WebKit в Windows… но исходников-то от них нет! И с лицензией непонятки. Так что от их спользования WebKit нужно отучать… Вроде как и работы там не человеко-годы, но… обычно энтузиазм иссякает раньше чем удаётся в недобраузере запустить Flash… А без него мало кто захочет пользоваться таки браузером…

Будем надеяться кто-нибудь всё-таки сделает полность open-source browser для Windows на основе WebKit'а…
0
stolen #
Qt4.4 кроссплатформенный и содержит webkit.
Портировать webkit-gtk, мне кажется, не должно быть крайне сложно, так как Gtk+2 уже портирован.
0
stolen #
0
stolen #
В инструкции говорится, что под Win рекомендуется собирать в Cygwin (там есть gcc, под который заточен код)
0
desterman #
>Ибо он заточен реально только под две OS: *nix (там он жил изначально) и MacOS (туда его портировал Apple).
т.е. MacOS уже не *nix-based os?!
0
khim #
т.е. MacOS уже не *nix-based os?!
Вы издеватесь или притворяетесь? В MacOS много технологий из *nix, но вот GUI (а они, в общем, для браузера таки нужны) не имеют ничего общего с X'ами.
0
stolen #
С соседним комментарием согласен. Единственное, что мешает кроссплатформенности несистемных приложений — разное устройство графического API.
0
stolen #
Напишу в апдейт
0
ukko #
А мне нравится по мелочи использовать w3m, который не зависит от ДЕ :)

PS спасибо, посмотрел на другие лёгкие браузеры помимо epiphany
0
4ekuct25 #
насколько мне известно, Epiphany только заявил о переходе на WebKit, но на данный момент все еще основан на Gecko
0
khim #
Ещё нет релиза, но уже есть экспериментальные сборки. Должен перейти на WebKit в GNOME 2.26…
0
stolen #
Тут несколько другое мнение.
0
4ekuct25 #
как я понял, в составе GNOME идет версия с Gecko, но можно самому собрать с WebKit'ом (с версии 2,19,6).
а если прочитать это, то становится ясно, что с версии 2,24 Epiphany откажется от поддержки Gecko (причины указаны там же) и сосредоточится только на WebKit'e. Так-то! :-)
0
zencd #
— «слегка разбивать некоторые страницы WWW»
— это как?

— «У меня сложилось впечатление, что Mozilla много кода взяла из WebKit»
— Впечатления, они ведь обычно на чём-то основаны, да?

«Все» API постоянно меняются: и WebKit, и Gecko, однако это не мешает разработчикам Firefox и Safari выпускать стабильные версии браузеров, а вот разработчику Midori мешает. Выхода нет, да :'-(
0
khim #
«Все» API постоянно меняются: и WebKit, и Gecko, однако это не мешает разработчикам Firefox и Safari выпускать стабильные версии браузеров, а вот разработчику Midori мешает.
Разработчики Safari и Firefox — это те самые люди, которые эти API и меняют. А вот разработчик Midori — пользуется чужим движком. Вы лучше посмотрите как быстро новые движки Firefox встраиваются в сторонние проекты!
0
zencd #
Независимо от того кто пишет браузер, есть стабильные ветки, именно на которые и разумно полагаться с точки зрения совместимости с API. Если даже (ну вдруг) API меняется каждый день и в минорных версиях тоже (3.1.* там), всегда есть старые снэпшоты (не самые-самые новые).

Тут или мидориец невнятно оправдывается, или у меня мало информации, потому что по имеющейся ничего хорошего не выходит :-)
0
stolen #
Зайдите третьим FF на морду vkontakte, там чекбокс окажется поверх кнопки. Были еще какие-то косяки, существовавшие в Konqueror и всплывшие в FF3.

Собственно, на этом и основаны впечатления — был FF дико медленный и обрабатывал своеобразно и был WebKit, работавший быстро и по стандартам. И вдруг, FF3 начал работать в несколько раз быстрее FF2, проходя Acid2 и местами показывая на страничках сходные с KHTML косяки. Вот и сложилось впечатление, что разработчики очень внимательно вчитывались в WebKit, переписывая Gecko.
+1
4ekuct25 #
где там наезжающий чекбокс на vkontakte — все норм (ff 3.0.1)

мне кажется, что ваши предположения основаны на ничем не подтвержденных догадках, а схожие проблемы с отображением одних и тех же сайтов у Gecko и WebKit вероятней всего просто совпадение, хоть и очень странное :-)
0
stolen #
Да, действительно, в 3.0.1 исправили. В 3.0.0 (или каком-то из rc) была бага, сейчас лень собирать для демонстрации.
Я не настаиваю на истинности своего предположения. Мысли вслух, так сказать.
0
shergin #
Под макось есть много неплохих WebKit-браузеров, например Shiira.
0
desterman #
имхо Midori самый лучший из представленных =)
автору спасибо за обзор

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