Главная

GSoC проект: Интеграция движка Webkit в нативный браузер Haiku

Оригинал статьи можно найти здесь.

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

О том, что такое Webkit, можно почитать на википедии.

Интеграция движка Webkit в нативный браузер Haiku

Студент: Maxime Simon
Наставник: Ryan Leavengood

Я студент третьего курса, факультета Компьютерных наук в Университете города Ренн, это во Франции. У меня есть некоторый опыт разработки благодаря нескольким академическом проектам, написанным в основном на Java и Си.

Наш первый крупный проект был написан на мало известном язык под названием «oRis», объектно–ориентированный язык, разработанный в рамках докторской диссертации Фабрисом Харроуэтом. Задачей проекта заключалась в том, чтобы создать имитацию роботов ищущих путь, с базовым поведением и способностью сотрудничать для достижения общей цели в виртуальном лабиринте. Этот проект научил нас управлять проектом при помощи Subversion. Проект находится здесь: http://code.google.com/p/csr/.

В этом году наш основной проект заключался в написании компилятора императивного языка на Java, дал хорошее понимание широко распространенных компиляторов. Проект находится здесь: http://code.google.com/p/compilateur–projet/.

Помимо этого было ещё несколько мелких проектов, такие как сервера на Java, маленькая ФС на Си и несколько проектов на TASM.

Наш последний проект это сайт микро–блоггинга (что–то вроде Twitter). Мы решили использовать фреймворк Google AppEngine для разработки и развертывания этого сайта. Так же мы решили использовать Git вместо Subversion, отчасти из интереса, но и также потому что он намного гибче. Проект находится здесь: http://github.com/iMax–pp/pintme/tree/master.

Описание проекта:
Основной целью этого проекта является интеграция движка Webkit в нативный браузер Haiku. Идеи реализации будут взяты из старых браузеров BeOS, таких как NetOptimist, Themis или новый NetSurf. В качестве движка будет использоваться порт WebKit for Haiku. После, используя Webkit и интерфейс BeOS, мы создадим библиотеку. Эта библиотека для отображения HTML будет использовать рендер Webkit. Она будет во всей Haiku для любой части системы. Документация будет написана с использованием doxygen, как и принято в Haiku

Почему вы решились взяться за этот проект?.
Прежде всего, я хочу работать над этим проектом для того, чтобы получить более глубокие познания в области создания программного обеспечения. Так же я хочу поработать над альтернативной ОС т.к. это интересно мне лично, но также и в профессиональных целях. Я также заинтересован в разработке для OpenSource–сообщества, я уже разрабатывал в академических целях либо для себя, но никогда не пробовал помочь сообществу пользователей. Этот опыт будет значителен.

Список целей проекта:

  • Интеграция движка Webkit в нативный браузер Haiku
  • Спроектировать библиотеку для отображения HTML использующую рендер Webkit
  • Написать документацию для этой библиотеки

Кто

Кто переведет?

Initial Prototype
=================

Date: March 16, 2009

A first test of rendering views and handling messages in another process.

Architecture:
------------–

Main Process:

Tranquility : BApplication
BrowserWindow : BWindow, just one to start

ProxyView : BView, one taking up all the frame of the BrowserWindow, draws the BBitmap rendered in the render process, forwards needed BMessages to the render process. This view is simply a canvas that the render process will draw on.

Render Process:

RenderBoy : BApplication
RenderLooper : BLooper, receives messages from the main process and sends them to RenderView. Embeds the RenderView into a BBitmap, sends the bitmap to the main process.
RenderView : draws and handle events.

Date: May 16, 2009

It has been two months and I finally have a somewhat working version of the above, minus major event handling and there is no RenderLooper yet. It may not be needed.

Ideas
=====

From http://news.ycombinator.com/item?id=518449:
QUOTE>>

5 points by andreyf 3 hours ago | link

I'm actually moving away from what you describe — a little less than a year ago, I had just finished school, my wife had a baby, and I started a demanding coding job at a startup. For about 6 months, I couldn't code outside of work for my life — I'd doze off to news.yc, RSS feed, even reddit at times.

In those 6 months, though, two ideas have been snowballing — (1) that (Greasemonkey) + (code repository with dependency resolution) + (some other stuff) would be a revolutionary piece of software, and (2) that the great thing about Lisp is vaguely similar to “Dependency Injection” and “Inversion of Control” — macros (reader and otherwise) are dependencies which are injected into the reader and compiler. If I was to figure out an elegant way of doing this in JS, I can piggyback on the buzz of DI and IoC to help people think deeper about programming.

Couple that with the frustration of “people don't get it unless you show them code”, and I've been spending more and more nights coding away again. So my recommendation would be:

1) Get excited about something

2) Realize that you're very fortunate to have the resources to be excited about something 99% of the world does not

3) Socially commit by telling people about it (even if they don't get it)

>>ENDQUOTE

The idea I like is the Greasemonkey idea. This could in some ways be used to replace many Firefox add–ons.

------–
The Chrome extension API proposal is also interesting: http://dev.chromium.org/developers/design–documents/extensions

------–
DNS prefetching seems like a good idea: http://dev.chromium.org/developers/design-documents/dns–prefetching
It depends on how Haiku handles DNS resolution and whether or not there is a DNS cache.
------–

Небольшой

Небольшой отчет о проделанной работе.

Отправить комментарий

Содержание этого поля является приватным и не предназначено к показу.
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Allowed HTML tags: <a> <em> <i> <img> <strong> <b> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Строки и параграфы переносятся автоматически.

Подробнее о форматировании

CAPTCHA
Введите перечисленные символы, чтобы мы убедились, что вы не робот. Не требуется для зарегистрированных пользователей.
E
G
d
N
Y
T
Enter the code without spaces and pay attention to upper/lower case.