Как работает FireFox? Прохождение исходного кода?
Я хотел бы узнать, как FireFox работает за кулисами. Я хотел бы понять исходный код и различные компоненты, но база кода довольно большая, и я не уверен, с чего начать.
Мне интересно, есть ли какая-то прогулка, написанная кем-либо из команды firefox или вне сообщества.
Я немного посмотрел на: https://developer.mozilla.org/En, но я не вижу ничего, что кричит "Начни здесь". Я просто пытаюсь пересмотреть свою кодовую базу для [самостоятельных] образовательных целей.
Ответы
Ответ 1
В колледже Seneca в Торонто есть программа, ориентированная именно на это - начинающих разработчиков Mozilla.
Ознакомьтесь с некоторыми из этих ссылок:
Real World Mozilla
Недельное расписание за 2008 год
Некоторые лаборатории, если вы хотите погрузиться прямо в:
Лаборатория: Обучение совместному развитию (осень 2008)
Лаборатория: создание проектов с открытым исходным кодом (осень 2008)
Лаборатория: Real World Mozilla - чтение исходного кода
Лаборатория: работа с патчами
Лаборатория: погружение в Mozilla - отладка Mozilla
Лаборатория: исправление ошибок Thunderbird
Лаборатория: изменение браузера
Лаборатория: изменение Firefox с помощью расширения
Лаборатория: Real World Mozilla - Первый компонент XPCOM
Лаборатория: Real World Mozilla - добавление хром к первому компоненту XPCOM
Если вам нужна помощь, используйте IRC: #seneca на irc.mozilla.org. Не беспокойтесь, если вы не студент (Seneca), много людей по всему миру (люди из Сенеки, люди из Mozilla и другие) находятся на этом канале, цель состоит в том, чтобы обучить разработчиков об открытом источнике в целом и проект Mozilla.
Удачи!
Ответ 2
Здесь приведен верхний ответ (большинство других - снизу вверх):
Firefox - это приложение XUL (см. также: XUL); XUL - это вариант XML, используемый для описания GUI, который интерпретируется средством визуализации, подобно тому, как HTML отображается в браузере, но XUL включает в себя меню браузера, кнопки, строку состояния, сочетания клавиш и т.д. Это довольно аккуратно; Я смог собрать несколько простых графических приложений гораздо быстрее в XUL, чем в других средах (и он независим от платформы!).
Если вы посмотрите в каталоге приложений Firefox (где бы вы его не установили в своей системе), вы увидите каталог "chrome" с кучей файлов .jar. Это только .zip файлы с определенной структурой (включая манифест), и вы можете сами просмотреть их.
Большая часть браузера Firefox на самом деле XUL + Javascript. Он использует множество библиотек более низкого уровня, написанных на С++ и доступных для Javascript через XPCOM, но если вы хотите понять (и изменить) поведение более высокого уровня, вероятно, место для запуска XUL + Javascript./p >
edit: p.s. вот несколько руководств/ссылок для XUL: 1 2 и также O'Reilly book
edit: документы XUL очень похожи на документы HTML (только больше!) в том, как они взаимодействуют с событиями пользователя+. Там модель документа для динамически изменяет XUL, и есть модели событий, которые имеют прослушиватели событий. Оба действуют так же, как HTML + DOM +, его модель событий, но с более богатым набором встроенных объектов/интерфейсов/событий/и т.д. Обработчики событий являются интерфейсами определенного типа и могут быть реализованы объектами Javascript (объявленными в XUL с помощью onclick="blah()"
или динамически добавленными вызовами Javascript на addEventListener()
) - оба являются точно такими же синтаксисом, как HTML-события в Firefox ) или С++ или другими языками, которые могут реализовать объекты XPCOM с соответствующими интерфейсами.
Ответ 3
Один из способов начать - посмотреть на некоторые исправленные ошибки в Firefox (см. Bugzilla) и посмотреть, как они были исправлены.
Это сказало. Кодовая база Firefox очень большая, и, вероятно, никто ее не понимает, поэтому было бы неплохо начать с небольшого раздела (например, избранное) и попробовать найти код для него и посмотреть, как это делается работает. Опять же, исправленные ошибки и файлы, на которые они влияют, будут хорошим способом для идентификации некоторого соответствующего кода для начала.
Ответ 4
Я работал с кодом mozilla (точно mozilla/nss/security). насколько мое понимание мозиллы идет:
Он следует за многоуровневой архитектурой с уровнем NSPR (Netscape Portable Runtime) внизу, который взаимодействует с операционными системами.
получить исходный код с сайта
https://developer.mozilla.org/En/Download_Mozilla_Source_Code и создать его в рабочей среде (насколько я знаю, он поддерживает большое количество платформ/архитектур)
присоединиться к сообществу разработчиков Mozilla/попытаться помочь в тестировании некоторых компонентов.
для кода для mozilla, пройдите:
http://www.mozilla.org/hacking/ (стандарты совместимости С++ являются обязательными, если вы программист на С++).
надеюсь, что некоторые из вышеперечисленных могут помочь вам начать работу.
Ответ 5
Недавно был выпущен набор видеороликов (начиная с начала 2015 года), который просматривает некоторые из компонентов Mozilla Firefox. Может быть, вы были бы заинтересованы в них.
https://air.mozilla.org/search/?q=tag%3A+TorontoBootcamp
Они не очень новичок, но все же могут быть полезны, я думаю.