Как работает FireFox? Исходный код пройдете?

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

Мне интересно, есть ли какая-то прогулка, хотя написанная кем-либо из команды firefox или из-за пределов сообщества.

Я посмотрел немного на:https://developer.mozilla.org/En но я не вижу ничего, что кричит " начать здесь." Я просто пытаюсь пересмотреть их кодовую базу по [само]образовательным причинам.

5 ответов


Seneca College в Торонто имеет программу, ориентированную именно на это-новички в развитии Mozilla.

проверить некоторые из этих ссылок:

Реальный Мир Mozilla

Осень 2008 Еженедельный График

некоторые лаборатории, если вы хотите погрузиться в:

Lab: Learning Collaborative Development (Осень 2008)

Lab: Строительство Проектов С Открытым Исходным Кодом (Осень 2008)

Lab: Реальный Мир Mozilla-Чтение Исходного Кода

Lab: работа с патчами

Lab: погружение в Mozilla-отладка Mozilla

Lab: Thunderbird Исправление Ошибок

Lab: изменение браузера

Lab: изменение Firefox с помощью расширения

Лаборатория: реальный мир Mozilla-первый XPCOM Компонент

Lab: Real World Mozilla-добавление chrome в первый компонент XPCOM

Если вам нужна помощь, используйте IRC: #seneca on irc.mozilla.org - ... Не волнуйтесь, если вы не студент (Seneca), много людей по всему миру (люди из Seneca, люди из Mozilla и другие) находятся в этом канале, цель состоит в том, чтобы обучить разработчиков об открытом исходном коде в целом и проекте Mozilla в частности.

удачи!


вот ответ сверху вниз (большинство других снизу вверх):

Firefox-это XUL приложения (см. также: XUL); XUL-это вариант XML, используемый для описания GUI, который интерпретируется визуализатором, почти так же, как HTML отображается в браузере, но XUL включает меню браузера, кнопки, строку состояния, сочетания клавиш и т. д. Это довольно аккуратно; я смог собрать некоторые простые приложения GUI намного быстрее в XUL, чем в других фреймворки (и это независимо от платформы!).

Если вы посмотрите в каталоге приложений Firefox (где бы вы ни установили его в своей системе), вы увидите каталог "chrome" с кучей .файл jar. Это просто .zip-файлы с определенной структурой (включая манифест), и вы можете просмотреть их самостоятельно.

большая часть браузера Firefox на самом деле XUL + Javascript. Он использует много библиотек нижнего уровня, написанных на C++ и доступных для Javascript через XPCOM, но если вы хотите понять (и изменить) поведение более высокого уровня, части XUL+Javascript, вероятно, являются местом для начала.

edit: p.s. вот некоторые учебники / ссылки для XUL:1 2 и О'Рейли книги

edit: документы XUL очень похожи на документы HTML (только больше!) в том, как они взаимодействуют с пользователем + события. Существует модель документа для динамическое изменение КСУЛ, и есть модели которые имеют прослушиватели событий. Оба действуют так же, как HTML + DOM + его модель событий, но с более богатым набором встроенных объектов/интерфейсов/событий/и т. д. Обработчики событий являются интерфейсами определенного типа и могут быть реализованы объектами Javascript (объявленными в XUL с помощью onclick="blah()", или добавляется динамически через вызовы Javascript в addEventListener() -- оба являются точно такой же синтаксис, как HTML события в Firefox) или на C++ или других языках, которые могут реализовать Объекты XPCOM с соответствующими интерфейсами.


один из способов начать - посмотреть на некоторые недавно исправленные ошибки в Firefox (см. ошибка) и посмотрите, как они были исправлены.

Что сказал. Кодовая база Firefox очень велика, и вполне вероятно, что никто не понимает все это, поэтому было бы неплохо начать с небольшого раздела (скажем, избранное) и попытаться найти код для него и посмотреть, как он работает. Опять же, разрешенные ошибки и файлы, на которые они влияют, были бы хорошим способом идентификации для начала какой-нибудь код.


Я работал с кодом mozilla (именно mozilla/nss / security). насколько я понимаю mozilla идет:

Он следует многоуровневой архитектуре с уровнем NSPR (Netscape Portable Runtime) внизу, который взаимодействует с операционными системами.

получить исходный код от
https://developer.mozilla.org/En/Download_Mozilla_Source_Code и построьте его в вашей рабочей среде( насколько я знаю, она поддерживает большое разнообразие платформы / архитектуры)

присоединяйтесь к сообществу разработчиков Mozilla / попробуйте помочь путем тестирования некоторых компонентов.

чтобы код для mozilla, пройдите : http://www.mozilla.org/hacking/ (стандарты переносимости C++ обязательны, если вы программист на C++).

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


недавно был выпущен набор видеороликов (как и в начале 2015 года), которые проходят через некоторые компоненты Mozilla Firefox. Возможно, они вас заинтересуют.

https://air.mozilla.org/search/?q=tag%3A + TorontoBootcamp

Они не очень новичок, но все еще могут быть полезны, я думаю.