From 074785cea106179cb3305637055ab0a009ca74f2 Mon Sep 17 00:00:00 2001 From: Peter Bengtsson Date: Tue, 8 Dec 2020 14:42:52 -0500 Subject: initial commit --- files/ru/mozilla/developer_guide/index.html | 91 ++++++++++++++++++++++ .../inner_and_outer_windows/index.html | 44 +++++++++++ .../developer_guide/mozilla-central/index.html | 23 ++++++ .../so_you_just_built_firefox/index.html | 14 ++++ .../developer_guide/using_the_vm/index.html | 89 +++++++++++++++++++++ .../index.html" | 9 +++ 6 files changed, 270 insertions(+) create mode 100644 files/ru/mozilla/developer_guide/index.html create mode 100644 files/ru/mozilla/developer_guide/inner_and_outer_windows/index.html create mode 100644 files/ru/mozilla/developer_guide/mozilla-central/index.html create mode 100644 files/ru/mozilla/developer_guide/so_you_just_built_firefox/index.html create mode 100644 files/ru/mozilla/developer_guide/using_the_vm/index.html create mode 100644 "files/ru/mozilla/developer_guide/\320\270\321\201\321\205\320\276\320\264\320\275\321\213\320\271_\320\272\320\276\320\264/index.html" (limited to 'files/ru/mozilla/developer_guide') diff --git a/files/ru/mozilla/developer_guide/index.html b/files/ru/mozilla/developer_guide/index.html new file mode 100644 index 0000000000..a48331fcff --- /dev/null +++ b/files/ru/mozilla/developer_guide/index.html @@ -0,0 +1,91 @@ +--- +title: Инструкция разработчика +slug: Mozilla/Developer_guide +translation_of: Mozilla/Developer_guide +--- +

Есть много способов помочь проекту Mozilla: можно писать код или тестировать существующий, совершенствовать инструменты или процесс сборки, улучшать документацию. Здесь Вы найдете информацию, которая не просто поможет Вам стать частью сообщества Mozilla, но будет полезной даже если Вы уже опытный участник сообщества Mozilla.

+ +
+
+

Документация

+ +
+
Начало
+
Как стать частью сообщества Mozilla.
+
+ +
+
Работа с исходным кодом Mozilla
+
Как можно просмотреть исходный код, как получить копию исходного кода, и справочник по оформлению исходного кода.
+
Инструкции по сборке
+
Как собрать Firefox, Thunderbird, SeaMonkey, и другие приложения от Mozilla.
+
Обзор процесса разработки
+
Краткое введение в процесс разработки Mozilla.
+
Управление множественными профилями
+
Управление несколькими версиями Firefox одновременно. Часто полезно создать несколько профилей Firefox, по одному на каждый канал или даже завести отдельный профиль, чтобы создать выделенную тестовую среду Firefox..
+
Автоматизированное тестирование
+
Как запустить автоматизированный процесс тестирования Mozilla,  и как писать новые тесты.
+
Как внести исправления/дополнения в исходный код
+
После написания патча, Вам нужно внести его в дерево исходных кодов в репозитории. Эта статья объясняет как происходит процесс проверки присланного кода патча и как добиться чтобы Ваш патч приняли.
+
Обновление документации
+
Как убедиться что документация не устарела и соотвествует тому что она описывает.
+
Модули Mozilla и владение модулями
+
Эта статья содержит информацию о модулях Mozilla, какова роль владельца модуля, и как избирается владелец модуля.
+
Примеры кода
+
Полезные примеры кода, которые могут прояснить как сделать что-то, или могут стать основой для дальшейшего развития кода.
+
Стратегии разработки Mozilla
+
Подсказки как максимальной пользой использовать время проведенное над проектом Mozilla.
+
Отладка
+
Полезные подсказки и руковадства по отладке исходного кода Mozilla.
+
Производительность
+
Руководство по производительности и описание утилит которые помогут Вам сделать Ваш код более быстрым.
+
Платформа Mozilla
+
Информация о работе на платформе Mozilla.
+
Добавление API к объекту navigator {{ gecko_minversion_inline("9.0") }}
+
Как добавить дополнительный API к объекту  {{ domxref("window.navigator") }}
+
Совместимость интерфейсов
+
Руководство по изменению скриптового и бинарного API  в Mozilla.
+
Кастомизация Firefox
+
Информация о создании измененной кастомизированной версии Firefox.
+
Виртуальное окружение в ARM Linux
+
Как настроить ARM эмулятор с запущенным Linux, чтобы протестировать ARM специфичный код. Эта часть будет полезной для разработчиков  мобильных устройств.
+
Устаревшие подсказки и советы для сборки
+
Это место куда складывают уже устаревшие подсказки, которые не нужны если Вам требуется собрать из исходного кода последней версии, но тем не менее они могут быть полезны если Вы работаете со старыми версиями.
+
Firefox Source Docs
+
Web-hosted documentation built from the mozilla-central source code.
+
+
+ +
+

Инструменты

+ +
+
Багзилла
+
Bugzilla это база данных всех багов, ошибок, предложений, их история и обсуждение проектов Mozilla.
+
DXR
+
Следующее поколение в поиске и изучении исходных кодов Mozilla. В активной разработке.
+
SearchFox
+
Another option for Mozilla code searching. Indexes JS as well as C++, includes blame capabilities. In active development.
+
Mercurial
+
Распределённая система контроля версий, используемая для управления исходными кодами Mozilla.
+
Mozilla build VM
+
A VirtualBox compatible virtual machine configured with all the software needed to build and work on Firefox.
+
TaskCluster
+
TaskCluster is the task execution framework that supports Mozilla's continuous integration and release processes.
+
Treeherder
+
Treeherder shows the status of the tree (whether or not it currently builds successfully).  Check this before checking in and out, to be sure you're working with a working tree.
+
Perfherder
+
Perfherder is used to aggregate the results of automated performance tests against the tree.
+
Crash tracking
+
Информация о Socorro - системе отчетов об ошибках.
+
Callgraph
+
A tool to help perform static analysis of the Mozilla code by generating callgraphs automatically.
+
Developer forums
+
A topic-specific list of discussion forums and mailing lists where you can talk about Mozilla development issues.
+
Mozilla Platform Development Cheat Sheet (archive.org)
+
Brian Bondy's list of frequently referenced information for platform developers. Brian Bondy took down codefirefox.com, but the archived cheatsheet might still be useful.
+
Firefox development video tutorials
+
Brian Bondy's video tutorials on Firefox development.
+
+
+
diff --git a/files/ru/mozilla/developer_guide/inner_and_outer_windows/index.html b/files/ru/mozilla/developer_guide/inner_and_outer_windows/index.html new file mode 100644 index 0000000000..4afb11e920 --- /dev/null +++ b/files/ru/mozilla/developer_guide/inner_and_outer_windows/index.html @@ -0,0 +1,44 @@ +--- +title: Внутренние и внешние окна +slug: Mozilla/Developer_guide/Inner_and_outer_windows +translation_of: Mozilla/Developer_guide/Inner_and_outer_windows +--- +

{{ draft() }}

+ +

В этой статье мы попытаемся объяснить понятия внутренних и внешних окон.

+ +

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

+ +

Для того чтобы представить эти уровни сложности, необходимо рассмотреть два "типа" окон. Технически они относятся не к окнам в том виде, в каком их видит пользователь, а скорее к тому, на что он смотрит.

+ +

Окна и bfcache

+ +

Внешнее окно (outer window) - это контекст просмотра, т.е. фактическое окружение, в котором пользователю представляется {{ domxref("Document") }}. Это может быть окно или вкладка, или это может быть {{ HTMLElement("iframe") }}, содержащаяся в другом документе. HTML5 ссылается на внешнее окно как на WindowProxy.

+ +

Внутреннее окно (inner window) редставляет реальное отображаемое содержимое; это текущий вид того, что пользователь видит.

+ +

Рассмотрим этот вид окна и историю браузера:

+ +

window-strip.png

+ +

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

+ +

Но вот в чем трюк: внутреннее окно, по сути, претендует на внешнее окно. Если отображаемый в данный момент документ спросит "в каком я окне?", то в качестве ответа он получит внешнее окно. Это позволяет документу взаимодействовать с "физическим" окном, а внешнее окно может отслеживать все документы (внутренние окна), которые в нем содержатся. Другими словами, {{ domxref(" window") }} всегда возвращает внешнее окно.

+ +

Вложенные окна

+ +

Все становится немного сложнее, если учесть, что документы могут содержать другие документы. Это происходит, например, когда {{ domxref("document") }} содержит {{{ HTMLElement("frame") }} или {{ HTMLElement("iframe") }}. Навигация по самому внешнему документу возможна не только при нажатии на ссылку в одном из фреймов, но и при нажатии на ссылку в этом фрейме.

+ +

Это означает, что должна существовать иерархия внешних и внутренних окон. Рассмотрим документ, в котором есть три элемента {{ HTMLElement("iframe") }}. Иерархия будет выглядеть примерно так:

+ +

iframes-hierarchy.png

+ +

На этой диаграмме объекты, с которыми вы взаимодействуете непосредственно в DOM (т.е. {{ domxref("Window") }}, {{ domxref("Document") }}, и {{{ domxref("Element") }}, имеют синий цвет. Серые круги представляют собой более абстрактные внутренние и внешние окна, которые являются реальными объектами, с которыми вы не взаимодействуете напрямую при работе с DOM. Окно в верхней части диаграммы - это внешнее окно.

+ +

По мере того, как пользователь перемещается в каждом из документов в различных рамках, каждое из этих внутренних окон имеет свою собственную историю, которую можно перемещать вперед и назад, как и в предыдущей диаграмме.

+ +

Элемент {{ HTMLElement("iframe") }} содержит свойство contentWindow, которое дает нам объект внешнего окна {{ domxref("Window") }}, содержащий документ кадра. Аналогично свойству contentDocument фрейма передаёт объект {{ domxref("Document") }} внутри фрейма.

+ +

Окно, содержащее фрейм, можно получить из свойства {{ domxref("window.parent") }}.

+ +

Эта иерархия может продолжаться, если фреймы содержат дополнительные кадры.

diff --git a/files/ru/mozilla/developer_guide/mozilla-central/index.html b/files/ru/mozilla/developer_guide/mozilla-central/index.html new file mode 100644 index 0000000000..3df77530f4 --- /dev/null +++ b/files/ru/mozilla/developer_guide/mozilla-central/index.html @@ -0,0 +1,23 @@ +--- +title: mozilla-central +slug: Mozilla/Developer_guide/mozilla-central +tags: + - Развитие Mozilla +translation_of: Mozilla/Developer_guide/mozilla-central +--- +

mozilla-central это Mercurial репозиторий кода Mozilla: https://hg.mozilla.org/mozilla-central.

+ +

Продвижение изменений в mozilla-central

+ +

Посмотрите "Как я загружаю материал?" для справки hg commit и hg push. Если Вы хотите иметь доступ к mozilla-central, но не знаете Ваших данных для входа в систему, сообщите об ошибке.

+ +

Occasionally, e.g. just before branch points, mozilla-central also has special tree rules.  The Tinderbox page for mozilla-central is located at http://tinderbox.mozilla.org/showbui...i?tree=Firefox.

+ +

Смотрите также

+ + + +

{{ languages( { "ja": "ja/Mozilla-central", "es": "es/Mozilla-central" } ) }}

diff --git a/files/ru/mozilla/developer_guide/so_you_just_built_firefox/index.html b/files/ru/mozilla/developer_guide/so_you_just_built_firefox/index.html new file mode 100644 index 0000000000..0d270fb9b9 --- /dev/null +++ b/files/ru/mozilla/developer_guide/so_you_just_built_firefox/index.html @@ -0,0 +1,14 @@ +--- +title: 'Итак, Вы только что построили Firefox' +slug: Mozilla/Developer_guide/So_you_just_built_Firefox +translation_of: Mozilla/Developer_guide/So_you_just_built_Firefox +--- +

Ссылка на эту страницу будет выдана после успешного построения Firefox. В ней следует указать ссылки на описания действий, которые могут понадобится в дальнейшем, например: как выполнять тесты, упаковать билд, и т. д. Старайтесь поддерживать на ней краткость, а более подробно пишите на других страницах, на которые укажите ссылки. В основном эту страницу просматривают только что построившие Firefox в первый раз.

+ +

Некоторые интересные ссылки:

+ +

Выполнение тестов

+ +

Отладка

+ +

Указание на ошибку

diff --git a/files/ru/mozilla/developer_guide/using_the_vm/index.html b/files/ru/mozilla/developer_guide/using_the_vm/index.html new file mode 100644 index 0000000000..fd5287faa2 --- /dev/null +++ b/files/ru/mozilla/developer_guide/using_the_vm/index.html @@ -0,0 +1,89 @@ +--- +title: Using the Mozilla build VM +slug: Mozilla/Developer_guide/Using_the_VM +tags: + - Mozilla + - Гайд +translation_of: Archive/Mozilla/Using_the_VM +--- +
+

Примечание: эта статья, по-видимому, не содержит рабочей альтернативы. Пока мы будем выяснять что происходит, возможно, вам стоит взглянуть на Building Firefox.

+
+ +

Если вы когда-нибудь думали, что вклад в Firefox был бы не плох, но у вас никогда не было времени, чтобы прочитать и следовать нашему instructions to setup a build environment или вы хотите избежать внесения изменений в стандартные инструменты и конфигурацию, тогда это может быть для вас полезно. Mozilla предоставляет виртуальную машину (VM), которая совместима с бесплатным VirtualBox, программным обеспечением для виртуализации (а также другим, в том числе VMWare/VMWare Fusion).

+ +

В этой статье приведены простые инструкции по загрузке, установке и настройке этой среды сборки build machine; как только вы выполните следующие действия, у вас будет готовая виртуальная машина для изменения и настройки Firefox.

+ +

Надеюсь, что эта виртуальная машина особенно поможет разработчикам или потенциальным разработчикам, которые не имеют полной среды разработки C++, доступной для них, а также опытным разработчикам, не имеющим времени на настройку системы сборки, следуя обычным инструкциям.

+ +

Установка VirtualBox

+ +

Посетите VirtualBox downloads page и загрузите последнюю версию программного обеспечения для вашей операционной системы.

+ +
+

Примечание: если у вас уже установлен продукт виртуализации, такой как VirtualBox, VMWare или VMWare Fusion, вы можете использовать его вместо загрузки новой копии VirtualBox. Просто убедитесь, что у вас есть последняя версия программного обеспечения. Обратите внимание, что Parallels Desktop не поддерживает формат OVF.

+
+ +

Загрузка VM

+ +

Затем загрузите виртуальную машину среды разработки Firefox.

+ +

Download the VM

+ +

SHA-256: 1c84eaf97ea2a9a3c990051306a038da9541a450fd600878e7c1f984fa930f35

+ +
+

Примечание: этот файл занимает около 4,4 ГБ, поэтому его загрузка может занять некоторое время.

+
+ +

Установка VM

+ +

Когда .ova файл загружен, дважды щелкните по нему. Это запустит процесс импорта виртуальной машины в VirtualBox. Пожалуйста, дайте виртуальной машине минимум 4096 МБ оперативной памяти (8192 Мб или больше, если вы можете) и установите для нее то же количество процессоров, что и у вашего хост-компьютера. Построение Firefox использует много системных ресурсов, и лучше, чтобы он строился как можно быстрее.

+ +

Screen shot of the Import Virtual Appliance window

+ +

После завершения импорта виртуальной машины вы можете выполнить дополнительные настройки, если хотите, или просто загрузить виртуальную машину и дождаться появления рабочего стола Ubuntu. Окно терминала автоматически появится и выполнит некоторые заключительные действия по настройке. Как только они закончат работать, Sublime Text запустится, и вы сможете приступить к работе!

+ +

Screen shot of the Sublime Text editor running in the VM

+ +
+

Примечание: Если вам когда-нибудь понадобятся учетные данные root, используйте "firefox-dev" в качестве пароля. Если вы хотите изменить язык и настройки клавиатуры, следуйте инструкциям в разделе How to change the UI language in Ubuntu.

+
+ +

Сборка Firefox

+ +

Чтобы собрать Firefox в виртуальной машине, откройте меню Сервис и выберите опцию построить. Процесс сборки начнется, и у вас будет время для выпивки, хорошей еды или, возможно, короткого отпуска, в зависимости от того, насколько быстр ваш компьютер. Тебе нужно набраться терпения.

+ +

После завершения сборки (successfully), выберите пункт Run в меню Tools, чтобы запустить пользовательскую сборку Firefox. Убедитесь, что все работает, как и ожидалось.

+ +

По умолчанию виртуальная машина настроена на создание оптимизированной сборки Firefox. Вы можете легко переключиться на построение для отладки. Просто откройте меню Tools, а затем подменю Build System в нем. В последней из систем сборки, которая появляется в подменю, выберите "Firefox (Debug)". Вот и все! Ваша следующая сборка будет сборкой отладчика.

+ +

Screen shot showing how to switch between debug; and optimized builds

+ +

Работа в VM

+ +

Отсюда вы работаете в виртуальной машине так же, как и в любом другом месте. Чтобы вытащить последний код из mozilla-central, просто используйте Mercurial как обычно:

+ +
hg pull
+ +

И вы submit your patches так же, как обычно.

+ +

Что теперь?

+ +

Теперь, когда вы успешно встроили Firefox в свою новую виртуальную машину, вам может быть интересно, что делать дальше. Отличный способ начать - выбрать небольшую, легко исправляемую ошибку и внести код, который исправит ее. Представьте, как здорово, когда написанный вами код отправляется полумиллиарду пользователей по всему миру!

+ +

Вот некоторые ссылки, которые помогут вам найти то, что вы можете сделать, чтобы сделать Firefox лучше:

+ + + +

Вы также можете задать начальные вопросы в разделе Introduction chat room в Matrix, и любые вопросы по развитию Firefox в developers room.

+ +

Я сделал этот перевод, как только убедился в его отсутствии. Надеюсь, что и вы внесёте свой посильный вклад в доработку проектов Mozilla!

diff --git "a/files/ru/mozilla/developer_guide/\320\270\321\201\321\205\320\276\320\264\320\275\321\213\320\271_\320\272\320\276\320\264/index.html" "b/files/ru/mozilla/developer_guide/\320\270\321\201\321\205\320\276\320\264\320\275\321\213\320\271_\320\272\320\276\320\264/index.html" new file mode 100644 index 0000000000..f8ea35c33a --- /dev/null +++ "b/files/ru/mozilla/developer_guide/\320\270\321\201\321\205\320\276\320\264\320\275\321\213\320\271_\320\272\320\276\320\264/index.html" @@ -0,0 +1,9 @@ +--- +title: Работа с исходным кодом Mozilla +slug: Mozilla/Developer_guide/Исходный_код +tags: + - Разработка в Mozilla + - Средний уровень +translation_of: Mozilla/Developer_guide/Source_Code +--- +textex -- cgit v1.2.3-54-g00ecf