Skip navigation.
Home

Blogs

Version 0.0.4.5 released

Changelog:

# Fixed: Bug 21641 'CB 0.0.4.4 doesn't work in Thunderbird Compose/View windows'

compareBoundaryPoints

compare = range.compareBoundaryPoints(how, sourceRange);
Занимаясь реализацией кода для инверсии выделения в документе, столкнулся со сложностью в понимании параметра how этого метода. По моему скромному мнению, порядок точек в наименованиях констант Range.END_TO_START иRange.START_TO_END должен быть обратным, потому что, например
compare = range.compareBoundaryPoints(Range.START_TO_END, sourceRange);
сравнивает конец (END) range с началом (START) sourceRange, при этом END находится в записи ближе к sourceRange, а START - ближе к range. По-моему, понятней было бы, если бы сравнение конца range с началом sourceRange обозначалось константой Range.END_TO_START, то есть вот так:
compare = range.compareBoundaryPoints(Range.END_TO_START, sourceRange);
 
В общем, "на память" помещу здесь таблицу значений compareBoundaryPoints для различных положений двух range-й:

Version 0.0.4.4 released

Changelog:

+ Added: Firefox 3.7a1pre support
+ Added: Thunderbird 3.0b4pre support
# Fixed: Bug 21391 "ABP 1.1.1 breaks Custom Buttons extension"
# Fixed: CB doesn't preserve XML.prettyPrinting field value
# Fixed: readFile doesn't close input stream
! Changed: error line number definition code

Version 0.0.4.3 released

Changelog:

+ Added: KompoZer 0.8a2 (0.7.99) support
# Fixed: 'toggle comments' feature doesn't work

Version 0.0.4.2 released

Changelog:

+ Added: new features in code editor component:


  • search ([Shift+]Ctrl+F / [Shift+]F3)

  • search and replace ([Shift+]Ctrl+H)

  • type ahead find (Ctrl+/)

  • go to line (Ctrl+G)

  • toggle word wrapping (Ctrl+W)


# Fixed: "open button by link" feature doesn't work in console2 window

Атас

Про творение новичков от программирования.

Понадобилось заглянуть в код альтернативной ветки, чтобы посмотреть, как реализованы функции checkboxDialog/radioboxDialog - они у меня не работают: первый диалог появляется, но checkbox'ы в нём не устанавливаются, а второй и вовсе открывается с XUL error.
Заглянул. Вещь шедевральная. Работает так:

1. Строковыми операциями формируется xul диалога и js к нему.
2. Записывается на диск, два файла.
3. Открывается диалог.
4. По закрытию диалога в вызывающее окно передаётся HTMLCollection отмеченных элементов, утечки памяти никого не интересуют.
5. Файлы с диска стираются.

Интерфейсная функция имеет 12 аргументов. Не предел: у диалога есть ещё кнопки extra1, extra2, так что можно было бы и все 16.

Короче, наглядное пособие на тему "как делать не надо" подвигло на написание собственного варианта: шаблон диалога в chrome + js, динамически создающий нужные элементы. Но с количеством аргументов в интерфейсной функции ничего, увы, не поделать.

Знаю, сам когда-то мог бы написать такое, но тем не менее.

Version 0.0.4.1 released

Changelog:

# Fixed: undo sequence sets default value in editor's code sections

Version 0.0.4.0 released

Changelog:

+ Added: three predefined icons for new buttons
+ Added: more than one code editor can be opened at same time
+ Added: code editor doesn't depends on main window
+ Added: Firefox 3.6a1pre support
! Changed: code architecture

Version 0.0.3.9 released

Changelog:

+ Added: Thunderbird 3.0b3pre support
+ Added: Calendar 1.0pre support
+ Added: Lightning extension support (experimental)
+ Added: 'hidelabel' value for 'cb-style' attribute (to hide button's label)
+ Added: "Add new button..." menu item for toolbars context menu

chrome.manifest из трёх частей

На днях придумал собирать chrome.manifest сишным препроцессором из трёх файлов.
Препроцессору надо указать опцию -ansi, иначе он позаменяет все "однострочные комментарии" - chrome:// <- вот такие, на многострочные - chrome:/* <- вот такие.
Основной файл - chrome.smanifest, и ещё два включаемых - stdlib/manifest.inc (сокращения для chrome-путей приложений) и inc/defs.inc (сокращение для content-пути расширения).
Сложновато, зато

overlay	BROWSER/browser.xul			CBCONTENT/cbbutton.xul FIREFOX appversion>1.6 appversion<3.0b1

смотрится лучше, чем
overlay chrome://browser/content/browser.xul chrome://custombuttons/content/cbbutton.xul application={ec8030f7-c20a-464f-9b0e-13a3a9e97384} appversion>1.6 appversion<3.0b1

Трубы, насосы

Наконец-то разобрался с nsIPipe, а заодним и с nsIInputStreamPump.
Поместил в node примеры использования.

Version 0.0.3.8 released

Changelog:

! Changed: ui code logic
# Fixed: 'custombuttons' protocol vulnerability

Version 0.0.3.7 released

Changelog:

+ Added: Thunderbird 3.0b2pre support
# Fixed: JavaScript console binding opened buttons only in main Thunderbird window

Version 0.0.3.6 released

Changelog:

+ Added: Firefox 3.1 support
+ Added: Sunbird 0.9 support
# Fixed: some Thunderbird/Sunbird ui bugs

Хочется материться

в FF3.1 мне уже нельзя пользоваться document.load'ом:

Quote:
Warning: Cross site loading using document.load is no longer supported. Use XMLHttpRequest instead.
Source File: about:blank
Line: 0

собственно, сабж

Syndicate content