Wednesday, July 29, 2009

Добавление поддержки CSS в GtkHtml

В общем идея:
  • сейчас в gtkhtml - используется некое подобие SAX парсера, на основе которого сложно создать что-то подобное поддержке CSS. Конечно можно, так как все таки дерево элементов существует, но долго и есть другой вариант;
  • нужно заменить парсер на использование libxml;
  • заменить рендеринг на использующий XmlTree
  • использовать рендеринг в два прохода:
    • первичный рендеринг только html без css c созданием запросов на css
    • вторичный при доступности css применять его к дереву и вызывать перерисовку;
  • в теории мы получим немного более медленный рендеринг - запускающийся только после получения полного дерева, сейчас редеринг идет в параллель с парсингом.
Сейчас реализовал только замену парсера(мой fork на github) и тестовые приложения для проверки применения css. Для парсинга используется libcroco. За основу тестовых приложений взят код - позволяющий применить css к xml c использованием пространств имен.

No comments: