villi311
В инициализации заменить весь кусок
cachedIcon: function(src) { src = src.replace(/[&#]-moz-resolution=\d+,\d+$/, ""); // Firefox 22.0a1 if( !/^https?:/.test(src) // IDN, see https://bugzilla.mozilla.org/show_bug.cgi?id=311045 || /^https?:\/\/[^.:\/]+\.[^a-z0-9-]+(?:\/|$)/.test(src) || this.appName == "SeaMonkey" && this.appVersion <= 2 || this.appName == "Firefox" && this.appVersion <= 3.5 ) return src; return "moz-anno:favicon:" + src; // https://bugzilla.mozilla.org/show_bug.cgi?id=467828 },
cachedIcon: function(src) { return src; // Always bypass cache src = src.replace(/[&#]-moz-resolution=\d+,\d+$/, ""); // Firefox 22.0a1 if( !/^https?:/.test(src) // IDN, see https://bugzilla.mozilla.org/show_bug.cgi?id=311045 || /^https?:\/\/[^.:\/]+\.[^a-z0-9-]+(?:\/|$)/.test(src) || this.appName == "SeaMonkey" && this.appVersion <= 2 || this.appName == "Firefox" && this.appVersion <= 3.5 ) return src; return "moz-anno:favicon:" + src; // https://bugzilla.mozilla.org/show_bug.cgi?id=467828 },
Меня бы очень устроило, чтобы фавикон заново запрашивался к примеру при открытии этой ссылки. Ну в общем хоть как то.
С этим сложнее... видимо, какая-то проблема со встроенным механизмом иконок, не совсем понятно, как чинить. А вот убрать кэширование – это легко.
Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела
Отсутствует
возможно ли реализовать в данной кнопке создание папок для закладок?
Это слишком сложно.
Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела
Отсутствует
oleg953
Здесь в кнопках есть.
https://forum.mozilla-russia.org/viewtopic.php?id=41987
Например - https://forum.mozilla-russia.org/viewto … 73#p612473
но там ещё можно много чего интересного найти.
Отредактировано villa7 (15-06-2015 13:28:55)
Лучше спросить у знающих - чем лезть не зная.
Отсутствует
Добрый времени суток.
Обновил Developer Edition 42.0a2 и обратил внимание что Session Bookmarks не работают. По нажатию ничего не происходит, остаются затемнёнными и реагируют лишь на Shift-ПКМ (меню кнопки). Тот-же код на 40.0.2 работает. Проблема у меня или что-то отвалилось ?
Спасибо.
Отсутствует
Добрый времени суток.Обновил Developer Edition 42.0a2 и обратил внимание что Session Bookmarks не работают. По нажатию ничего не происходит, остаются затемнёнными и реагируют лишь на Shift-ПКМ (меню кнопки). Тот-же код на 40.0.2 работает. Проблема у меня или что-то отвалилось ?Спасибо.
А с СВ в Developer (возможно, правда, только в режиме e10s) вообще проблемы. Я уже это отмечал здесь. Так что я пока от СВ отказался, подобрав расширения со сходным функционалом. Надеюсь, утрясётся.
"Большинство философов до сих пор придерживается весьма нефилософских воззрений на многие вопросы философии" Эдгар Аллан По
Отсутствует
А с СВ в Developer (возможно, правда, только в режиме e10s) вообще проблемы. Я уже это отмечал здесь. Так что я пока от СВ отказался, подобрав расширения со сходным функционалом. Надеюсь, утрясётся.
Благодарю за подсказку и ссылку. Обидно, я лишь 5 дней назад её (Developer) установил. Хотя профиль просто с 40 перенёс и кнопки не проверял, но часть из них вроде работала, впрочем такие, что не сильно завязаны на функционал, то есть открытие приложения или чего-либо во вкладке. И то, повторюсь, могу ошибиться. Возможно после самого последнего обновления (вчера) это и случилось. Да ещё и с закладками непонятки стали.
P.S. Только что пока экспериментировал, одна из кнопок завесила Developer наглухо. Пришлось убивать Process Explorer-ом.
Отсутствует
возможно, правда, только в режиме e10s) вообще проблемы.
Там протокол не регистрируется, кнопки неудобно ставить.
Разрабатываемая версия хоть как-то работает, но вываливается в запасной режим и просто загружает ссылку вместо сессии, буду починять.
https://github.com/Infocatcher/Custom_Buttons/issues/38
Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела
Отсутствует
Я подправил, теперь хотя бы работает (или делает вид... там насчет обхода кэша явно сломано еще):
https://github.com/Infocatcher/Custom_B … d29c376adf
Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела
Отсутствует
В FF50.0 перестало работать перетаскивание, все остальное работает
Подправил: https://github.com/Infocatcher/Custom_B … d5809b091f
Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела
Отсутствует
Ultima2mПоследняя версия с гитхаба (см. выше) у меня перетаскивает на 50.1
Отредактировано bezuma (Сегодня 20:39:40)
Точно. Как-то просмотрел исправление. Спасибо, работает.
Отсутствует
Infocatcher
window.openDialog( "data:application/vnd.mozilla.xul+xml," + encodeURIComponent(dialog.replace(/^\s+/, "")),
Похоже на FF 57 и 58 это больше не работает.
У меня в диалог грузится заглушка «Удалённый XUL» (about:neterror?e=remoteXUL&u=data%3A…).
Пробовал на протокол resouce: перевести — не помогает (на протокол about: не пробовал).
А вот если blob:, то работает. Но у диалога есть атрибут persist="screenX screenY width height",
и, соответственно, вытекающие из этого проблемы.
Есть какие-нибудь идеи по всей этой ситуации?
Ну, и снова дичь. Вроде чем-то похоже на persist, но неуверен
properties: function(mi) { ... }\n\ init();\n' + (this.before57 ? "" : '\ window.onpageshow = () => {\n\ var callback = () => bookmarks.persist(document);\n\ var mo = new MutationObserver(callback);\n\ mo.observe(document.documentElement, {\n\ attributes: true, attributeFilter: ["screenX", "screenY", "width", "height"]\n\ });\n\ window.addEventListener("unload", () => {\n\ callback();\n\ mo.disconnect();\n\ }, {once: true});\n\ }\n\ window.opener.URL.revokeObjectURL(window.location.href);\n' ) + '\ ]]></script>\n\ </dialog>'; /* window.openDialog( "data:application/vnd.mozilla.xul+xml," + encodeURIComponent(dialog.replace(/^\s+/, "")), "_blank", "chrome,all,resizable,centerscreen,dependent", mi, this, _localize ); */ dialog = dialog.replace(/^\s+/, ""); if(this.before57) var url = "data:application/vnd.mozilla.xul+xml," + encodeURIComponent(dialog); else { var url = URL.createObjectURL(new Blob([dialog], {type: "application/vnd.mozilla.xul+xml"})); if(Services.prefs.prefHasUserValue(this.pref)) { var id = this.button.id + "-propertiesDialog"; var attrs = JSON.parse(Services.prefs.getCharPref(this.pref)); for(var attr in attrs) { this.xs.setValue(url, id, attr, attrs[attr]); } } } window.openDialog(url, "_blank", "chrome,all,resizable,centerscreen,dependent", mi, this, _localize); }, get before57() { var yes = this.appVersion < 57; if(!yes) { var pref = this.pref = "extensions." + this.button.id + ".propertiesDialog"; addDestructor(function(reason) { if(reason == "delete") Services.prefs.clearUserPref(pref); }); this.xs = Components.classes["@mozilla.org/xul/xulstore;1"] .getService(Components.interfaces.nsIXULStore); this.persist = function(doc) { var url = doc.location.href; var dialog = doc.documentElement, id = dialog.id; var obj = {}; ["screenX", "screenY", "width", "height"].forEach(function(attr) { if(dialog.hasAttribute(attr)) obj[attr] = dialog.getAttribute(attr); }); Services.prefs.setCharPref(pref, JSON.stringify(obj)); var en = this.xs.getAttributeEnumerator(url, id); while(en.hasMore()) { this.xs.removeValue(url, id, en.getNext()); } } } delete this.before57; return this.before57 = yes; },
Отсутствует
Dumby
Спасибо!
Все же отмечусь, что видел, проверил, что да, опять поломали, но руки не дошли (хотелось попробовать сделать универсальное, чтобы список атрибутов само вытаскивало из разметки и прочие удобства внедрения).
С выходом этого безобразия в бета-версии поток приветов от пользователей усилился.
Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела
Отсутствует
Свойства у закладки не показывает.
UPD: security.data* переключал...
Новая версия сама переключает security.data_uri.* (и у меня даже на каком-то из тестовых профилей, кажется, работало, но я уже не уверен, какая там была версия). Окно как бы и открывается, но маленькое и прозрачное. А при открытии такой же data:… ссылки во вкладке ругается на «Удалённый XUL», как при открытии XUL-файлов через file:// без dom.allow_XUL_XBL_for_file = true).
Пока что я понял только, что что-то где-то снова отключили.
Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела
Отсутствует
Infocatcher
Ещё Drag-n-Drop таба на кнопку не работает. У меня оказался старый bookmarks-8.txt, пришлось руками обновлять ссылки, их у меня там было штук 40... Но в целом кнопка работает, и на том спасибо!
Отсутствует
Ещё Drag-n-Drop таба на кнопку не работает.
Причем если вытащить кнопку на панель меню (вне вкладочного контейнера) – все заработает...
События перетаскивания перехватывает tabbrowser-tabs.js. И все бы ничего, но в event.target, если событие все же перехватить до вкладочного контейнера, будет безликий <toolbox>, как будто перетаскивание происходит на всю область кнопочных панелей.
@@ -374,6 +374,7 @@ }, init: function() { _log("init()"); + window.addEventListener("dragover", this, true); window.addEventListener("drop", this, true); setTimeout(function(_this) { _this.delayedInit(); @@ -507,14 +508,17 @@ } if(this.options.itemInPageContextMenu) this.destroyPageContextMenu(force); + window.removeEventListener("dragover", this, true); window.removeEventListener("drop", this, true); }, handleEvent: function(e) { var type = e.type; if(type == "popupshowing" && e.target == e.currentTarget) this.updatePageContextItemVisibility(); + else if(type == "dragover") + this.fixTabDrop(e); else if(type == "drop") - this.handleBookmarkDrop(e); + this.fixTabDrop(e) || this.handleBookmarkDrop(e); else if(type == "DOMMenuItemActive" || type == "DOMMenuItemInactive") this.showLink(e); }, @@ -1961,6 +1965,21 @@ sss.loadAndRegisterSheet(cssURI, sss.USER_SHEET); else if(!add && has) sss.unregisterSheet(cssURI, sss.USER_SHEET); + }, + fixTabDrop: function(e) { + if(!e.dataTransfer.types.contains("application/x-moz-tabbrowser-tab")) + return false; + var trg = e.originalTarget || e.target; + Components.classes["@mozilla.org/consoleservice;1"] + .getService(Components.interfaces.nsIConsoleService) + .logStringMessage("xxx " + trg.localName + " " + trg.closest("toolbarbutton")); + if(trg.closest && trg.closest("toolbarbutton[cb-init]") != this.button) + return false; + e.stopPropagation(); + if(e.type == "dragover") + this.handleDragOver(e); + else + this.handleDrop(e); + return true; }, handleBookmarkDrop: function(e) { var dt = e.dataTransfer;
Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела
Отсутствует
Infocatcher
Поигрался)) На панели меню и прошлая версия и с изменениями выше работают.
Да фиг с этим drag-n-drop. Сочетания "СКМ или ЛКМ+любой модификатор" работают, вполне достаточно. Спасибо.
Отсутствует