Полезная информация

Хотите узнать больше о расширениях? Посмотрите ролики, рассказывающие о работе с расширениями Firefox.

Разработка » Как задать путь к файлу через url(chrome:// … » 06-04-2012 20:21:30

hydrolizer пишет
Infocatcher пишет

только реальная необходимость в таких фокусах бывает довольно редко

Интересная штука.. но я как-то затрудняюсь представить, когда она может понадобиться - если код по определению алиаса отрабатывает в расширении, то у этого расширения уже есть зарегистрированный chrome (и возможность зарегистрировать свой resource URI), через который можно адресовать ресурсы. Если не в расширении - из консоли, например - то этот код надо выполнять в каждой сессии FF.

в некоторых случаях код исполняется ещё до регистрации ресурсов. случаи эти точно не назову и актуально ли это для современных версий лиса, но иметь ввиду стоит.

Разработка » file_get_contents в Mozilla » 24-03-2012 14:02:28

можно, например, так:

Выделить код

Код:

var robotsText= yield $fenix.Uri.fromString( 'http://yandex.ru/robots.txt' ).get()

если использовать fenix. тут более подробно: https://github.com/nin-jin/fenix-snippet

Разработка » fenix: делаем простейшую кнопку погоды! (manual+demo) » 24-03-2012 13:50:12

В общем, сделал простенькую демонстрационную кнопку-информер и написал объёмный мануал по созданию расширения с нуля, а также приёмам работы с фреймворком и его библиотекой модулей: https://github.com/nin-jin/fenix-snippet

Думаю интересно будет как новичкам так и профи для расширения кругозора.

Вкратце о фреймворке:
- унификация интерфейсов, создание высокоуровневых ооп-обёрток скрывающих неровности, избыточность и низкоуровневость.
- максимальная асинхронность с использованием волокон
- максимальная модульность, мобильность и автоматизация

Если найдётся человек, который проникнется этими идеями и возглавит разработку фреймворка - будет вообще шикарно, а то я не могу уделять ему достаточно времени :-(

Разработка » плагин запускатор программ или лаунчер как сделать? » 21-01-2012 18:45:55

hydrolizer а при чём тут именно язык? я говорил об окружении в котором не то что учиться, а вообще программировать сложно. этот xpcom зоопарк писали разные люди с разной проф-пригодностью, зачастую не думая о тех, кто будет их поделия использовать. Касательно примера с пропаданием исключений - например передай коллбэк в nsiTimer и вызови в нём исключение, емнип в консоли будет девственно чисто. Они эти дырки постепенно залатывают, но пока ещё не везде починили.
касательно xslt - это был фастфикс уязвимости, из-за классного решения нам теперь приходится частично отказываться от xul, а частично перед преобразованием переименовывать неймспейс, а после трансформации - переименовывать обратно.

Разработка » Источники данных: RDF vs. XML [vs SQLite] » 12-11-2011 12:52:13

через e4x как-то так:
group.substitutions.substitution+= <substitution>...</substitution>

Разработка » (Работа) Нужен кодер » 06-11-2011 01:36:36

ну я могу посмотреть на днях. а зачем оно7

Разработка » плагин запускатор программ или лаунчер как сделать? » 31-10-2011 00:54:04

например, некоторые исключения просто пропадают. некоторые попадают в консоль, но без координат. при записи в консоль undefined - она полностью очищается.  крайне низкая информативность стандартных исключений - в лучшем случае можно понять что произошло, но не при каких обстоятельствах. порою встречается просто феерический бред, например, невозможность создавать xul элементы с помощью xslt. и это лишь малая вершина айсберга.

Разработка » плагин запускатор программ или лаунчер как сделать? » 29-10-2011 15:49:07

учиться пограммировать под xul runner - неблагодарное занятие. уж слишком много мистики. лучше потренировать javascript на обычных веб страничках.

Разработка » Создать окно вместо текущего » 24-10-2011 09:13:17

- как лучше всего убить себя?
- привяжи камень к шее и ныряй в море.
- не, ну мне бы как-нибудь по оригинальней.
- иди в лес и подерись с медведем.
- не, ну мне бы не так далеко от дома.
- подожги себя выпрыгни из окна.
- не, ну надо чтобы опознали потом.
- ну тогда не поджигай, а повяжи длинную верёвку на шею.
- не, ну я хочу чтобы труп потом выглядел как мачо.
- одень костюм бетмена и в полёте кричи "кавабанга!"
- ну как вариант. а можно сделать так чтобы лужа крови от меня была в виде сердца?
- так, чувак, тебе зачем это всё надо?
- да хочу девушке доказать как сильно её люблю.
- тогда заткнись, вытри сопли и хоть раз подари ей улыбку. герой нашего времени, блин.

Разработка » Создать окно вместо текущего » 20-10-2011 11:05:04

не проще ли document.body.innerHTML='новое окно'?

Разработка » Вызов функции из расширения » 19-10-2011 12:35:30

из расширения можно получить window для текущего таба и добавить туда необходимые ручки
что-то типа gBrowser.mCurentBrowser.contentDocument.docShell.DOMWindow.myAction= function(..){..}

Разработка » Работа с DLL библиотекой из под XULRUNNER » 15-10-2011 16:41:30

https://developer.mozilla.org/en/Gecko_FAQ#Are_Gecko's_APIs_based_on_ActiveX.3F_COM.3F_JavaBeans.3F

Архив тем » есть кто живой? » 07-10-2011 09:32:30

тут вообще остались ещё разработчики расширений или я зря распинаюсь?
если нет, то где их можно найти?

Разработка » fenix:fibers - синхронная асинхронность » 06-10-2011 14:18:24

Быстрая демонстрация

Синхронный код. Простой и лаконичный, но, пока он не завершится полностью, другие задачи не исполняются.

Выделить код

Код:

let downloadSync=
function( from, to ){
    try {
        let content= getContent( from )
        writeContent( to, content )
        alert( 'saved!' )
    } catch( e ){
        console.error( e )
    }
}

Асинхронный код. Пока идёт ожадание окончания запросов можно сделать ещё много других полезных вещей. Но структура кода трудна для восприятия так как представляет из себя хитрое переплетение функций.

Выделить код

Код:

let downloadAsync=
function( from, to ){

    getContent( from, whenContentReceived, onError )
    
    function whenContentReceived( content ){
        writeContent( to, content, whenContentWrited, onError )
    }
    
    function whenContentWrited( ){
        alert( 'saved!' )
    }

    function onError( e ){
        console.log( e )
    }
    
}

Цепочечный код. С помощью специального хелпера все функции и асинхронного варианта

Разработка » Запуск внешнего приложения » 02-10-2011 18:31:13

распаковать и запустить

02-10-2011 18:53:40
я сейчас изворачиваюсь так: создаю во временной директории скрипт, который исполняет некоторые команды и перенаправляет свой вывод в файл. потом парсю файл и получаю нужные мене данные. нет ли более прямых способов выполнять шелл-команды?

Разработка » фреймворки для разработки расширений | тизер fenix » 01-10-2011 18:21:30

я тут потыкался по интернетам и не нашёл ничего приличного на эту тему.
есть нативные ручки. доступные через Components, но они настолько низкоуровневые и кривые, что приходится писать тучу кода, обильно сдабривая её костылями.
есть набор библиотек доступный из resource:/gre/modules/ - они конечно сильно упрощают работу, но их разношёрстный (от ооп, до процедурщины) апи не слишком  удобен.
есть попытка создать что-то высокоуровневое под названием FUEL ( https://developer.mozilla.org/en/FUEL ), но его апи весьма бедно и сильно специфично.

есть ещё что-то что я пропустил и что стоило бы внимания?

спрашиваю я это потому что разрабатываю свой и меня сильно печалит отсутствие достойных конкурентов ._."

из интересных фич моего фреймворка могу отметить:

1. лёгкость подключения. подключаем специальный модуль и он создаёт всё необходимое окружение. не нужно объявлять никакие EXPORTED_SYMBOLS - просто объявляем глобальный объект с именем модуля и всё.

2. автозагрузка модулей по требованию.

Разработка » Как загрузить свой xul при создании нового tabs? » 01-10-2011 17:35:25

прямых ручек нет, встраиваться приходится разными хаками.
когда юзер хочет открыть новый таб вызывается window.BrowserOpenTab - его можно перегрузить и вместо пустого таба открыть свой.

Разработка » Кэширование внешних скриптов в XUL » 01-10-2011 17:29:08

не надо это включать.
самое простое - генерировать случайный query-string
вариант по сложнее - удалять файл из кэша вручную. тут я не в теме.

Разработка » Есть ли аналог content ? » 01-10-2011 17:15:56

ничего не понятно, но подозреваю поможет xbl

Разработка » запросы » 01-10-2011 17:11:54

подозреваю копать нужно отсюда: https://developer.mozilla.org/en/XPCOM_Interface_Reference/nsIChannelEventSink

Поддержка пользователей » Сходу два бага в Firefox 3 :-( » 18-06-2008 10:23:00

Не утверждайте, что ошибки нет.
Помните, что не смотря, на то, что вы всё десять раз перетестили и вам не поступало ни одного багрепорта на эту тему, это не значит, что ошибки нет. Большинство пользователей никогда не посылают багрепортов, а не выявленные при первичном тестировании ошибки как правило проявляются не у всех пользователей.
И помните, если работоспособность вашей программы зависит от кривизны рук пользователя - ЭТО УЖЕ БАГ

Программы и ОС » Финальная Opera 9.5 » 13-06-2008 02:05:23

гугол не продвигает фаерфокс. наоборот, фф продвигает гугол. за неслабый откат, конечно..
новый скин ужасен. ещё хуже, чем предыдущий.
хороший софт даже в кривых руках работает, а не привередничает "у вас недостаточный радиус кривизны, валите отседова"

в общем, опера как была ацтоем, так и останется.

Board footer

Powered by PunBB
Modified by Mozilla Russia
Copyright © 2004–2020 Mozilla Russia GitHub mark
Язык отображения форума: [Русский] [English]