1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
|
---
title: Настройка среды разработки расширений
slug: orphaned/Настройка_среды_разработки_расширений
tags:
- Расширения
original_slug: Настройка_среды_разработки_расширений
---
<p>В этой статье приводится несколько советов о том, как настроить ваше приложение Mozilla для удобной работы над расширениями.</p>
<h3 id=".D0.9F.D1.80.D0.BE.D1.84.D0.B8.D0.BB.D1.8C_.D0.B4.D0.BB.D1.8F_.D1.80.D0.B0.D0.B7.D1.80.D0.B0.D0.B1.D0.BE.D1.82.D0.BA.D0.B8" name=".D0.9F.D1.80.D0.BE.D1.84.D0.B8.D0.BB.D1.8C_.D0.B4.D0.BB.D1.8F_.D1.80.D0.B0.D0.B7.D1.80.D0.B0.D0.B1.D0.BE.D1.82.D0.BA.D0.B8">Профиль для разработки</h3>
<p>Чтобы избежать возможных потерь личных данных при разработке собственных расширений, рекомендуется создать отдельный профиль и проводить в нем все тестирования.</p>
<p>Для того, чтобы создать новый профиль в Firefox, достаточно запустить его с ключом <code>"-ProfileManager"</code>, т.е.</p>
<pre class="eval">firefox -ProfileManager
</pre>
<p>для Linux или</p>
<pre class="eval">Win+R (или Пуск->Выполнить)
start "" "%ProgramFiles%\Mozilla Firefox\firefox.exe" -ProfileManager
</pre>
<p>для Windows.</p>
<p>После создания профиля (назовём его <code>myDevProfile</code>) можно запустить Firefox, указав ключ <code>"-P myDevProfile"</code>. Профиль по умолчанию называется <code>"default"</code>. Таким образом, для удобства запуска можно создать 2 ярлыка (символические ссылки) на Firefox с ключами <code>"-P <profileName>"</code>.</p>
<p>Однако обычно нельзя запустить 2 копии Firefox с разными профилями. Чтобы сделать это укажите при запуске дополнительно ключ <code>"-no-remote"</code>.</p>
<h3 id=".D0.9D.D0.B0.D1.81.D1.82.D1.80.D0.BE.D0.B9.D0.BA.D0.B8_Firefox_.D0.B4.D0.BB.D1.8F_.D1.80.D0.B0.D0.B7.D1.80.D0.B0.D0.B1.D0.BE.D1.82.D0.BA.D0.B8" name=".D0.9D.D0.B0.D1.81.D1.82.D1.80.D0.BE.D0.B9.D0.BA.D0.B8_Firefox_.D0.B4.D0.BB.D1.8F_.D1.80.D0.B0.D0.B7.D1.80.D0.B0.D0.B1.D0.BE.D1.82.D0.BA.D0.B8">Настройки Firefox для разработки</h3>
<p>Наверно, вы знаете о возможности настроить Firefox детально с помощью <code>about:config</code>. Если нет, рекомендуем вам прочитать статью <a class="external" href="/http://www.mozilla.org/support/firefox/edit%7CРедактирование" title="http://www.mozilla.org/support/firefox/edit|Редактирование">конфигурационных файлов</a>.</p>
<p>Итак, вот настройки, которые облегчат разработку расширений под Firefox.</p>
<ul>
<li><code><strong>javascript.options.showInConsole = true</strong></code>. Вывод ошибок в файлах chrome в консоль ошибок.</li>
</ul>
<p><span class="comment">при редактировании здесь учтите также номер предлагаемой опции в последней секции</span></p>
<ul>
<li><code><strong>nglayout.debug.disable_xul_cache = true</strong></code>. Отключение кеширования XUL. Вы сможете видеть изменения в интерфейсе окон и диалогов без перезагрузки браузера (к оверлеям не относится). Чтобы это заработало, вы должны <a href="#.D0.98.D1.81.D0.BF.D0.BE.D0.BB.D1.8C.D0.B7.D0.BE.D0.B2.D0.B0.D0.BD.D0.B8.D0.B5_.D0.BF.D0.B0.D0.BF.D0.BE.D0.BA.2C_.D0.B0_.D0.BD.D0.B5_JAR.27.D0.BE.D0.B2"> использовать папки, а не jar'ы</a>.</li>
<li><code><strong>browser.dom.window.dump.enabled = true</strong></code>. Позволяет использовать <code><a href="/en/DOM/window.dump">dump</a>("string")</code> для вывода в стандартную консоль. Можно также использовать <code><a href="/en/nsIConsoleService">en:nsIConsoleService</a></code> из привилегированного скрипта.</li>
<li><code><strong>javascript.options.strict = true</strong></code>. Обеспечит вывод предупреждений JavaScript в консоль ошибок. Учтите, что, так как большинство разработчиков отключают эту опцию, вы будете видеть предупреждения о проблемах в коде других скриптов вдобавок к своим. Можете попробовать использовать <a class="link-https" href="https://addons.mozilla.org/en-US/firefox/addon/1815">Console<sup>2</sup></a>.</li>
<li><code><strong>extensions.logging.enabled = true</strong></code>. Вывод более детальной информации о проблемах установки и обновления расширения.</li>
</ul>
<h3 id=".D0.A0.D0.B0.D1.81.D1.88.D0.B8.D1.80.D0.B5.D0.BD.D0.B8.D1.8F_.D0.B4.D0.BB.D1.8F_.D1.80.D0.B0.D0.B7.D1.80.D0.B0.D0.B1.D0.BE.D1.82.D0.BA.D0.B8" name=".D0.A0.D0.B0.D1.81.D1.88.D0.B8.D1.80.D0.B5.D0.BD.D0.B8.D1.8F_.D0.B4.D0.BB.D1.8F_.D1.80.D0.B0.D0.B7.D1.80.D0.B0.D0.B1.D0.BE.D1.82.D0.BA.D0.B8">Расширения для разработки</h3>
<ul>
<li><a href="/en/DOM_Inspector">en:DOM Inspector</a></li>
<li><a class="link-https" href="https://addons.mozilla.org/firefox/addon/216">Venkman</a>, отладчик JavaScript.</li>
<li><a class="external" href="http://ted.mielczarek.org/code/mozilla/extensiondev/">Extension Developer's Extension</a></li>
<li><a class="link-https" href="https://addons.mozilla.org/firefox/addon/1815">Console<sup>2</sup></a></li>
<li><a class="link-https" href="https://addons.mozilla.org/firefox/addon/4453">Chrome List</a></li>
<li><a class="link-https" href="https://addons.mozilla.org/firefox/addon/1843">Firebug</a></li>
<li><a class="link-https" href="https://addons.mozilla.org/firefox/addon/1729">Execute JS</a></li>
<li><a class="external" href="http://xpcomviewer.mozdev.org">XPCOMViewer</a>, инспектор XPCOM</li>
</ul>
<h3 id=".D0.9E.D1.82.D0.B4.D0.B5.D0.BB.D1.8C.D0.BD.D0.BE.D0.B5_.D1.85.D1.80.D0.B0.D0.BD.D0.B5.D0.BD.D0.B8.D0.B5_.D0.BA.D0.BE.D0.B4.D0.B0_.D1.80.D0.B0.D1.81.D1.88.D0.B8.D1.80.D0.B5.D0.BD.D0.B8.D1.8F" name=".D0.9E.D1.82.D0.B4.D0.B5.D0.BB.D1.8C.D0.BD.D0.BE.D0.B5_.D1.85.D1.80.D0.B0.D0.BD.D0.B5.D0.BD.D0.B8.D0.B5_.D0.BA.D0.BE.D0.B4.D0.B0_.D1.80.D0.B0.D1.81.D1.88.D0.B8.D1.80.D0.B5.D0.BD.D0.B8.D1.8F">Отдельное хранение кода расширения</h3>
<p>Чтобы не переустанавливать расширение при каждом изменении и не опасаться случайного удаления кода при его деинсталляции, можно поместить ваш код в отдельное место.</p>
<ol>
<li>Найдите папку с вашим профилем. Если вы не создавали его специально, браузер использует профиль по умолчанию. <a class="external" href="http://kb.mozillazine.org/Profile_folder">Как найти папку с профилем.</a></li>
<li>Откройте папку <code>extensions</code>. Если её нет, создайте ее.</li>
<li>Создайте новый текстовый файл и поместите в него лишь путь к вашему расширению (напр., <code>C:\extensions\my_extension\</code> для Windows или <code>~/extensions/my_extension/</code> для Unix/Linux). Сохраните файл под именем, одинаковым с <code>id</code> вашего расширения.</li>
</ol>
<p><strong>Примечания:</strong></p>
<ul>
<li>Не забудьте конечный слеш.</li>
<li>Возможно возникновение проблем из-за знаков нижнего подчёркивания в названии; если так вышло, измените его.</li>
</ul>
<h3 id=".D0.98.D1.81.D0.BF.D0.BE.D0.BB.D1.8C.D0.B7.D0.BE.D0.B2.D0.B0.D0.BD.D0.B8.D0.B5_.D0.BF.D0.B0.D0.BF.D0.BE.D0.BA.2C_.D0.B0_.D0.BD.D0.B5_JAR.27.D0.BE.D0.B2" name=".D0.98.D1.81.D0.BF.D0.BE.D0.BB.D1.8C.D0.B7.D0.BE.D0.B2.D0.B0.D0.BD.D0.B8.D0.B5_.D0.BF.D0.B0.D0.BF.D0.BE.D0.BA.2C_.D0.B0_.D0.BD.D0.B5_JAR.27.D0.BE.D0.B2">Использование папок, а не JAR'ов</h3>
<p>Учитывая предыдущий пункт, можно, поместив свой код в отдельное место, не упаковывать его. Это облегчит разработку вообще и позволит воспользоваться 2-й опцией в <a href="#.D0.9D.D0.B0.D1.81.D1.82.D1.80.D0.BE.D0.B9.D0.BA.D0.B8_Firefox_.D0.B4.D0.BB.D1.8F_.D1.80.D0.B0.D0.B7.D1.80.D0.B0.D0.B1.D0.BE.D1.82.D0.BA.D0.B8"> предлагаемых настройках</a>.</p>
|