>Форум Mozilla Россия http://forum.mozilla-russia.org/index.php >Разработка http://forum.mozilla-russia.org/viewforum.php?id=18 >Адаптация расширения с 3.x на 4.х+ (addon-bar) http://forum.mozilla-russia.org/viewtopic.php?id=50628 |
tuarisa > 11-07-2011 11:48:21 |
Доброго дня, есть вопрос по поводу addon-bar, появившемуся в 4й версии. Долгое время не доходили руки обновить одно локальное расширение, совместимость по большому счёту осталось, но пользователи хотят, чтоб кнопка расширения могла перемещаться в нужное место по панели расширений, как это сделано в расширениях для 4.х и более версий. Выделить код Код:<statusbar id="status-bar"> <statusbarpanel id="BlablaStatusPanel" insertbefore="resizerBottomRight" context="BlablaStatusPopupMenu" tooltip="BlablaStatusTooltip" onclick="Blabla.StatusClick(event);"> <grid> <rows> <row /> </rows> <columns> <column flex="1"> <image id="BlablaStatusIcon" src="chrome://blabla/skin/icon_disabled.png"/> </column> <column flex="1"> <label id="BlablaLabel" value="0.00" hidden="true" /> </column> </columns> </grid> </statusbarpanel> </statusbar> Как правильно это адаптировать под версию 4.х и так, чтоб можно было перетаскивать по панельке? |
Infocatcher > 11-07-2011 12:36:55 |
Как-то так: Выделить код Код:<toolbarpalette id="BrowserToolbarPalette"> <toolbaritem id="BlablaStatusPanel" context="BlablaStatusPopupMenu" tooltip="BlablaStatusTooltip" onclick="Blabla.StatusClick(event);"> <grid> ... </grid> </toolbaritem> </toolbarpalette> |
banbot > 11-07-2011 14:18:04 |
Тема перенесена из форума «Firefox» в форум «Разработка». |
tuarisa > 11-07-2011 14:36:16 |
Infocatcher , Спасибо большое. Заработало. Вроде делала тоже самое, но видимо перемудрила. И какой MIME-type должен отдавать сервер на .xpi-файлик? Чтобы он сразу открывался в фф, а не требовал сначала сохранить, если это возможно. |
Infocatcher > 11-07-2011 14:53:00 |
tuarisa пишет
Ну, можно посмотреть, что делает NoScript. tuarisa пишет
application/x-xpinstall 11-07-2011 15:05:31 ensureUIVisibility: function() { Выделить код Код:ensureUIVisibility: function() { const window = DOM.mostRecentBrowserWindow; try { const document = window.document; const addonBar = document.getElementById("addon-bar"); if (!addonBar) return false; const tbbId = "noscript-tbb"; let tbb = document.getElementById(tbbId); if (tbb) return false; let navBar = document.getElementById("nav-bar"); let [bar, refId] = addonBar.collapsed && navBar && !navBar.collapsed || !this.getPref("statusIcon", true) ? [navBar, "urlbar-container"] : [addonBar, "status-bar"]; set = bar.currentSet.split(/\s*,\s*/); if (set.indexOf(tbbId) > -1) return false; set.splice(set.indexOf(refId), 0, tbbId); bar.setAttribute("currentset", bar.currentSet = set.join(",")); document.persist(bar.id, "currentset"); try { window.BrowserToolboxCustomizeDone(true); } catch (e) {} try { window.noscriptOverlay.initPopups(); } catch(e) {} return true; } catch(e) { this.dump(e); return false; } }, |
tuarisa > 12-07-2011 13:28:23 |
Я заюзала то, что было по первой ссылке. Но по-моему это немного не то, чего мне хотелось. Мне бы хотелось при первом запуске назначить ему положение, а о дальнейшем его расположении озадачить пользователя. Чтоб при каждом новом запуске он не помещался туда, куда, куда совался при первом запуске. Я попробовала сделать с детектом первого запуска, как здесь http://stackoverflow.com/questions/4978188/how-do-i-detect-a-first-run-in-firefox-a-addon , но по-моему: |
Infocatcher > 12-07-2011 14:45:40 |
tuarisa пишет
Подойдет любая настройка – надо проверять значение перед добавлением кнопки и переключать в состояние «кнопка добавлена» после. |