>Форум Mozilla Россия http://forum.mozilla-russia.org/index.php >Разработка http://forum.mozilla-russia.org/viewforum.php?id=18 >Проблемы с nsINavBookmarksService и отладчиком http://forum.mozilla-russia.org/viewtopic.php?id=59477 |
cs0ip > 24-06-2013 22:51:43 |
Добрый день. Я в данный момент делаю расширение для firefox по работе с закладками и наткнулся на некоторые баги. Не уверен, где и кому нужно о них сообщать. На всякий случай опишу их тут, а знающие люди могут меня перенаправить или помочь донести эту информацию до разработчиков. 1. Если вызвать функцию nsINavBookmarksService.moveItem(id, aNewParentId, index) с параметром index, который на 1 больше текущего, то ничего не происходит, элемент не перемещается. 2. Встроенный отладчик javascript не работает для скриптов расположенных в XUL iframe, т.е. нет возможности выбрать соответствующие скрипты для отладки. |
hydrolizer > 25-06-2013 12:08:07 |
cs0ip пишет
1. Совсем-совсем ничего? В консоли ошибок тоже ничего? И заворачивание в try-catch с выводом в последнем стектрейса тоже не дает ничего? Вообще, без приведенного проблемного кода отвечать на такие вопросы вряд ли кто-то будет. |
cs0ip > 25-06-2013 14:38:51 |
hydrolizer пишет
1. Совсем ничего, никаких исключений. Проблемный код очень прост, вызываем указанную функцию с указанным аргументом (<текущий индекс элемента> + 1) и ничего не происходит. Вроде бы дополнительные пояснения тут не нужны. Сейчас пытаюсь понять это баг, как это видится мне, или особо хитрая фича, которая не будет исправлена в следующих версиях. 2. Я его тоже ставил, но он аналогичным образом не видит мои скрипты и падает при любой попытке взаимодействовать. |
hydrolizer > 25-06-2013 16:34:45 |
cs0ip пишет
Не может это быть багом. Вот код из 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). И ничего особенно хитрого здесь тоже не видно. cs0ip пишет
В окне Venkman'а в главном меню -> Debug галка на Exclude application files снята? |
cs0ip > 25-06-2013 17:27:55 |
hydrolizer пишет
Может это и не баг. Я ещё понаблюдал за поведением этой функции, и думаю, что с таким поведением можно в принципе жить. Хотя несколько странным кажется тот факт, что для того чтобы переместить элемент на 1 позицию вниз нужно задавать индекс больше текущего на 2. При этом при перемещении вверх только на 1. hydrolizer пишет
Была выставлена галка, но снятние не очень помогло. Проблема в том, что большинство файлов у меня через ajax подгружаются, а Venkman видит только статически указанные. Конечно в продакшене всё будет слито в один файл и будет грузиться статически, но вот на этапе разработки всё грузится динамически и эти файлы в отладчике не видны. На счет встроенного отладчика, кстати, я бы и не думал про него писать, т.к. раньше он официально не поддерживал работу с расширениями, но к 21 версии поддержка такой работы была официально заявлена, поэтому вот и не понятно стоит ли об этом говорить или они и так всё знают. |