Ключевое слово в защите информации
КЛЮЧЕВОЕ СЛОВО
в защите информации
Получить ГОСТ TLS-сертификат для домена (SSL-сертификат)
Добро пожаловать, Гость! Чтобы использовать все возможности Вход или Регистрация.

Уведомление

Icon
Error

2 Страницы12>
Опции
К последнему сообщению К первому непрочитанному
Offline ve2  
#1 Оставлено : 26 мая 2015 г. 15:38:45(UTC)
ve2

Статус: Активный участник

Группы: Участники
Зарегистрирован: 26.05.2015(UTC)
Сообщений: 32
Российская Федерация

Поблагодарили: 3 раз в 3 постах
Пример работы с PPAPI версией плагина с установленным в Chrome 43 расширением на демостранице http://www.cryptopro.ru/...nc_cades_bes_sample.html работает верно, если не считать, вероятно, забытого отладочного сообщения в консоли "Connect to background page". (Extension 1.0.2, Plugin 2.0.2101)

Однако есть проблема с автоматической инициализацией плагина, то есть не по кнопке на странице, а сразу после загрузки страницы.
Например, если добавить на эту демостраницу в тег body
<body onload="CheckForPlugIn('isPlugInEnabled')">
то с первого раза (сразу после старта браузера) плагин никогда не загружается.
То же самое при вызове из $(document).ready в jQuery.
Эксперимены показывают, что в первый раз в течение некоторого времени даже после того как страница полностью загружена, выполнение строки

var PluginObject = yield CreatePluginObject();

в функции CheckForPlugIn просто прерывается, то есть ни вызывает исключения, ни выполняется дальше.
Если отложить вызов CheckForPlugIn с помощью setTimeout примерно на пол-секунды, то срабатывает всегда как и по кнопке, если менше - появляется нестабильная работа.
Но компьютеры у всех разные, на скорость рассчитывать нельзя.

Каким образом правильно загрузить PPAPI плагин вместе со страницей, и определить что он загрузился и готов к работе, чтобы так же автоматически выполнить зависящие от него действия?
Offline Power_Gen  
#2 Оставлено : 28 мая 2015 г. 18:29:23(UTC)
Power_Gen

Статус: Участник

Группы: Участники
Зарегистрирован: 27.05.2015(UTC)
Сообщений: 10
Российская Федерация
Откуда: Санкт-Петербург

Сказал(а) «Спасибо»: 1 раз
Присоединяюсь к вопросу. Аналогичная проблема.
Offline cross  
#3 Оставлено : 29 мая 2015 г. 10:34:06(UTC)
Анатолий Беляев

Статус: Сотрудник

Группы: Администраторы, Участники
Зарегистрирован: 24.11.2009(UTC)
Сообщений: 965
Откуда: Crypto-Pro

Сказал(а) «Спасибо»: 3 раз
Поблагодарили: 174 раз в 152 постах
К сожалению в данный момент Chrome не предоставлять возможности узнать подгрузил он к странице расширение или нет. И судя по опыту делает он это сильно в последнюю очередь при первичной загрузке страницы. Именно из-за этого загрузка на демостранице сделана по отдельному нажатию на кнопку. Как обходной вариант этого думаем над созданием специального эвента который будет прилетать и в DOM о загрузке расширения.
Техническую поддержку оказываем тут.
Наша база знаний.
Наша страничка в Instagram.
thanks 1 пользователь поблагодарил Анатолий Беляев за этот пост.
pattern оставлено 29.05.2015(UTC)
Offline ve2  
#4 Оставлено : 29 мая 2015 г. 10:44:07(UTC)
ve2

Статус: Активный участник

Группы: Участники
Зарегистрирован: 26.05.2015(UTC)
Сообщений: 32
Российская Федерация

Поблагодарили: 3 раз в 3 постах
Автор: cross Перейти к цитате
думаем над созданием специального эвента который будет прилетать и в DOM о загрузке расширения.

Да, что-то вроде этого нужно обязательно! В реальном приложении нужно точно знать когда окружение готово к работе.
И еще исправьте пожалуйста косяки с функциями PrintDigit и Print2Digit
У вас в nmcades_plugin_api.js объявлена Print2Digit, а кроме нее используется точно такая же PrintDigit, объявленная в async_code.js
То есть плагин без примера работать не будет ;)

Отредактировано пользователем 29 мая 2015 г. 10:45:10(UTC)  | Причина: Не указана

Offline cross  
#5 Оставлено : 1 июня 2015 г. 10:47:53(UTC)
Анатолий Беляев

Статус: Сотрудник

Группы: Администраторы, Участники
Зарегистрирован: 24.11.2009(UTC)
Сообщений: 965
Откуда: Crypto-Pro

Сказал(а) «Спасибо»: 3 раз
Поблагодарили: 174 раз в 152 постах
Спасибо, исправили.
Техническую поддержку оказываем тут.
Наша база знаний.
Наша страничка в Instagram.
Offline ve2  
#6 Оставлено : 14 августа 2015 г. 22:08:43(UTC)
ve2

Статус: Активный участник

Группы: Участники
Зарегистрирован: 26.05.2015(UTC)
Сообщений: 32
Российская Федерация

Поблагодарили: 3 раз в 3 постах
Хотелось бы вновь поднять вынесенный в тему вопрос, он до сих пор актуален!
Offline idb  
#7 Оставлено : 18 августа 2015 г. 13:38:27(UTC)
idb

Статус: Участник

Группы: Участники
Зарегистрирован: 16.08.2012(UTC)
Сообщений: 21

Сказал(а) «Спасибо»: 1 раз
Не знаю как у кого, но у меня прекрасно работает комбинация:
window.onload = function () { functioninit(); };
Offline ve2  
#8 Оставлено : 18 августа 2015 г. 14:49:41(UTC)
ve2

Статус: Активный участник

Группы: Участники
Зарегистрирован: 26.05.2015(UTC)
Сообщений: 32
Российская Федерация

Поблагодарили: 3 раз в 3 постах
Автор: idb Перейти к цитате
прекрасно работает комбинация window.onload

Вы на разных компьютерах пробовали, на старых и "тормознутых" тоже? Там вопрос во времени первоначальной инициализации процесса Native Message Host. Если успевает запустится - то прекрасно, а если нет то нет. И обратите внимание, речь только про первый запуск, после старта браузера. Если потом страницу обновлять всё будет работать "прекрасно" поскольку хост процесс уже есть.

Offline idb  
#9 Оставлено : 18 августа 2015 г. 18:06:41(UTC)
idb

Статус: Участник

Группы: Участники
Зарегистрирован: 16.08.2012(UTC)
Сообщений: 21

Сказал(а) «Спасибо»: 1 раз
Да, это все понятно, но проверить на старых и "тормознутых" возможности нет из-за отсутствия таковых.
На которых проверялось, все отрабатывало.
Offline cross  
#10 Оставлено : 20 августа 2015 г. 15:03:03(UTC)
Анатолий Беляев

Статус: Сотрудник

Группы: Администраторы, Участники
Зарегистрирован: 24.11.2009(UTC)
Сообщений: 965
Откуда: Crypto-Pro

Сказал(а) «Спасибо»: 3 раз
Поблагодарили: 174 раз в 152 постах
Обновили расширение и тестовую страницу. Немного изменился процесс встраивания плагина.

Основные изменения:
Для встраивания нужно включать в свою страницу только один файл cadesplugin_api.js. Он предоставляет обьект Promise window.cadesplugin. При успешной инициализации плагина вызывается resolve() этого обьекта при ошибке reject().

Функции CreateObjectAsync, async_spawn, CreatePluginObject убраны из глобальной области видимости. Теперь это методы обьекта window.cadesplugin.


Ссылка на расширение - https://chrome.google.co...nmpdbibifmljnfjhpififfog
ссылка на тестовую страницу - https://www.cryptopro.ru...nc_cades_bes_sample.html
ссылка на cpcsp_plugin_api.js - https://www.cryptopro.ru...cades/cadesplugin_api.js

Отредактировано пользователем 21 августа 2015 г. 10:19:09(UTC)  | Причина: Не указана

Техническую поддержку оказываем тут.
Наша база знаний.
Наша страничка в Instagram.
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Guest
2 Страницы12>
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.