>Форум Mozilla Россия http://forum.mozilla-russia.org/index.php >Разработка http://forum.mozilla-russia.org/viewforum.php?id=18 >Разработка расширения без перезагрузки лисы — моя версия http://forum.mozilla-russia.org/viewtopic.php?id=29428 |
zencd > 06-01-2009 05:52:38 |
Написал экстеншн для лёгкого начала разработки, прототипирования: http://zencd.spb.ru/ext/restartless.xpi Что делает: По идее, субскрипты могут быть оформлены как угодно, но тогда перегрузить (reload) всё это добро эффективно без перезапуска лисы не получится. Для того чтобы reload срабатывал, нужно вешать обработчики событий таким образом (пример субскрипта): Выделить код Код:// Обрабатывает двойной клик на табе (можно его закрыть) // // __RD stands for 'Restartless Development' __RD.addListener({ event : 'dblclick', // функция, которая, когда надо будет, возвратит XUL-объект // для которого нужно обработать событие object : function() { return getBrowser().mTabContainer }, handler : function(event) { var t = event.originalTarget var p = t.parentNode if(t && p) { if('tab' == t.localName || 'tab' == p.localName) { //gBrowser.removeCurrentTab() alert('a tab DBLLL clicked!') } } }, }) Немного жёсткая форма (места для ветвления логики не предусмотрено), но для моих идей этого пока хватает. И вроде как работает о_О Что скажете, господа разработчики: что хорошо, чего не хватает? |
Anton > 06-01-2009 06:50:42 |
zencd |
Anton > 07-01-2009 16:19:57 |
zencd
Хотелось бы иметь текстовое поле в котором можно набить код и выполнить нажатием сочетания клавиш, и "консоль" в которой будет результат выполнения. Ну, то есть как это сделано в Extension Developer и ExecuteJS. Функцию print, понятное дело. |
zencd > 07-01-2009 16:54:21 |
Спасибо, Anton! userChrome.js получше моего будет — открыл новое окно, и мир изменился, и никаких ограничений в виде специальной регистрации обработчиков событий, полная свобода. А что за привилегии, без которых выполняется ExtDev? |
Anton > 07-01-2009 17:31:23 |
Вообще-то, я рекомендовал ознакомиться с userChrome для почерпания идей к дальнейшему развитию restartless - кодовых или инфраструктурных, раз уж задан был такой вопрос "чего не хватает".
Само ExtDev выполняется с chrome привилегиями, а вот код, который пишется в окне JavaScript Development Environment - нет. В FF2 он ещё выполнялся с chrome-привилегиями, в FF3 уже нет. то в "консоли" будет хотя в FF2 было бы |
Forest > 11-01-2009 12:06:30 |
Вообще при правильных настройках ctrl+n даёт окно, где уже загружены последние изменения (не уверен насчёт глобальных свойств, но всё, что мне надо было, так обновлялось) - но наверное про это и так все знают?.. Anton пишет
Типа чтобы через консоль нельзя было взломать ?.. |
Anton > 11-01-2009 16:59:07 |
Есть ситуации, когда тестировать лучше с включенным кэшем или только в одном окне. Вообще, релоад в одном окне имеет право на жизнь, ему хоткей только прикрутить.
Типа, код вычисляется в html и из html по javascript-протоколу. А в FF3 с этим строго.
От кэширования зависит. |