Как работает FireFox? Исходный код пройдете?
Я хотел бы узнать, как FireFox работает за кулисами. Я хотел бы понять исходный код и различные компоненты, но база кода довольно велика, и я не уверен, с чего начать.
Мне интересно, есть ли какая-то прогулка, хотя написанная кем-либо из команды firefox или из-за пределов сообщества.
Я посмотрел немного на:https://developer.mozilla.org/En но я не вижу ничего, что кричит " начать здесь." Я просто пытаюсь пересмотреть их кодовую базу по [само]образовательным причинам.
5 ответов
Seneca College в Торонто имеет программу, ориентированную именно на это-новички в развитии Mozilla.
проверить некоторые из этих ссылок:
Осень 2008 Еженедельный График
некоторые лаборатории, если вы хотите погрузиться в:
Lab: Learning Collaborative Development (Осень 2008)
Lab: Строительство Проектов С Открытым Исходным Кодом (Осень 2008)
Lab: Реальный Мир Mozilla-Чтение Исходного Кода
Lab: погружение в Mozilla-отладка Mozilla
Lab: Thunderbird Исправление Ошибок
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
Они не очень новичок, но все еще могут быть полезны, я думаю.