LINUX.ORG.RU

Google Chrome native messaging

 , , ,


0

1

Доброго времени. Пришлось написать native messaging клиента для google chrome. Как это работает: «браузерная часть экстеншена» кидает асинхронное сообщение, поднимая коннект к нативному приложению, оно стартует и начинает слушать stdio потоки. Точнее, с одного читает, через другой общается в обратную сторону. Возникла проблема - после закрытия браузера, нативное приложение не завершается. Ещё смущает странная магия - в приложении написан бесконечный цикл, слушающий поток, но реально начинает работать только когда в потоке появились данные. Собственно, что хотел спросить - никто не работал с этим велосипедом? Как обработать ситуацию, когда вкладка с моим приложением или браузер закрываются. Беглый поиск по событиям в экстеншенах и общих браузерных не дал ничего, кроме пары тредов на stackoverflow, где народ жалуется, что обработчики событий даже если и вызываются, отработать уже не успевают.
Вопрос: как быть и не приходилось ли кому-нибудь решать такую задачу?

Ответ на: комментарий от anonymous

В смысле, «смысл»? Суть в возможности взаимодействия между твоим web-приложением и системой пользователя. В данном случае организация работы с EToken. Закрываем вкладку с приложением - а нативное приложение остается в памяти.

Resolved. Сохраняю id вкладки в момент создания сессии с экстеншеном, слушаю событие закрытия вкладки, сравниваю её id с id вкладки, в которой открыто наше приложение, отправляю сообщение на приложение с флагом завершения работы. Всем спасибо.

bytecode ★★
() автор топика
Последнее исправление: bytecode (всего исправлений: 2)
Ответ на: комментарий от bytecode

Сохраняю id вкладки

так и до id-браузера недалеко, а там и id-юзера с id-коннекта не за горами ...

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.