Comments 36
Будут ли собранные расширения работать под Mac OS и Linux?
Python и JS кроссплатформены. — полагаю да.
Будут работать и расширения и сам сборщик под MacOS & Linux тоже работает.
Сборщик работает, но для этого нужно нечто следующее (например):
@@ -243,7 +243,8 @@
return outDir
def pack(self, dst, src):
- chrome_path = self.get_chrome_path()
+ chrome_path = '/Applications/Google\\ Chrome.app/Contents/MacOS/Google\\ Chrome'
if(chrome_path != ''):
extension_path = os.path.abspath(src)
На сколько фреймворк утяжеляет каждое расширение? Каждый килобайт обёрточного кода по крайней замедляет запуск браузера.
Присоединяюсь. Возможно, фреймворк нужно использовать для быстрого создания приложений под разные браузеры, а уже потом допиливать руками.
Прослойка между браузерным API и Kango API очень узкая и даже в бета версии неплохо оптимизирована — на скорость загрузки практически не влияет. Точные цифры подсчитывать ещё рано, но одной из задач сборщика является уменьшения оверхеда путём вырезания лишнего кода для каждой из платформ.
Кроме того, единый код позвляет легче поддерживать аддон под всеми браузерами а не допиливать по отдельности всё.
Кроме того, единый код позвляет легче поддерживать аддон под всеми браузерами а не допиливать по отдельности всё.
«Для сборки хромовского расширения нужен установленный Google Chrome под Windows, либо Chromium под Linux.»
Странное заявление. А Google Chrome под Linux или Chromium под Windows не подойдут?
А так всё клёво, такие фреймворки должны были сразу быть. А еще лучше — полная унификация расширений под браузеры. Хотя учитывая «альтернативно одаренные» браузеры из двух букв это навсегда будет фантастикой.
Странное заявление. А Google Chrome под Linux или Chromium под Windows не подойдут?
А так всё клёво, такие фреймворки должны были сразу быть. А еще лучше — полная унификация расширений под браузеры. Хотя учитывая «альтернативно одаренные» браузеры из двух букв это навсегда будет фантастикой.
FF?
Альтернативная одаренность тут ни причем, чистая хронология. Сначала расширения появились в IE, они пишутся на C. Дальше пошли расширения в FF, на XUL+JS. И последние по времени Chrome+Safari+Opera расширения — на HTML+JS.
Тенденция ясна?
Тенденция ясна?
Да знаю я, что появились в разное время и на разных технологиях. Я про то что не собираются никак унифицировать это. Потому что каждый гнёт свою линию. Причем если Mozilla и Google еще могут договориться о более-менее едином формате, то MS на это никогда не пойдет.
MS придётся сделать это, да они уже и идут к этому, потому что именно к этому всё и идёт, цитирую:
thenextweb.com/dd/2011/06/02/windows-8-apps-to-be-built-in-html-javascript/
thenextweb.com/dd/2011/06/02/windows-8-apps-to-be-built-in-html-javascript/
Apps that use the “new Windows” approach to programming will be built in HTML and JavaScript, said Windows president Steven Sinofsky at D9′s Windows 8 announcement today.
Windows 8 will run traditional Windows applications as well, but the company will encourage developers to adopt this new approach to application development that depends on the new wave of web technologies.
Шедеврально! :)
Кстати есть аналогичный фреймворк — FireBreath и тоже на питоне. О нем уже писали на хабре тут и тут
Ожидается ли поддержка элементов UI, отличных от кнопки? Нотификаторы, попапы, и т.п.
Интересует момент, например, из-под хрома можно программно скопировать выделенный на странице текст в буфер, чего в лисе сделать нельзя. Как будет себя вести сгенерированное расширение под лисой, непредсказуемо или просто данный функционал не будет работать?
Интересно было бы почитать про то, как портировать расширения между платформами. Можно на примере работы этого фреймворка.
А можно итоговый вариант расширений?
Просто понравилась реализация gmail для FF.
Заранее спасибо.
Просто понравилась реализация gmail для FF.
Заранее спасибо.
Для FF уже проще стало, сделали стандартное builder.addons.mozilla.org/
UFO just landed and posted this here
XUL? XPCOM? XBL? Components?
Ужасно много букв для такого расширения, можно ли это все ужать с помощью jQuery или лучше Mootools?
Хотя я все же погляжу поближе. Спасибо
Хотя я все же погляжу поближе. Спасибо
Он транслирует питоновский код в js? или для работы должен быть установлени питон? Вобщем, интересует как оно устроено?
В описании к последней версии указана поддержка Mac OS, с ошибкой кстати (Builder: Mas OS support added), но у меня процесс сборки расширения падает с ошибкой:
Building chrome extension
Traceback (most recent call last):
File "../kango-framework-latest/kango.py", line 971, in main()
File "../kango-framework-latest/kango.py", line 968, in main
CommandLineProcessor().process()
File "../kango-framework-latest/kango.py", line 962, in process
args.execute(args)
File "../kango-framework-latest/kango.py", line 930, in execute
builder.build()
File "../kango-framework-latest/kango.py", line 813, in build
self._build_extension(builderClass)
File "../kango-framework-latest/kango.py", line 787, in _build_extension
self._copy_extension_files(self.jsSourceDir, out, builder.key)
File "../kango-framework-latest/kango.py", line 775, in _copy_extension_files
self._merge_dirs(os.path.join(src, dir), out)
File "../kango-framework-latest/kango.py", line 759, in _merge_dirs
self._merge_dirs(srcname, dstname)
File "../kango-framework-latest/kango.py", line 760, in _merge_dirs
elif not self._merge_jss(srcname, out):
File "../kango-framework-latest/kango.py", line 730, in _merge_jss
self._merge_files(dst_path, file, dst_path)
File "../kango-framework-latest/kango.py", line 714, in _merge_files
content += '\r\n\r\n// Merged from ' + second + '\r\n\r\n' + f.read()
UnicodeDecodeError: 'ascii' codec can't decode byte 0xd0 in position 34: ordinal not in range(128)
Building chrome extension
Traceback (most recent call last):
File "../kango-framework-latest/kango.py", line 971, in main()
File "../kango-framework-latest/kango.py", line 968, in main
CommandLineProcessor().process()
File "../kango-framework-latest/kango.py", line 962, in process
args.execute(args)
File "../kango-framework-latest/kango.py", line 930, in execute
builder.build()
File "../kango-framework-latest/kango.py", line 813, in build
self._build_extension(builderClass)
File "../kango-framework-latest/kango.py", line 787, in _build_extension
self._copy_extension_files(self.jsSourceDir, out, builder.key)
File "../kango-framework-latest/kango.py", line 775, in _copy_extension_files
self._merge_dirs(os.path.join(src, dir), out)
File "../kango-framework-latest/kango.py", line 759, in _merge_dirs
self._merge_dirs(srcname, dstname)
File "../kango-framework-latest/kango.py", line 760, in _merge_dirs
elif not self._merge_jss(srcname, out):
File "../kango-framework-latest/kango.py", line 730, in _merge_jss
self._merge_files(dst_path, file, dst_path)
File "../kango-framework-latest/kango.py", line 714, in _merge_files
content += '\r\n\r\n// Merged from ' + second + '\r\n\r\n' + f.read()
UnicodeDecodeError: 'ascii' codec can't decode byte 0xd0 in position 34: ordinal not in range(128)
Sign up to leave a comment.
Kango — фреймворк для создания кроссбраузерных расширений