Как работает FireFox? Исходный код пройти? - PullRequest
38 голосов
/ 23 декабря 2008

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

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

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

Ответы [ 5 ]

36 голосов
/ 23 декабря 2008

В колледже Сенека в Торонто есть программа, предназначенная именно для этого - для начинающих разработчиков Mozilla.

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

Реальный мир 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) студентом, многие люди по всему миру (люди из Seneca, люди из Mozilla и другие) находятся на этом канале, цель состоит в том, чтобы рассказать разработчикам об открытом исходном коде в целом и проект Mozilla, в частности.

Удачи!

30 голосов
/ 23 декабря 2008

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

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

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

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

редактировать: стр.с. Вот некоторые учебники / ссылки для XUL: 1 2 , а также книга O'Reilly

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

5 голосов
/ 23 декабря 2008

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

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

2 голосов
/ 23 декабря 2008

я работал с кодом 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 ++).

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

0 голосов
/ 27 февраля 2015

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

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

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

...