Я студентка CS grad, и я заинтересован в том, чтобы потратить некоторое свободное время на участие в разработке браузера Mozilla Firefox. Я хотел бы внести свой вклад в HTML-рендеринг, движок JavaScript и т. Д. Но у меня нет достаточного опыта написания парсеров или подобных материалов, и у меня нет никаких подсказок, с чего начать.Как принять участие в разработке Mozilla Firefox?
Есть, конечно, некоторые ссылки в https://developer.mozilla.org/En/Developer_Guide/, но поскольку Firefox уже является очень огромным проектом, я не знаю, откуда я должен начать учиться.
Итак, мой вопрос в том, какие основные вещи мне нужно изучить, чтобы начать работу с разработкой веб-браузера и откуда я могу это узнать (любые ссылки)? Должен ли я пересматривать, как писать парсеры/компиляторы? Как я могу научиться писать движок HTML-рендеринга/JavaScript? Возможно ли это, учитывая, что они уже очень большие проекты? Когда-то назад я загрузил исходный код движка JavaScript V8 (http://code.google.com/p/v8/), но я не мог понять многого из его исходного кода, так как он был очень оптимизированным кодом, и для начинающих, таких как я, не было много полезных комментариев, чтобы понять, что происходит.
Обновление: Я довольно комфортно работаю с C, C++, Java, PHP, C#, VB.Net, JavaScript, и меня больше интересует, как веб-браузер анализирует веб-страницу, как она создает и поддерживает DOM , как применяется CSS, как работает механизм reflow HTML, как он взаимодействует с движком JavaScript, как он взаимодействует с веб-сервером, как компоненты рисуются на экране и т. д.
Это действительно зависит от того, что вы хотите работать внутри Mozilla, и какие языки вы знаете/хотите работать. Обновите эту информацию, и я могу предоставить вам ответ. – sdwilsh
Я вижу, что вы обновлены, но объем предметов, которые вы хотите изучить, действительно большой. Очень немногие (если есть?) Люди, которые активны в Mozilla, даже сейчас, как работает все это. Есть ли один из тех, с кем вы хотели бы начать взламывать сначала? – sdwilsh
Я хотел бы начать с базового рендеринга HTML-компонентов. Я понимаю, рендеринг сам по себе очень огромен. Есть ли подмножество того, что вы предложили бы (под рендерингом), что я могу начать? Может быть, сначала со строительством DOM? –