Как принять участие в разработке Mozilla Firefox? - PullRequest
14 голосов
/ 27 июля 2010

Я аспирант CS, и я заинтересован в том, чтобы уделить немного свободного времени разработке веб-браузера Mozilla Firefox. Я хотел бы внести свой вклад в рендерер HTML, движок JavaScript и т. Д. Но у меня нет солидного опыта в написании парсеров или подобных вещей, и я не имею ни малейшего понятия, с чего начать.

Конечно, есть некоторые ссылки в https://developer.mozilla.org/En/Developer_Guide/, но так как Firefox уже очень большой проект, я не знаю, с чего мне начать учиться.

Итак, мой вопрос в том, какие основные вещи мне необходимо изучить, чтобы начать разработку веб-браузера, и откуда я могу это узнать (любые ссылки)? Нужно ли пересматривать, как писать парсеры / компиляторы? Как мне научиться писать HTML рендерер / движок JavaScript? Возможно ли это, учитывая, что это уже очень большие проекты? Некоторое время назад я скачал исходный код движка V8 JavaScript (http://code.google.com/p/v8/), но я не мог многое понять из его исходного кода, так как это был высоко оптимизированный код, и для начинающего, такого как я, не было много полезных комментариев, чтобы понять, что происходит.

Обновление: Мне довольно комфортно работать с C, C ++, Java, PHP, C #, VB.Net, JavaScript, и мне больше интересно узнать, как веб-браузер анализирует веб-страницу, как он создает и поддерживает DOM, как применяется CSS, как Работает механизм перекомпоновки HTML, как он взаимодействует с механизмом JavaScript, как он взаимодействует с веб-сервером, как компоненты отображаются на экране и т. Д.

Ответы [ 5 ]

11 голосов
/ 28 июля 2010

Прочитать документы на Начало работы . Тусуйтесь на irc.mozilla.org в #developers и следите за интересными разговорами. Представьтесь в #introduction и задайте вопросы. Перейдите на http://bugzilla.mozilla.org и начните поиск открытых ошибок в компонентах, которые звучат интересно, а затем найдите ошибки, которые вам нравятся. Используйте такие инструменты, как http://mxr.mozilla.org/ и http://dxr.mozilla.org, чтобы помочь вам найти соответствующий код и задавать вопросы в #developers. Учись, взломай, повтори.

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

6 голосов
/ 27 июля 2010

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

5 голосов
/ 28 июля 2010

Ошибки, отмеченные в Bugzilla со статусом доски [хорошая первая ошибка], - хорошее место для начала. Вы можете просмотреть список здесь .

Найдите то, что вам нравится, и попытайтесь это исправить! Разработчики IRC (#developers в irc.mozilla.org) обычно рады помочь, когда вы застряли.

3 голосов
/ 28 июля 2010

Если вы заинтересованы в разборе, изучении автоматов с конечным состоянием и формальных грамматик, то в какой-то момент это должно стать частью вашей программы CS, как в классе компиляторов.В части javascript изучите JIT-компиляторы, особенно о том, как работает трассировка JIT.Следите за блогами по разработке Mozilla, вот хорошая стартовая статья: http://hacks.mozilla.org/2010/03/a-quick-note-on-javascript-engine-components/

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

1 голос
/ 28 июля 2010
...