hydrolizer
Позвольте поинтересоваться где раздают такое чудо ESR 52 ?
https://www.mozilla.org/en-US/firefox/o … tions/all/
https://ftp.mozilla.org/pub/firefox/releases/52.0esr/
Прочитайте что такое ESR.
Спасибо, я уже лет 5 как в курсе этого.
Интересно. Вот здесь разработчики грозились, что начиная с 48-й версии будут недоступны неподписанные дополнения. Вчера я случайно обновился с ESR 45 до ESR 52 - вся моя собственная неподписанная разработка на месте, работает нормально. Раздумали?
можно ли убрать иконку из п̶а̶н̶е̶л̶и̶,̶ ̶н̶е̶ ̶з̶н̶а̶ю̶ ̶к̶а̶к̶ ̶э̶т̶а̶ ̶п̶а̶н̶е̶л̶ь̶ ̶н̶а̶з̶ы̶в̶а̶е̶т̶с̶я̶ ̶т̶о̶ч̶н̶о̶,̶ ̶д̶о̶п̶о̶л̶н̶е̶н̶и̶й̶ ̶ч̶т̶о̶ ̶л̶и̶ статус бара?
ээ.. а он есть в Fx45? Может быть, я слишком долго был в анабиозе, и что-то пропустил, но при переходе на 45 мне показалось, что разработчики выпилили статус-бар совсем и окончательно, и поэтому убрал опцию включения/выключения иконки в статус-баре из диалога настроек. Если у вас есть статус-бар, и в нем есть иконка SKL - переведите настройку extensions.skl.skl-icon-enabled в false, эта настройка регулировала отображение иконки в статус-баре.
Дико извиняюсь за столь долгое молчание - ввиду перманентного завала на работе было совсем не до разработки для Fx, плюс я законсервировался на версии 24.8 ESR, и поскольку на ней всё (почти), что мне было нужно, работало, я не предпринимал никаких активных действий по переработке чего-либо. Однако с недавних пор на 24.8 работать стало окончательно невозможно ввиду несовместимости этой версии с кучей сайтов, и я переполз на 45.5 ESR - соответственно, пришлось срочно чинить всё, что в этой версии отвалилось.
Вот работающая версия для 45.5 ESR: https://dl.dropboxusercontent.com/u/141 … x.1.30.xpi . Работает и в х86, и в х64 версиях Fx (тестировалась на Win7 SP1 x64 prof. и WinXP SP3). Починился даже индикатор клавиатуры, который, как выяснилось, не работал и в 24.8, и просто был закрыт заглушкой в коде. Основные юзкейсы проверил, вроде бы всё работает, но если кто-то что-то найдет - пишите.
Совместимость с более поздними версиями Fx обещать не
Так. Настоящим сообщаю, чтоя сворачиваю работу над этим расширением и над HistoryExport. Сразу хочу отметить, что причиной здесь является вовсе не MoFo с её политикой вносимых изменений, а банальная нехватка времени для работы над всем этим - вопроеки ожиданиям, эта нехватка только увеличивается. Отчасти могу констатировать снижение моего интереса к этой теме - она как-то себя исчерпала в плане чего-то кардинально нового. Но с этим можно было бы справиться, если бы было время.
Дабы не вводить посетителей АМО в заблуждение видимостью возможной поддержки и отклика, свой аккаунт оттуда я удаляю.
Последняя выложенная на АМО версия PreferencesCleaner находится здесь.
Экспериментальная и недоработнанная версия PreferencesCleaner находится здесь.
Последняя выложенная на АМО версия HistoryExport находится [url=ht
web.num
http://forum.mozilla-russia.org/viewtopic.php?pid=626321#p626321
и по структуре ничем не отличается от prefs.js
Который в кодировке UTF-8 w/o BOM:
Firefox никогда для своих внутренних файлов не использовал ANSI-кодировку.
У notepad++ кодировка ANSI as UTF-8 и обозначает UTF-8 без BOM.
Достаточно удобный syntax sugar. Вот такое некогда было утянуто из кода яндекс-бара:
И да, имена ивентов - case-sensitive.
https://developer.mozilla.org/en-US/doc … nce/Events
https://developer.mozilla.org/en-US/doc … /mousedown
не работает даже во время загрузки окна
оно не должно работать во время загрузки окна, оно должно работать по MouseDown
Или нужно
Нет, не нужно. Еще раз прочитайте мой предыдущий постинг - в addEventListener нужно передавать не результат отработки метода, а сам метод.
pm.addEventListener("MouseDown",alert("ok"), false);
- addEventListener вторым аргументом принимает ссылку на метод (делегат). В случае передачи alert("ok") в addEventListener передается результат отработки alert("ok") - void, и на выходе получаем undefined. В случае передачи function(event) alert("ok") (или, если без лямбда-синтаксиса, function(event) { alert("ok"); }) передается ссылка на анонимный метод, который вызвается при срабатывании листенера.
с точностью до миллионных долей секунды
Например, если отрисовка каждого кадра не превышает 16 миллисекунд
миллисекунда - 10-3
миллионная доля секунды - микросекунда (10-6)
Где-то что-то явно не стыкуется. Специфика источника?
имена свойств - в lowerCamelCase
Как-то я не верю, что всё пишется, как в обычном блокноте.
Примерно так оно и есть. Я использую Notepad++ и Venkman/log4moz для отладки, плюс упаковка в Far'е - этого хватает.
с помощью XMLHttpRequest() нельзя загрузить файл с локального диска
С чего бы это?
Components.utils.import("resource://gre/modules/FileUtils.jsm"); var uri = Services.io.newFileURI(new FileUtils.File("C:\\TMP\\1.xml")); let xhr = new XMLHttpRequest(); xhr.open("GET", uri.spec, false); xhr.send(null); Services.console.logStringMessage(xhr.responseXML); Services.console.logStringMessage(xhr.responseText);
Консольный вывод:
[object XMLDocument]…<?xml version="1.0" encoding="UTF-8"?>
<root>
<item name="A"/>
<item name="B"/>
<item name="C"/>
</root>
Потому что джетпак выполняется в отдельной песочнице
Именно. А не в общем XULRunner runtime, как xul-based расширения. И эти отдельные прослойки, вызовы, завернутые в DI, итп, не лучшим образом влияют на быстродействие и отзывчивость расширения. В теории. На практике на более-менее современном железе оценить эту разницу - примерно то же самое, что оценить преимущество кабелей из бескислородной меди.
но хотелось бы, опять-таки, какого-нибудь джетпака...
Почему? Приходится много-много раз в день переустанавливать одни и те же расширения?
До 4 пункта-то понятно, а потом..... нужно уметь писать на JS.... )
Чего ж тут уметь?
В .properties-файле:
в коде:
let stringBundle = Services.strings.createBundle("chrome://my_extension/locale/my_extension.properties"); .... var myStr = stringBundle.GetStringFromName("some.message"); Services.prompt.alert(null, "my extension", myStr);
результат:
…
Dadom
1. Добавить в расширение папку chrome/locale/{locale_id}, где locale_id - буквенный идентификатор нужной локали (например, для русского языка это ru, для английского - en-US, и т.д.).
2. В папке {locale_id} создать файл имя_файла.properties (для использования в JS). Про содержимое файла см. здесь. Сохранить файл в кодировке UTF-8 без BOM (это важно).
3. Зарегистрировать chrome package с указанием на локализованные ресурсы: добавить в расширение файл chrome.manifest, файл должен содержать строку
где locale_id - идентификатор локали (см.выше), chrome_package_name - имя chrome package расширения (произвольное удобочитаемое).
4. Из кода обращаться к строкам посредством интерфейса [url=https://developer.mozilla.org/en-US/docs/XPCOM_Interface_Reference/nsIStrin
Dadom
Вот и сделайте эту поддержку локализации так, как принято это делать. Задавать текст интерфейса непосредственно в коде или разметке - это очень плохой стиль.
Взят неудачный пример - в нем вообще нет поддержки локализации. Сейчас джетпаки уже могут работать со стандартным механизмом локализации через string bundles. Теорию можете посмотреть здесь, в качестве практического примера можно взять ABP.
Они не на ровном месте решили сменить иконку - в 23-й версии перепилен оконный API, из-за чего Minimize to tray reviewed крашит firefox при сворачивании окна.
Да, и еще перестала нормально работать панель дополнений в AIOS - все дополнения отображаются как отключенные, и без своих иконок. Что примечательно - даже последний dev-билд AIOS датирован августом прошлого года, и последние сообщения на форуме автора примерно от той же даты.
Я пока остаюсь на 22, посмотрим, что будет дальше.
это баг, как это видится мне, или особо хитрая фича, которая не будет исправлена в следующих версиях.
Не может это быть багом. Вот код из 22.6b, PlacesUtils.jsm:
PlacesMoveItemTransaction.prototype = { __proto__: BaseTransaction.prototype, doTransaction: function MITXN_doTransaction() { this.item.index = PlacesUtils.bookmarks.getItemIndex(this.item.id); PlacesUtils.bookmarks.moveItem(this.item.id, this.new.parentId, this.new.index); this._undoIndex = PlacesUtils.bookmarks.getItemIndex(this.item.id); }, .....
и он вполне работает (PlacesUtils.bookmarks - это lazy getter для nsINavBookmarksService). И ничего особенно хитрого здесь тоже не видно.
но он аналогичным образом не видит мои скрипты и падает при любой попытке взаимодействовать.
В окне Venkman'а в главном меню -> Debug галка на Exclude application files снята?
У себя падений как-то не замечал.
то ничего не происходит
1. Совсем-совсем ничего? В консоли ошибок тоже ничего? И заворачивание в try-catch с выводом в последнем стектрейса тоже не дает ничего? Вообще, без приведенного проблемного кода отвечать на такие вопросы вряд ли кто-то будет.
2. Обычно для этого используют Venkman.
которым невтерпеж
...начать новую серию "куда катится Firefox"